<!--
============LICENSE_START=======================================================
SDC
================================================================================
Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
================================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
        *
     http://www.apache.org/licenses/LICENSE-2.0
        *
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
============LICENSE_END=========================================================
Modifications copyright (c) 2018-2019 Nokia
================================================================================
-->
<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>

  <groupId>org.openecomp.sdc</groupId>
  <artifactId>sdc-main</artifactId>
  <version>1.7.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>sdc</name>

  <parent>
    <groupId>org.onap.oparent</groupId>
    <artifactId>oparent</artifactId>
    <version>2.0.0</version>
    <relativePath/>
  </parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <tosca.datatype.version>${project.version}</tosca.datatype.version>

    <!-- 3rd parties versions -->
    <bean-matcher.version>0.11</bean-matcher.version>
    <lang3.version>3.10</lang3.version>
    <guava.version>18.0</guava.version>
    <janusgraph.version>0.3.1</janusgraph.version>
    <spring.version>4.3.18.RELEASE</spring.version>
    <jersey-bom.version>2.27</jersey-bom.version>
    <netty.version>4.1.36.Final</netty.version>
    <servlet-api.version>3.1.0</servlet-api.version>
    <wire-mock.version>2.26.3</wire-mock.version>
    <ecomp.version>2.6.0</ecomp.version>
    <cassandra.unit.version>4.3.1.0</cassandra.unit.version>
    <cadi.version>2.1.8</cadi.version>
    <lombok.version>1.18.12</lombok.version>
    <commons-beanutils>1.9.3</commons-beanutils>
    <commons-configuration>2.3</commons-configuration>
    <apache-poi.version>4.1.0</apache-poi.version>
    <onap.logging.version>1.6.1</onap.logging.version>

    <commons.collections.version>4.1</commons.collections.version>
    <ws.rs.version>2.1</ws.rs.version>

    <jetty.version>9.4.18.v20190429</jetty.version>

    <!-- JSON and YAML Parsing -->
    <jackson.version>2.10.0</jackson.version>
    <jackson-annotations.version>${jackson.version}</jackson-annotations.version>
    <jackson.mapper.version>1.9.13</jackson.mapper.version>
    <clearspring.version>2.1.1</clearspring.version>
    <skipYamlJsonValidator>false</skipYamlJsonValidator>

    <!-- Yaml for properties -->
    <snakeyaml.version>1.14</snakeyaml.version>
    <functionaljava.version>4.7</functionaljava.version>
    <httpclient.version>4.5.3</httpclient.version>
    <httpcore.version>4.4.1</httpcore.version>
    <json-simple.version>1.1</json-simple.version>

    <!-- Logging start -->
    <!-- logback -->
    <logback.version>1.2.3</logback.version>
    <slf4j-api.version>1.7.25</slf4j-api.version>
    <commons-codec>1.10</commons-codec>
    <commons-logging>1.2</commons-logging>
    <janino.version>3.0.6</janino.version>
    <log4j.version>2.13.1</log4j.version>

    <!-- aspects -->
    <jcabi.version>0.20.1</jcabi.version>
    <aspectjrt.version>1.8.4</aspectjrt.version>
    <aspectj.version>1.7.4</aspectj.version>
    <jcabi.maven.plugin.version>0.13.2</jcabi.maven.plugin.version>

    <!-- Logging end -->
    <!-- System Metrics -->
    <sigar.version>1.6.4</sigar.version>

    <regex.version>3.0.3</regex.version>

    <!--GSON-->
    <gson.version>2.3.1</gson.version>

    <!--listen to file changes-->
    <commons-jci-core.version>1.1</commons-jci-core.version>

    <!--TESTING-->
    <mockito.version>3.3.3</mockito.version>
    <mockitoJupiter.version>3.3.3</mockitoJupiter.version>
    <jmockit.version>1.35</jmockit.version>
    <junit.version>4.12</junit.version>
    <junit.platform.version>1.6.0</junit.platform.version>
    <junitJupiter.version>5.6.0</junitJupiter.version>
    <assertj.version>3.16.0</assertj.version>
    <testng.version>6.14.3</testng.version>
    <cucumber.version>5.6.0</cucumber.version>
    <bean-matchers.version>0.11</bean-matchers.version>
    <hamcrest.version>2.1</hamcrest.version>
    <hamcrest-all.version>1.3</hamcrest-all.version>
    <maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
    <maven-jar-plugin.version>2.4</maven-jar-plugin.version>

    <!-- parser-->
    <sdc-tosca-parser.version>1.6.5</sdc-tosca-parser.version>

    <!-- sonar -->
    <sonar.projectVersion>${project.version}</sonar.projectVersion>
    <sonar.nodejs.executable>${project.basedir}/node/node</sonar.nodejs.executable>
    <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports
    </sonar.surefire.reportsPath>
    <sonar.javascript.lcov.reportPaths>${project.build.directory}/code-coverage/lcov.info
    </sonar.javascript.lcov.reportPaths>
    <sonar.coverage.jacoco.xmlReportPaths>
      ${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml
    </sonar.coverage.jacoco.xmlReportPaths>
    <sonar.sourceEncoding>${project.build.sourceEncoding}</sonar.sourceEncoding>
    <sonar.projectBaseDir>${project.basedir}</sonar.projectBaseDir>
    <sonar.coverage.exclusions>pom.xml,src/test</sonar.coverage.exclusions>
    <!--cassandra -->
    <cassandra.driver.version>3.8.0</cassandra.driver.version>
    <!-- maven central (Nexus) -->
    <nexus.id.release>nexus</nexus.id.release>
    <nexus.id.snapshot>nexus</nexus.id.snapshot>

    <!--nexus-->
    <npm.registry>https://nexus3.onap.org/repository/npm.public/</npm.registry>
    <nexus.proxy>https://nexus.onap.org</nexus.proxy>
    <sitePath>/content/sites/site/org/openecomp/sdc/${project.version}</sitePath>
    <staging.profile.id>176c31dfe190a</staging.profile.id>
    <!--maven-->
    <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
    <!--docker tags-->
    <docker.tag>${project.version}-${maven.build.timestamp}</docker.tag>
    <!--togglz version-->
    <togglz.version>2.4.1.Final</togglz.version>

    <joda.time.version>2.9.9</joda.time.version>

    <!--sdc-security-utils-->
    <security.util.lib.version>1.6.0</security.util.lib.version>
    <!--jacoco-->
    <jacoco.version>0.8.5</jacoco.version>

    <java.driver.core.version>4.5.1</java.driver.core.version>

    <checkstyle.skip>true</checkstyle.skip>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>

      <dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-bean-validation</artifactId>
        <version>${jersey-bom.version}</version>
      </dependency>

      <dependency>
        <groupId>org.glassfish.hk2.external</groupId>
        <artifactId>asm-all-repackaged</artifactId>
        <version>2.4.0</version>
      </dependency>

      <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>${assertj.version}</version>
      </dependency>

      <dependency>
        <groupId>org.jmockit</groupId>
        <artifactId>jmockit</artifactId>
        <version>${jmockit.version}</version>
      </dependency>

      <dependency>
        <groupId>com.github.tomakehurst</groupId>
        <artifactId>wiremock-standalone</artifactId>
        <version>${wire-mock.version}</version>
      </dependency>

      <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>${cucumber.version}</version>
      </dependency>

      <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>${cucumber.version}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${lang3.version}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy</artifactId>
        <version>2.4.13</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-all</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-handler</artifactId>
        <version>${netty.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <!-- must be on the classpath -->
      <groupId>org.jacoco</groupId>
      <artifactId>org.jacoco.agent</artifactId>
      <classifier>runtime</classifier>
      <version>${jacoco.version}</version>
      <scope>test</scope>
    </dependency>
    <!--JUnit Jupiter Engine to depend on the JUnit5 engine and JUnit 5 API -->
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <version>${junitJupiter.version}</version>
      <scope>test</scope>
    </dependency>
    <!--JUnit Jupiter Engine to depend on the JUnit4 engine and JUnit 4 API  -->
    <dependency>
      <groupId>org.junit.vintage</groupId>
      <artifactId>junit-vintage-engine</artifactId>
      <version>${junitJupiter.version}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <version>${mockito.version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.0.1</version>
        <configuration>
          <failOnError>false</failOnError>
          <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
          <docletArtifact>
            <groupId>org.umlgraph</groupId>
            <artifactId>umlgraph</artifactId>
            <version>5.6</version>
          </docletArtifact>
          <useStandardDocletOptions>true</useStandardDocletOptions>
        </configuration>
      </plugin>
    </plugins>
  </reporting>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${jacoco.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>3.1.0</version>
          <configuration>
            <tarLongFileMode>posix</tarLongFileMode>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>1.6.0</version>
        </plugin>
        <plugin>
          <groupId>org.sonarsource.scanner.maven</groupId>
          <artifactId>sonar-maven-plugin</artifactId>
          <version>3.7.0.1746</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>ru.yaal.maven</groupId>
          <artifactId>write-text-files-maven-plugin</artifactId>
          <version>1.1</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.gmaven</groupId>
          <artifactId>gmaven-plugin</artifactId>
          <version>1.5</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>3.1.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
        <plugin>
          <groupId>io.fabric8</groupId>
          <artifactId>docker-maven-plugin</artifactId>
          <version>0.31.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <groupId>com.github.eirslett</groupId>
          <artifactId>frontend-maven-plugin</artifactId>
          <version>1.8.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven-surefire-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>${maven-surefire-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <groupId>com.github.sylvainlaurent.maven</groupId>
          <artifactId>yaml-json-validator-maven-plugin</artifactId>
          <version>1.0.2</version>
        </plugin>
        <plugin>
          <groupId>pl.project13.maven</groupId>
          <artifactId>git-commit-id-plugin</artifactId>
          <version>4.0.0</version>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.17</version>
        <configuration>
          <suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
          <suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
          <skip>${checkstyle.skip}</skip>
        </configuration>
      </plugin>
      <!-- plugin for parsing the project version -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>parse-version</id>
            <phase>pre-clean</phase>
            <goals>
              <goal>parse-version</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <!-- Java Code Coverage -->
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <inherited>false</inherited>
        <executions>
          <execution>
            <id>default-instrument</id>
            <goals>
              <goal>instrument</goal>
            </goals>
          </execution>
          <execution>
            <id>default-restore-instrumented-classes</id>
            <goals>
              <goal>restore-instrumented-classes</goal>
            </goals>
          </execution>
          <execution>
            <id>default-report</id>
            <goals>
              <goal>report</goal>
            </goals>
            <configuration>
              <dataFile>${project.build.directory}/jacoco.exec</dataFile>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.7.1</version>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-webdav-jackrabbit</artifactId>
            <version>3.0.0</version>
          </dependency>
        </dependencies>
      </plugin>

      <!-- Set the deployment repositories properties. -->
      <plugin>
        <groupId>org.codehaus.gmaven</groupId>
        <artifactId>gmaven-plugin</artifactId>
        <executions>
          <execution>
            <inherited>false</inherited>
            <phase>integration-test</phase>
            <goals>
              <goal>execute</goal>
            </goals>
            <configuration>
              <source>
                pom.properties['deploy.url'] =
                  pom.version.contains('-SNAPSHOT') ?
                    project.distributionManagement.snapshotRepository.url :
                    project.distributionManagement.repository.url;
                pom.properties['repo.id'] = pom.version.contains('-SNAPSHOT') ?
                  project.distributionManagement.snapshotRepository.id :
                  project.distributionManagement.repository.id;
              </source>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit-platform</artifactId>
            <version>${maven-surefire-plugin.version}</version>
          </dependency>
        </dependencies>
        <configuration>
          <printSummary>false</printSummary>
          <systemPropertyVariables>
            <jacoco-agent.destfile>${project.build.directory}/jacoco.exec</jacoco-agent.destfile>
          </systemPropertyVariables>
        </configuration>
      </plugin>
      <plugin>
        <groupId>pl.project13.maven</groupId>
        <artifactId>git-commit-id-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>revision</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <generateGitPropertiesFile>true</generateGitPropertiesFile>
          <generateGitPropertiesFilename>${project.build.outputDirectory}/META-INF/git.properties
          </generateGitPropertiesFilename>
          <failOnNoGitDirectory>true</failOnNoGitDirectory>
          <verbose>false</verbose>
          <includeOnlyProperties>
            <includeOnlyProperty>git.build.version</includeOnlyProperty>
            <includeOnlyProperty>git.build.time</includeOnlyProperty>
            <includeOnlyProperty>git.commit.id</includeOnlyProperty>
            <includeOnlyProperty>git.commit.time</includeOnlyProperty>
            <includeOnlyProperty>git.commit.user.name</includeOnlyProperty>
            <includeOnlyProperty>git.commit.user.email</includeOnlyProperty>
            <includeOnlyProperty>git.commit.message.short</includeOnlyProperty>
            <includeOnlyProperty>git.commit.message.full</includeOnlyProperty>
          </includeOnlyProperties>
          <gitDescribe>
            <skip>true</skip>
          </gitDescribe>
          <useNativeGit>false</useNativeGit>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>all</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <modules>
        <module>onboarding</module>
        <module>common-app-logging</module>
        <module>common-app-api</module>
        <module>common-be</module>
        <module>catalog-dao</module>
        <module>catalog-model</module>
        <module>catalog-be</module>
        <module>asdctool</module>
        <module>catalog-ui</module>
        <module>catalog-fe</module>
        <module>test-apis-ci</module>
        <module>ui-ci</module>
        <module>sdc-os-chef</module>
        <module>utils/webseal-simulator</module>
        <module>integration-tests</module>
      </modules>
    </profile>

    <profile>
      <id>catalog</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <modules>
        <module>common-app-logging</module>
        <module>common-app-api</module>
        <module>common-be</module>
        <module>catalog-dao</module>
        <module>catalog-model</module>
        <module>catalog-be</module>
        <module>asdctool</module>
        <module>catalog-ui</module>
        <module>catalog-fe</module>
        <module>test-apis-ci</module>
        <module>ui-ci</module>
      </modules>
    </profile>

    <profile>
      <id>catalog-be</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <modules>
        <module>common-app-logging</module>
        <module>common-app-api</module>
        <module>common-be</module>
        <module>catalog-dao</module>
        <module>catalog-model</module>
        <module>catalog-be</module>
      </modules>
    </profile>

    <profile>
      <id>onboarding</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <modules>
        <module>onboarding</module>
      </modules>
    </profile>
    <profile>
      <id>fast-build</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <maven.test.skip>true</maven.test.skip>
        <skipYamlJsonValidator>true</skipYamlJsonValidator>
        <checkstyle.skip>true</checkstyle.skip>
        <jacoco.skip>true</jacoco.skip>
      </properties>
      <modules>
        <module>ui-ci</module>
        <module>asdctool</module>
        <module>common-be</module>
        <module>onboarding</module>
        <module>catalog-be</module>
        <module>catalog-ui</module>
        <module>catalog-fe</module>
        <module>catalog-dao</module>
        <module>sdc-os-chef</module>
        <module>test-apis-ci</module>
        <module>catalog-model</module>
        <module>common-app-api</module>
        <module>common-app-logging</module>
      </modules>
    </profile>

  </profiles>

  <repositories>
    <!-- LF repositories -->
    <repository>
      <id>ecomp-releases</id>
      <name>Release Repository</name>
      <url>${nexus.proxy}/content/repositories/releases/</url>
    </repository>
    <repository>
      <id>ecomp-snapshots</id>
      <name>Snapshots Repository</name>
      <url>${nexus.proxy}/content/repositories/snapshots/</url>
    </repository>
    <repository>
      <id>ecomp-public</id>
      <name>Public Repository</name>
      <url>${nexus.proxy}/content/repositories/public/</url>
    </repository>
    <!-- LF repositories END-->
  </repositories>

  <distributionManagement>
    <repository>
      <id>ecomp-releases</id>
      <name>Release Repository</name>
      <url>${nexus.proxy}/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
      <id>ecomp-snapshots</id>
      <name>Snapshot Repository</name>
      <url>${nexus.proxy}/content/repositories/snapshots/</url>
    </snapshotRepository>
    <site>
      <id>ecomp-site</id>
      <url>dav:${nexus.proxy}${sitePath}</url>
    </site>
  </distributionManagement>
</project>

