Junit Cases for Artifact Handler.
[appc.git] / appc-inbound / appc-artifact-handler / provider / src / main / java / org / openecomp / appc / artifact / handler / node / ArtifactHandlerNode.java
index e4cefad..fec7fbb 100644 (file)
@@ -33,13 +33,13 @@ import org.json.JSONArray;
 import org.json.JSONObject;
 import org.openecomp.appc.artifact.handler.dbservices.DBService;
 import org.openecomp.appc.artifact.handler.utils.ArtifactHandlerProviderUtil;
-import org.openecomp.appc.artifact.handler.utils.AsdcArtifactHandlerConstants;
+import org.openecomp.appc.artifact.handler.utils.SdcArtifactHandlerConstants;
 import org.openecomp.appc.yang.YANGGenerator;
 import org.openecomp.appc.yang.impl.YANGGeneratorFactory;
 import org.openecomp.sdnc.config.params.transformer.tosca.ArtifactProcessorImpl;
-import org.openecomp.sdnc.sli.SvcLogicContext;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicJavaPlugin;
+import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
+import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
 
 import com.att.eelf.configuration.EELFLogger;
 import com.att.eelf.configuration.EELFManager;
@@ -49,106 +49,111 @@ import com.att.eelf.configuration.EELFManager;
 public class ArtifactHandlerNode implements SvcLogicJavaPlugin {
 
     private static final EELFLogger log = EELFManager.getInstance().getLogger(ArtifactHandlerNode.class);
-    public void processArtifact(Map<String, String> inParams, SvcLogicContext ctx) throws Exception 
-    {
-        String responsePrefix = inParams.get("response_prefix");        
-        try{
-            if(inParams != null && !inParams.isEmpty() && inParams.get("postData") !=null ){
-                log.info("Received request for process Artifact with params: " + inParams.toString());                        
+
+    public void processArtifact(Map<String, String> inParams, SvcLogicContext ctx) throws Exception {
+        String responsePrefix = inParams.get("response_prefix");
+        try {
+            if (inParams != null && !inParams.isEmpty() && inParams.get("postData") != null) {
+                log.info("Received request for process Artifact with params: " + inParams.toString());
                 String postData = inParams.get("postData");
                 JSONObject input = new JSONObject(postData).getJSONObject("input");
-                responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix+".") : "";
-                storeUpdateAsdcArtifacts(input);
+                responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix + ".") : "";
+                storeUpdateSdcArtifacts(input);
             }
-        }
-        catch(Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
             throw e;
         }
     }
 
-    private boolean storeUpdateAsdcArtifacts(JSONObject postDataJson) throws Exception {
-        log.info("Starting processing of ASDC Artifacs into Handler with Data : " + postDataJson.toString());        
-        try{
-            JSONObject request_information = (JSONObject)postDataJson.get(AsdcArtifactHandlerConstants.REQUEST_INFORMATION);
-            JSONObject document_information =(JSONObject)postDataJson.get(AsdcArtifactHandlerConstants.DOCUMENT_PARAMETERS);
-            String artifact_name = document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_NAME);
-            if(artifact_name !=null){
-                updateStoreArtifacts(request_information, document_information );
-                if(artifact_name.toLowerCase().startsWith(AsdcArtifactHandlerConstants.REFERENCE))    
-                    return storeReferenceData(request_information, document_information );
-                else if (artifact_name.toLowerCase().startsWith(AsdcArtifactHandlerConstants.PD))
-                    return createDataForPD(request_information, document_information );
-
-            }
-            else
-                throw new Exception("Missing Artifact Name for Request : "  + request_information.getString(AsdcArtifactHandlerConstants.REQUETS_ID));                    
-        }
-        catch(Exception e){
+    private boolean storeUpdateSdcArtifacts(JSONObject postDataJson) throws Exception {
+        log.info("Starting processing of SDC Artifacs into Handler with Data : " + postDataJson.toString());
+        try {
+            JSONObject request_information =
+                    (JSONObject) postDataJson.get(SdcArtifactHandlerConstants.REQUEST_INFORMATION);
+            JSONObject document_information =
+                    (JSONObject) postDataJson.get(SdcArtifactHandlerConstants.DOCUMENT_PARAMETERS);
+            String artifact_name = document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME);
+            if (artifact_name != null) {
+                updateStoreArtifacts(request_information, document_information);
+                if (artifact_name.toLowerCase().startsWith(SdcArtifactHandlerConstants.REFERENCE))
+                    return storeReferenceData(request_information, document_information);
+                else if (artifact_name.toLowerCase().startsWith(SdcArtifactHandlerConstants.PD))
+                    return createDataForPD(request_information, document_information);
+
+            } else
+                throw new Exception("Missing Artifact Name for Request : "
+                        + request_information.getString(SdcArtifactHandlerConstants.REQUETS_ID));
+        } catch (Exception e) {
             e.printStackTrace();
-            throw new Exception("Error while processing Request ID : " + ((JSONObject)postDataJson.get(AsdcArtifactHandlerConstants.REQUEST_INFORMATION)).getString(AsdcArtifactHandlerConstants.REQUETS_ID) + e.getMessage());
+            throw new Exception("Error while processing Request ID : "
+                    + ((JSONObject) postDataJson.get(SdcArtifactHandlerConstants.REQUEST_INFORMATION))
+                            .getString(SdcArtifactHandlerConstants.REQUETS_ID)
+                    + e.getMessage());
         }
-        return false;        
+        return false;
 
     }
+
     private boolean createDataForPD(JSONObject request_information, JSONObject document_information) throws Exception {
 
         String fn = "ArtifactHandlerNode.createReferenceDataForPD";
-        String artifact_name = document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_NAME);
-        log.info(fn + "Received PD File Name: " + artifact_name + " and suffix lenght " + AsdcArtifactHandlerConstants.PD.length());
+        String artifact_name = document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME);
+        log.info(fn + "Received PD File Name: " + artifact_name + " and suffix lenght "
+                + SdcArtifactHandlerConstants.PD.length());
         try {
 
-            String suffix = artifact_name.substring(AsdcArtifactHandlerConstants.PD.length());
+            String suffix = artifact_name.substring(SdcArtifactHandlerConstants.PD.length());
             createArtifactRecords(request_information, document_information, suffix);
         } catch (Exception e) {
             e.printStackTrace();
             throw new Exception("Error while createing PD data records " + e.getMessage());
-        }        
+        }
         return true;
     }
 
