<?xml version="1.0" encoding="UTF-8"?>
<!--
============LICENSE_START=======================================================
ONAP : APPC
================================================================================
Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
================================================================================
Copyright (C) 2017 Amdocs
=============================================================================
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.

ECOMP is a trademark and service mark of AT&T Intellectual Property.
============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/maven-v4_0_0.xsd">
    <parent>
        <groupId>org.onap.ccsdk.parent</groupId>
        <artifactId>odlparent-carbon-sr1</artifactId>
        <version>0.1.0</version>
    </parent>


    <modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>
    <groupId>org.openecomp.appc</groupId>
    <artifactId>appc</artifactId>
    <version>1.1.0-SNAPSHOT</version>
    <name>appc</name>
    <description>Construct the Application Controller component for the ECOMP project.</description>
    <inceptionYear>2015-07-20</inceptionYear>
    <organization>
        <name>OpenECOMP</name>
    </organization>


    <!-- ================================================================================== -->
    <!-- Configuration properties -->
    <!-- ================================================================================== -->
    <properties>
        <!-- VERSIONS -->


        <cdp.pal.version>1.1.25.5-oss</cdp.pal.version>
        <dmaap.client.version>0.2.12</dmaap.client.version>
        <eelf.version>0.0.1</eelf.version>
        <eelf.maven.plugin.version>0.0.1</eelf.maven.plugin.version>
        <cadi-version>1.3.0</cadi-version>
        <inno-version>1.2.11</inno-version>
        <dme2-version>3.1.200</dme2-version>
        <bundle.plugin.version>2.5.0</bundle.plugin.version>
        <maven.compile.plugin.version>2.5.1</maven.compile.plugin.version>
        <equinox.osgi.version>3.8.1.v20120830-144521</equinox.osgi.version>
        <apache.httpcomponents.version>4.4</apache.httpcomponents.version>
        <commons.lang3.version>3.4</commons.lang3.version>
        <antlr.version>4.5.1</antlr.version>
        <logback.version>1.1.1</logback.version>
        <toscalib.version>1.1.0</toscalib.version>
        <sdc-client.version>1.1.32-SNAPSHOT</sdc-client.version>
        <jackson.yml.version>2.3.2</jackson.yml.version>

        <!-- SONAR -->
        <sonar.language>java</sonar.language>
        <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
        <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
        <sonar.jacoco.reportPath>${project.build.directory}/code-coverage/jacoco-ut.exec</sonar.jacoco.reportPath>
        <sonar.jacoco.reportMissing.force.zero>true</sonar.jacoco.reportMissing.force.zero>
        <sonar.projectVersion>${project.version}</sonar.projectVersion>

        <salGeneratorPath>target/generated-sources/yang-gen-sal</salGeneratorPath>
        <maven.javadoc.failOnError>false</maven.javadoc.failOnError>
        <!-- ADDING TO SUPPORT APPC-PROVIDER-MODEL yang-gen-sal FOLDER GENERATION -->
        <yang.file.directory>src/main/yang</yang.file.directory>
        <features.file>features.xml</features.file>
        <jmxGeneratorPath>target/generated-sources/yang-gen-config</jmxGeneratorPath>
        <!-- <salGeneratorPath>src/main/yang-gen-sal</salGeneratorPath> -->
        
        <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>

    </properties>


    <!-- ================================================================================== -->
    <!-- Javadoc Generation Plugin -->
    <!-- ================================================================================== -->
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10</version>
                <configuration>
                    <excludePackageNames>org.onap.ccsdk.sli</excludePackageNames>
                    <failOnError>false</failOnError>
                    <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
                    <docletArtifact>
                        <groupId>org.umlgraph</groupId>
                        <artifactId>umlgraph</artifactId>
                        <version>5.6</version>
                    </docletArtifact>
                    <additionalparam>-views</additionalparam>
                    <useStandardDocletOptions>true</useStandardDocletOptions>
                </configuration>
            </plugin>
        </plugins>
    </reporting>


    <!-- ================================================================================== -->
    <!-- Distribution Management Sites -->
    <!-- ================================================================================== -->
    <distributionManagement>
        <!-- This site is used for Javadocs -->
        <site>
            <id>ecomp-site</id>
            <url>dav:${onap.nexus.url}/content/sites/site/org/onap/appc/${project.version}</url>
        </site>
        <repository>
            <id>ecomp-releases</id>
            <name>openecomp-repository-releases</name>
            <url>${onap.nexus.url}/content/repositories/releases</url>
        </repository>
        <snapshotRepository>
            <id>ecomp-snapshots</id>
            <name>openecomp-repository-snapshots</name>
            <url>${onap.nexus.url}/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>


    <!-- ================================================================================== -->
    <!-- Define plugin repositories -->
    <!-- ================================================================================== -->
    <pluginRepositories>
        <pluginRepository>
            <id>opendaylight-mirror</id>
            <name>opendaylight-mirror</name>
            <url>https://nexus.opendaylight.org/content/repositories/public/</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>opendaylight-snapshot</id>
            <name>opendaylight-snapshot</name>
            <url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <!-- Black Duck plugin dependencies -->
        <pluginRepository>
            <id>JCenter</id>
            <name>JCenter Repository</name>
            <url>http://jcenter.bintray.com</url>
        </pluginRepository>
        <pluginRepository>
            <id>Restlet</id>
            <name>Restlet Repository</name>
            <url>http://maven.restlet.com</url>
        </pluginRepository>
    </pluginRepositories>


    <!-- ================================================================================== -->
    <!-- Define project-wide dependencies -->
    <!-- ================================================================================== -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>config-api</artifactId>
                <version>${odl.controller.config.api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>sal-binding-config</artifactId>
                <version>${odl.mdsal.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>sal-binding-api</artifactId>
                <version>${odl.mdsal.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>sal-test-model</artifactId>
                <version>${odl.mdsal.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.netconf</groupId>
                <artifactId>sal-rest-connector</artifactId>
                <version>${odl.mdsal.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>sal-binding-broker-impl</artifactId>
                <version>${odl.mdsal.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>sal-common-util</artifactId>
                <version>${odl.mdsal.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.mdsal</groupId>
                <artifactId>yang-binding</artifactId>
                <version>${odl.mdsal.yang.binding.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.yangtools</groupId>
                <artifactId>yang-common</artifactId>
                <version>${odl.yangtools.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>features-mdsal</artifactId>
                <version>${odl.mdsal.features.version}</version>
                <classifier>features</classifier>
                <type>xml</type>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.mdsal</groupId>
                <artifactId>features-mdsal</artifactId>
                <version>${odl.mdsal.features.version}</version>
                <classifier>features</classifier>
                <type>xml</type>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>opendaylight-karaf-empty</artifactId>
                <version>${odl.karaf.empty.distro.version}</version>
                <type>zip</type>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.mdsal.model</groupId>
                <artifactId>ietf-inet-types</artifactId>
                <version>${odl.ietf-inet-types.version}</version>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.mdsal.model</groupId>
                <artifactId>ietf-yang-types</artifactId>
                <version>${odl.ietf-yang-types.version}</version>
            </dependency>
            <!-- CURRENTLY DOES NOT EXIST IN 3.0. Replacement? -->
            <!-- Required for launching the feature tests -->
            <!-- <dependency> -->
            <!-- <groupId>org.opendaylight.yangtools</groupId> -->
            <!-- <artifactId>features-test</artifactId> -->
            <!-- <version>${odl.yangtools.version}</version> -->
            <!-- <scope>test</scope> -->
            <!-- </dependency> -->

            <!-- YANG tools -->
            <dependency>
                <groupId>org.opendaylight.yangtools</groupId>
                <artifactId>features-yangtools</artifactId>
                <version>${odl.yangtools.version}</version>
                <classifier>features</classifier>
                <type>xml</type>
            </dependency>
            <!-- SDNC -->
            <dependency>
                <groupId>org.onap.ccsdk.sli.core</groupId>
                <artifactId>sli-common</artifactId>
                <version>${sdnctl.sli.version}</version>
            </dependency>
            <dependency>
                <groupId>org.onap.ccsdk.sli.core</groupId>
                <artifactId>sli-provider</artifactId>
                <version>${sdnctl.sli.version}</version>
            </dependency>
            <!-- dblib -->
            <dependency>
                <groupId>org.onap.ccsdk.sli.core</groupId>
                <artifactId>dblib-provider</artifactId>
                <version>${sdnctl.dblib.version}</version>
            </dependency>
            <!-- A&AI service provider dependency override in order to use a stable 
                version -->
            <dependency>
                <groupId>org.onap.ccsdk.sli.adaptors</groupId>
                <artifactId>aai-service-provider</artifactId>
                <version>${sdnctl.aai.service.version}</version>
            </dependency>
            <!-- APPC -->
            <dependency>
                <groupId>org.openecomp.appc</groupId>
                <artifactId>appc-controller-features</artifactId>
                <classifier>features</classifier>
                <type>xml</type>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.openecomp.appc</groupId>
                <artifactId>appc-controller-model</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.openecomp.appc</groupId>
                <artifactId>appc-controller-bundle</artifactId>
                <version>${project.version}</version>
                <classifier>config</classifier>
                <type>xml</type>
            </dependency>
            <dependency>
                <groupId>org.openecomp.appc</groupId>
                <artifactId>appc-controller-bundle</artifactId>
                <version>${project.version}</version>
            </dependency>
            <!-- OTHER -->
            <dependency>
                <groupId>equinoxSDK381</groupId>
                <artifactId>org.eclipse.osgi</artifactId>
                <version>${equinox.osgi.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons.lang3.version}</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.1.1</version>
                <scope>compile</scope>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.1.1</version>
                <scope>compile</scope>
            </dependency>
            <!-- <dependency> -->
            <!-- <groupId>org.slf4j</groupId> -->
            <!-- <artifactId>slf4j-api</artifactId> -->
            <!-- <version>1.7.12</version> -->
            <!-- </dependency> -->
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>
            <dependency>
                <groupId>org.apache.sshd</groupId>
                <artifactId>sshd-core</artifactId>
                <version>0.12.0</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>1.10.19</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.att.cdp</groupId>
                <artifactId>cdp-pal-common</artifactId>
                <version>${cdp.pal.version}</version>
            </dependency>
            <dependency>
                <groupId>com.att.cdp</groupId>
                <artifactId>cdp-pal-openstack</artifactId>
                <version>${cdp.pal.version}</version>
            </dependency>
            <dependency>
                <groupId>com.att.authz</groupId>
                <artifactId>authz-client</artifactId>
                <version>2.3</version>
            </dependency>
            <!-- EELF logging framework -->
            <dependency>
                <groupId>com.att.eelf</groupId>
                <artifactId>eelf-core</artifactId>
                <version>${eelf.version}</version>
            </dependency>
            <!-- Maria DB -->
            <dependency>
                <groupId>org.mariadb.jdbc</groupId>
                <artifactId>mariadb-java-client</artifactId>
                <version>1.2.3</version>
            </dependency>
        </dependencies>
    </dependencyManagement>


    <!-- ================================================================================== -->
    <!-- Define common plugins and make them available for all modules -->
    <!-- ================================================================================== -->
    <build>
        <pluginManagement>
            <plugins>
                <!-- Define the site plugin to generate documentation -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.4</version>
                    <dependencies>
                        <!-- add support for ssh/scp -->
                        <dependency>
                            <groupId>org.apache.maven.wagon</groupId>
                            <artifactId>wagon-ssh</artifactId>
                            <version>1.0</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <!-- Define the compiler plugin -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven.compile.plugin.version}</version>
                </plugin>
                <!-- Define the javadoc plugin -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.10</version>
                    <configuration>
                        <excludePackageNames>org.opendaylight.*:org.onap.ccsdk.sli</excludePackageNames>
                    </configuration>
                </plugin>
                <!-- Define the source plugin -->
                <plugin>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>2.1.1</version>
                </plugin>
                <!-- Resources plugin -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>2.6</version>
                    <executions>
                        <execution>
                            <id>filter</id>
                            <goals>
                                <goal>resources</goal>
                            </goals>
                            <phase>generate-resources</phase>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>2.5.2</version>
                    <configuration>
                        <goals>-s ${mvn.settings} deploy</goals>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.5.5</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>2.10</version>
                </plugin>
                <!-- Maven surefire plugin for testing -->
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.17</version>
                </plugin>
                <!-- Maven OSGi bundle plugin used to package OSGi bundles -->
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>${bundle.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>1.9.1</version>
                </plugin>
                <plugin>
                  <groupId>org.sonarsource.scanner.maven</groupId>
                  <artifactId>sonar-maven-plugin</artifactId>
                  <version>3.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <!--maven staging plugin --> 
            <plugin> 
                <groupId>org.sonatype.plugins</groupId> 
                <artifactId>nexus-staging-maven-plugin</artifactId> 
                <version>1.6.7</version> 
                <extensions>true</extensions> 
                <configuration> 
                    <nexusUrl>${onap.nexus.url}</nexusUrl> 
                    <stagingProfileId>176c31dfe190a</stagingProfileId> 
                    <serverId>ecomp-staging</serverId> 
                </configuration> 
            </plugin> 
            <!-- Javadocs Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.6</version>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.wagon</groupId>
                        <artifactId>wagon-webdav-jackrabbit</artifactId>
                        <version>2.10</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>properties-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>set-system-properties</goal>
                        </goals>
                        <configuration>
                            <properties>
                                <property>
                                    <name>maven.wagon.http.ssl.allowall</name>
                                    <value>${ssl.allowall}</value>
                                </property>
                                <property>
                                    <name>maven.wagon.http.ssl.insecure</name>
                                    <value>${ssl.insecure}</value>
                                </property>
                            </properties>
                        </configuration>
                    </execution>
                </executions>

            </plugin>

            <!-- blackduck maven plugin -->
            <!-- <plugin> <groupId>com.blackducksoftware.integration</groupId> <artifactId>hub-maven-plugin</artifactId> 
                <version>2.0.0</version> <inherited>false</inherited> <configuration> <hubProjectName>${project.name}</hubProjectName> 
                <outputDirectory>${project.basedir}</outputDirectory> <deployHubBdio>false</deployHubBdio> 
                </configuration> <executions> <execution> <id>create-bdio-file</id> <phase>package</phase> 
                <goals> <goal>build-bom</goal> </goals> </execution> </executions> </plugin> -->

            <!-- force Eclipse to skip the additional-install step specified in the
                org.opendaylight.odlparent:odlparent-lite:1.7.1-Boron-SR1.pom profile -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <executions>
                    <execution>
                        <id>additional-install</id>
                        <goals>
                            <goal>install-file</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>


    <!-- ================================================================================== -->
    <!-- The modules we build every time -->
    <!-- ================================================================================== -->
    <modules>
        <module>appc-common</module>
    </modules>
    <!-- Adding profiles for testing -->
    <profiles>
        <profile>
            <id>appc-core</id>
            <properties>
                <ssl.allowall>true</ssl.allowall>
                <ssl.insecure>true</ssl.insecure>
                <openecomp.git.port>7999</openecomp.git.port>
                <openecomp.git.project>st_osecomp</openecomp.git.project>
                <openecomp.git.protocol>http</openecomp.git.protocol>
            </properties>
            <!-- Core app-c from 1604 -->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>appc-common</module>
                <module>appc-adapters</module>
                <module>appc-provider</module>
                <module>appc-event-listener</module>
                <module>appc-sdc-listener</module>
                <module>appc-lifecycle-management</module>
                <module>appc-oam</module>
                <module>appc-config</module>
                <module>appc-directed-graph</module>
                <module>appc-outbound</module>
                <module>appc-inbound</module>
                <module>appc-sequence-generator</module>
                <module>appc-client</module>
            </modules>
        </profile>
        <profile>
            <id>request-dispatcher</id>
            <properties>
                <ssl.allowall>true</ssl.allowall>
                <ssl.insecure>true</ssl.insecure>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>appc-dispatcher</module>
                <module>appc-metric</module>
                <module>appc-dg</module>
                <module>appc-dg-util</module>
            </modules>
        </profile>
    </profiles>
</project>
