aboutsummaryrefslogtreecommitdiffstats
path: root/pom.xml
blob: 4a6b5ba7dec544bc652697d6054b48603bec310c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */
.highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */
.highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */
.highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */
.highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */
.highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */
.highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */
.highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */
.highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */
.highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */
.highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */
.highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */
.highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */
.highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
*** Settings ***
Documentation   Testing openstack.
Library    OperatingSystem
Library    Process
Library    SSHLibrary
Library    RequestsLibrary
Library    ONAPLibrary.JSON
Library    OpenstackLibrary
Library    HEATUtils
Library    Collections
Library    String
Library           ONAPLibrary.ServiceMapping

Resource          ../openstack/keystone_interface.robot
Resource          ../openstack/nova_interface.robot
Resource          ../openstack/heat_interface.robot
Resource          ../ssh/files.robot
Resource          ../ssh/processes.robot
Resource          ../demo_preload.robot
Resource          packet_generator_interface.robot
Resource          validate_common.robot
Resource          ../test_templates/vnf_orchestration_test_template.robot


*** Variables ***

*** Keywords ***
Policy Check FirewallCL Stack
    [Documentation]    Executes the vFW policy closed loop test.
    [Arguments]    ${stacknamemap}    ${policy_rate}
    Run Openstack Auth Request    auth
    ${vsnk_stack_name}=   Get From Dictionary    ${stacknamemap}    vFWSNK
    ${vpkg_stack_name}=   Get From Dictionary    ${stacknamemap}    vPKG
    ${vsnk_stack_info}=    Wait for Stack to Be Deployed    auth    ${vsnk_stack_name}
    ${vpkg_stack_info}=    Wait for Stack to Be Deployed    auth    ${vpkg_stack_name}
    ${server_list}=    Get Openstack Servers    auth
    Log     ${server_list}
    ${vpkg_id}=   Get From Dictionary     ${vpkg_stack_info}   vnf_id
    ${status}  ${generic_vnf}=   Run Keyword And Ignore Error   Get Generic VNF By ID    ${vpkg_id}
    Run Keyword If   '${status}' == 'FAIL'   FAIL   VNF ID: ${vpkg_id} is not found.
    ${invariantUUID}   Get From Dictionary  ${generic_vnf}   persona-model-id
    Update vVFWCL Policy   ${invariantUUID}

    ${vpg_unprotected_ip}=    Get From Dictionary    ${vpkg_stack_info}    vpg_int_unprotected_private_ip_0
    ${vsn_protected_ip}=    Get From Dictionary    ${vsnk_stack_info}    vsn_int_protected_private_ip_0
    ${vpg_public_ip}=    Get Server Ip    ${server_list}    ${vpkg_stack_info}   vpg_name_0    network_name=public
    ${vsn_public_ip}=    Get Server Ip    ${server_list}    ${vsnk_stack_info}   vsn_name_0    network_name=public
    ${upper_bound}=    Evaluate    ${policy_rate}*2
    Wait Until Keyword Succeeds    30m    2s    Run VFW Policy Check    ${vpg_public_ip}   ${policy_rate}    ${upper_bound}    1

Run VFW Policy Check
    [Documentation]     Push traffic above upper bound, wait for policy to fix it, push traffic to lower bound, wait for policy to fix it,
    [Arguments]    ${vpg_public_ip}    ${policy_rate}    ${upper_bound}    ${lower_bound}
    # Force traffic above threshold
    Check For Policy Enforcement    ${vpg_public_ip}    ${policy_rate}    ${upper_bound}
    # Force traffic below threshold
    Check For Policy Enforcement    ${vpg_public_ip}    ${policy_rate}    ${lower_bound}


Check For Policy Enforcement
    [Documentation]     Push traffic above upper bound, wait for policy to fix it, push traffic to lower bound, wait for policy to fix it,
    [Arguments]    ${vpg_public_ip}    ${policy_rate}    ${forced_rate}
    Enable Streams    ${vpg_public_ip}    ${forced_rate}
    Wait Until Keyword Succeeds    20s    2s    Test For Expected Rate    ${vpg_public_ip}    ${forced_rate}
    Wait Until Keyword Succeeds    10m    2s    Test For Expected Rate    ${vpg_public_ip}    ${policy_rate}