-    private void createArtifactRecords(JSONObject request_information, JSONObject document_information, String suffix) throws Exception {
+    private void createArtifactRecords(JSONObject request_information, JSONObject document_information, String suffix)
+            throws Exception {
 
-        log.info("Creating Tosca Records and storing into ASDC Artifacs");
-        String [] docs = {"Tosca", "Yang"};    
+        log.info("Creating Tosca Records and storing into SDC Artifacs");
+        String[] docs = {"Tosca", "Yang"};
         ArtifactHandlerProviderUtil ahpUtil = new ArtifactHandlerProviderUtil();
-        String PDFileContents = document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_CONTENTS);
+        String PDFileContents = document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_CONTENTS);
 
-        //Tosca generation
+        // Tosca generation
         OutputStream toscaStream = new ByteArrayOutputStream();
         String toscaContents = null;
         ArtifactProcessorImpl toscaGenerator = new ArtifactProcessorImpl();
-        toscaGenerator.generateArtifact(PDFileContents,toscaStream);
-        if(toscaStream != null)
+        toscaGenerator.generateArtifact(PDFileContents, toscaStream);
+        if (toscaStream != null)
             toscaContents = toscaStream.toString();
         log.info("Generated Tosca File : " + toscaContents);
 
-        //Yang generation
-        //String yangContents = "Dummay Yang, Yang contents will be available after IST Integration";
-
         String yangContents = "YANG generation is in Progress";
         String yangName = null;
 
-        for(String doc : docs){
-            document_information.put(AsdcArtifactHandlerConstants.ARTIFACT_TYPE, doc.concat("Type"));
-            document_information.put(AsdcArtifactHandlerConstants.ARTIFACT_DESRIPTION, doc.concat("Model"));
-            if(doc.equals("Tosca"))
-                document_information.put(AsdcArtifactHandlerConstants.ARTIFACT_CONTENTS, ahpUtil.escapeSql(toscaContents));
+        for (String doc : docs) {
+            document_information.put(SdcArtifactHandlerConstants.ARTIFACT_TYPE, doc.concat("Type"));
+            document_information.put(SdcArtifactHandlerConstants.ARTIFACT_DESRIPTION, doc.concat("Model"));
+            if (doc.equals("Tosca"))
+                document_information.put(SdcArtifactHandlerConstants.ARTIFACT_CONTENTS,
+                        ahpUtil.escapeSql(toscaContents));
             else if (doc.equals("Yang"))
-                document_information.put(AsdcArtifactHandlerConstants.ARTIFACT_CONTENTS, ahpUtil.escapeSql(yangContents));        
-            document_information.put(AsdcArtifactHandlerConstants.ARTIFACT_NAME, doc.concat(suffix));    
+                document_information.put(SdcArtifactHandlerConstants.ARTIFACT_CONTENTS,
+                        ahpUtil.escapeSql(yangContents));
+            document_information.put(SdcArtifactHandlerConstants.ARTIFACT_NAME, doc.concat(suffix));
             yangName = doc.concat(suffix);
             updateStoreArtifacts(request_information, document_information);
-        }    
+        }
 
         String artifactId = getArtifactID(yangName);
         OutputStream yangStream = new ByteArrayOutputStream();
         YANGGenerator yangGenerator = YANGGeneratorFactory.getYANGGenerator();
-        yangGenerator.generateYANG(artifactId , toscaContents, yangStream);
-        if(yangStream != null)
+        yangGenerator.generateYANG(artifactId, toscaContents, yangStream);
+        if (yangStream != null)
             yangContents = yangStream.toString();
 
