<!--
  ~ 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.5.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>
        <mvn.surefire.version>2.19.1</mvn.surefire.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.0b5</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.collections.version>4.1</commons.collections.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.1.16</cxf.version>
        <datastax.cassandra.version>3.4.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>
        <gson.version>2.3.1</gson.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>
        <jaxb.impl.version>2.2.11</jaxb.impl.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.version>2.8.10</jackson.version>
        <jackson.annotations.version>${jackson.version}</jackson.annotations.version>
        <jackson.dataformat.version>${jackson.version}</jackson.dataformat.version>
        <jackson.mapper.version>1.9.13</jackson.mapper.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>
        <junit.version>4.12</junit.version>
        <logback.version>1.2.3</logback.version>
        <lombok.version>1.18.2</lombok.version>
        <mockito.all.version>1.10.19</mockito.all.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>
        <powermock.version>2.0.0-beta.5</powermock.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>1.5.3</swagger.version>
        <testng.version>6.9.10</testng.version>
        <woodstox.version>4.4.1</woodstox.version>
        <ws.rs.version>2.0.1</ws.rs.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>
        <togglz.version>2.4.1.Final</togglz.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>${jaxb.impl.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>
            </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</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>
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>${testng.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-all</artifactId>
                <version>${mockito.all.version}</version>
                <scope>test</scope>
            </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>${mvn.surefire.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>
