<!--* ============LICENSE_START==================================================== 
   * =========================================================================== 
   * org.onap.aaf 
   * Copyright (c) 2017 AT&T Intellectual Property. All rights reserved. 
   * =========================================================================== 
   * Licensed under the Apache License, Version 2.0 (the "License"); 
   * you may not use this file except in compliance with the License. 
   * You may obtain a copy of the License at 
   * 
  * http://www.apache.org/licenses/LICENSE-2.0 
  * 
  * Unless required by applicable law or agreed to in writing, software 
  * distributed under the License is distributed on an "AS IS" BASIS, 
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
  * See the License for the specific language governing permissions and 
  * limitations under the License. 
  * ============LICENSE_END==================================================== 
  * -->
 <project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.onap.dmaap.buscontroller</groupId>
  <artifactId>parent</artifactId>
   <version>${revision}</version>
  <name>dmaap-buscontroller</name>
  <packaging>pom</packaging>
  
  <parent>
  	<groupId>org.onap.oparent</groupId>
  	<artifactId>oparent</artifactId>
      <version>3.2.0</version>
  </parent>

  <properties>
    <revision>2.0.5-SNAPSHOT</revision>
    <multiproject.basedir>${basedir}</multiproject.basedir>
    <docker.maven.plugin.version>1.0.0</docker.maven.plugin.version>
    <skip.docker.build>false</skip.docker.build>
    <skip.docker.tag>false</skip.docker.tag>
    <skip.docker.push>false</skip.docker.push>
    <docker.skip.build>false</docker.skip.build>
    <docker.verbose>true</docker.verbose>
    <docker.apiVersion>2.2.54</docker.apiVersion>
  </properties>

  <build>
    <plugins>
        <plugin>
            <groupId>io.fabric8</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.28.0</version>
            <configuration>
                <skipBuild>${skip.docker.build}</skipBuild>
            </configuration>
        </plugin>
    </plugins>
  </build>

  <modules>
     <module>dmaap-bc</module>
     <module>dbc-client</module>
  </modules>
</project>
