<?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.0.0</version>
    <relativePath />
  </parent>
  <groupId>org.onap.so</groupId>
  <artifactId>so</artifactId>
  <packaging>pom</packaging>
  <version>1.4.0-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>mso-catalog-db</module>
    <module>mso-api-handlers</module>
    <module>adapters</module>
    <module>asdc-controller</module>
    <module>bpmn</module>
    <module>cloudify-client</module>
    <module>cxf-logging</module>
    <module>so-monitoring</module>
    <module>vnfm-simulator</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>
    <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
    <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
    <sonar.jacoco.reportPath>${project.build.directory}/code-coverage/jacoco-ut.exec</sonar.jacoco.reportPath>
    <!--sonar.jacoco.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.7.5.201505241946</jacoco.version>
    <org.apache.maven.user-settings />
    <openstack.version>1.5.0-SNAPSHOT</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>true</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.2.6</cxf.version>
    <jax.ws.rs>2.1</jax.ws.rs>
    <springboot.version>2.0.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>4.1.0</io.fabric8.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.6.1</version>
        <configuration>
          <debug>true</debug>
          <compilerArgument>-Xlint</compilerArgument>
          <verbose>true</verbose>
          <showDeprecation>true</showDeprecation>
          <showWarnings>true</showWarnings>
          <source>1.8</source>
          <target>1.8</target>
          <compilerArgs>
            <arg>-parameters</arg>
          </compilerArgs>
        </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>1.8</source>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>${jacoco.version}</version>
        <executions>
          <execution>
            <id>default-prepare-agent</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>default-report</id>
            <goals>
              <goal>report</goal>
            </goals>
          </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>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>io.fabric8</groupId>
          <artifactId>fabric8-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>${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.20</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.20</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>
                <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>tests</id>
              <goals>
                <goal>test-jar</goal>
              </goals>
              <configuration>
                <skip>false</skip>
              </configuration>
            </execution>
            <execution>
              <id>original</id>
              <phase>package</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>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.10</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>com.googlecode.junit-toolbox</groupId>
      <artifactId>junit-toolbox</artifactId>
      <version>2.4</version>
    </dependency>
  </dependencies>
  <dependencyManagement>
    <dependencies>
      <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
      <!-- force use of version 4.5 everywhere in transient deps, aligned on WildFly 10 version -->
      <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.23</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>0.18.2</version>
      </dependency>
      <dependency>
        <groupId>net.javacrumbs.shedlock</groupId>
        <artifactId>shedlock-provider-jdbc-template</artifactId>
        <version>0.18.2</version>
      </dependency>
      <dependency>
        <groupId>org.flywaydb</groupId>
        <artifactId>flyway-core</artifactId>
        <version>5.1.4</version>
      </dependency>
      <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20140107</version>
      </dependency>
      <dependency>
        <groupId>org.yaml</groupId>
        <artifactId>snakeyaml</artifactId>
        <version>1.19</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <profiles>
    <profile>
      <id>docker-image-build</id>
      <properties>
        <docker.skip>false</docker.skip>
        <docker.skip.build>false</docker.skip.build>
        <fabric8.skipResourceValidation>true</fabric8.skipResourceValidation>
      </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>
        <fabric8.skipResourceValidation>true</fabric8.skipResourceValidation>
      </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>
