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:01:54 UTC

[03/11] airavata git commit: modifying the data models to contain all the statuses and errors

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/TaskErrorPK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/TaskErrorPK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/TaskErrorPK.java
new file mode 100644
index 0000000..ad55046
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/TaskErrorPK.java
@@ -0,0 +1,74 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.experiment.catalog.model;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+public class TaskErrorPK implements Serializable {
+    private final static Logger logger = LoggerFactory.getLogger(TaskErrorPK.class);
+    private String errorId;
+    private String taskId;
+
+    @Column(name = "ERROR_ID")
+    @Id
+    public String getErrorId() {
+        return errorId;
+    }
+
+    public void setErrorId(String errorId) {
+        this.errorId = errorId;
+    }
+
+    @Column(name = "TASK_ID")
+    @Id
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TaskErrorPK that = (TaskErrorPK) o;
+
+        if (errorId != null ? !errorId.equals(that.errorId) : that.errorId != null) return false;
+        if (taskId != null ? !taskId.equals(that.taskId) : that.taskId != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = errorId != null ? errorId.hashCode() : 0;
+        result = 31 * result + (taskId != null ? taskId.hashCode() : 0);
+        return result;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/TaskStatus.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/TaskStatus.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/TaskStatus.java
index 020fe1b..8b7da25 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/TaskStatus.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/TaskStatus.java
@@ -28,8 +28,10 @@ import java.sql.Timestamp;
 
 @Entity
 @Table(name = "TASK_STATUS")
+@IdClass(TaskStatusPK.class)
 public class TaskStatus {
     private final static Logger logger = LoggerFactory.getLogger(TaskStatus.class);
+    private String statusId;
     private String taskId;
     private String state;
     private Timestamp timeOfStateChange;
@@ -37,6 +39,16 @@ public class TaskStatus {
     private Task task;
 
     @Id
+    @Column(name = "STATUS_ID")
+    public String getStatusId() {
+        return statusId;
+    }
+
+    public void setStatusId(String statusId) {
+        this.statusId = statusId;
+    }
+
+    @Id
     @Column(name = "TASK_ID")
     public String getTaskId() {
         return taskId;
@@ -82,7 +94,7 @@ public class TaskStatus {
         if (o == null || getClass() != o.getClass()) return false;
 
         TaskStatus that = (TaskStatus) o;
-
+        if (statusId != null ? !statusId.equals(that.statusId) : that.statusId != null) return false;
         if (reason != null ? !reason.equals(that.reason) : that.reason != null) return false;
         if (state != null ? !state.equals(that.state) : that.state != null) return false;
         if (taskId != null ? !taskId.equals(that.taskId) : that.taskId != null) return false;
@@ -94,14 +106,15 @@ public class TaskStatus {
 
     @Override
     public int hashCode() {
-        int result = taskId != null ? taskId.hashCode() : 0;
+        int result = statusId != null ? statusId.hashCode() : 0;
+        result = 31 * result + (taskId != null ? taskId.hashCode() : 0);
         result = 31 * result + (state != null ? state.hashCode() : 0);
         result = 31 * result + (timeOfStateChange != null ? timeOfStateChange.hashCode() : 0);
         result = 31 * result + (reason != null ? reason.hashCode() : 0);
         return result;
     }
 
-    @OneToOne
+    @ManyToOne
     @JoinColumn(name = "TASK_ID", referencedColumnName = "TASK_ID", nullable = false)
     public Task getTask() {
         return task;

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/TaskStatusPK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/TaskStatusPK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/TaskStatusPK.java
new file mode 100644
index 0000000..3855294
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/TaskStatusPK.java
@@ -0,0 +1,74 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.experiment.catalog.model;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+public class TaskStatusPK implements Serializable {
+    private final static Logger logger = LoggerFactory.getLogger(TaskStatusPK.class);
+    private String statusId;
+    private String taskId;
+
+    @Column(name = "STATUS_ID")
+    @Id
+    public String getStatusId() {
+        return statusId;
+    }
+
+    public void setStatusId(String statusId) {
+        this.statusId = statusId;
+    }
+
+    @Column(name = "TASK_ID")
+    @Id
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        TaskStatusPK that = (TaskStatusPK) o;
+
+        if (statusId != null ? !statusId.equals(that.statusId) : that.statusId != null) return false;
+        if (taskId != null ? !taskId.equals(that.taskId) : that.taskId != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = statusId != null ? statusId.hashCode() : 0;
+        result = 31 * result + (taskId != null ? taskId.hashCode() : 0);
+        return result;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/UserConfigurationData.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/UserConfigurationData.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/UserConfigurationData.java
index 9c47b5a..18c7335 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/UserConfigurationData.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/UserConfigurationData.java
@@ -35,7 +35,7 @@ public class UserConfigurationData {
     private Boolean shareExperimentPublically;
     private Boolean throttleResources;
     private String userDn;
-    private Byte generateCert;
+    private Boolean generateCert;
     private String resourceHostId;
     private Integer totalCpuCount;
     private Integer nodeCount;
@@ -107,11 +107,11 @@ public class UserConfigurationData {
 
     @Basic
     @Column(name = "GENERATE_CERT")
-    public Byte getGenerateCert() {
+    public Boolean getGenerateCert() {
         return generateCert;
     }
 
-    public void setGenerateCert(Byte generateCert) {
+    public void setGenerateCert(Boolean generateCert) {
         this.generateCert = generateCert;
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
index d250aa7..875240c 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
@@ -105,6 +105,7 @@ public abstract class AbstractExpCatResource implements ExperimentCatResource {
 
     // Task Error table
     public final class TaskErrorConstants {
+        public static final String ERROR_ID = "errorId";
         public static final String TASK_ID = "taskId";
         public static final String CREATION_TIME = "creationTime";
         public static final String ACTUAL_ERROR_MESSAGE = "actualErrorMsg";
@@ -115,6 +116,7 @@ public abstract class AbstractExpCatResource implements ExperimentCatResource {
 
     //Process Error table
     public final class ProcessErrorConstants {
+        public static final String ERROR_ID = "errorId";
         public static final String PROCESS_ID = "processId";
         public static final String CREATION_TIME = "creationTime";
         public static final String ACTUAL_ERROR_MESSAGE = "actualErrorMsg";
@@ -135,9 +137,8 @@ public abstract class AbstractExpCatResource implements ExperimentCatResource {
 
     //Process Input Table
     public final class ProcessInputConstants {
-        public static final String PROCESS_INPUT_ID = "processInputId";
         public static final String PROCESS_ID = "processId";
-        public static final String INPUT_KEY = "inputKey";
+        public static final String INPUT_NAME = "inputName";
         public static final String INPUT_VALUE = "inputValue";
         public static final String DATA_TYPE = "dataType";
         public static final String APPLICATION_ARGUMENT = "applicationArgument";
@@ -152,8 +153,9 @@ public abstract class AbstractExpCatResource implements ExperimentCatResource {
 
     //Process Output Table
     public final class ProcessOutputConstants {
-        public static final String PROCESS_OUTPUT_ID = "processOutputId";
         public static final String PROCESS_ID = "processId";
+        public static final String OUTPUT_NAME = "outputName";
+        public static final String OUTPUT_VALUE = "outputValue";
         public static final String DATA_TYPE = "dataType";
         public static final String APPLICATION_ARGUMENT = "applicationArgument";
         public static final String IS_REQUIRED = "isRequired";
@@ -165,9 +167,8 @@ public abstract class AbstractExpCatResource implements ExperimentCatResource {
 
     //Experiment Input Table
     public final class ExperimentInputConstants {
-        public static final String EXPERIMENT_INPUT_ID = "experimentInputId";
         public static final String EXPERIMENT_ID = "experimentId";
-        public static final String INPUT_KEY = "inputKey";
+        public static final String INPUT_NAME = "inputName";
         public static final String INPUT_VALUE = "inputValue";
         public static final String DATA_TYPE = "dataType";
         public static final String APPLICATION_ARGUMENT = "applicationArgument";
@@ -182,8 +183,9 @@ public abstract class AbstractExpCatResource implements ExperimentCatResource {
 
     //Experiment Output Table
     public final class ExperimentOutputConstants {
-        public static final String EXPERIMENT_OUTPUT_ID = "experimentOutputId";
         public static final String EXPERIMENT_ID = "experimentId";
+        public static final String OUTPUT_NAME = "outputName";
+        public static final String OUTPUT_VALUE = "outputValue";
         public static final String DATA_TYPE = "dataType";
         public static final String APPLICATION_ARGUMENT = "applicationArgument";
         public static final String IS_REQUIRED = "isRequired";

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentErrorResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentErrorResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentErrorResource.java
index 23a6055..b07bd82 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentErrorResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentErrorResource.java
@@ -35,6 +35,7 @@ import java.util.List;
 
 public class ExperimentErrorResource extends AbstractExpCatResource {
     private static final Logger logger = LoggerFactory.getLogger(ExperimentErrorResource.class);
+    private String errorId;
     private String experimentId;
     private Timestamp creationTime;
     private String actualErrorMessage;
@@ -42,6 +43,14 @@ public class ExperimentErrorResource extends AbstractExpCatResource {
     private Boolean transientOrPersistent;
     private String rootCauseErrorIdList;
 
+    public String getErrorId() {
+        return errorId;
+    }
+
+    public void setErrorId(String errorId) {
+        this.errorId = errorId;
+    }
+
     public String getExperimentId() {
         return experimentId;
     }
@@ -127,6 +136,7 @@ public class ExperimentErrorResource extends AbstractExpCatResource {
             if(experimentError == null){
                 experimentError = new ExperimentError();
             }
+            experimentError.setErrorId(errorId);
             experimentError.setExperimentId(experimentId);
             experimentError.setActualErrorMessage(actualErrorMessage);
             experimentError.setUserFriendlyMessage(userFriendlyMessage);
@@ -147,4 +157,4 @@ public class ExperimentErrorResource extends AbstractExpCatResource {
             }
         }
     }
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentOutputResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentOutputResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentOutputResource.java
index 9a8124e..974baaf 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentOutputResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentOutputResource.java
@@ -25,6 +25,7 @@ import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
 import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
 import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
 import org.apache.airavata.registry.core.experiment.catalog.model.ExperimentOutput;
+import org.apache.airavata.registry.core.experiment.catalog.model.ExperimentOutputPK;
 import org.apache.airavata.registry.cpi.RegistryException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -34,8 +35,9 @@ import java.util.List;
 
 public class ExperimentOutputResource extends AbstractExpCatResource {
     private static final Logger logger = LoggerFactory.getLogger(ExperimentOutputResource.class);
-    private int experimentOutputId;
     private String experimentId;
+    private String outputName;
+    private String outputValue;
     private String dataType;
     private String applicationArgument;
     private Boolean isRequired;
@@ -44,14 +46,6 @@ public class ExperimentOutputResource extends AbstractExpCatResource {
     private String location;
     private String searchQuery;
 
-    public int getExperimentOutputId() {
-        return experimentOutputId;
-    }
-
-    public void setExperimentOutputId(int experimentOutputId) {
-        this.experimentOutputId = experimentOutputId;
-    }
-
     public String getExperimentId() {
         return experimentId;
     }
@@ -60,6 +54,22 @@ public class ExperimentOutputResource extends AbstractExpCatResource {
         this.experimentId = experimentId;
     }
 
+    public String getOutputName() {
+        return outputName;
+    }
+
+    public void setOutputName(String outputName) {
+        this.outputName = outputName;
+    }
+
+    public String getOutputValue() {
+        return outputValue;
+    }
+
+    public void setOutputValue(String outputValue) {
+        this.outputValue = outputValue;
+    }
+
     public String getDataType() {
         return dataType;
     }
@@ -149,12 +159,16 @@ public class ExperimentOutputResource extends AbstractExpCatResource {
                 throw new RegistryException("Does not have the experiment id");
             }
             ExperimentOutput experimentOutput;
-            experimentOutput = em.find(ExperimentOutput.class, experimentOutputId);
+            ExperimentOutputPK experimentOutputPK = new ExperimentOutputPK();
+            experimentOutputPK.setExperimentId(experimentId);
+            experimentOutputPK.setOutputName(outputName);
+            experimentOutput = em.find(ExperimentOutput.class, experimentOutputPK);
             if(experimentOutput == null){
                 experimentOutput = new ExperimentOutput();
             }
-            experimentOutput.setExperimentOutputId(experimentOutputId);
             experimentOutput.setExperimentId(experimentId);
+            experimentOutput.setOutputName(outputName);
+            experimentOutput.setOutputValue(outputValue);
             experimentOutput.setDataType(dataType);
             experimentOutput.setApplicationArgument(applicationArgument);
             experimentOutput.setIsRequired(isRequired);
@@ -165,7 +179,6 @@ public class ExperimentOutputResource extends AbstractExpCatResource {
             em.persist(experimentOutput);
             em.getTransaction().commit();
             em.close();
-            this.experimentOutputId = experimentOutput.getExperimentOutputId();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
index 9aa35f2..8ca7c05 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
@@ -203,13 +203,15 @@ public class ExperimentResource extends AbstractExpCatResource {
                     break;
                 case EXPERIMENT_INPUT:
                     generator = new QueryGenerator(EXPERIMENT_INPUT);
-                    generator.setParameter(ExperimentInputConstants.EXPERIMENT_INPUT_ID, name);
+                    generator.setParameter(ExperimentInputConstants.INPUT_NAME, name);
+                    generator.setParameter(ExperimentInputConstants.EXPERIMENT_ID, experimentId);
                     q = generator.deleteQuery(em);
                     q.executeUpdate();
                     break;
                 case EXPERIMENT_OUTPUT:
                     generator = new QueryGenerator(EXPERIMENT_OUTPUT);
-                    generator.setParameter(ExperimentOutputConstants.EXPERIMENT_OUTPUT_ID, name);
+                    generator.setParameter(ExperimentOutputConstants.OUTPUT_NAME, name);
+                    generator.setParameter(ExperimentOutputConstants.EXPERIMENT_ID, experimentId);
                     q = generator.deleteQuery(em);
                     q.executeUpdate();
                     break;
@@ -274,7 +276,7 @@ public class ExperimentResource extends AbstractExpCatResource {
                     return processErrorResource;
                 case EXPERIMENT_INPUT:
                     generator = new QueryGenerator(EXPERIMENT_INPUT);
-                    generator.setParameter(ExperimentInputConstants.EXPERIMENT_INPUT_ID, name);
+                    generator.setParameter(ExperimentInputConstants.INPUT_NAME, name);
                     generator.setParameter(ExperimentInputConstants.EXPERIMENT_ID, experimentId);
                     q = generator.selectQuery(em);
                     ExperimentInput experimentInput = (ExperimentInput) q.getSingleResult();
@@ -284,7 +286,7 @@ public class ExperimentResource extends AbstractExpCatResource {
                     return experimentInputResource;
                 case EXPERIMENT_OUTPUT:
                     generator = new QueryGenerator(EXPERIMENT_OUTPUT);
-                    generator.setParameter(ExperimentOutputConstants.EXPERIMENT_OUTPUT_ID, name);
+                    generator.setParameter(ExperimentOutputConstants.OUTPUT_NAME, name);
                     generator.setParameter(ExperimentInputConstants.EXPERIMENT_ID, experimentId);
                     q = generator.selectQuery(em);
                     ExperimentOutput experimentOutput = (ExperimentOutput) q.getSingleResult();

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessErrorResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessErrorResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessErrorResource.java
index 2f1f6de..343b6e4 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessErrorResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessErrorResource.java
@@ -35,6 +35,7 @@ import java.util.List;
 
 public class ProcessErrorResource extends AbstractExpCatResource {
     private static final Logger logger = LoggerFactory.getLogger(ProcessErrorResource.class);
+    private String errorId;
     private String processId;
     private Timestamp creationTime;
     private String actualErrorMessage;
@@ -42,6 +43,14 @@ public class ProcessErrorResource extends AbstractExpCatResource {
     private Boolean transientOrPersistent;
     private String rootCauseErrorIdList;
 
+    public String getErrorId() {
+        return errorId;
+    }
+
+    public void setErrorId(String errorId) {
+        this.errorId = errorId;
+    }
+
     public String getProcessId() {
         return processId;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessInputResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessInputResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessInputResource.java
index 521284a..6da7297 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessInputResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessInputResource.java
@@ -189,7 +189,6 @@ public class ProcessInputResource extends AbstractExpCatResource {
             if(processInput == null){
                 processInput = new ProcessInput();
             }
-            processInput.setProcessInputId(processInputId);
             processInput.setProcessId(processId);
             processInput.setInputName(inputName);
             processInput.setInputValue(inputValue);
@@ -205,7 +204,6 @@ public class ProcessInputResource extends AbstractExpCatResource {
             em.persist(processInput);
             em.getTransaction().commit();
             em.close();
-            this.processInputId = processInput.getProcessInputId();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessOutputResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessOutputResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessOutputResource.java
index 1d496d9..f1ec1f0 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessOutputResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessOutputResource.java
@@ -25,6 +25,7 @@ import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
 import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
 import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
 import org.apache.airavata.registry.core.experiment.catalog.model.ProcessOutput;
+import org.apache.airavata.registry.core.experiment.catalog.model.ProcessOutputPK;
 import org.apache.airavata.registry.cpi.RegistryException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -34,8 +35,9 @@ import java.util.List;
 
 public class ProcessOutputResource extends AbstractExpCatResource {
     private static final Logger logger = LoggerFactory.getLogger(ProcessOutputResource.class);
-    private int processOutputId;
     private String processId;
+    private String outputName;
+    private String outputValue;
     private String dataType;
     private String applicationArgument;
     private Boolean isRequired;
@@ -44,14 +46,6 @@ public class ProcessOutputResource extends AbstractExpCatResource {
     private String location;
     private String searchQuery;
 
-    public int getProcessOutputId() {
-        return processOutputId;
-    }
-
-    public void setProcessOutputId(int processOutputId) {
-        this.processOutputId = processOutputId;
-    }
-
     public String getProcessId() {
         return processId;
     }
@@ -60,6 +54,22 @@ public class ProcessOutputResource extends AbstractExpCatResource {
         this.processId = processId;
     }
 
+    public String getOutputName() {
+        return outputName;
+    }
+
+    public void setOutputName(String outputName) {
+        this.outputName = outputName;
+    }
+
+    public String getOutputValue() {
+        return outputValue;
+    }
+
+    public void setOutputValue(String outputValue) {
+        this.outputValue = outputValue;
+    }
+
     public String getDataType() {
         return dataType;
     }
@@ -149,12 +159,16 @@ public class ProcessOutputResource extends AbstractExpCatResource {
                 throw new RegistryException("Does not have the process id");
             }
             ProcessOutput processOutput;
-            processOutput = em.find(ProcessOutput.class, processOutputId);
+            ProcessOutputPK processOutputPK = new ProcessOutputPK();
+            processOutputPK.setProcessId(processId);
+            processOutputPK.setOutputName(outputName);
+            processOutput = em.find(ProcessOutput.class, processOutputPK);
             if(processOutput == null){
                 processOutput = new ProcessOutput();
             }
-            processOutput.setProcessOutputId(processOutputId);
             processOutput.setProcessId(processId);
+            processOutput.setOutputName(outputName);
+            processOutput.setOutputValue(outputValue);
             processOutput.setDataType(dataType);
             processOutput.setApplicationArgument(applicationArgument);
             processOutput.setIsRequired(isRequired);
@@ -165,7 +179,6 @@ public class ProcessOutputResource extends AbstractExpCatResource {
             em.persist(processOutput);
             em.getTransaction().commit();
             em.close();
-            this.processOutputId = processOutput.getProcessOutputId();
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             throw new RegistryException(e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
index 99a3405..6faed3c 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
@@ -158,13 +158,15 @@ public class ProcessResource extends AbstractExpCatResource {
                     break;
                 case PROCESS_INPUT:
                     generator = new QueryGenerator(PROCESS_INPUT);
-                    generator.setParameter(ProcessInputConstants.PROCESS_INPUT_ID, name);
+                    generator.setParameter(ProcessInputConstants.INPUT_NAME, name);
+                    generator.setParameter(ProcessInputConstants.PROCESS_ID, processId);
                     q = generator.deleteQuery(em);
                     q.executeUpdate();
                     break;
                 case PROCESS_OUTPUT:
                     generator = new QueryGenerator(PROCESS_OUTPUT);
-                    generator.setParameter(ProcessOutputConstants.PROCESS_OUTPUT_ID, name);
+                    generator.setParameter(ProcessOutputConstants.OUTPUT_NAME, name);
+                    generator.setParameter(ProcessOutputConstants.PROCESS_ID, processId);
                     q = generator.deleteQuery(em);
                     q.executeUpdate();
                     break;
@@ -229,7 +231,7 @@ public class ProcessResource extends AbstractExpCatResource {
                     return processErrorResource;
                 case PROCESS_INPUT:
                     generator = new QueryGenerator(PROCESS_INPUT);
-                    generator.setParameter(ProcessInputConstants.PROCESS_INPUT_ID, name);
+                    generator.setParameter(ProcessInputConstants.INPUT_NAME, name);
                     generator.setParameter(ProcessInputConstants.PROCESS_ID, processId);
                     q = generator.selectQuery(em);
                     ProcessInput processInput = (ProcessInput) q.getSingleResult();
@@ -239,7 +241,7 @@ public class ProcessResource extends AbstractExpCatResource {
                     return processInputResource;
                 case PROCESS_OUTPUT:
                     generator = new QueryGenerator(PROCESS_OUTPUT);
-                    generator.setParameter(ProcessOutputConstants.PROCESS_OUTPUT_ID, name);
+                    generator.setParameter(ProcessOutputConstants.OUTPUT_NAME, name);
                     generator.setParameter(ProcessInputConstants.PROCESS_ID, processId);
                     q = generator.selectQuery(em);
                     ProcessOutput processOutput = (ProcessOutput) q.getSingleResult();

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProjectUserResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProjectUserResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProjectUserResource.java
index 0bd74e8..433b62e 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProjectUserResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProjectUserResource.java
@@ -25,7 +25,7 @@ import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
 import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
 import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
 import org.apache.airavata.registry.core.experiment.catalog.model.ProjectUser;
-import org.apache.airavata.registry.core.experiment.catalog.model.ProjectUsersPK;
+import org.apache.airavata.registry.core.experiment.catalog.model.ProjectUserPK;
 import org.apache.airavata.registry.core.experiment.catalog.model.Project;
 import org.apache.airavata.registry.core.experiment.catalog.model.User;
 import org.apache.airavata.registry.cpi.RegistryException;
@@ -86,10 +86,10 @@ public class ProjectUserResource extends AbstractExpCatResource {
         EntityManager em = null;
         try {
             em = ExpCatResourceUtils.getEntityManager();
-            ProjectUsersPK projectUsersPK = new ProjectUsersPK();
-            projectUsersPK.setProjectId(projectId);
-            projectUsersPK.setUserName(userName);
-            ProjectUser existingPrUser = em.find(ProjectUser.class, projectUsersPK);
+            ProjectUserPK projectUserPK = new ProjectUserPK();
+            projectUserPK.setProjectId(projectId);
+            projectUserPK.setUserName(userName);
+            ProjectUser existingPrUser = em.find(ProjectUser.class, projectUserPK);
             em.close();
 
             em = ExpCatResourceUtils.getEntityManager();

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskErrorResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskErrorResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskErrorResource.java
index 1384192..b57a348 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskErrorResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskErrorResource.java
@@ -35,6 +35,7 @@ import java.util.List;
 
 public class TaskErrorResource extends AbstractExpCatResource {
     private static final Logger logger = LoggerFactory.getLogger(TaskErrorResource.class);
+    private String errorId;
     private String taskId;
     private Timestamp creationTime;
     private String actualErrorMessage;
@@ -42,6 +43,14 @@ public class TaskErrorResource extends AbstractExpCatResource {
     private Boolean transientOrPersistent;
     private String rootCauseErrorIdList;
 
+    public String getErrorId() {
+        return errorId;
+    }
+
+    public void setErrorId(String errorId) {
+        this.errorId = errorId;
+    }
+
     public String getTaskId() {
         return taskId;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskResource.java
index 702f5eb..01a0a9c 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskResource.java
@@ -179,7 +179,7 @@ public class TaskResource extends AbstractExpCatResource {
                     return statusResource;
                 case TASK_ERROR:
                     generator = new QueryGenerator(TASK_ERROR);
-                    generator.setParameter(TaskErrorConstants.TASK_ID, name);
+                    generator.setParameter(TaskErrorConstants.ERROR_ID, name);
                     q = generator.selectQuery(em);
                     TaskError error = (TaskError) q.getSingleResult();
                     TaskErrorResource errorResource = (TaskErrorResource) Utils.getResource(

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/UserConfigurationDataResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/UserConfigurationDataResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/UserConfigurationDataResource.java
index ad4c84b..da90c4a 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/UserConfigurationDataResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/UserConfigurationDataResource.java
@@ -40,7 +40,7 @@ public class UserConfigurationDataResource extends AbstractExpCatResource {
     private Boolean shareExperimentPublically;
     private Boolean throttleResources;
     private String userDn;
-    private Byte generateCert;
+    private Boolean generateCert;
     private String resourceHostId;
     private Integer totalCpuCount;
     private Integer nodeCount;
@@ -153,11 +153,11 @@ public class UserConfigurationDataResource extends AbstractExpCatResource {
         this.userDn = userDn;
     }
 
-    public Byte getGenerateCert() {
+    public Boolean getGenerateCert() {
         return generateCert;
     }
 
-    public void setGenerateCert(Byte generateCert) {
+    public void setGenerateCert(Boolean generateCert) {
         this.generateCert = generateCert;
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/3a003666/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
index 6ee8ab6..edec50f 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
@@ -21,28 +21,28 @@
 
 package org.apache.airavata.registry.core.experiment.catalog.utils;
 
-import org.apache.airavata.common.utils.AiravataUtils;
 import org.apache.airavata.model.application.io.DataType;
 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.job.JobModel;
+import org.apache.airavata.model.experiment.ExperimentModel;
+import org.apache.airavata.model.experiment.ExperimentSummaryModel;
+import org.apache.airavata.model.experiment.UserConfigurationDataModel;
 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.task.TaskModel;
+import org.apache.airavata.model.task.TaskTypes;
 import org.apache.airavata.model.workspace.Gateway;
 import org.apache.airavata.model.workspace.Project;
-import org.apache.airavata.model.experiment.*;
 import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
-import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
 import org.apache.airavata.registry.core.experiment.catalog.resources.*;
-import org.apache.airavata.registry.core.experiment.catalog.resources.ProjectUserResource;
 import org.apache.airavata.registry.cpi.RegistryException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 public class ThriftDataModelConversion {
@@ -88,113 +88,91 @@ public class ThriftDataModelConversion {
         return gateways;
     }
 
+    public static ExperimentSummaryModel getExperimentSummary(ExperimentSummaryResource experimentSummaryResource) throws RegistryException {
+        if (experimentSummaryResource != null){
+            ExperimentSummaryModel experimentSummary = new ExperimentSummaryModel();
+            experimentSummary.setProjectId(experimentSummaryResource.getProjectId());
+            experimentSummary.setExperimentId(experimentSummaryResource.getExperimentId());
+            experimentSummary.setCreationTime(experimentSummaryResource.getCreationTime().getTime());
+            experimentSummary.setUserName(experimentSummaryResource.getUserName());
+            experimentSummary.setName(experimentSummaryResource.getExperimentName());
+            experimentSummary.setDescription(experimentSummaryResource.getDescription());
+            experimentSummary.setApplicationId(experimentSummaryResource.getApplicationId());
+            //Todo state and state update time
+            return experimentSummary;
+        }
+        return null;
+    }
+
 
     public static ExperimentModel getExperiment(ExperimentResource experimentResource) throws RegistryException {
         if (experimentResource != null){
             ExperimentModel experiment = new ExperimentModel();
             experiment.setProjectId(experimentResource.getProjectId());
-            experiment.setExperimentId(experimentResource.getExpID());
+            experiment.setExperimentId(experimentResource.getExperimentId());
             experiment.setCreationTime(experimentResource.getCreationTime().getTime());
-            experiment.setUserName(experimentResource.getExecutionUser());
-            experiment.setExperimentName(experimentResource.getExpName());
+            experiment.setUserName(experimentResource.getUserName());
+            experiment.setExperimentName(experimentResource.getExperimentName());
             experiment.setDescription(experimentResource.getDescription());
             experiment.setExecutionId(experimentResource.getApplicationId());
-            experiment.setEnableEmailNotification(experimentResource.isEnableEmailNotifications());
+            experiment.setEnableEmailNotification(experimentResource.getEnableEmailNotification());
             experiment.setGatewayExecutionId(experimentResource.getGatewayExecutionId());
             if (experiment.isEnableEmailNotification()){
-                List<NotificationEmailResource> notificationEmails = experimentResource.getNotificationEmails();
-                experiment.setEmailAddresses(getEmailAddresses(notificationEmails));
+                String notificationEmails = experimentResource.getEmailAddresses();
+                experiment.setEmailAddresses(getEmailAddresses(notificationEmails.split(",")));
             }
             List<ExperimentInputResource> experimentInputs = experimentResource.getExperimentInputs();
             experiment.setExperimentInputs(getExpInputs(experimentInputs));
             List<ExperimentOutputResource> experimentOutputs = experimentResource.getExperimentOutputs();
             experiment.setExperimentOutputs(getExpOutputs(experimentOutputs));
-            StatusResource experimentStatus = experimentResource.getExperimentStatus();
+            ExperimentStatusResource experimentStatus = experimentResource.getExperimentStatus();
             if (experimentStatus != null){
                 experiment.setExperimentStatus(getExperimentStatus(experimentStatus));
             }
-            List<ErrorDetailResource> errorDetails = experimentResource.getErrorDetails();
+            List<ExperimentErrorResource> errorDetails = experimentResource.getExperimentErrors();
             if (errorDetails!= null && !errorDetails.isEmpty()){
-                experiment.setErrors(getErrorDetailList(errorDetails));
+                experiment.setErrors(getExperimentErrorList(errorDetails));
             }
-            if (experimentResource.isExists(ResourceType.CONFIG_DATA, experimentResource.getExpID())){
-                ConfigDataResource userConfigData = experimentResource.getUserConfigData(experimentResource.getExpID());
-                experiment.setUserConfigurationData(getUserConfigData(userConfigData));
+            UserConfigurationDataResource userConfigurationDataResource
+                    = experimentResource.getUserConfigurationDataResource();
+            if(userConfigurationDataResource != null){
+                experiment.setUserConfigurationData(getUserConfigData(userConfigurationDataResource));
             }
             return experiment;
         }
         return null;
     }
 
-    public static ExperimentSummaryModel getExperimentSummary(ExperimentSummaryResource experimentSummaryResource) throws RegistryException {
-        if (experimentSummaryResource != null){
-            ExperimentSummaryModel experimentSummary = new ExperimentSummaryModel();
-            experimentSummary.setProjectId(experimentSummaryResource.getProjectID());
-            experimentSummary.setExperimentId(experimentSummaryResource.getExpID());
-            experimentSummary.setCreationTime(experimentSummaryResource.getCreationTime().getTime());
-            experimentSummary.setUserName(experimentSummaryResource.getExecutionUser());
-            experimentSummary.setName(experimentSummaryResource.getExpName());
-            experimentSummary.setDescription(experimentSummaryResource.getDescription());
-            experimentSummary.setApplicationId(experimentSummaryResource.getApplicationId());
-            StatusResource experimentStatus = experimentSummaryResource.getStatus();
-            if (experimentStatus != null){
-                experimentSummary.setExperimentStatus(getExperimentStatus(experimentStatus));
-            }
-            return experimentSummary;
-        }
-        return null;
-    }
-
     public static InputDataObjectType getInput(Object object){
         if (object != null){
             InputDataObjectType dataObjectType = new InputDataObjectType();
             if (object instanceof ExperimentInputResource){
-                ExperimentInputResource expInput = (ExperimentInputResource) object;
-                dataObjectType.setName(expInput.getExperimentKey());
-                dataObjectType.setValue(expInput.getValue());
-                if (expInput.getDataType() != null){
-                    dataObjectType.setType(DataType.valueOf(expInput.getDataType()));
-                }
-                dataObjectType.setMetaData(expInput.getMetadata());
-                dataObjectType.setApplicationArgument(expInput.getAppArgument());
-                dataObjectType.setStandardInput(expInput.isStandardInput());
-                dataObjectType.setUserFriendlyDescription(expInput.getUserFriendlyDesc());
-                dataObjectType.setInputOrder(expInput.getInputOrder());
-                dataObjectType.setIsRequired(expInput.getRequired());
-                dataObjectType.setRequiredToAddedToCommandLine(expInput.getRequiredToCMD());
-                dataObjectType.setDataStaged(expInput.isDataStaged());
-                return dataObjectType;
-            }else if (object instanceof NodeInputResource){
-                NodeInputResource nodeInputResource = (NodeInputResource)object;
-                dataObjectType.setName(nodeInputResource.getInputKey());
-                dataObjectType.setValue(nodeInputResource.getValue());
-                if (nodeInputResource.getDataType() != null){
-                    dataObjectType.setType(DataType.valueOf(nodeInputResource.getDataType()));
-                }
-                dataObjectType.setMetaData(nodeInputResource.getMetadata());
-                dataObjectType.setApplicationArgument(nodeInputResource.getAppArgument());
-                dataObjectType.setStandardInput(nodeInputResource.isStandardInput());
-                dataObjectType.setUserFriendlyDescription(nodeInputResource.getUserFriendlyDesc());
-                dataObjectType.setInputOrder(nodeInputResource.getInputOrder());
-                dataObjectType.setIsRequired(nodeInputResource.getRequired());
-                dataObjectType.setRequiredToAddedToCommandLine(nodeInputResource.getRequiredToCMD());
-                dataObjectType.setDataStaged(nodeInputResource.isDataStaged());
+                ExperimentInputResource inputResource = (ExperimentInputResource) object;
+                dataObjectType.setName(inputResource.getInputName());
+                dataObjectType.setValue(inputResource.getInputValue());
+                dataObjectType.setType(DataType.valueOf(inputResource.getDataType()));
+                dataObjectType.setApplicationArgument(inputResource.getApplicationArgument());
+                dataObjectType.setStandardInput(inputResource.getStandardInput());
+                dataObjectType.setUserFriendlyDescription(inputResource.getUserFriendlyDescription());
+                dataObjectType.setMetaData(inputResource.getMetadata());
+                dataObjectType.setInputOrder(inputResource.getInputOrder());
+                dataObjectType.setIsRequired(inputResource.getIsRequired());
+                dataObjectType.setRequiredToAddedToCommandLine(inputResource.getRequiredToAddedToCmd());
+                dataObjectType.setDataStaged(inputResource.getDataStaged());
                 return dataObjectType;
-            }else if (object instanceof ApplicationInputResource){
-                ApplicationInputResource inputResource = (ApplicationInputResource)object;
-                dataObjectType.setName(inputResource.getInputKey());
-                dataObjectType.setValue(inputResource.getValue());
-                if (inputResource.getDataType() != null){
-                    dataObjectType.setType(DataType.valueOf(inputResource.getDataType()));
-                }
+            }else if (object instanceof ProcessInputResource){
+                ProcessInputResource inputResource = (ProcessInputResource)object;
+                dataObjectType.setName(inputResource.getInputName());
+                dataObjectType.setValue(inputResource.getInputValue());
+                dataObjectType.setType(DataType.valueOf(inputResource.getDataType()));
+                dataObjectType.setApplicationArgument(inputResource.getApplicationArgument());
+                dataObjectType.setStandardInput(inputResource.getStandardInput());
+                dataObjectType.setUserFriendlyDescription(inputResource.getUserFriendlyDescription());
                 dataObjectType.setMetaData(inputResource.getMetadata());
-                dataObjectType.setApplicationArgument(inputResource.getAppArgument());
-                dataObjectType.setStandardInput(inputResource.isStandardInput());
-                dataObjectType.setUserFriendlyDescription(inputResource.getUserFriendlyDesc());
                 dataObjectType.setInputOrder(inputResource.getInputOrder());
-                dataObjectType.setIsRequired(inputResource.isRequired());
-                dataObjectType.setRequiredToAddedToCommandLine(inputResource.isRequiredToCMD());
-                dataObjectType.setDataStaged(inputResource.isDataStaged());
+                dataObjectType.setIsRequired(inputResource.getIsRequired());
+                dataObjectType.setRequiredToAddedToCommandLine(inputResource.getRequiredToAddedToCmd());
+                dataObjectType.setDataStaged(inputResource.getDataStaged());
                 return dataObjectType;
             }else {
                 return null;
@@ -207,61 +185,41 @@ public class ThriftDataModelConversion {
         if (object != null){
             OutputDataObjectType dataObjectType = new OutputDataObjectType();
             if (object instanceof ExperimentOutputResource){
-                ExperimentOutputResource expOutput = (ExperimentOutputResource)object;
-                dataObjectType.setName(expOutput.getExperimentKey());
-                dataObjectType.setValue(expOutput.getValue());
-                if (expOutput.getDataType() != null){
-                    dataObjectType.setType(DataType.valueOf(expOutput.getDataType()));
-                }
-                dataObjectType.setIsRequired(expOutput.getRequired());
-                dataObjectType.setRequiredToAddedToCommandLine(expOutput.getRequiredToCMD());
-                dataObjectType.setDataMovement(expOutput.isDataMovement());
-                dataObjectType.setLocation(expOutput.getDataNameLocation());
-                dataObjectType.setSearchQuery(expOutput.getSearchQuery());
-                dataObjectType.setApplicationArgument(expOutput.getAppArgument());
-                return dataObjectType;
-            }else if (object instanceof NodeOutputResource){
-                NodeOutputResource nodeOutputResource = (NodeOutputResource)object;
-                dataObjectType.setName(nodeOutputResource.getOutputKey());
-                dataObjectType.setValue(nodeOutputResource.getValue());
-                if (nodeOutputResource.getDataType() != null){
-                    dataObjectType.setType(DataType.valueOf(nodeOutputResource.getDataType()));
-                }
-                dataObjectType.setIsRequired(nodeOutputResource.getRequired());
-                dataObjectType.setRequiredToAddedToCommandLine(nodeOutputResource.getRequiredToCMD());
-                dataObjectType.setDataMovement(nodeOutputResource.isDataMovement());
-                dataObjectType.setLocation(nodeOutputResource.getDataNameLocation());
-                dataObjectType.setSearchQuery(nodeOutputResource.getSearchQuery());
-                dataObjectType.setApplicationArgument(nodeOutputResource.getAppArgument());
+                ExperimentOutputResource outputResource = (ExperimentOutputResource)object;
+                dataObjectType.setName(outputResource.getOutputName());
+                dataObjectType.setValue(outputResource.getOutputValue());
+                dataObjectType.setType(DataType.valueOf(outputResource.getDataType()));
+                dataObjectType.setApplicationArgument(outputResource.getApplicationArgument());
+                dataObjectType.setIsRequired(outputResource.getIsRequired());
+                dataObjectType.setRequiredToAddedToCommandLine(outputResource.getRequiredToAddedToCmd());
+                dataObjectType.setDataMovement(outputResource.getDataMovement());
+                dataObjectType.setLocation(outputResource.getLocation());
+                dataObjectType.setSearchQuery(outputResource.getSearchQuery());
                 return dataObjectType;
-            }else if (object instanceof ApplicationOutputResource){
-                ApplicationOutputResource outputResource = (ApplicationOutputResource)object;
-                dataObjectType.setName(outputResource.getOutputKey());
-                dataObjectType.setValue(outputResource.getValue());
-                dataObjectType.setIsRequired(outputResource.isRequired());
-                dataObjectType.setRequiredToAddedToCommandLine(outputResource.isRequiredToCMD());
-                if (outputResource.getDataType() != null){
-                    dataObjectType.setType(DataType.valueOf(outputResource.getDataType()));
-                }
-                dataObjectType.setDataMovement(outputResource.isDataMovement());
-                dataObjectType.setLocation(outputResource.getDataNameLocation());
+            }else if (object instanceof ProcessOutputResource) {
+                ProcessOutputResource outputResource = (ProcessOutputResource) object;
+                dataObjectType.setName(outputResource.getOutputName());
+                dataObjectType.setValue(outputResource.getOutputValue());
+                dataObjectType.setType(DataType.valueOf(outputResource.getDataType()));
+                dataObjectType.setApplicationArgument(outputResource.getApplicationArgument());
+                dataObjectType.setIsRequired(outputResource.getIsRequired());
+                dataObjectType.setRequiredToAddedToCommandLine(outputResource.getRequiredToAddedToCmd());
+                dataObjectType.setDataMovement(outputResource.getDataMovement());
+                dataObjectType.setLocation(outputResource.getLocation());
                 dataObjectType.setSearchQuery(outputResource.getSearchQuery());
-                dataObjectType.setApplicationArgument(outputResource.getAppArgument());
                 return dataObjectType;
-            }else {
+            } else {
                 return null;
             }
         }
         return null;
     }
 
-    public static List<String> getEmailAddresses (List<NotificationEmailResource> resourceList){
+    public static List<String> getEmailAddresses (String[] resourceList){
         List<String> emailAddresses = new ArrayList<String>();
-        if (resourceList != null && !resourceList.isEmpty()){
-            for (NotificationEmailResource emailResource : resourceList){
-                emailAddresses.add(emailResource.getEmailAddress());
+            for (String email : resourceList){
+                emailAddresses.add(email);
             }
-        }
         return emailAddresses;
     }
 
@@ -287,10 +245,10 @@ public class ThriftDataModelConversion {
         return exOutputs;
     }
 
-    public static List<InputDataObjectType> getNodeInputs (List<NodeInputResource> nodeInputResources){
+    public static List<InputDataObjectType> getProcessInputs (List<ProcessInputResource> processInputResources){
         List<InputDataObjectType> nodeInputs = new ArrayList<InputDataObjectType>();
-        if (nodeInputResources != null && !nodeInputResources.isEmpty()){
-            for (NodeInputResource inputResource : nodeInputResources){
+        if (processInputResources != null && !processInputResources.isEmpty()){
+            for (ProcessInputResource inputResource : processInputResources){
                 InputDataObjectType nodeInput = getInput(inputResource);
                 nodeInputs.add(nodeInput);
             }
@@ -298,319 +256,195 @@ public class ThriftDataModelConversion {
         return nodeInputs;
     }
 
-    public static List<OutputDataObjectType> getNodeOutputs (List<NodeOutputResource> nodeOutputResourceList){
-        List<OutputDataObjectType> nodeOutputs = new ArrayList<OutputDataObjectType>();
-        if (nodeOutputResourceList != null && !nodeOutputResourceList.isEmpty()){
-            for (NodeOutputResource outputResource : nodeOutputResourceList){
+    public static List<OutputDataObjectType> getProcessOutputs (List<ProcessOutputResource> processOutputResources){
+        List<OutputDataObjectType> processOutputs = new ArrayList<OutputDataObjectType>();
+        if (processOutputResources != null && !processOutputResources.isEmpty()){
+            for (ProcessOutputResource outputResource : processOutputResources){
                 OutputDataObjectType output = getOutput(outputResource);
-                nodeOutputs.add(output);
-            }
-        }
-        return nodeOutputs;
-    }
-
-    public static List<InputDataObjectType> getApplicationInputs (List<ApplicationInputResource> applicationInputResources){
-        List<InputDataObjectType> appInputs = new ArrayList<InputDataObjectType>();
-        if (applicationInputResources != null && !applicationInputResources.isEmpty()){
-            for (ApplicationInputResource inputResource : applicationInputResources){
-                InputDataObjectType appInput = getInput(inputResource);
-                appInputs.add(appInput);
+                processOutputs.add(output);
             }
         }
-        return appInputs;
+        return processOutputs;
     }
 
-    public static List<OutputDataObjectType> getApplicationOutputs (List<ApplicationOutputResource> outputResources){
-        List<OutputDataObjectType> appOutputs = new ArrayList<OutputDataObjectType>();
-        if (outputResources != null && !outputResources.isEmpty()){
-            for (ApplicationOutputResource outputResource : outputResources){
-                OutputDataObjectType output = getOutput(outputResource);
-                appOutputs.add(output);
-            }
-        }
-        return appOutputs;
-    }
-
-    public static ExperimentStatus getExperimentStatus(StatusResource status){
+    public static ExperimentStatus getExperimentStatus(ExperimentStatusResource status){
         if (status != null){
             ExperimentStatus experimentStatus = new ExperimentStatus();
             if (status.getState() == null || status.getState().equals("")){
                 status.setState("UNKNOWN");
             }
             experimentStatus.setState(ExperimentState.valueOf(status.getState()));
-            experimentStatus.setTimeOfStateChange(status.getStatusUpdateTime().getTime());
+            experimentStatus.setTimeOfStateChange(status.getTimeOfStateChange().getTime());
+            experimentStatus.setReason(status.getReason());
             return experimentStatus;
         }
         return null;
     }
 
-    public static ProcessStatus getProcessStatus (StatusResource status){
+    public static ProcessStatus getProcessStatus (ProcessStatusResource status){
         if (status != null){
             ProcessStatus processStatus = new ProcessStatus();
             if (status.getState() == null || status.getState().equals("")){
                 status.setState("UNKNOWN");
             }
             processStatus.setState(ProcessState.valueOf(status.getState()));
-            processStatus.setTimeOfStateChange(status.getStatusUpdateTime().getTime());
+            processStatus.setTimeOfStateChange(status.getTimeOfStateChange().getTime());
+            processStatus.setReason(status.getReason());
             return processStatus;
         }
         return null;
     }
 
-    public static TaskStatus getTaskStatus (StatusResource status){
+    public static TaskStatus getTaskStatus (TaskStatusResource status){
         if (status != null){
             TaskStatus taskStatus = new TaskStatus();
             if (status.getState() == null || status.getState().equals("")){
                 status.setState("UNKNOWN");
             }
             taskStatus.setState(TaskState.valueOf(status.getState()));
-            taskStatus.setTimeOfStateChange(status.getStatusUpdateTime().getTime());
+            taskStatus.setTimeOfStateChange(status.getTimeOfStateChange().getTime());
+            taskStatus.setReason(status.getReason());
             return taskStatus;
         }
         return null;
     }
 
-    public static JobStatus getJobStatus (StatusResource status){
-        if (status != null){
-            JobStatus jobStatus = new JobStatus();
-            if (status.getState() == null || status.getState().equals("")){
-                status.setState("UNKNOWN");
-            }
-            jobStatus.setJobState(JobState.valueOf(status.getState()));
-            if (status.getStatusUpdateTime() == null){
-                jobStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
-            }else {
-                jobStatus.setTimeOfStateChange(status.getStatusUpdateTime().getTime());
-            }
-            return jobStatus;
-        }
-        return null;
-    }
-
-//    public static TransferStatus getTransferStatus (StatusResource status){
-//        if (status != null){
-//            TransferStatus transferStatus = new TransferStatus();
-//            if (status.getState() == null || status.getState().equals("")){
-//                status.setState("UNKNOWN");
-//            }
-//            transferStatus.setTransferState(TransferState.valueOf(status.getState()));
-//            transferStatus.setTimeOfStateChange(status.getStatusUpdateTime().getTime());
-//            return transferStatus;
-//        }
-//        return null;
-//    }
-
-//    public static ApplicationStatus getApplicationStatus (StatusResource status){
-//        if (status != null){
-//            ApplicationStatus applicationStatus = new ApplicationStatus();
-//            if (status.getState() == null || status.getState().equals("")){
-//                status.setState("UNKNOWN");
-//            }
-//            applicationStatus.setApplicationState(status.getState());
-//            applicationStatus.setTimeOfStateChange(status.getStatusUpdateTime().getTime());
-//            return applicationStatus;
-//        }
-//        return null;
-//    }
-//
-//    public static List<WorkflowNodeStatus> getWorkflowNodeStatusList(List<StatusResource> statuses){
-//        List<WorkflowNodeStatus> wfNodeStatuses = new ArrayList<WorkflowNodeStatus>();
-//        if (statuses != null && !statuses.isEmpty()){
-//            for (StatusResource statusResource : statuses){
-//                wfNodeStatuses.add(getWorkflowNodeStatus(statusResource));
-//            }
-//        }
-//        return wfNodeStatuses;
-//    }
-
-//    public static WorkflowNodeDetails getWorkflowNodeDetails(WorkflowNodeDetailResource nodeDetailResource) throws RegistryException {
-//        if (nodeDetailResource != null){
-//            WorkflowNodeDetails wfNode = new WorkflowNodeDetails();
-//            wfNode.setNodeInstanceId(nodeDetailResource.getNodeInstanceId());
-//            wfNode.setCreationTime(nodeDetailResource.getCreationTime().getTime());
-//            wfNode.setNodeName(nodeDetailResource.getNodeName());
-//            List<NodeInputResource> nodeInputs = nodeDetailResource.getNodeInputs();
-//            wfNode.setNodeInputs(getNodeInputs(nodeInputs));
-//            List<NodeOutputResource> nodeOutputs = nodeDetailResource.getNodeOutputs();
-//            wfNode.setNodeOutputs(getNodeOutputs(nodeOutputs));
-//            List<TaskDetailResource> taskDetails = nodeDetailResource.getTaskDetails();
-//            wfNode.setTaskDetailsList(getTaskDetailsList(taskDetails));
-//            wfNode.setWorkflowNodeStatus(getWorkflowNodeStatus(nodeDetailResource.getWorkflowNodeStatus()));
-//            List<ErrorDetailResource> errorDetails = nodeDetailResource.getErrorDetails();
-//            wfNode.setErrors(getErrorDetailList(errorDetails));
-//            wfNode.setExecutionUnit(ExecutionUnit.valueOf(nodeDetailResource.getExecutionUnit()));
-//            wfNode.setExecutionUnitData(nodeDetailResource.getExecutionUnitData());
-//            return wfNode;
-//        }
-//        return null;
-//    }
-//
-//    public static List<WorkflowNodeDetails> getWfNodeList (List<WorkflowNodeDetailResource> resources) throws RegistryException {
-//        List<WorkflowNodeDetails> workflowNodeDetailsList = new ArrayList<WorkflowNodeDetails>();
-//        if (resources != null && !resources.isEmpty()){
-//            for (WorkflowNodeDetailResource resource : resources){
-//                workflowNodeDetailsList.add(getWorkflowNodeDetails(resource));
-//            }
-//        }
-//        return workflowNodeDetailsList;
-//    }
-
     public static ProcessModel getProcesModel (ProcessResource processResource) throws RegistryException {
         if (processResource != null){
             ProcessModel processModel = new ProcessModel();
-            String taskId = processResource.getTaskId();
-            processModel.setProcessId(taskId);
-            processModel.setApplicationInterfaceId(processResource.getApplicationId());
-            List<ApplicationInputResource> applicationInputs = processResource.getApplicationInputs();
-            processModel.setProcessInputs(getApplicationInputs(applicationInputs));
-            List<ApplicationOutputResource> applicationOutputs = processResource.getApplicationOutputs();
-            processModel.setProcessOutputs(getApplicationOutputs(applicationOutputs));
-            processModel.setEnableEmailNotification(processResource.isEnableEmailNotifications());
-            if (processModel.isEnableEmailNotification()){
-                List<NotificationEmailResource> notificationEmails = processResource.getNotificationEmails();
-                processModel.setEmailAddresses(getEmailAddresses(notificationEmails));
-            }
-            processModel.setApplicationDeploymentId(processResource.getApplicationDeploymentId());
-            if (processResource.isExists(ResourceType.COMPUTATIONAL_RESOURCE_SCHEDULING, taskId)){
-                ComputationSchedulingResource computationScheduling = processResource.getComputationScheduling(taskId);
-                processModel.setResourceSchedule(getComputationalResourceScheduling(computationScheduling));
-            }
+            processModel.setProcessId(processResource.getProcessId());
+            processModel.setExperimentId(processResource.getExperimentId());
+            processModel.setCreationTime(processResource.getCreationTime().getTime());
+            processModel.setLastUpdateTime(processResource.getLastUpdateTime().getTime());
+            processModel.setProcessDetail(processResource.getProcessDetail());
+            processModel.setApplicationInterfaceId(processResource.getApplicationInterfaceId());
+            processModel.setTaskDag(processResource.getTaskDag());
+
+            processModel.setProcessInputs(getProcessInputs(processResource.getProcessInputs()));
+            processModel.setProcessOutputs(getProcessOutputs(processResource.getProcessOutputs()));
+
+            processModel.setProcessError(getErrorModel(processResource.getProcessError()));
+            processModel.setProcessStatus(getProcessStatus(processResource.getProcessStatus()));
+
+            processModel.setResourceSchedule(getProcessResourceSchedule(processResource.getProcessResourceSchedule()));
+
+            processModel.setTasks(getTaskModelList(processResource.getTaskList()));
 
-            processModel.setProcessStatus(getProcessStatus(processResource.getTaskStatus()));
-//            List<JobDetailResource> jobDetailList = taskDetailResource.getJobDetailList();
-//            processModel.setJobDetailsList(getJobDetailsList(jobDetailList));
-//            processModel.setProcessError(getErrorDetails(taskDetailResource.getErrorDetailList().get(0)));
-//            processModel.setDataTransferDetailsList(getDataTransferlList(taskDetailResource.getDataTransferDetailList()));
             return processModel;
         }
         return null;
     }
 
-    public static List<TaskModel> getTaskDetailsList (List<ProcessResource> resources) throws RegistryException {
+    public static List<TaskModel> getTaskModelList (List<TaskResource> resources) throws RegistryException {
         List<TaskModel> taskDetailsList = new ArrayList<TaskModel>();
         if (resources != null && !resources.isEmpty()){
-            for (ProcessResource resource : resources){
+            for (TaskResource resource : resources){
                 taskDetailsList.add(getTaskModel(resource));
             }
         }
         return taskDetailsList;
     }
 
-    //FIXME: should fill according to registry object
-    public static TaskModel getTaskModel (ProcessResource processResource){
+    public static TaskModel getTaskModel (TaskResource taskResource) throws RegistryException {
         TaskModel model = new TaskModel();
-        return model;
-    }
-
-    public static List<JobModel> getJobDetailsList(List<TaskResource> jobs) throws RegistryException {
-        List<JobModel> jobDetailsList = new ArrayList<JobModel>();
-        if (jobs != null && !jobs.isEmpty()){
-            for (TaskResource resource : jobs){
-                jobDetailsList.add(getJobDetail(resource));
-            }
-        }
-        return jobDetailsList;
-    }
+        model.setTaskId(taskResource.getTaskId());
+        model.setTaskType(TaskTypes.valueOf(taskResource.getTaskType()));
+        model.setParentProcessId(taskResource.getParentProcessId());
+        model.setCreationTime(taskResource.getCreationTime().getTime());
+        model.setLastUpdateTime(taskResource.getLastUpdateTime().getTime());
+        model.setTaskDetail(taskResource.getTaskDetail());
+        model.setTaskInternalStore(taskResource.getTaskInternalStore());
 
+        model.setTaskStatus(getTaskStatus(taskResource.getTaskStatus()));
+        model.setTaskError(getErrorModel(taskResource.getTaskError()));
 
-    public static JobModel getJobDetail(TaskResource taskResource) throws RegistryException {
-        if (taskResource != null){
-            JobModel jobDetails = new JobModel();
-            jobDetails.setJobId(taskResource.getJobId());
-            jobDetails.setJobDescription(taskResource.getJobDescription());
-            jobDetails.setCreationTime(taskResource.getCreationTime().getTime());
-            StatusResource jobStatus = taskResource.getJobStatus();
-            jobDetails.setJobStatus(getJobStatus(jobStatus));
-            jobDetails.setJobName(taskResource.getJobName());
-            jobDetails.setWorkingDir(taskResource.getWorkingDir());
-            StatusResource applicationStatus = taskResource.getApplicationStatus();
-            jobDetails.setJobStatus(getJobStatus(applicationStatus));
-            jobDetails.setComputeResourceConsumed(taskResource.getComputeResourceConsumed());
-            return jobDetails;
-        }
-        return null;
+        return model;
     }
 
-    public static ErrorModel getErrorDetails (ErrorDetailResource resource){
-        if (resource != null){
-            ErrorModel errorDetails = new ErrorModel();
-            errorDetails.setErrorId(String.valueOf(resource.getErrorId()));
-            errorDetails.setCreationTime(resource.getCreationTime().getTime());
-            errorDetails.setActualErrorMessage(resource.getActualErrorMsg());
-            errorDetails.setUserFriendlyMessage(resource.getUserFriendlyErrorMsg());
-            errorDetails.setTransientOrPersistent(resource.isTransientPersistent());
-            return errorDetails;
+
+    public static ErrorModel getErrorModel (Object object){
+        if (object != null) {
+            ErrorModel errorModel = new ErrorModel();
+            if (object instanceof ExperimentErrorResource) {
+                ExperimentErrorResource errorResource = (ExperimentErrorResource) object;
+                errorModel.setErrorId(errorResource.getErrorId());
+                errorModel.setCreationTime(errorResource.getCreationTime().getTime());
+                errorModel.setActualErrorMessage(errorResource.getActualErrorMessage());
+                errorModel.setUserFriendlyMessage(errorResource.getUserFriendlyMessage());
+                errorModel.setTransientOrPersistent(errorResource.getTransientOrPersistent());
+                errorModel.setRootCauseErrorIdList(Arrays.asList(errorResource.getRootCauseErrorIdList().split(",")));
+                return errorModel;
+            } else if (object instanceof ProcessOutputResource) {
+                ProcessErrorResource errorResource = (ProcessErrorResource) object;
+                errorModel.setErrorId(errorResource.getErrorId());
+                errorModel.setCreationTime(errorResource.getCreationTime().getTime());
+                errorModel.setActualErrorMessage(errorResource.getActualErrorMessage());
+                errorModel.setUserFriendlyMessage(errorResource.getUserFriendlyMessage());
+                errorModel.setTransientOrPersistent(errorResource.getTransientOrPersistent());
+                errorModel.setRootCauseErrorIdList(Arrays.asList(errorResource.getRootCauseErrorIdList().split(",")));
+                return errorModel;
+            } else if (object instanceof TaskErrorResource) {
+                TaskErrorResource errorResource = (TaskErrorResource) object;
+                errorModel.setErrorId(errorResource.getErrorId());
+                errorModel.setCreationTime(errorResource.getCreationTime().getTime());
+                errorModel.setActualErrorMessage(errorResource.getActualErrorMessage());
+                errorModel.setUserFriendlyMessage(errorResource.getUserFriendlyMessage());
+                errorModel.setTransientOrPersistent(errorResource.getTransientOrPersistent());
+                errorModel.setRootCauseErrorIdList(Arrays.asList(errorResource.getRootCauseErrorIdList().split(",")));
+                return errorModel;
+            } else {
+                return null;
+            }
         }
         return null;
     }
 
-    public static List<ErrorModel> getErrorDetailList (List<ErrorDetailResource> errorDetailResources){
-        List<ErrorModel> errorDetailsList = new ArrayList<ErrorModel>();
-        if (errorDetailResources != null && !errorDetailResources.isEmpty()){
-            for (ErrorDetailResource errorDetailResource : errorDetailResources){
-                errorDetailsList.add(getErrorDetails(errorDetailResource));
+    public static List<ErrorModel> getExperimentErrorList(List<ExperimentErrorResource> errorResources){
+        List<ErrorModel> errorList = new ArrayList<ErrorModel>();
+        if (errorResources != null && !errorResources.isEmpty()){
+            for (ExperimentErrorResource errorResource : errorResources){
+                errorList.add(getErrorModel(errorResource));
             }
         }
-        return errorDetailsList;
+        return errorList;
     }
-//
-//    public static DataTransferDetails getDataTransferDetail (DataTransferDetailResource resource) throws RegistryException {
-//        if (resource != null){
-//            DataTransferDetails details = new DataTransferDetails();
-//            details.setTransferID(resource.getTransferId());
-//            details.setCreationTime(resource.getCreationTime().getTime());
-//            details.setTransferDescription(resource.getTransferDescription());
-//            details.setTransferStatus(getTransferStatus(resource.getDataTransferStatus()));
-//            return details;
-//        }
-//        return null;
-//    }
-//
-//    public static List<DataTransferDetails> getDataTransferlList (List<DataTransferDetailResource> resources) throws RegistryException {
-//        List<DataTransferDetails> transferDetailsList = new ArrayList<DataTransferDetails>();
-//        if (resources != null && !resources.isEmpty()){
-//            for (DataTransferDetailResource resource : resources){
-//                transferDetailsList.add(getDataTransferDetail(resource));
-//            }
-//        }
-//        return transferDetailsList;
-//    }
-
-
-    public static UserConfigurationDataModel getUserConfigData (ConfigDataResource resource) throws RegistryException {
+
+    public static UserConfigurationDataModel getUserConfigData (UserConfigurationDataResource resource) throws RegistryException {
         if (resource != null){
             UserConfigurationDataModel data = new UserConfigurationDataModel();
-            data.setAiravataAutoSchedule(resource.isAiravataAutoSchedule());
-            data.setOverrideManualScheduledParams(resource.isOverrideManualParams());
-            data.setShareExperimentPublicly(resource.isShareExp());
+            data.setAiravataAutoSchedule(resource.getAiravataAutoSchedule());
+            data.setOverrideManualScheduledParams(resource.getOverrideManualScheduledParams());
+            data.setShareExperimentPublicly(resource.getShareExperimentPublically());
             data.setUserDN(resource.getUserDn());
-            data.setGenerateCert(resource.isGenerateCert());
-            String expID = resource.getExperimentId();
-            ExperimentResource experimentResource = new ExperimentResource();
-            experimentResource.setExpID(expID);
-            if (experimentResource.isExists(ResourceType.COMPUTATIONAL_RESOURCE_SCHEDULING, expID)){
-                ComputationSchedulingResource computationScheduling = experimentResource.getComputationScheduling(expID);
-                data.setComputationalResourceScheduling(getComputationalResourceScheduling(computationScheduling));
-            }
+            data.setGenerateCert(resource.getGenerateCert());
+
+            ComputationalResourceSchedulingModel resourceSchedulingModel = new ComputationalResourceSchedulingModel();
+            resourceSchedulingModel.setResourceHostId(resource.getResourceHostId());
+            resourceSchedulingModel.setTotalCPUCount(resource.getTotalCpuCount());
+            resourceSchedulingModel.setNodeCount(resource.getNodeCount());
+            resourceSchedulingModel.setNumberOfThreads(resource.getNumberOfThreads());
+            resourceSchedulingModel.setQueueName(resource.getQueueName());
+            resourceSchedulingModel.setWallTimeLimit(resource.getWallTimeLimit());
+            resourceSchedulingModel.setTotalPhysicalMemory(resource.getTotalPhysicalMemory());
+            data.setComputationalResourceScheduling(resourceSchedulingModel);
+
             return data;
         }
         return null;
     }
 
-
-    public static ComputationalResourceSchedulingModel getComputationalResourceScheduling (ComputationSchedulingResource csr){
-        if (csr != null){
-            ComputationalResourceSchedulingModel scheduling = new ComputationalResourceSchedulingModel();
-            scheduling.setResourceHostId(csr.getResourceHostId());
-            scheduling.setTotalCPUCount(csr.getCpuCount());
-            scheduling.setNodeCount(csr.getNodeCount());
-            scheduling.setNumberOfThreads(csr.getNumberOfThreads());
-            scheduling.setQueueName(csr.getQueueName());
-            scheduling.setWallTimeLimit(csr.getWalltimeLimit());
-            scheduling.setTotalPhysicalMemory(csr.getPhysicalMemory());
-            scheduling.setChessisNumber(csr.getChessisName());
-            return scheduling;
+    public static ComputationalResourceSchedulingModel getProcessResourceSchedule (ProcessResourceScheduleResource resource){
+        if (resource != null){
+            ComputationalResourceSchedulingModel resourceSchedulingModel = new ComputationalResourceSchedulingModel();
+            resourceSchedulingModel.setResourceHostId(resource.getResourceHostId());
+            resourceSchedulingModel.setTotalCPUCount(resource.getTotalCpuCount());
+            resourceSchedulingModel.setNodeCount(resource.getNodeCount());
+            resourceSchedulingModel.setNumberOfThreads(resource.getNumberOfThreads());
+            resourceSchedulingModel.setQueueName(resource.getQueueName());
+            resourceSchedulingModel.setWallTimeLimit(resource.getWallTimeLimit());
+            resourceSchedulingModel.setTotalPhysicalMemory(resource.getTotalPhysicalMemory());
+            return resourceSchedulingModel;
         }
         return null;
     }
-}
+}
\ No newline at end of file