You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2015/06/20 23:02:01 UTC

[10/11] airavata git commit: Fixing minor issues and fixing the registry test cases

http://git-wip-us.apache.org/repos/asf/airavata/blob/cb5d3aef/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
index b8d8b3c..7c31498 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
@@ -21,15 +21,20 @@
 
 package org.apache.airavata.registry.core.experiment.catalog.impl;
 
-import org.apache.airavata.common.utils.AiravataUtils;
 import org.apache.airavata.model.application.io.InputDataObjectType;
 import org.apache.airavata.model.application.io.OutputDataObjectType;
 import org.apache.airavata.model.commons.ErrorModel;
-import org.apache.airavata.model.commons.airavata_commonsConstants;
-import org.apache.airavata.model.experiment.*;
+import org.apache.airavata.model.experiment.ExperimentModel;
+import org.apache.airavata.model.experiment.ExperimentStatistics;
+import org.apache.airavata.model.experiment.ExperimentSummaryModel;
+import org.apache.airavata.model.experiment.UserConfigurationDataModel;
 import org.apache.airavata.model.job.JobModel;
+import org.apache.airavata.model.process.ProcessModel;
 import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
-import org.apache.airavata.model.status.*;
+import org.apache.airavata.model.status.ExperimentState;
+import org.apache.airavata.model.status.ExperimentStatus;
+import org.apache.airavata.model.status.JobStatus;
+import org.apache.airavata.model.status.TaskStatus;
 import org.apache.airavata.model.task.TaskModel;
 import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
 import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
@@ -41,12 +46,14 @@ import org.apache.airavata.registry.cpi.ExperimentCatalogModelType;
 import org.apache.airavata.registry.cpi.RegistryException;
 import org.apache.airavata.registry.cpi.ResultOrderType;
 import org.apache.airavata.registry.cpi.utils.Constants;
