Refactor of DecomposeJsonUtils class. 21/28921/2
authorbiniek <lukasz.biniek@nokia.com>
Tue, 23 Jan 2018 13:43:24 +0000 (14:43 +0100)
committerbiniek <lukasz.biniek@nokia.com>
Mon, 29 Jan 2018 12:59:12 +0000 (13:59 +0100)
Change-Id: I72b779eb17ffb901266de605eb2eda49f13bd03e
Issue-ID: SO-374
Signed-off-by: biniek <lukasz.biniek@nokia.com>
bpmn/MSOCommonBPMN/src/main/groovy/org/openecomp/mso/bpmn/common/scripts/DecomposeService.groovy
bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/domain/ServiceDecomposition.java
bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/json/DecomposeJsonUtil.java
bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/json/JsonDecomposingException.java [new file with mode: 0644]
bpmn/MSOInfrastructureBPMN/src/main/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVnfAndModules.groovy

index 06cc284..2645ea3 100644 (file)
@@ -17,7 +17,9 @@
  * limitations under the License.
  * ============LICENSE_END=========================================================
  */
-package org.openecomp.mso.bpmn.common.scripts;
+package org.openecomp.mso.bpmn.common.scripts
+
+import org.openecomp.mso.bpmn.core.json.DecomposeJsonUtil;
 
 import static org.apache.commons.lang3.StringUtils.*;
 
