Merge changes from topic 'bp/Artifact'

* changes:
  Fix sonar
  Refactor code Sdc-controller
diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/SdcSingleController.java b/src/main/java/org/onap/clamp/clds/sdc/controller/SdcSingleController.java
index a629604..21deb64 100644
--- a/src/main/java/org/onap/clamp/clds/sdc/controller/SdcSingleController.java
+++ b/src/main/java/org/onap/clamp/clds/sdc/controller/SdcSingleController.java
@@ -200,10 +200,10 @@
     public void treatNotification(INotificationData iNotif) {

         CsarHandler csar = null;

         try {

-            // wait for a random time, so that 2 running Clamp will not treat the same Notification at the same time 

-            int i = ThreadLocalRandom.current().nextInt(1, 5);

-            Thread.sleep(i * 1000);

-

+            // wait for a random time, so that 2 running Clamp will not treat

+            // the same Notification at the same time

+            long i = ThreadLocalRandom.current().nextInt(1, 5);

+            Thread.sleep(i * 1000L);

             logger.info("Notification received for service UUID:" + iNotif.getServiceUUID());

             this.changeControllerStatus(SdcSingleControllerStatus.BUSY);

             csar = new CsarHandler(iNotif, this.sdcConfig.getSdcControllerName(),

@@ -247,6 +247,7 @@
                     e.getMessage(), System.currentTimeMillis());

         } catch (InterruptedException e) {

             logger.error("Interrupt exception caught during the notification processing", e);

+            Thread.currentThread().interrupt();

         } catch (RuntimeException e) {

             logger.error("Unexpected exception caught during the notification processing", e);

         } finally {

diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintArtifact.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintArtifact.java
index 5a29264..71d5ae3 100644
--- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintArtifact.java
+++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintArtifact.java
@@ -20,20 +20,21 @@
  * ===================================================================
  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
  */
-
 /**
  * This class is useful to store the information concerning
  * blueprint artifact extracted from SDC CSAR
  */
+
 package org.onap.clamp.clds.sdc.controller.installer;
 
+import org.onap.sdc.api.notification.IResourceInstance;
+
 public class BlueprintArtifact {
 
     private String dcaeBlueprint;
     private String blueprintArtifactName;
-    private String blueprintInvariantResourceUuid;
     private String blueprintInvariantServiceUuid;
-    private String blueprintResourceInstanceName;
+    private IResourceInstance resourceAttached;
 
     public String getDcaeBlueprint() {
         return dcaeBlueprint;
@@ -51,14 +52,6 @@
         this.blueprintArtifactName = blueprintArtifactName;
     }
 
-    public String getBlueprintInvariantResourceUuid() {
-        return blueprintInvariantResourceUuid;
-    }
-
-    public void setBlueprintInvariantResourceUuid(String blueprintInvariantResourceUuid) {
-        this.blueprintInvariantResourceUuid = blueprintInvariantResourceUuid;
-    }
-
     public String getBlueprintInvariantServiceUuid() {
         return blueprintInvariantServiceUuid;
     }
@@ -67,11 +60,11 @@
         this.blueprintInvariantServiceUuid = blueprintInvariantServiceUuid;
     }
 
-    public String getBlueprintResourceInstanceName() {
-        return blueprintResourceInstanceName;
+    public IResourceInstance getResourceAttached() {
+        return resourceAttached;
     }
 
-    public void setBlueprintResourceInstanceName(String blueprintResourceInstanceName) {
-        this.blueprintResourceInstanceName = blueprintResourceInstanceName;
+    public void setResourceAttached(IResourceInstance resourceAttached) {
+        this.resourceAttached = resourceAttached;
     }
 }
diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java
index aacef0a..c2652bc 100644
--- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java
+++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java
@@ -135,15 +135,15 @@
                     try (InputStream stream = zipFile.getInputStream(entry)) {
                         blueprintArtifact.setDcaeBlueprint(IOUtils.toString(stream));
                     }
-                    IResourceInstance resource = searchForResourceByInstanceName(entry.getName().substring(
+                    blueprintArtifact.setResourceAttached(searchForResourceByInstanceName(entry.getName().substring(
                             entry.getName().indexOf(RESOURCE_INSTANCE_NAME_PREFIX)
                                     + RESOURCE_INSTANCE_NAME_PREFIX.length(),
-                            entry.getName().indexOf(RESOURCE_INSTANCE_NAME_SUFFIX)));
-                    blueprintArtifact.setBlueprintInvariantResourceUuid(resource.getResourceInvariantUUID());
-                    blueprintArtifact.setBlueprintResourceInstanceName(resource.getResourceInstanceName());
+                            entry.getName().indexOf(RESOURCE_INSTANCE_NAME_SUFFIX))));
+                    this.mapOfBlueprints.put(blueprintArtifact.getResourceAttached().getResourceInstanceName(),
+                            blueprintArtifact);
                     logger.info("Found a blueprint entry in the CSAR " + blueprintArtifact.getBlueprintArtifactName()
-                            + " for resource instance Name " + resource.getResourceInstanceName());
-                    this.mapOfBlueprints.put(blueprintArtifact.getBlueprintResourceInstanceName(), blueprintArtifact);
+                            + " for resource instance Name "
+                            + blueprintArtifact.getResourceAttached().getResourceInstanceName());
                 }
             }
             logger.info(this.mapOfBlueprints.size() + " blueprint(s) will be converted to closed loop");
diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java
index ded75dd..5a00a82 100644
--- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java
+++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarInstallerImpl.java
@@ -173,7 +173,7 @@
             throws IOException, ParseException, InterruptedException {
         return dcaeInventoryService.getDcaeInformation(blueprintArtifact.getBlueprintArtifactName(),
                 blueprintArtifact.getBlueprintInvariantServiceUuid(),
-                blueprintArtifact.getBlueprintInvariantResourceUuid()).getTypeId();
+                blueprintArtifact.getResourceAttached().getResourceInvariantUUID()).getTypeId();
     }
 
     private CldsTemplate createFakeCldsTemplate(CsarHandler csar, BlueprintArtifact blueprintArtifact,
@@ -209,7 +209,7 @@
         cldsModel.setTemplateId(cldsTemplate.getId());
         cldsModel.setPropText("{\"global\":[{\"name\":\"service\",\"value\":[\""
                 + blueprintArtifact.getBlueprintInvariantServiceUuid() + "\"]},{\"name\":\"vf\",\"value\":[\""
-                + blueprintArtifact.getBlueprintInvariantResourceUuid()
+                + blueprintArtifact.getResourceAttached().getResourceInvariantUUID()
                 + "\"]},{\"name\":\"actionSet\",\"value\":[\"vnfRecipe\"]},{\"name\":\"location\",\"value\":[\"DC1\"]},{\"name\":\"deployParameters\",\"value\":{\n"
                 + "        \"policy_id\": \"" + "test" + "\"" + "      }}]}");
         cldsModel.setBpmnText(cldsTemplate.getBpmnText());
diff --git a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java
index b741f7c..9009d37 100644
--- a/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java
+++ b/src/test/java/org/onap/clamp/clds/it/sdc/controller/installer/CsarInstallerItCase.java
@@ -67,6 +67,7 @@
     private static final String CSAR_ARTIFACT_NAME = "testArtifact.csar";
     private static final String INVARIANT_SERVICE_UUID = "4cc5b45a-1f63-4194-8100-cd8e14248c92";
     private static final String INVARIANT_RESOURCE1_UUID = "07e266fc-49ab-4cd7-8378-ca4676f1b9ec";
+    private static final String INSTANCE_NAME_RESOURCE1 = "ResourceInstanceName";
     @Autowired
     private CsarInstaller csarInstaller;
     @Autowired
@@ -77,6 +78,7 @@
             throws SdcArtifactInstallerException, SdcToscaParserException, CsarHandlerException, IOException {
         CsarHandler csarHandler = Mockito.mock(CsarHandler.class);
         BlueprintArtifact blueprintArtifact = Mockito.mock(BlueprintArtifact.class);
+        Mockito.when(blueprintArtifact.getResourceAttached()).thenReturn(Mockito.mock(IResourceInstance.class));
         Map<String, BlueprintArtifact> blueprintMap = new HashMap<>();
         blueprintMap.put("resourceid", blueprintArtifact);
         Mockito.when(csarHandler.getMapOfBlueprints()).thenReturn(blueprintMap);
@@ -93,8 +95,9 @@
         // Create fake resource in notification
         List<IResourceInstance> listResources = new ArrayList<>();
         IResourceInstance resource = Mockito.mock(IResourceInstance.class);
-        Mockito.when(resource.getResourceInstanceName()).thenReturn("mm-e 0");
-        Mockito.when(resource.getResourceInvariantUUID()).thenReturn("mme0-invariantUuid");
+        Mockito.when(resource.getResourceInstanceName()).thenReturn(INSTANCE_NAME_RESOURCE1);
+        Mockito.when(resource.getResourceInvariantUUID()).thenReturn(INVARIANT_RESOURCE1_UUID);
+        listResources.add(resource);
         Mockito.when(notificationData.getResources()).thenReturn(listResources);
         // Create fake blueprint artifact
         BlueprintArtifact blueprintArtifact = Mockito.mock(BlueprintArtifact.class);
@@ -102,7 +105,7 @@
                 .thenReturn(ResourceFileUtil.getResourceAsString("example/sdc/blueprint-dcae/tca.yaml"));
         Mockito.when(blueprintArtifact.getBlueprintArtifactName()).thenReturn(CSAR_ARTIFACT_NAME);
         Mockito.when(blueprintArtifact.getBlueprintInvariantServiceUuid()).thenReturn(INVARIANT_SERVICE_UUID);
-        Mockito.when(blueprintArtifact.getBlueprintInvariantResourceUuid()).thenReturn(INVARIANT_RESOURCE1_UUID);
+        Mockito.when(blueprintArtifact.getResourceAttached()).thenReturn(resource);
         Map<String, BlueprintArtifact> blueprintMap = new HashMap<>();
         blueprintMap.put("resourceid", blueprintArtifact);
         // Build fake csarhandler
diff --git a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java
index b02e8ba..397a6a6 100644
--- a/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java
+++ b/src/test/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandlerTest.java
@@ -132,8 +132,8 @@
         // Test additional properties from Sdc notif
         assertEquals(BLUEPRINT1_NAME,
                 csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getBlueprintArtifactName());
-        assertEquals(RESOURCE1_UUID,
-                csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getBlueprintInvariantResourceUuid());
+        assertEquals(RESOURCE1_UUID, csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getResourceAttached()
+                .getResourceInvariantUUID());
         assertEquals(SERVICE_UUID,
                 csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getBlueprintInvariantServiceUuid());
         // Do some cleanup
@@ -158,8 +158,8 @@
         // Test additional properties from Sdc notif
         assertEquals(BLUEPRINT1_NAME,
                 csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getBlueprintArtifactName());
-        assertEquals(RESOURCE1_UUID,
-                csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getBlueprintInvariantResourceUuid());
+        assertEquals(RESOURCE1_UUID, csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getResourceAttached()
+                .getResourceInvariantUUID());
         assertEquals(SERVICE_UUID,
                 csar.getMapOfBlueprints().get(RESOURCE1_INSTANCE_NAME).getBlueprintInvariantServiceUuid());
         Path path = Paths.get(SDC_FOLDER + "/test-controller/" + CSAR_ARTIFACT_NAME);