<?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/springboot/spring-boot-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.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.22.RELEASE</version>
        <relativePath/>
    </parent>

    <groupId>org.onap.ccsdk.parent</groupId>
    <artifactId>spring-boot-1-starter-parent</artifactId>
    <version>1.5.10-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>ONAP :: ${project.groupId} :: ${project.artifactId}</name>
    <description>Root POM to be used in place of spring-boot parent 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>

        <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>0.7.4</ccsdk.cds.version>
        <ccsdk.features.version>0.7.6</ccsdk.features.version>
        <ccsdk.sli.core.version>0.7.2</ccsdk.sli.core.version>
        <ccsdk.sli.adaptors.version>0.7.3</ccsdk.sli.adaptors.version>
        <ccsdk.sli.northbound.version>0.7.4</ccsdk.sli.northbound.version>
        <ccsdk.sli.plugins.version>0.7.3</ccsdk.sli.plugins.version>
        <ccsdk.distribution.version>0.7.4</ccsdk.distribution.version>

        <!-- Spring versions -->
        <spring.boot.version>1.5.22.RELEASE</spring.boot.version>
        <spring.version>4.3.25.RELEASE</spring.version>

        <!-- Kotlin versions -->
        <kotlin.compiler.jvmTarget>1.8</kotlin.compiler.jvmTarget>
        <kotlin.version>1.3.61</kotlin.version>
        <kotlin.maven.version>1.3.61</kotlin.maven.version>
        <kotlin.couroutines.version>1.3.3</kotlin.couroutines.version>
        <kotlinpoet.version>1.5.0</kotlinpoet.version>
        <kroto-plus.version>0.5.0</kroto-plus.version>
        <nats.version>2.6.6</nats.version>
        <nats.streaming.version>2.2.3</nats.streaming.version>
        <mockk.version>1.9.3</mockk.version>

        <!-- Managed dependency versions -->
        <antlr.version>4.7.2</antlr.version>
        <commons.lang.version>2.6</commons.lang.version>
        <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.25.0</grpc.version>
        <protobuff.java.version>3.10.0</protobuff.java.version>
        <protobuff.java.utils.version>3.10.0</protobuff.java.utils.version>
        <jersey.version>2.25.1</jersey.version>
        <jersey.client.version>2.25.1</jersey.client.version>
        <jettison.version>1.3.8</jettison.version>
        <logback.version>1.2.3</logback.version>
        <mariadb.connector.version>2.4.4</mariadb.connector.version>
        <mariadb4j.version>2.4.0</mariadb4j.version>
        <slf4j.version>1.7.25</slf4j.version>
        <testng.version>6.14.3</testng.version>
        <tomcat-jdbc.version>9.0.30</tomcat-jdbc.version>
        <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-bom</artifactId>
                <version>1.5.10-SNAPSHOT</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.onap.ccsdk.sli.core</groupId>
                <artifactId>sli-common</artifactId>
                <version>${ccsdk.sli.core.version}</version>
            </dependency>
            <dependency>
                <groupId>org.onap.ccsdk.sli.core</groupId>
                <artifactId>sli-provider</artifactId>
                <version>${ccsdk.sli.core.version}</version>
            </dependency>
            <dependency>
                <groupId>org.onap.ccsdk.sli.core</groupId>
                <artifactId>ccsdk-sli</artifactId>
                <version>${ccsdk.sli.core.version}</version>
                <type>xml</type>
                <classifier>features</classifier>
            </dependency>
            <dependency>
                <groupId>org.onap.ccsdk.sli.core</groupId>
                <artifactId>dblib-provider</artifactId>
                <version>${ccsdk.sli.core.version}</version>
            </dependency>
            <dependency>
                <groupId>org.onap.ccsdk.sli.adaptors</groupId>
                <artifactId>aai-service-provider</artifactId>
                <version>${ccsdk.sli.adaptors.version}</version>
            </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>
        </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>
    </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>
        <!-- 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 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>
                        <dependency>
                            <groupId>org.apache.maven.doxia</groupId>
                            <artifactId>doxia-core</artifactId>
                            <version>1.7</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.maven.doxia</groupId>
                            <artifactId>doxia-sink-api</artifactId>
                            <version>1.7</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.maven.doxia</groupId>
                            <artifactId>doxia-logging-api</artifactId>
                            <version>1.7</version>
                        </dependency>
                    </dependencies>
                    <executions>
                        <execution>
                            <id>attach-descriptor</id>
                            <goals>
                                <goal>attach-descriptor</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>2.17</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.onap.oparent</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>1.1.1</version>
                        </dependency>
                    </dependencies>
                    <executions>
                        <execution>
                            <id>check-license</id>
                            <goals>
                                <goal>check</goal>
                            </goals>
                            <phase>process-sources</phase>
                            <configuration>
                                <configLocation>onap-checkstyle/check-license.xml</configLocation>
                                <headerLocation>onap-checkstyle/apache-license-2.regexp.txt</headerLocation>
                                <includeResources>false</includeResources>
                                <includeTestSourceDirectory>true</includeTestSourceDirectory>
                                <includeTestResources>false</includeTestResources>
                                <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
                                <excludes>
                                </excludes>
                                <failsOnError>false</failsOnError>
                                <consoleOutput>true</consoleOutput>
                            </configuration>
                        </execution>
                        <execution>
                            <id>check-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>
                                <failsOnError>false</failsOnError>
                                <consoleOutput>true</consoleOutput>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.19.1</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.19.1</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>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven.compile.plugin.version}</version>
                    <configuration>
                        <source>${java.version.source}</source>
                        <target>${java.version.target}</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.sonarsource.scanner.maven</groupId>
                    <artifactId>sonar-maven-plugin</artifactId>
                    <version>3.6.0.1398</version>
                </plugin>

                <!-- End of plugins from ONAP oparent -->

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.10.4</version>
                    <configuration>
                        <additionalDependencies>
                            <additionalDependency>
                                <groupId>org.slf4j</groupId>
                                <artifactId>slf4j-api</artifactId>
                                <version>${slf4j.version}</version>
                            </additionalDependency>
                            <additionalDependency>
                                <groupId>org.antlr</groupId>
                                <artifactId>antlr4</artifactId>
                                <version>${antlr.version}</version>
                            </additionalDependency>
                            <additionalDependency>
                                <groupId>org.antlr</groupId>
                                <artifactId>antlr4-runtime</artifactId>
                                <version>${antlr.version}</version>
                            </additionalDependency>
                            <additionalDependency>
                                <groupId>com.sun.jersey</groupId>
                                <artifactId>jersey-client</artifactId>
                                <version>${jersey.client.version}</version>
                            </additionalDependency>
                            <additionalDependency>
                                <groupId>com.sun.jersey</groupId>
                                <artifactId>jersey-core</artifactId>
                                <version>${jersey.version}</version>
                            </additionalDependency>
                            <additionalDependency>
                                <groupId>org.apache.httpcomponents</groupId>
                                <artifactId>httpcore-osgi</artifactId>
                                <version>${apache.httpcomponents.core.version}</version>
                            </additionalDependency>
                            <additionalDependency>
                                <groupId>org.apache.httpcomponents</groupId>
                                <artifactId>httpclient-osgi</artifactId>
                                <version>${apache.httpcomponents.client.version}</version>
                            </additionalDependency>
                            <additionalDependency>
                                <groupId>commons-lang</groupId>
                                <artifactId>commons-lang</artifactId>
                                <version>${commons.lang.version}</version>
                            </additionalDependency>
                        </additionalDependencies>
                    </configuration>
                    <executions>
                        <execution>
                            <id>aggregate</id>
                            <goals>
                                <goal>aggregate</goal>
                            </goals>
                            <phase>site</phase>
                        </execution>
                    </executions>
                </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 ONAP oparent -->
            <!-- 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>
                <artifactId>maven-checkstyle-plugin</artifactId>
            </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>
            </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 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>
        </plugins>
    </build>

    <reporting>
        <plugins>
            <plugin>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.4</version>
                <configuration>
                    <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>
                    <excludePackageNames>org.opendaylight.*</excludePackageNames>
                </configuration>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>javadoc-no-fork</report>
                            <report>test-javadoc-no-fork</report>
                        </reports>
                    </reportSet>
                    <reportSet>
                        <id>aggregate</id>
                        <reports>
                            <report>aggregate</report>
                            <report>test-aggregate</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>2.3</version>
                <reportSets>
                    <reportSet>
                        <id>aggregate</id>
                        <reports>
                            <report>aggregate</report>
                            <report>test-aggregate</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.17</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-changelog-plugin</artifactId>
                <version>2.3</version>
                <reportSets>
                    <reportSet>
                        <id>dual-report</id>
                        <configuration>
                            <type>range</type>
                            <range>30</range>
                        </configuration>
                        <reports>
                            <report>changelog</report>
                            <report>file-activity</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>taglist-maven-plugin</artifactId>
                <version>2.4</version>
            </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>
            <!-- http://blog2.vorburger.ch/2016/06/improve-maven-build-speed-with-q.html
                 q = http://memory-alpha.wikia.com/wiki/Q ;)

                 The Quick profile is used during incremental local development, when you want to "just get that JAR built",
                 which is very handy e.g. for fast hot reloading cycles in Karaf with bundle watch.  It (intentionally!) skips
                 tests, quality checks etc. which are great and useful to run before finally submitting changes to Gerrit, and
                 which all must run on Gerrit, but which are overhead during ongoing fast iterative local development.

                 Note that the idea here is that your IDE will already have run quality checks such as e.g. Checkstyle
                 while you typed the code anyway.  Similarly, if you wrote a test, you'll probably already have compiled and run it
                 from your IDE, so when you want the OSGi bundle JAR for Karaf, ASAP, you typically don't want all that to run again.
              -->
            <id>q</id>
            <properties>
                <skipTests>true</skipTests>
                <!-- But NOT <maven.test.skip>true, as that's for compiling, not running, tests;
                     and that's usually quick.  Skipping test compilation with -Pq with maven.test.skip would be
                     particularly confusing when used in a project with maven-jar-plugin <goal>test-jar, so don't.)  -->
                <skipIT>true</skipIT>
                <skipITs>true</skipITs>
                <skip.karaf.featureTest>true</skip.karaf.featureTest>
                <jacoco.skip>true</jacoco.skip>
                <maven.javadoc.skip>true</maven.javadoc.skip>
                <maven.source.skip>true</maven.source.skip>
                <checkstyle.skip>true</checkstyle.skip>
                <findbugs.skip>true</findbugs.skip>
                <spotbugs.skip>true</spotbugs.skip>
                <pmd.skip>true</pmd.skip>
                <cpd.skip>true</cpd.skip>
                <maven.site.skip>true</maven.site.skip>
                <invoker.skip>true</invoker.skip>
                <enforcer.skip>true</enforcer.skip>
                <duplicate-finder.skip>true</duplicate-finder.skip>
                <mdsal.skip.verbose>true</mdsal.skip.verbose> <!-- Bug 6236 -->
                <maven.gitcommitid.skip>true</maven.gitcommitid.skip>
                <modernizer.skip>true</modernizer.skip>
                <format.skipExecute>true</format.skipExecute>
                <format.skipValidate>true</format.skipValidate>
            </properties>
        </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 -->
    </profiles>
</project>