@@ -96,12 +98,12 @@ public class DecomposeService extends AbstractServiceTaskProcessor {
                        // check for input
                        String serviceModelInvariantId = execution.getVariable("DDS_serviceModelInvariantId")
                        String modelVersion = execution.getVariable("DDS_modelVersion")
-                       
+
                        utils.log("DEBUG", "serviceModelInvariantId: " + serviceModelInvariantId, isDebugEnabled)
-                       utils.log("DEBUG", "modelVersion: " + modelVersion, isDebugEnabled)                     
-                       
+                       utils.log("DEBUG", "modelVersion: " + modelVersion, isDebugEnabled)
+
                        JSONObject catalogDbResponse = null
-                       
+
                        if (modelVersion != null && modelVersion.length() > 0)
                                catalogDbResponse = catalogDbUtils.getServiceResourcesByServiceModelInvariantUuidAndServiceModelVersion(execution, serviceModelInvariantId, modelVersion, "v2")
                        else
@@ -140,7 +142,7 @@ public class DecomposeService extends AbstractServiceTaskProcessor {
                        utils.log("DEBUG", "getting service decomposition", isDebugEnabled)
 
                        String catalogDbResponse = execution.getVariable("DDS_catalogDbResponse")
-                       ServiceDecomposition serviceDecomposition = new ServiceDecomposition(catalogDbResponse, serviceInstanceId)
+                       ServiceDecomposition serviceDecomposition = DecomposeJsonUtil.jsonToServiceDecomposition(catalogDbResponse, serviceInstanceId)
 
                        execution.setVariable("serviceDecomposition", serviceDecomposition)
                        execution.setVariable("serviceDecompositionString", serviceDecomposition.toJsonString())
index 1e68c84..0e985cc 100644 (file)
@@ -31,9 +31,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;\r
 import com.fasterxml.jackson.annotation.JsonRootName;\r
 \r
-import org.json.JSONObject;\r
 import org.openecomp.mso.bpmn.core.json.DecomposeJsonUtil;\r
-\r
+import org.openecomp.mso.bpmn.core.json.JsonDecomposingException;\r
 \r
 \r
 /**\r
@@ -50,7 +49,6 @@ import org.openecomp.mso.bpmn.core.json.DecomposeJsonUtil;
 public class ServiceDecomposition extends JsonWrapper implements Serializable {\r
 \r
        private static final long serialVersionUID = 1L;\r
-       DecomposeJsonUtil jsonUtils = new DecomposeJsonUtil();\r
 \r
        @JsonProperty("modelInfo")\r
        private ModelInfo modelInfo;\r
@@ -67,48 +65,6 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
        private List <AllottedResource>  allottedResources;\r
 \r
        public ServiceDecomposition () {\r
-               super();\r
-       }\r
-\r
-       public ServiceDecomposition (String catalogRestOutput) {\r
-\r
-               ServiceDecomposition serviceDecomposition = DecomposeJsonUtil.JsonToServiceDecomposition(catalogRestOutput);\r
-               this.modelInfo = serviceDecomposition.getModelInfo();\r
-               this.vnfResources = serviceDecomposition.getServiceVnfs();\r
-               this.allottedResources = serviceDecomposition.getServiceAllottedResources();\r
-               this.networkResources = serviceDecomposition.getServiceNetworks();\r
-               this.serviceRole = serviceDecomposition.getServiceRole();\r
-               this.serviceType = serviceDecomposition.getServiceType();\r
-       }\r
-\r
-       /**\r
-        * Constructor taking Catalog DB Adapter REST output (serviceResources model) + service Instance ID\r
-        * @param catalogRestOutput\r
-        * @param serviceInstanceId\r
-        */\r
-       public ServiceDecomposition (String catalogRestOutput, String serviceInstanceId) {\r
-\r
-               ServiceDecomposition serviceDecomposition = DecomposeJsonUtil.JsonToServiceDecomposition(catalogRestOutput);\r
-               this.modelInfo = serviceDecomposition.getModelInfo();\r
-               this.vnfResources = serviceDecomposition.getServiceVnfs();\r
-               this.allottedResources = serviceDecomposition.getServiceAllottedResources();\r
-               this.networkResources = serviceDecomposition.getServiceNetworks();\r
-\r
-               this.serviceRole = serviceDecomposition.getServiceRole();\r
-               this.serviceType = serviceDecomposition.getServiceType();\r
-               \r
-               this.serviceInstance = new ServiceInstance();\r
-               this.serviceInstance.setInstanceId(serviceInstanceId);\r
-       }\r
-\r
-       /**\r
-        * Constructor taking a Service Decomposition JSON serialization\r
-        * @param catalogRestOutput\r
-        * @param serviceInstanceId\r
-        */\r
-       public ServiceDecomposition (JSONObject jsonServiceDecomposition, String serviceInstanceId) {\r
-               //TODO provide constructor implementation\r
-\r
        }\r
 \r
        //*****\r
@@ -278,7 +234,7 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
         * Add resource to the list\r
         * Given a ResourceDecomposition (subclass) object, add it to the Service Decomposition (in the appropriate category, e.g. as a VNF, Network, or Allotted Resource).\r
         * As dependencies are not currently supported, add it to the end of any ordered lists.\r
-        * @param Resource\r
+        * @param resource\r
         */\r
        public void addResource(Resource resource) {\r
                //create resource based upon type\r
@@ -299,36 +255,36 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
 \r
        /**\r
         * Add resource to the list\r
-        * @param Resource\r
+        * @param jsonResource\r
         */\r
-       public void addVnfResource(String jsonResource) {\r
+       public void addVnfResource(String jsonResource) throws JsonDecomposingException {\r
                VnfResource vnfResource = null;\r
-               vnfResource = DecomposeJsonUtil.JsonToVnfResource(jsonResource);\r
+               vnfResource = DecomposeJsonUtil.jsonToVnfResource(jsonResource);\r
                this.addVnfResource(vnfResource);\r
        }\r
        /**\r
         * Add resource to the list\r
-        * @param Resource\r
+        * @param jsonResource\r
         */\r
-       public void addNetworkResource(String jsonResource) {\r
+       public void addNetworkResource(String jsonResource) throws JsonDecomposingException {\r
                NetworkResource networkResource = null;\r
-               networkResource = DecomposeJsonUtil.JsonToNetworkResource(jsonResource);\r
+               networkResource = DecomposeJsonUtil.jsonToNetworkResource(jsonResource);\r
                this.addVnfResource(networkResource);\r
        }\r
        /**\r
         * Add resource to the list\r
-        * @param Resource\r
+        * @param jsonResource\r
         */\r
-       public void addAllottedResource(String jsonResource) {\r
+       public void addAllottedResource(String jsonResource) throws JsonDecomposingException {\r
                AllottedResource allottedResource = null;\r
-               allottedResource = DecomposeJsonUtil.JsonToAllottedResource(jsonResource);\r
+               allottedResource = DecomposeJsonUtil.jsonToAllottedResource(jsonResource);\r
                this.addVnfResource(allottedResource);\r
        }\r
 \r
        /**\r
         * Given a ResourceDecomposition (subclass) object, locate it in the Service Decomposition by its unique ID, and replace the current version with the new one.\r
         * This method should support concurrency control via an auto-incrementing field in the ResourceDecomposition class.\r
-        * @param Resource\r
+        * @param newResource\r
         * @return TRUE if replacement was a success\r
         */\r
        public boolean replaceResource(Resource newResource){\r
@@ -365,7 +321,7 @@ public class ServiceDecomposition extends JsonWrapper implements Serializable {
 \r
        /**\r
         *  Given a resource object ID, locate it in the Service Decomposition by its unique ID, and delete it.\r
-        * @param Resource\r
+        * @param resource\r
         * @return TRUE if delete was a success\r
         */\r
        public boolean deleteResource(Resource resource){\r
index 71ef09c..dcd9e3b 100644 (file)
 \r
 package org.openecomp.mso.bpmn.core.json;\r
 \r
-import java.io.Serializable;\r
+import com.fasterxml.jackson.databind.DeserializationFeature;\r
+import com.fasterxml.jackson.databind.ObjectMapper;\r
 import java.io.IOException;\r
-\r
-\r
 import org.openecomp.mso.bpmn.core.domain.AllottedResource;\r
 import org.openecomp.mso.bpmn.core.domain.NetworkResource;\r
 import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition;\r
+import org.openecomp.mso.bpmn.core.domain.ServiceInstance;\r
 import org.openecomp.mso.bpmn.core.domain.VnfResource;\r
 \r
-import com.fasterxml.jackson.core.JsonParseException;\r
-import com.fasterxml.jackson.databind.DeserializationFeature;\r
-import com.fasterxml.jackson.databind.JsonMappingException;\r
-import com.fasterxml.jackson.databind.ObjectMapper;\r
+public class DecomposeJsonUtil {\r
 \r
-import org.openecomp.mso.logger.MsoLogger;\r
+    private static final ObjectMapper OBJECT_MAPPER = createObjectMapper();\r
 \r
-public class DecomposeJsonUtil implements Serializable {\r
-       private static final MsoLogger LOGGER = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL);\r
-       /**\r
-        * \r
-        */\r
-       private static final long serialVersionUID = 1L;\r
+    private DecomposeJsonUtil() {\r
+    }\r
 \r
-       /**\r
-        * Method to construct Service Decomposition object converting\r
-        * JSON structure\r
-        * \r
-        * @param jsonString - input in JSON format confirming ServiceDecomposition\r
-        * @return - ServiceDecomposition object\r
-        * @throws IOException \r
-        * @throws JsonMappingException \r
-        * @throws JsonParseException \r
-        */\r
-       public static ServiceDecomposition JsonToServiceDecomposition(String jsonString) {\r
-        \r
-        ServiceDecomposition serviceDecomposition = new ServiceDecomposition();\r
-        ObjectMapper om = new ObjectMapper();\r
-        om.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);\r
-       \r
-               try {\r
-                       serviceDecomposition = om.readValue(jsonString, ServiceDecomposition.class);\r
-               } catch (JsonParseException e) {\r
-                       LOGGER.debug("JsonParseException :",e);\r
-               } catch (JsonMappingException e) {\r
-                       LOGGER.debug("JsonMappingException :",e);\r
-               } catch (IOException e) {\r
-                       LOGGER.debug("IOException :",e);\r
-               }\r
-               \r
-               return serviceDecomposition;\r
-       }\r
-       \r
-       /**\r
-        * Method to construct Resource Decomposition object converting\r
-        * JSON structure\r
-        * \r
-        * @param jsonString - input in JSON format confirming ResourceDecomposition\r
-        * @return - ServiceDecomposition object\r
-        * @throws IOException \r
-        * @throws JsonMappingException \r
-        * @throws JsonParseException \r
-        */\r
-       public static VnfResource JsonToVnfResource(String jsonString) {\r
-        \r
-        VnfResource vnfResource = new VnfResource();\r
+    private static ObjectMapper createObjectMapper() {\r
         ObjectMapper om = new ObjectMapper();\r
         om.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);\r
-       \r
-               try {\r
-                       vnfResource = om.readValue(jsonString, VnfResource.class);\r
-               } catch (JsonParseException e) {\r
-                       LOGGER.debug("JsonParseException :",e);\r
-               } catch (JsonMappingException e) {\r
-                       LOGGER.debug("JsonMappingException :",e);\r
-               } catch (IOException e) {\r
-                       LOGGER.debug("IOException :",e);\r
-               }\r
-               return vnfResource;\r
-       }\r
-       \r
-       /**\r
-        * Method to construct Resource Decomposition object converting\r
-        * JSON structure\r
-        * \r
-        * @param jsonString - input in JSON format confirming ResourceDecomposition\r
-        * @return - ServiceDecomposition object\r
-        * @throws IOException \r
-        * @throws JsonMappingException \r
-        * @throws JsonParseException \r
-        */\r
-       public static NetworkResource JsonToNetworkResource(String jsonString) {\r
-        \r
-        NetworkResource networkResource = new NetworkResource();\r
-        ObjectMapper om = new ObjectMapper();\r
-        om.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);\r
-       \r
-               try {\r
-                       networkResource = om.readValue(jsonString, NetworkResource.class);\r
-               } catch (JsonParseException e) {\r
-                       LOGGER.debug("Exception :",e);\r
-               } catch (JsonMappingException e) {\r
-                       LOGGER.debug("Exception :",e);\r
-               } catch (IOException e) {\r
-                       LOGGER.debug("Exception :",e);\r
-               }\r
-               return networkResource;\r
-       }\r
-       \r
-       /**\r
-        * Method to construct Resource Decomposition object converting\r
-        * JSON structure\r
-        * \r
-        * @param jsonString - input in JSON format confirming ResourceDecomposition\r
-        * @return - ServiceDecomposition object\r
-        * @throws IOException \r
-        * @throws JsonMappingException \r
-        * @throws JsonParseException \r
-        */\r
-       public static AllottedResource JsonToAllottedResource(String jsonString) {\r
-        \r
-               AllottedResource allottedResource = new AllottedResource();\r
-        ObjectMapper om = new ObjectMapper();\r
-        om.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);\r
-       \r
-               try {\r
-                       allottedResource = om.readValue(jsonString, AllottedResource.class);\r
-               } catch (JsonParseException e) {\r
-                       LOGGER.debug("Exception :",e);\r
-               } catch (JsonMappingException e) {\r
-                       LOGGER.debug("Exception :",e);\r
-               } catch (IOException e) {\r
-                       LOGGER.debug("Exception :",e);\r
-               }\r
-               return allottedResource;\r
-       }\r
+        return om;\r
+    }\r
+\r
+    /**\r
+     * Method to construct Service Decomposition object converting JSON structure\r
+     *\r
+     * @param jsonString input in JSON format confirming ServiceDecomposition\r
+     * @return decoded object\r
+     * @throws JsonDecomposingException thrown when decoding json fails\r
+     */\r
+    public static ServiceDecomposition jsonToServiceDecomposition(String jsonString) throws JsonDecomposingException {\r
+        try {\r
+            return OBJECT_MAPPER.readValue(jsonString, ServiceDecomposition.class);\r
+        } catch (IOException e) {\r
+            throw new JsonDecomposingException("Exception while converting json to service decomposition", e);\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Method to construct Service Decomposition object converting JSON structure\r
+     *\r
+     * @param jsonString input in JSON format confirming ServiceDecomposition\r
+     * @param serviceInstanceId service instance id to be put in decoded ServiceDecomposition\r
+     * @return decoded object\r
+     * @throws JsonDecomposingException thrown when decoding json fails\r
+     */\r
+    public static ServiceDecomposition jsonToServiceDecomposition(String jsonString, String serviceInstanceId)\r
+            throws JsonDecomposingException {\r
+        ServiceDecomposition serviceDecomposition = jsonToServiceDecomposition(jsonString);\r
+        ServiceInstance serviceInstance = new ServiceInstance();\r
+        serviceInstance.setInstanceId(serviceInstanceId);\r
+        serviceDecomposition.setServiceInstance(serviceInstance);\r
+        return serviceDecomposition;\r
+    }\r
+\r
+    /**\r
+     * Method to construct Resource Decomposition object converting JSON structure\r
+     *\r
+     * @param jsonString input in JSON format confirming ResourceDecomposition\r
+     * @return decoded object\r
+     * @throws JsonDecomposingException thrown when decoding json fails\r
+     */\r
+    public static VnfResource jsonToVnfResource(String jsonString) throws JsonDecomposingException {\r
+        try {\r
+            return OBJECT_MAPPER.readValue(jsonString, VnfResource.class);\r
+        } catch (IOException e) {\r
+            throw new JsonDecomposingException("Exception while converting json to vnf resource", e);\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Method to construct Resource Decomposition object converting JSON structure\r
+     *\r
+     * @param jsonString input in JSON format confirming ResourceDecomposition\r
+     * @return decoded object\r
+     * @throws JsonDecomposingException thrown when decoding json fails\r
+     */\r
+    public static NetworkResource jsonToNetworkResource(String jsonString) throws JsonDecomposingException {\r
+        try {\r
+            return OBJECT_MAPPER.readValue(jsonString, NetworkResource.class);\r
+        } catch (IOException e) {\r
+            throw new JsonDecomposingException("Exception while converting json to network resource", e);\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Method to construct Resource Decomposition object converting JSON structure\r
+     *\r
+     * @param jsonString - input in JSON format confirming ResourceDecomposition\r
+     * @return decoded object\r
+     * @throws JsonDecomposingException thrown when decoding json fails\r
+     */\r
+    public static AllottedResource jsonToAllottedResource(String jsonString) throws JsonDecomposingException {\r
+        try {\r
+            return OBJECT_MAPPER.readValue(jsonString, AllottedResource.class);\r
+        } catch (IOException e) {\r
+            throw new JsonDecomposingException("Exception while converting json to allotted resource", e);\r
+        }\r
+    }\r
 }
\ No newline at end of file
diff --git a/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/json/JsonDecomposingException.java b/bpmn/MSOCoreBPMN/src/main/java/org/openecomp/mso/bpmn/core/json/JsonDecomposingException.java
new file mode 100644 (file)
index 0000000..352979e
--- /dev/null
@@ -0,0 +1,30 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * 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=========================================================
+ */
+
+package org.openecomp.mso.bpmn.core.json;
+
+import java.io.IOException;
+
+public class JsonDecomposingException extends IOException {
+
+    public JsonDecomposingException(String message, Throwable cause) {
+        super(message, cause);
+    }
+}
index 862c46a..3088340 100644 (file)
@@ -54,7 +54,6 @@ class DoCreateVnfAndModules extends AbstractServiceTaskProcessor {
    JsonUtils jsonUtil = new JsonUtils()
    VidUtils vidUtils = new VidUtils(this)
    CatalogDbUtils cutils = new CatalogDbUtils()
-   DecomposeJsonUtil decomposeJsonUtil = new DecomposeJsonUtil()
 
    /**
        * This method gets and validates the incoming
@@ -185,7 +184,7 @@ class DoCreateVnfAndModules extends AbstractServiceTaskProcessor {
                           utils.log("DEBUG", "obtained VNF list")
                           // Only one match here
                           JSONObject vnfObject = vnfs[0]
-                          vnf = decomposeJsonUtil.JsonToVnfResource(vnfObject.toString())                         
+                          vnf = DecomposeJsonUtil.jsonToVnfResource(vnfObject.toString())
                   }
                   utils.log("DEBUG", "Read vnfResource", isDebugLogEnabled)
                   if (vnf == null) {