<?xml version="1.0"?>
<!--/*-
        * ============LICENSE_START=======================================================
        * OSAM Core
        * ================================================================================
        * Copyright (C) 2018 AT&T
        * ================================================================================
        * 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=========================================================
        */-->

<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.onap.osam</groupId>
	<artifactId>onap-enabler</artifactId>
	<version>0.0.2</version>
    <packaging>pom</packaging>

    <properties>
        <encoding>UTF-8</encoding>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <epsdk.version>2.4.0</epsdk.version>
        <springframework.version>4.2.9.RELEASE</springframework.version>
        <hibernate.version>4.3.11.Final</hibernate.version>
        <!-- Skip assembling the zip by default -->
        <skipassembly>true</skipassembly>
        <!-- Tests usually require some setup that maven cannot do, so skip. -->
        <!--<skiptests>false</skiptests>-->
        <nexusproxy>https://nexus.onap.org</nexusproxy>
        <snapshotNexusPath>/content/repositories/snapshots/</snapshotNexusPath>
        <releaseNexusPath>/content/repositories/releases/</releaseNexusPath>
        <stagingNexusPath>/content/repositories/staging/</stagingNexusPath>
        <sitePath>/content/sites/site/org/onap/vid/${project.version}</sitePath>
        <swagger.version>2.8.0</swagger.version>

        <!-- SONAR -->
        <sonar.language>java</sonar.language>
        <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
        <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
        <sonar.projectVersion>${project.version}</sonar.projectVersion>

    </properties>
    <repositories>
        <repository>
            <id>ecomp-releases</id>
            <name>OSAM Release Repository</name>
            <url>${nexusproxy}${releaseNexusPath}</url>
        </repository>
        <repository>
            <id>ecomp-snapshots</id>
            <name>OSAM Snapshot Repository</name>
            <url>${nexusproxy}${snapshotNexusPath}</url>
        </repository>
        <repository>
            <id>ecomp-staging</id>
            <name>OSAM Staging Repository</name>
            <url>${nexusproxy}${stagingNexusPath}</url>
        </repository>
        <repository>
            <!-- Snapshots repository has ECOMP snapshot artifacts -->
            <id>oss-snapshots</id>
            <name>oss Central - Snapshots</name>
            <url>https://oss.sonatype.org/service/local/repositories/releases/content/</url>
        </repository>
        <repository>
            <id>maven2-repo</id>
            <name>Maven2 repo</name>
            <url>https://repo.maven.apache.org/maven2</url>
        </repository>
    </repositories>
    <distributionManagement>
        <repository>
            <id>ecomp-releases</id>
            <name>VID Release Repository</name>
            <url>${nexusproxy}/${releaseNexusPath}</url>
        </repository>
        <snapshotRepository>
            <id>ecomp-snapshots</id>
            <name>VID Snapshot Repository</name>
            <url>${nexusproxy}/${snapshotNexusPath}</url>
        </snapshotRepository>
        <!-- added for javadoc -->
        <site>
            <id>ecomp-site</id>
            <url>dav:${nexusproxy}${sitePath}</url>
        </site>
    </distributionManagement>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.opencsv</groupId>
                <artifactId>opencsv</artifactId>
                <version>4.1</version>
            </dependency>
            <dependency>
                <groupId>com.att.eelf</groupId>
                <artifactId>eelf-core</artifactId>
                <version>1.0.0</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>2.6.3</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>2.8.6</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>2.6.7.1</version>
            </dependency>
            <dependency>
                <groupId>com.mchange</groupId>
                <artifactId>c3p0</artifactId>
                <version>0.9.5.2</version>
            </dependency>
            <dependency>
                <groupId>io.joshworks.unirest</groupId>
                <artifactId>unirest-java</artifactId>
                <version>0.2.1</version>
            </dependency>
            <dependency>
                <groupId>io.searchbox</groupId>
                <artifactId>jest</artifactId>
                <version>2.0.0</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
            </dependency>
            <dependency>
                <groupId>org.json</groupId>
                <artifactId>json</artifactId>
                <version>20170516</version>
            </dependency>
            <dependency>
                <groupId>org.quartz-scheduler</groupId>
                <artifactId>quartz</artifactId>
                <version>2.2.1</version>
            </dependency>
            <!-- bridge to implement commons-logging using slf4j -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>1.7.12</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>${springframework.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${springframework.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>${springframework.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${springframework.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${springframework.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.5.5</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpasyncclient</artifactId>
                <version>4.1.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpmime</artifactId>
                <version>4.5.5</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>${springframework.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${springframework.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${springframework.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-client</artifactId>
                <version>2.23.1</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.connectors</groupId>
                <artifactId>jersey-jetty-connector</artifactId>
                <version>2.23.1</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.jaxrs</groupId>
                <artifactId>jackson-jaxrs-json-provider</artifactId>
                <version>2.6.3</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.9.3</version>
            </dependency>
            <dependency>
                <groupId>com.googlecode.json-simple</groupId>
                <artifactId>json-simple</artifactId>
                <version>1.1.1</version>
            </dependency>
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>6.14.3</version>
            </dependency>
            <dependency>
                <groupId>com.xebialabs.restito</groupId>
                <artifactId>restito</artifactId>
                <version>0.9.3</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>org.onap.osam</groupId>
                <artifactId>osam-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>xml-apis</groupId>
                <artifactId>xml-apis</artifactId>
                <version>2.0.2</version>
            </dependency>
            <dependency>
                <groupId>org.yaml</groupId>
                <artifactId>snakeyaml</artifactId>
                <version>1.19</version>
            </dependency>
            <dependency>
                <groupId>org.skyscreamer</groupId>
                <artifactId>jsonassert</artifactId>
                <version>1.5.0</version>
            </dependency>
            <dependency>
                <groupId>net.javacrumbs.json-unit</groupId>
                <artifactId>json-unit</artifactId>
                <version>1.23.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-text</artifactId>
                <version>1.1</version>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>java-hamcrest</artifactId>
                <version>2.0.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.togglz</groupId>
                <artifactId>togglz-spring-core</artifactId>
                <version>2.5.0.Final</version>
            </dependency>
            <dependency>
                <groupId>org.assertj</groupId>
                <artifactId>assertj-core</artifactId>
                <version>3.10.0</version>
            </dependency>
            <!-- Helpers -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.2</version>
            </dependency>
            <dependency>
                <groupId>io.vavr</groupId>
                <artifactId>vavr</artifactId>
                <version>0.9.2</version>
            </dependency>

            <!-- SDK overlay war -->
            <dependency>
                <groupId>org.onap.portal.sdk</groupId>
                <artifactId>epsdk-app-overlay</artifactId>
                <version>${epsdk.version}</version>
                <type>war</type>
            </dependency>
            <dependency>
                <groupId>org.onap.portal.sdk</groupId>
                <artifactId>epsdk-app-common</artifactId>
                <version>${epsdk.version}</version>
                <type>jar</type>
            </dependency>

            <dependency>
                <groupId>org.onap.portal.sdk</groupId>
                <artifactId>epsdk-core</artifactId>
                <version>${epsdk.version}</version>
            </dependency>
            <dependency>
                <groupId>org.onap.portal.sdk</groupId>
                <artifactId>epsdk-analytics</artifactId>
                <version>${epsdk.version}</version>
            </dependency>
            <dependency>
                <groupId>org.onap.portal.sdk</groupId>
                <artifactId>epsdk-workflow</artifactId>
                <version>${epsdk.version}</version>
            </dependency>
            <dependency>
                <groupId>org.onap.osam</groupId>
                <artifactId>onap-enabler-be</artifactId>
                <version>${project.version}</version>
                <type>war</type>
                <exclusions>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.onap.osam</groupId>
                <artifactId>onap-enabler-be</artifactId>
                <version>${project.version}</version>
                <type>jar</type>
                <classifier>classes</classifier>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.2.3</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.2.3</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.4</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.bean-matchers</groupId>
                <artifactId>bean-matchers</artifactId>
                <version>0.11</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <pluginManagement>
            <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>

                <!-- Compile to Java 1.8 class output format -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.7.0</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.21.0</version>
                    <configuration>
                        <useSystemClassLoader>false</useSystemClassLoader>
                        <!--
                                            <skipTests>${skiptests}</skipTests>
                        -->
                        <includes>
                            <include>**/Test*.java</include>
                            <include>**/*Test.java</include>
                            <include>**/*TestCase.java</include>
                        </includes>
                        <additionalClasspathElements>
                            <additionalClasspathElement>${basedir}/war</additionalClasspathElement>
                        </additionalClasspathElements>
                        <systemPropertyVariables>
                            <container.classpath>classpath:</container.classpath>
                        </systemPropertyVariables>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.8.1</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.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.0</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.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.0.0</version>
                    <configuration>
                        <skipAssembly>${skipassembly}</skipAssembly>
                        <descriptors>
                            <descriptor>${basedir}/distribution.xml</descriptor>
                        </descriptors>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.sonarsource.scanner.maven</groupId>
                    <artifactId>sonar-maven-plugin</artifactId>
                    <version>3.3.0.603</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <modules>
        <module>onap-enabler-be</module>
        <module>onap-enabler-infra</module>
    </modules>
</project>