You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2014/12/11 20:45:14 UTC

[2/5] airavata git commit: Revert "Revert "Merge branch 'master' of"", Reverting msmemon's merge commits and revert commit of that merge commit

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
index edbf39e..5768a0d 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
@@ -271,9 +271,11 @@ public class ExperimentRegistry {
                 resource.setExperimentKey(input.getName());
                 resource.setValue(input.getValue());
                 if (input.getType() != null){
-                    resource.setInputType(input.getType().toString());
+                    resource.setDataType(input.getType().toString());
                 }
                 resource.setMetadata(input.getMetaData());
+                resource.setAppArgument(input.getApplicationArgument());
+                resource.setInputOrder(input.getInputOrder());
                 resource.save();
             }
         } catch (Exception e) {
@@ -290,9 +292,11 @@ public class ExperimentRegistry {
                     if (exinput.getExperimentKey().equals(input.getName())) {
                         exinput.setValue(input.getValue());
                         if (input.getType() != null){
-                            exinput.setInputType(input.getType().toString());
+                            exinput.setDataType(input.getType().toString());
                         }
                         exinput.setMetadata(input.getMetaData());
+                        exinput.setAppArgument(input.getApplicationArgument());
+                        exinput.setInputOrder(input.getInputOrder());
                         exinput.save();
                     }
                 }
@@ -313,7 +317,7 @@ public class ExperimentRegistry {
                 resource.setExperimentKey(output.getName());
                 resource.setValue(output.getValue());
                 if (output.getType() != null){
-                    resource.setOutputType(output.getType().toString());
+                    resource.setDataType(output.getType().toString());
                 }
 //                resource.setMetadata(output.get());
                 resource.save();
@@ -336,7 +340,7 @@ public class ExperimentRegistry {
                         resource.setExperimentKey(output.getName());
                         resource.setValue(output.getValue());
                         if (output.getType() != null){
-                            resource.setOutputType(output.getType().toString());
+                            resource.setDataType(output.getType().toString());
                         }
 //                        resource.setMetadata(output.getMetaData());
                         resource.save();
@@ -359,7 +363,7 @@ public class ExperimentRegistry {
                 resource.setOutputKey(output.getName());
                 resource.setValue(output.getValue());
                 if (output.getType() != null){
-                    resource.setOutputType(output.getType().toString());
+                    resource.setDataType(output.getType().toString());
                 }
 //                resource.setMetadata(output.getMetaData());
                 resource.save();
@@ -382,7 +386,7 @@ public class ExperimentRegistry {
                     resource.setOutputKey(output.getName());
                     resource.setValue(output.getValue());
                     if (output.getType() != null){
-                        resource.setOutputType(output.getType().toString());
+                        resource.setDataType(output.getType().toString());
                     }
 //                    resource.setMetadata(output.getMetaData());
                     resource.save();
@@ -405,7 +409,7 @@ public class ExperimentRegistry {
                 resource.setOutputKey(output.getName());
                 resource.setValue(output.getValue());
                 if (output.getType() != null){
-                    resource.setOutputType(output.getType().toString());
+                    resource.setDataType(output.getType().toString());
                 }
 //                resource.setMetadata(output.getMetaData());
                 resource.save();
@@ -813,9 +817,11 @@ public class ExperimentRegistry {
                 resource.setInputKey(input.getName());
                 resource.setValue(input.getValue());
                 if (input.getType() != null){
-                    resource.setInputType(input.getType().toString());
+                    resource.setDataType(input.getType().toString());
                 }
                 resource.setMetadata(input.getMetaData());
+                resource.setAppArgument(input.getApplicationArgument());
+                resource.setInputOrder(input.getInputOrder());
                 resource.save();
             }
         } catch (Exception e) {
@@ -834,9 +840,11 @@ public class ExperimentRegistry {
                     resource.setInputKey(input.getName());
                     resource.setValue(input.getValue());
                     if (input.getType() != null){
-                        resource.setInputType(input.getType().toString());
+                        resource.setDataType(input.getType().toString());
                     }
                     resource.setMetadata(input.getMetaData());
+                    resource.setAppArgument(input.getApplicationArgument());
+                    resource.setInputOrder(input.getInputOrder());
                     resource.save();
                 }
             }
@@ -991,9 +999,11 @@ public class ExperimentRegistry {
                 resource.setInputKey(input.getName());
                 resource.setValue(input.getValue());
                 if (input.getType() != null){
-                    resource.setInputType(input.getType().toString());
+                    resource.setDataType(input.getType().toString());
                 }
                 resource.setMetadata(input.getMetaData());
+                resource.setAppArgument(input.getApplicationArgument());
+                resource.setInputOrder(input.getInputOrder());
                 resource.save();
             }
         } catch (Exception e) {
@@ -1011,7 +1021,7 @@ public class ExperimentRegistry {
                 resource.setOutputKey(output.getName());
                 resource.setValue(output.getValue());
                 if (output.getType() != null){
-                    resource.setOutputType(output.getType().toString());
+                    resource.setDataType(output.getType().toString());
                 }
 //                resource.setMetadata(output.getMetaData());
                 resource.save();
@@ -1035,7 +1045,7 @@ public class ExperimentRegistry {
                     resource.setOutputKey(output.getName());
                     resource.setValue(output.getValue());
                     if (output.getType() != null){
-                        resource.setOutputType(output.getType().toString());
+                        resource.setDataType(output.getType().toString());
                     }
 //                    resource.setMetadata(output.getMetaData());
                     resource.save();
@@ -1056,9 +1066,11 @@ public class ExperimentRegistry {
                     resource.setInputKey(input.getName());
                     resource.setValue(input.getValue());
                     if (input.getType() != null){
-                        resource.setInputType(input.getType().toString());
+                        resource.setDataType(input.getType().toString());
                     }
                     resource.setMetadata(input.getMetaData());
+                    resource.setAppArgument(input.getApplicationArgument());
+                    resource.setInputOrder(input.getInputOrder());
                     resource.save();
                 }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ApplicationInput.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ApplicationInput.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ApplicationInput.java
index 2e4d2b2..2e68768 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ApplicationInput.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ApplicationInput.java
@@ -37,18 +37,44 @@ public class ApplicationInput implements Serializable {
     @Id
     @Column(name = "INPUT_KEY")
     private String inputKey;
-    @Column(name = "INPUT_KEY_TYPE")
-    private String inputKeyType;
+    @Column(name = "DATA_TYPE")
+    private String dataType;
     @Column(name = "METADATA")
     private String metadata;
     @Lob
     @Column(name = "VALUE")
     private char[] value;
+    @Column(name = "APP_ARGUMENT")
+    private String appArgument;
+
+    @Column(name = "INPUT_ORDER")
+    private int inputOrder;
+
+    @Column(name = "STANDARD_INPUT")
+    private boolean standardInput;
+
+    @Column(name = "USER_FRIENDLY_DESC")
+    private String userFriendlyDesc;
+
+    @Column(name="VALIDITY_TYPE")
+    private String validityType;
+    @Column(name="COMMANDLINE_TYPE")
+    private String commandLineType;
+    @Column(name = "DATA_STAGED")
+    private boolean dataStaged;
 
     @ManyToOne(cascade= CascadeType.MERGE)
     @JoinColumn(name = "TASK_ID")
     private TaskDetail task;
 
+    public int getInputOrder() {
+        return inputOrder;
+    }
+
+    public void setInputOrder(int inputOrder) {
+        this.inputOrder = inputOrder;
+    }
+
     public String getTaskId() {
         return taskId;
     }
@@ -65,12 +91,12 @@ public class ApplicationInput implements Serializable {
         this.inputKey = inputKey;
     }
 
-    public String getInputKeyType() {
-        return inputKeyType;
+    public String getDataType() {
+        return dataType;
     }
 
-    public void setInputKeyType(String inputKeyType) {
-        this.inputKeyType = inputKeyType;
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
     }
 
     public String getMetadata() {
@@ -96,4 +122,52 @@ public class ApplicationInput implements Serializable {
     public void setTask(TaskDetail task) {
         this.task = task;
     }
+
+    public String getAppArgument() {
+        return appArgument;
+    }
+
+    public void setAppArgument(String appArgument) {
+        this.appArgument = appArgument;
+    }
+
+    public boolean isStandardInput() {
+        return standardInput;
+    }
+
+    public void setStandardInput(boolean standardInput) {
+        this.standardInput = standardInput;
+    }
+
+    public String getUserFriendlyDesc() {
+        return userFriendlyDesc;
+    }
+
+    public void setUserFriendlyDesc(String userFriendlyDesc) {
+        this.userFriendlyDesc = userFriendlyDesc;
+    }
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public String getCommandLineType() {
+        return commandLineType;
+    }
+
+    public void setCommandLineType(String commandLineType) {
+        this.commandLineType = commandLineType;
+    }
+
+    public boolean isDataStaged() {
+        return dataStaged;
+    }
+
+    public void setDataStaged(boolean dataStaged) {
+        this.dataStaged = dataStaged;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ApplicationOutput.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ApplicationOutput.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ApplicationOutput.java
index e6f9efa..b13c842 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ApplicationOutput.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/ApplicationOutput.java
@@ -37,14 +37,19 @@ public class ApplicationOutput implements Serializable {
     @Id
     @Column(name = "OUTPUT_KEY")
     private String outputKey;
-    @Column(name = "OUTPUT_KEY_TYPE")
-    private String outputKeyType;
-    @Column(name = "METADATA")
-    private String metadata;
+    @Column(name = "DATA_TYPE")
+    private String dataType;
     @Lob
     @Column(name = "VALUE")
     private char[] value;
 
+    @Column(name = "VALIDITY_TYPE")
+    private String validityType;
+    @Column(name = "DATA_MOVEMENT")
+    private boolean dataMovement;
+    @Column(name = "DATA_NAME_LOCATION")
+    private String dataNameLocation;
+
     @ManyToOne(cascade= CascadeType.MERGE)
     @JoinColumn(name = "TASK_ID")
     private TaskDetail task;
@@ -57,14 +62,6 @@ public class ApplicationOutput implements Serializable {
         this.taskId = taskId;
     }
 
-    public String getMetadata() {
-        return metadata;
-    }
-
-    public void setMetadata(String metadata) {
-        this.metadata = metadata;
-    }
-
     public char[] getValue() {
         return value;
     }
@@ -89,11 +86,35 @@ public class ApplicationOutput implements Serializable {
         this.outputKey = outputKey;
     }
 
-    public String getOutputKeyType() {
-        return outputKeyType;
+    public String getDataType() {
+        return dataType;
+    }
+
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
+    }
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public boolean isDataMovement() {
+        return dataMovement;
+    }
+
+    public void setDataMovement(boolean dataMovement) {
+        this.dataMovement = dataMovement;
+    }
+
+    public String getDataNameLocation() {
+        return dataNameLocation;
     }
 
-    public void setOutputKeyType(String outputKeyType) {
-        this.outputKeyType = outputKeyType;
+    public void setDataNameLocation(String dataNameLocation) {
+        this.dataNameLocation = dataNameLocation;
     }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Input.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Input.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Input.java
index 5d7bbe6..c174bce 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Input.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Input.java
@@ -43,16 +43,43 @@ public class Experiment_Input implements Serializable {
     @Column(name = "VALUE")
     private char[] value;
 
-    @Column(name = "INPUT_TYPE")
-    private String inputType;
+    @Column(name = "DATA_TYPE")
+    private String dataType;
+
+    @Column(name = "APP_ARGUMENT")
+    private String appArgument;
+
+    @Column(name = "STANDARD_INPUT")
+    private boolean standardInput;
+
+    @Column(name = "USER_FRIENDLY_DESC")
+    private String userFriendlyDesc;
 
     @Column(name = "METADATA")
     private String metadata;
 
+    @Column(name = "INPUT_ORDER")
+    private int inputOrder;
+
+    @Column(name="VALIDITY_TYPE")
+    private String validityType;
+    @Column(name="COMMANDLINE_TYPE")
+    private String commandLineType;
+    @Column(name = "DATA_STAGED")
+    private boolean dataStaged;
+
     @ManyToOne
     @JoinColumn(name = "EXPERIMENT_ID")
     private Experiment experiment;
 
+    public int getInputOrder() {
+        return inputOrder;
+    }
+
+    public void setInputOrder(int inputOrder) {
+        this.inputOrder = inputOrder;
+    }
+
     public String getExperiment_id() {
         return experiment_id;
     }
@@ -77,12 +104,12 @@ public class Experiment_Input implements Serializable {
         this.value = value;
     }
 
-    public String getInputType() {
-        return inputType;
+    public String getDataType() {
+        return dataType;
     }
 
-    public void setInputType(String inputType) {
-        this.inputType = inputType;
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
     }
 
     public String getMetadata() {
@@ -100,4 +127,52 @@ public class Experiment_Input implements Serializable {
     public void setExperiment(Experiment experiment) {
         this.experiment = experiment;
     }
+
+    public String getAppArgument() {
+        return appArgument;
+    }
+
+    public void setAppArgument(String appArgument) {
+        this.appArgument = appArgument;
+    }
+
+    public boolean isStandardInput() {
+        return standardInput;
+    }
+
+    public void setStandardInput(boolean standardInput) {
+        this.standardInput = standardInput;
+    }
+
+    public String getUserFriendlyDesc() {
+        return userFriendlyDesc;
+    }
+
+    public void setUserFriendlyDesc(String userFriendlyDesc) {
+        this.userFriendlyDesc = userFriendlyDesc;
+    }
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public String getCommandLineType() {
+        return commandLineType;
+    }
+
+    public void setCommandLineType(String commandLineType) {
+        this.commandLineType = commandLineType;
+    }
+
+    public boolean isDataStaged() {
+        return dataStaged;
+    }
+
+    public void setDataStaged(boolean dataStaged) {
+        this.dataStaged = dataStaged;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Output.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Output.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Output.java
index fd77403..c40a5ff 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Output.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/Experiment_Output.java
@@ -41,10 +41,15 @@ public class Experiment_Output  implements Serializable {
     @Lob
     @Column(name = "VALUE")
     private char[] value;
-    @Column(name = "METADATA")
-    private String metadata;
-    @Column(name = "OUTPUT_KEY_TYPE")
-    private String outputKeyType;
+    @Column(name = "DATA_TYPE")
+    private String dataType;
+
+    @Column(name = "VALIDITY_TYPE")
+    private String validityType;
+    @Column(name = "DATA_MOVEMENT")
+    private boolean dataMovement;
+    @Column(name = "DATA_NAME_LOCATION")
+    private String dataNameLocation;
 
     @ManyToOne
     @JoinColumn(name = "EXPERIMENT_ID")
@@ -74,20 +79,12 @@ public class Experiment_Output  implements Serializable {
         this.value = value;
     }
 
-    public String getMetadata() {
-        return metadata;
-    }
-
-    public void setMetadata(String metadata) {
-        this.metadata = metadata;
-    }
-
-    public String getOutputKeyType() {
-        return outputKeyType;
+    public String getDataType() {
+        return dataType;
     }
 
-    public void setOutputKeyType(String outputKeyType) {
-        this.outputKeyType = outputKeyType;
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
     }
 
     public Experiment getExperiment() {
@@ -97,4 +94,28 @@ public class Experiment_Output  implements Serializable {
     public void setExperiment(Experiment experiment) {
         this.experiment = experiment;
     }
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public boolean isDataMovement() {
+        return dataMovement;
+    }
+
+    public void setDataMovement(boolean dataMovement) {
+        this.dataMovement = dataMovement;
+    }
+
+    public String getDataNameLocation() {
+        return dataNameLocation;
+    }
+
+    public void setDataNameLocation(String dataNameLocation) {
+        this.dataNameLocation = dataNameLocation;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/NodeInput.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/NodeInput.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/NodeInput.java
index 9bfb917..6d090e8 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/NodeInput.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/NodeInput.java
@@ -37,12 +37,29 @@ public class NodeInput implements Serializable {
     @Id
     @Column(name = "INPUT_KEY")
     private String inputKey;
-    @Column(name = "INPUT_KEY_TYPE")
-    private String inputKeyType;
+    @Column(name = "DATA_TYPE")
+    private String dataType;
     @Column(name = "METADATA")
     private String metadata;
     @Column(name = "VALUE")
     private String value;
+    @Column(name = "APP_ARGUMENT")
+    private String appArgument;
+    @Column(name = "INPUT_ORDER")
+    private int inputOrder;
+
+    @Column(name = "STANDARD_INPUT")
+    private boolean standardInput;
+
+    @Column(name = "USER_FRIENDLY_DESC")
+    private String userFriendlyDesc;
+
+    @Column(name="VALIDITY_TYPE")
+    private String validityType;
+    @Column(name="COMMANDLINE_TYPE")
+    private String commandLineType;
+    @Column(name = "DATA_STAGED")
+    private boolean dataStaged;
 
     @ManyToOne(cascade= CascadeType.MERGE)
     @JoinColumn(name = "NODE_INSTANCE_ID")
@@ -56,12 +73,12 @@ public class NodeInput implements Serializable {
         this.inputKey = inputKey;
     }
 
-    public String getInputKeyType() {
-        return inputKeyType;
+    public String getDataType() {
+        return dataType;
     }
 
-    public void setInputKeyType(String inputKeyType) {
-        this.inputKeyType = inputKeyType;
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
     }
 
     public String getMetadata() {
@@ -95,4 +112,60 @@ public class NodeInput implements Serializable {
     public void setNodeDetails(WorkflowNodeDetail nodeDetails) {
         this.nodeDetails = nodeDetails;
     }
+
+    public String getAppArgument() {
+        return appArgument;
+    }
+
+    public void setAppArgument(String appArgument) {
+        this.appArgument = appArgument;
+    }
+
+    public boolean isStandardInput() {
+        return standardInput;
+    }
+
+    public void setStandardInput(boolean standardInput) {
+        this.standardInput = standardInput;
+    }
+
+    public String getUserFriendlyDesc() {
+        return userFriendlyDesc;
+    }
+
+    public void setUserFriendlyDesc(String userFriendlyDesc) {
+        this.userFriendlyDesc = userFriendlyDesc;
+    }
+
+    public int getInputOrder() {
+        return inputOrder;
+    }
+
+    public void setInputOrder(int inputOrder) {
+        this.inputOrder = inputOrder;
+    }
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public String getCommandLineType() {
+        return commandLineType;
+    }
+
+    public void setCommandLineType(String commandLineType) {
+        this.commandLineType = commandLineType;
+    }
+
+    public boolean isDataStaged() {
+        return dataStaged;
+    }
+
+    public void setDataStaged(boolean dataStaged) {
+        this.dataStaged = dataStaged;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/NodeOutput.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/NodeOutput.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/NodeOutput.java
index 15518ba..bca1e33 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/NodeOutput.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/NodeOutput.java
@@ -37,12 +37,17 @@ public class NodeOutput implements Serializable {
     @Id
     @Column(name = "OUTPUT_KEY")
     private String outputKey;
-    @Column(name = "OUTPUT_KEY_TYPE")
-    private String outputKeyType;
-    @Column(name = "METADATA")
-    private String metadata;
+    @Column(name = "DATA_TYPE")
+    private String dataType;
     @Column(name = "VALUE")
     private String value;
+    @Column(name = "VALIDITY_TYPE")
+    private String validityType;
+    @Column(name = "DATA_MOVEMENT")
+    private boolean dataMovement;
+    @Column(name = "DATA_NAME_LOCATION")
+    private String dataNameLocation;
+
 
     @ManyToOne(cascade= CascadeType.MERGE)
     @JoinColumn(name = "NODE_INSTANCE_ID")
@@ -56,14 +61,6 @@ public class NodeOutput implements Serializable {
         this.nodeId = nodeId;
     }
 
-    public String getMetadata() {
-        return metadata;
-    }
-
-    public void setMetadata(String metadata) {
-        this.metadata = metadata;
-    }
-
     public String getValue() {
         return value;
     }
@@ -88,11 +85,35 @@ public class NodeOutput implements Serializable {
         this.outputKey = outputKey;
     }
 
-    public String getOutputKeyType() {
-        return outputKeyType;
+    public String getDataType() {
+        return dataType;
+    }
+
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
+    }
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public boolean isDataMovement() {
+        return dataMovement;
+    }
+
+    public void setDataMovement(boolean dataMovement) {
+        this.dataMovement = dataMovement;
+    }
+
+    public String getDataNameLocation() {
+        return dataNameLocation;
     }
 
-    public void setOutputKeyType(String outputKeyType) {
-        this.outputKeyType = outputKeyType;
+    public void setDataNameLocation(String dataNameLocation) {
+        this.dataNameLocation = dataNameLocation;
     }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationInputResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationInputResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationInputResource.java
index aa2271e..8ce8c6d 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationInputResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationInputResource.java
@@ -39,9 +39,72 @@ public class ApplicationInputResource extends AbstractResource {
 	private static final Logger logger = LoggerFactory.getLogger(ApplicationInputResource.class);
     private TaskDetailResource taskDetailResource;
     private String inputKey;
-    private String inputType;
+    private String dataType;
     private String metadata;
     private String value;
+    private String appArgument;
+    private boolean standardInput;
+    private String userFriendlyDesc;
+    private int inputOrder;
+    private String validityType;
+    private String commandLineType;
+    private boolean dataStaged;
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public String getCommandLineType() {
+        return commandLineType;
+    }
+
+    public void setCommandLineType(String commandLineType) {
+        this.commandLineType = commandLineType;
+    }
+
+    public boolean isDataStaged() {
+        return dataStaged;
+    }
+
+    public void setDataStaged(boolean dataStaged) {
+        this.dataStaged = dataStaged;
+    }
+
+    public int getInputOrder() {
+        return inputOrder;
+    }
+
+    public void setInputOrder(int inputOrder) {
+        this.inputOrder = inputOrder;
+    }
+
+    public String getAppArgument() {
+        return appArgument;
+    }
+
+    public void setAppArgument(String appArgument) {
+        this.appArgument = appArgument;
+    }
+
+    public boolean isStandardInput() {
+        return standardInput;
+    }
+
+    public void setStandardInput(boolean standardInput) {
+        this.standardInput = standardInput;
+    }
+
+    public String getUserFriendlyDesc() {
+        return userFriendlyDesc;
+    }
+
+    public void setUserFriendlyDesc(String userFriendlyDesc) {
+        this.userFriendlyDesc = userFriendlyDesc;
+    }
 
     public String getInputKey() {
         return inputKey;
@@ -51,12 +114,12 @@ public class ApplicationInputResource extends AbstractResource {
         this.inputKey = inputKey;
     }
 
-    public String getInputType() {
-        return inputType;
+    public String getDataType() {
+        return dataType;
     }
 
-    public void setInputType(String inputType) {
-        this.inputType = inputType;
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
     }
 
     public String getMetadata() {
@@ -122,7 +185,14 @@ public class ApplicationInputResource extends AbstractResource {
             applicationInput.setTask(taskDetail);
             applicationInput.setTaskId(taskDetail.getTaskId());
             applicationInput.setInputKey(inputKey);
-            applicationInput.setInputKeyType(inputType);
+            applicationInput.setDataType(dataType);
+            applicationInput.setAppArgument(appArgument);
+            applicationInput.setStandardInput(standardInput);
+            applicationInput.setUserFriendlyDesc(userFriendlyDesc);
+            applicationInput.setInputOrder(inputOrder);
+            applicationInput.setCommandLineType(commandLineType);
+            applicationInput.setValidityType(validityType);
+            applicationInput.setDataStaged(dataStaged);
             if (value != null){
                 applicationInput.setValue(value.toCharArray());
             }
@@ -133,7 +203,14 @@ public class ApplicationInputResource extends AbstractResource {
                 existingInput.setTask(taskDetail);
                 existingInput.setTaskId(taskDetail.getTaskId());
                 existingInput.setInputKey(inputKey);
-                existingInput.setInputKeyType(inputType);
+                existingInput.setDataType(dataType);
+                existingInput.setAppArgument(appArgument);
+                existingInput.setStandardInput(standardInput);
+                existingInput.setUserFriendlyDesc(userFriendlyDesc);
+                existingInput.setInputOrder(inputOrder);
+                existingInput.setCommandLineType(commandLineType);
+                existingInput.setValidityType(validityType);
+                existingInput.setDataStaged(dataStaged);
                 if (value != null){
                     existingInput.setValue(value.toCharArray());
                 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationOutputResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationOutputResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationOutputResource.java
index 544d6ab..4209f87 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationOutputResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ApplicationOutputResource.java
@@ -39,32 +39,50 @@ public class ApplicationOutputResource extends AbstractResource {
 	private static final Logger logger = LoggerFactory.getLogger(ApplicationOutputResource.class);
     private TaskDetailResource taskDetailResource;
     private String outputKey;
-    private String outputType;
-    private String metadata;
+    private String dataType;
     private String value;
+    private String validityType;
+    private boolean dataMovement;
+    private String dataNameLocation;
 
-    public String getOutputKey() {
-        return outputKey;
+    public String getValidityType() {
+        return validityType;
     }
 
-    public void setOutputKey(String outputKey) {
-        this.outputKey = outputKey;
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public boolean isDataMovement() {
+        return dataMovement;
+    }
+
+    public void setDataMovement(boolean dataMovement) {
+        this.dataMovement = dataMovement;
     }
 
-    public String getOutputType() {
-        return outputType;
+    public String getDataNameLocation() {
+        return dataNameLocation;
     }
 
-    public void setOutputType(String outputType) {
-        this.outputType = outputType;
+    public void setDataNameLocation(String dataNameLocation) {
+        this.dataNameLocation = dataNameLocation;
+    }
+
+    public String getOutputKey() {
+        return outputKey;
+    }
+
+    public void setOutputKey(String outputKey) {
+        this.outputKey = outputKey;
     }
 
-    public String getMetadata() {
-        return metadata;
+    public String getDataType() {
+        return dataType;
     }
 
-    public void setMetadata(String metadata) {
-        this.metadata = metadata;
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
     }
 
     public String getValue() {
@@ -122,21 +140,25 @@ public class ApplicationOutputResource extends AbstractResource {
             applicationOutput.setTask(taskDetail);
             applicationOutput.setTaskId(taskDetail.getTaskId());
             applicationOutput.setOutputKey(outputKey);
-            applicationOutput.setOutputKeyType(outputType);
+            applicationOutput.setDataType(dataType);
+            applicationOutput.setValidityType(validityType);
+            applicationOutput.setDataMovement(dataMovement);
+            applicationOutput.setDataNameLocation(dataNameLocation);
             if (value != null){
                 applicationOutput.setValue(value.toCharArray());
             }
-            applicationOutput.setMetadata(metadata);
 
             if (existingOutput != null) {
                 existingOutput.setTask(taskDetail);
                 existingOutput.setTaskId(taskDetail.getTaskId());
                 existingOutput.setOutputKey(outputKey);
-                existingOutput.setOutputKeyType(outputType);
+                existingOutput.setDataType(dataType);
+                existingOutput.setValidityType(validityType);
+                existingOutput.setDataMovement(dataMovement);
+                existingOutput.setDataNameLocation(dataNameLocation);
                 if (value != null){
                     existingOutput.setValue(value.toCharArray());
                 }
-                existingOutput.setMetadata(metadata);
                 applicationOutput = em.merge(existingOutput);
             } else {
                 em.persist(applicationOutput);

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentInputResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentInputResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentInputResource.java
index 26f7ce5..eaf401d 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentInputResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentInputResource.java
@@ -40,8 +40,71 @@ public class ExperimentInputResource extends AbstractResource {
     private ExperimentResource experimentResource;
     private String experimentKey;
     private String value;
-    private String inputType;
     private String metadata;
+    private String dataType;
+    private String appArgument;
+    private boolean standardInput;
+    private String userFriendlyDesc;
+    private int inputOrder;
+    private String validityType;
+    private String commandLineType;
+    private boolean dataStaged;
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public String getCommandLineType() {
+        return commandLineType;
+    }
+
+    public void setCommandLineType(String commandLineType) {
+        this.commandLineType = commandLineType;
+    }
+
+    public boolean isDataStaged() {
+        return dataStaged;
+    }
+
+    public void setDataStaged(boolean dataStaged) {
+        this.dataStaged = dataStaged;
+    }
+
+    public int getInputOrder() {
+        return inputOrder;
+    }
+
+    public void setInputOrder(int inputOrder) {
+        this.inputOrder = inputOrder;
+    }
+
+    public String getAppArgument() {
+        return appArgument;
+    }
+
+    public void setAppArgument(String appArgument) {
+        this.appArgument = appArgument;
+    }
+
+    public boolean isStandardInput() {
+        return standardInput;
+    }
+
+    public void setStandardInput(boolean standardInput) {
+        this.standardInput = standardInput;
+    }
+
+    public String getUserFriendlyDesc() {
+        return userFriendlyDesc;
+    }
+
+    public void setUserFriendlyDesc(String userFriendlyDesc) {
+        this.userFriendlyDesc = userFriendlyDesc;
+    }
 
     public String getExperimentKey() {
         return experimentKey;
@@ -67,12 +130,12 @@ public class ExperimentInputResource extends AbstractResource {
         this.experimentResource = experimentResource;
     }
 
-    public String getInputType() {
-        return inputType;
+    public String getDataType() {
+        return dataType;
     }
 
-    public void setInputType(String inputType) {
-        this.inputType = inputType;
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
     }
 
     public String getMetadata() {
@@ -120,9 +183,15 @@ public class ExperimentInputResource extends AbstractResource {
             if (value != null){
                 exInput.setValue(value.toCharArray());
             }
-            exInput.setInputType(inputType);
+            exInput.setDataType(dataType);
             exInput.setMetadata(metadata);
-
+            exInput.setAppArgument(appArgument);
+            exInput.setStandardInput(standardInput);
+            exInput.setUserFriendlyDesc(userFriendlyDesc);
+            exInput.setInputOrder(inputOrder);
+            exInput.setCommandLineType(commandLineType);
+            exInput.setValidityType(validityType);
+            exInput.setDataStaged(dataStaged);
             if (existingInput != null) {
                 existingInput.setEx_key(experimentKey);
                 existingInput.setExperiment(experiment);
@@ -130,8 +199,15 @@ public class ExperimentInputResource extends AbstractResource {
                 if (value != null){
                     existingInput.setValue(value.toCharArray());
                 }
-                existingInput.setInputType(inputType);
+                existingInput.setDataType(dataType);
                 existingInput.setMetadata(metadata);
+                existingInput.setAppArgument(appArgument);
+                existingInput.setStandardInput(standardInput);
+                existingInput.setUserFriendlyDesc(userFriendlyDesc);
+                existingInput.setInputOrder(inputOrder);
+                existingInput.setCommandLineType(commandLineType);
+                existingInput.setValidityType(validityType);
+                existingInput.setDataStaged(dataStaged);
                 exInput = em.merge(existingInput);
             } else {
                 em.persist(exInput);

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentOutputResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentOutputResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentOutputResource.java
index 5b2f0bb..983ff8b 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentOutputResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ExperimentOutputResource.java
@@ -40,8 +40,34 @@ public class ExperimentOutputResource extends AbstractResource {
     private ExperimentResource experimentResource;
     private String experimentKey;
     private String value;
-    private String outputType;
-    private String metadata;
+    private String dataType;
+    private String validityType;
+    private boolean dataMovement;
+    private String dataNameLocation;
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public boolean isDataMovement() {
+        return dataMovement;
+    }
+
+    public void setDataMovement(boolean dataMovement) {
+        this.dataMovement = dataMovement;
+    }
+
+    public String getDataNameLocation() {
+        return dataNameLocation;
+    }
+
+    public void setDataNameLocation(String dataNameLocation) {
+        this.dataNameLocation = dataNameLocation;
+    }
 
     public String getExperimentKey() {
         return experimentKey;
@@ -67,20 +93,12 @@ public class ExperimentOutputResource extends AbstractResource {
         this.experimentResource = experimentResource;
     }
 
-    public String getOutputType() {
-        return outputType;
-    }
-
-    public void setOutputType(String outputType) {
-        this.outputType = outputType;
-    }
-
-    public String getMetadata() {
-        return metadata;
+    public String getDataType() {
+        return dataType;
     }
 
-    public void setMetadata(String metadata) {
-        this.metadata = metadata;
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
     }
 
     public Resource create(ResourceType type)  throws RegistryException {
@@ -120,8 +138,10 @@ public class ExperimentOutputResource extends AbstractResource {
             if (value != null){
                 exOutput.setValue(value.toCharArray());
             }
-            exOutput.setOutputKeyType(outputType);
-            exOutput.setMetadata(metadata);
+            exOutput.setDataType(dataType);
+            exOutput.setValidityType(validityType);
+            exOutput.setDataMovement(dataMovement);
+            exOutput.setDataNameLocation(dataNameLocation);
 
             if (existingOutput != null) {
                 existingOutput.setEx_key(experimentKey);
@@ -130,8 +150,10 @@ public class ExperimentOutputResource extends AbstractResource {
                     existingOutput.setValue(value.toCharArray());
                 }
                 existingOutput.setExperiment_id(experiment.getExpId());
-                existingOutput.setOutputKeyType(outputType);
-                existingOutput.setMetadata(metadata);
+                existingOutput.setDataType(dataType);
+                existingOutput.setValidityType(validityType);
+                existingOutput.setDataMovement(dataMovement);
+                existingOutput.setDataNameLocation(dataNameLocation);
                 exOutput = em.merge(existingOutput);
             } else {
                 em.persist(exOutput);

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeInputResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeInputResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeInputResource.java
index 138dd6c..75fe601 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeInputResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeInputResource.java
@@ -40,9 +40,64 @@ public class NodeInputResource extends AbstractResource {
 
     private WorkflowNodeDetailResource nodeDetailResource;
     private String inputKey;
-    private String inputType;
+    private String dataType;
     private String metadata;
     private String value;
+    private String appArgument;
+    private boolean standardInput;
+    private String userFriendlyDesc;
+    private int inputOrder;
+    private String validityType;
+    private String commandLineType;
+    private boolean dataStaged;
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public String getCommandLineType() {
+        return commandLineType;
+    }
+
+    public void setCommandLineType(String commandLineType) {
+        this.commandLineType = commandLineType;
+    }
+
+    public boolean isDataStaged() {
+        return dataStaged;
+    }
+
+    public void setDataStaged(boolean dataStaged) {
+        this.dataStaged = dataStaged;
+    }
+
+    public String getAppArgument() {
+        return appArgument;
+    }
+
+    public void setAppArgument(String appArgument) {
+        this.appArgument = appArgument;
+    }
+
+    public boolean isStandardInput() {
+        return standardInput;
+    }
+
+    public void setStandardInput(boolean standardInput) {
+        this.standardInput = standardInput;
+    }
+
+    public String getUserFriendlyDesc() {
+        return userFriendlyDesc;
+    }
+
+    public void setUserFriendlyDesc(String userFriendlyDesc) {
+        this.userFriendlyDesc = userFriendlyDesc;
+    }
 
     public WorkflowNodeDetailResource getNodeDetailResource() {
         return nodeDetailResource;
@@ -60,12 +115,12 @@ public class NodeInputResource extends AbstractResource {
         this.inputKey = inputKey;
     }
 
-    public String getInputType() {
-        return inputType;
+    public String getDataType() {
+        return dataType;
     }
 
-    public void setInputType(String inputType) {
-        this.inputType = inputType;
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
     }
 
     public String getMetadata() {
@@ -84,7 +139,14 @@ public class NodeInputResource extends AbstractResource {
         this.value = value;
     }
 
-    
+    public int getInputOrder() {
+        return inputOrder;
+    }
+
+    public void setInputOrder(int inputOrder) {
+        this.inputOrder = inputOrder;
+    }
+
     public Resource create(ResourceType type) throws RegistryException {
         logger.error("Unsupported resource type for node input data resource.", new UnsupportedOperationException());
         throw new UnsupportedOperationException();
@@ -123,17 +185,31 @@ public class NodeInputResource extends AbstractResource {
             nodeInput.setNodeDetails(nodeDetail);
             nodeInput.setNodeId(nodeDetail.getNodeId());
             nodeInput.setInputKey(inputKey);
-            nodeInput.setInputKeyType(inputType);
+            nodeInput.setDataType(dataType);
             nodeInput.setValue(value);
             nodeInput.setMetadata(metadata);
+            nodeInput.setAppArgument(appArgument);
+            nodeInput.setStandardInput(standardInput);
+            nodeInput.setUserFriendlyDesc(userFriendlyDesc);
+            nodeInput.setInputOrder(inputOrder);
+            nodeInput.setCommandLineType(commandLineType);
+            nodeInput.setValidityType(validityType);
+            nodeInput.setDataStaged(dataStaged);
 
             if (existingInput != null){
                 existingInput.setNodeDetails(nodeDetail);
                 existingInput.setNodeId(nodeDetail.getNodeId());
                 existingInput.setInputKey(inputKey);
-                existingInput.setInputKeyType(inputType);
+                existingInput.setDataType(dataType);
                 existingInput.setValue(value);
                 existingInput.setMetadata(metadata);
+                existingInput.setAppArgument(appArgument);
+                existingInput.setStandardInput(standardInput);
+                existingInput.setUserFriendlyDesc(userFriendlyDesc);
+                existingInput.setInputOrder(inputOrder);
+                existingInput.setCommandLineType(commandLineType);
+                existingInput.setValidityType(validityType);
+                existingInput.setDataStaged(dataStaged);
                 nodeInput = em.merge(existingInput);
             }else {
                 em.persist(nodeInput);

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java
index 164a2e0..caeae7e 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/NodeOutputResource.java
@@ -40,9 +40,35 @@ public class NodeOutputResource extends AbstractResource {
 	
     private WorkflowNodeDetailResource nodeDetailResource;
     private String outputKey;
-    private String outputType;
-    private String metadata;
+    private String dataType;
     private String value;
+    private String validityType;
+    private boolean dataMovement;
+    private String dataNameLocation;
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public boolean isDataMovement() {
+        return dataMovement;
+    }
+
+    public void setDataMovement(boolean dataMovement) {
+        this.dataMovement = dataMovement;
+    }
+
+    public String getDataNameLocation() {
+        return dataNameLocation;
+    }
+
+    public void setDataNameLocation(String dataNameLocation) {
+        this.dataNameLocation = dataNameLocation;
+    }
 
     public WorkflowNodeDetailResource getNodeDetailResource() {
         return nodeDetailResource;
@@ -60,20 +86,12 @@ public class NodeOutputResource extends AbstractResource {
         this.outputKey = outputKey;
     }
 
-    public String getOutputType() {
-        return outputType;
-    }
-
-    public void setOutputType(String outputType) {
-        this.outputType = outputType;
-    }
-
-    public String getMetadata() {
-        return metadata;
+    public String getDataType() {
+        return dataType;
     }
 
-    public void setMetadata(String metadata) {
-        this.metadata = metadata;
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
     }
 
     public String getValue() {
@@ -123,17 +141,21 @@ public class NodeOutputResource extends AbstractResource {
             nodeOutput.setNode(nodeDetail);
             nodeOutput.setNodeId(nodeDetail.getNodeId());
             nodeOutput.setOutputKey(outputKey);
-            nodeOutput.setOutputKeyType(outputType);
+            nodeOutput.setDataType(dataType);
             nodeOutput.setValue(value);
-            nodeOutput.setMetadata(metadata);
+            nodeOutput.setValidityType(validityType);
+            nodeOutput.setDataMovement(dataMovement);
+            nodeOutput.setDataNameLocation(dataNameLocation);
 
             if (existingOutput != null) {
                 existingOutput.setNode(nodeDetail);
                 existingOutput.setNodeId(nodeDetail.getNodeId());
                 existingOutput.setOutputKey(outputKey);
-                existingOutput.setOutputKeyType(outputType);
+                existingOutput.setDataType(dataType);
                 existingOutput.setValue(value);
-                existingOutput.setMetadata(metadata);
+                existingOutput.setValidityType(validityType);
+                existingOutput.setDataMovement(dataMovement);
+                existingOutput.setDataNameLocation(dataNameLocation);
                 nodeOutput = em.merge(existingOutput);
             } else {
                 em.persist(nodeOutput);

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
index 3218ecd..e131a47 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/Utils.java
@@ -513,9 +513,17 @@ public class Utils {
         if (o != null){
             ExperimentResource experimentResource = (ExperimentResource)createExperiment(o.getExperiment());
             eInputResource.setExperimentResource(experimentResource);
-            eInputResource.setInputType(o.getInputType());
+            eInputResource.setDataType(o.getDataType());
             eInputResource.setMetadata(o.getMetadata());
             eInputResource.setExperimentKey(o.getEx_key());
+            eInputResource.setAppArgument(o.getAppArgument());
+            eInputResource.setInputOrder(o.getInputOrder());
+            eInputResource.setStandardInput(o.isStandardInput());
+            eInputResource.setUserFriendlyDesc(o.getUserFriendlyDesc());
+            eInputResource.setValidityType(o.getValidityType());
+            eInputResource.setCommandLineType(o.getCommandLineType());
+            eInputResource.setDataStaged(o.isDataStaged());
+
             if (o.getValue() != null){
                 eInputResource.setValue(new String(o.getValue()));
             }
@@ -533,8 +541,10 @@ public class Utils {
             if (o.getValue() != null){
                 eOutputResource.setValue(new String(o.getValue()));
             }
-            eOutputResource.setOutputType(o.getOutputKeyType());
-            eOutputResource.setMetadata(o.getMetadata());
+            eOutputResource.setDataType(o.getDataType());
+            eOutputResource.setValidityType(o.getValidityType());
+            eOutputResource.setDataMovement(o.isDataMovement());
+            eOutputResource.setDataNameLocation(o.getDataNameLocation());
         }
         return eOutputResource;
     }
@@ -601,7 +611,14 @@ public class Utils {
             TaskDetailResource taskDetailResource = (TaskDetailResource)createTaskDetail(o.getTask());
             inputResource.setTaskDetailResource(taskDetailResource);
             inputResource.setInputKey(o.getInputKey());
-            inputResource.setInputType(o.getInputKeyType());
+            inputResource.setDataType(o.getDataType());
+            inputResource.setAppArgument(o.getAppArgument());
+            inputResource.setInputOrder(o.getInputOrder());
+            inputResource.setStandardInput(o.isStandardInput());
+            inputResource.setUserFriendlyDesc(o.getUserFriendlyDesc());
+            inputResource.setValidityType(o.getValidityType());
+            inputResource.setCommandLineType(o.getCommandLineType());
+            inputResource.setDataStaged(o.isDataStaged());
             if (o.getValue() != null){
                 inputResource.setValue(new String(o.getValue()));
             }
@@ -615,12 +632,14 @@ public class Utils {
         if (o != null){
             TaskDetailResource taskDetailResource = (TaskDetailResource)createTaskDetail(o.getTask());
             outputResource.setTaskDetailResource(taskDetailResource);
-            outputResource.setOutputType(o.getOutputKeyType());
+            outputResource.setDataType(o.getDataType());
             outputResource.setOutputKey(o.getOutputKey());
             if (o.getValue() != null){
                 outputResource.setValue(new String(o.getValue()));
             }
-            outputResource.setMetadata(o.getMetadata());
+            outputResource.setValidityType(o.getValidityType());
+            outputResource.setDataMovement(o.isDataMovement());
+            outputResource.setDataNameLocation(o.getDataNameLocation());
         }
         return outputResource;
     }
@@ -631,9 +650,16 @@ public class Utils {
             WorkflowNodeDetailResource nodeDetailResource = (WorkflowNodeDetailResource)createWorkflowNodeDetail(o.getNodeDetails());
             inputResource.setNodeDetailResource(nodeDetailResource);
             inputResource.setInputKey(o.getInputKey());
-            inputResource.setInputType(o.getInputKeyType());
+            inputResource.setDataType(o.getDataType());
             inputResource.setValue(o.getValue());
             inputResource.setMetadata(o.getMetadata());
+            inputResource.setAppArgument(o.getAppArgument());
+            inputResource.setInputOrder(o.getInputOrder());
+            inputResource.setStandardInput(o.isStandardInput());
+            inputResource.setUserFriendlyDesc(o.getUserFriendlyDesc());
+            inputResource.setValidityType(o.getValidityType());
+            inputResource.setCommandLineType(o.getCommandLineType());
+            inputResource.setDataStaged(o.isDataStaged());
         }
         return inputResource;
     }
@@ -643,10 +669,12 @@ public class Utils {
         if (o != null){
             WorkflowNodeDetailResource nodeDetailResource = (WorkflowNodeDetailResource)createWorkflowNodeDetail(o.getNode());
             outputResource.setNodeDetailResource(nodeDetailResource);
-            outputResource.setOutputType(o.getOutputKeyType());
+            outputResource.setDataType(o.getDataType());
             outputResource.setOutputKey(o.getOutputKey());
             outputResource.setValue(o.getValue());
-            outputResource.setMetadata(o.getMetadata());
+            outputResource.setValidityType(o.getValidityType());
+            outputResource.setDataMovement(o.isDataMovement());
+            outputResource.setDataNameLocation(o.getDataNameLocation());
         }
 
         return outputResource;

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
index 306bd3f..9818e6f 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/ThriftDataModelConversion.java
@@ -24,9 +24,7 @@ package org.apache.airavata.persistance.registry.jpa.utils;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.airavata.model.appcatalog.appinterface.DataType;
-import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
-import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
+import org.apache.airavata.model.appcatalog.appinterface.*;
 import org.apache.airavata.model.workspace.Project;
 import org.apache.airavata.model.workspace.experiment.ActionableGroup;
 import org.apache.airavata.model.workspace.experiment.AdvancedInputDataHandling;
@@ -186,28 +184,61 @@ public class ThriftDataModelConversion {
                 ExperimentInputResource expInput = (ExperimentInputResource) object;
                 dataObjectType.setName(expInput.getExperimentKey());
                 dataObjectType.setValue(expInput.getValue());
-                if (expInput.getInputType() != null){
-                    dataObjectType.setType(DataType.valueOf(expInput.getInputType()));
+                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());
+                if (expInput.getValidityType() != null){
+                    dataObjectType.setInputValid(ValidityType.valueOf(expInput.getValidityType()));
+                }
+                if (expInput.getCommandLineType() != null){
+                    dataObjectType.setAddedToCommandLine(CommandLineType.valueOf(expInput.getCommandLineType()));
+                }
+                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.getInputType() != null){
-                    dataObjectType.setType(DataType.valueOf(nodeInputResource.getInputType()));
+                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());
+                if (nodeInputResource.getValidityType() != null){
+                    dataObjectType.setInputValid(ValidityType.valueOf(nodeInputResource.getValidityType()));
+                }
+                if (nodeInputResource.getCommandLineType() != null){
+                    dataObjectType.setAddedToCommandLine(CommandLineType.valueOf(nodeInputResource.getCommandLineType()));
+                }
+                dataObjectType.setDataStaged(nodeInputResource.isDataStaged());
                 return dataObjectType;
             }else if (object instanceof ApplicationInputResource){
                 ApplicationInputResource inputResource = (ApplicationInputResource)object;
                 dataObjectType.setName(inputResource.getInputKey());
                 dataObjectType.setValue(inputResource.getValue());
-                if (inputResource.getInputType() != null){
-                    dataObjectType.setType(DataType.valueOf(inputResource.getInputType()));
+                if (inputResource.getDataType() != null){
+                    dataObjectType.setType(DataType.valueOf(inputResource.getDataType()));
                 }
                 dataObjectType.setMetaData(inputResource.getMetadata());
+                dataObjectType.setApplicationArgument(inputResource.getAppArgument());
+                dataObjectType.setStandardInput(inputResource.isStandardInput());
+                dataObjectType.setUserFriendlyDescription(inputResource.getUserFriendlyDesc());
+                dataObjectType.setInputOrder(inputResource.getInputOrder());
+                if (inputResource.getValidityType() != null){
+                    dataObjectType.setInputValid(ValidityType.valueOf(inputResource.getValidityType()));
+                }
+                if (inputResource.getCommandLineType() != null){
+                    dataObjectType.setAddedToCommandLine(CommandLineType.valueOf(inputResource.getCommandLineType()));
+                }
+                dataObjectType.setDataStaged(inputResource.isDataStaged());
                 return dataObjectType;
             }else {
                 return null;
@@ -223,28 +254,40 @@ public class ThriftDataModelConversion {
                 ExperimentOutputResource expOutput = (ExperimentOutputResource)object;
                 dataObjectType.setName(expOutput.getExperimentKey());
                 dataObjectType.setValue(expOutput.getValue());
-                if (expOutput.getOutputType() != null){
-                    dataObjectType.setType(DataType.valueOf(expOutput.getOutputType()));
+                if (expOutput.getDataType() != null){
+                    dataObjectType.setType(DataType.valueOf(expOutput.getDataType()));
+                }
+                if (expOutput.getValidityType() != null){
+                    dataObjectType.setValidityType(ValidityType.valueOf(expOutput.getValidityType()));
                 }
-//                dataObjectType.setMetaData(expOutput.getMetadata());
+                dataObjectType.setDataMovement(expOutput.isDataMovement());
+                dataObjectType.setDataNameLocation(expOutput.getDataNameLocation());
                 return dataObjectType;
             }else if (object instanceof NodeOutputResource){
                 NodeOutputResource nodeOutputResource = (NodeOutputResource)object;
                 dataObjectType.setName(nodeOutputResource.getOutputKey());
                 dataObjectType.setValue(nodeOutputResource.getValue());
-                if (nodeOutputResource.getOutputType() != null){
-                    dataObjectType.setType(DataType.valueOf(nodeOutputResource.getOutputType()));
+                if (nodeOutputResource.getDataType() != null){
+                    dataObjectType.setType(DataType.valueOf(nodeOutputResource.getDataType()));
                 }
-//                dataObjectType.setMetaData(nodeOutputResource.getMetadata());
+                if (nodeOutputResource.getValidityType() != null){
+                    dataObjectType.setValidityType(ValidityType.valueOf(nodeOutputResource.getValidityType()));
+                }
+                dataObjectType.setDataMovement(nodeOutputResource.isDataMovement());
+                dataObjectType.setDataNameLocation(nodeOutputResource.getDataNameLocation());
                 return dataObjectType;
             }else if (object instanceof ApplicationOutputResource){
                 ApplicationOutputResource outputResource = (ApplicationOutputResource)object;
                 dataObjectType.setName(outputResource.getOutputKey());
                 dataObjectType.setValue(outputResource.getValue());
-                if (outputResource.getOutputType() != null){
-                    dataObjectType.setType(DataType.valueOf(outputResource.getOutputType()));
+                if (outputResource.getDataType() != null){
+                    dataObjectType.setType(DataType.valueOf(outputResource.getDataType()));
+                }
+                if (outputResource.getValidityType() != null){
+                    dataObjectType.setValidityType(ValidityType.valueOf(outputResource.getValidityType()));
                 }
-//                dataObjectType.setMetaData(outputResource.getMetadata());
+                dataObjectType.setDataMovement(outputResource.isDataMovement());
+                dataObjectType.setDataNameLocation(outputResource.getDataNameLocation());
                 return dataObjectType;
             }else {
                 return null;

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/resources/registry-derby.sql
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/resources/registry-derby.sql b/modules/registry/airavata-jpa-registry/src/main/resources/registry-derby.sql
index 9ed5ca9..c1bd458 100644
--- a/modules/registry/airavata-jpa-registry/src/main/resources/registry-derby.sql
+++ b/modules/registry/airavata-jpa-registry/src/main/resources/registry-derby.sql
@@ -125,9 +125,16 @@ CREATE TABLE EXPERIMENT_INPUT
 (
         EXPERIMENT_ID VARCHAR(255),
         INPUT_KEY VARCHAR(255) NOT NULL,
-        INPUT_TYPE VARCHAR(255),
+        DATA_TYPE VARCHAR(255),
         METADATA VARCHAR(255),
+        APP_ARGUMENT VARCHAR(255),
+        STANDARD_INPUT SMALLINT,
+        USER_FRIENDLY_DESC VARCHAR(255),
         VALUE CLOB,
+        INPUT_ORDER INTEGER,
+        VALIDITY_TYPE VARCHAR(255),
+        COMMANDLINE_TYPE VARCHAR(255),
+        DATA_STAGED SMALLINT,
         PRIMARY KEY(EXPERIMENT_ID,INPUT_KEY),
         FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
 );
@@ -136,9 +143,11 @@ CREATE TABLE EXPERIMENT_OUTPUT
 (
         EXPERIMENT_ID VARCHAR(255),
         OUTPUT_KEY VARCHAR(255) NOT NULL,
-        OUTPUT_KEY_TYPE VARCHAR(255),
-        METADATA VARCHAR(255),
+        DATA_TYPE VARCHAR(255),
         VALUE CLOB,
+        VALIDITY_TYPE VARCHAR(255),
+        DATA_MOVEMENT SMALLINT,
+        DATA_NAME_LOCATION VARCHAR(255),
         PRIMARY KEY(EXPERIMENT_ID,OUTPUT_KEY),
         FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
 );
@@ -192,9 +201,16 @@ CREATE TABLE APPLICATION_INPUT
 (
         TASK_ID VARCHAR(255),
         INPUT_KEY VARCHAR(255) NOT NULL,
-        INPUT_KEY_TYPE VARCHAR(255),
+        DATA_TYPE VARCHAR(255),
         METADATA VARCHAR(255),
+        APP_ARGUMENT VARCHAR(255),
+        STANDARD_INPUT SMALLINT,
+        USER_FRIENDLY_DESC VARCHAR(255),
         VALUE CLOB,
+        INPUT_ORDER INTEGER,
+        VALIDITY_TYPE VARCHAR(255),
+        COMMANDLINE_TYPE VARCHAR(255),
+        DATA_STAGED SMALLINT,
         PRIMARY KEY(TASK_ID,INPUT_KEY),
         FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE
 );
@@ -203,9 +219,11 @@ CREATE TABLE APPLICATION_OUTPUT
 (
         TASK_ID VARCHAR(255),
         OUTPUT_KEY VARCHAR(255) NOT NULL,
-        OUTPUT_KEY_TYPE VARCHAR(255),
-        METADATA VARCHAR(255),
+        DATA_TYPE VARCHAR(255),
         VALUE CLOB,
+        VALIDITY_TYPE VARCHAR(255),
+        DATA_MOVEMENT SMALLINT,
+        DATA_NAME_LOCATION VARCHAR(255),
         PRIMARY KEY(TASK_ID,OUTPUT_KEY),
         FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE
 );
@@ -214,9 +232,16 @@ CREATE TABLE NODE_INPUT
 (
        NODE_INSTANCE_ID VARCHAR(255),
        INPUT_KEY VARCHAR(255) NOT NULL,
-       INPUT_KEY_TYPE VARCHAR(255),
+       DATA_TYPE VARCHAR(255),
        METADATA VARCHAR(255),
+       APP_ARGUMENT VARCHAR(255),
+       STANDARD_INPUT SMALLINT,
+       USER_FRIENDLY_DESC VARCHAR(255),
        VALUE VARCHAR(255),
+       INPUT_ORDER INTEGER,
+       VALIDITY_TYPE VARCHAR(255),
+       COMMANDLINE_TYPE VARCHAR(255),
+       DATA_STAGED SMALLINT,
        PRIMARY KEY(NODE_INSTANCE_ID,INPUT_KEY),
        FOREIGN KEY (NODE_INSTANCE_ID) REFERENCES WORKFLOW_NODE_DETAIL(NODE_INSTANCE_ID) ON DELETE CASCADE
 );
@@ -225,9 +250,11 @@ CREATE TABLE NODE_OUTPUT
 (
        NODE_INSTANCE_ID VARCHAR(255),
        OUTPUT_KEY VARCHAR(255) NOT NULL,
-       OUTPUT_KEY_TYPE VARCHAR(255),
-       METADATA VARCHAR(255),
+       DATA_TYPE VARCHAR(255),
        VALUE VARCHAR(255),
+       VALIDITY_TYPE VARCHAR(255),
+       DATA_MOVEMENT SMALLINT,
+       DATA_NAME_LOCATION VARCHAR(255),
        PRIMARY KEY(NODE_INSTANCE_ID,OUTPUT_KEY),
        FOREIGN KEY (NODE_INSTANCE_ID) REFERENCES WORKFLOW_NODE_DETAIL(NODE_INSTANCE_ID) ON DELETE CASCADE
 );

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/main/resources/registry-mysql.sql
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/resources/registry-mysql.sql b/modules/registry/airavata-jpa-registry/src/main/resources/registry-mysql.sql
index 286a8fb..7f7dfab 100644
--- a/modules/registry/airavata-jpa-registry/src/main/resources/registry-mysql.sql
+++ b/modules/registry/airavata-jpa-registry/src/main/resources/registry-mysql.sql
@@ -125,9 +125,16 @@ CREATE TABLE EXPERIMENT_INPUT
 (
         EXPERIMENT_ID VARCHAR(255),
         INPUT_KEY VARCHAR(255) NOT NULL,
-        INPUT_TYPE VARCHAR(255),
+        DATA_TYPE VARCHAR(255),
+        APP_ARGUMENT VARCHAR(255),
+        STANDARD_INPUT SMALLINT,
+        USER_FRIENDLY_DESC VARCHAR(255),
         METADATA VARCHAR(255),
         VALUE LONGTEXT,
+        INPUT_ORDER INTEGER,
+        VALIDITY_TYPE VARCHAR(255),
+        COMMANDLINE_TYPE VARCHAR(255),
+        DATA_STAGED SMALLINT,
         PRIMARY KEY(EXPERIMENT_ID,INPUT_KEY),
         FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
 );
@@ -136,9 +143,11 @@ CREATE TABLE EXPERIMENT_OUTPUT
 (
         EXPERIMENT_ID VARCHAR(255),
         OUTPUT_KEY VARCHAR(255) NOT NULL,
-        OUTPUT_KEY_TYPE VARCHAR(255),
-        METADATA VARCHAR(255),
+        DATA_TYPE VARCHAR(255),
         VALUE LONGTEXT,
+        VALIDITY_TYPE VARCHAR(255),
+        DATA_MOVEMENT SMALLINT,
+        DATA_NAME_LOCATION VARCHAR(255),
         PRIMARY KEY(EXPERIMENT_ID,OUTPUT_KEY),
         FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
 );
@@ -173,9 +182,16 @@ CREATE TABLE APPLICATION_INPUT
 (
         TASK_ID VARCHAR(255),
         INPUT_KEY VARCHAR(255) NOT NULL,
-        INPUT_KEY_TYPE VARCHAR(255),
+        DATA_TYPE VARCHAR(255),
+        APP_ARGUMENT VARCHAR(255),
+        STANDARD_INPUT SMALLINT,
+        USER_FRIENDLY_DESC VARCHAR(255),
         METADATA VARCHAR(255),
         VALUE LONGTEXT,
+        INPUT_ORDER INTEGER,
+        VALIDITY_TYPE VARCHAR(255),
+        COMMANDLINE_TYPE VARCHAR(255),
+        DATA_STAGED SMALLINT,
         PRIMARY KEY(TASK_ID,INPUT_KEY),
         FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE
 );
@@ -184,9 +200,11 @@ CREATE TABLE APPLICATION_OUTPUT
 (
         TASK_ID VARCHAR(255),
         OUTPUT_KEY VARCHAR(255) NOT NULL,
-        OUTPUT_KEY_TYPE VARCHAR(255),
-        METADATA VARCHAR(255),
+        DATA_TYPE VARCHAR(255),
         VALUE LONGTEXT,
+        VALIDITY_TYPE VARCHAR(255),
+        DATA_MOVEMENT SMALLINT,
+        DATA_NAME_LOCATION VARCHAR(255),
         PRIMARY KEY(TASK_ID,OUTPUT_KEY),
         FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE
 );
@@ -195,9 +213,16 @@ CREATE TABLE NODE_INPUT
 (
        NODE_INSTANCE_ID VARCHAR(255),
        INPUT_KEY VARCHAR(255) NOT NULL,
-       INPUT_KEY_TYPE VARCHAR(255),
+       DATA_TYPE VARCHAR(255),
+       APP_ARGUMENT VARCHAR(255),
+       STANDARD_INPUT SMALLINT,
+       USER_FRIENDLY_DESC VARCHAR(255),
        METADATA VARCHAR(255),
        VALUE VARCHAR(255),
+       INPUT_ORDER INTEGER,
+       VALIDITY_TYPE VARCHAR(255),
+       COMMANDLINE_TYPE VARCHAR(255),
+       DATA_STAGED SMALLINT,
        PRIMARY KEY(NODE_INSTANCE_ID,INPUT_KEY),
        FOREIGN KEY (NODE_INSTANCE_ID) REFERENCES WORKFLOW_NODE_DETAIL(NODE_INSTANCE_ID) ON DELETE CASCADE
 );
@@ -206,9 +231,11 @@ CREATE TABLE NODE_OUTPUT
 (
        NODE_INSTANCE_ID VARCHAR(255),
        OUTPUT_KEY VARCHAR(255) NOT NULL,
-       OUTPUT_KEY_TYPE VARCHAR(255),
-       METADATA VARCHAR(255),
+       DATA_TYPE VARCHAR(255),
        VALUE VARCHAR(255),
+       VALIDITY_TYPE VARCHAR(255),
+       DATA_MOVEMENT SMALLINT,
+       DATA_NAME_LOCATION VARCHAR(255),
        PRIMARY KEY(NODE_INSTANCE_ID,OUTPUT_KEY),
        FOREIGN KEY (NODE_INSTANCE_ID) REFERENCES WORKFLOW_NODE_DETAIL(NODE_INSTANCE_ID) ON DELETE CASCADE
 );

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/ExperimentInputResourceTest.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/ExperimentInputResourceTest.java b/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/ExperimentInputResourceTest.java
index 318b044..a46e196 100644
--- a/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/ExperimentInputResourceTest.java
+++ b/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/ExperimentInputResourceTest.java
@@ -53,7 +53,7 @@ public class ExperimentInputResourceTest extends AbstractResourceTest  {
         experimentInputResource.setExperimentResource(experimentResource);
         experimentInputResource.setExperimentKey("testKey");
         experimentInputResource.setValue("testValue");
-        experimentInputResource.setInputType("string");
+        experimentInputResource.setDataType("string");
         experimentInputResource.save();
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/ExperimentOutputResourceTest.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/ExperimentOutputResourceTest.java b/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/ExperimentOutputResourceTest.java
index ad8ae7f..696db36 100644
--- a/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/ExperimentOutputResourceTest.java
+++ b/modules/registry/airavata-jpa-registry/src/test/java/org/apache/airavata/persistance/registry/jpa/ExperimentOutputResourceTest.java
@@ -54,7 +54,7 @@ public class ExperimentOutputResourceTest extends AbstractResourceTest  {
         outputResource.setExperimentResource(experimentResource);
         outputResource.setExperimentKey("testKey");
         outputResource.setValue("testValue");
-        outputResource.setOutputType("string");
+        outputResource.setDataType("string");
         outputResource.save();
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/registry/airavata-jpa-registry/src/test/resources/registry-derby.sql
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/test/resources/registry-derby.sql b/modules/registry/airavata-jpa-registry/src/test/resources/registry-derby.sql
index 9ed5ca9..c1bd458 100644
--- a/modules/registry/airavata-jpa-registry/src/test/resources/registry-derby.sql
+++ b/modules/registry/airavata-jpa-registry/src/test/resources/registry-derby.sql
@@ -125,9 +125,16 @@ CREATE TABLE EXPERIMENT_INPUT
 (
         EXPERIMENT_ID VARCHAR(255),
         INPUT_KEY VARCHAR(255) NOT NULL,
-        INPUT_TYPE VARCHAR(255),
+        DATA_TYPE VARCHAR(255),
         METADATA VARCHAR(255),
+        APP_ARGUMENT VARCHAR(255),
+        STANDARD_INPUT SMALLINT,
+        USER_FRIENDLY_DESC VARCHAR(255),
         VALUE CLOB,
+        INPUT_ORDER INTEGER,
+        VALIDITY_TYPE VARCHAR(255),
+        COMMANDLINE_TYPE VARCHAR(255),
+        DATA_STAGED SMALLINT,
         PRIMARY KEY(EXPERIMENT_ID,INPUT_KEY),
         FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
 );
@@ -136,9 +143,11 @@ CREATE TABLE EXPERIMENT_OUTPUT
 (
         EXPERIMENT_ID VARCHAR(255),
         OUTPUT_KEY VARCHAR(255) NOT NULL,
-        OUTPUT_KEY_TYPE VARCHAR(255),
-        METADATA VARCHAR(255),
+        DATA_TYPE VARCHAR(255),
         VALUE CLOB,
+        VALIDITY_TYPE VARCHAR(255),
+        DATA_MOVEMENT SMALLINT,
+        DATA_NAME_LOCATION VARCHAR(255),
         PRIMARY KEY(EXPERIMENT_ID,OUTPUT_KEY),
         FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
 );
@@ -192,9 +201,16 @@ CREATE TABLE APPLICATION_INPUT
 (
         TASK_ID VARCHAR(255),
         INPUT_KEY VARCHAR(255) NOT NULL,
-        INPUT_KEY_TYPE VARCHAR(255),
+        DATA_TYPE VARCHAR(255),
         METADATA VARCHAR(255),
+        APP_ARGUMENT VARCHAR(255),
+        STANDARD_INPUT SMALLINT,
+        USER_FRIENDLY_DESC VARCHAR(255),
         VALUE CLOB,
+        INPUT_ORDER INTEGER,
+        VALIDITY_TYPE VARCHAR(255),
+        COMMANDLINE_TYPE VARCHAR(255),
+        DATA_STAGED SMALLINT,
         PRIMARY KEY(TASK_ID,INPUT_KEY),
         FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE
 );
@@ -203,9 +219,11 @@ CREATE TABLE APPLICATION_OUTPUT
 (
         TASK_ID VARCHAR(255),
         OUTPUT_KEY VARCHAR(255) NOT NULL,
-        OUTPUT_KEY_TYPE VARCHAR(255),
-        METADATA VARCHAR(255),
+        DATA_TYPE VARCHAR(255),
         VALUE CLOB,
+        VALIDITY_TYPE VARCHAR(255),
+        DATA_MOVEMENT SMALLINT,
+        DATA_NAME_LOCATION VARCHAR(255),
         PRIMARY KEY(TASK_ID,OUTPUT_KEY),
         FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE
 );
@@ -214,9 +232,16 @@ CREATE TABLE NODE_INPUT
 (
        NODE_INSTANCE_ID VARCHAR(255),
        INPUT_KEY VARCHAR(255) NOT NULL,
-       INPUT_KEY_TYPE VARCHAR(255),
+       DATA_TYPE VARCHAR(255),
        METADATA VARCHAR(255),
+       APP_ARGUMENT VARCHAR(255),
+       STANDARD_INPUT SMALLINT,
+       USER_FRIENDLY_DESC VARCHAR(255),
        VALUE VARCHAR(255),
+       INPUT_ORDER INTEGER,
+       VALIDITY_TYPE VARCHAR(255),
+       COMMANDLINE_TYPE VARCHAR(255),
+       DATA_STAGED SMALLINT,
        PRIMARY KEY(NODE_INSTANCE_ID,INPUT_KEY),
        FOREIGN KEY (NODE_INSTANCE_ID) REFERENCES WORKFLOW_NODE_DETAIL(NODE_INSTANCE_ID) ON DELETE CASCADE
 );
@@ -225,9 +250,11 @@ CREATE TABLE NODE_OUTPUT
 (
        NODE_INSTANCE_ID VARCHAR(255),
        OUTPUT_KEY VARCHAR(255) NOT NULL,
-       OUTPUT_KEY_TYPE VARCHAR(255),
-       METADATA VARCHAR(255),
+       DATA_TYPE VARCHAR(255),
        VALUE VARCHAR(255),
+       VALIDITY_TYPE VARCHAR(255),
+       DATA_MOVEMENT SMALLINT,
+       DATA_NAME_LOCATION VARCHAR(255),
        PRIMARY KEY(NODE_INSTANCE_ID,OUTPUT_KEY),
        FOREIGN KEY (NODE_INSTANCE_ID) REFERENCES WORKFLOW_NODE_DETAIL(NODE_INSTANCE_ID) ON DELETE CASCADE
 );

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java
index fa4fd32..1f23601 100644
--- a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java
@@ -1050,7 +1050,7 @@ public class WorkflowInterpreter implements AbstractActivityListener{
 			Node fromNode = dataPort.getFromNode();
 			String portInputValue = null;
 			if (fromNode instanceof InputNode){
-				portInputValue = (String) ((InputNode) fromNode).getDefaultValue();			
+				portInputValue = (String) ((InputNode) fromNode).getDefaultValue();
 			} else if (fromNode instanceof WSNode){
 				Map<String, String> outputData = nodeOutputData.get(fromNode);
                 portInputValue = outputData.get(dataPort.getName());
@@ -1058,9 +1058,17 @@ public class WorkflowInterpreter implements AbstractActivityListener{
                     portInputValue = outputData.get(dataPort.getEdge(0).getFromPort().getName());
                 }
 			}
-            InputDataObjectType elem = new InputDataObjectType();
-            elem.setName(dataPort.getName());
+			// 123456789
+			InputDataObjectType elem = new InputDataObjectType();
+			elem.setName(dataPort.getName());
 			elem.setValue(portInputValue);
+			if (dataPort instanceof WSPort) {
+				WSPort port = (WSPort) dataPort;
+				elem.setInputOrder(port.getComponentPort().getInputOrder());
+				elem.setApplicationArgument(
+						(port.getComponentPort().getApplicationArgument() != null ? port.getComponentPort().getApplicationArgument() : ""));
+			}
+
 			nodeDetails.addToNodeInputs(elem);
 		}
 		try {