Optimize Build

Optimize the time required to compute the tests so that the build can be faster

Issue-ID: SDC-3232
Signed-off-by: sebdet <sebastien.determe@intl.att.com>
Change-Id: I0ccbc3a0f9d895e75dcf5e4c1ef35ebf3ba06808
Signed-off-by: sebdet <sebastien.determe@intl.att.com>
diff --git a/catalog-be/pom.xml b/catalog-be/pom.xml
index 61a40e4..4eb05e6 100644
--- a/catalog-be/pom.xml
+++ b/catalog-be/pom.xml
@@ -753,6 +753,13 @@
     <finalName>${project.artifactId}-${project.version}</finalName>
     <plugins>
       <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <configuration>
+            <forkCount>1</forkCount>
+          </configuration>
+      </plugin>
+      <plugin>
         <!-- Download Swagger UI webjar. -->
         <artifactId>maven-dependency-plugin</artifactId>
         <version>${maven-dependency-plugin.version}</version>
diff --git a/catalog-dao/pom.xml b/catalog-dao/pom.xml
index 52a317d..4634ce3 100644
--- a/catalog-dao/pom.xml
+++ b/catalog-dao/pom.xml
@@ -345,7 +345,15 @@
   </dependencies>
 
   <build>
-
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <forkCount>1</forkCount>
+        </configuration>
+      </plugin>
+    </plugins>
     <pluginManagement>
       <plugins>
         <!--This plugin's configuration is used to store Eclipse m2e settings
@@ -406,5 +414,6 @@
         </plugin>
       </plugins>
     </pluginManagement>
+
   </build>
 </project>
diff --git a/common/onap-common-configuration-management/onap-configuration-management-core/pom.xml b/common/onap-common-configuration-management/onap-configuration-management-core/pom.xml
index cf74fa1..b2f545f 100755
--- a/common/onap-common-configuration-management/onap-configuration-management-core/pom.xml
+++ b/common/onap-common-configuration-management/onap-configuration-management-core/pom.xml
@@ -114,7 +114,6 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
-        <version>${maven-surefire-plugin.version}</version>
         <configuration>
           <systemPropertyVariables>
             <config.location>${project.basedir}/src/test/resources</config.location>
diff --git a/common/onap-generic-artifact-browser/onap-generic-artifact-browser-service/pom.xml b/common/onap-generic-artifact-browser/onap-generic-artifact-browser-service/pom.xml
index 4efc32f..48124dd 100644
--- a/common/onap-generic-artifact-browser/onap-generic-artifact-browser-service/pom.xml
+++ b/common/onap-generic-artifact-browser/onap-generic-artifact-browser-service/pom.xml
@@ -62,14 +62,4 @@
 
   </dependencies>
 
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>${maven-surefire-plugin.version}</version>
-      </plugin>
-    </plugins>
-  </build>
-
 </project>
\ No newline at end of file
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 977c49e..7583de4 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -242,7 +242,7 @@
                 <artifactId>maven-resources-plugin</artifactId>
                 <executions>
                     <execution>
-                        <id>copy-resources</id>
+                        <id>copy-chef-resources</id>
                         <phase>pre-integration-test</phase>
                         <goals>
                             <goal>copy-resources</goal>
@@ -293,10 +293,10 @@
                         <phase>pre-integration-test</phase>
                         <configuration>
                             <target>
-                                <mkdir dir="${it.shared.volume}"/>
-                                <chmod dir="${it.shared.volume}" type="dir" perm="ugo+rwx"/>
-                                <mkdir dir="target/automationDownloadDir"/>
-                                <chmod dir="target/automationDownloadDir" type="dir" perm="ugo+rwx"/>
+                                <mkdir dir="/tmp/sdc-integration-tests"/>
+                                <chmod dir="/tmp/sdc-integration-tests" type="dir" perm="ugo+rwx"/>
+                                <mkdir dir="/tmp/sdc-integration-tests/downloadAutomation"/>
+                                <chmod dir="/tmp/sdc-integration-tests/downloadAutomation" type="dir" perm="ugo+rwx"/>
                             </target>
                         </configuration>
                         <goals>
@@ -437,7 +437,7 @@
                             <alias>sdc-cassandra-onboard-init</alias>
                             <run>
                                 <dependsOn>
-                                    <container>sdc-cassandra-init</container>
+                                    <container>sdc-cassandra</container>
                                 </dependsOn>
                                 <env>
                                     <RELEASE>${project.version}</RELEASE>