-        if(yangContents !=null ){
+        if (yangContents != null) {
             updateYangContents(artifactId, ahpUtil.escapeSql(yangContents));
         }
 
@@ -157,294 +162,352 @@ public class ArtifactHandlerNode implements SvcLogicJavaPlugin {
     private void updateYangContents(String artifactId, String yangContents) throws SvcLogicException {
         SvcLogicContext context = new SvcLogicContext();
         DBService dbservice = DBService.initialise();
-        dbservice.updateYangContents(context, artifactId, yangContents);    
+        dbservice.updateYangContents(context, artifactId, yangContents);
     }
 
-    private String getArtifactID(String yangName) throws SvcLogicException {        
+    private String getArtifactID(String yangName) throws SvcLogicException {
         SvcLogicContext context = new SvcLogicContext();
         DBService dbservice = DBService.initialise();
-        return dbservice.getArtifactID(context, yangName);    
+        return dbservice.getArtifactID(context, yangName);
     }
 
-    private boolean updateStoreArtifacts(JSONObject request_information, JSONObject document_information ) throws Exception {
-        log.info("UpdateStoreArtifactsStarted storing of ASDC Artifacs ");
+    protected boolean updateStoreArtifacts(JSONObject request_information, JSONObject document_information)
+            throws Exception {
+        log.info("UpdateStoreArtifactsStarted storing of SDC Artifacs ");
 
         SvcLogicContext context = new SvcLogicContext();
         DBService dbservice = DBService.initialise();
         ArtifactHandlerProviderUtil ahpUtil = new ArtifactHandlerProviderUtil();
         int intversion = 0;
-        context.setAttribute("artifact_name",document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_NAME)); 
-        String internal_version = dbservice.getInternalVersionNumber(context, document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_NAME), null);
+        context.setAttribute("artifact_name",
+                document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME));
+        String internal_version = dbservice.getInternalVersionNumber(context,
+                document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME), null);
         log.info("Internal Version number received from Database : " + internal_version);
-        if(internal_version != null){
+        if (internal_version != null) {
             intversion = Integer.parseInt(internal_version);
-            intversion++ ;
-        }        
-        context.setAttribute(AsdcArtifactHandlerConstants.SERVICE_UUID, document_information.getString(AsdcArtifactHandlerConstants.SERVICE_UUID));
-        context.setAttribute(AsdcArtifactHandlerConstants.DISTRIBUTION_ID, document_information.getString(AsdcArtifactHandlerConstants.DISTRIBUTION_ID));
-        context.setAttribute(AsdcArtifactHandlerConstants.SERVICE_NAME, document_information.getString(AsdcArtifactHandlerConstants.SERVICE_NAME));
-        context.setAttribute(AsdcArtifactHandlerConstants.SERVICE_DESCRIPTION, document_information.getString(AsdcArtifactHandlerConstants.SERVICE_DESCRIPTION)); 
-        context.setAttribute(AsdcArtifactHandlerConstants.RESOURCE_UUID, document_information.getString(AsdcArtifactHandlerConstants.RESOURCE_UUID));
-        context.setAttribute(AsdcArtifactHandlerConstants.RESOURCE_INSTANCE_NAME,document_information.getString(AsdcArtifactHandlerConstants.RESOURCE_INSTANCE_NAME));
-        context.setAttribute(AsdcArtifactHandlerConstants.RESOURCE_VERSOIN, document_information.getString(AsdcArtifactHandlerConstants.RESOURCE_VERSOIN));
-        context.setAttribute(AsdcArtifactHandlerConstants.RESOURCE_TYPE, document_information.getString(AsdcArtifactHandlerConstants.RESOURCE_TYPE));
-        context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_UUID, document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_UUID)); 
-        context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_TYPE,document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_TYPE)); 
-        context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_VERSOIN,document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_VERSOIN)); 
-        context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_DESRIPTION,document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_DESRIPTION));
-        context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_CONTENTS,ahpUtil.escapeSql(document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_CONTENTS)));
-        context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_NAME,document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_NAME));
+            intversion++;
+        }
+        context.setAttribute(SdcArtifactHandlerConstants.SERVICE_UUID,
+                document_information.getString(SdcArtifactHandlerConstants.SERVICE_UUID));
+        context.setAttribute(SdcArtifactHandlerConstants.DISTRIBUTION_ID,
+                document_information.getString(SdcArtifactHandlerConstants.DISTRIBUTION_ID));
+        context.setAttribute(SdcArtifactHandlerConstants.SERVICE_NAME,
+                document_information.getString(SdcArtifactHandlerConstants.SERVICE_NAME));
+        context.setAttribute(SdcArtifactHandlerConstants.SERVICE_DESCRIPTION,
+                document_information.getString(SdcArtifactHandlerConstants.SERVICE_DESCRIPTION));
+        context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_UUID,
+                document_information.getString(SdcArtifactHandlerConstants.RESOURCE_UUID));
+        context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_INSTANCE_NAME,
+                document_information.getString(SdcArtifactHandlerConstants.RESOURCE_INSTANCE_NAME));
+        context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_VERSOIN,
+                document_information.getString(SdcArtifactHandlerConstants.RESOURCE_VERSOIN));
+        context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_TYPE,
+                document_information.getString(SdcArtifactHandlerConstants.RESOURCE_TYPE));
+        context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_UUID,
+                document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_UUID));
+        context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_TYPE,
+                document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_TYPE));
+        context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_VERSOIN,
+                document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_VERSOIN));
+        context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_DESRIPTION,
+                document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_DESRIPTION));
+        context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_CONTENTS,
+                ahpUtil.escapeSql(document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_CONTENTS)));
+        context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_NAME,
+                document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME));
         dbservice.saveArtifacts(context, intversion);
-        return true;            
+        return true;
 
     }
 
-    public boolean storeReferenceData(JSONObject request_information, JSONObject document_information) throws Exception {    
-        log.info("Started storing of ASDC Artifacs into Handler" );
-        try{
+    public boolean storeReferenceData(JSONObject request_information, JSONObject document_information)
+            throws Exception {
+        log.info("Started storing of SDC Artifacs into Handler");
+        try {
             boolean updateRequired = false;
             boolean pdFile = false;
             String suffix = null;
             String categorySuffix = null;
             DBService dbservice = DBService.initialise();
             ArtifactHandlerProviderUtil ahpUtil = new ArtifactHandlerProviderUtil();
-            String contentString =  ahpUtil.escapeSql(document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_CONTENTS))    ;
-            String artifactName=ahpUtil.escapeSql(document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_NAME));
-            String capabilityArtifactName=StringUtils.replace(artifactName,AsdcArtifactHandlerConstants.ARTIFACT_NAME_REFERENCE,AsdcArtifactHandlerConstants.ARTIFACT_NAME_CAPABILITY);
+            String contentString =
+                    ahpUtil.escapeSql(document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_CONTENTS));
+            String artifactName =
+                    ahpUtil.escapeSql(document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME));
+            String capabilityArtifactName =
+                    StringUtils.replace(artifactName, SdcArtifactHandlerConstants.ARTIFACT_NAME_REFERENCE,
+                            SdcArtifactHandlerConstants.ARTIFACT_NAME_CAPABILITY);
             JSONObject capabilities = new JSONObject();
             JSONArray vnfActionList = new JSONArray();
             JSONArray vfModuleActionList = new JSONArray();
             JSONArray vnfcActionList = new JSONArray();
             JSONArray vmActionList = new JSONArray();
-            String vnfType=null;
+            String vnfType = null;
             JSONObject contentObject = new JSONObject(contentString);
