<?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.onap.appc</groupId>
    <artifactId>appc</artifactId>
    <version>1.3.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.6-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.2.2</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.onap.appc</groupId>
                <artifactId>appc-controller-features</artifactId>
                <classifier>features</classifier>
                <type>xml</type>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.onap.appc</groupId>
                <artifactId>appc-controller-model</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.onap.appc</groupId>
                <artifactId>appc-controller-bundle</artifactId>
                <version>${project.version}</version>
                <classifier>config</classifier>
                <type>xml</type>
            </dependency>
            <dependency>
                <groupId>org.onap.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>org.assertj</groupId>
                <artifactId>assertj-core</artifactId>
                <version>3.9.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.assertj</groupId>
                <artifactId>assertj-guava</artifactId>
                <version>3.1.0</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>
                <module>appc-test-dependencies</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>