@@ -520,7 +520,7 @@
                             <alias>sdc-backend</alias>
                             <run>
                                 <dependsOn>
-                                    <container>sdc-onboard-backend</container>
+                                    <container>sdc-cassandra-init</container>
                                 </dependsOn>
                                 <env>
                                     <cassandra_ssl_enabled>${it.cassandra.ssl.enabled}</cassandra_ssl_enabled>
@@ -593,9 +593,6 @@
                             <name>onap/sdc-frontend:${it.docker.version}</name>
                             <alias>sdc-frontend</alias>
                             <run>
-                                <dependsOn>
-                                    <container>sdc-backend-init</container>
-                                </dependsOn>
                                 <env>
                                     <ENVNAME>${it.env.name}</ENVNAME>
                                     <JAVA_OPTIONS>-Xdebug
@@ -718,7 +715,7 @@
                                 <volumes>
                                     <bind>
                                         <volume>
-                                            ${project.basedir}/target/automationDownloadDir/:/home/seluser/Desktop
+                                            /tmp/sdc-integration-tests/downloadAutomation/:/home/seluser/Desktop
                                         </volume>
                                         <volume>/dev/shm:/dev/shm</volume>
                                     </bind>
@@ -757,6 +754,8 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-failsafe-plugin</artifactId>
                 <configuration>
+                    <forkCount>1</forkCount>
+                    <reuseForks>true</reuseForks>
                     <suiteXmlFiles>
                         <file>src/test/resources/ci/testSuites/backend/onapApiSanity.xml</file>
                         <file>src/test/resources/ci/testSuites/frontend/onapUiSanity.xml</file>
@@ -782,10 +781,6 @@
                         <!--<file>src/test/resources/ci/testSuites/testngLifeCycle.xml</file>-->
                         <!--                        <file>src/test/resources/ci/testSuites/user.xml</file>-->
                     </suiteXmlFiles>
