<!--
  ============LICENSE_START=======================================================
  ONAP Policy Engine
  ================================================================================
  Copyright (C) 2017-2018 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=========================================================
  -->
<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>
    <parent>
        <groupId>org.onap.policy.engine</groupId>
        <artifactId>PolicyEngineSuite</artifactId>
        <version>1.4.1-SNAPSHOT</version>
    </parent>
    <artifactId>ONAP-SDK-APP</artifactId>
    <packaging>war</packaging>
    <properties>
        <encoding>UTF-8</encoding>
        <epsdk.version>2.4.0</epsdk.version>
        <springframework.version>4.2.0.RELEASE</springframework.version>
        <hibernate.version>4.3.11.Final</hibernate.version>
        <!-- Skip assembling the zip; assemble via mvn -Dskipassembly=false .. -->
        <skipassembly>true</skipassembly>
        <!-- Tests usually require some setup that maven cannot do, so skip. -->
        <sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**,src/main/webapp/**/*</sonar.exclusions>
        <!-- Version number gets stored only here -->
        <tomcat.download.path>http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.34/bin</tomcat.download.path>
        <tomcat.download.name>apache-tomcat-8.5.34</tomcat.download.name>
    </properties>
    <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>
                        <configuration>
                            <additionalparam>-Xdoclint:none</additionalparam>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
    <build>
        <plugins>
            <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>
                <configuration>
                    <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>
            <!-- add version number to manifest -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <attachClasses>true</attachClasses>
                    <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.portal.sdk</groupId>
                            <artifactId>epsdk-app-overlay</artifactId>
                            <excludes>
                                <exclude>static/fusion/raptor/uigrid/vfs_fonts.js</exclude>
                            </excludes>
                        </overlay>
                        <overlay>
                            <groupId>org.onap.policy.engine</groupId>
                            <artifactId>POLICY-SDK-APP</artifactId>
                        </overlay>
                    </overlays>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <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-deploy-plugin</artifactId>
                <!-- parent specifies the<version>2.8</version> -->
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
            <plugin>
                <groupId>io.fabric8</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.22.0</version>
                <configuration>
                    <verbose>true</verbose>
                    <images>
                        <image>
                            <name>onap/portal-sdk:${project.version}</name>
                            <build>
                                <from>frolvlad/alpine-oraclejdk8:slim</from>
                                <assembly>
                                    <descriptorRef>artifact</descriptorRef>
                                </assembly>
                                <runCmds>
                                    <!-- must be all on one line; use CDATA to turn off the Eclipse 
                                        formatter -->
                                    <run><![CDATA[wget -q ${tomcat.download.path}/${tomcat.download.name}.tar.gz]]></run>
                                    <run>tar -xzf
                                        ${tomcat.download.name}.tar.gz</run>
                                    <run>rm -f
                                        ${tomcat.download.name}.tar.gz</run>
                                    <run>rm -fr
                                        ${tomcat.download.name}/webapps/[a-z]*</run>
                                    <run>mkdir -p /opt</run>
                                    <run>mv ${tomcat.download.name} /opt</run>
                                    <run><![CDATA[mv /maven/*.war /opt/${tomcat.download.name}/webapps/ONAPPORTALSDK.war]]></run>
                                </runCmds>
                                <cmd>
                                    <shell>/opt/${tomcat.download.name}/bin/catalina.sh
                                        run</shell>
                                </cmd>
                            </build>
                        </image>
                    </images>
                </configuration>
            </plugin>

        </plugins>
    </build>
    <dependencies>
        <!-- Policy overlay war -->
        <dependency>
            <groupId>org.onap.policy.engine</groupId>
            <artifactId>POLICY-SDK-APP</artifactId>
            <version>${project.version}</version>
            <type>war</type>
            <exclusions>
                <exclusion>
                    <groupId>org.onap.portal.sdk</groupId>
                    <artifactId>epsdk-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.onap.policy.engine</groupId>
            <artifactId>POLICY-SDK-APP</artifactId>
            <version>${project.version}</version>
            <type>jar</type>
            <classifier>classes</classifier>
            <exclusions>
                <exclusion>
                    <groupId>org.onap.portal.sdk</groupId>
                    <artifactId>epsdk-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.onap.policy.engine</groupId>
            <artifactId>PolicyEngineUtils</artifactId>
            <version>${project.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.att.aft</groupId>
                    <artifactId>dme2</artifactId>
                </exclusion>
            </exclusions>
        </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>
            <exclusions>
                <!-- Added exclusions to fix issue with duplicate jars of different versions -->
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-web</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-webmvc</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- SDK components -->
        <!--
        CLM security fix - force use of commons-collections 3.2.2.
        Remove this if a new version of epsdk-core is upgraded
        to not use esapi (and then subsequently commons-collections v3.2
        -->
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.onap.portal.sdk</groupId>
            <artifactId>epsdk-core</artifactId>
            <version>${epsdk.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>commons-collections</groupId>
                    <artifactId>commons-collections</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.thoughtworks.xstream</groupId>
                    <artifactId>xstream</artifactId>
                </exclusion>
                <!-- Added exclusions to fix issue with duplicate jars of different versions -->
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-web</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-webmvc</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.onap.portal.sdk</groupId>
            <artifactId>epsdk-analytics</artifactId>
            <version>${epsdk.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.oracle</groupId>
                    <artifactId>ojdbc6</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>com.lowagie</groupId>
                    <artifactId>itext</artifactId>
                </exclusion>
                <!-- Added exclusions to fix issue with duplicate jars of different versions -->
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-web</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-webmvc</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.onap.portal.sdk</groupId>
            <artifactId>epsdk-workflow</artifactId>
            <version>${epsdk.version}</version>
            <exclusions>
                <!-- Added exclusions to fix issue with duplicate jars of different versions -->
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-web</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-webmvc</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- Spring -->
        <!-- Added dependencies to fix issue with duplicate jars of different 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-web</artifactId>
            <version>${springframework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${springframework.version}</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>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
        </dependency>
        <!-- Maria DB -->
        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>
        <!-- Quartz -->
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.2.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>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>
    </dependencies>
</project>