-            JSONArray contentArray= contentObject.getJSONArray("reference_data");
-            for(int a=0; a<contentArray.length() ; a++){
-                
+            JSONArray contentArray = contentObject.getJSONArray("reference_data");
+            for (int a = 0; a < contentArray.length(); a++) {
+
                 JSONObject content = (JSONObject) contentArray.get(a);
                 log.info("contentString =" + content.toString());
                 JSONObject scope = content.getJSONObject("scope");
                 log.info("scope :" + scope);
                 SvcLogicContext context = new SvcLogicContext();
-                vnfType=scope.getString(AsdcArtifactHandlerConstants.VNF_TYPE);
-                context.setAttribute(AsdcArtifactHandlerConstants.VNF_TYPE, scope.getString(AsdcArtifactHandlerConstants.VNF_TYPE));
-                context.setAttribute(AsdcArtifactHandlerConstants.ACTION, content.getString(AsdcArtifactHandlerConstants.ACTION));
-                String actionLevel=content.getString(AsdcArtifactHandlerConstants.ACTION_LEVEL);
-                context.setAttribute(AsdcArtifactHandlerConstants.ACTION_LEVEL, content.getString(AsdcArtifactHandlerConstants.ACTION_LEVEL));
-                if ((null != actionLevel) && actionLevel.equalsIgnoreCase(AsdcArtifactHandlerConstants.ACTION_LEVEL_VNFC)) {
-                    vnfcActionList.put(content.getString(AsdcArtifactHandlerConstants.ACTION));
+                vnfType = scope.getString(SdcArtifactHandlerConstants.VNF_TYPE);
+                context.setAttribute(SdcArtifactHandlerConstants.VNF_TYPE,
+                        scope.getString(SdcArtifactHandlerConstants.VNF_TYPE));
+                context.setAttribute(SdcArtifactHandlerConstants.ACTION,
+                        content.getString(SdcArtifactHandlerConstants.ACTION));
+                String actionLevel = content.getString(SdcArtifactHandlerConstants.ACTION_LEVEL);
+                context.setAttribute(SdcArtifactHandlerConstants.ACTION_LEVEL,
+                        content.getString(SdcArtifactHandlerConstants.ACTION_LEVEL));
+                if ((null != actionLevel)
+                        && actionLevel.equalsIgnoreCase(SdcArtifactHandlerConstants.ACTION_LEVEL_VNFC)) {
+                    vnfcActionList.put(content.getString(SdcArtifactHandlerConstants.ACTION));
                 }
-                if (null != actionLevel && actionLevel.equalsIgnoreCase(AsdcArtifactHandlerConstants.ACTION_LEVEL_VF_MODULE)) {
-                    vfModuleActionList.put(content.getString(AsdcArtifactHandlerConstants.ACTION));
+                if (null != actionLevel
+                        && actionLevel.equalsIgnoreCase(SdcArtifactHandlerConstants.ACTION_LEVEL_VF_MODULE)) {
+                    vfModuleActionList.put(content.getString(SdcArtifactHandlerConstants.ACTION));
                 }
-                if (null != actionLevel && actionLevel.equalsIgnoreCase(AsdcArtifactHandlerConstants.ACTION_LEVEL_VNF)) {
-                    vnfActionList.put(content.getString(AsdcArtifactHandlerConstants.ACTION));
+                if (null != actionLevel && actionLevel.equalsIgnoreCase(SdcArtifactHandlerConstants.ACTION_LEVEL_VNF)) {
+                    vnfActionList.put(content.getString(SdcArtifactHandlerConstants.ACTION));
                 }
-                if (null != actionLevel && actionLevel.equalsIgnoreCase(AsdcArtifactHandlerConstants.ACTION_LEVEL_VM)) {
-                    vmActionList.put(content.getString(AsdcArtifactHandlerConstants.ACTION));
+                if (null != actionLevel && actionLevel.equalsIgnoreCase(SdcArtifactHandlerConstants.ACTION_LEVEL_VM)) {
+                    vmActionList.put(content.getString(SdcArtifactHandlerConstants.ACTION));
                 }
-                if(scope.has(AsdcArtifactHandlerConstants.VNFC_TYPE) && !scope.isNull(AsdcArtifactHandlerConstants.VNFC_TYPE) )
-                    context.setAttribute(AsdcArtifactHandlerConstants.VNFC_TYPE, scope.getString(AsdcArtifactHandlerConstants.VNFC_TYPE));
+                if (scope.has(SdcArtifactHandlerConstants.VNFC_TYPE)
+                        && !scope.isNull(SdcArtifactHandlerConstants.VNFC_TYPE))
+                    context.setAttribute(SdcArtifactHandlerConstants.VNFC_TYPE,
+                            scope.getString(SdcArtifactHandlerConstants.VNFC_TYPE));
                 else
-                    context.setAttribute(AsdcArtifactHandlerConstants.VNFC_TYPE,null);
-                if (content.has(AsdcArtifactHandlerConstants.DEVICE_PROTOCOL))
-                    context.setAttribute(AsdcArtifactHandlerConstants.DEVICE_PROTOCOL, content.getString(AsdcArtifactHandlerConstants.DEVICE_PROTOCOL));
-                if (content.has(AsdcArtifactHandlerConstants.USER_NAME))
-                    context.setAttribute(AsdcArtifactHandlerConstants.USER_NAME, content.getString(AsdcArtifactHandlerConstants.USER_NAME));
-                if (content.has(AsdcArtifactHandlerConstants.PORT_NUMBER))
-                    context.setAttribute(AsdcArtifactHandlerConstants.PORT_NUMBER, content.getString(AsdcArtifactHandlerConstants.PORT_NUMBER));
-                context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_TYPE, "");
-                if(content.has("artifact-list") && content.get("artifact-list") instanceof JSONArray){                
-                    JSONArray artifactLists = (JSONArray)content.get("artifact-list"); 
-                    for(int i=0;i<artifactLists.length();i++){
-                        JSONObject artifact=(JSONObject)artifactLists.get(i);
+                    context.setAttribute(SdcArtifactHandlerConstants.VNFC_TYPE, null);
+                if (content.has(SdcArtifactHandlerConstants.DEVICE_PROTOCOL))
+                    context.setAttribute(SdcArtifactHandlerConstants.DEVICE_PROTOCOL,
+                            content.getString(SdcArtifactHandlerConstants.DEVICE_PROTOCOL));
+                if (content.has(SdcArtifactHandlerConstants.USER_NAME))
+                    context.setAttribute(SdcArtifactHandlerConstants.USER_NAME,
+                            content.getString(SdcArtifactHandlerConstants.USER_NAME));
+                if (content.has(SdcArtifactHandlerConstants.PORT_NUMBER))
+                    context.setAttribute(SdcArtifactHandlerConstants.PORT_NUMBER,
+                            content.getString(SdcArtifactHandlerConstants.PORT_NUMBER));
+                context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_TYPE, "");
+                if (content.has("artifact-list") && content.get("artifact-list") instanceof JSONArray) {
+                    JSONArray artifactLists = (JSONArray) content.get("artifact-list");
+                    for (int i = 0; i < artifactLists.length(); i++) {
+                        JSONObject artifact = (JSONObject) artifactLists.get(i);
                         log.info("artifact is " + artifact);
-                        context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_NAME, artifact.getString(AsdcArtifactHandlerConstants.ARTIFACT_NAME));
-                        context.setAttribute(AsdcArtifactHandlerConstants.FILE_CATEGORY, artifact.getString(AsdcArtifactHandlerConstants.ARTIFACT_TYPE));                    
-
-                        if(artifact.getString(AsdcArtifactHandlerConstants.ARTIFACT_NAME) !=null && 
-                                artifact.getString(AsdcArtifactHandlerConstants.ARTIFACT_NAME).toLowerCase().startsWith(AsdcArtifactHandlerConstants.PD))
-                        {
-                            suffix = artifact.getString(AsdcArtifactHandlerConstants.ARTIFACT_NAME).substring(AsdcArtifactHandlerConstants.PD.length());
-                            categorySuffix = artifact.getString(AsdcArtifactHandlerConstants.ARTIFACT_TYPE).substring(AsdcArtifactHandlerConstants.PD.length());
+                        context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_NAME,
+                                artifact.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME));
+                        context.setAttribute(SdcArtifactHandlerConstants.FILE_CATEGORY,
+                                artifact.getString(SdcArtifactHandlerConstants.ARTIFACT_TYPE));
+
+                        if (artifact.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME) != null
+                                && artifact.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME).toLowerCase()
+                                        .startsWith(SdcArtifactHandlerConstants.PD)) {
+                            suffix = artifact.getString(SdcArtifactHandlerConstants.ARTIFACT_NAME)
+                                    .substring(SdcArtifactHandlerConstants.PD.length());
+                            categorySuffix = artifact.getString(SdcArtifactHandlerConstants.ARTIFACT_TYPE)
+                                    .substring(SdcArtifactHandlerConstants.PD.length());
                             pdFile = true;
                         }
 
-                        dbservice.processAsdcReferences(context, dbservice.isArtifactUpdateRequired(context, AsdcArtifactHandlerConstants.DB_ASDC_REFERENCE));        
+                        dbservice.processSdcReferences(context, dbservice.isArtifactUpdateRequired(context,
+                                SdcArtifactHandlerConstants.DB_SDC_REFERENCE));
 
                         cleanArtifactInstanceData(context);
                     }
 
-                    if(pdFile)
-                    {
-                        context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_NAME, "Tosca".concat(suffix));
-                        context.setAttribute(AsdcArtifactHandlerConstants.FILE_CATEGORY, AsdcArtifactHandlerConstants.TOSCA_MODEL);
-                        dbservice.processAsdcReferences(context, dbservice.isArtifactUpdateRequired(context, AsdcArtifactHandlerConstants.DB_ASDC_REFERENCE));
-                        context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_NAME, "Yang".concat(suffix));
-                        context.setAttribute(AsdcArtifactHandlerConstants.FILE_CATEGORY, AsdcArtifactHandlerConstants.PARAMETER_YANG);
-                        dbservice.processAsdcReferences(context, dbservice.isArtifactUpdateRequired(context, AsdcArtifactHandlerConstants.DB_ASDC_REFERENCE));
+                    if (pdFile) {
+                        context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_NAME, "Tosca".concat(suffix));
+                        context.setAttribute(SdcArtifactHandlerConstants.FILE_CATEGORY,
+                                SdcArtifactHandlerConstants.TOSCA_MODEL);
+                        dbservice.processSdcReferences(context, dbservice.isArtifactUpdateRequired(context,
+                                SdcArtifactHandlerConstants.DB_SDC_REFERENCE));
+                        context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_NAME, "Yang".concat(suffix));
+                        context.setAttribute(SdcArtifactHandlerConstants.FILE_CATEGORY,
+                                SdcArtifactHandlerConstants.PARAMETER_YANG);
+                        dbservice.processSdcReferences(context, dbservice.isArtifactUpdateRequired(context,
+                                SdcArtifactHandlerConstants.DB_SDC_REFERENCE));
                     }
                 }
