<?xml version="1.0"?>
<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>

    <!-- This is the Maven project object model (POM) file for the open-source
        SDK web app. This is NOT the Portal - but it is developed and supported by
        the Portal team. -->
    <groupId>org.onap.vid</groupId>
    <artifactId>epsdk-app-onap</artifactId>
    <version>6.0.0-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>ECOMP SDK Webapp for OpenSource</name>
    <description>ECOMP SDK Web Application for public release</description>

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

    <properties>
        <encoding>UTF-8</encoding>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <epsdk.version>2.5.0</epsdk.version>
        <jackson.version>2.10.1</jackson.version>
        <jackson.databind.version>2.10.1</jackson.databind.version>
        <springframework.version>5.2.0.RELEASE</springframework.version>
        <!-- epsdk-core is importing this class, which is only on spring-orm 4 but not in orm 5:
         org.springframework.orm.hibernate4.HibernateTransactionManager
         so following orm.version lets epsdk-core find it -->
        <springframework.orm.version>4.3.22.RELEASE</springframework.orm.version>
        <hibernate.version>4.3.11.Final</hibernate.version>
        <!-- Skip assembling the zip; assemble via mvn -Dskipassembly=false .. -->
        <skipassembly>true</skipassembly>
        <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>

        <!-- SONAR -->
        <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
        <sonar.surefire.reportPaths>${project.build.directory}/surefire-reports</sonar.surefire.reportPaths>
        <sonar.projectVersion>${project.version}</sonar.projectVersion>
        <!-- ignore all .js files on sonar coverage report -->
        <sonar.coverage.exclusions>**/webapp/**/*,**/*.js</sonar.coverage.exclusions>
    </properties>

    <repositories>
        <repository>
            <id>ecomp-releases</id>
            <name>VID Release Repository</name>
            <url>${nexusproxy}/${releaseNexusPath}</url>
        </repository>
        <repository>
            <id>ecomp-snapshots</id>
            <name>VID Snapshot Repository</name>
            <url>${nexusproxy}/${snapshotNexusPath}</url>
        </repository>
        <repository>
            <id>ecomp-staging</id>
            <name>VID 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>
    </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>

    <profiles>
        <!-- disable doclint, a new feature in Java 8, when generating javadoc -->
        <profile>
            <id>doclint-java8-disable</id>
            <activation>
                <jdk>[1.8,)</jdk>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>2.10.4</version>
                        <configuration>
                            <additionalparam>-Xdoclint:none</additionalparam>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <build>
        <finalName>vid</finalName>
        <plugins>
            <!-- Compile to Java 1.8 class output format -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</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.22.1</version>
                <configuration>
                    <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>
                    <useSystemClassLoader>false</useSystemClassLoader>
                    <properties>
                        <property>
                            <name>usedefaultlisteners</name>
                            <value>false</value>
                        </property>
                    </properties>
                </configuration>
            </plugin>

            <!-- add version number to manifest -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                        </manifest>
                        <manifestEntries>
                            <Build-Number>${project.version}</Build-Number>
                            <Build-Time>${maven.build.timestamp}</Build-Time>
                        </manifestEntries>
                    </archive>
                    <overlays>
                        <overlay>
                            <groupId>org.onap.vid</groupId>
                            <artifactId>vid-app-common</artifactId>
                        </overlay>
                        <overlay>
                            <groupId>org.onap.portal.sdk</groupId>
                            <artifactId>epsdk-app-overlay</artifactId>
                        </overlay>
                        <overlay>
                            <groupId>org.onap.vid</groupId>
                            <artifactId>vid-webpack-master</artifactId>
                        </overlay>
                    </overlays>
                </configuration>
            </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.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.sonarsource.scanner.maven</groupId>
                <artifactId>sonar-maven-plugin</artifactId>
                <version>3.6.0.1398</version>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.8.4</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>

        </plugins>
    </build>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.10.4</version>
                <configuration>
                    <failOnError>false</failOnError>
                    <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
                    <docletArtifact>
                        <groupId>org.umlgraph</groupId>
                        <artifactId>umlgraph</artifactId>
                        <version>5.6</version>
                    </docletArtifact>
                    <additionalparam>-views</additionalparam>
                    <useStandardDocletOptions>true</useStandardDocletOptions>
                </configuration>
            </plugin>
        </plugins>
    </reporting>
    <dependencies>
        <!-- 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.vid</groupId>
            <artifactId>vid-app-common</artifactId>
            <version>${project.version}</version>
            <type>war</type>
        </dependency>
        <dependency>
            <groupId>org.onap.vid</groupId>
            <artifactId>vid-app-common</artifactId>
            <version>${project.version}</version>
            <type>jar</type>
            <classifier>classes</classifier>
        </dependency>
        <dependency>
            <groupId>org.onap.vid</groupId>
            <artifactId>vid-webpack-master</artifactId>
            <version>${project.version}</version>
            <type>war</type>
        </dependency>
        <!-- SDK components -->
        <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>
            <exclusions>
                <exclusion>
                    <groupId>com.lowagie</groupId>
                    <artifactId>itext</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.onap.portal.sdk</groupId>
            <artifactId>epsdk-workflow</artifactId>
            <version>${epsdk.version}</version>
        </dependency>
        <dependency>
            <groupId>com.att.eelf</groupId>
            <artifactId>eelf-core</artifactId>
            <version>1.0.0</version>
        </dependency>
        <!-- Mapper -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.databind.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-kotlin</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <!-- jackson-dataformat-* are to override elasticsearch-2.2.0 deps hell -->
        <!-- (elasticsearch is an epsdk-app-common-2.4.0 dep) -->
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-smile</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>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-cbor</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <!-- c3p0 is to override epsdk-app-common's c3p0 0.9.5.2 vulnerability -->
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.4</version>
        </dependency>
        <dependency>
            <groupId>io.searchbox</groupId>
            <artifactId>jest</artifactId>
            <version>6.3.1</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20190722</version>
        </dependency>
        <dependency>
            <groupId>org.liquibase</groupId>
            <artifactId>liquibase-core</artifactId>
            <version>3.7.0</version>
        </dependency>
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.3.1</version>
            <exclusions>
                <!-- exclude 0.9.1.1 to avoid dupe of com.mchange:c3p0:0.9.2.1 -->
                <exclusion>
                    <groupId>c3p0</groupId>
                    <artifactId>c3p0</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- bridge to implement commons-logging using slf4j -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>1.7.27</version>
        </dependency>

        <!-- springframework to override epsdk-app-common's and epsdk-core's versions -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${springframework.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </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.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${springframework.orm.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${springframework.version}</version>
        </dependency>

        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.1</version>
        </dependency>

    </dependencies>
</project>