<?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>2.2.4.RELEASE</version>
        <relativePath/>
    </parent>

    <groupId>org.onap.ccsdk.parent</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.8-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-SNAPSHOT</ccsdk.cds.version>
        <ccsdk.features.version>0.7.6-SNAPSHOT</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.2</ccsdk.sli.plugins.version>
        <ccsdk.distribution.version>0.7.4-SNAPSHOT</ccsdk.distribution.version>

        <!-- Spring versions -->
        <spring.boot.version>2.2.4.RELEASE</spring.boot.version>
        <spring.version>5.2.3.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.8-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>