-                if (content.getString(AsdcArtifactHandlerConstants.ACTION).equals("Configure")) {
-                    if(content.has(AsdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE) && content.getString(AsdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE).length() > 0){
-                        context.setAttribute(AsdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE, content.getString(AsdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE));
-                        dbservice.processDownloadDgReference(context, dbservice.isArtifactUpdateRequired(context,AsdcArtifactHandlerConstants.DB_DOWNLOAD_DG_REFERENCE));
+                if (content.getString(SdcArtifactHandlerConstants.ACTION).equals("Configure")) {
+                    if (content.has(SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE)
+                            && content.getString(SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE).length() > 0) {
+                        context.setAttribute(SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE,
+                                content.getString(SdcArtifactHandlerConstants.DOWNLOAD_DG_REFERENCE));
+                        dbservice.processDownloadDgReference(context, dbservice.isArtifactUpdateRequired(context,
+                                SdcArtifactHandlerConstants.DB_DOWNLOAD_DG_REFERENCE));
                     }
-    
-                    dbservice.processConfigActionDg(context, dbservice.isArtifactUpdateRequired(context, AsdcArtifactHandlerConstants.DB_CONFIG_ACTION_DG));
-                    dbservice.processDeviceInterfaceProtocol(context, dbservice.isArtifactUpdateRequired(context, AsdcArtifactHandlerConstants.DB_DEVICE_INTERFACE_PROTOCOL));
-                    dbservice.processDeviceAuthentication(context, dbservice.isArtifactUpdateRequired(context, AsdcArtifactHandlerConstants.DB_DEVICE_AUTHENTICATION));
-                    
+
+                    dbservice.processConfigActionDg(context, dbservice.isArtifactUpdateRequired(context,
+                            SdcArtifactHandlerConstants.DB_CONFIG_ACTION_DG));
+                    dbservice.processDeviceInterfaceProtocol(context, dbservice.isArtifactUpdateRequired(context,
+                            SdcArtifactHandlerConstants.DB_DEVICE_INTERFACE_PROTOCOL));
+                    dbservice.processDeviceAuthentication(context, dbservice.isArtifactUpdateRequired(context,
+                            SdcArtifactHandlerConstants.DB_DEVICE_AUTHENTICATION));
+
                 }
-                
-                
+
+
                 populateProtocolReference(dbservice, content);
-                
-                context.setAttribute(AsdcArtifactHandlerConstants.VNFC_TYPE, null);
-                
-                if( content.has(AsdcArtifactHandlerConstants.VM)  && content.get(AsdcArtifactHandlerConstants.VM) instanceof JSONArray){
-                    JSONArray vmList = (JSONArray)content.get(AsdcArtifactHandlerConstants.VM);
-                    for(int i=0;i<vmList.length();i++){
-                        JSONObject vmInstance=(JSONObject)vmList.get(i);    
-                        context.setAttribute(AsdcArtifactHandlerConstants.VM_INSTANCE, String.valueOf(vmInstance.getInt(AsdcArtifactHandlerConstants.VM_INSTANCE)));
-                        log.info("VALUE = " + context.getAttribute(AsdcArtifactHandlerConstants.VM_INSTANCE));
-                        if(vmInstance.get(AsdcArtifactHandlerConstants.VNFC) instanceof JSONArray){
-                            JSONArray vnfcInstanceList = (JSONArray)vmInstance.get(AsdcArtifactHandlerConstants.VNFC);
-                            for(int k=0;k<vnfcInstanceList.length();k++){
-                                JSONObject vnfcInstance = (JSONObject)vnfcInstanceList.get(k);
-                                context.setAttribute(AsdcArtifactHandlerConstants.VNFC_INSTANCE, String.valueOf(vnfcInstance.getInt(AsdcArtifactHandlerConstants.VNFC_INSTANCE)));
-                                context.setAttribute(AsdcArtifactHandlerConstants.VNFC_TYPE, vnfcInstance.getString(AsdcArtifactHandlerConstants.VNFC_TYPE));
-                                context.setAttribute(AsdcArtifactHandlerConstants.VNFC_FUNCTION_CODE, vnfcInstance.getString(AsdcArtifactHandlerConstants.VNFC_FUNCTION_CODE));
-                                if(vnfcInstance.has(AsdcArtifactHandlerConstants.IPADDRESS_V4_OAM_VIP))
-                                    context.setAttribute(AsdcArtifactHandlerConstants.IPADDRESS_V4_OAM_VIP, vnfcInstance.getString(AsdcArtifactHandlerConstants.IPADDRESS_V4_OAM_VIP));
-                                if(vnfcInstance.has(AsdcArtifactHandlerConstants.GROUP_NOTATION_TYPE))
-                                    context.setAttribute(AsdcArtifactHandlerConstants.GROUP_NOTATION_TYPE, vnfcInstance.getString(AsdcArtifactHandlerConstants.GROUP_NOTATION_TYPE));
-                                if(vnfcInstance.has(AsdcArtifactHandlerConstants.GROUP_NOTATION_VALUE))
-                                    context.setAttribute(AsdcArtifactHandlerConstants.GROUP_NOTATION_VALUE, vnfcInstance.getString(AsdcArtifactHandlerConstants.GROUP_NOTATION_VALUE));
-                                dbservice.processVnfcReference(context, dbservice.isArtifactUpdateRequired(context, AsdcArtifactHandlerConstants.DB_VNFC_REFERENCE));    
+
+                context.setAttribute(SdcArtifactHandlerConstants.VNFC_TYPE, null);
+
+                if (content.has(SdcArtifactHandlerConstants.VM)
+                        && content.get(SdcArtifactHandlerConstants.VM) instanceof JSONArray) {
+                    JSONArray vmList = (JSONArray) content.get(SdcArtifactHandlerConstants.VM);
+                    for (int i = 0; i < vmList.length(); i++) {
+                        JSONObject vmInstance = (JSONObject) vmList.get(i);
+                        context.setAttribute(SdcArtifactHandlerConstants.VM_INSTANCE,
+                                String.valueOf(vmInstance.getInt(SdcArtifactHandlerConstants.VM_INSTANCE)));
+                        log.info("VALUE = " + context.getAttribute(SdcArtifactHandlerConstants.VM_INSTANCE));
+                        if (vmInstance.get(SdcArtifactHandlerConstants.VNFC) instanceof JSONArray) {
+                            JSONArray vnfcInstanceList = (JSONArray) vmInstance.get(SdcArtifactHandlerConstants.VNFC);
+                            for (int k = 0; k < vnfcInstanceList.length(); k++) {
+                                JSONObject vnfcInstance = (JSONObject) vnfcInstanceList.get(k);
+                                context.setAttribute(SdcArtifactHandlerConstants.VNFC_INSTANCE,
+                                        String.valueOf(vnfcInstance.getInt(SdcArtifactHandlerConstants.VNFC_INSTANCE)));
+                                context.setAttribute(SdcArtifactHandlerConstants.VNFC_TYPE,
+                                        vnfcInstance.getString(SdcArtifactHandlerConstants.VNFC_TYPE));
+                                context.setAttribute(SdcArtifactHandlerConstants.VNFC_FUNCTION_CODE,
+                                        vnfcInstance.getString(SdcArtifactHandlerConstants.VNFC_FUNCTION_CODE));
+                                if (vnfcInstance.has(SdcArtifactHandlerConstants.IPADDRESS_V4_OAM_VIP))
+                                    context.setAttribute(SdcArtifactHandlerConstants.IPADDRESS_V4_OAM_VIP,
+                                            vnfcInstance.getString(SdcArtifactHandlerConstants.IPADDRESS_V4_OAM_VIP));
+                                if (vnfcInstance.has(SdcArtifactHandlerConstants.GROUP_NOTATION_TYPE))
+                                    context.setAttribute(SdcArtifactHandlerConstants.GROUP_NOTATION_TYPE,
+                                            vnfcInstance.getString(SdcArtifactHandlerConstants.GROUP_NOTATION_TYPE));
+                                if (vnfcInstance.has(SdcArtifactHandlerConstants.GROUP_NOTATION_VALUE))
+                                    context.setAttribute(SdcArtifactHandlerConstants.GROUP_NOTATION_VALUE,
+                                            vnfcInstance.getString(SdcArtifactHandlerConstants.GROUP_NOTATION_VALUE));
+                                dbservice.processVnfcReference(context, dbservice.isArtifactUpdateRequired(context,
+                                        SdcArtifactHandlerConstants.DB_VNFC_REFERENCE));
                                 cleanVnfcInstance(context);
                             }
-                            context.setAttribute(AsdcArtifactHandlerConstants.VM_INSTANCE,null);
+                            context.setAttribute(SdcArtifactHandlerConstants.VM_INSTANCE, null);
                         }
-                    }        
-                } 
-                
-                                
+                    }
+                }
+
+
             }
-            capabilities.put("vnf",vnfActionList );     
+            capabilities.put("vnf", vnfActionList);
             capabilities.put("vf-module", vfModuleActionList);
             capabilities.put("vnfc", vnfcActionList);
             capabilities.put("vm", vmActionList);
-            processAndStoreCapablitiesArtifact(dbservice, document_information, capabilities,capabilityArtifactName,vnfType );
-            
-        }
-            catch(Exception e)
-            {
-                e.printStackTrace();
-                throw new Exception("Error While Storing :  " + e.getMessage());            
-            }
-        
-            return true;            
+            processAndStoreCapablitiesArtifact(dbservice, document_information, capabilities, capabilityArtifactName,
+                    vnfType);
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new Exception("Error While Storing :  " + e.getMessage());
         }
 
-        
-        
+        return true;
+    }
 
