<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2019 Bell Canada

Unless otherwise specified, all software contained herein is licensed
under the Apache License, Version 2.0 (the License);
you may not use this software 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.
-->
<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">

    <parent>
        <groupId>org.onap.ccsdk.parent</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.0-SNAPSHOT</version>
        <relativePath/>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <groupId>org.onap.ccsdk.cds</groupId>
    <artifactId>parent</artifactId>
    <version>0.6.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>cds-parent</name>
    <description>CCSDK Controller Design Studio</description>

    <modules>
        <module>components</module>
        <module>cds-ui</module>
        <module>ms</module>
    </modules>

    <url>https://wiki.onap.org</url>
    <organization>
        <name>ONAP</name>
    </organization>

    <properties>
        <!--Don't set any language to let sonar enable multi-language support-->
        <sonar.language/>
        <!--Provide src/main as source path so both src/main/java and src/main/kotlin are scanned-->
        <sonar.sources>src/main</sonar.sources>
        <!--Provide src/test as source path for test so both src/test/java and src/test/kotlin are scanned-->
        <sonar.tests>src/test</sonar.tests>
        <!--Only include java and kt files to the scan-->
        <sonar.inclusions>**/*.java,**/*.kt</sonar.inclusions>
        <!--Specify path to load jacoco XLM report, as Sonar can't load Kotlin coverage from binary report-->
        <sonar.coverage.jacoco.xmlReportPaths>${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml
        </sonar.coverage.jacoco.xmlReportPaths>
        <jacoco.version>0.8.3</jacoco.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${jacoco.version}</version>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>blackduck</id>
            <activation>
                <property>
                    <name>blackduck-scan</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.blackducksoftware.integration</groupId>
                        <artifactId>hub-maven-plugin</artifactId>
                        <version>1.4.0</version>
                        <inherited>false</inherited>
                        <configuration>
                            <hubProjectName>${project.name}</hubProjectName>
                            <outputDirectory>${project.basedir}</outputDirectory>
                        </configuration>
                        <executions>
                            <execution>
                                <id>create-bdio-file</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>createHubOutput</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>
