<!--
  ~ Copyright © 2016-2018 European Support Limited
  ~
  ~ 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.
  -->

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

  <artifactId>sdc-onboarding</artifactId>
  <packaging>pom</packaging>

  <parent>
    <groupId>org.openecomp.sdc</groupId>
    <artifactId>sdc-main</artifactId>
    <version>1.7.0-SNAPSHOT</version>
  </parent>

  <modules>
    <module>../common</module>
    <module>../openecomp-be</module>
    <module>../openecomp-ui</module>
  </modules>

  <properties>

    <maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.targer>1.8</maven.compiler.targer>
    <jacoco.skip>true</jacoco.skip>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <!-- Maven plugin versions -->
    <mvn.assembly.version>2.1</mvn.assembly.version>
    <mvn.compiler.version>3.7.0</mvn.compiler.version>
    <mvn.clean.version>2.5</mvn.clean.version>
    <mvn.resource.version>3.1.0</mvn.resource.version>
    <mvn.deploy.version>2.4</mvn.deploy.version>
    <mvn.hub.version>1.4.0</mvn.hub.version>
    <mvn.install.version>2.4</mvn.install.version>
    <mvn.jar.version>2.4</mvn.jar.version>
    <mvn.jaxb2.version>0.13.3</mvn.jaxb2.version>
    <mvn.license.version>1.10</mvn.license.version>
    <mvn.shade.version>2.3</mvn.shade.version>
    <maven.dependency.version>2.8</maven.dependency.version>
    <mvn.swagger.version>3.1.0</mvn.swagger.version>
    <mvn.war.version>2.1.1</mvn.war.version>
    <maven-core.version>3.5.3</maven-core.version>
    <maven-plugin-plugin.version>3.5.1</maven-plugin-plugin.version>
    <maven-plugin-annotations.version>3.5.1</maven-plugin-annotations.version>
    <mvn.antrun.version>1.8</mvn.antrun.version>

    <!-- Onboarding 3rd party versions -->
    <aspectj.version>1.8.9</aspectj.version>
    <aspectjrt.version>${aspectj.version}</aspectjrt.version>
    <bsh.version>2.0b6</bsh.version>
    <cglib.nodep.version>3.2.4</cglib.nodep.version>
    <classmate.version>1.3.3</classmate.version>
    <commons.codec.version>1.10</commons.codec.version>
    <commons.digester.version>2.1</commons.digester.version>
    <commons.io.version>2.5</commons.io.version>
    <commons.lang.version>2.6</commons.lang.version>
    <commons.lang3.version>3.4</commons.lang3.version>
    <cxf.version>3.3.6</cxf.version>
    <datastax.cassandra.version>3.8.0</datastax.cassandra.version>
    <easymock.version>3.4</easymock.version>
    <groovy.version>2.4.8</groovy.version>
    <groovy.minimal.version>1.5.8</groovy.minimal.version>
    <fop.version>2.2</fop.version>
    <freemarker.version>2.3.26-incubating</freemarker.version>
    <hibernate.validator.version>5.3.6.Final</hibernate.validator.version>
    <http.client.version>4.5.3</http.client.version>
    <http.core.version>4.4.1</http.core.version>
    <httpasyncclient.version>4.1.2</httpasyncclient.version>
    <janino.version>2.7.7</janino.version>
    <com.sun.xml.version>2.3.3</com.sun.xml.version>
    <javax.el.version>2.2.4</javax.el.version>
    <javax.el-api.version>3.0.1-b04</javax.el-api.version>
    <javax.inject.version>1</javax.inject.version>
    <javax.servlet.version>2.5</javax.servlet.version>
    <jackson.annotations.version>${jackson.version}</jackson.annotations.version>
    <jackson.dataformat.version>${jackson.version}</jackson.dataformat.version>
    <jcommander.version>1.58</jcommander.version>
    <jetty.servlets.version>9.4.11.v20180605</jetty.servlets.version>
    <jersey.core.version>1.19.1</jersey.core.version>
    <jersey.multipart.version>1.18.1</jersey.multipart.version>
    <logback.version>1.2.3</logback.version>
    <org.codehaus.jackson.version>1.9.13</org.codehaus.jackson.version>
    <org.everit.json.schema.version>1.5.1</org.everit.json.schema.version>
    <org.reflections.version>0.9.10</org.reflections.version>
    <servlet.version>2.5</servlet.version>
    <slf4j.version>1.7.21</slf4j.version>
    <snakeyaml.version>1.17</snakeyaml.version>
    <spring.framework.version>4.3.18.RELEASE</spring.framework.version>
    <swagger.version>2.0.8</swagger.version>
    <woodstox.version>4.4.1</woodstox.version>
    <zusammen.version>1.0.1</zusammen.version>
    <zusammen-state-store.version>1.0.2</zusammen-state-store.version>
    <zusammen-collaboration-store.version>1.0.2</zusammen-collaboration-store.version>
    <zusammen-index-store.version>1.0.0</zusammen-index-store.version>
    <build.tools.version>${project.version}</build.tools.version>
    <bouncycastle.version>1.61</bouncycastle.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.framework.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.framework.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>1.3</version>
      </dependency>
      <dependency>
        <groupId>com.beust</groupId>
        <artifactId>jcommander</artifactId>
        <version>${jcommander.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpasyncclient</artifactId>
        <version>${httpasyncclient.version}</version>
      </dependency>
      <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>${com.sun.xml.version}</version>
      </dependency>
      <dependency>
        <groupId>org.beanshell</groupId>
        <artifactId>bsh</artifactId>
        <version>${bsh.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-digester</groupId>
        <artifactId>commons-digester</artifactId>
        <version>${commons.digester.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml</groupId>
        <artifactId>classmate</artifactId>
        <version>${classmate.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all-minimal</artifactId>
        <version>${groovy.minimal.version}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.janino</groupId>
        <artifactId>janino</artifactId>
        <version>${janino.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.annotations.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>${aspectjrt.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>${servlet-api.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>${commons-beanutils}</version>
      </dependency>
      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>annotations</artifactId>
        <version>3.0.1u2</version>
      </dependency>
      <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib-nodep</artifactId>
        <version>${cglib.nodep.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>${logback.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-yaml</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${commons.codec.version}</version>
      </dependency>
      <dependency>
        <groupId>com.datastax.cassandra</groupId>
        <artifactId>cassandra-driver-core</artifactId>
        <version>${datastax.cassandra.version}</version>
      </dependency>
      <dependency>
        <groupId>com.datastax.cassandra</groupId>
        <artifactId>cassandra-driver-mapping</artifactId>
        <version>${datastax.cassandra.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>${ws.rs.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${gson.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${commons.io.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons.lang3.version}</version>
      </dependency>
      <dependency>
        <groupId>io.swagger.core.v3</groupId>
        <artifactId>swagger-annotations</artifactId>
        <version>${swagger.version}</version>
      </dependency>
      <dependency>
        <groupId>com.github.tomakehurst</groupId>
        <artifactId>wiremock</artifactId>
        <version>${wire-mock.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>${mvn.jar.version}</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-clean-plugin</artifactId>
        <version>${mvn.clean.version}</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${maven-surefire-plugin.version}</version>
        <configuration>
          <forkCount>${fork.count}</forkCount>
          <forkMode>${fork.mode}</forkMode>
          <printSummary>false</printSummary>
          <additionalClasspathElements>
            <additionalClasspathElement>${project.basedir}/src/test/resources
            </additionalClasspathElement>
          </additionalClasspathElements>
          <systemPropertyVariables>
            <logback.configurationFile>src/test/resources/logback-test.xml
            </logback.configurationFile>
            <config.location>${project.basedir}/configuration</config.location>
          </systemPropertyVariables>
          <useSystemClassLoader>${useSystemClassLoader}</useSystemClassLoader>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-install-plugin</artifactId>
        <version>${mvn.install.version}</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>${mvn.resource.version}</version>
      </plugin>
    </plugins>
    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
        <excludes>
          <exclude>**/*</exclude>
        </excludes>
      </testResource>
    </testResources>
  </build>

</project>