+    private void cleanArtifactInstanceData(SvcLogicContext context) {
+        context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_NAME, null);
+        context.setAttribute(SdcArtifactHandlerConstants.FILE_CATEGORY, null);
+    }
 
-        private void cleanArtifactInstanceData(SvcLogicContext context)
-        {
-            context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_NAME, null);
-            context.setAttribute(AsdcArtifactHandlerConstants.FILE_CATEGORY, null);
-        }
+    private void cleanVnfcInstance(SvcLogicContext context) {
 
-        private void cleanVnfcInstance(SvcLogicContext context) {
+        context.setAttribute(SdcArtifactHandlerConstants.VNFC_INSTANCE, null);
+        context.setAttribute(SdcArtifactHandlerConstants.VNFC_TYPE, null);
+        context.setAttribute(SdcArtifactHandlerConstants.VNFC_FUNCTION_CODE, null);
+        context.setAttribute(SdcArtifactHandlerConstants.IPADDRESS_V4_OAM_VIP, null);
+        context.setAttribute(SdcArtifactHandlerConstants.GROUP_NOTATION_TYPE, null);
+        context.setAttribute(SdcArtifactHandlerConstants.GROUP_NOTATION_VALUE, null);
 
-            context.setAttribute(AsdcArtifactHandlerConstants.VNFC_INSTANCE, null);
-            context.setAttribute(AsdcArtifactHandlerConstants.VNFC_TYPE, null);
-            context.setAttribute(AsdcArtifactHandlerConstants.VNFC_FUNCTION_CODE, null);
-            context.setAttribute(AsdcArtifactHandlerConstants.IPADDRESS_V4_OAM_VIP, null);
-            context.setAttribute(AsdcArtifactHandlerConstants.GROUP_NOTATION_TYPE, null);
-            context.setAttribute(AsdcArtifactHandlerConstants.GROUP_NOTATION_VALUE, null);
+    }
 
-        }
+    private void processAndStoreCapablitiesArtifact(DBService dbservice, JSONObject document_information,
+            JSONObject capabilities, String capabilityArtifactName, String vnfType) throws Exception {
+        log.info("Begin-->processAndStoreCapablitiesArtifact ");
 
-        private void processAndStoreCapablitiesArtifact (DBService dbservice , JSONObject document_information, 
-        JSONObject capabilities, String capabilityArtifactName, String vnfType) throws Exception {
-            log.info("Begin-->processAndStoreCapablitiesArtifact ");
+        try {
 
-            try {
-                
-                JSONObject newCapabilitiesObject=new JSONObject();
-                newCapabilitiesObject.put("capabilities", capabilities);
-                SvcLogicContext context = new SvcLogicContext();
-                context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_NAME,capabilityArtifactName);
-                context.setAttribute(AsdcArtifactHandlerConstants.FILE_CATEGORY, AsdcArtifactHandlerConstants.CAPABILITY);
-                context.setAttribute(AsdcArtifactHandlerConstants.ACTION, null);
-                context.setAttribute(AsdcArtifactHandlerConstants.VNFC_TYPE, null);
-                context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_TYPE, null);
-                context.setAttribute(AsdcArtifactHandlerConstants.VNF_TYPE,vnfType);
-                context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_CONTENTS,newCapabilitiesObject.toString());
-                dbservice.processAsdcReferences(context, dbservice.isArtifactUpdateRequired(context, AsdcArtifactHandlerConstants.DB_ASDC_REFERENCE));
-                int intversion = 0;
-                
-                String internal_version = dbservice.getInternalVersionNumber(context, context.getAttribute(AsdcArtifactHandlerConstants.ARTIFACT_NAME), null);
-                log.info("Internal Version number received from Database : " + internal_version);
-                if(internal_version != null){
-                    intversion = Integer.parseInt(internal_version);
-                    intversion++ ;
-                }        
-                context.setAttribute(AsdcArtifactHandlerConstants.SERVICE_UUID, document_information.getString(AsdcArtifactHandlerConstants.SERVICE_UUID));
-                context.setAttribute(AsdcArtifactHandlerConstants.DISTRIBUTION_ID, document_information.getString(AsdcArtifactHandlerConstants.DISTRIBUTION_ID));
-                context.setAttribute(AsdcArtifactHandlerConstants.SERVICE_NAME, document_information.getString(AsdcArtifactHandlerConstants.SERVICE_NAME));
-                context.setAttribute(AsdcArtifactHandlerConstants.SERVICE_DESCRIPTION, document_information.getString(AsdcArtifactHandlerConstants.SERVICE_DESCRIPTION)); 
-                context.setAttribute(AsdcArtifactHandlerConstants.RESOURCE_UUID, document_information.getString(AsdcArtifactHandlerConstants.RESOURCE_UUID));
-                context.setAttribute(AsdcArtifactHandlerConstants.RESOURCE_INSTANCE_NAME,document_information.getString(AsdcArtifactHandlerConstants.RESOURCE_INSTANCE_NAME));
-                context.setAttribute(AsdcArtifactHandlerConstants.RESOURCE_VERSOIN, document_information.getString(AsdcArtifactHandlerConstants.RESOURCE_VERSOIN));
-                context.setAttribute(AsdcArtifactHandlerConstants.RESOURCE_TYPE, document_information.getString(AsdcArtifactHandlerConstants.RESOURCE_TYPE));
-                context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_UUID, document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_UUID)); 
-                context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_VERSOIN,document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_VERSOIN)); 
-                context.setAttribute(AsdcArtifactHandlerConstants.ARTIFACT_DESRIPTION,document_information.getString(AsdcArtifactHandlerConstants.ARTIFACT_DESRIPTION));
-                
-                
-                dbservice.saveArtifacts(context, intversion);
-                return ;            
-            }
-            catch (Exception e) {
-                log.error("Error saving capabilities artifact to DB: "+ e.toString());
-                throw e;
-            }
-            finally {
-                log.info("End-->processAndStoreCapablitiesArtifact ");
-            }
-        
-            }
-        
-
-            private void populateProtocolReference(DBService dbservice, JSONObject content)  throws Exception{
-                log.info("Begin-->populateProtocolReference ");
-                try {
-                    SvcLogicContext context = new SvcLogicContext();
-                    JSONObject scope = content.getJSONObject("scope");
-                    String vnfType=null,protocol=null,action=null,actionLevel=null,template=null;
-                    if(scope.has(AsdcArtifactHandlerConstants.VNF_TYPE) && !scope.isNull(AsdcArtifactHandlerConstants.VNF_TYPE))
-                        vnfType=scope.getString(AsdcArtifactHandlerConstants.VNF_TYPE);
-                    if (content.has(AsdcArtifactHandlerConstants.DEVICE_PROTOCOL))
-                        protocol=content.getString(AsdcArtifactHandlerConstants.DEVICE_PROTOCOL);
-                    if (content.has(AsdcArtifactHandlerConstants.ACTION))
-                        action= content.getString(AsdcArtifactHandlerConstants.ACTION);
-                    if (content.has(AsdcArtifactHandlerConstants.ACTION_LEVEL))
-                        actionLevel=content.getString(AsdcArtifactHandlerConstants.ACTION_LEVEL);
-                    if (content.has(AsdcArtifactHandlerConstants.TEMPLATE) && !content.isNull(AsdcArtifactHandlerConstants.TEMPLATE))
-                        template=content.getString(AsdcArtifactHandlerConstants.TEMPLATE);
-                    dbservice.insertProtocolReference(context, vnfType,protocol,action,actionLevel,template);
-                }
-                catch (Exception e) {
-                    log.error("Error inserting record into protocolReference: "+e.toString());
-                    throw e;
-                }
-                finally {
-                    log.info("End-->populateProtocolReference ");
-                }
+            JSONObject newCapabilitiesObject = new JSONObject();
+            newCapabilitiesObject.put("capabilities", capabilities);
+            SvcLogicContext context = new SvcLogicContext();
+            context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_NAME, capabilityArtifactName);
+            context.setAttribute(SdcArtifactHandlerConstants.FILE_CATEGORY, SdcArtifactHandlerConstants.CAPABILITY);
+            context.setAttribute(SdcArtifactHandlerConstants.ACTION, null);
+            context.setAttribute(SdcArtifactHandlerConstants.VNFC_TYPE, null);
+            context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_TYPE, null);
+            context.setAttribute(SdcArtifactHandlerConstants.VNF_TYPE, vnfType);
+            context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_CONTENTS, newCapabilitiesObject.toString());
+            dbservice.processSdcReferences(context,
+                    dbservice.isArtifactUpdateRequired(context, SdcArtifactHandlerConstants.DB_SDC_REFERENCE));
+            int intversion = 0;
+
+            String internal_version = dbservice.getInternalVersionNumber(context,
+                    context.getAttribute(SdcArtifactHandlerConstants.ARTIFACT_NAME), null);
+            log.info("Internal Version number received from Database : " + internal_version);
+            if (internal_version != null) {
+                intversion = Integer.parseInt(internal_version);
+                intversion++;
             }