-import org.apache.airavata.registry.cpi.utils.StatusType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.sql.Timestamp;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
 
 public class ExperimentRegistry {
     private GatewayResource gatewayResource;
@@ -64,122 +71,124 @@ public class ExperimentRegistry {
     }
 
     public String addExperiment(ExperimentModel experiment, String gatewayId) throws RegistryException {
-        String experimentID;
-        try {
-            if (!ExpCatResourceUtils.isUserExist(experiment.getUserName())) {
-                ExpCatResourceUtils.addUser(experiment.getUserName(), null);
-            }
-
-            experimentID = getExperimentID(experiment.getExperimentName());
-            experiment.setExperimentId(experimentID);
-            ExperimentResource experimentResource = new ExperimentResource();
-            experimentResource.setExpID(experimentID);
-            experimentResource.setExpName(experiment.getExperimentName());
-            experimentResource.setExecutionUser(experiment.getUserName());
-            experimentResource.setGatewayId(gatewayId);
-            experimentResource.setGatewayExecutionId(experiment.getGatewayExecutionId());
-            experimentResource.setEnableEmailNotifications(experiment.isEnableEmailNotification());
-            if (!workerResource.isProjectExists(experiment.getProjectId())) {
-                logger.error("Project does not exist in the system..");
-                throw new Exception("Project does not exist in the system, Please create the project first...");
-            }
-            experimentResource.setProjectId(experiment.getProjectId());
-            experimentResource.setCreationTime(AiravataUtils.getTime(experiment.getCreationTime()));
-            experimentResource.setDescription(experiment.getDescription());
-            experimentResource.setApplicationId(experiment.getExecutionId());
-            experimentResource.save();
-
-            List<String> emailAddresses = experiment.getEmailAddresses();
-            if (emailAddresses != null && !emailAddresses.isEmpty()){
-                for (String email : emailAddresses){
-                    NotificationEmailResource emailResource = new NotificationEmailResource();
-                    emailResource.setExperimentId(experimentID);
-                    emailResource.setEmailAddress(email);
-                    emailResource.save();
-                }
-            }
-
-            List<InputDataObjectType> experimentInputs = experiment.getExperimentInputs();
-            if (experimentInputs != null) {
-                addExpInputs(experimentInputs, experimentResource);
-            }
-
-            UserConfigurationDataModel userConfigurationData = experiment.getUserConfigurationData();
-            if (userConfigurationData != null) {
-                addUserConfigData(userConfigurationData, experimentID);
-            }
-
-            List<OutputDataObjectType> experimentOutputs = experiment.getExperimentOutputs();
-            if (experimentOutputs != null && !experimentOutputs.isEmpty()) {
-                //TODO: short change.
-//                for (DataObjectType output : experimentOutputs){
-//                    output.setValue("");
-//                }
-                addExpOutputs(experimentOutputs, experimentID);
-            }
-
-//            ExperimentStatus experimentStatus = experiment.getExperimentStatus();
-//            if (experimentStatus != null){
-//                updateExperimentStatus(experimentStatus, experimentID);
-//            }else {
-            ExperimentStatus experimentStatus = new ExperimentStatus();
-            experimentStatus.setState(ExperimentState.CREATED);
-            updateExperimentStatus(experimentStatus, experimentID);
-//            }
-
-//            List<WorkflowNodeDetails> workflowNodeDetailsList = experiment.getWorkflowNodeDetailsList();
-//            if (workflowNodeDetailsList != null && !workflowNodeDetailsList.isEmpty()) {
-//                for (WorkflowNodeDetails wf : workflowNodeDetailsList) {
-//                    addWorkflowNodeDetails(wf, experimentID);
+//        String experimentID;
+//        try {
+//            if (!ExpCatResourceUtils.isUserExist(experiment.getUserName())) {
+//                ExpCatResourceUtils.addUser(experiment.getUserName(), null);
+//            }
+//
+//            experimentID = getExperimentID(experiment.getExperimentName());
+//            experiment.setExperimentId(experimentID);
+//            ExperimentResource experimentResource = new ExperimentResource();
+//            experimentResource.setExpID(experimentID);
+//            experimentResource.setExpName(experiment.getExperimentName());
+//            experimentResource.setExecutionUser(experiment.getUserName());
+//            experimentResource.setGatewayId(gatewayId);
+//            experimentResource.setGatewayExecutionId(experiment.getGatewayExecutionId());
+//            experimentResource.setEnableEmailNotifications(experiment.isEnableEmailNotification());
+//            if (!workerResource.isProjectExists(experiment.getProjectId())) {
+//                logger.error("Project does not exist in the system..");
+//                throw new Exception("Project does not exist in the system, Please create the project first...");
+//            }
+//            experimentResource.setProjectId(experiment.getProjectId());
+//            experimentResource.setCreationTime(AiravataUtils.getTime(experiment.getCreationTime()));
+//            experimentResource.setDescription(experiment.getDescription());
+//            experimentResource.setApplicationId(experiment.getExecutionId());
+//            experimentResource.save();
+//
+//            List<String> emailAddresses = experiment.getEmailAddresses();
+//            if (emailAddresses != null && !emailAddresses.isEmpty()){
+//                for (String email : emailAddresses){
+//                    NotificationEmailResource emailResource = new NotificationEmailResource();
+//                    emailResource.setExperimentId(experimentID);
+//                    emailResource.setEmailAddress(email);
+//                    emailResource.save();
 //                }
 //            }
-            List<ErrorModel> errors = experiment.getErrors();
-            if (errors != null && !errors.isEmpty()) {
-                for (ErrorModel errror : errors) {
-                    addErrorDetails(errror, experimentID);
-                }
-            }
-        } catch (Exception e) {
-            logger.error("Error while saving experiment to registry", e);
-            throw new RegistryException(e);
-        }
-        return experimentID;
-    }
-
-    public String addUserConfigData(UserConfigurationDataModel configurationData, String experimentID) throws RegistryException {
-        try {
-            ExperimentResource experiment = gatewayResource.getExperiment(experimentID);
-            ConfigDataResource configData = (ConfigDataResource) experiment.create(ResourceType.CONFIG_DATA);
-            configData.setExperimentId(experimentID);
-            configData.setAiravataAutoSchedule(configurationData.isAiravataAutoSchedule());
-            configData.setOverrideManualParams(configurationData.isOverrideManualScheduledParams());
-            configData.setShareExp(configurationData.isShareExperimentPublicly());
-            configData.setUserDn(configurationData.getUserDN());
-            configData.setGenerateCert(configurationData.isGenerateCert());
-            configData.save();
-            ComputationalResourceSchedulingModel resourceScheduling = configurationData.getComputationalResourceScheduling();
-            if (resourceScheduling != null) {
-                addComputationScheduling(resourceScheduling, experiment);
-            }
-//            AdvancedInputDataHandling inputDataHandling = configurationData.getAdvanceInputDataHandling();
-//            if (inputDataHandling != null) {
-//                addInputDataHandling(inputDataHandling, experiment);
+//
+//            List<InputDataObjectType> experimentInputs = experiment.getExperimentInputs();
+//            if (experimentInputs != null) {
+//                addExpInputs(experimentInputs, experimentResource);
 //            }
 //
-//            AdvancedOutputDataHandling outputDataHandling = configurationData.getAdvanceOutputDataHandling();
-//            if (outputDataHandling != null) {
-//                addOutputDataHandling(outputDataHandling, experiment);
+//            UserConfigurationDataModel userConfigurationData = experiment.getUserConfigurationData();
+//            if (userConfigurationData != null) {
+//                addUserConfigData(userConfigurationData, experimentID);
 //            }
 //
-//            QualityOfServiceParams qosParams = configurationData.getQosParams();
-//            if (qosParams != null) {
-//                addQosParams(qosParams, experiment);
+//            List<OutputDataObjectType> experimentOutputs = experiment.getExperimentOutputs();
+//            if (experimentOutputs != null && !experimentOutputs.isEmpty()) {
+//                //TODO: short change.
+////                for (DataObjectType output : experimentOutputs){
+////                    output.setValue("");
+////                }
+//                addExpOutputs(experimentOutputs, experimentID);
 //            }
-        } catch (Exception e) {
-            logger.error("Unable to save user config data", e);
-            throw new RegistryException(e);
-        }
-        return experimentID;
+//
+////            ExperimentStatus experimentStatus = experiment.getExperimentStatus();
+////            if (experimentStatus != null){
+////                updateExperimentStatus(experimentStatus, experimentID);
+////            }else {
+//            ExperimentStatus experimentStatus = new ExperimentStatus();
+//            experimentStatus.setState(ExperimentState.CREATED);
+//            updateExperimentStatus(experimentStatus, experimentID);
+////            }
+//
+////            List<WorkflowNodeDetails> workflowNodeDetailsList = experiment.getWorkflowNodeDetailsList();
+////            if (workflowNodeDetailsList != null && !workflowNodeDetailsList.isEmpty()) {
+////                for (WorkflowNodeDetails wf : workflowNodeDetailsList) {
+////                    addWorkflowNodeDetails(wf, experimentID);
+////                }
+////            }
+//            List<ErrorModel> errors = experiment.getErrors();
+//            if (errors != null && !errors.isEmpty()) {
+//                for (ErrorModel errror : errors) {
+//                    addErrorDetails(errror, experimentID);
+//                }
+//            }
+//        } catch (Exception e) {
+//            logger.error("Error while saving experiment to registry", e);
+//            throw new RegistryException(e);
+//        }
+//        return experimentID;
+        return null;
+    }
+
+    public String addUserConfigData(UserConfigurationDataModel configurationData, String experimentID) throws RegistryException {
+//        try {
+//            ExperimentResource experiment = gatewayResource.getExperiment(experimentID);
+//            ConfigDataResource configData = (ConfigDataResource) experiment.create(ResourceType.CONFIG_DATA);
+//            configData.setExperimentId(experimentID);
+//            configData.setAiravataAutoSchedule(configurationData.isAiravataAutoSchedule());
+//            configData.setOverrideManualParams(configurationData.isOverrideManualScheduledParams());
+//            configData.setShareExp(configurationData.isShareExperimentPublicly());
+//            configData.setUserDn(configurationData.getUserDN());
+//            configData.setGenerateCert(configurationData.isGenerateCert());
+//            configData.save();
+//            ComputationalResourceSchedulingModel resourceScheduling = configurationData.getComputationalResourceScheduling();
+//            if (resourceScheduling != null) {
+//                addComputationScheduling(resourceScheduling, experiment);
+//            }
+////            AdvancedInputDataHandling inputDataHandling = configurationData.getAdvanceInputDataHandling();
+////            if (inputDataHandling != null) {
+////                addInputDataHandling(inputDataHandling, experiment);
+////            }
+////
+////            AdvancedOutputDataHandling outputDataHandling = configurationData.getAdvanceOutputDataHandling();
+////            if (outputDataHandling != null) {
+////                addOutputDataHandling(outputDataHandling, experiment);
+////            }
+////
+////            QualityOfServiceParams qosParams = configurationData.getQosParams();
+////            if (qosParams != null) {
+////                addQosParams(qosParams, experiment);
+////            }
+//        } catch (Exception e) {
+//            logger.error("Unable to save user config data", e);
+//            throw new RegistryException(e);
+//        }
+//        return experimentID;
+        return null;
     }
 
 //    public void addQosParams(QualityOfServiceParams qosParams, ExperimentCatResource resource) throws RegistryException {
@@ -262,251 +271,255 @@ public class ExperimentRegistry {
 //    }
 
     public void addComputationScheduling(ComputationalResourceSchedulingModel resourceScheduling, ExperimentCatResource resource) throws RegistryException {
-        ComputationSchedulingResource cmsr = new ComputationSchedulingResource();
-        try {
-            if (resource instanceof ExperimentResource) {
-                ExperimentResource experiment = (ExperimentResource) resource;
-                cmsr.setExperimentId(experiment.getExpID());
-            }
-            if (resource instanceof TaskDetailResource) {
-                TaskDetailResource taskDetailResource = (TaskDetailResource) resource;
-                String nodeId = taskDetailResource.getNodeId();
-                ExperimentResource experimentResource = new ExperimentResource();
-                WorkflowNodeDetailResource workflowNode = experimentResource.getWorkflowNode(nodeId);
-                cmsr.setExperimentId(workflowNode.getExperimentId());
-                cmsr.setTaskId(taskDetailResource.getTaskId());
-            }
-            cmsr.setResourceHostId(resourceScheduling.getResourceHostId());
-            cmsr.setCpuCount(resourceScheduling.getTotalCPUCount());
-            cmsr.setNodeCount(resourceScheduling.getNodeCount());
-            cmsr.setNumberOfThreads(resourceScheduling.getNumberOfThreads());
-            cmsr.setQueueName(resourceScheduling.getQueueName());
-            cmsr.setWalltimeLimit(resourceScheduling.getWallTimeLimit());
-            cmsr.setPhysicalMemory(resourceScheduling.getTotalPhysicalMemory());
-            cmsr.setChessisName(resourceScheduling.getChessisNumber());
-            cmsr.save();
-        } catch (Exception e) {
-            logger.error("Unable to save computational scheduling data", e);
-            throw new RegistryException(e);
-        }
+//        ComputationSchedulingResource cmsr = new ComputationSchedulingResource();
+//        try {
+//            if (resource instanceof ExperimentResource) {
+//                ExperimentResource experiment = (ExperimentResource) resource;
+//                cmsr.setExperimentId(experiment.getExpID());
+//            }
+//            if (resource instanceof TaskDetailResource) {
+//                TaskDetailResource taskDetailResource = (TaskDetailResource) resource;
+//                String nodeId = taskDetailResource.getNodeId();
+//                ExperimentResource experimentResource = new ExperimentResource();
+//                WorkflowNodeDetailResource workflowNode = experimentResource.getWorkflowNode(nodeId);
+//                cmsr.setExperimentId(workflowNode.getExperimentId());
+//                cmsr.setTaskId(taskDetailResource.getTaskId());
+//            }
+//            cmsr.setResourceHostId(resourceScheduling.getResourceHostId());
+//            cmsr.setCpuCount(resourceScheduling.getTotalCPUCount());
+//            cmsr.setNodeCount(resourceScheduling.getNodeCount());
+//            cmsr.setNumberOfThreads(resourceScheduling.getNumberOfThreads());
+//            cmsr.setQueueName(resourceScheduling.getQueueName());
+//            cmsr.setWalltimeLimit(resourceScheduling.getWallTimeLimit());
+//            cmsr.setPhysicalMemory(resourceScheduling.getTotalPhysicalMemory());
+//            cmsr.setChessisName(resourceScheduling.getChessisNumber());
+//            cmsr.save();
+//        } catch (Exception e) {
+//            logger.error("Unable to save computational scheduling data", e);
+//            throw new RegistryException(e);
+//        }
 
     }
 
     public void addExpInputs(List<InputDataObjectType> exInputs, ExperimentResource experimentResource) throws RegistryException {
-        try {
-            for (InputDataObjectType input : exInputs) {
-                ExperimentInputResource resource = (ExperimentInputResource) experimentResource.create(ResourceType.EXPERIMENT_INPUT);
-                resource.setExperimentId(experimentResource.getExpID());
-                resource.setExperimentKey(input.getName());
-                resource.setValue(input.getValue());
-                if (input.getType() != null) {
-                    resource.setDataType(input.getType().toString());
-                }
-                resource.setMetadata(input.getMetaData());
-                resource.setAppArgument(input.getApplicationArgument());
-                resource.setInputOrder(input.getInputOrder());
-                resource.setRequired(input.isIsRequired());
-                resource.setRequiredToCMD(input.isRequiredToAddedToCommandLine());
-                resource.save();
-            }
-        } catch (Exception e) {
-            logger.error("Unable to save experiment inputs", e);
-            throw new RegistryException(e);
-        }
+//        try {
+//            for (InputDataObjectType input : exInputs) {
+//                ExperimentInputResource resource = (ExperimentInputResource) experimentResource.create(ResourceType.EXPERIMENT_INPUT);
+//                resource.setExperimentId(experimentResource.getExpID());
+//                resource.setExperimentKey(input.getName());
+//                resource.setValue(input.getValue());
+//                if (input.getType() != null) {
+//                    resource.setDataType(input.getType().toString());
+//                }
+//                resource.setMetadata(input.getMetaData());
+//                resource.setAppArgument(input.getApplicationArgument());
+//                resource.setInputOrder(input.getInputOrder());
+//                resource.setRequired(input.isIsRequired());
+//                resource.setRequiredToCMD(input.isRequiredToAddedToCommandLine());
+//                resource.save();
+//            }
+//        } catch (Exception e) {
+//            logger.error("Unable to save experiment inputs", e);
+//            throw new RegistryException(e);
+//        }
     }
 
     public void updateExpInputs(List<InputDataObjectType> exInputs, ExperimentResource experimentResource) throws RegistryException {
-        try {
-            List<ExperimentInputResource> experimentInputs = experimentResource.getExperimentInputs();
-            for (InputDataObjectType input : exInputs) {
-                for (ExperimentInputResource exinput : experimentInputs) {
-                    if (exinput.getExperimentKey().equals(input.getName())) {
-                        exinput.setValue(input.getValue());
-                        if (input.getType() != null) {
-                            exinput.setDataType(input.getType().toString());
-                        }
-                        exinput.setMetadata(input.getMetaData());
-                        exinput.setAppArgument(input.getApplicationArgument());
-                        exinput.setInputOrder(input.getInputOrder());
-                        exinput.setRequired(input.isIsRequired());
-                        exinput.setRequiredToCMD(input.isRequiredToAddedToCommandLine());
-                        exinput.save();
-                    }
-                }
-            }
-        } catch (Exception e) {
-            logger.error("Unable to update experiment inputs", e);
-            throw new RegistryException(e);
-        }
+//        try {
+//            List<ExperimentInputResource> experimentInputs = experimentResource.getExperimentInputs();
+//            for (InputDataObjectType input : exInputs) {
+//                for (ExperimentInputResource exinput : experimentInputs) {
+//                    if (exinput.getExperimentKey().equals(input.getName())) {
+//                        exinput.setValue(input.getValue());
+//                        if (input.getType() != null) {
+//                            exinput.setDataType(input.getType().toString());
+//                        }
+//                        exinput.setMetadata(input.getMetaData());
+//                        exinput.setAppArgument(input.getApplicationArgument());
+//                        exinput.setInputOrder(input.getInputOrder());
+//                        exinput.setRequired(input.isIsRequired());
+//                        exinput.setRequiredToCMD(input.isRequiredToAddedToCommandLine());
+//                        exinput.save();
+//                    }
+//                }
+//            }
+//        } catch (Exception e) {
+//            logger.error("Unable to update experiment inputs", e);
+//            throw new RegistryException(e);
+//        }
 
     }
 
     public String addExpOutputs(List<OutputDataObjectType> exOutput, String expId) throws RegistryException {
-        try {
-            ExperimentResource experiment = gatewayResource.getExperiment(expId);
-            for (OutputDataObjectType output : exOutput) {
-                ExperimentOutputResource resource = (ExperimentOutputResource) experiment.create(ResourceType.EXPERIMENT_OUTPUT);
-                resource.setExperimentId(expId);
-                resource.setExperimentKey(output.getName());
-                resource.setValue(output.getValue());
-                if (output.getType() != null) {
-                    resource.setDataType(output.getType().toString());
-                }
-                resource.setRequired(output.isIsRequired());
-                resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
-                resource.setDataMovement(output.isDataMovement());
-                resource.setDataNameLocation(output.getLocation());
-                resource.setAppArgument(output.getApplicationArgument());
-                resource.setSearchQuery(output.getSearchQuery());
-//                resource.setMetadata(output.get());
-                resource.save();
-            }
-        } catch (Exception e) {
-            logger.error("Error while adding experiment outputs...", e);
-            throw new RegistryException(e);
-        }
-        return expId;
+//        try {
+//            ExperimentResource experiment = gatewayResource.getExperiment(expId);
+//            for (OutputDataObjectType output : exOutput) {
+//                ExperimentOutputResource resource = (ExperimentOutputResource) experiment.create(ResourceType.EXPERIMENT_OUTPUT);
+//                resource.setExperimentId(expId);
+//                resource.setExperimentKey(output.getName());
+//                resource.setValue(output.getValue());
+//                if (output.getType() != null) {
+//                    resource.setDataType(output.getType().toString());
+//                }
+//                resource.setRequired(output.isIsRequired());
+//                resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
+//                resource.setDataMovement(output.isDataMovement());
+//                resource.setDataNameLocation(output.getLocation());
+//                resource.setAppArgument(output.getApplicationArgument());
+//                resource.setSearchQuery(output.getSearchQuery());
+////                resource.setMetadata(output.get());
+//                resource.save();
+//            }
+//        } catch (Exception e) {
+//            logger.error("Error while adding experiment outputs...", e);
+//            throw new RegistryException(e);
+//        }
+//        return expId;
+        return null;
     }
 
     public void updateExpOutputs(List<OutputDataObjectType> exOutput, String expId) throws RegistryException {
-        try {
-            ExperimentResource experiment = gatewayResource.getExperiment(expId);
-            List<ExperimentOutputResource> existingExpOutputs = experiment.getExperimentOutputs();
-            for (OutputDataObjectType output : exOutput) {
-                for (ExperimentOutputResource resource : existingExpOutputs) {
-                    if (resource.getExperimentKey().equals(output.getName())) {
-                        resource.setExperimentId(expId);
-                        resource.setExperimentKey(output.getName());
-                        resource.setValue(output.getValue());
-                        if (output.getType() != null) {
-                            resource.setDataType(output.getType().toString());
-                        }
-                        resource.setRequired(output.isIsRequired());
-                        resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
-                        resource.setDataMovement(output.isDataMovement());
-                        resource.setDataNameLocation(output.getLocation());
-                        resource.setAppArgument(output.getApplicationArgument());
-                        resource.setSearchQuery(output.getSearchQuery());
-//                        resource.setMetadata(output.getMetaData());
-                        resource.save();
-                    }
-                }
-            }
-        } catch (Exception e) {
-            logger.error("Error while updating experiment outputs", e);
-            throw new RegistryException(e);
-        }
+//        try {
+//            ExperimentResource experiment = gatewayResource.getExperiment(expId);
+//            List<ExperimentOutputResource> existingExpOutputs = experiment.getExperimentOutputs();
+//            for (OutputDataObjectType output : exOutput) {
+//                for (ExperimentOutputResource resource : existingExpOutputs) {
+//                    if (resource.getExperimentKey().equals(output.getName())) {
+//                        resource.setExperimentId(expId);
+//                        resource.setExperimentKey(output.getName());
+//                        resource.setValue(output.getValue());
+//                        if (output.getType() != null) {
+//                            resource.setDataType(output.getType().toString());
+//                        }
+//                        resource.setRequired(output.isIsRequired());
+//                        resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
+//                        resource.setDataMovement(output.isDataMovement());
+//                        resource.setDataNameLocation(output.getLocation());
+//                        resource.setAppArgument(output.getApplicationArgument());
+//                        resource.setSearchQuery(output.getSearchQuery());
+////                        resource.setMetadata(output.getMetaData());
+//                        resource.save();
+//                    }
+//                }
+//            }
+//        } catch (Exception e) {
+//            logger.error("Error while updating experiment outputs", e);
+//            throw new RegistryException(e);
+//        }
     }
 
     public String addNodeOutputs(List<OutputDataObjectType> wfOutputs, CompositeIdentifier ids) throws RegistryException {
-        try {
-            ExperimentResource experiment = gatewayResource.getExperiment((String) ids.getTopLevelIdentifier());
-            WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode((String) ids.getSecondLevelIdentifier());
-            for (OutputDataObjectType output : wfOutputs) {
-                NodeOutputResource resource = (NodeOutputResource) workflowNode.create(ResourceType.NODE_OUTPUT);
-                resource.setNodeId(workflowNode.getNodeInstanceId());
-                resource.setOutputKey(output.getName());
-                resource.setValue(output.getValue());
-                if (output.getType() != null) {
-                    resource.setDataType(output.getType().toString());
-                }
-                resource.setRequired(output.isIsRequired());
-                resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
-                resource.setDataMovement(output.isDataMovement());
-                resource.setDataNameLocation(output.getLocation());
-                resource.setAppArgument(output.getApplicationArgument());
-                resource.setSearchQuery(output.getSearchQuery());
-//                resource.setMetadata(output.getMetaData());
-                resource.save();
-            }
-        } catch (Exception e) {
-            logger.error("Error while adding node outputs...", e);
-            throw new RegistryException(e);
-        }
-        return (String) ids.getSecondLevelIdentifier();
+//        try {
+//            ExperimentResource experiment = gatewayResource.getExperiment((String) ids.getTopLevelIdentifier());
+//            WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode((String) ids.getSecondLevelIdentifier());
+//            for (OutputDataObjectType output : wfOutputs) {
+//                NodeOutputResource resource = (NodeOutputResource) workflowNode.create(ResourceType.NODE_OUTPUT);
+//                resource.setNodeId(workflowNode.getNodeInstanceId());
+//                resource.setOutputKey(output.getName());
+//                resource.setValue(output.getValue());
+//                if (output.getType() != null) {
+//                    resource.setDataType(output.getType().toString());
+//                }
+//                resource.setRequired(output.isIsRequired());
+//                resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
+//                resource.setDataMovement(output.isDataMovement());
+//                resource.setDataNameLocation(output.getLocation());
+//                resource.setAppArgument(output.getApplicationArgument());
+//                resource.setSearchQuery(output.getSearchQuery());
+////                resource.setMetadata(output.getMetaData());
+//                resource.save();
+//            }
+//        } catch (Exception e) {
+//            logger.error("Error while adding node outputs...", e);
+//            throw new RegistryException(e);
+//        }
+//        return (String) ids.getSecondLevelIdentifier();
+        return null;
     }
 
     public void updateNodeOutputs(List<OutputDataObjectType> wfOutputs, String nodeId) throws RegistryException {
-        try {
-            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-            WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode(nodeId);
-            List<NodeOutputResource> nodeOutputs = workflowNode.getNodeOutputs();
-            for (OutputDataObjectType output : wfOutputs) {
-                for (NodeOutputResource resource : nodeOutputs) {
-                    resource.setNodeId(workflowNode.getNodeInstanceId());
-                    resource.setOutputKey(output.getName());
-                    resource.setValue(output.getValue());
-                    if (output.getType() != null) {
-                        resource.setDataType(output.getType().toString());
-                    }
-                    resource.setRequired(output.isIsRequired());
-                    resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
-                    resource.setDataMovement(output.isDataMovement());
-                    resource.setDataNameLocation(output.getLocation());
-                    resource.setAppArgument(output.getApplicationArgument());
-                    resource.setSearchQuery(output.getSearchQuery());
-//                    resource.setMetadata(output.getMetaData());
-                    resource.save();
-                }
-            }
-        } catch (Exception e) {
-            logger.error("Error while updating node outputs...", e);
-            throw new RegistryException(e);
-        }
+//        try {
+//            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
+//            WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode(nodeId);
+//            List<NodeOutputResource> nodeOutputs = workflowNode.getNodeOutputs();
+//            for (OutputDataObjectType output : wfOutputs) {
+//                for (NodeOutputResource resource : nodeOutputs) {
+//                    resource.setNodeId(workflowNode.getNodeInstanceId());
+//                    resource.setOutputKey(output.getName());
+//                    resource.setValue(output.getValue());
+//                    if (output.getType() != null) {
+//                        resource.setDataType(output.getType().toString());
+//                    }
+//                    resource.setRequired(output.isIsRequired());
+//                    resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
+//                    resource.setDataMovement(output.isDataMovement());
+//                    resource.setDataNameLocation(output.getLocation());
+//                    resource.setAppArgument(output.getApplicationArgument());
+//                    resource.setSearchQuery(output.getSearchQuery());
+////                    resource.setMetadata(output.getMetaData());
+//                    resource.save();
+//                }
+//            }
+//        } catch (Exception e) {
+//            logger.error("Error while updating node outputs...", e);
+//            throw new RegistryException(e);
+//        }
     }
 
     public String addApplicationOutputs(List<OutputDataObjectType> appOutputs, CompositeIdentifier ids) throws RegistryException {
-        try {
-            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-            WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode((String) ids.getTopLevelIdentifier());
-            TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getSecondLevelIdentifier());
-            for (OutputDataObjectType output : appOutputs) {
-                ApplicationOutputResource resource = (ApplicationOutputResource) taskDetail.create(ResourceType.APPLICATION_OUTPUT);
-                resource.setTaskId(taskDetail.getTaskId());
-                resource.setOutputKey(output.getName());
-                resource.setValue(output.getValue());
-                if (output.getType() != null) {
-                    resource.setDataType(output.getType().toString());
-                }
-                resource.setRequired(output.isIsRequired());
-                resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
-                resource.setDataMovement(output.isDataMovement());
-                resource.setDataNameLocation(output.getLocation());
-                resource.setAppArgument(output.getApplicationArgument());
-                resource.setSearchQuery(output.getSearchQuery());
-//                resource.setMetadata(output.getMetaData());
-                resource.save();
-            }
-        } catch (Exception e) {
-            logger.error("Error while adding application outputs...", e);
-            throw new RegistryException(e);
-        }
-        return (String) ids.getSecondLevelIdentifier();
+//        try {
+//            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
+//            WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode((String) ids.getTopLevelIdentifier());
+//            TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getSecondLevelIdentifier());
+//            for (OutputDataObjectType output : appOutputs) {
+//                ApplicationOutputResource resource = (ApplicationOutputResource) taskDetail.create(ResourceType.APPLICATION_OUTPUT);
+//                resource.setTaskId(taskDetail.getTaskId());
+//                resource.setOutputKey(output.getName());
+//                resource.setValue(output.getValue());
+//                if (output.getType() != null) {
+//                    resource.setDataType(output.getType().toString());
+//                }
+//                resource.setRequired(output.isIsRequired());
+//                resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
+//                resource.setDataMovement(output.isDataMovement());
+//                resource.setDataNameLocation(output.getLocation());
+//                resource.setAppArgument(output.getApplicationArgument());
+//                resource.setSearchQuery(output.getSearchQuery());
+////                resource.setMetadata(output.getMetaData());
+//                resource.save();
+//            }
+//        } catch (Exception e) {
+//            logger.error("Error while adding application outputs...", e);
+//            throw new RegistryException(e);
+//        }
+//        return (String) ids.getSecondLevelIdentifier();
+        return null;
     }
 
     public String updateExperimentStatus(ExperimentStatus experimentStatus, String expId) throws RegistryException {
-        try {
-            ExperimentResource experiment = gatewayResource.getExperiment(expId);
-            StatusResource status = experiment.getExperimentStatus();
-            if (status == null) {
-                status = (StatusResource) experiment.create(ResourceType.STATUS);
-            }
-            status.setExperimentId(expId);
-            status.setStatusUpdateTime(AiravataUtils.getTime(experimentStatus.getTimeOfStateChange()));
-//            if (status.getState() == null) {
-//                status.setState(ExperimentState.UNKNOWN.name());
+//        try {
+//            ExperimentResource experiment = gatewayResource.getExperiment(expId);
+//            StatusResource status = experiment.getExperimentStatus();
+//            if (status == null) {
+//                status = (StatusResource) experiment.create(ResourceType.STATUS);
+//            }
+//            status.setExperimentId(expId);
+//            status.setStatusUpdateTime(AiravataUtils.getTime(experimentStatus.getTimeOfStateChange()));
+////            if (status.getState() == null) {
+////                status.setState(ExperimentState.UNKNOWN.name());
+////            }
+//            if (isValidStatusTransition(ExperimentState.valueOf(status.getState()), experimentStatus.getState())) {
+//                status.setState(experimentStatus.getState().toString());
+//                status.setStatusType(StatusType.EXPERIMENT.toString());
+//                status.save();
+//                logger.debug(expId, "Updated experiment {} status to {}.", expId, experimentStatus.toString());
 //            }
-            if (isValidStatusTransition(ExperimentState.valueOf(status.getState()), experimentStatus.getState())) {
-                status.setState(experimentStatus.getState().toString());
-                status.setStatusType(StatusType.EXPERIMENT.toString());
-                status.save();
-                logger.debug(expId, "Updated experiment {} status to {}.", expId, experimentStatus.toString());
-            }
-        } catch (Exception e) {
-            logger.error(expId, "Error while updating experiment status...", e);
-            throw new RegistryException(e);
-        }
-        return expId;
+//        } catch (Exception e) {
+//            logger.error(expId, "Error while updating experiment status...", e);
+//            throw new RegistryException(e);
+//        }
+//        return expId;
+        return null;
     }
 
 //    public String addWorkflowNodeStatus(WorkflowNodeStatus status, CompositeIdentifier ids) throws RegistryException {
@@ -554,53 +567,54 @@ public class ExperimentRegistry {
 //    }
 
     public String addTaskStatus(TaskStatus status, CompositeIdentifier ids) throws RegistryException {
-        try {
-            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-            WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode((String) ids.getTopLevelIdentifier());
-            TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getSecondLevelIdentifier());
-            StatusResource statusResource = (StatusResource) workflowNode.create(ResourceType.STATUS);
-            statusResource.setExperimentId(workflowNode.getExperimentId());
-            statusResource.setNodeId(workflowNode.getNodeInstanceId());
-            statusResource.setTaskId(taskDetail.getTaskId());
-            statusResource.setStatusType(StatusType.TASK.toString());
-            statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
-            if (status.getState() == null) {
-//              statusResource.setState(TaskState.UNKNOWN.toString());
-            } else {
-                statusResource.setState(status.getState().toString());
-            }
-            statusResource.save();
-            return String.valueOf(statusResource.getStatusId());
-        } catch (Exception e) {
-            logger.error("Error while adding task status...", e);
-            throw new RegistryException(e);
-        }
+//        try {
+//            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
+//            WorkflowNodeDetailResource workflowNode = experiment.getWorkflowNode((String) ids.getTopLevelIdentifier());
+//            TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getSecondLevelIdentifier());
+//            StatusResource statusResource = (StatusResource) workflowNode.create(ResourceType.STATUS);
+//            statusResource.setExperimentId(workflowNode.getExperimentId());
+//            statusResource.setNodeId(workflowNode.getNodeInstanceId());
+//            statusResource.setTaskId(taskDetail.getTaskId());
+//            statusResource.setStatusType(StatusType.TASK.toString());
+//            statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
+//            if (status.getState() == null) {
+////              statusResource.setState(TaskState.UNKNOWN.toString());
+//            } else {
+//                statusResource.setState(status.getState().toString());
+//            }
+//            statusResource.save();
+//            return String.valueOf(statusResource.getStatusId());
+//        } catch (Exception e) {
+//            logger.error("Error while adding task status...", e);
+//            throw new RegistryException(e);
+//        }
+        return null;
     }
 
     public void updateTaskStatus(TaskStatus status, String taskId) throws RegistryException {
-        try {
-            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-            WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-            TaskDetailResource taskDetail = workflowNode.getTaskDetail(taskId);
-            StatusResource statusResource;
-            if (taskDetail.isTaskStatusExist(taskId)) {
-                workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
-                statusResource = workflowNode.getTaskStatus(taskId);
-            } else {
-                statusResource = (StatusResource) taskDetail.create(ResourceType.STATUS);
-            }
-            statusResource.setExperimentId(workflowNode.getExperimentId());
-            statusResource.setNodeId(workflowNode.getNodeInstanceId());
-            statusResource.setTaskId(taskId);
-            statusResource.setStatusType(StatusType.TASK.toString());
-            statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
-            statusResource.setState(status.getState().toString());
-            statusResource.save();
-            logger.info(taskId, "Updated task {} status to {}.", taskId, status.toString());
-        } catch (Exception e) {
-            logger.error(taskId, "Error while updating task status to " + status.toString() + "...", e);
-            throw new RegistryException(e);
-        }
+//        try {
+//            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
+//            WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
+//            TaskDetailResource taskDetail = workflowNode.getTaskDetail(taskId);
+//            StatusResource statusResource;
+//            if (taskDetail.isTaskStatusExist(taskId)) {
+//                workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
+//                statusResource = workflowNode.getTaskStatus(taskId);
+//            } else {
+//                statusResource = (StatusResource) taskDetail.create(ResourceType.STATUS);
+//            }
+//            statusResource.setExperimentId(workflowNode.getExperimentId());
+//            statusResource.setNodeId(workflowNode.getNodeInstanceId());
+//            statusResource.setTaskId(taskId);
+//            statusResource.setStatusType(StatusType.TASK.toString());
+//            statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
+//            statusResource.setState(status.getState().toString());
+//            statusResource.save();
+//            logger.info(taskId, "Updated task {} status to {}.", taskId, status.toString());
+//        } catch (Exception e) {
+//            logger.error(taskId, "Error while updating task status to " + status.toString() + "...", e);
+//            throw new RegistryException(e);
+//        }
     }
 
     /**
@@ -609,52 +623,54 @@ public class ExperimentRegistry {
      * @return status id
      */
     public String addJobStatus(JobStatus status, CompositeIdentifier ids) throws RegistryException {
-        try {
-            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-            WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-            TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getTopLevelIdentifier());
-            workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
-            JobDetailResource jobDetail = taskDetail.getJobDetail((String) ids.getSecondLevelIdentifier());
-            StatusResource statusResource = (StatusResource) jobDetail.create(ResourceType.STATUS);
-            statusResource.setExperimentId(workflowNode.getExperimentId());
-            statusResource.setNodeId(workflowNode.getNodeInstanceId());
-            statusResource.setTaskId(taskDetail.getTaskId());
-            statusResource.setStatusType(StatusType.JOB.toString());
-            statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
-            if (status.getJobState() == null) {
-                statusResource.setState(JobState.UNKNOWN.toString());
-            } else {
-                statusResource.setState(status.getJobState().toString());
-            }
-            statusResource.save();
-            return String.valueOf(statusResource.getStatusId());
-        } catch (Exception e) {
-            logger.error("Error while adding job status...", e);
-            throw new RegistryException(e);
-        }
+//        try {
+//            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
+//            WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
+//            TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getTopLevelIdentifier());
+//            workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
+//            JobDetailResource jobDetail = taskDetail.getJobDetail((String) ids.getSecondLevelIdentifier());
+//            StatusResource statusResource = (StatusResource) jobDetail.create(ResourceType.STATUS);
+//            statusResource.setExperimentId(workflowNode.getExperimentId());
+//            statusResource.setNodeId(workflowNode.getNodeInstanceId());
+//            statusResource.setTaskId(taskDetail.getTaskId());
+//            statusResource.setStatusType(StatusType.JOB.toString());
+//            statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
+//            if (status.getJobState() == null) {
+//                statusResource.setState(JobState.UNKNOWN.toString());
+//            } else {
+//                statusResource.setState(status.getJobState().toString());
+//            }
+//            statusResource.save();
+//            return String.valueOf(statusResource.getStatusId());
+//        } catch (Exception e) {
+//            logger.error("Error while adding job status...", e);
+//            throw new RegistryException(e);
+//        }
+        return null;
     }
 
     public String updateJobStatus(JobStatus status, CompositeIdentifier ids) throws RegistryException {
-        try {
-            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-            WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-            TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getTopLevelIdentifier());
-            JobDetailResource jobDetail = taskDetail.getJobDetail((String) ids.getSecondLevelIdentifier());
-            StatusResource statusResource = jobDetail.getJobStatus();
-            workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
-            statusResource.setExperimentId(workflowNode.getExperimentId());
-            statusResource.setNodeId(workflowNode.getNodeInstanceId());
-            statusResource.setTaskId(taskDetail.getTaskId());
-            statusResource.setStatusType(StatusType.JOB.toString());
-            statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
-            statusResource.setState(status.getJobState().toString());
-            statusResource.save();
-            logger.info(ids.toString(), "Updated job status to {}", status.toString());
-            return String.valueOf(statusResource.getStatusId());
-        } catch (Exception e) {
-            logger.error(ids.toString(), "Error while updating job status to " + status.toString() + " ...", e);
-            throw new RegistryException(e);
-        }
+//        try {
+//            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
+//            WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
+//            TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getTopLevelIdentifier());
+//            JobDetailResource jobDetail = taskDetail.getJobDetail((String) ids.getSecondLevelIdentifier());
+//            StatusResource statusResource = jobDetail.getJobStatus();
+//            workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
+//            statusResource.setExperimentId(workflowNode.getExperimentId());
+//            statusResource.setNodeId(workflowNode.getNodeInstanceId());
+//            statusResource.setTaskId(taskDetail.getTaskId());
+//            statusResource.setStatusType(StatusType.JOB.toString());
+//            statusResource.setStatusUpdateTime(AiravataUtils.getTime(status.getTimeOfStateChange()));
+//            statusResource.setState(status.getJobState().toString());
+//            statusResource.save();
+//            logger.info(ids.toString(), "Updated job status to {}", status.toString());
+//            return String.valueOf(statusResource.getStatusId());
+//        } catch (Exception e) {
+//            logger.error(ids.toString(), "Error while updating job status to " + status.toString() + " ...", e);
+//            throw new RegistryException(e);
+//        }
+        return null;
     }
 
 //    /**
