<?xml version="1.0" ?>
<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>
  <parent>
    <groupId>org.onap.oparent</groupId>
    <artifactId>oparent</artifactId>
    <version>2.1.0</version>
    <relativePath />
  </parent>
  <groupId>org.onap.so</groupId>
  <artifactId>so</artifactId>
  <packaging>pom</packaging>
  <version>1.7.1-SNAPSHOT</version>
  <name>so</name>
  <description>This Maven project is responsible to build and package all child projects - contributions in the MSO project.
	This build can be configured to run Functional tests and to start/stop a jboss server + Mysql DB.
	"mvn clean install -P with-integration-tests -Dintegration-tests-user=root -Dintegration-tests-group=root -Dintegration-tests-db-type=MYSQL"
	</description>
  <organization>
    <name>ONAP - SO</name>
    <url>http://www.onap.org/</url>
  </organization>
  <modules>
    <module>deployment-configs</module>
    <module>common</module>
    <module>graph-inventory</module>
    <module>mso-catalog-db</module>
    <module>mso-api-handlers</module>
    <module>adapters</module>
    <module>asdc-controller</module>
    <module>so-optimization-clients</module>
    <module>so-sdn-clients</module>
    <module>bpmn</module>
    <module>cloudify-client</module>
    <module>cxf-logging</module>
    <module>so-monitoring</module>
    <module>so-simulator</module>
    <module>so-etsi-nfvo</module>
    <module>packages</module>
  </modules>
  <properties>
    <project.mso.base.folder>.</project.mso.base.folder>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <sonar.language>java</sonar.language>
    <java.version>11</java.version>
    <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
    <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
    <sonar.coverage.jacoco.xmlReportPaths>${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
    <!--sonar.jacoco.itReportPath>${project.mso.base.folder}/packages/arquillian-unit-tests/target/mso-automated-tests/jacoco-it.exec</sonar.jacoco.itReportPath -->
    <sonar.jacoco.reportMissing.force.zero>true</sonar.jacoco.reportMissing.force.zero>
    <sonar.projectVersion>${project.version}</sonar.projectVersion>
    <sonar.cpd.exclusions>**/*</sonar.cpd.exclusions>
    <jacoco.version>0.8.5</jacoco.version>
    <org.apache.maven.user-settings />
    <openstack.version>1.7.1</openstack.version>
    <maven.build.timestamp.format>yyyyMMdd'T'HHmm</maven.build.timestamp.format>
    <originalClassifier>original</originalClassifier>
    <docker.skip>true</docker.skip>
    <docker.skip.build>true</docker.skip.build>
    <docker.skip.push>true</docker.skip.push>
    <docker.buildArg.project_version>${project.version}</docker.buildArg.project_version>
    <docker.buildArg.artifact_id>${project.artifactId}</docker.buildArg.artifact_id>
    <docker.buildArg.docker_repository>${dockerPullRepo}</docker.buildArg.docker_repository>
    <enforcer.skip>false</enforcer.skip>
    <nexusproxy>https://nexus.onap.org</nexusproxy>
    <releaseNexusPath>content/repositories/releases/</releaseNexusPath>
    <snapshotNexusPath>content/repositories/snapshots/</snapshotNexusPath>
    <publicNexusPath>content/repositories/public/</publicNexusPath>
    <siteNexusPath>content/sites/site/org/onap/so/${project.version}/</siteNexusPath>
    <cxf.version>3.3.3</cxf.version>
    <jax.ws.rs>2.1</jax.ws.rs>
    <springboot.version>2.1.5.RELEASE</springboot.version>
    <camunda.springboot.version>3.2.0</camunda.springboot.version>
    <format.skipValidate>false</format.skipValidate>
    <format.skipExecute>true</format.skipExecute>
    <io.fabric8.version>0.33.0</io.fabric8.version>
    <appc.client.version>1.7.2</appc.client.version>
    <bowman.client.version>0.8.0</bowman.client.version>
    <aaf.cadi.version>2.1.15</aaf.cadi.version>
  </properties>
  <distributionManagement>
    <repository>
      <id>ecomp-releases</id>
      <url>${nexusproxy}/${releaseNexusPath}</url>
    </repository>
    <snapshotRepository>
      <id>ecomp-snapshots</id>
      <url>${nexusproxy}/${snapshotNexusPath}</url>
    </snapshotRepository>
    <site>
      <id>ecomp-site</id>
      <url>dav:${nexusproxy}${siteNexusPath}</url>
    </site>
  </distributionManagement>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <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>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
  <!-- configure build -->
  <!-- *********************************************************************************************************** -->
  <!-- Plugins and repositories -->
  <pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <url>http://repo1.maven.org/maven2</url>
    </pluginRepository>
    <pluginRepository>
      <id>restlet</id>
      <url>http://maven.restlet.com</url>
    </pluginRepository>
    <pluginRepository>
      <id>ecomp-public</id>
      <url>${nexusproxy}/${publicNexusPath}</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </pluginRepository>
    <pluginRepository>
      <id>ecomp-release</id>
      <url>${nexusproxy}/${releaseNexusPath}</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </pluginRepository>
    <pluginRepository>
      <id>ecomp-snapshots</id>
      <url>${nexusproxy}/${snapshotNexusPath}</url>
      <releases>
        <enabled>false</enabled>
      </releases>
    </pluginRepository>
  </pluginRepositories>
  <repositories>
    <repository>
      <id>ecomp-public</id>
      <url>https://nexus.onap.org/content/repositories/public/</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>ecomp-releases</id>
      <url>https://nexus.onap.org/content/repositories/releases/</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>ecomp-snapshots</id>
      <url>https://nexus.onap.org/content/repositories/snapshots/</url>
      <releases>
        <enabled>false</enabled>
      </releases>
    </repository>
    <repository>
      <id>camunda-bpm</id>
      <url>https://app.camunda.com/nexus/content/repositories/camunda-bpm/</url>
    </repository>
    <repository>
      <id>camunda-public</id>
      <url>https://app.camunda.com/nexus/content/groups/public</url>
    </repository>
    <repository>
      <!-- TODO: remove from ONAP environemnt -->
      <id>onap-releases</id>
      <url>https://nexus.onap.org/content/repositories/releases/</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <!-- TODO: remove from ONAP environemnt -->
      <id>onap-snapshots</id>
      <url>https://nexus.onap.org/content/repositories/snapshots/</url>
      <releases>
        <enabled>false</enabled>
      </releases>
    </repository>
  </repositories>
  <!-- *********************************************************************************************************** -->
  <!-- Build -->
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
      <resource>
        <directory>target/generated-sources/license</directory>
        <includes>
          <include>third-party-licenses.txt</include>
        </includes>
      </resource>
      <resource>
        <directory>target/generated-resources/licenses</directory>
        <includes>
          <include>*.*</include>
        </includes>
        <targetPath>third-party-licenses</targetPath>
      </resource>
    </resources>
    <plugins>
      <!-- <plugin> <groupId>org.sonatype.plugins</groupId> <artifactId>nexus-staging-maven-plugin</artifactId> 
        <version>1.6.7</version> <extensions>true</extensions> <configuration> <nexusUrl>${nexusproxy}</nexusUrl> 
        <stagingProfileId>176c31dfe190a</stagingProfileId> <serverId>ecomp-staging</serverId> 
        </configuration> </plugin> -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
        <version>2.8</version>
        <!-- This version supports the "deployAtEnd" parameter -->
        <configuration>
          <skip />
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
          <debug>true</debug>
          <compilerArgument>-Xlint</compilerArgument>
          <verbose>true</verbose>
          <showDeprecation>true</showDeprecation>
          <showWarnings>true</showWarnings>
          <compilerArgs>
            <arg>-parameters</arg>
          </compilerArgs>
          <forceJavacCompilerUse>true</forceJavacCompilerUse>
          <source>11</source>
          <target>11</target>
          <release>11</release>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-ejb-plugin</artifactId>
        <version>2.2.1</version>
        <configuration>
          <ejbVersion>3.0</ejbVersion>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
            </manifest>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.17</version>
        <configuration>
          <skip>true</skip>
          <includes>**/org/openecomp/**/*.java</includes>
          <configLocation>/google_checks.xml</configLocation>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>2.5.2</version>
        <configuration>
          <includeFilterFile>project-configs/code-tools/findbugs_include_filter.xml</includeFilterFile>
          <nested>true</nested>
          <findbugsXmlOutput>true</findbugsXmlOutput>
          <findbugsXmlWithMessages>true</findbugsXmlWithMessages>
          <xmlOutput>true</xmlOutput>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>sonar-maven-plugin</artifactId>
        <version>5.1</version>
      </plugin>
      <plugin>
        <artifactId>maven-scm-plugin</artifactId>
        <version>1.8.1</version>
        <configuration>
          <tag>${project.artifactId}-${project.version}</tag>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.9</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.6</version>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-webdav-jackrabbit</artifactId>
            <version>2.10</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <version>2.5.2</version>
        <configuration>
          <formats>
            <format>xml</format>
          </formats>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>versions-maven-plugin</artifactId>
        <version>1.3.1</version>
      </plugin>

      <plugin>
        <groupId>com.fortify.ps.maven.plugin</groupId>
        <artifactId>sca-maven-plugin</artifactId>
        <version>4.20</version>
        <configuration>
          <buildId>mso-${project.version}</buildId>
          <source>${java.version}</source>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>${jacoco.version}</version>
        <executions>
          <execution>
            <id>prepare-agent</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>report</id>
            <goals>
              <goal>report</goal>
            </goals>
            <configuration>
              <dataFile>${project.build.directory}/code-coverage/jacoco.exec</dataFile>
              <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>license-maven-plugin</artifactId>
        <version>1.15</version>
        <configuration>
          <inceptionYear>2017</inceptionYear>
          <projectName>ONAP - SO</projectName>
          <licenseName>apache_v2</licenseName>
          <addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
          <emptyLineAfterHeader>true</emptyLineAfterHeader>
          <trimHeaderLine>true</trimHeaderLine>
          <processStartTag>============LICENSE_START=======================================================</processStartTag>
          <sectionDelimiter>================================================================================</sectionDelimiter>
          <processEndTag>============LICENSE_END=========================================================</processEndTag>
          <includes>
            <include>**/*.java</include>
            <include>**/*.groovy</include>
          </includes>
          <excludes>
            <exclude>**/com/att/**</exclude>
          </excludes>
        </configuration>
        <executions>
          <execution>
            <id>verify-headers</id>
            <goals>
              <goal>check-file-header</goal>
            </goals>
            <configuration>
              <failOnNotUptodateHeader>true</failOnNotUptodateHeader>
              <failOnMissingHeader>true</failOnMissingHeader>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.gmaven</groupId>
        <artifactId>groovy-maven-plugin</artifactId>
        <version>2.0</version>
        <executions>
          <!-- set absolute base path from super pom -->
          <execution>
            <id>find-basepath</id>
            <phase>validate</phase>
            <goals>
              <goal>execute</goal>
            </goals>
            <configuration>
              <source>
                <![CDATA[
                    import java.io.File;
                    log.info('## define projects super pom absolute path through basepath_marker')
                    String p = "basepath_marker";
                    File f = null;
                    if( p != null ) {
                        def _max_child_poms = 0
                        while( _max_child_poms++ < 5 ) {
                            f = new File( p );
                            if( f.exists() ) {
                                break;
                            }   
                            p = "../" + p;
                        }
                    }
                    if( f != null ) {
                        String basePath = f.getCanonicalPath();
                        basePath = basePath.substring( 0, basePath.lastIndexOf( File.separator ) ); 
                        project.properties['base-path'] = basePath.replace( '\\' , '/');
                        log.info(' - used base path = ' + project.properties['base-path'] );
                    } else {
                        log.error( 'Could not find basepath_marker marker file!' );
                        System.stop( 0 );
                    }
                ]]>
              </source>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>net.revelc.code.formatter</groupId>
        <artifactId>formatter-maven-plugin</artifactId>
        <version>2.9.0</version>
        <executions>
          <execution>
            <id>format-java</id>
            <goals>
              <goal>format</goal>
            </goals>
            <phase>process-sources</phase>
            <configuration>
              <skip>${format.skipExecute}</skip>
              <configFile>${base-path}/project-configs/code-tools/onap-eclipse-format.xml</configFile>
            </configuration>
          </execution>
          <execution>
            <id>format-xml</id>
            <goals>
              <goal>format</goal>
            </goals>
            <phase>process-sources</phase>
            <configuration>
              <skip>${format.skipExecute}</skip>
              <sourceDirectory>${project.basedir}</sourceDirectory>
              <configXmlFile>${base-path}/project-configs/code-tools/pom-format.properties</configXmlFile>
              <includes>
                <include>pom.xml</include>
              </includes>
            </configuration>
          </execution>
          <execution>
            <id>validate-java</id>
            <goals>
              <goal>validate</goal>
            </goals>
            <configuration>
              <skip>${format.skipValidate}</skip>
              <configFile>${base-path}/project-configs/code-tools/onap-eclipse-format.xml</configFile>
            </configuration>
          </execution>
          <execution>
            <id>validate-poms</id>
            <goals>
              <goal>validate</goal>
            </goals>
            <configuration>
              <skip>${format.skipValidate}</skip>
              <configFile>${base-path}/project-configs/code-tools/pom-format.properties</configFile>
              <includes>
                <include>pom.xml</include>
              </includes>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.9.8</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.0.0-M3</version>
        <executions>
          <execution>
            <id>enforce-property</id>
            <configuration>
              <skip>true</skip>
            </configuration>
          </execution>
          <execution>
            <id>enforce-no-snapshots</id>
            <configuration>
              <skip>true</skip>
            </configuration>
          </execution>
          <execution>
            <id>enforce-banned-dependencies</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>org.powermock</exclude>
                  </excludes>
                  <searchTransitive>false</searchTransitive>
                </bannedDependencies>
              </rules>
              <fail>true</fail>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <versionRange>[1.0.0,)</versionRange>
                    <goals>
                      <goal>check</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.codehaus.gmaven</groupId>
                    <artifactId>groovy-maven-plugin</artifactId>
                    <versionRange>[1.0.0,)</versionRange>
                    <goals>
                      <goal>execute</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute />
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
        <plugin>
          <groupId>io.fabric8</groupId>
          <artifactId>docker-maven-plugin</artifactId>
          <version>${io.fabric8.version}</version>
          <configuration>
            <skip>${docker.skip}</skip>
            <skipBuild>${docker.skip.build}</skipBuild>
            <skipPush>${docker.skip.push}</skipPush>
            <dockerHost>${docker.newHost}</dockerHost>
            <!-- 1. Update address to your local docker VM. 2. Add IP to 
              your NO_PROXY environment variable -->
            <certPath>${docker.host.cert.path}</certPath>
            <!-- Add -Ddocker.host.cert.pat="path to your local certs directory" 
              to maven build command -->
            <pushRegistry>${dockerPushRepo}</pushRegistry>
            <!-- Update .m2/settings.xml Add server id settings.dockerRepository, 
              username, and password -->
            <pullRegistry>${dockerPullRepo}</pullRegistry>
            <!-- If docker repo is not public. Update .m2/settings.xml Add 
              server id settings.dockerRepository, username, and password -->
            <images>
              <image>
                <alias>service</alias>
                <name>${project.artifactId}:${project.version}</name>
                <build>
                  <dockerFileDir>${project.build.directory}</dockerFileDir>
                </build>
              </image>
            </images>
          </configuration>
          <executions>
            <execution>
              <id>start</id>
              <goals>
                <goal>build</goal>
                <goal>push</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.2</version>
          <configuration>
            <systemPropertyVariables>
              <so.log.level>DEBUG</so.log.level>
            </systemPropertyVariables>
            <rerunFailingTestsCount>2</rerunFailingTestsCount>
            <parallel>classes</parallel>
            <useUnlimitedThreads>false</useUnlimitedThreads>
            <threadCount>1</threadCount>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>2.22.2</version>
          <configuration>
            <skip>true</skip>
            <systemPropertyVariables>
              <so.log.level>DEBUG</so.log.level>
            </systemPropertyVariables>
            <rerunFailingTestsCount>2</rerunFailingTestsCount>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <executions>
            <execution>
              <id>extract-docker-file</id>
              <goals>
                <goal>unpack</goal>
              </goals>
              <configuration>
                <skip>true</skip>
                <artifactItems>
                  <artifactItem>
                    <groupId>org.onap.so</groupId>
                    <artifactId>deployment-configs</artifactId>
                    <version>${project.version}</version>
                    <outputDirectory>${project.build.directory}</outputDirectory>
                    <includes>*,scripts/**,certs/**, logger/*.xml</includes>
                    <excludes>Kubernetes</excludes>
                  </artifactItem>
                </artifactItems>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
          <executions>
            <execution>
              <id>original</id>
              <phase>none</phase>
              <goals>
                <goal>jar</goal>
              </goals>
              <configuration>
                <classifier>${originalClassifier}</classifier>
                <includes>
                  <include>**</include>
                </includes>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
          <version>${springboot.version}</version>
          <executions>
            <execution>
              <id>build-info</id>
              <goals>
                <goal>build-info</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <!-- *********************************************************************************************************** -->
  <!-- Dependencies -->
  <dependencies>
    <dependency>
      <groupId>org.onap.logging-analytics</groupId>
      <artifactId>logging-slf4j</artifactId>
    </dependency>
    <dependency>
      <groupId>org.onap.logging-analytics</groupId>
      <artifactId>logging-filter-base</artifactId>
    </dependency>
    <dependency>
      <groupId>org.onap.logging-analytics</groupId>
      <artifactId>logging-filter-spring</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.module</groupId>
      <artifactId>jackson-module-jaxb-annotations</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.jaxrs</groupId>
      <artifactId>jackson-jaxrs-base</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.jaxrs</groupId>
      <artifactId>jackson-jaxrs-json-provider</artifactId>
    </dependency>
    <dependency>
      <groupId>javax.ws.rs</groupId>
      <artifactId>javax.ws.rs-api</artifactId>
      <version>${jax.ws.rs}</version>
    </dependency>
    <dependency>
      <groupId>javax.annotation</groupId>
      <artifactId>javax.annotation-api</artifactId>
      <version>1.3.1</version>
    </dependency>
    <dependency>
      <groupId>javax.inject</groupId>
      <artifactId>javax.inject</artifactId>
      <version>1</version>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-library</artifactId>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>xmlunit</groupId>
      <artifactId>xmlunit</artifactId>
      <version>1.6</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.github.tomakehurst</groupId>
      <artifactId>wiremock-standalone</artifactId>
      <version>2.13.0</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>jetty</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.google.guava</groupId>
          <artifactId>guava</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-core</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-annotations</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-databind</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.httpcomponents</groupId>
          <artifactId>httpclient</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.skyscreamer</groupId>
          <artifactId>jsonassert</artifactId>
        </exclusion>
        <exclusion>
          <groupId>xmlunit</groupId>
          <artifactId>xmlunit</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.jayway.jsonpath</groupId>
          <artifactId>json-path</artifactId>
        </exclusion>
        <exclusion>
          <groupId>net.sf.jopt-simple</groupId>
          <artifactId>jopt-simple</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.openpojo</groupId>
      <artifactId>openpojo</artifactId>
      <version>0.8.13</version>
    </dependency>
    <dependency>
      <groupId>com.shazam</groupId>
      <artifactId>shazamcrest</artifactId>
      <version>0.11</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>com.google.guava</groupId>
          <artifactId>guava</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-lang3</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.assertj</groupId>
      <artifactId>assertj-core</artifactId>
      <version>3.11.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ow2.asm</groupId>
      <artifactId>asm</artifactId>
      <version>7.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.googlecode.junit-toolbox</groupId>
      <artifactId>junit-toolbox</artifactId>
      <version>2.4</version>
    </dependency>
  </dependencies>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.onap.logging-analytics</groupId>
        <artifactId>logging-slf4j</artifactId>
        <version>1.6.7</version>
      </dependency>
      <dependency>
        <groupId>org.onap.logging-analytics</groupId>
        <artifactId>logging-filter-base</artifactId>
        <version>1.6.7</version>
      </dependency>
      <dependency>
        <groupId>org.onap.logging-analytics</groupId>
        <artifactId>logging-filter-spring</artifactId>
        <version>1.6.7</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.4.4</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.12</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.5</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>com.sun.xml.fastinfoset</groupId>
        <artifactId>FastInfoset</artifactId>
        <version>1.2.13</version>
        <scope>compile</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${springboot.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.yaml</groupId>
        <artifactId>snakeyaml</artifactId>
        <version>1.26</version>
      </dependency>
      <dependency>
        <groupId>javax.interceptor</groupId>
        <artifactId>javax.interceptor-api</artifactId>
        <version>1.2.2</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <version>${springboot.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.vaadin.external.google</groupId>
            <artifactId>android-json</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>net.javacrumbs.shedlock</groupId>
        <artifactId>shedlock-spring</artifactId>
        <version>4.0.0</version>
      </dependency>
      <dependency>
        <groupId>net.javacrumbs.shedlock</groupId>
        <artifactId>shedlock-provider-jdbc-template</artifactId>
        <version>4.0.0</version>
      </dependency>
      <dependency>
        <groupId>org.flywaydb</groupId>
        <artifactId>flyway-core</artifactId>
        <version>5.2.4</version>
      </dependency>
      <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20140107</version>
      </dependency>
      <dependency>
        <groupId>org.onap.aai.schema-service</groupId>
        <artifactId>aai-schema</artifactId>
        <version>1.7.2</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <profiles>
    <profile>
      <id>docker-image-build</id>
      <properties>
        <docker.skip>false</docker.skip>
        <docker.skip.build>false</docker.skip.build>
      </properties>
    </profile>
    <profile>
      <id>docker-image-build-push</id>
      <properties>
        <docker.skip>false</docker.skip>
        <docker.skip.build>false</docker.skip.build>
        <docker.skip.push>false</docker.skip.push>
      </properties>
    </profile>
    <profile>
      <id>format</id>
      <properties>
        <format.skipValidate>true</format.skipValidate>
        <format.skipExecute>false</format.skipExecute>
      </properties>
    </profile>
    <profile>
      <id>m2e</id>
      <activation>
        <property>
          <name>m2e.version</name>
        </property>
      </activation>
      <properties>
        <originalClassifier />
      </properties>
    </profile>
  </profiles>
</project>