+            context.setAttribute(SdcArtifactHandlerConstants.SERVICE_UUID,
+                    document_information.getString(SdcArtifactHandlerConstants.SERVICE_UUID));
+            context.setAttribute(SdcArtifactHandlerConstants.DISTRIBUTION_ID,
+                    document_information.getString(SdcArtifactHandlerConstants.DISTRIBUTION_ID));
+            context.setAttribute(SdcArtifactHandlerConstants.SERVICE_NAME,
+                    document_information.getString(SdcArtifactHandlerConstants.SERVICE_NAME));
+            context.setAttribute(SdcArtifactHandlerConstants.SERVICE_DESCRIPTION,
+                    document_information.getString(SdcArtifactHandlerConstants.SERVICE_DESCRIPTION));
+            context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_UUID,
+                    document_information.getString(SdcArtifactHandlerConstants.RESOURCE_UUID));
+            context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_INSTANCE_NAME,
+                    document_information.getString(SdcArtifactHandlerConstants.RESOURCE_INSTANCE_NAME));
+            context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_VERSOIN,
+                    document_information.getString(SdcArtifactHandlerConstants.RESOURCE_VERSOIN));
+            context.setAttribute(SdcArtifactHandlerConstants.RESOURCE_TYPE,
+                    document_information.getString(SdcArtifactHandlerConstants.RESOURCE_TYPE));
+            context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_UUID,
+                    document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_UUID));
+            context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_VERSOIN,
+                    document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_VERSOIN));
+            context.setAttribute(SdcArtifactHandlerConstants.ARTIFACT_DESRIPTION,
+                    document_information.getString(SdcArtifactHandlerConstants.ARTIFACT_DESRIPTION));
+
+
+            dbservice.saveArtifacts(context, intversion);
+            return;
+        } catch (Exception e) {
+            log.error("Error saving capabilities artifact to DB: " + e.toString());
+            throw e;
+        } finally {
+            log.info("End-->processAndStoreCapablitiesArtifact ");
+        }
 
     }
