<!--
  ============LICENSE_START=======================================================
   Copyright (C) 2018 Ericsson. All rights reserved.
   Modifications Copyright (C) 2018-2020 AT&T. All rights reserved.
   Modifications Copyright (C) 2019 Nordix Foundation.
  ================================================================================
  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.

  SPDX-License-Identifier: Apache-2.0
  ============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.parent</groupId>
        <artifactId>policy-parent</artifactId>
        <version>3.1.1-SNAPSHOT</version>
    </parent>
    <artifactId>integration</artifactId>
    <packaging>pom</packaging>
    <name>Policy Integration POM</name>
    <description>Policy Integration POM</description>

    <properties>
        <java.version>11</java.version>
        <version.logback>1.2.3</version.logback>
        <version.dmaap>1.1.9</version.dmaap>
        <version.powermock>2.0.4</version.powermock>
        <version.eclipselink>2.7.5</version.eclipselink>
        <version.jackson>2.10.0.pr3</version.jackson>
        <version.drools>7.32.0.Final</version.drools>
        <version.jersey>2.29.1</version.jersey>
        <version.ccsdk>0.4.4</version.ccsdk>
        <version.swagger>1.6.0</version.swagger>
        <version.javax.bind>2.3.1</version.javax.bind>
        <version.javax.json>1.1.4</version.javax.json>
        <version.json>20190722</version.json>
        <jacoco.dataFile>${project.basedir}/../target/code-coverage/jacoco-ut.exec</jacoco.dataFile>
    </properties>

    <distributionManagement>
        <site>
            <id>ecomp-site</id>
            <url>dav:${onap.nexus.url}${sitePath}</url>
        </site>
    </distributionManagement>

    <dependencyManagement>
        <dependencies>
            <!-- Jackson -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${version.jackson}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${version.jackson}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${version.jackson}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-yaml</artifactId>
                <version>${version.jackson}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.jaxrs</groupId>
                <artifactId>jackson-jaxrs-base</artifactId>
                <version>${version.jackson}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.jaxrs</groupId>
                <artifactId>jackson-jaxrs-json-provider</artifactId>
                <version>${version.jackson}</version>
            </dependency>

            <!-- Jersey -->
            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-server</artifactId>
                <version>${version.jersey}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.jersey.containers</groupId>
                <artifactId>jersey-container-servlet-core</artifactId>
                <version>${version.jersey}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.jersey.containers</groupId>
                <artifactId>jersey-container-jetty-http</artifactId>
                <version>${version.jersey}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.eclipse.jetty</groupId>
                        <artifactId>jetty-util</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-client</artifactId>
                <version>${version.jersey}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.jersey.core</groupId>
                <artifactId>jersey-common</artifactId>
                <version>${version.jersey}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.jersey.inject</groupId>
                <artifactId>jersey-hk2</artifactId>
                <version>${version.jersey}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.jersey.containers</groupId>
                <artifactId>jersey-container-grizzly2-http</artifactId>
                <version>${version.jersey}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.jersey.media</groupId>
                <artifactId>jersey-media-moxy</artifactId>
                <version>${version.jersey}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.jersey.media</groupId>
                <artifactId>jersey-media-json-jackson</artifactId>
                <version>${version.jersey}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.jersey.test-framework</groupId>
                <artifactId>jersey-test-framework-core</artifactId>
                <version>${version.jersey}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.jersey.test-framework.providers</groupId>
                <artifactId>jersey-test-framework-provider-grizzly2</artifactId>
                <version>${version.jersey}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.jersey.media</groupId>
                <artifactId>jersey-media-multipart</artifactId>
                <version>${version.jersey}</version>
            </dependency>

            <!-- MariaDB -->
            <dependency>
                <groupId>org.mariadb.jdbc</groupId>
                <artifactId>mariadb-java-client</artifactId>
                <version>2.2.6</version>
            </dependency>

            <!-- Swagger Jersey2 JAXRS -->
            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-jersey2-jaxrs</artifactId>
                <version>${version.swagger}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.glassfish.jersey.containers</groupId>
                        <artifactId>jersey-container-servlet-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- Encoder and decoders for various formats -->
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.11</version>
            </dependency>

            <dependency>
                <groupId>com.thoughtworks.xstream</groupId>
                <artifactId>xstream</artifactId>
                <version>1.4.11.1</version>
            </dependency>

            <!-- Eclipse Persistence API -->
            <!-- NOTE: use this instead of persistence-api -->
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>javax.persistence</artifactId>
                <version>2.1.0</version>
            </dependency>

            <!-- Eclipse JPA API -->
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>org.eclipse.persistence.jpa</artifactId>
                <version>${version.eclipselink}</version>
            </dependency>

            <!-- EclipseLink API -->
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>eclipselink</artifactId>
                <version>${version.eclipselink}</version>
            </dependency>

            <!-- Java Servlet API -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>4.0.1</version>
            </dependency>

            <!-- HttpComponents Client -->
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.5.9</version>
            </dependency>

            <!-- HttpComponents Core (blocking I/O) -->
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>4.4.9</version>
            </dependency>

            <!-- JSON marshalling and unmarshalling -->
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>2.8.4</version>
            </dependency>

            <!-- Lombok -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.4</version>
            </dependency>

            <!-- Logging -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.25</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>${version.logback}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${version.logback}</version>
            </dependency>

            <!-- Dmaap Client -->
            <dependency>
                <groupId>org.onap.dmaap.messagerouter.dmaapclient</groupId>
                <artifactId>dmaapClient</artifactId>
                <version>${version.dmaap}</version>
            </dependency>

            <!-- Common Controller SDK -->
            <dependency>
                <groupId>org.onap.ccsdk.cds.components</groupId>
                <artifactId>proto-definition</artifactId>
                <version>${version.ccsdk}</version>
            </dependency>

            <!-- AAF Client -->
            <dependency>
                <groupId>org.onap.aaf.authz</groupId>
                <artifactId>aaf-cadi-aaf</artifactId>
                <version>2.1.2</version>
            </dependency>

            <!-- Client library for Cambria event routing API -->
            <dependency>
                <groupId>com.att.nsa</groupId>
                <artifactId>cambriaClient</artifactId>
                <version>1.2.1-oss</version>
            </dependency>
            <dependency>
                <groupId>com.att.nsa</groupId>
                <artifactId>saClientLibrary</artifactId>
                <version>1.3.0-oss</version>
            </dependency>

            <!-- Commons CLI for command line parsing -->
            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>1.4</version>
            </dependency>

            <!-- Web Sockets -->
            <dependency>
                <groupId>org.java-websocket</groupId>
                <artifactId>Java-WebSocket</artifactId>
                <version>1.3.8</version>
            </dependency>

            <!-- SnakeYAML -->
            <dependency>
                <groupId>org.yaml</groupId>
                <artifactId>snakeyaml</artifactId>
                <version>1.24</version>
            </dependency>

            <!-- Drools -->

            <!--
            Security Issues: 1 of 2
            This dependency is trying to upgrade security fixes
            identified. If it is removed or manipulated then please
            fix the 2nd change as noted below.
            -->

            <dependency>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-utils</artifactId>
                <version>3.0.24</version>
            </dependency>

            <dependency>
                <groupId>org.kie</groupId>
                <artifactId>kie-api</artifactId>
                <version>${version.drools}</version>
            </dependency>

            <dependency>
                <groupId>org.kie</groupId>
                <artifactId>kie-ci</artifactId>
                <version>${version.drools}</version>

                <!--
                Issue: 2 of 2
                Excluding these 2 dependencies in order to force upgrade security fixes
                identified. As declared above. Any changes here should be reflected above
                and vice versa.
                -->

                <exclusions>
                    <exclusion>
                        <groupId>org.codehaus.plexus</groupId>
                        <artifactId>plexus-utils</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.drools</groupId>
                <artifactId>drools-core</artifactId>
                <version>${version.drools}</version>
            </dependency>

            <dependency>
                <groupId>org.drools</groupId>
                <artifactId>drools-persistence-jpa</artifactId>
                <version>${version.drools}</version>
            </dependency>

            <dependency>
                <groupId>org.drools</groupId>
                <artifactId>drools-compiler</artifactId>
                <version>${version.drools}</version>
            </dependency>

            <dependency>
                <groupId>org.drools</groupId>
                <artifactId>drools-verifier-drl</artifactId>
                <version>${version.drools}</version>
            </dependency>

            <dependency>
                <groupId>org.drools</groupId>
                <artifactId>drools-verifier-api</artifactId>
                <version>${version.drools}</version>
            </dependency>

            <dependency>
                <groupId>org.drools</groupId>
                <artifactId>drools-verifier-core</artifactId>
                <version>${version.drools}</version>
            </dependency>

            <!-- Test dependencies -->

            <!-- In memory Database Engine -->
            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <version>1.4.197</version>
                <scope>test</scope>
            </dependency>

            <!-- JUNIT -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>

            <!-- Cucumber Tests -->
            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-java</artifactId>
                <version>4.2.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-junit</artifactId>
                <version>4.2.0</version>
                <scope>test</scope>
            </dependency>

            <!-- Exception testing -->
            <dependency>
                <groupId>org.assertj</groupId>
                <artifactId>assertj-core</artifactId>
                <version>3.11.1</version>
                <scope>test</scope>
            </dependency>

            <!-- Mock libraries -->
            <dependency>
                <groupId>com.openpojo</groupId>
                <artifactId>openpojo</artifactId>
                <version>0.8.10</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-all</artifactId>
                <version>1.10.19</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-core</artifactId>
                <version>${version.powermock}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-api-mockito2</artifactId>
                <version>${version.powermock}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-module-junit4</artifactId>
                <version>${version.powermock}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>3.2.4</version>
                <scope>test</scope>
            </dependency>
        </dependencies>

    </dependencyManagement>


    <scm>
        <connection>scm:git:ssh://git.onap.org:29418/${project.groupId}</connection>
        <developerConnection>scm:git:ssh://git.onap.org:29418/${project.groupId}</developerConnection>
        <tag>HEAD</tag>
        <url>https://wiki.onap.org/display/DW/Integration+Project</url>
    </scm>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>versions-maven-plugin</artifactId>
                    <version>2.7</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>3.1.1</version>
                </plugin>
                <plugin>
                    <!-- THIS PLUGIN IS RETIRED -->
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-reactor-plugin</artifactId>
                    <version>1.1</version>
                </plugin>
                <plugin>
                    <!-- THIS PLUGIN IS RETIRED -->
                    <!-- Advise to use m2e -->
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-eclipse-plugin</artifactId>
                    <version>2.10</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>3.0.0-M1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.2.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>2.5.3</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.2.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.2.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>3.1.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>3.2.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-archetype-plugin</artifactId>
                    <version>3.1.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.archetype</groupId>
                    <artifactId>archetype-packaging</artifactId>
                    <version>3.1.2</version>
                </plugin>
                <plugin>
                    <groupId>com.coderplus.maven.plugins</groupId>
                    <artifactId>copy-rename-maven-plugin</artifactId>
                    <version>1.0.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <encoding>${project.build.sourceEncoding}</encoding>
                        <release>${java.version}</release>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.6.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.3</version>
                </plugin>
                <plugin>
                    <groupId>io.fabric8</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>0.31.0</version>
                </plugin>
                <plugin>
                    <groupId>org.kie</groupId>
                    <artifactId>kie-maven-plugin</artifactId>
                    <version>${version.drools}</version>
                    <extensions>true</extensions>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>pre-unit-test</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                        <configuration>
                            <destFile>${jacoco.dataFile}</destFile>
                            <append>true</append>
                        </configuration>
                    </execution>
                    <execution>
                        <id>post-unit-test</id>
                        <phase>test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                        <configuration>
                            <dataFile>${jacoco.dataFile}</dataFile>
                        </configuration>
                    </execution>
                    <execution>
                      <id>pre-integration-test</id>
                      <phase>pre-integration-test</phase>
                      <goals>
                        <goal>prepare-agent</goal>
                      </goals>
                      <configuration>
                        <skip>true</skip>
                      </configuration>
                    </execution>
                    <execution>
                      <id>post-integration-test</id>
                      <phase>post-integration-test</phase>
                      <goals>
                        <goal>report</goal>
                      </goals>
                      <configuration>
                        <skip>true</skip>
                      </configuration>
                    </execution>
                    <execution>
                      <id>report-aggregate</id>
                      <phase>prepare-package</phase>
                      <goals>
                        <goal>report-aggregate</goal>
                      </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>