<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.2.0-SNAPSHOT</version>
    </parent>

    <modules>
        <module>../openecomp-be/tools/build-helper</module>
        <module>../common</module>
        <module>../openecomp-be</module>
        <module>../openecomp-ui</module>
    </modules>

    <properties>
        <!-- Maven plugin versions -->
        <jacoco.version>0.7.9</jacoco.version>
        <mvn.assembly.version>2.1</mvn.assembly.version>
        <mvn.compiler.version>3.7.0</mvn.compiler.version>
        <mvn.deploy.version>2.4</mvn.deploy.version>
        <mvn.hub.version>1.4.0</mvn.hub.version>
        <mvn.install.version>2.3.1</mvn.install.version>
        <mvn.jar.version>2.4</mvn.jar.version>
        <mvn.jaxb2.version>0.13.2</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>
        <mvn.swagger.version>3.1.5</mvn.swagger.version>
        <mvn.war.version>2.1.1</mvn.war.version>
        <mvn.antrun.version>1.8</mvn.antrun.version>

        <!-- Onboarding artifacts version -->
        <openecomp.sdc.common.version>${project.version}</openecomp.sdc.common.version>

        <!-- Onboarding 3rd party versions -->
        <aspectj.version>1.8.9</aspectj.version>
        <bsh.version>2.0b5</bsh.version>
        <cassandra.version>2.1.9</cassandra.version>
        <cglib.nodep.version>3.2.4</cglib.nodep.version> <!--old : 2.1_3. new 3.2.4 -->
        <classmate.version>1.3.3</classmate.version>
        <commons.beanutils.version>1.9.3</commons.beanutils.version>
        <commons.codec.version>1.10
        </commons.codec.version> <!-- orignal 1.6 updated to resolve blackduck violation -->
        <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> <!-- orignal 2.5. updated to resolve blackduck violation -->
        <commons.lang3.version>3.4</commons.lang3.version>
        <cxf.version>3.1.8</cxf.version>
        <datasatx.version>2.1.9</datasatx.version>
        <easymock.version>3.4</easymock.version>
        <groovy.version>2.4.7</groovy.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.3.Final
        </hibernate.validator.version> <!--5.3.1.Final changed to 5.3.3.Final to include jboss-logging 3.3.0.Final for 1702 -->
        <http.client.version>4.4.1</http.client.version>
        <httpasyncclient.version>4.1.2</httpasyncclient.version>
        <janino.version>2.7.7</janino.version>
        <jaxb.impl.version>2.2.11</jaxb.impl.version>
        <java.source>1.8</java.source>
        <java.target>1.8</java.target>
        <javax.el.version>2.2.4</javax.el.version>
        <javax.el-api.version>3.0.1-b04
        </javax.el-api.version> <!-- orignal 2.2.4 updated to resolve blackduck violation -->
        <javax.inject.version>1</javax.inject.version>
        <javax.servlet.version>2.5</javax.servlet.version>
        <jackson.version>2.8.1</jackson.version>
        <jackson.annotations.version>2.7.4</jackson.annotations.version>
        <jackson.dataformat.version>2.7.4</jackson.dataformat.version>
        <jackson.mapper.version>1.9.13</jackson.mapper.version>
        <jcommander.version>1.58</jcommander.version>
        <jetty.servlets.version>9.0.6.v20130930</jetty.servlets.version>
        <jersey.core.version>1.19.1</jersey.core.version>
        <jersey.multipart.version>1.18.1</jersey.multipart.version>
        <junit.version>RELEASE</junit.version>
        <logback.version>1.1.2</logback.version>
        <mockito.all.version>1.10.19</mockito.all.version>
        <org.codehaus.jackson.version>1.9.13</org.codehaus.jackson.version> <!-- orignal 1.9.2 -->
        <org.everit.json.schema.version>1.3.0
        </org.everit.json.schema.version> <!--new 1.4.1 orignal 1.3.0 updated to resolve blackduck violation -->
        <org.reflections.version>0.9.10
        </org.reflections.version> <!-- orignal 0.9.9 updated to resolve blackduck violation -->
        <powermock.version>1.6.5</powermock.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <servlet.version>2.5</servlet.version>
        <slf4j.version>1.7.21</slf4j.version>
        <snakeyaml.version>1.17</snakeyaml.version>
        <spring.framework.version>4.3.4.RELEASE</spring.framework.version> <!-- orignal 4.0.7.RELEASE 4.1.3.RELEASE-->
        <swagger.version>1.5.3</swagger.version>
        <testng.version>6.9.10</testng.version> <!--new 6.9.13.6 still shows blackduck risk -->
        <woodstox.version>4.4.1</woodstox.version>
        <ws.rs.version>2.0.1</ws.rs.version>  <!--  New version 2.0.1 to fix blackduck violation Failing with comiplation issues-->
        <zusammen.version>0.3.0</zusammen.version>
        <zusammen-state-store.version>0.3.0</zusammen-state-store.version>
        <zusammen-collaboration-store.version>0.3.2</zusammen-collaboration-store.version>
        <zusammen-index-store.version>0.3.0</zusammen-index-store.version>
        <pmd.version>5.8.1</pmd.version>
        <build.tools.version>${project.version}</build.tools.version>
        <togglz.version>2.4.1.Final</togglz.version>
        <jacoco.skip>true</jacoco.skip>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.16.20</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>3.8</version>
                <configuration>
                    <analysisCache>true</analysisCache>
                    <analysisCacheLocation>${project.build.directory}/pmd/pmd.cache</analysisCacheLocation>
                    <aggregate>false</aggregate>
                    <includeTests>true</includeTests>
                    <linkXRef>false</linkXRef>
                    <printFailingErrors>true</printFailingErrors>
                    <rulesets>
                        <ruleset>build-pmd-ruleset.xml</ruleset>
                    </rulesets>
                </configuration>
                <executions>
                    <execution>
                        <id>pmd-check</id>
                        <phase>verify</phase>
                        <goals>
                            <!-- violations fail build -->
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.openecomp.sdc</groupId>
                        <artifactId>build-tools</artifactId>
                        <version>${build.tools.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>net.sourceforge.pmd</groupId>
                        <artifactId>pmd-core</artifactId>
                        <version>${pmd.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>net.sourceforge.pmd</groupId>
                        <artifactId>pmd-java</artifactId>
                        <version>${pmd.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <version>2.5</version>
                <configuration>
                    <excludeDefaultDirectories>true</excludeDefaultDirectories>
                    <filesets>
                        <fileset>
                            <directory>${project.build.directory}</directory>
                            <excludes>
                                <exclude>test-classes/**/*.class</exclude>
                                <exclude>pmd/**</exclude>
                                <exclude>maven-status/**</exclude>
                            </excludes>
                        </fileset>
                    </filesets>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${mvn.surefire.version}</version>
                <configuration>
                    <forkCount>0</forkCount>
                    <printSummary>false</printSummary>
                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
                    <additionalClasspathElements>
                        <additionalClasspathElement>${project.basedir}/src/test/resources</additionalClasspathElement>
                    </additionalClasspathElements>
                    <systemPropertyVariables>
                        <logback.configurationFile>src/test/resources/logback-test.xml</logback.configurationFile>
                        <artifactgenerator.config>${project.basedir}/src/test/resources/config/Artifact-Generator.properties</artifactgenerator.config>
                        <config.location>${project.basedir}/configuration</config.location>
                    </systemPropertyVariables>
                    <dependenciesToScan>
                        org.openecomp.sdc:build-helper
                    </dependenciesToScan>
                </configuration>
            </plugin>
        </plugins>
        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
                <excludes>
                    <exclude>**/*</exclude>
                </excludes>
            </testResource>
        </testResources>
    </build>

</project>