+
+    private void populateProtocolReference(DBService dbservice, JSONObject content) throws Exception {
+        log.info("Begin-->populateProtocolReference ");
+        try {
+            SvcLogicContext context = new SvcLogicContext();
+            JSONObject scope = content.getJSONObject("scope");
+            String vnfType = null, protocol = null, action = null, actionLevel = null, template = null;
+            if (scope.has(SdcArtifactHandlerConstants.VNF_TYPE) && !scope.isNull(SdcArtifactHandlerConstants.VNF_TYPE))
+                vnfType = scope.getString(SdcArtifactHandlerConstants.VNF_TYPE);
+            if (content.has(SdcArtifactHandlerConstants.DEVICE_PROTOCOL))
+                protocol = content.getString(SdcArtifactHandlerConstants.DEVICE_PROTOCOL);
+            if (content.has(SdcArtifactHandlerConstants.ACTION))
+                action = content.getString(SdcArtifactHandlerConstants.ACTION);
+            if (content.has(SdcArtifactHandlerConstants.ACTION_LEVEL))
+                actionLevel = content.getString(SdcArtifactHandlerConstants.ACTION_LEVEL);
+            if (content.has(SdcArtifactHandlerConstants.TEMPLATE)
+                    && !content.isNull(SdcArtifactHandlerConstants.TEMPLATE))
+                template = content.getString(SdcArtifactHandlerConstants.TEMPLATE);
+            dbservice.insertProtocolReference(context, vnfType, protocol, action, actionLevel, template);
+        } catch (Exception e) {
+            log.error("Error inserting record into protocolReference: " + e.toString());
+            throw e;
+        } finally {
+            log.info("End-->populateProtocolReference ");
+        }
+    }
+
+}