<?xml version="1.0" encoding="UTF-8"?>
<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>

    <!-- PLEASE READ !!!!! This file is generated from ccsdk/parent/setup/src/main/template/pom-template.xml
        Any updates needed should be made to that template and not to the generated
        pom.xml file -->
    <parent>
        <groupId>org.opendaylight.odlparent</groupId>
        <artifactId>feature-repo-parent</artifactId>
        <version>4.0.10</version>
        <relativePath/>
    </parent>

    <groupId>org.onap.ccsdk.parent</groupId>
    <artifactId>feature-repo-parent</artifactId>
    <version>2.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>ONAP :: ${project.groupId} :: ${project.artifactId}</name>
    <description>Root POM to be used in place of odlparent for CCSDK based projects</description>
    <url>http://wiki.onap.org</url>
    <organization>
        <name>ONAP</name>
    </organization>

    <issueManagement>
        <system>JIRA</system>
        <url>https://jira.onap.org/</url>
    </issueManagement>
    <distributionManagement>
        <repository>
            <id>ecomp-releases</id>
            <url>${onap.nexus.release-url}</url>
        </repository>
        <snapshotRepository>
            <id>ecomp-snapshots</id>
            <url>${onap.nexus.snapshot-url}</url>
        </snapshotRepository>
    </distributionManagement>

    <properties>
        <!-- Sonar properties -->
        <sonar.scanner.version>3.7.0.1746</sonar.scanner.version>
        <sonar-jacoco-listeners.version>3.2</sonar-jacoco-listeners.version>
        <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
        <!-- Default Sonar configuration -->
        <sonar.coverage.jacoco.xmlReportPaths>${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml,${project.reporting.outputDirectory}/jacoco-it/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
        <!-- Note: This list should match jacoco-maven-plugin's exclusion list below -->
        <sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**</sonar.exclusions>

        <!-- Jacoco properties -->
        <jacoco.version>0.8.5</jacoco.version>

        <!-- properties from oparent -->
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
        <!-- sitePath may be overridden in the inheriting POM if desired -->
        <sitePath>/content/sites/site/${project.groupId}/${project.artifactId}/${project.version}</sitePath>

        <!-- If following file exist, auto-generation of swagger.json will be done -->
        <swagger-properties>${basedir}/src/main/resources/swagger.properties</swagger-properties>
        <!-- If following file exist, auto-generation of sdk will be done -->
        <swagger-json>${basedir}/src/main/resources/swagger.json</swagger-json>
        <!-- end of properties from oparent -->

        <!-- ONAP repositories -->
        <onap.nexus.host>nexus.onap.org</onap.nexus.host>
        <onap.nexus.port>443</onap.nexus.port>
        <onap.nexus.protocol>https</onap.nexus.protocol>
        <onap.nexus.public-url>https://nexus.onap.org/content/groups/public</onap.nexus.public-url>
        <onap.nexus.staging-url>https://nexus.onap.org/content/groups/staging</onap.nexus.staging-url>
        <onap.nexus.release-url>https://nexus.onap.org/content/repositories/releases</onap.nexus.release-url>
        <onap.nexus.snapshot-url>https://nexus.onap.org/content/repositories/snapshots</onap.nexus.snapshot-url>
        <onap.nexus.staging.server-id>ecomp-staging</onap.nexus.staging.server-id>
        <onap.nexus.staging.profile-id>176c31dfe190a</onap.nexus.staging.profile-id>

        <!-- OpenDaylight repositories -->
        <opendaylight.nexus.public-url>https://nexus.opendaylight.org/content/repositories/public/</opendaylight.nexus.public-url>
        <opendaylight.nexus.snapshot-url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</opendaylight.nexus.snapshot-url>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version.source>1.8</java.version.source>
        <java.version.target>1.8</java.version.target>
        <bundle.plugin.version>2.5.0</bundle.plugin.version>
        <maven.compile.plugin.version>2.5.1</maven.compile.plugin.version>
        <features.file>features.xml</features.file>
        <jmxGeneratorPath>src/main/yang-gen-config</jmxGeneratorPath>
        <salGeneratorPath>src/main/yang-gen-sal</salGeneratorPath>
        <checkstyle.skip>true</checkstyle.skip>

        <!-- logging-analytics versions -->
        <logging-analytics.version>1.6.5</logging-analytics.version>

        <!-- CCSDK component versions -->
        <ccsdk.cds.version>1.0.0-SNAPSHOT</ccsdk.cds.version>
        <ccsdk.sli.core.version>1.0.0-SNAPSHOT</ccsdk.sli.core.version>
        <ccsdk.sli.adaptors.version>1.0.0-SNAPSHOT</ccsdk.sli.adaptors.version>
        <ccsdk.sli.northbound.version>1.0.0-SNAPSHOT</ccsdk.sli.northbound.version>
        <ccsdk.sli.plugins.version>1.0.0-SNAPSHOT</ccsdk.sli.plugins.version>
        <ccsdk.distribution.version>1.0.0-SNAPSHOT</ccsdk.distribution.version>
        <sdnctl.sli.version>${ccsdk.sli.core.version}</sdnctl.sli.version>
        <sdnctl.aai.service.version>${ccsdk.sli.adaptors.version}</sdnctl.aai.service.version>
        <sdnctl.dblib.version>${ccsdk.sli.core.version}</sdnctl.dblib.version>
        <sdnctl.mdsal.resource.version>${ccsdk.sli.adaptors.version}</sdnctl.mdsal.resource.version>
        <sdnctl.slipluginutils.version>${ccsdk.sli.core.version}</sdnctl.slipluginutils.version>

        <!-- Support libraries used by OpenDaylight -->
        <odl.controller.mdsal.version>1.9.1</odl.controller.mdsal.version>
        <odl.mdsal.version>3.0.8</odl.mdsal.version>
        <odl.mdsal.model.version>1.0.8</odl.mdsal.model.version>
        <odl.netconf.restconf.version>1.9.1</odl.netconf.restconf.version>
        <odl.netconf.netconf.version>1.6.1</odl.netconf.netconf.version>
        <odl.netconf.sal.rest.docgen.version>1.9.1</odl.netconf.sal.rest.docgen.version>

        <!-- Used by aaa, vtn -->
        <commons.codec.version>1.12</commons.codec.version>
        <!-- Used by netconf, ovsdb -->
        <commons.lang3.version>3.8.1</commons.lang3.version>
        <!-- Used by sfc, snmp4sdn; see also affinity, toolkit -->
        <commons.lang.version>2.6</commons.lang.version>
        <!-- Used by neutron; see also controller, vtn -->
        <commons.net.version>3.6</commons.net.version>
        <!-- Used by neutron -->
        <eclipse.persistence.version>2.7.3</eclipse.persistence.version>
        <!-- Used by aaa -->
        <felix.dependencymanager.version>4.4.1</felix.dependencymanager.version>
        <!-- Used by lacp, netconf, ovsdb, sfc, toolkit; see also vtn -->
        <gson.version>2.8.5</gson.version>
        <!-- Used by aaa, dlux, persistence, snmp4sdn, sxp -->
        <guava.version>25.1-jre</guava.version>
        <!-- Used by aaa, alto, netconf, ovsdb, sfc; see also affinity, defense4all,
            integration/distribution, snmp4sdn, toolkit, ttp -->
        <jackson.version>2.9.8</jackson.version>
        <!-- Used by snmp4sdn, yangtools -->
        <javassist.version>3.24.1-GA</javassist.version>

        <!-- FIXME remove all dependencies for jersey 1.17 after migration all projects -->
        <!-- Used by aaa, alto, netconf, neutron, sfc; see also affinity, defense4all, snmp4sdn, toolkit -->
        <jersey.version>2.25.1</jersey.version>
        <!-- Used by sfc -->
        <jersey.client.version>2.25.1</jersey.client.version>

        <!-- New packages for jersey migration 1.17 to 2.8 -->
        <!-- appache.geronimo.bundle for DocGen -->
        <!-- Used by aaa, iotdm, netconf, ovsdb, sfc -->
        <org.json.version>20131018</org.json.version>

        <!-- Used everywhere -->
        <junit.version>4.12</junit.version>
        <!-- Used by coretutorials, sfc, snmp4sdn, sxp; see also affinity, toolkit -->
        <logback.version>1.2.3</logback.version>
        <!-- Used by nic, sfc, sxp, tsdr -->
        <mockito.version>1.10.19</mockito.version>
        <!-- Used by bgpcep, netconf, ovsdb, sxp; see also opendove, toolkit -->
        <netty.version>4.1.34.Final</netty.version>
        <!-- Used by openflowjava, persistence, sfc, snmp4sdn, sxp; see also affinity, toolkit -->
        <slf4j.version>1.7.25</slf4j.version>
        <!-- Used in integration/distribution; see also affinity, snmp4sdn, toolkit, tsdr, ttp -->
        <spring.version>4.3.25.RELEASE</spring.version>

        <!-- Extra support libraries used by SDN-C -->
        <jvnet.jaxb2.version>0.6.4</jvnet.jaxb2.version>
        <antlr.version>4.7.2</antlr.version>

        <eelf.maven.plugin.version>1.0.0</eelf.maven.plugin.version>

        <!-- Managed dependency versions -->
        <apache.httpcomponents.core.version>4.4.12</apache.httpcomponents.core.version>
        <apache.httpcomponents.client.version>4.5.10</apache.httpcomponents.client.version>
        <derby.version>10.14.2.0</derby.version>
        <eelf.version>1.0.0</eelf.version>
        <grpc.version>1.21.1</grpc.version>
        <mariadb.connector.version>2.4.4</mariadb.connector.version>
        <mariadb4j.version>2.4.0</mariadb4j.version>
        <testng.version>6.14.3</testng.version>
        <tomcat-jdbc.version>9.0.30</tomcat-jdbc.version>
        <jetty.version>9.4.12.v20180830</jetty.version>
        <skip.karaf.featureTest>true</skip.karaf.featureTest>
        <dependency-list.file>direct-dependencies.txt</dependency-list.file>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!-- Note: If value in BOM conflicts with value inherited from
            parent pom, inherited value takes precedence.  This seems more like
            a bug than a feature, but this is how maven 3.6 works -->
            <dependency>
                <groupId>org.onap.ccsdk.parent</groupId>
                <artifactId>dependencies-odl-bom</artifactId>
                <version>2.0.0-SNAPSHOT</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.onap.logging-analytics</groupId>
                <artifactId>logging-slf4j</artifactId>
                <version>${logging-analytics.version}</version>
            </dependency>
            <dependency>
                <groupId>org.onap.logging-analytics</groupId>
                <artifactId>logging-filter-base</artifactId>
                <version>${logging-analytics.version}</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <repositories>
        <repository>
            <id>onap-public</id>
            <url>${onap.nexus.public-url}</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
        <repository>
            <id>onap-staging</id>
            <url>${onap.nexus.staging-url}</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
        <repository>
            <id>ecomp-release</id>
            <name>onap-repository-releases</name>
            <url>${onap.nexus.release-url}</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>ecomp-snapshot</id>
            <name>onap-repository-snapshots</name>
            <url>${onap.nexus.snapshot-url}</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>opendaylight-mirror</id>
            <name>opendaylight-mirror</name>
            <url>${opendaylight.nexus.public-url}</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>opendaylight-snapshot</id>
            <name>opendaylight-snapshot</name>
            <url>${opendaylight.nexus.snapshot-url}</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>

    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>onap-public</id>
            <url>${onap.nexus.public-url}</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>onap-staging</id>
            <url>${onap.nexus.staging-url}</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>onap-snapshot</id>
            <url>${onap.nexus.snapshot-url}</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>opendaylight-mirror</id>
            <name>opendaylight-mirror</name>
            <url>${opendaylight.nexus.public-url}</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>${opendaylight.nexus.snapshot-url}</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>

    <build>
        <pluginManagement>
            <plugins>
                <!-- Plugins from ONAP version (parent of oparent) -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <!-- This version supports the "deployAtEnd" parameter -->
                    <version>2.8</version>
                    <configuration>
                        <skip/>
                    </configuration>
                </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.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>3.0.0-M2</version>
                    <executions>
                        <execution>
                            <id>enforce-property</id>
                            <goals>
                                <goal>enforce</goal>
                            </goals>
                            <configuration>
                                <rules>
                                    <requireProperty>
                                        <property>onap.nexus.url</property>
                                        <message>You must set a onap.nexus.url property in your
                                            ~/.m2/settings.xml. See oparent/settings.xml for an example.
                                        </message>
                                    </requireProperty>
                                </rules>
                                <fail>true</fail>
                            </configuration>
                        </execution>
                        <execution>
                            <id>enforce-no-snapshots</id>
                            <goals>
                                <goal>enforce</goal>
                            </goals>
                            <configuration>
                                <rules>
                                    <requireReleaseDeps>
                                        <failWhenParentIsSnapshot>false</failWhenParentIsSnapshot>
                                        <onlyWhenRelease>true</onlyWhenRelease>
                                        <level>WARN</level>
                                    </requireReleaseDeps>
                                </rules>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <!-- https://mvnrepository.com/artifact/org.sonarsource.scanner.maven/sonar-maven-plugin -->
                <plugin>
                    <groupId>org.sonarsource.scanner.maven</groupId>
                    <artifactId>sonar-maven-plugin</artifactId>
                    <version>${sonar.scanner.version}</version>
                </plugin>
                <!-- end of plugins from ONAP version (parent of oparent) -->

                <!-- Plugins from ONAP oparent -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.0</version>
                    <configuration>
                        <!-- Sets the VM argument line used when unit tests are run. -->
                        <argLine>${surefireArgLine}</argLine>
                        <!-- Excludes integration tests when unit tests are run. -->
                        <excludes>
                            <exclude>**/IT*.java</exclude>
                        </excludes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>2.22.0</version>
                    <executions>
                        <!-- Ensures that both integration-test and verify goals of the Failsafe
                            Maven plugin are executed. -->
                        <execution>
                            <id>integration-tests</id>
                            <goals>
                                <goal>integration-test</goal>
                                <goal>verify</goal>
                            </goals>
                            <configuration>
                                <!-- Sets the VM argument line used when integration tests are run. -->
                                <argLine>${failsafeArgLine}</argLine>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

                <!-- End of plugins from ONAP oparent -->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>properties-maven-plugin</artifactId>
                    <version>1.0.0</version>
                    <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>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>versions-maven-plugin</artifactId>
                    <version>2.5</version>
                    <configuration>
                        <processAllModules>true</processAllModules>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-scm-plugin</artifactId>
                    <version>1.8.1</version>
                    <configuration>
                        <tag>${project.artifactId}-${project.version}</tag>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>com.github.ferstl</groupId>
                    <artifactId>depgraph-maven-plugin</artifactId>
                    <version>3.3.0</version>
                    <configuration>
                        <graphFormat>text</graphFormat>
                        <outputFileName>${dependency-list.file}</outputFileName>
                        <outputDirectory>${project.basedir}</outputDirectory>
                        <transitiveExcludes>*</transitiveExcludes>
                        <showVersions>true</showVersions>
                        <showGroupIds>true</showGroupIds>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>

            <!-- Plugins from oparent version (parent of oparent) -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
            </plugin>
            <!-- end of plugins from oparent version (parent of oparent) -->

            <!-- Plugins from oparent -->
            <plugin>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>2.17</version>
                <dependencies>
                    <dependency>
                        <groupId>org.onap.oparent</groupId>
                        <artifactId>checkstyle</artifactId>
                        <version>1.2.2</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>onap-license</id>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <phase>process-sources</phase>
                        <configuration>
                            <configLocation>onap-checkstyle/check-license.xml</configLocation>
                            <includeResources>false</includeResources>
                            <includeTestSourceDirectory>true</includeTestSourceDirectory>
                            <includeTestResources>false</includeTestResources>
                            <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
                            <excludes>
                            </excludes>
                            <consoleOutput>true</consoleOutput>
                            <failOnViolation>false</failOnViolation>
                        </configuration>
                    </execution>
                    <execution>
                        <id>onap-java-style</id>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <phase>process-sources</phase>
                        <configuration>
                            <!-- Use Google Java Style Guide: https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml
                                with minor changes -->
                            <configLocation>onap-checkstyle/onap-java-style.xml</configLocation>
                            <!-- <sourceDirectory> is needed so that checkstyle ignores the generated sources directory -->
                            <sourceDirectory>${project.build.sourceDirectory}/src/main/java</sourceDirectory>
                            <includeResources>true</includeResources>
                            <includeTestSourceDirectory>true</includeTestSourceDirectory>
                            <includeTestResources>true</includeTestResources>
                            <excludes>
                            </excludes>
                            <consoleOutput>true</consoleOutput>
                            <failOnViolation>false</failOnViolation>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.12</version>
            </plugin>
            <!-- Jacoco / Sonar -->
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${jacoco.version}</version>
                <executions>
                    <execution>
                        <id>pre-unit-test</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                        <configuration>
                            <!-- Sets the path to the file which contains the execution data. -->
                            <destFile>${project.build.directory}/code-coverage/jacoco-ut.exec</destFile>
                            <!-- Sets the name of the property containing the settings for JaCoCo runtime agent. -->
                            <propertyName>surefireArgLine</propertyName>
                        </configuration>
                    </execution>
                    <!-- Ensures that the code coverage report for unit tests is created after unit tests have been run. -->
                    <execution>
                        <id>post-unit-test</id>
                        <phase>test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                        <configuration>
                            <!-- Sets the path to the file which contains the execution data. -->
                            <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
                            <!-- Sets the output directory for the code coverage report. -->
                            <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
                        </configuration>
                    </execution>
                    <execution>
                        <id>pre-integration-test</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                        <configuration>
                            <!-- Sets the path to the file which contains the execution data. -->
                            <destFile>${project.build.directory}/code-coverage/jacoco-it.exec</destFile>
                            <!-- Sets the name of the property containing the settings for JaCoCo runtime agent. -->
                            <propertyName>failsafeArgLine</propertyName>
                        </configuration>
                    </execution>
                    <!-- Ensures that the code coverage report for integration tests after integration tests have been run. -->
                    <execution>
                        <id>post-integration-test</id>
                        <phase>post-integration-test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                        <configuration>
                            <!-- Sets the path to the file which contains the execution data. -->
                            <dataFile>${project.build.directory}/code-coverage/jacoco-it.exec</dataFile>
                            <!-- Sets the output directory for the code coverage report. -->
                            <outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
                        </configuration>
                    </execution>
                    <execution>
                        <id>default-prepare-agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-report</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-check</id>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <rule>
                                    <element>PACKAGE</element>
                                    <limits>
                                        <limit>
                                            <counter>COMPLEXITY</counter>
                                            <value>COVEREDRATIO</value>
                                            <minimum>0.0</minimum>
                                        </limit>
                                    </limits>
                                </rule>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
            </plugin>
            <!-- end of plugins from oparent -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.4</version>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <configuration>
                            <additionalparam>-Xdoclint:none</additionalparam>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <reporting>
        <plugins>
            <plugin>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.4</version>
                <configuration>
                    <failOnError>false</failOnError>
                    <additionalparam>-Xdoclint:none</additionalparam>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${jacoco.version}</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <!-- select non-aggregate reports -->
                            <report>report</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>

    <profiles>
        <!-- Profiles from ONAP oparent -->
        <profile>
            <id>generate-json</id>
            <activation>
                <file>
                    <exists>${swagger-properties}</exists>
                </file>
                <property>
                    <name>swagger-sdk.generate-json</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>properties-maven-plugin</artifactId>
                        <version>1.0.0</version>
                        <executions>
                            <execution>
                                <phase>initialize</phase>
                                <goals>
                                    <goal>read-project-properties</goal>
                                </goals>
                                <configuration>
                                    <files>
                                        <file>${basedir}/src/main/resources/swagger.properties</file>
                                    </files>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>com.github.kongchen</groupId>
                        <artifactId>swagger-maven-plugin</artifactId>
                        <version>3.1.4</version>
                        <configuration>
                            <apiSources>
                                <apiSource>
                                    <locations>${api-rest-package}</locations>
                                    <schemes>http,https</schemes>
                                    <host>${api-host-ip}:${api-host-port}</host>
                                    <basePath>${api-base-path}</basePath>
                                    <info>
                                        <title>${api-title}</title>
                                        <version>${api-version}</version>
                                        <description>${api-description}</description>
                                        <license>
                                            <name>${api-license}</name>
                                        </license>
                                    </info>
                                    <swaggerDirectory>${basedir}/src/main/resources</swaggerDirectory>
                                </apiSource>
                            </apiSources>
                        </configuration>
                        <executions>
                            <execution>
                                <phase>compile</phase>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-install-plugin</artifactId>
                        <version>2.3.1</version>
                        <executions>
                            <execution>
                                <id>install-file-id</id>
                                <phase>install</phase>
                                <goals>
                                    <goal>install-file</goal>
                                </goals>
                                <configuration>
                                    <file>${basedir}/src/main/resources/swagger.json</file>
                                    <groupId>${project.groupId}</groupId>
                                    <artifactId>${project.artifactId}-swagger-schema</artifactId>
                                    <version>${project.version}</version>
                                    <packaging>json</packaging>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>generate-sdk</id>
            <activation>
                <file>
                    <exists>${swagger-json}</exists>
                </file>
                <property>
                    <name>swagger-sdk.generate-java-sdk</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.8</version>
                        <executions>
                            <execution>
                                <phase>initialize</phase>
                                <id>ant-create-script</id>
                                <configuration>
                                    <exportAntProperties>true</exportAntProperties>
                                    <tasks>
                                        <taskdef resource="net/sf/antcontrib/antlib.xml" classpathref="maven.plugin.classpath"/>
                                        <condition property="is_windows" value="true">
                                            <os family="windows"/>
                                        </condition>
                                        <condition property="isLinux" value="true">
                                            <os family="unix"/>
                                        </condition>
                                        <if>
                                            <equals arg1="${is_windows}" arg2="true"/>
                                            <then>
                                                <property name="swagger.sdk.script.file" value="generated-source-script.bat"/>
                                                <echo file="${project.build.directory}${file.separator}generated-source-script.bat" append="true"
                                                  message="cd ${project.build.directory}${file.separator}generated-sources${line.separator}"/>
                                                <echo file="${project.build.directory}${file.separator}generated-source-script.bat" append="true"
                                                  message="mvn clean install -Dmaven.test.skip=true${line.separator}"/>
                                            </then>
                                            <else>
                                                <property name="swagger.sdk.script.file" value="generated-source-script.sh"/>
                                                <echo file="${project.build.directory}${file.separator}generated-source-script.sh" append="true"
                                                  message="cd ${project.build.directory}${file.separator}generated-sources${line.separator}"/>
                                                <echo file="${project.build.directory}${file.separator}generated-source-script.sh" append="true"
                                                  message="mvn clean install -Dmaven.test.skip=true${line.separator}"/>
                                                <chmod file="${project.build.directory}${file.separator}generated-source-script.sh" perm="755"/>
                                            </else>
                                        </if>
                                    </tasks>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>ant-contrib</groupId>
                                <artifactId>ant-contrib</artifactId>
                                <version>1.0b3</version>
                                <exclusions>
                                    <exclusion>
                                        <groupId>ant</groupId>
                                        <artifactId>ant</artifactId>
                                    </exclusion>
                                </exclusions>
                            </dependency>
                        </dependencies>
                    </plugin>
                    <plugin>
                        <groupId>io.swagger</groupId>
                        <artifactId>swagger-codegen-maven-plugin</artifactId>
                        <version>2.2.1</version>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>generate</goal>
                                </goals>
                                <configuration>
                                    <inputSpec>${basedir}/src/main/resources/swagger.json</inputSpec>
                                    <output>${project.build.directory}/generated-sources</output>
                                    <language>java</language>
                                    <configOptions>
                                        <dateLibrary>joda</dateLibrary>
                                    </configOptions>
                                    <library>jersey2</library>
                                    <groupId>${project.groupId}</groupId>
                                    <artifactId>${project.artifactId}-java-sdk</artifactId>
                                    <artifactVersion>${project.version}</artifactVersion>
                                    <modelPackage>${project.groupId}.${project.artifactId}.client.model</modelPackage>
                                    <apiPackage>${project.groupId}.${project.artifactId}.client.api</apiPackage>
                                    <invokerPackage>${project.groupId}.${project.artifactId}.client.invoker</invokerPackage>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>1.5.0</version>
                        <executions>
                            <execution>
                                <id>swagger-generate-sources</id>
                                <phase>generate-sources</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <configuration>
                                    <executable>${project.build.directory}${file.separator}${swagger.sdk.script.file}</executable>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-clean-plugin</artifactId>
                        <version>3.0.0</version>
                        <executions>
                            <execution>
                                <id>clean-generated-files</id>
                                <phase>generate-sources</phase>
                                <goals>
                                    <goal>clean</goal>
                                </goals>
                                <configuration>
                                    <filesets>
                                        <fileset>
                                            <directory>${project.build.directory}/generated-sources</directory>
                                        </fileset>
                                    </filesets>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
            <dependencies>
                <dependency>
                    <groupId>org.onap.msb.swagger-sdk</groupId>
                    <artifactId>swagger-sdk</artifactId>
                    <version>1.0.0</version>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>sonar-jacoco-aggregate</id>
            <activation>
                <property>
                    <name>onap.jacoco.aggregateFile</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>merge</id>
                                <goals>
                                    <goal>merge</goal>
                                </goals>
                                <phase>generate-resources</phase>
                                <configuration>
                                    <destFile>${onap.jacoco.aggregateFile}</destFile>
                                    <fileSets>
                                        <fileSet>
                                            <directory>${project.basedir}</directory>
                                            <includes>
                                                <include>**/target/code-coverage/*.exec</include>
                                            </includes>
                                        </fileSet>
                                    </fileSets>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!-- End of profiles from ONAP oparent -->

        <profile>
            <id>yang-compile</id>
            <activation>
                <file>
                    <exists>src/main/yang</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.opendaylight.yangtools</groupId>
                        <artifactId>yang-maven-plugin</artifactId>
                        <version>2.1.8</version>
                        <dependencies>
                            <dependency>
                                <groupId>org.opendaylight.mdsal</groupId>
                                <artifactId>maven-sal-api-gen-plugin</artifactId>
                                <version>${odl.mdsal.model.version}</version>
                                <type>jar</type>
                            </dependency>
                            <dependency>
                                <groupId>org.opendaylight.netconf</groupId>
                                <artifactId>sal-rest-docgen-maven</artifactId>
                                <version>${odl.netconf.sal.rest.docgen.version}</version>
                                <type>jar</type>
                            </dependency>
                        </dependencies>
                        <executions>
                            <execution>
                                <id>binding</id>
                                <goals>
                                    <goal>generate-sources</goal>
                                </goals>
                                <configuration>
                                    <yangFilesRootDir>${yang.file.directory}</yangFilesRootDir>
                                    <codeGenerators>
                                        <generator>
                                            <codeGeneratorClass>org.opendaylight.mdsal.binding.maven.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
                                            <outputBaseDir>${salGeneratorPath}</outputBaseDir>
                                        </generator>
                                        <generator>
                                            <codeGeneratorClass>org.opendaylight.netconf.sal.rest.doc.maven.StaticDocGenerator</codeGeneratorClass>
                                            <outputBaseDir>target/swagger</outputBaseDir>
                                        </generator>
                                    </codeGenerators>
                                    <inspectDependencies>true</inspectDependencies>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
xEeewDI5jM-81FA" key="Version" value="0.2.9"/>
OpenModel Profile v0.2.13: ProfileLifecycle Profile v0.0.4 applied.
This stereotype defines the Open Model specific enhancements for attributes.
This property indicates if the attribute is part of the object key or not. Value = 0 (default) means the attribute is not part of the object key. Values > 0 indicate that the attribute is part of the object key and the value defines the order of the attribute in case the key is composed of more than one attribute. This property defines if the attribute is part of a set of attributes which together (i.e., their values) have to be unique among all instances within a defined context. No value means no uniqueness constraint. An integer value identifies the uniqueness set. An attribute may participate in more than one uniqueness sets.
This property defines at which time the attribute can be set. true = attribute can only be set at creation time; false = attribute can be set at any time.
This property provides the restriction on the attribute values. This optional property indicates if the attribute type is unsigned (value = true) or signed (value = false); if applicable, otherwise ignored. This optional property defines the counter type of the attribute type; if applicable. This optional property contains a textual definition of the unit associated with the attribute value. The spelling of the unit (not only SI units) shall be in accordance to the NIST Publication 811 “Guide for the Use of the International System of Units (SI)” (http://www.nist.gov/pml/pubs/sp811/index.cfm), section 9 “Rules and Style Conventions for Spelling Unit Names”.
This property qualifies the support of the attribute at the management interface.
This attribute contains the condition for the condition-related support qualifiers.
required
This stereotype defines the Open Model specific enhancements for data object classes.
This property qualifies the support of the object class at the management interface.
This attribute contains the condition for the condition-related support qualifiers.
required
This stereotype defines the Open Model specific enhancements for operations.
This property defines whether the operation is idempotent or not. Example: When an operation is going to create an object instance which does already exist, an idempotent operation would return success and a non-idempotent operation would return an exception.
This property identifies if the operation is best effort or is successful / not successful as a whole.
This property qualifies the support of the operation at the management interface.
This attribute contains the condition for the condition-related support qualifiers.
required
This stereotype defines the Open Model specific enhancements for parameters.
This property provides the restriction on the parameter value.
This property qualifies the support of the parameter at the management interface.
This attribute contains the condition for the condition-related support qualifiers.
required
This enumeration defines if a notification (of a specific type) has to be raised when the event occurs.
This literal means that this kind of Notification makes no sense for this object class, e.g., when it is abstract.
This literal means that the object class shall not send this kind of notification.
This literal means that the object class must send this kind of notification.
This stereotype identifies that the association is used to define the naming.
This enumeration defines the list of support qualifiers as defined in ITU-T Recommendation M.3020.
The model element shall be supported.
The model element may, but needs not to, be supported.
The model element shall be supported under certain conditions. If the specified conditions are met then the model element shall be supported.
The model element may, but needs not to, be supported under certain conditions. If the specified conditions are met then the model element may, but needs not to, be supported. If the specified conditions are not met then the model element shall be supported.
Used for model elements that have multiple constraints. Each constraint is worded as a condition for one kind of support, such as mandatory support, optional support or "no support". All constraints must be related to the same kind of support. Specifically: Each model element with C qualification shall have the corresponding multiple constraints defined in the specification. If all specified constraints are met and are related to mandatory, then the model element shall be supported. If all the specified constraints are met and are related to optional, then the model element may, but needs not to, be supported. If all the specified constraints are met and are related to "no support", then the model element shall not be supported.
This stereotype identifies an object class or a data type as a choice between different alternatives.
This stereotype defines a data type used for an operation exception.
This stereotype identifies that the dependency is used to define the naming.
This stereotype can only be applied to associations with a composite end (i.e., composite aggregation association). Means that the content of the "parts" classes is part of the "composed" parent class and has no opportunity for independent lifecycle. In this case although an instance of the "parts" classes can be created and deleted anytime, it has to be in the context of the "composed" parent class. In other words, the parent class instance has to exist and it is NOT possible for the "part" instance to move from one parent instance to another (allowed in regular composition).
This stereotype identifies that the relationship is conditional.
This attribute contains the condition.
This stereotype indicates that the entity is at a very early stage of development and will almost certainly change. The entity is NOT mature enough to be used in implementation.
This stereotype indicates that although the entity may be mature work in the area has indicated that change will be necessary (e.g. there are new insights in the area or there is now perceived benefit to be had from further rationalization). The entity can still be used in implementation but with caution.
This stereotype indicates that the entity is at a relatively early stage of development and is likely to change but is mature enough to be used in implementation.
This stereotype indicates that the entity should not be used in new implementation and that attempts should be made to remove it from existing implementation.
This stereotype indicates that the entity is NOT to be used in implementation and is in the model simply to assist in the understanding of the model (e.g., a specialization of a generalized class where the generalized class is to be used as is and the specialization is simply offered to more easily illustrate an application of the generalized class).
This stereotype indicates that the entity should not be used in new implementation and that attempts should be made to remove it from existing implementation as there is a problem with the entity. An update to the model with corrections will be released.
This stereotype defines the Open Model specific enhancements for interfaces.
This property qualifies the support of the interface at the management interface.
This attribute contains the condition for the condition-related support qualifiers.
required
This stereotype defines the Open Model specific enhancements for notifications.
This property provides the list of conditions that cause the notification.
This property qualifies the support of the notification at the management interface.
This attribute contains the condition for the condition-related support qualifiers. required This stereotype identifies that the realization association is used to identify pruning and refactoring. This stereotype indicates that the entity may become obsolete in the near future. It may still be used in new implementation. This stereotype indicates that the entity is fully developed and can be used in implementations without any constraints. This optional stereotype contains a reference upon which the UML artefact is based. A reference to a standard is preferred. This enumeration contains the defined bit length values. This enumeration contains the defined counter types. This enumeration contains the defined encoding types. This steoreotype indicates a more restrictive form of "StrictComposite" where the "extending" classes will never be explictly instantiated, but that the attributes defined by the “extending” class will be transferred to the class being “extended” at runtime, much like the UML “Generalization” relationship. In other words the "extending" classes are essentially carrying attributes of the “extended” class in a grouping-pack and often referred to as "_Pacs". The “Specify” stereotype is applied on the UML “Abstraction” relationship to indicate that the definition of the more abstract entity class in the abstraction relationship is augmented by the "specification" class definition at runtime. Furthermore there is a potential for an entity class definition to be augmented by more than one "specification" class definitions. In others words, one of the specification classes adds-to and expands the runtime-definition of the entity class. This also implies that the entity class cannot be aware of the existence of specification classes at design time. Since the “Specify” relationship is defined to support runtime code/schema generation and dependency injection, a stereotype-property “target” is defined to point to the actual node being augmented within the object/instance schema. The "target" value should be in the following format: [/<ModelName>:<ClassName>]+:<AttributeName>. Example: TopologyContext in TapiTopology augments Context in TapiCommon target=/TapiCommon:Context:_context Example: NodeEdgePointLpSpec in TapiOdu specifies LayerProtocol definition for NodeEdgePoint in TapiTopology target=/TapiTopology:TopologyContext/TapiTopology:Topology/TapiTopology:Node/Tapi:Topology:NodeEdgePoint/_layerProtocol This property indicates the target of the "Specification". It is recommended that this information is set as the “default” value in the concrete “Specification” class at design/modeling time. This property shall only be applied to attributes or parameters that have an object class as their type. The stereotype identifies that the attribute or the parameter that has the stereotype associated, contains only the identifier(s) of the referred object instance(s) when being transferred across the interface. Otherwise the attribute/parameter contains the complete information of the object instance(s) when being transferred across the interface. This optional stereotype can extend a shared aggregation and indicates a lifecycle dependency between the group instance and the shared part instances; similar to the lifecycle dependency of a composite aggregation. This option is intended to be used only when the shared part object class has another stronger lifecycle dependency (such as composition). The multiplicity at the grouping side of the «LifecycleAggregate» relationship defines the mode: single = exclusive mode, one or more = shared mode. In exclusive mode, a shared part object instance must not be aggregated by more than one group instance via a «LifecycleAggregate» relationship. In shared mode, a shared part object instance can be aggregated by more than one group instance via a «LifecycleAggregate» relationship. In this case, a shared part instance is automatically deleted when the last group instance aggregated the part instance is deleted. This is used by ONAP to indicate that the artifact will be in a Future release. This is used by ONAP to represent a proposal to a model. The "note" must contain the name of the person making the proposal and the associated contribution.