@@ -874,56 +890,6 @@ public class ExperimentRegistry {
 //    }
 
 
-    public void addWorkflowInputs(List<InputDataObjectType> wfInputs, WorkflowNodeDetailResource nodeDetailResource) throws RegistryException {
-        try {
-            for (InputDataObjectType input : wfInputs) {
-                NodeInputResource resource = (NodeInputResource) nodeDetailResource.create(ResourceType.NODE_INPUT);
-                resource.setNodeId(nodeDetailResource.getNodeInstanceId());
-                resource.setInputKey(input.getName());
-                resource.setValue(input.getValue());
-                if (input.getType() != null) {
-                    resource.setDataType(input.getType().toString());
-                }
-                resource.setMetadata(input.getMetaData());
-                resource.setAppArgument(input.getApplicationArgument());
-                resource.setInputOrder(input.getInputOrder());
-                resource.setRequired(input.isIsRequired());
-                resource.setRequiredToCMD(input.isRequiredToAddedToCommandLine());
-                resource.save();
-            }
-        } catch (Exception e) {
-            logger.error("Error while adding workflow inputs...", e);
-            throw new RegistryException(e);
-        }
-
-    }
-
-    public void updateWorkflowInputs(List<InputDataObjectType> wfInputs, WorkflowNodeDetailResource nodeDetailResource) throws RegistryException {
-        try {
-            List<NodeInputResource> nodeInputs = nodeDetailResource.getNodeInputs();
-            for (InputDataObjectType input : wfInputs) {
-                for (NodeInputResource resource : nodeInputs) {
-                    resource.setNodeId(nodeDetailResource.getNodeInstanceId());
-                    resource.setInputKey(input.getName());
-                    resource.setValue(input.getValue());
-                    if (input.getType() != null) {
-                        resource.setDataType(input.getType().toString());
-                    }
-                    resource.setMetadata(input.getMetaData());
-                    resource.setAppArgument(input.getApplicationArgument());
-                    resource.setInputOrder(input.getInputOrder());
-                    resource.setRequired(input.isIsRequired());
-                    resource.setRequiredToCMD(input.isRequiredToAddedToCommandLine());
-                    resource.save();
-                }
-            }
-        } catch (Exception e) {
-            logger.error("Error while updating workflow inputs...", e);
-            throw new RegistryException(e);
-        }
-
-    }
-
 //    public String addTaskDetails(TaskModel taskDetails, String nodeId) throws RegistryException {
 //        try {
 //            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
@@ -1081,207 +1047,132 @@ public class ExperimentRegistry {
 //            if (taskStatus != null) {
 //                updateTaskStatus(taskStatus, taskId);
 //            }
-//            return taskDetail.getTaskId();
-//        } catch (Exception e) {
-//            logger.error("Error while updating task details...", e);
-//            throw new RegistryException(e);
-//        }
-//    }
-
-    public void addAppInputs(List<InputDataObjectType> appInputs, TaskDetailResource taskDetailResource) throws RegistryException {
-        try {
-            for (InputDataObjectType input : appInputs) {
-                ApplicationInputResource resource = (ApplicationInputResource) taskDetailResource.create(ResourceType.APPLICATION_INPUT);
-                resource.setTaskId(taskDetailResource.getTaskId());
-                resource.setInputKey(input.getName());
-                resource.setValue(input.getValue());
-                if (input.getType() != null) {
-                    resource.setDataType(input.getType().toString());
-                }
-                resource.setMetadata(input.getMetaData());
-                resource.setAppArgument(input.getApplicationArgument());
-                resource.setInputOrder(input.getInputOrder());
-                resource.setRequired(input.isIsRequired());
-                resource.setRequiredToCMD(input.isRequiredToAddedToCommandLine());
-                resource.save();
-            }
-        } catch (Exception e) {
-            logger.error("Error while adding application inputs...", e);
-            throw new RegistryException(e);
-        }
-
-    }
-
-    public void addAppOutputs(List<OutputDataObjectType> appOytputs, TaskDetailResource taskDetailResource) throws RegistryException {
-        try {
-            for (OutputDataObjectType output : appOytputs) {
-                ApplicationOutputResource resource = (ApplicationOutputResource) taskDetailResource.create(ResourceType.APPLICATION_OUTPUT);
-                resource.setTaskId(taskDetailResource.getTaskId());
-                resource.setOutputKey(output.getName());
-                resource.setValue(output.getValue());
-                if (output.getType() != null) {
-                    resource.setDataType(output.getType().toString());
-                }
-                resource.setRequired(output.isIsRequired());
-                resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
-                resource.setDataMovement(output.isDataMovement());
-                resource.setDataNameLocation(output.getLocation());
-                resource.setAppArgument(output.getApplicationArgument());
-                resource.setSearchQuery(output.getSearchQuery());
-                resource.save();
-            }
-        } catch (Exception e) {
-            logger.error("Error while adding application outputs...", e);
-            throw new RegistryException(e);
-        }
-
-    }
+//            return taskDetail.getTaskId();
+//        } catch (Exception e) {
+//            logger.error("Error while updating task details...", e);
+//            throw new RegistryException(e);
+//        }
+//    }
 
     public void updateAppOutputs(List<OutputDataObjectType> appOutputs, String taskId) throws RegistryException {
-        try {
-            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-            WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-            TaskDetailResource taskDetail = workflowNode.getTaskDetail(taskId);
-            List<ApplicationOutputResource> outputs = taskDetail.getApplicationOutputs();
-            for (OutputDataObjectType output : appOutputs) {
-                for (ApplicationOutputResource resource : outputs) {
-                    resource.setTaskId(taskId);
-                    resource.setOutputKey(output.getName());
-                    resource.setValue(output.getValue());
-                    if (output.getType() != null) {
-                        resource.setDataType(output.getType().toString());
-                    }
-                    resource.setRequired(output.isIsRequired());
-                    resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
-                    resource.setDataMovement(output.isDataMovement());
-                    resource.setDataNameLocation(output.getLocation());
-                    resource.setAppArgument(output.getApplicationArgument());
-                    resource.setSearchQuery(output.getSearchQuery());
-//                    resource.setMetadata(output.getMetaData());
-                    resource.save();
-                }
-            }
-        } catch (Exception e) {
-            logger.error("Error while updating application outputs...", e);
-            throw new RegistryException(e);
-        }
-    }
-
-    public void updateAppInputs(List<InputDataObjectType> appInputs, TaskDetailResource taskDetailResource) throws RegistryException {
-        try {
-            List<ApplicationInputResource> inputs = taskDetailResource.getApplicationInputs();
-            for (InputDataObjectType input : appInputs) {
-                for (ApplicationInputResource resource : inputs) {
-                    resource.setTaskId(taskDetailResource.getTaskId());
-                    resource.setInputKey(input.getName());
-                    resource.setValue(input.getValue());
-                    if (input.getType() != null) {
-                        resource.setDataType(input.getType().toString());
-                    }
-                    resource.setMetadata(input.getMetaData());
-                    resource.setAppArgument(input.getApplicationArgument());
-                    resource.setInputOrder(input.getInputOrder());
-                    resource.setRequired(input.isIsRequired());
-                    resource.setRequiredToCMD(input.isRequiredToAddedToCommandLine());
-                    resource.save();
-                }
-
-            }
-        } catch (Exception e) {
-            logger.error("Error while updating application inputs...", e);
-            throw new RegistryException(e);
-        }
-
+//        try {
+//            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
+//            WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
+//            TaskDetailResource taskDetail = workflowNode.getTaskDetail(taskId);
+//            List<ApplicationOutputResource> outputs = taskDetail.getApplicationOutputs();
+//            for (OutputDataObjectType output : appOutputs) {
+//                for (ApplicationOutputResource resource : outputs) {
+//                    resource.setTaskId(taskId);
+//                    resource.setOutputKey(output.getName());
+//                    resource.setValue(output.getValue());
+//                    if (output.getType() != null) {
+//                        resource.setDataType(output.getType().toString());
+//                    }
+//                    resource.setRequired(output.isIsRequired());
+//                    resource.setRequiredToCMD(output.isRequiredToAddedToCommandLine());
+//                    resource.setDataMovement(output.isDataMovement());
+//                    resource.setDataNameLocation(output.getLocation());
+//                    resource.setAppArgument(output.getApplicationArgument());
+//                    resource.setSearchQuery(output.getSearchQuery());
+////                    resource.setMetadata(output.getMetaData());
+//                    resource.save();
+//                }
+//            }
+//        } catch (Exception e) {
+//            logger.error("Error while updating application outputs...", e);
+//            throw new RegistryException(e);
+//        }
     }
 
     public String addJobDetails(JobModel jobDetails, CompositeIdentifier ids) throws RegistryException {
-        try {
-            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-            WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-            TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getTopLevelIdentifier());
-            JobDetailResource jobDetail = taskDetail.createJobDetail((String) ids.getSecondLevelIdentifier());
-            jobDetail.setTaskId(taskDetail.getTaskId());
-            jobDetail.setJobDescription(jobDetails.getJobDescription());
-            jobDetail.setCreationTime(AiravataUtils.getTime(jobDetails.getCreationTime()));
-            jobDetail.setComputeResourceConsumed(jobDetails.getComputeResourceConsumed());
-            jobDetail.setWorkingDir(jobDetails.getWorkingDir());
-            jobDetail.setJobName(jobDetails.getJobName());
-            jobDetail.save();
-            JobStatus jobStatus = jobDetails.getJobStatus();
-            if (jobStatus != null) {
-                JobStatus status = getJobStatus(ids);
-                if (status != null) {
-                    updateJobStatus(jobStatus, ids);
-                } else {
-                    addJobStatus(jobStatus, ids);
-                }
-            }
-            JobStatus applicationStatus = jobDetails.getJobStatus();
-            if (applicationStatus != null) {
-                JobStatus appStatus = getJobStatus(ids);
-                if (appStatus != null) {
-                    updateJobStatus(applicationStatus, ids);
-                } else {
-                    addJobStatus(applicationStatus, ids);
-                }
-            }
-//            List<ErrorModel> errors = jobDetails.getErrors();
-//            if (errors != null && !errors.isEmpty()) {
-//                for (ErrorDetails error : errors) {
-//                    addErrorDetails(error, ids.getSecondLevelIdentifier());
+//        try {
+//            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
+//            WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
+//            TaskDetailResource taskDetail = workflowNode.getTaskDetail((String) ids.getTopLevelIdentifier());
+//            JobDetailResource jobDetail = taskDetail.createJobDetail((String) ids.getSecondLevelIdentifier());
+//            jobDetail.setTaskId(taskDetail.getTaskId());
+//            jobDetail.setJobDescription(jobDetails.getJobDescription());
+//            jobDetail.setCreationTime(AiravataUtils.getTime(jobDetails.getCreationTime()));
+//            jobDetail.setComputeResourceConsumed(jobDetails.getComputeResourceConsumed());
+//            jobDetail.setWorkingDir(jobDetails.getWorkingDir());
+//            jobDetail.setJobName(jobDetails.getJobName());
+//            jobDetail.save();
+//            JobStatus jobStatus = jobDetails.getJobStatus();
+//            if (jobStatus != null) {
+//                JobStatus status = getJobStatus(ids);
+//                if (status != null) {
+//                    updateJobStatus(jobStatus, ids);
+//                } else {
+//                    addJobStatus(jobStatus, ids);
 //                }
 //            }
-            return jobDetail.getJobId();
-        } catch (Exception e) {
-            logger.error("Error while adding job details...", e);
-            throw new RegistryException(e);
-        }
+//            JobStatus applicationStatus = jobDetails.getJobStatus();
+//            if (applicationStatus != null) {
+//                JobStatus appStatus = getJobStatus(ids);
+//                if (appStatus != null) {
+//                    updateJobStatus(applicationStatus, ids);
+//                } else {
+//                    addJobStatus(applicationStatus, ids);
+//                }
+//            }
+////            List<ErrorModel> errors = jobDetails.getErrors();
+////            if (errors != null && !errors.isEmpty()) {
+////                for (ErrorDetails error : errors) {
+////                    addErrorDetails(error, ids.getSecondLevelIdentifier());
+////                }
+////            }
+//            return jobDetail.getJobId();
+//        } catch (Exception e) {
+//            logger.error("Error while adding job details...", e);
+//            throw new RegistryException(e);
+//        }
+        return  null;
     }
 
     // ids - taskId + jobid
     public void updateJobDetails(JobModel jobDetails, CompositeIdentifier ids) throws RegistryException {
-        try {
-            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-            WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-            String taskId = (String) ids.getTopLevelIdentifier();
-            TaskDetailResource taskDetail = workflowNode.getTaskDetail(taskId);
-            String jobId = (String) ids.getSecondLevelIdentifier();
-            JobDetailResource jobDetail = taskDetail.getJobDetail(jobId);
-            jobDetail.setTaskId(taskDetail.getTaskId());
-            jobDetail.setJobDescription(jobDetails.getJobDescription());
-            jobDetail.setCreationTime(AiravataUtils.getTime(jobDetails.getCreationTime()));
-            jobDetail.setComputeResourceConsumed(jobDetails.getComputeResourceConsumed());
-            jobDetail.setJobName(jobDetails.getJobName());
-            jobDetail.setWorkingDir(jobDetails.getWorkingDir());
-            jobDetail.save();
-            JobStatus jobStatus = jobDetails.getJobStatus();
-            if (jobStatus != null) {
-                JobStatus status = getJobStatus(ids);
-                if (status != null) {
-                    updateJobStatus(jobStatus, ids);
-                } else {
-                    addJobStatus(jobStatus, ids);
-                }
-            }
-            JobStatus applicationStatus = jobDetails.getJobStatus();
-            if (applicationStatus != null) {
-                JobStatus appStatus = getJobStatus(ids);
-                if (appStatus != null) {
-                    updateJobStatus(applicationStatus, ids);
-                } else {
-                    addJobStatus(applicationStatus, ids);
-                }
-            }
-//            List<ErrorDetails> errors = jobDetails.getErrors();
-//            if (errors != null && !errors.isEmpty()) {
-//                for (ErrorDetails error : errors) {
-//                    addErrorDetails(error, jobId);
+//        try {
+//            ExperimentResource experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
+//            WorkflowNodeDetailResource workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
+//            String taskId = (String) ids.getTopLevelIdentifier();
+//            TaskDetailResource taskDetail = workflowNode.getTaskDetail(taskId);
+//            String jobId = (String) ids.getSecondLevelIdentifier();
+//            JobDetailResource jobDetail = taskDetail.getJobDetail(jobId);
+//            jobDetail.setTaskId(taskDetail.getTaskId());
+//            jobDetail.setJobDescription(jobDetails.getJobDescription());
+//            jobDetail.setCreationTime(AiravataUtils.getTime(jobDetails.getCreationTime()));
+//            jobDetail.setComputeResourceConsumed(jobDetails.getComputeResourceConsumed());
+//            jobDetail.setJobName(jobDetails.getJobName());
+//            jobDetail.setWorkingDir(jobDetails.getWorkingDir());
+//            jobDetail.save();
+//            JobStatus jobStatus = jobDetails.getJobStatus();
+//            if (jobStatus != null) {
+//                JobStatus status = getJobStatus(ids);
+//                if (status != null) {
+//                    updateJobStatus(jobStatus, ids);
+//                } else {
+//                    addJobStatus(jobStatus, ids);
 //                }
 //            }
-        } catch (Exception e) {
-            logger.error("Error while updating job details...", e);
-            throw new RegistryException(e);
-        }
+//            JobStatus applicationStatus = jobDetails.getJobStatus();
+//            if (applicationStatus != null) {
+//                JobStatus appStatus = getJobStatus(ids);
+//                if (appStatus != null) {
+//                    updateJobStatus(applicationStatus, ids);
+//                } else {
+//                    addJobStatus(applicationStatus, ids);
+//                }
+//            }
+////            List<ErrorDetails> errors = jobDetails.getErrors();
+////            if (errors != null && !errors.isEmpty()) {
+////                for (ErrorDetails error : errors) {
+////                    addErrorDetails(error, jobId);
+////                }
+////            }
+//        } catch (Exception e) {
+//            logger.error("Error while updating job details...", e);
+//            throw new RegistryException(e);
+//        }
     }
 
 //    public String addDataTransferDetails(DataTransferDetails transferDetails, String taskId) throws RegistryException {
@@ -1351,29 +1242,30 @@ public class ExperimentRegistry {
      * @return scheduling id
      */
     public String addComputationalResourceScheduling(ComputationalResourceSchedulingModel scheduling, CompositeIdentifier ids) throws RegistryException {
-        try {
-            ExperimentResource experiment = gatewayResource.getExperiment((String) ids.getTopLevelIdentifier());
-            ComputationSchedulingResource schedulingResource = (ComputationSchedulingResource) experiment.create(ResourceType.COMPUTATIONAL_RESOURCE_SCHEDULING);
-            if (ids.getSecondLevelIdentifier() != null) {
-                WorkflowNodeDetailResource nodeDetailResource = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-                TaskDetailResource taskDetail = nodeDetailResource.getTaskDetail((String) ids.getSecondLevelIdentifier());
-                schedulingResource.setTaskId(taskDetail.getTaskId());
-            }
-            schedulingResource.setExperimentId(experiment.getExpID());
-            schedulingResource.setResourceHostId(scheduling.getResourceHostId());
-            schedulingResource.setCpuCount(scheduling.getTotalCPUCount());
-            schedulingResource.setNodeCount(scheduling.getNodeCount());
-            schedulingResource.setNumberOfThreads(scheduling.getNumberOfThreads());
-            schedulingResource.setQueueName(scheduling.getQueueName());
-            schedulingResource.setWalltimeLimit(scheduling.getWallTimeLimit());
-            schedulingResource.setPhysicalMemory(scheduling.getTotalPhysicalMemory());
-            schedulingResource.setChessisName(scheduling.getChessisNumber());
-            schedulingResource.save();
-            return String.valueOf(schedulingResource.getSchedulingId());
-        } catch (Exception e) {
-            logger.error("Error while adding scheduling parameters...", e);
-            throw new RegistryException(e);
-        }
+//        try {
+//            ExperimentResource experiment = gatewayResource.getExperiment((String) ids.getTopLevelIdentifier());
+//            ComputationSchedulingResource schedulingResource = (ComputationSchedulingResource) experiment.create(ResourceType.COMPUTATIONAL_RESOURCE_SCHEDULING);
+//            if (ids.getSecondLevelIdentifier() != null) {
+//                WorkflowNodeDetailResource nodeDetailResource = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
+//                TaskDetailResource taskDetail = nodeDetailResource.getTaskDetail((String) ids.getSecondLevelIdentifier());
+//                schedulingResource.setTaskId(taskDetail.getTaskId());
+//            }
+//            schedulingResource.setExperimentId(experiment.getExpID());
+//            schedulingResource.setResourceHostId(scheduling.getResourceHostId());
+//            schedulingResource.setCpuCount(scheduling.getTotalCPUCount());
+//            schedulingResource.setNodeCount(scheduling.getNodeCount());
+//            schedulingResource.setNumberOfThreads(scheduling.getNumberOfThreads());
+//            schedulingResource.setQueueName(scheduling.getQueueName());
+//            schedulingResource.setWalltimeLimit(scheduling.getWallTimeLimit());
+//            schedulingResource.setPhysicalMemory(scheduling.getTotalPhysicalMemory());
+//            schedulingResource.setChessisName(scheduling.getChessisNumber());
+//            schedulingResource.save();
+//            return String.valueOf(schedulingResource.getSchedulingId());
+//        } catch (Exception e) {
+//            logger.error("Error while adding scheduling parameters...", e);
+//            throw new RegistryException(e);
+//        }
+        return null;
     }
 
 //    /**
@@ -1451,87 +1343,87 @@ public class ExperimentRegistry {
 //    }
 
     public String addErrorDetails(ErrorModel error, Object id) throws RegistryException {
-        try {
-
-            ErrorDetailResource errorResource = null;
-            ExperimentResource experiment;
-            TaskDetailResource taskDetail;
-            WorkflowNodeDetailResource workflowNode;
-            // figure out the id is an experiment, node task or job
-            if (id instanceof String) {
-                // FIXME : for .12 we only save task related errors
-//                if (isExperimentExist((String) id)) {
-//                    experiment = gatewayResource.getExperiment((String) id);
-//                    errorResource = (ErrorDetailResource) experiment.create(ResourceType.ERROR_DETAIL);
-//                } else if (isWFNodeExist((String) id)) {
+//        try {
+//
+//            ErrorDetailResource errorResource = null;
+//            ExperimentResource experiment;
+//            TaskDetailResource taskDetail;
+//            WorkflowNodeDetailResource workflowNode;
+//            // figure out the id is an experiment, node task or job
+//            if (id instanceof String) {
+//                // FIXME : for .12 we only save task related errors
+////                if (isExperimentExist((String) id)) {
+////                    experiment = gatewayResource.getExperiment((String) id);
+////                    errorResource = (ErrorDetailResource) experiment.create(ResourceType.ERROR_DETAIL);
+////                } else if (isWFNodeExist((String) id)) {
+////                    experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
+////                    workflowNode = experiment.getWorkflowNode((String) id);
+////                    errorResource = (ErrorDetailResource) workflowNode.create(ResourceType.ERROR_DETAIL);
+////                    errorResource.setExperimentResource(workflowNode.getExperimentResource());
+////                } else
+//                if (isTaskDetailExist((String) id)) {
 //                    experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-//                    workflowNode = experiment.getWorkflowNode((String) id);
-//                    errorResource = (ErrorDetailResource) workflowNode.create(ResourceType.ERROR_DETAIL);
-//                    errorResource.setExperimentResource(workflowNode.getExperimentResource());
-//                } else
-                if (isTaskDetailExist((String) id)) {
-                    experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-                    workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-                    taskDetail = workflowNode.getTaskDetail((String) id);
-                    errorResource = (ErrorDetailResource) taskDetail.create(ResourceType.ERROR_DETAIL);
-                    if (error.getErrorId() != null && !error.getErrorId().equals(airavata_commonsConstants.DEFAULT_ID)) {
-                        List<ErrorDetailResource> errorDetailList = taskDetail.getErrorDetailList();
-                        if (errorDetailList != null && !errorDetailList.isEmpty()) {
-                            for (ErrorDetailResource errorDetailResource : errorDetailList) {
-                                if (errorDetailResource.getErrorId() == Integer.parseInt(error.getErrorId())) {
-                                    errorResource = errorDetailResource;
-                                }
-                            }
-                        }
-                    }
-                    errorResource.setTaskId(taskDetail.getTaskId());
-                    errorResource.setNodeId(taskDetail.getNodeId());
-                    workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
-                    errorResource.setExperimentId(workflowNode.getExperimentId());
-                } else {
-//                    logger.error("The id provided is not an experiment id or a workflow id or a task id..");
-                }
-            } else if (id instanceof CompositeIdentifier) {
-                CompositeIdentifier cid = (CompositeIdentifier) id;
-                if (isJobDetailExist(cid)) {
-                    experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
-                    workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
-                    taskDetail = workflowNode.getTaskDetail((String) cid.getTopLevelIdentifier());
-                    JobDetailResource jobDetail = taskDetail.getJobDetail((String) cid.getSecondLevelIdentifier());
-                    errorResource = (ErrorDetailResource) jobDetail.create(ResourceType.ERROR_DETAIL);
-                    if (error.getErrorId() != null && !error.getErrorId().equals(airavata_commonsConstants.DEFAULT_ID)) {
-                        List<ErrorDetailResource> errorDetailList = taskDetail.getErrorDetailList();
-                        if (errorDetailList != null && !errorDetailList.isEmpty()) {
-                            for (ErrorDetailResource errorDetailResource : errorDetailList) {
-                                if (errorDetailResource.getErrorId() == Integer.parseInt(error.getErrorId())) {
-                                    errorResource = errorDetailResource;
-                                }
-                            }
-                        }
-                    }
-                    errorResource.setTaskId(taskDetail.getTaskId());
-                    errorResource.setNodeId(taskDetail.getNodeId());
-                    workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
-                    errorResource.setExperimentId(workflowNode.getExperimentId());
-                } else {
-                    logger.error("The id provided is not a job in the system..");
-                }
-            } else {
-//                logger.error("The id provided is not an experiment id or a workflow id or a task id or a composite " +
-//                        "identifier for job..");
-            }
-            if (errorResource != null) {
-                errorResource.setCreationTime(AiravataUtils.getTime(error.getCreationTime()));
-                errorResource.setActualErrorMsg(error.getActualErrorMessage());
-                errorResource.setUserFriendlyErrorMsg(error.getUserFriendlyMessage());
-                errorResource.setTransientPersistent(error.isTransientOrPersistent());
-                errorResource.save();
-                return String.valueOf(errorResource.getErrorId());
-            }
-        } catch (Exception e) {
-            logger.error("Unable to add error details...", e);
-            throw new RegistryException(e);
-        }
+//                    workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
+//                    taskDetail = workflowNode.getTaskDetail((String) id);
+//                    errorResource = (ErrorDetailResource) taskDetail.create(ResourceType.ERROR_DETAIL);
+//                    if (error.getErrorId() != null && !error.getErrorId().equals(airavata_commonsConstants.DEFAULT_ID)) {
+//                        List<ErrorDetailResource> errorDetailList = taskDetail.getErrorDetailList();
+//                        if (errorDetailList != null && !errorDetailList.isEmpty()) {
+//                            for (ErrorDetailResource errorDetailResource : errorDetailList) {
+//                                if (errorDetailResource.getErrorId() == Integer.parseInt(error.getErrorId())) {
+//                                    errorResource = errorDetailResource;
+//                                }
+//                            }
+//                        }
+//                    }
+//                    errorResource.setTaskId(taskDetail.getTaskId());
+//                    errorResource.setNodeId(taskDetail.getNodeId());
+//                    workflowNode = experiment.getWorkflowNode(taskDetail.getNodeId());
+//                    errorResource.setExperimentId(workflowNode.getExperimentId());
+//                } else {
+////                    logger.error("The id provided is not an experiment id or a workflow id or a task id..");
+//                }
+//            } else if (id instanceof CompositeIdentifier) {
+//                CompositeIdentifier cid = (CompositeIdentifier) id;
+//                if (isJobDetailExist(cid)) {
+//                    experiment = (ExperimentResource) gatewayResource.create(ResourceType.EXPERIMENT);
+//                    workflowNode = (WorkflowNodeDetailResource) experiment.create(ResourceType.WORKFLOW_NODE_DETAIL);
+//                    taskDetail = workflowNode.getTaskDetail((String) cid.getTopLevelIdentifier());
+//                    JobDetailResource jobDetail = taskDetail.getJobDetail((String) cid.getSecondLevelIdentifier());
+//                    errorResource = (ErrorDetailResource) jobDetail.create(ResourceType.ERROR_DETAIL);
+//                    if (error.getErrorId() != null && !error.getErrorId().equals(airavata_commonsConstants.DEFAULT_ID)) {
+//                        List<ErrorDetailResource> errorDetailList = taskDetail.getErrorDetailList();
+//                        if (errorDetailList != null && !errorDetailList.isEmpty()) {
+//                            for (ErrorDetailResource errorDetailResource : errorDetailList) {
+//                                if (errorDetailResource.getErrorId() == Integer.parseInt(error.getErrorId())) {
+//                                    errorResource = errorDetailResource;
+//                                }
+//                            }
+//                        }
+//                    }
+//        

<TRUNCATED>