<!--
============LICENSE_START=======================================================
SDC
================================================================================
Copyright (C) 2017 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=========================================================
Modifications copyright (c) 2018-2019 Nokia
================================================================================
-->
<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>

    <groupId>org.openecomp.sdc</groupId>
    <artifactId>sdc-main</artifactId>
    <version>1.10.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>sdc</name>

    <parent>
        <groupId>org.onap.oparent</groupId>
        <artifactId>oparent</artifactId>
        <version>3.2.0</version>
        <relativePath/>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>

        <tosca.datatype.version>${project.version}</tosca.datatype.version>
        <!-- 3rd parties versions -->
        <bean-matcher.version>0.11</bean-matcher.version>
        <lang3.version>3.10</lang3.version>
        <guava.version>30.1-jre</guava.version>
        <janusgraph.version>0.3.3</janusgraph.version>
        <spring.version>5.3.9</spring.version>
        <jersey-bom.version>2.34</jersey-bom.version>
        <netty.version>4.1.68.Final</netty.version>
        <servlet-api.version>4.0.1</servlet-api.version>
        <wire-mock.version>2.26.3</wire-mock.version>
        <ecomp.version>3.4.0</ecomp.version>
        <cassandra.unit.version>4.3.1.0</cassandra.unit.version>
        <cadi.version>2.1.8</cadi.version>
        <lombok.version>1.18.20</lombok.version>
        <commons-beanutils>1.9.4</commons-beanutils>
        <commons.io.version>2.8.0</commons.io.version>
        <commons-configuration>2.7</commons-configuration>
        <apache-poi.version>4.1.0</apache-poi.version>
        <onap.logging.version>1.6.1</onap.logging.version>
        <apache-commons-text.version>1.9</apache-commons-text.version>
        <jaxb-api.version>2.3.1</jaxb-api.version>
        <io.vavr.version>0.10.3</io.vavr.version>
        <groovy.version>3.0.7</groovy.version>
        <swagger-core-mvn-plugin.version>2.1.7</swagger-core-mvn-plugin.version>
        <maven-antrun-plugin.version>3.0.0</maven-antrun-plugin.version>
        <hibernate.validator.version>6.1.6.Final</hibernate.validator.version>

        <commons.collections.version>4.1</commons.collections.version>
        <ws.rs.version>2.1.1</ws.rs.version>
        <javax.validation.version>2.0.1.Final</javax.validation.version>
        <javax.servlet.version>${servlet-api.version}</javax.servlet.version>

        <jetty.version>9.4.41.v20210516</jetty.version>
        <cxf.version>3.4.4</cxf.version>

        <org.owasp.esapi.version>2.2.0.0</org.owasp.esapi.version>
        <org.dom4j.version>2.1.3</org.dom4j.version>

        <!-- JSON and YAML Parsing -->
        <jackson.version>2.12.4</jackson.version>
        <jackson-annotations.version>${jackson.version}</jackson-annotations.version>

        <clearspring.version>2.1.1</clearspring.version>
        <skipYamlJsonValidator>false</skipYamlJsonValidator>

        <!-- Yaml for properties -->
        <snakeyaml.version>1.29</snakeyaml.version>
        <functionaljava.version>4.9</functionaljava.version>
        <httpclient.version>4.5.13</httpclient.version>
        <httpcore.version>4.4.1</httpcore.version>
        <json-simple.version>1.1</json-simple.version>

        <!-- PM Dictionary validation -->
        <onap.vnfsdk.validation.pmdictionary.version>1.2.15
        </onap.vnfsdk.validation.pmdictionary.version>

        <!-- Logging start -->
        <!-- logback -->
        <logback.version>1.2.7</logback.version>
        <slf4j-api.version>1.7.25</slf4j-api.version>
        <commons-codec>1.15</commons-codec>
        <commons-logging>1.2</commons-logging>
        <janino.version>3.0.6</janino.version>
        <log4j.version>2.13.1</log4j.version>

        <!-- aspects -->
        <jcabi.version>0.20.1</jcabi.version>
        <aspectj.version>1.9.7</aspectj.version>
        <aspectjrt.version>${aspectj.version}</aspectjrt.version>
        <jcabi.maven.plugin.version>0.13.2</jcabi.maven.plugin.version>

        <!-- Logging end -->
        <!-- System Metrics -->
        <sigar.version>1.6.4</sigar.version>

        <regex.version>3.0.3</regex.version>

        <!--GSON-->
        <gson.version>2.8.9</gson.version>

        <!--listen to file changes-->
        <commons-jci-core.version>1.1</commons-jci-core.version>

        <!--TESTING-->
        <mockito.version>3.7.7</mockito.version>
        <mockitoJupiter.version>${mockito.version}</mockitoJupiter.version>
        <jmockit.version>1.35</jmockit.version>
        <junit.platform.version>1.7.1</junit.platform.version>
        <junitJupiter.version>5.7.2</junitJupiter.version>
        <assertj.version>3.16.0</assertj.version>
        <testng.version>7.4.0</testng.version>
        <cucumber.version>6.8.1</cucumber.version>
        <bean-matchers.version>0.11</bean-matchers.version>
        <hamcrest.version>2.2</hamcrest.version>
        <hamcrest-all.version>1.3</hamcrest-all.version>
        <maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
        <maven-jar-plugin.version>2.4</maven-jar-plugin.version>
        <jMapper.version>1.6.0.1</jMapper.version>

        <!-- sonar -->
        <sonar.projectVersion>${project.version}</sonar.projectVersion>
        <sonar.nodejs.executable>${project.basedir}/node/node</sonar.nodejs.executable>
        <sonar.surefire.reportsPath>${project.build.directory}/surefire-reports
        </sonar.surefire.reportsPath>
        <sonar.javascript.lcov.reportPaths>${project.build.directory}/code-coverage/lcov.info
        </sonar.javascript.lcov.reportPaths>
        <sonar.coverage.jacoco.xmlReportPaths>
            ${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml
        </sonar.coverage.jacoco.xmlReportPaths>
        <sonar.sourceEncoding>${project.build.sourceEncoding}</sonar.sourceEncoding>
        <sonar.projectBaseDir>${project.basedir}</sonar.projectBaseDir>
        <sonar.coverage.exclusions>pom.xml,src/test</sonar.coverage.exclusions>
        <!--cassandra -->
        <cassandra.driver.version>3.8.0</cassandra.driver.version>
        <!-- maven central (Nexus) -->
        <nexus.id.release>nexus</nexus.id.release>
        <nexus.id.snapshot>nexus</nexus.id.snapshot>

        <!--nexus-->
        <npm.registry>https://nexus3.onap.org/repository/npm.public/npm/-/</npm.registry>
        <nexus.proxy>https://nexus.onap.org</nexus.proxy>
        <sitePath>/content/sites/site/org/openecomp/sdc/${project.version}</sitePath>
        <staging.profile.id>176c31dfe190a</staging.profile.id>
        <!--togglz version-->
        <togglz.version>2.6.1.Final</togglz.version>

        <joda.time.version>2.9.9</joda.time.version>

        <!--sdc-security-utils-->
        <security.util.lib.version>1.6.0</security.util.lib.version>
        <!--jacoco-->
        <jacoco.version>0.8.7</jacoco.version>

        <java.driver.core.version>4.5.1</java.driver.core.version>

        <!-- Surefire parameters  -->
        <surefire.forkCount>1C</surefire.forkCount>
        <surefire.reuseForks>true</surefire.reuseForks>
        <surefire.skip.tests>false</surefire.skip.tests>

        <bouncycastle.version>1.69</bouncycastle.version>

        <!--DOCKER-->
        <docker.api.version>1.41</docker.api.version>
        <docker.namespace>onap</docker.namespace>
        <docker.password>docker</docker.password>
        <docker.username>docker</docker.username>
        <docker.registry>nexus3.onap.org:10001</docker.registry>

        <verbose>false</verbose>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.jersey.ext</groupId>
                <artifactId>jersey-bean-validation</artifactId>
                <version>${jersey-bom.version}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.hk2.external</groupId>
                <artifactId>asm-all-repackaged</artifactId>
                <version>2.4.0</version>
            </dependency>

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

            <dependency>
                <groupId>org.jmockit</groupId>
                <artifactId>jmockit</artifactId>
                <version>${jmockit.version}</version>
            </dependency>

            <dependency>
                <groupId>com.github.tomakehurst</groupId>
                <artifactId>wiremock-standalone</artifactId>
                <version>${wire-mock.version}</version>
            </dependency>

            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-java</artifactId>
                <version>${cucumber.version}</version>
            </dependency>

            <dependency>
                <groupId>io.cucumber</groupId>
                <artifactId>cucumber-junit</artifactId>
                <version>${cucumber.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${lang3.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy</artifactId>
                <version>${groovy.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-all</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-handler</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-maven-plugin</artifactId>
                <version>${swagger-core-mvn-plugin.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <!-- must be on the classpath -->
            <groupId>org.jacoco</groupId>
            <artifactId>org.jacoco.agent</artifactId>
            <classifier>runtime</classifier>
            <version>${jacoco.version}</version>
            <scope>test</scope>
        </dependency>
        <!--JUnit Jupiter Engine to depend on the JUnit5 engine and JUnit 5 API -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>${junitJupiter.version}</version>
            <scope>test</scope>
        </dependency>
        <!--JUnit Jupiter Engine to depend on the JUnit4 engine and JUnit 4 API  -->
        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <version>${junitJupiter.version}</version>
            <scope>test</scope>
        </dependency>

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

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.0.1</version>
                <configuration>
                    <failOnError>false</failOnError>
                    <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
                    <docletArtifact>
                        <groupId>org.umlgraph</groupId>
                        <artifactId>umlgraph</artifactId>
                        <version>5.6</version>
                    </docletArtifact>
                    <useStandardDocletOptions>true</useStandardDocletOptions>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>${jacoco.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.1.0</version>
                    <configuration>
                        <tarLongFileMode>posix</tarLongFileMode>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.6.0</version>
                </plugin>
                <plugin>
                    <groupId>org.sonarsource.scanner.maven</groupId>
                    <artifactId>sonar-maven-plugin</artifactId>
                    <version>3.7.0.1746</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <plugin>
                    <groupId>ru.yaal.maven</groupId>
                    <artifactId>write-text-files-maven-plugin</artifactId>
                    <version>1.1</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.gmaven</groupId>
                    <artifactId>gmaven-plugin</artifactId>
                    <version>1.5</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>3.2.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>3.1.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.2.0</version>
                </plugin>
                <plugin>
                    <groupId>io.fabric8</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>0.38.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.2</version>
                </plugin>
                <plugin>
                    <groupId>com.github.eirslett</groupId>
                    <artifactId>frontend-maven-plugin</artifactId>
                    <version>1.12.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${maven-surefire-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>${maven-surefire-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                </plugin>
                <plugin>
                    <groupId>com.github.sylvainlaurent.maven</groupId>
                    <artifactId>yaml-json-validator-maven-plugin</artifactId>
                    <version>1.0.2</version>
                </plugin>
                <plugin>
                    <groupId>pl.project13.maven</groupId>
                    <artifactId>git-commit-id-plugin</artifactId>
                    <version>4.0.0</version>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>2.17</version>
                <configuration>
                    <suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
                    <suppressionsFileExpression>checkstyle.suppressions.file
                    </suppressionsFileExpression>
                    <skip>${checkstyle.skip}</skip>
                </configuration>
            </plugin>
            <!-- plugin for parsing the project version -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>parse-version</id>
                        <phase>pre-clean</phase>
                        <goals>
                            <goal>parse-version</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- Java Code Coverage -->
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <inherited>false</inherited>
                <executions>
                    <execution>
                        <id>default-instrument</id>
                        <goals>
                            <goal>instrument</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-restore-instrumented-classes</id>
                        <goals>
                            <goal>restore-instrumented-classes</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-report</id>
                        <goals>
                            <goal>report</goal>
                        </goals>
                        <configuration>
                            <dataFile>${project.build.directory}/jacoco.exec</dataFile>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.7.1</version>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.wagon</groupId>
                        <artifactId>wagon-webdav-jackrabbit</artifactId>
                        <version>3.0.0</version>
                    </dependency>
                </dependencies>
            </plugin>

            <!-- Set the deployment repositories properties. -->
            <plugin>
                <groupId>org.codehaus.gmaven</groupId>
                <artifactId>gmaven-plugin</artifactId>
                <executions>
                    <execution>
                        <inherited>false</inherited>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>execute</goal>
                        </goals>
                        <configuration>
                            <source>
                                pom.properties['deploy.url'] =
                                    pom.version.contains('-SNAPSHOT') ?
                                        project.distributionManagement.snapshotRepository.url :
                                        project.distributionManagement.repository.url;
                                pom.properties['repo.id'] = pom.version.contains('-SNAPSHOT') ?
                                    project.distributionManagement.snapshotRepository.id :
                                    project.distributionManagement.repository.id;
                            </source>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>11</source>
                    <target>11</target>
                    <forceJavacCompilerUse>true</forceJavacCompilerUse>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.surefire</groupId>
                        <artifactId>surefire-junit-platform</artifactId>
                        <version>${maven-surefire-plugin.version}</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <printSummary>false</printSummary>
                    <systemPropertyVariables>
                        <jacoco-agent.destfile>${project.build.directory}/jacoco.exec
                        </jacoco-agent.destfile>
                    </systemPropertyVariables>
                    <forkCount>${surefire.forkCount}</forkCount>
                    <reuseForks>${surefire.reuseForks}</reuseForks>
                    <parallel>methods</parallel>
                    <skip>${surefire.skip.tests}</skip>
                </configuration>
            </plugin>
            <plugin>
                <groupId>pl.project13.maven</groupId>
                <artifactId>git-commit-id-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>revision</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <generateGitPropertiesFile>true</generateGitPropertiesFile>
                    <generateGitPropertiesFilename>
                        ${project.build.outputDirectory}/META-INF/git.properties
                    </generateGitPropertiesFilename>
                    <failOnNoGitDirectory>true</failOnNoGitDirectory>
                    <verbose>false</verbose>
                    <includeOnlyProperties>
                        <includeOnlyProperty>git.build.version</includeOnlyProperty>
                        <includeOnlyProperty>git.build.time</includeOnlyProperty>
                        <includeOnlyProperty>git.commit.id</includeOnlyProperty>
                        <includeOnlyProperty>git.commit.time</includeOnlyProperty>
                        <includeOnlyProperty>git.commit.user.name</includeOnlyProperty>
                        <includeOnlyProperty>git.commit.user.email</includeOnlyProperty>
                        <includeOnlyProperty>git.commit.message.short</includeOnlyProperty>
                        <includeOnlyProperty>git.commit.message.full</includeOnlyProperty>
                    </includeOnlyProperties>
                    <gitDescribe>
                        <skip>true</skip>
                    </gitDescribe>
                    <useNativeGit>false</useNativeGit>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>all</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <checkstyle.skip>true</checkstyle.skip>
            </properties>
            <modules>
                <module>onboarding</module>
                <module>common-app-logging</module>
                <module>common-app-api</module>
                <module>common-be</module>
                <module>catalog-dao</module>
                <module>catalog-model</module>
                <module>catalog-be</module>
                <module>catalog-be-plugins</module>
                <module>asdctool</module>
                <module>catalog-ui</module>
                <module>catalog-fe</module>
                <module>sdc-os-chef</module>
                <module>utils/webseal-simulator</module>
                <module>integration-tests</module>
            </modules>
        </profile>
        <profile>
            <id>all-for-integration-tests-only</id>
            <properties>
                <checkstyle.skip>true</checkstyle.skip>
                <surefire.skip.tests>true</surefire.skip.tests>
            </properties>
            <modules>
                <module>onboarding</module>
                <module>common-app-logging</module>
                <module>common-app-api</module>
                <module>common-be</module>
                <module>catalog-dao</module>
                <module>catalog-model</module>
                <module>catalog-be</module>
                <module>catalog-be-plugins</module>
                <module>asdctool</module>
                <module>catalog-ui</module>
                <module>catalog-fe</module>
                <module>sdc-os-chef</module>
                <module>utils/webseal-simulator</module>
                <module>integration-tests</module>
            </modules>
        </profile>
        <profile>
            <id>skip-integration-tests</id>
            <activation>
                <property>
                    <name>skipITs</name>
                    <value>true</value>
                </property>
            </activation>
            <properties>
                <checkstyle.skip>true</checkstyle.skip>
            </properties>
            <modules>
                <module>onboarding</module>
                <module>common-app-logging</module>
                <module>common-app-api</module>
                <module>common-be</module>
                <module>catalog-dao</module>
                <module>catalog-model</module>
                <module>catalog-be</module>
                <module>catalog-be-plugins</module>
                <module>asdctool</module>
                <module>catalog-ui</module>
                <module>catalog-fe</module>
                <module>sdc-os-chef</module>
                <module>utils/webseal-simulator</module>
            </modules>
        </profile>
        <profile>
            <id>skip-tests</id>
            <activation>
                <property>
                    <name>skipTests</name>
                    <value>true</value>
                </property>
            </activation>
            <properties>
                <checkstyle.skip>true</checkstyle.skip>
                <maven.test.skip>true</maven.test.skip>
            </properties>
            <modules>
                <module>onboarding</module>
                <module>common-app-logging</module>
                <module>common-app-api</module>
                <module>common-be</module>
                <module>catalog-dao</module>
                <module>catalog-model</module>
                <module>catalog-be</module>
                <module>catalog-be-plugins</module>
                <module>asdctool</module>
                <module>catalog-ui</module>
                <module>catalog-fe</module>
                <module>sdc-os-chef</module>
                <module>utils/webseal-simulator</module>
            </modules>
        </profile>
        <profile>
            <id>fast-build</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <maven.test.skip>true</maven.test.skip>
                <skipYamlJsonValidator>true</skipYamlJsonValidator>
                <checkstyle.skip>true</checkstyle.skip>
                <jacoco.skip>true</jacoco.skip>
                <maven.antrun.skip>true</maven.antrun.skip>
                <swagger.skip>true</swagger.skip>
            </properties>
            <modules>
                <module>onboarding</module>
                <module>common-app-logging</module>
                <module>common-app-api</module>
                <module>common-be</module>
                <module>catalog-dao</module>
                <module>catalog-model</module>
                <module>catalog-be</module>
                <module>catalog-be-plugins</module>
                <module>asdctool</module>
                <module>catalog-ui</module>
                <module>catalog-fe</module>
                <module>sdc-os-chef</module>
                <module>utils/webseal-simulator</module>
            </modules>
        </profile>
        <profile>
            <id>start-sdc</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <maven.test.skip>true</maven.test.skip>
                <skipYamlJsonValidator>true</skipYamlJsonValidator>
                <checkstyle.skip>true</checkstyle.skip>
                <jacoco.skip>true</jacoco.skip>
                <docker.keepRunning>true</docker.keepRunning>
            </properties>
            <modules>
                <module>integration-tests</module>
            </modules>
        </profile>
        <profile>
            <id>stop-sdc</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <maven.test.skip>true</maven.test.skip>
                <skipYamlJsonValidator>true</skipYamlJsonValidator>
                <checkstyle.skip>true</checkstyle.skip>
                <jacoco.skip>true</jacoco.skip>


                <docker.skip.run>true</docker.skip.run>
            </properties>
            <modules>
                <module>integration-tests</module>
            </modules>
        </profile>
        <profile>
            <id>run-integration-tests</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <skipYamlJsonValidator>true</skipYamlJsonValidator>
                <checkstyle.skip>true</checkstyle.skip>
                <docker.skip>true</docker.skip>
            </properties>
            <modules>
                <module>integration-tests</module>
            </modules>
        </profile>
    </profiles>

    <repositories>
        <!-- LF repositories -->
        <repository>
            <id>ecomp-releases</id>
            <name>Release Repository</name>
            <url>${nexus.proxy}/content/repositories/releases/</url>
        </repository>
        <repository>
            <id>ecomp-snapshots</id>
            <name>Snapshots Repository</name>
            <url>${nexus.proxy}/content/repositories/snapshots/</url>
        </repository>
        <repository>
            <id>ecomp-public</id>
            <name>Public Repository</name>
            <url>${nexus.proxy}/content/repositories/public/</url>
        </repository>
        <!-- LF repositories END-->
    </repositories>

    <distributionManagement>
        <repository>
            <id>ecomp-releases</id>
            <name>Release Repository</name>
            <url>${nexus.proxy}/content/repositories/releases/</url>
        </repository>
        <site>
            <id>ecomp-site</id>
            <url>dav:${nexus.proxy}${sitePath}</url>
        </site>
        <snapshotRepository>
            <id>ecomp-snapshots</id>
            <name>Snapshot Repository</name>
            <url>${nexus.proxy}/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

</project>