Test For Expected Rate
    [Documentation]    Ge the number of pg-streams from the PGN, and test to see if it is what we expect.
    [Arguments]    ${vpg_public_ip}    ${number_of_streams}
    ${list}=    Get List Of Enabled Streams    ${vpg_public_ip}
    ${list}=    Evaluate   ${list['sample-plugin']}['pg-streams']['pg-stream']
    Length Should Be    ${list}    ${number_of_streams}



Policy Check vLB Stack
    [Documentation]    Executes the vLB policy closed loop test
    [Arguments]    ${stack_name}    ${policy_rate}
    Run Openstack Auth Request    auth
    ${stack_info}=    Wait for Stack to Be Deployed    auth    ${stack_name}
    ${stack_id}=    Get From Dictionary    ${stack_info}    id
    ${server_list}=    Get Openstack Servers    auth
    ${vlb_public_ip}=    Get Server Ip    ${server_list}    ${stack_info}   vlb_name_0    network_name=public
    ${upper_bound}=    Evaluate    ${policy_rate}*2
    Start DNS Traffic    ${vlb_public_ip}    ${upper_bound}

    # Now wiat for the dnsscaling stack to be deployed
    ${prefix}=    Get DNSScaling Prefix
    ${dnsscaling}=    Replace String Using Regexp    ${stack_name}    ^Vfmodule_    ${prefix}
    ${dnsscaling_info}=    Wait for Stack to Be Deployed    auth    ${dnsscaling}
    VLB Closed Loop Hack Update   ${dnsscaling}
    # TO DO: Log into vLB and cehck that traffic is flowing to the new DNS
    [Return]    ${dnsscaling}

Get DNSScaling Prefix
    Set Directory    default    ./demo/service_mapping
    ${mapping}=    Get Service Template Mapping    default    vLB    vLB
    :FOR   ${dic
<!--
============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.9.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.1</janusgraph.version>
        <spring.version>5.2.10.RELEASE</spring.version>
        <jersey-bom.version>2.27</jersey-bom.version>
        <netty.version>4.1.48.Final</netty.version>
        <servlet-api.version>3.1.0</servlet-api.version>
        <wire-mock.version>2.26.3</wire-mock.version>
        <ecomp.version>2.6.0</ecomp.version>
        <cassandra.unit.version>4.3.1.0</cassandra.unit.version>
        <cadi.version>2.1.8</cadi.version>
        <lombok.version>1.18.18</lombok.version>
        <commons-beanutils>1.9.4</commons-beanutils>
        <commons-configuration>2.3</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>

        <commons.collections.version>4.1</commons.collections.version>
        <ws.rs.version>2.1</ws.rs.version>

        <jetty.version>9.4.36.v20210114</jetty.version>

        <!-- JSON and YAML Parsing -->
        <jackson.version>2.12.1</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.28</snakeyaml.version>
        <functionaljava.version>4.7</functionaljava.version>
        <httpclient.version>4.5.3</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.3</logback.version>
        <slf4j-api.version>1.7.25</slf4j-api.version>
        <commons-codec>1.10</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.8.9</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.3.1</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.version>4.13.1</junit.version>
        <junit.platform.version>1.7.1</junit.platform.version>
        <junitJupiter.version>5.7.0</junitJupiter.version>
        <assertj.version>3.16.0</assertj.version>
        <testng.version>7.3.0</testng.version>
        <cucumber.version>6.8.1</cucumber.version>
        <bean-matchers.version>0.11</bean-matchers.version>
        <hamcrest.version>2.1</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>

        <!-- 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://registry.npmjs.org/</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.5</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>

        <docker.api.version>1.35</docker.api.version>
        <bouncycastle.version>1.68</bouncycastle.version>
    </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.31.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.8.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>
            </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>
        <snapshotRepository>
            <id>ecomp-snapshots</id>
            <name>Snapshot Repository</name>
            <url>${nexus.proxy}/content/repositories/snapshots/</url>
        </snapshotRepository>
        <site>
            <id>ecomp-site</id>
            <url>dav:${nexus.proxy}${sitePath}</url>
        </site>
    </distributionManagement>
</project>