-                    <!--                    <includes>-->
-                    <!--                        <include>**/*Test.java</include>-->
-                    <!--                    </includes>-->
-
                 </configuration>
             </plugin>
         </plugins>
diff --git a/integration-tests/src/test/java/org/onap/sdc/backend/ci/tests/api/ComponentBaseTest.java b/integration-tests/src/test/java/org/onap/sdc/backend/ci/tests/api/ComponentBaseTest.java
index 71c8db0..985d161 100644
--- a/integration-tests/src/test/java/org/onap/sdc/backend/ci/tests/api/ComponentBaseTest.java
+++ b/integration-tests/src/test/java/org/onap/sdc/backend/ci/tests/api/ComponentBaseTest.java
@@ -7,9 +7,9 @@
  * 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.
@@ -68,7 +68,7 @@
 
     protected static Logger logger = LogManager.getLogger(ComponentBaseTest.class);
 
-    protected static final String REPORT_FOLDER = "target" + File.separator + "ExtentReport" + File.separator;
+    protected static final String REPORT_FOLDER = "target" + File.separator + "ExtentReport" + File.separator + "API" + File.separator;
     private static final String REPORT_FILE_NAME = "SDC_CI_Extent_Report.html";
     public static Config config;
     protected static ITestContext myContext;
@@ -108,7 +108,7 @@
     @BeforeMethod(alwaysRun = true)
     public void setupBeforeTest(java.lang.reflect.Method method, ITestContext context) throws Exception {
         if (!"onboardVNFShotFlow".equals(method.getName()) &&
-            !"onboardPNFFlow".equals(method.getName()) ) {
+                !"onboardPNFFlow".equals(method.getName())) {
             logger.info("ExtentReport instance started from BeforeMethod...");
             ExtentTestManager.startTest(method.getName());
             ExtentTestManager.assignCategory(this.getClass());
@@ -186,7 +186,7 @@
 
 
         List<String> genericCollection = new ArrayList<>();
-        if(resourcesArrayList.get(0) != null) {
+        if (resourcesArrayList.get(0) != null) {
             ComponentTypeEnum componentTypeEnum = resourcesArrayList.get(0).getComponentType();
             resourcesArrayList.stream().filter(Objects::nonNull).
                     filter(s -> s.getName().toLowerCase().startsWith("ci") && !s.getName().toLowerCase().equals("cindervolume")).
diff --git a/integration-tests/src/test/java/org/onap/sdc/backend/ci/tests/utils/general/FileHandling.java b/integration-tests/src/test/java/org/onap/sdc/backend/ci/tests/utils/general/FileHandling.java
index 5cb55fd..19533e9 100644
--- a/integration-tests/src/test/java/org/onap/sdc/backend/ci/tests/utils/general/FileHandling.java
+++ b/integration-tests/src/test/java/org/onap/sdc/backend/ci/tests/utils/general/FileHandling.java
@@ -312,7 +312,7 @@
 	public static void createDirectory(String directoryPath) {
 		File directory = new File(String.valueOf(directoryPath));
 	    if (! directory.exists()){
-	        directory.mkdir();
+	        directory.mkdirs();
 	    }
 	}
 
diff --git a/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/execute/setup/SetupCDTest.java b/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/execute/setup/SetupCDTest.java
index 9f5a7cc..18b5a71 100644
--- a/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/execute/setup/SetupCDTest.java
+++ b/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/execute/setup/SetupCDTest.java
@@ -24,11 +24,13 @@
 import ch.qos.logback.classic.LoggerContext;
 import com.aventstack.extentreports.ExtentTest;
 import com.aventstack.extentreports.Status;
+
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.UUID;
+
 import net.lightbody.bmp.core.har.Har;
 import org.json.simple.JSONObject;
 import org.onap.sdc.backend.ci.tests.config.UserCredentialsFromFile;
@@ -75,7 +77,7 @@
     private static final String CREDENTIALS_FILE = "credentials.yaml";
 
     private static final String REPORT_FILE_NAME = "SDC_UI_Extent_Report.html";
-    private static final String REPORT_FOLDER = "target" + File.separator + "ExtentReport" + File.separator;
+    private static final String REPORT_FOLDER = "target" + File.separator + "ExtentReport" + File.separator + "UI" + File.separator;
     private static final String SCREENSHOT_FOLDER = REPORT_FOLDER + "screenshots" + File.separator;
     private static final String HAR_FILES_FOLDER_NAME = "har_files";
     private static final String HAR_FILES_FOLDER = REPORT_FOLDER + HAR_FILES_FOLDER_NAME + File.separator;
@@ -392,7 +394,7 @@
     private void loginWithUser(final UserRoleEnum role) {
         try {
             final String msg = String
-                .format("Login as user '%s', role '%s'", role.getUserId(), role.getUserRole());
+                    .format("Login as user '%s', role '%s'", role.getUserId(), role.getUserRole());
             getExtendTest().log(Status.INFO, msg);
             LOGGER.info(msg);
             loginToSystem(role);
@@ -423,7 +425,7 @@
         LOGGER.info(String.format("Setup before test for role '%s'", role.name()));
         if (!getWindowTest().getPreviousRole().equalsIgnoreCase(role.name())) {
             LOGGER.info(String.format("Logging in with new role '%s'. Previous role was: '%s'.", role.name(),
-                getWindowTest().getPreviousRole()));
+                    getWindowTest().getPreviousRole()));
             navigateAndLogin(role);
         }
     }
diff --git a/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/utilities/FileHandling.java b/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/utilities/FileHandling.java
index bb058e4..b7f199d 100644
--- a/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/utilities/FileHandling.java
+++ b/integration-tests/src/test/java/org/onap/sdc/frontend/ci/tests/utilities/FileHandling.java
@@ -304,7 +304,7 @@
     public static void createDirectory(String directoryPath) {
         File directory = new File(String.valueOf(directoryPath));
         if (!directory.exists()) {
-            directory.mkdir();
+            directory.mkdirs();
         }
     }
 
diff --git a/integration-tests/src/test/resources/ci/conf/sdc-conf.yaml b/integration-tests/src/test/resources/ci/conf/sdc-conf.yaml
index cea230e..5303e3b 100644
--- a/integration-tests/src/test/resources/ci/conf/sdc-conf.yaml
+++ b/integration-tests/src/test/resources/ci/conf/sdc-conf.yaml
@@ -5,7 +5,7 @@
 remoteTesting: true
 useBrowserMobProxy: false
 captureTraffic: false
-downloadAutomationFolder: target/automationDownloadDir
+downloadAutomationFolder: /tmp/sdc-integration-tests/downloadAutomation
 uiSimulator: true
 
 #### Local Front end testing
diff --git a/integration-tests/src/test/resources/ci/testSuites/frontend/onapUiSanity.xml b/integration-tests/src/test/resources/ci/testSuites/frontend/onapUiSanity.xml
index a9d5661..47dc9f6 100644
--- a/integration-tests/src/test/resources/ci/testSuites/frontend/onapUiSanity.xml
+++ b/integration-tests/src/test/resources/ci/testSuites/frontend/onapUiSanity.xml
@@ -1,30 +1,30 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
 <suite name="uitests" configfailurepolicy="continue" parallel="methods" thread-count="1"
-  data-provider-thread-count="1">
+       data-provider-thread-count="1">
 
-  <parameter name="makeDistribution" value="false"/>
+    <parameter name="makeDistribution" value="false"/>
 
-  <test name="uiSanity">
-    <classes>
-      <class name="org.onap.sdc.frontend.ci.tests.execute.sanity.Vf">
-        <methods>
-          <include name="changeInstanceNameInVfTest"/>
-        </methods>
-      </class>
-      <class name="org.onap.sdc.frontend.ci.tests.execute.sanity.Service">
-        <methods>
-          <include name="updateService"/>
-        </methods>
-      </class>
-      <class name="org.onap.sdc.frontend.ci.tests.execute.sanity.OnboardingFlowsUi">
-        <methods>
-          <include name="onapOnboardVNFflow"/>
-          <include name="onapOnboardVSPValidationsSanityFlow"/>
-          <include name="onboardPNFSoftwareInformationFlow"/>
-        </methods>
-      </class>
-      <class name="org.onap.sdc.frontend.ci.tests.execute.sanity.GAB"/>
-    </classes>
-  </test>
+    <test name="uiSanity">
+        <classes>
+            <class name="org.onap.sdc.frontend.ci.tests.execute.sanity.Vf">
+                <methods>
+                    <include name="changeInstanceNameInVfTest"/>
+                </methods>
+            </class>
+            <class name="org.onap.sdc.frontend.ci.tests.execute.sanity.Service">
+                <methods>
+                    <include name="updateService"/>
+                </methods>
+            </class>
+            <class name="org.onap.sdc.frontend.ci.tests.execute.sanity.OnboardingFlowsUi">
+                <methods>
+                    <include name="onapOnboardVNFflow"/>
+                    <include name="onapOnboardVSPValidationsSanityFlow"/>
+                    <include name="onboardPNFSoftwareInformationFlow"/>
+                </methods>
+            </class>
+            <class name="org.onap.sdc.frontend.ci.tests.execute.sanity.GAB"/>
+        </classes>
+    </test>
 </suite>
diff --git a/onboarding/pom.xml b/onboarding/pom.xml
index 4ccb3d8..2d7927e 100644
--- a/onboarding/pom.xml
+++ b/onboarding/pom.xml
@@ -309,10 +309,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
-        <version>${maven-surefire-plugin.version}</version>
         <configuration>
-          <forkCount>${fork.count}</forkCount>
-          <forkMode>${fork.mode}</forkMode>
           <printSummary>false</printSummary>
           <additionalClasspathElements>
             <additionalClasspathElement>${project.basedir}/src/test/resources
@@ -323,7 +320,6 @@
             </logback.configurationFile>
             <config.location>${project.basedir}/configuration</config.location>
           </systemPropertyVariables>
-          <useSystemClassLoader>${useSystemClassLoader}</useSystemClassLoader>
         </configuration>
       </plugin>
       <plugin>
diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vnf-repository-rest-services/pom.xml b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vnf-repository-rest-services/pom.xml
index 44ea11c..d1269cf 100644
--- a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vnf-repository-rest-services/pom.xml
+++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vnf-repository-rest-services/pom.xml
@@ -89,14 +89,4 @@
     </dependency>
   </dependencies>
 
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>${maven-surefire-plugin.version}</version>
-      </plugin>
-    </plugins>
-  </build>
-
 </project>
diff --git a/pom.xml b/pom.xml
index 08a6dc9..ea422e0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -156,15 +156,14 @@
         <docker.tag>${project.version}-${maven.build.timestamp}</docker.tag>
         <!--togglz version-->
         <togglz.version>2.4.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.forkCount>1C</surefire.forkCount>
+        <surefire.reuseForks>true</surefire.reuseForks>
     </properties>
 
     <dependencyManagement>
@@ -513,6 +512,9 @@
                     <systemPropertyVariables>
                         <jacoco-agent.destfile>${project.build.directory}/jacoco.exec</jacoco-agent.destfile>
                     </systemPropertyVariables>
+                    <forkCount>${surefire.forkCount}</forkCount>
+                    <reuseForks>${surefire.reuseForks}</reuseForks>
+                    <parallel>methods</parallel>
                 </configuration>
             </plugin>
             <plugin>