<!--
============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>

    <!-- 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>

    <!-- 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>

  </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.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>${mockito.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>
  </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.0.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.1.0</version>
        </plugin>
        <plugin>
          <groupId>io.fabric8</groupId>
          <artifactId>docker-maven-plugin</artifactId>
          <version>0.26.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.1</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>
        </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>
      </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>

  </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>