<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
         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>

    <name>openecomp-sdc</name>
    <groupId>org.openecomp.sdc</groupId>
    <artifactId>openecomp-sdc</artifactId>
    <packaging>pom</packaging>

    <url>http://maven.apache.org</url>

    <parent>
        <groupId>org.openecomp.sdc</groupId>
        <artifactId>sdc-onboarding</artifactId>
        <version>1.3.0-SNAPSHOT</version>
        <relativePath>../onboarding</relativePath>
    </parent>

    <dependencies>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson.version}</version>
        </dependency>

        <!-- Feature Toggle support libraries-->
        <dependency>
            <groupId>org.togglz</groupId>
            <artifactId>togglz-core</artifactId>
            <version>${togglz.version}</version>
        </dependency>

        <dependency>
            <groupId>org.togglz</groupId>
            <artifactId>togglz-testing</artifactId>
            <version>${togglz.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>

            <!-- ================================================== -->
            <!-- Set the JDK compiler version.                      -->
            <!-- ================================================== -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${mvn.compiler.version}</version>
                <inherited>true</inherited>
                <executions>
                    <execution>
                        <id>default-compile</id>
                        <configuration>
                            <skipMain>${skipMainSourceCompile}</skipMain>
                        </configuration>
                    </execution>
                    <execution>
                        <id>default-testCompile</id>
                        <configuration>
                            <skip>${skipTestSourceCompile}</skip>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <source>${java.source}</source>
                    <target>${java.target}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openecomp.sdc.onboarding</groupId>
                <artifactId>artifact-copy-plugin</artifactId>
                <version>${project.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>init-artifact-helper</goal>
                            <!--<goal>copy-helper</goal>-->
                            <goal>calibrate-artifact-helper</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <groupId>org.openecomp.sdc</groupId>
                    <artifactId>build-data-installer</artifactId>
                    <version>${project.version}</version>
                    <artifactHelper>
                        <project>${project}</project>
                        <session>${session}</session>
                        <unicornRoot>org.openecomp.sdc:sdc-onboarding/target/build-data</unicornRoot>
                    </artifactHelper>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openecomp.sdc.onboarding</groupId>
                <artifactId>compile-helper-plugin</artifactId>
                <version>${project.version}</version>
                <dependencies>
                    <dependency>
                        <groupId>org.openecomp.sdc.onboarding</groupId>
                        <artifactId>pmd-helper-plugin</artifactId>
                        <version>${project.version}</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <goals>
                            <goal>init-helper</goal>
                            <goal>pre-compile-helper</goal>
                            <goal>post-compile-helper</goal>
                            <goal>pre-test-compile-helper</goal>
                            <goal>post-test-run-helper</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <excludePackaging>pom</excludePackaging>
                    <excludeDependencies>test,runtime</excludeDependencies>
                    <generatedSourceLocation>${project.build.directory}/generated-sources</generatedSourceLocation>
                    <buildState>
                        <project>${project}</project>
                        <compileStateFilePath>org.openecomp.sdc:sdc-onboarding/target/build-data/compileState.dat</compileStateFilePath>
                    </buildState>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>${maven.pmd.plugin.version}</version>
                <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.core.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>net.sourceforge.pmd</groupId>
                        <artifactId>pmd-java</artifactId>
                        <version>${pmd.java.version}</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <skip>${skipPMD}</skip>
                    <showPmdLog>false</showPmdLog>
                    <analysisCache>false</analysisCache>
                    <analysisCacheLocation>${project.build.directory}/pmd/pmd.cache</analysisCacheLocation>
                    <failOnViolation>false</failOnViolation>
                    <printFailingErrors>false</printFailingErrors>
                    <format>csv</format>
                    <targetDirectory>${project.build.directory}/pmd</targetDirectory>
                    <includeTests>true</includeTests>
                    <linkXRef>false</linkXRef>
                    <aggregate>false</aggregate>
                    <rulesets>
                        <ruleset>/category/java/bestpractices.xml</ruleset>
                        <ruleset>/category/java/codestyle.xml</ruleset>
                        <ruleset>/category/java/design.xml</ruleset>
                        <ruleset>/category/java/errorprone.xml</ruleset>
                        <ruleset>/category/java/multithreading.xml</ruleset>
                        <ruleset>/category/java/performance.xml</ruleset>
                        <ruleset>/category/java/security.xml</ruleset>
                    </rulesets>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <phase>integration-test</phase>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.openecomp.sdc.onboarding</groupId>
                <artifactId>pmd-helper-plugin</artifactId>
                <version>${project.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>init-pmd-helper</goal>
                            <goal>post-verify-helper</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <excludePackaging>pom</excludePackaging>
                    <pmdTargetLocation>${project.build.directory}/pmd/pmd.xml</pmdTargetLocation>
                    <pmdFailureReportLocation>${project.build.directory}/pmd.txt</pmdFailureReportLocation>
                    <pmdReportFile>${project.build.directory}/pmd/pmd.csv</pmdReportFile>
                    <persistingModuleCoordinates>org.openecomp.sdc:build-data-installer</persistingModuleCoordinates>
                    <pmdCurrentStateFilePath>org.openecomp.sdc:sdc-onboarding/target/build-data/pmdState.dat</pmdCurrentStateFilePath>
                    <pmdStateFile>${project.build.outputDirectory}/pmd.dat</pmdStateFile>
                    <compiledFilesList>${project.build.directory}/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst</compiledFilesList>
                    <compiledTestFilesList>${project.build.directory}/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst</compiledTestFilesList>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>${mvn.jar.version}</version>
                <configuration>
                    <archive>
                        <addMavenDescriptor>${mvnDsc}</addMavenDescriptor>
                    </archive>
                    <excludes>
                        <exclude>${emptyJAR}</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>license-maven-plugin</artifactId>
                <version>${mvn.license.version}</version>
                <configuration>
                    <addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
                    <processStartTag>============LICENSE_START=======================================================</processStartTag>
                    <processEndTag>============LICENSE_END=========================================================</processEndTag>
                    <sectionDelimiter>================================================================================</sectionDelimiter>
                    <licenseName>apache_v2</licenseName>
                    <inceptionYear>2017</inceptionYear>
                    <organizationName>AT&amp;T Intellectual Property. All rights reserved.</organizationName>
                    <projectName>SDC</projectName>
                    <canUpdateCopyright>true</canUpdateCopyright>
                    <canUpdateDescription>true</canUpdateDescription>
                    <canUpdateLicense>true</canUpdateLicense>
                    <emptyLineAfterHeader>true</emptyLineAfterHeader>
                    <verbose>false</verbose>
                    <includes>
                        <include>**/*.java</include>
                        <include>**/*.js</include>
                        <include>**/*.ts</include>
                    </includes>
                    <roots>
                        <root>src</root>
                        <root>app</root>
                        <root>server-mock</root>
                        <root>typings</root>
                    </roots>
                </configuration>
                <executions>
                    <execution>
                        <id>first</id>
                        <goals>
                            <goal>update-file-header</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${jacoco.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>report</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>post-unit-test</id>
                        <phase>test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                        <configuration>
                            <!-- Sets the path to the file which contains the execution data. -->
                            <dataFile>target/jacoco.exec</dataFile>
                            <!-- Sets the output directory for the code coverage report. -->
                            <outputDirectory>target/jacoco-ut</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>

    <!--Added to resolve blackduck operational risks for indirect dependencies referred -->
    <dependencyManagement>
        <dependencies>
            <!-- https://mvnrepository.com/artifact/commons-beanutils/commons-beanutils -->
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>${commons.beanutils.version}</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.beust/jcommander -->
            <dependency>
                <groupId>com.beust</groupId>
                <artifactId>jcommander</artifactId>
                <version>${jcommander.version}</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpasyncclient -->
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpasyncclient</artifactId>
                <version>${httpasyncclient.version}</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-impl -->
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
                <version>${jaxb.impl.version}</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.beanshell/bsh -->
            <dependency>
                <groupId>org.beanshell</groupId>
                <artifactId>bsh</artifactId>
                <version>${bsh.version}</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/commons-digester/commons-digester -->
            <dependency>
                <groupId>commons-digester</groupId>
                <artifactId>commons-digester</artifactId>
                <version>${commons.digester.version}</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/com.fasterxml/classmate -->
            <dependency>
                <groupId>com.fasterxml</groupId>
                <artifactId>classmate</artifactId>
                <version>${classmate.version}</version>
            </dependency>
            <!--1702 -->
            <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy-all</artifactId>
                <version>${groovy.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.janino</groupId>
                <artifactId>janino</artifactId>
                <version>${janino.version}</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <modules>
        <module>/api</module>
        <module>/lib</module>
        <module>/tools/swagger-ui</module>
        <module>/tools/zusammen-tools</module>
        <module>/backend</module>
    </modules>
    <profiles>
        <!--<profile>-->
        <!--<id>docker-staging</id>-->
        <!--<properties>-->
        <!--<docker.tag>${project.version}-STAGING-${maven.build.timestamp}</docker.tag>-->
        <!--<docker.latest.tag>${project.version}-STAGING-latest</docker.latest.tag>-->
        <!--</properties>-->
        <!--</profile>-->

        <profile>
            <id>docker</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>

            <modules>
                <module>/dist</module>
            </modules>
        </profile>
    </profiles>
</project>