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/08 19:32:29 UTC

[1/6] airavata git commit: Removed meta data and visibility fields from inputconfiguration window

Repository: airavata
Updated Branches:
  refs/heads/master b6d9a5e4d -> 0c6301afa


Removed meta data and visibility fields from inputconfiguration window


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/46979049
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/46979049
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/46979049

Branch: refs/heads/master
Commit: 469790490d20d95d24ca057aeea4f815f450d2c9
Parents: 6f89736
Author: shamrath <sh...@gmail.com>
Authored: Tue Dec 2 19:53:56 2014 -0500
Committer: shamrath <sh...@gmail.com>
Committed: Tue Dec 2 19:53:56 2014 -0500

----------------------------------------------------------------------
 .../graph/system/InputConfigurationDialog.java  | 90 ++++++++++----------
 1 file changed, 45 insertions(+), 45 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/46979049/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/graph/system/InputConfigurationDialog.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/graph/system/InputConfigurationDialog.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/graph/system/InputConfigurationDialog.java
index 03130be..ffbd764 100644
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/graph/system/InputConfigurationDialog.java
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/graph/system/InputConfigurationDialog.java
@@ -69,7 +69,7 @@ public class InputConfigurationDialog {
      * Constructs an InputConfigurationWindow.
      * 
      * @param node
-     * @param engine
+     * @param xbayaGUI
      */
     public InputConfigurationDialog(InputNode node, XBayaGUI xbayaGUI) {
         this.xbayaGUI=xbayaGUI;
@@ -86,26 +86,26 @@ public class InputConfigurationDialog {
         boolean knownType = LEADTypes.isKnownType(type);
         if (knownType) {
             textComponent = this.valueTextField;
-            this.valueLabel.setText("Default value");
+            this.valueLabel.setText("Value");
         } else {
             textComponent = this.valueTextArea;
-            this.valueLabel.setText("Default value (in XML)");
+            this.valueLabel.setText("Value (in XML)");
         }
         this.valueLabel.setLabelFor(textComponent);
-        final int index = 7;
+        final int index = 3;
         this.gridPanel.remove(index);
         this.gridPanel.add(textComponent, index);
         if (knownType) {
-            this.gridPanel.layout(new double[] { 0, 1.0 / 2,0, 0, 1.0 / 2 }, new double[] { 0, 1 });
+            this.gridPanel.layout(new double[] { 0,0, 1.0 / 2}, new double[] { 0, 1 });
         } else {
-            this.gridPanel.layout(new double[] { 0, 1.0 / 3,0, 1.0 / 3, 1.0 / 3 }, new double[] { 0, 1 });
+            this.gridPanel.layout(new double[] { 0, 1.0 / 3,0, 1.0 / 3}, new double[] { 0, 1 });
         }
 
         String name = this.node.getID(); // Show ID.
         this.nameTextField.setText(name);
 
-        String visibility = Boolean.toString(this.node.isVisibility());
-        this.visibilityTextField.setText(visibility);
+//        String visibility = Boolean.toString(this.node.isVisibility());
+//        this.visibilityTextField.setText(visibility);
 
         this.descriptionTextArea.setText(this.node.getDescription());
         Object value = this.node.getDefaultValue();
@@ -123,14 +123,14 @@ public class InputConfigurationDialog {
             this.valueTextArea.setText(valueString);
         }
         textComponent.setText(valueString);
-        XmlElement metadata = this.node.getMetadata();
-        String metadataText;
-        if (metadata == null) {
-            metadataText = WSConstants.EMPTY_APPINFO;
-        } else {
-            metadataText = XMLUtil.xmlElementToString(metadata);
-        }
-        this.metadataTextArea.setText(metadataText);
+//        XmlElement metadata = this.node.getMetadata();
+//        String metadataText;
+//        if (metadata == null) {
+//            metadataText = WSConstants.EMPTY_APPINFO;
+//        } else {
+//            metadataText = XMLUtil.xmlElementToString(metadata);
+//        }
+//        this.metadataTextArea.setText(metadataText);
 
         this.dialog.show();
     }
@@ -154,8 +154,8 @@ public class InputConfigurationDialog {
         String name = this.nameTextField.getText();
         String description = this.descriptionTextArea.getText();
         String valueString = textComponent.getText();
-        String metadataText = this.metadataTextArea.getText();
-        String visibilityText = this.visibilityTextField.getText();
+//        String metadataText = this.metadataTextArea.getText();
+//        String visibilityText = this.visibilityTextField.getText();
 
         if (name.length() == 0) {
             String warning = "The name cannot be empty.";
@@ -179,25 +179,25 @@ public class InputConfigurationDialog {
                 }
             }
         }
-        XmlElement metadata;
-        if (metadataText.length() == 0) {
-            metadata = null;
-        } else {
-            try {
-                metadata = XMLUtil.stringToXmlElement(metadataText);
-            } catch (RuntimeException e) {
-                String warning = "The metadata is ill-formed.";
-                this.xbayaGUI.getErrorWindow().error(warning, e);
-                return;
-            }
-        }
+//        XmlElement metadata;
+//        if (metadataText.length() == 0) {
+//            metadata = null;
+//        } else {
+//            try {
+//                metadata = XMLUtil.stringToXmlElement(metadataText);
+//            } catch (RuntimeException e) {
+//                String warning = "The metadata is ill-formed.";
+//                this.xbayaGUI.getErrorWindow().error(warning, e);
+//                return;
+//            }
+//        }
 
         this.node.setConfigured(true);
         this.node.setConfiguredName(name);
         this.node.setDescription(description);
         this.node.setDefaultValue(value);
-        this.node.setMetadata(metadata);
-        this.node.setVisibility(Boolean.parseBoolean(visibilityText));
+//        this.node.setMetadata(metadata);
+//        this.node.setVisibility(Boolean.parseBoolean(visibilityText));
         hide();
         this.xbayaGUI.getGraphCanvas().repaint();
     }
@@ -216,25 +216,25 @@ public class InputConfigurationDialog {
         this.valueTextArea = new XBayaTextArea(); // for XML
         // temporaly set text field.
         this.valueLabel = new XBayaLabel("", this.valueTextField);
-
-        this.metadataTextArea = new XBayaTextArea();
-        XBayaLabel metadataLabel = new XBayaLabel("Metadata", this.metadataTextArea);
-
-        this.visibilityTextField = new XBayaTextField();
-        XBayaLabel visibilityLabel = new XBayaLabel("Visibility", this.visibilityTextField);
+//
+//        this.metadataTextArea = new XBayaTextArea();
+//        XBayaLabel metadataLabel = new XBayaLabel("Metadata", this.metadataTextArea);
+//
+//        this.visibilityTextField = new XBayaTextField();
+//        XBayaLabel visibilityLabel = new XBayaLabel("Visibility", this.visibilityTextField);
 
         this.gridPanel = new GridPanel();
         this.gridPanel.add(nameLabel);
         this.gridPanel.add(this.nameTextField);
-        this.gridPanel.add(visibilityLabel);
-        this.gridPanel.add(this.visibilityTextField);
-        this.gridPanel.add(descriptionLabel);
-        this.gridPanel.add(this.descriptionTextArea);
+//        this.gridPanel.add(visibilityLabel);
+//        this.gridPanel.add(this.visibilityTextField);
         this.gridPanel.add(this.valueLabel);
         this.gridPanel.add(this.valueTextField);
-        this.gridPanel.add(metadataLabel);
-        this.gridPanel.add(this.metadataTextArea);
-        this.gridPanel.layout(5, 2, 3, 1);
+        this.gridPanel.add(descriptionLabel);
+        this.gridPanel.add(this.descriptionTextArea);
+//        this.gridPanel.add(metadataLabel);
+//        this.gridPanel.add(this.metadataTextArea);
+        this.gridPanel.layout(3, 2, 3, 1);
 
         JButton okButton = new JButton("OK");
         okButton.addActionListener(new AbstractAction() {


[3/6] airavata git commit: Preserve argument order and application arguments

Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/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 5c0fa98..8d84fd0 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
@@ -45,6 +45,15 @@ public class ExperimentInputResource extends AbstractResource {
     private String appArgument;
     private boolean standardInput;
     private String userFriendlyDesc;
+    private int inputOrder;
+
+    public int getInputOrder() {
+        return inputOrder;
+    }
+
+    public void setInputOrder(int inputOrder) {
+        this.inputOrder = inputOrder;
+    }
 
     public String getAppArgument() {
         return appArgument;
@@ -152,6 +161,7 @@ public class ExperimentInputResource extends AbstractResource {
             exInput.setAppArgument(appArgument);
             exInput.setStandardInput(standardInput);
             exInput.setUserFriendlyDesc(userFriendlyDesc);
+            exInput.setInputOrder(inputOrder);
             if (existingInput != null) {
                 existingInput.setEx_key(experimentKey);
                 existingInput.setExperiment(experiment);
@@ -164,6 +174,7 @@ public class ExperimentInputResource extends AbstractResource {
                 existingInput.setAppArgument(appArgument);
                 existingInput.setStandardInput(standardInput);
                 existingInput.setUserFriendlyDesc(userFriendlyDesc);
+                existingInput.setInputOrder(inputOrder);
                 exInput = em.merge(existingInput);
             } else {
                 em.persist(exInput);

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/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 a335b2e..eb933bf 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
@@ -46,6 +46,7 @@ public class NodeInputResource extends AbstractResource {
     private String appArgument;
     private boolean standardInput;
     private String userFriendlyDesc;
+    private int inputOrder;
 
     public String getAppArgument() {
         return appArgument;
@@ -111,7 +112,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();
@@ -156,6 +164,7 @@ public class NodeInputResource extends AbstractResource {
             nodeInput.setAppArgument(appArgument);
             nodeInput.setStandardInput(standardInput);
             nodeInput.setUserFriendlyDesc(userFriendlyDesc);
+            nodeInput.setInputOrder(inputOrder);
 
             if (existingInput != null){
                 existingInput.setNodeDetails(nodeDetail);
@@ -167,6 +176,7 @@ public class NodeInputResource extends AbstractResource {
                 existingInput.setAppArgument(appArgument);
                 existingInput.setStandardInput(standardInput);
                 existingInput.setUserFriendlyDesc(userFriendlyDesc);
+                existingInput.setInputOrder(inputOrder);
                 nodeInput = em.merge(existingInput);
             }else {
                 em.persist(nodeInput);

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/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 2fd3957..7b00f3a 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
@@ -517,6 +517,7 @@ public class Utils {
             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());
             if (o.getValue() != null){
@@ -605,6 +606,7 @@ public class Utils {
             inputResource.setInputKey(o.getInputKey());
             inputResource.setDataType(o.getDataType());
             inputResource.setAppArgument(o.getAppArgument());
+            inputResource.setInputOrder(o.getInputOrder());
             inputResource.setStandardInput(o.isStandardInput());
             inputResource.setUserFriendlyDesc(o.getUserFriendlyDesc());
             if (o.getValue() != null){
@@ -639,6 +641,7 @@ public class Utils {
             inputResource.setValue(o.getValue());
             inputResource.setMetadata(o.getMetadata());
             inputResource.setAppArgument(o.getAppArgument());
+            inputResource.setInputOrder(o.getInputOrder());
             inputResource.setStandardInput(o.isStandardInput());
             inputResource.setUserFriendlyDesc(o.getUserFriendlyDesc());
         }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/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 12e337e..a080c11 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
@@ -190,6 +190,10 @@ public class ThriftDataModelConversion {
                     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());
                 return dataObjectType;
             }else if (object instanceof NodeInputResource){
                 NodeInputResource nodeInputResource = (NodeInputResource)object;
@@ -199,6 +203,10 @@ public class ThriftDataModelConversion {
                     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());
                 return dataObjectType;
             }else if (object instanceof ApplicationInputResource){
                 ApplicationInputResource inputResource = (ApplicationInputResource)object;
@@ -208,6 +216,10 @@ public class ThriftDataModelConversion {
                     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());
                 return dataObjectType;
             }else {
                 return null;
@@ -226,7 +238,6 @@ public class ThriftDataModelConversion {
                 if (expOutput.getDataType() != null){
                     dataObjectType.setType(DataType.valueOf(expOutput.getDataType()));
                 }
-//                dataObjectType.setMetaData(expOutput.getMetadata());
                 return dataObjectType;
             }else if (object instanceof NodeOutputResource){
                 NodeOutputResource nodeOutputResource = (NodeOutputResource)object;
@@ -235,7 +246,6 @@ public class ThriftDataModelConversion {
                 if (nodeOutputResource.getDataType() != null){
                     dataObjectType.setType(DataType.valueOf(nodeOutputResource.getDataType()));
                 }
-//                dataObjectType.setMetaData(nodeOutputResource.getMetadata());
                 return dataObjectType;
             }else if (object instanceof ApplicationOutputResource){
                 ApplicationOutputResource outputResource = (ApplicationOutputResource)object;
@@ -244,7 +254,6 @@ public class ThriftDataModelConversion {
                 if (outputResource.getDataType() != null){
                     dataObjectType.setType(DataType.valueOf(outputResource.getDataType()));
                 }
-//                dataObjectType.setMetaData(outputResource.getMetadata());
                 return dataObjectType;
             }else {
                 return null;

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/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 9b46456..3db4f36 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
@@ -131,6 +131,7 @@ CREATE TABLE EXPERIMENT_INPUT
         STANDARD_INPUT SMALLINT,
         USER_FRIENDLY_DESC VARCHAR(255),
         VALUE CLOB,
+        INPUT_ORDER INTEGER,
         PRIMARY KEY(EXPERIMENT_ID,INPUT_KEY),
         FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
 );
@@ -200,6 +201,7 @@ CREATE TABLE APPLICATION_INPUT
         STANDARD_INPUT SMALLINT,
         USER_FRIENDLY_DESC VARCHAR(255),
         VALUE CLOB,
+        INPUT_ORDER INTEGER,
         PRIMARY KEY(TASK_ID,INPUT_KEY),
         FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE
 );
@@ -224,6 +226,7 @@ CREATE TABLE NODE_INPUT
        STANDARD_INPUT SMALLINT,
        USER_FRIENDLY_DESC VARCHAR(255),
        VALUE VARCHAR(255),
+       INPUT_ORDER INTEGER,
        PRIMARY KEY(NODE_INSTANCE_ID,INPUT_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/a61b37f1/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 7f070e8..b6ce88a 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
@@ -131,6 +131,7 @@ CREATE TABLE EXPERIMENT_INPUT
         USER_FRIENDLY_DESC VARCHAR(255),
         METADATA VARCHAR(255),
         VALUE LONGTEXT,
+        INPUT_ORDER INTEGER,
         PRIMARY KEY(EXPERIMENT_ID,INPUT_KEY),
         FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
 );
@@ -181,6 +182,7 @@ CREATE TABLE APPLICATION_INPUT
         USER_FRIENDLY_DESC VARCHAR(255),
         METADATA VARCHAR(255),
         VALUE LONGTEXT,
+        INPUT_ORDER INTEGER,
         PRIMARY KEY(TASK_ID,INPUT_KEY),
         FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE
 );
@@ -205,6 +207,7 @@ CREATE TABLE NODE_INPUT
        USER_FRIENDLY_DESC VARCHAR(255),
        METADATA VARCHAR(255),
        VALUE VARCHAR(255),
+       INPUT_ORDER INTEGER,
        PRIMARY KEY(NODE_INSTANCE_ID,INPUT_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/a61b37f1/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 {

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponent.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponent.java b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponent.java
index b111322..bf37ea9 100644
--- a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponent.java
+++ b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponent.java
@@ -26,7 +26,6 @@ import java.util.List;
 
 import javax.xml.namespace.QName;
 
-import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import org.apache.airavata.workflow.model.component.Component;
 import org.apache.airavata.workflow.model.component.ComponentControlPort;
@@ -93,6 +92,7 @@ public class WSComponent extends Component {
             port.setDescription(inputDataObjectType.getDescription());
             port.setDefaultValue(inputDataObjectType.getDefaultValue());
             port.setApplicationArgument(inputDataObjectType.getApplicationArgument());
+            port.setInputOrder(inputDataObjectType.getInputOrder());
 			inputs.add(port);
 		}
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplication.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplication.java b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplication.java
index 5ac10bd..ac4c5cb 100644
--- a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplication.java
+++ b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplication.java
@@ -36,8 +36,6 @@ import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.namespace.QName;
 
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
@@ -46,10 +44,9 @@ import org.apache.airavata.common.utils.XMLUtil;
 import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
 import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
 import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
-import org.apache.airavata.workflow.model.graph.GraphSchema;
+import org.apache.airavata.workflow.model.utils.WorkflowConstants;
 import org.xmlpull.infoset.XmlNamespace;
 
-import xsul.dsig.apache.axis.uti.XMLUtils;
 import xsul5.XmlConstants;
 
 @XmlRootElement(name="Application")
@@ -70,7 +67,7 @@ public class WSComponentApplication {
 		app.setApplicationId("dsfds");
 		app.setName("dfd");
 		app.setDescription("sdfdsfds");
-		app.addInputParameter(new WSComponentApplicationParameter("asas", new QName("sdf"), null, "sdfds"));
+		app.addInputParameter(new WSComponentApplicationParameter("asas", new QName("sdf"), null, "sdfds", 1));
 		app.addOutputParameter(new WSComponentApplicationParameter("9842", new QName("sdv99304"), null, null));
 		app.addOutputParameter(new WSComponentApplicationParameter("AAAAA", new QName("sdfd"), "sdfsdf", "243bs sd fsd fs f dfd"));
 	      ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
@@ -112,38 +109,42 @@ public class WSComponentApplication {
 
     public static WSComponentApplication parse(JsonObject applicationObject) {
         WSComponentApplication wsComponentApplication = new WSComponentApplication();
-        wsComponentApplication.description = applicationObject.getAsJsonPrimitive("description").getAsString();
-        wsComponentApplication.name = applicationObject.getAsJsonPrimitive("name").getAsString();
-        wsComponentApplication.applicationId = applicationObject.getAsJsonPrimitive("application").getAsString();
+        wsComponentApplication.description = applicationObject.getAsJsonPrimitive(WorkflowConstants.APPLICATION_COMPONENT_DESCRIPTION).getAsString();
+        wsComponentApplication.name = applicationObject.getAsJsonPrimitive(WorkflowConstants.APPLICATION_COMPONENT_NAME).getAsString();
+        wsComponentApplication.applicationId = applicationObject.getAsJsonPrimitive(WorkflowConstants.APPLICATION_COMPONENT_APPLICATION).getAsString();
 
-        if (applicationObject.get("Input") != null) {
-            JsonArray inputArray = applicationObject.getAsJsonArray("Input");
-            WSComponentApplicationParameter inputParameter;
-            JsonObject inputObject;
-            for (JsonElement jsonElement : inputArray) {
-                if (jsonElement instanceof JsonObject) {
-                    inputObject = (JsonObject) jsonElement;
-                    inputParameter = new WSComponentApplicationParameter();
-                    inputParameter.setDefaultValue(inputObject.getAsJsonPrimitive("text").getAsString());
-                    inputParameter.setDescription(inputObject.getAsJsonPrimitive("description").getAsString());
-                    inputParameter.setName(inputObject.getAsJsonPrimitive("name").getAsString());
-                    inputParameter.setType(QName.valueOf(inputObject.getAsJsonPrimitive("dataType").getAsString()));
-                    wsComponentApplication.addInputParameter(inputParameter);
-                }
-            }
-        }
+        if (applicationObject.get(WorkflowConstants.APPLICATION_INPUT) != null) {
+			JsonArray inputArray = applicationObject.getAsJsonArray(WorkflowConstants.APPLICATION_INPUT);
+			WSComponentApplicationParameter inputParameter;
+			JsonObject inputObject;
+			for (JsonElement jsonElement : inputArray) {
+				if (jsonElement instanceof JsonObject) {
+					inputObject = (JsonObject) jsonElement;
+					inputParameter = new WSComponentApplicationParameter();
+					inputParameter.setDefaultValue(inputObject.getAsJsonPrimitive(WorkflowConstants.APPLICATION_DATA_DEFAULT_VALUE).getAsString());
+					inputParameter.setDescription(inputObject.getAsJsonPrimitive(WorkflowConstants.APPLICATION_DATA_DESCRIPTION).getAsString());
+					inputParameter.setName(inputObject.getAsJsonPrimitive(WorkflowConstants.APPLICATION_DATA_NAME).getAsString());
+					inputParameter.setType(QName.valueOf(inputObject.getAsJsonPrimitive(WorkflowConstants.APPLICATION_DATA_DATA_TYPE).getAsString()));
+					inputParameter.setInputOrder(inputObject.getAsJsonPrimitive(WorkflowConstants.APPLICATION_DATA_INPUT_ORDER).getAsInt());
+					if (inputObject.getAsJsonPrimitive(WorkflowConstants.APPLICATION_DATA_APP_ARGUMENT) != null) {
+						inputParameter.setApplicationArgument(inputObject.getAsJsonPrimitive(WorkflowConstants.APPLICATION_DATA_APP_ARGUMENT).getAsString());
+					}
+					wsComponentApplication.addInputParameter(inputParameter);
+				}
+			}
+		}
 
-        if (applicationObject.get("Output") != null) {
-            JsonArray outputArray = applicationObject.getAsJsonArray("Output");
+        if (applicationObject.get(WorkflowConstants.APPLICATION_OUTPUT) != null) {
+            JsonArray outputArray = applicationObject.getAsJsonArray(WorkflowConstants.APPLICATION_OUTPUT);
             WSComponentApplicationParameter outputParameter;
             JsonObject outputObject;
             for (JsonElement jsonElement : outputArray) {
                 if (jsonElement instanceof JsonObject) {
                     outputObject = (JsonObject) jsonElement;
                     outputParameter = new WSComponentApplicationParameter();
-                    outputParameter.setDescription(outputObject.getAsJsonPrimitive("description").getAsString());
-                    outputParameter.setName(outputObject.getAsJsonPrimitive("name").getAsString());
-                    outputParameter.setType(QName.valueOf(outputObject.getAsJsonPrimitive("dataType").getAsString()));
+                    outputParameter.setDescription(outputObject.getAsJsonPrimitive(WorkflowConstants.APPLICATION_DATA_DESCRIPTION).getAsString());
+                    outputParameter.setName(outputObject.getAsJsonPrimitive(WorkflowConstants.APPLICATION_DATA_NAME).getAsString());
+                    outputParameter.setType(QName.valueOf(outputObject.getAsJsonPrimitive(WorkflowConstants.APPLICATION_DATA_DATA_TYPE).getAsString()));
                     wsComponentApplication.addOutputParameter(outputParameter);
                 }
             }
@@ -170,31 +171,35 @@ public class WSComponentApplication {
 
     public JsonObject toJSON() {
         JsonObject componentObject = new JsonObject();
-        componentObject.addProperty("description", this.description);
-        componentObject.addProperty("name", this.name);
-        componentObject.addProperty("application", this.applicationId);
+        componentObject.addProperty(WorkflowConstants.APPLICATION_COMPONENT_DESCRIPTION, this.description);
+		componentObject.addProperty(WorkflowConstants.APPLICATION_COMPONENT_NAME, this.name);
+		componentObject.addProperty(WorkflowConstants.APPLICATION_COMPONENT_APPLICATION, this.applicationId);
         JsonArray inputArray = new JsonArray();
         JsonObject inputObject;
         for (WSComponentApplicationParameter inputParameter : this.inputParameters) {
             inputObject = new JsonObject();
-            inputObject.addProperty("description", inputParameter.getDescription());
-            inputObject.addProperty("name", inputParameter.getName());
-            inputObject.addProperty("text", inputParameter.getDefaultValue());
-            inputObject.addProperty("dataType",  inputParameter.getType().toString());
-            inputArray.add(inputObject);
+            inputObject.addProperty(WorkflowConstants.APPLICATION_DATA_DESCRIPTION, inputParameter.getDescription());
+            inputObject.addProperty(WorkflowConstants.APPLICATION_DATA_NAME, inputParameter.getName());
+            inputObject.addProperty(WorkflowConstants.APPLICATION_DATA_DEFAULT_VALUE, inputParameter.getDefaultValue());
+            inputObject.addProperty(WorkflowConstants.APPLICATION_DATA_DATA_TYPE,  inputParameter.getType().toString());
+			inputObject.addProperty(WorkflowConstants.APPLICATION_DATA_INPUT_ORDER, inputParameter.getInputOrder());
+			if (inputParameter.getApplicationArgument() != null) {
+				inputObject.addProperty(WorkflowConstants.APPLICATION_DATA_APP_ARGUMENT, inputParameter.getApplicationArgument());
+			}
+			inputArray.add(inputObject);
         }
-        componentObject.add("Input", inputArray);
+        componentObject.add(WorkflowConstants.APPLICATION_INPUT, inputArray);
 
         JsonArray outputArray = new JsonArray();
         JsonObject outputObject;
         for (WSComponentApplicationParameter outputParameter : this.outputParameters) {
             outputObject = new JsonObject();
-            outputObject.addProperty("description", outputParameter.getDescription());
-            outputObject.addProperty("name", outputParameter.getName());
-            outputObject.addProperty("dataType" , outputParameter.getType().toString());
-            outputArray.add(outputObject);
+			outputObject.addProperty(WorkflowConstants.APPLICATION_DATA_DESCRIPTION, outputParameter.getDescription());
+			outputObject.addProperty(WorkflowConstants.APPLICATION_DATA_NAME, outputParameter.getName());
+			outputObject.addProperty(WorkflowConstants.APPLICATION_DATA_DATA_TYPE, outputParameter.getType().toString());
+			outputArray.add(outputObject);
         }
-        componentObject.add("Output", outputArray);
+		componentObject.add(WorkflowConstants.APPLICATION_OUTPUT, outputArray);
 
         return componentObject;
     }
@@ -212,7 +217,9 @@ public class WSComponentApplication {
             String prefix = "xsd";
             QName type = new QName(namespace.getName(), typeName, prefix);
 
-			addInputParameter(new WSComponentApplicationParameter(inputDataObjectType.getName(), type, inputDataObjectType.getUserFriendlyDescription(), inputDataObjectType.getValue(), inputDataObjectType.getApplicationArgument()));
+			addInputParameter(new WSComponentApplicationParameter(inputDataObjectType.getName(), type,
+					inputDataObjectType.getUserFriendlyDescription(), inputDataObjectType.getValue(),
+					inputDataObjectType.getApplicationArgument(), inputDataObjectType.getInputOrder()));
 		}
 
         List<OutputDataObjectType> applicationOutputs = application.getApplicationOutputs();

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplicationParameter.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplicationParameter.java b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplicationParameter.java
index 42d889a..d472991 100644
--- a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplicationParameter.java
+++ b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplicationParameter.java
@@ -28,28 +28,34 @@ import javax.xml.bind.annotation.XmlValue;
 import javax.xml.namespace.QName;
 
 @XmlRootElement(name="Parameter")
-@XmlType(propOrder = {"name", "type", "description", "defaultValue", "applicationArgument"})
+@XmlType(propOrder = {"name", "type", "description", "defaultValue", "applicationArgument", "inputOrder"})
 public class WSComponentApplicationParameter {
 	private String name;
 	private QName type;
 	private String description;
 	private String defaultValue;
 	private String applicationArgument;
-	
+	private int inputOrder;
+
 	public WSComponentApplicationParameter() {
 	}
 
 	public WSComponentApplicationParameter(String name, QName type, String description, String defaultValue) {
-		this(name, type, description, defaultValue, "");
+		this(name, type, description, defaultValue, "", -1);
+	}
+
+	public WSComponentApplicationParameter(String name, QName type, String description, String defaultValue, int inputOrder) {
+		this(name, type, description, defaultValue, "", inputOrder);
 	}
 
 	public WSComponentApplicationParameter(String name, QName type,
-			String description, String defaultValue, String applicationArgument) {
+			String description, String defaultValue, String applicationArgument, int inputOrder) {
 		this.name = name;
 		this.type = type;
 		this.description = description;
 		this.defaultValue = defaultValue;
 		this.applicationArgument = applicationArgument;
+		this.inputOrder = inputOrder;
 	}
 
 	@XmlAttribute (required = true)
@@ -92,4 +98,13 @@ public class WSComponentApplicationParameter {
 	public void setApplicationArgument(String applicationArgument) {
 		this.applicationArgument = applicationArgument;
 	}
+
+	@XmlAttribute
+	public int getInputOrder() {
+		return inputOrder;
+	}
+
+	public void setInputOrder(int inputOrder) {
+		this.inputOrder = inputOrder;
+	}
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentPort.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentPort.java b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentPort.java
index b241116..49dbd26 100644
--- a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentPort.java
+++ b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentPort.java
@@ -29,9 +29,6 @@ import org.apache.airavata.workflow.model.component.ComponentDataPort;
 import org.apache.airavata.workflow.model.component.ComponentException;
 import org.apache.airavata.workflow.model.graph.ws.WSPort;
 import org.xmlpull.infoset.XmlElement;
-import org.xmlpull.infoset.XmlNamespace;
-
-import xsul5.XmlConstants;
 
 public class WSComponentPort extends ComponentDataPort {
 
@@ -39,7 +36,6 @@ public class WSComponentPort extends ComponentDataPort {
      * default
      */
     public static final String DEFAULT = "default";
-    private String applicationArgument;
 
     private WSComponent component;
 
@@ -59,6 +55,10 @@ public class WSComponentPort extends ComponentDataPort {
 
     private boolean optional;
 
+    private String applicationArgument;
+
+    private int inputOrder;
+
     /**
      * Creates WSComponentPort
      * 
@@ -161,6 +161,14 @@ public class WSComponentPort extends ComponentDataPort {
         this.applicationArgument = applicationArgument;
     }
 
+    public int getInputOrder() {
+        return inputOrder;
+    }
+
+    public void setInputOrder(int inputOrder) {
+        this.inputOrder = inputOrder;
+    }
+
     /**
      * @return The appinfo element.
      */

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/BPELScript.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/BPELScript.java b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/BPELScript.java
index abfc9b6..2b8ef85 100644
--- a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/BPELScript.java
+++ b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/BPELScript.java
@@ -366,7 +366,7 @@ public class BPELScript {
 
     private void addComment() {
         XmlComment comment = this.process.xml().newComment(
-                "\nThis document is automatically generated by " + WorkflowConstants.APPLICATION_NAME + " "
+                "\nThis document is automatically generated by " + WorkflowConstants.APPLICATION_NAME_ + " "
                         + ApplicationVersion.VERSION + ".\n");
         this.process.xml().insertChild(0, "\n");
         this.process.xml().insertChild(0, comment);

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/WorkflowWSDL.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/WorkflowWSDL.java b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/WorkflowWSDL.java
index 2a9db54..1ad3a0d 100644
--- a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/WorkflowWSDL.java
+++ b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/gpel/script/WorkflowWSDL.java
@@ -37,7 +37,6 @@ import org.apache.airavata.workflow.model.graph.DataPort;
 import org.apache.airavata.workflow.model.graph.GraphException;
 import org.apache.airavata.workflow.model.graph.Node;
 import org.apache.airavata.workflow.model.graph.system.InputNode;
-import org.apache.airavata.workflow.model.graph.system.OutputNode;
 import org.apache.airavata.workflow.model.graph.system.ParameterNode;
 import org.apache.airavata.workflow.model.graph.system.ReceiveNode;
 import org.apache.airavata.workflow.model.graph.system.SystemDataPort;
@@ -267,7 +266,7 @@ public class WorkflowWSDL {
 
     private void addComment() {
         XmlComment comment = this.definitions.xml().newComment(
-                "\nThis document is automatically generated by " + WorkflowConstants.APPLICATION_NAME + " "
+                "\nThis document is automatically generated by " + WorkflowConstants.APPLICATION_NAME_ + " "
                         + ApplicationVersion.VERSION + ".\n");
         this.definitions.xml().insertChild(0, "\n");
         this.definitions.xml().insertChild(0, comment);

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/graph/GraphSchema.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/graph/GraphSchema.java b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/graph/GraphSchema.java
index 9ae3353..3c9a94a 100644
--- a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/graph/GraphSchema.java
+++ b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/graph/GraphSchema.java
@@ -386,4 +386,5 @@ public class GraphSchema {
 
 	public static final String NODE_TYPE_DIFFERED_INPUT = "Differed Input";
 
+    public static final String PORT_INPUT_ORDER = "inputOrder";
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/graph/system/InputNode.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/graph/system/InputNode.java b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/graph/system/InputNode.java
index 545d316..745ad28 100644
--- a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/graph/system/InputNode.java
+++ b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/graph/system/InputNode.java
@@ -58,6 +58,8 @@ public class InputNode extends ParameterNode {
 
     private String applicationArgument;
 
+    private int inputOrder;
+
     /**
      * Creates an InputNode.
      * 
@@ -99,6 +101,14 @@ public class InputNode extends ParameterNode {
         this.applicationArgument = applicationArgument;
     }
 
+    public int getInputOrder() {
+        return inputOrder;
+    }
+
+    public void setInputOrder(int inputOrder) {
+        this.inputOrder = inputOrder;
+    }
+
     /**
      * @see org.apache.airavata.workflow.model.graph.impl.NodeImpl#getComponent()
      */
@@ -375,6 +385,7 @@ public class InputNode extends ParameterNode {
         setDefaultValue(componentPort.getDefaultValue());
         setMetadata(componentPort.getAppinfo());
         setApplicationArgument(componentPort.getApplicationArgument());
+        setInputOrder(componentPort.getInputOrder());
     }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/utils/WorkflowConstants.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/utils/WorkflowConstants.java b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/utils/WorkflowConstants.java
index 1b70528..ffba116 100644
--- a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/utils/WorkflowConstants.java
+++ b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/utils/WorkflowConstants.java
@@ -27,7 +27,7 @@ public class WorkflowConstants {
     /**
      * The name of the application
      */
-    public static final String APPLICATION_NAME = "XBaya Dashboard";
+    public static final String APPLICATION_NAME_ = "XBaya Dashboard";
 
     /**
      * Namespace URI
@@ -49,4 +49,18 @@ public class WorkflowConstants {
      */
     public static final String LEAD_NS = "http://extreme.indiana.edu/lead/workflow";
 
+
+    public static final String APPLICATION_COMPONENT_DESCRIPTION = "description";
+    public static final String APPLICATION_COMPONENT_NAME = "name";
+    public static final String APPLICATION_COMPONENT_APPLICATION = "application";
+
+    public static final String APPLICATION_DATA_DESCRIPTION = "description";
+    public static final String APPLICATION_DATA_NAME = "name";
+    public static final String APPLICATION_DATA_DEFAULT_VALUE = "defaultValue";
+    public static final String APPLICATION_DATA_DATA_TYPE = "dataType";
+    public static final String APPLICATION_DATA_INPUT_ORDER = "inputOrder";
+    public static final String APPLICATION_DATA_APP_ARGUMENT = "appArgument";
+    public static final String APPLICATION_INPUT = "Input";
+    public static final String APPLICATION_OUTPUT = "Output";
+
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/ComponentRegistryLoader.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/ComponentRegistryLoader.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/ComponentRegistryLoader.java
index 0ca5f83..8ed3972 100644
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/ComponentRegistryLoader.java
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/ComponentRegistryLoader.java
@@ -77,6 +77,7 @@ public class ComponentRegistryLoader implements Cancelable, Observer {
     public void cancel() {
         this.canceled = true;
         this.loadThread.interrupt();
+        this.loadingDialog.hide();
     }
 
     /**
@@ -94,11 +95,11 @@ public class ComponentRegistryLoader implements Cancelable, Observer {
                 runInThread(registry);
             }
         };
+        this.loadThread.start();
         if (!getComponentTreeNodesMap().containsKey(registry.getName())) {
             // This has to be the last because it blocks when the dialog is modal.
             this.loadingDialog.show();
         }
-        this.loadThread.start();
 
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/WorkflowInterpreterLaunchWindow.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/WorkflowInterpreterLaunchWindow.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/WorkflowInterpreterLaunchWindow.java
index 09cb3e8..8f49623 100644
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/WorkflowInterpreterLaunchWindow.java
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/WorkflowInterpreterLaunchWindow.java
@@ -309,6 +309,7 @@ public class WorkflowInterpreterLaunchWindow {
             elem.setType(DataType.STRING);
             elem.setValue(value);
             elem.setApplicationArgument(inputNode.getApplicationArgument());
+            elem.setInputOrder(inputNode.getInputOrder());
 
 			experiment.addToExperimentInputs(elem );
         }


[4/6] airavata git commit: Preserve argument order and application arguments

Posted by sh...@apache.org.
Preserve argument order and application arguments


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/a61b37f1
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/a61b37f1
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/a61b37f1

Branch: refs/heads/master
Commit: a61b37f17cb1d9ee9c98029fb0ac7a8836cd993d
Parents: ca2f23b
Author: shamrath <sh...@gmail.com>
Authored: Thu Dec 4 22:31:29 2014 -0500
Committer: shamrath <sh...@gmail.com>
Committed: Thu Dec 4 22:31:29 2014 -0500

----------------------------------------------------------------------
 .../applicationInterfaceModel_types.cpp         |  22 +++-
 .../airavata/applicationInterfaceModel_types.h  |  23 +++--
 .../lib/airavata/experimentModel_types.cpp      |  12 +--
 .../lib/airavata/experimentModel_types.h        |  12 +--
 .../lib/airavata/workflowDataModel_types.cpp    |   4 +-
 .../lib/airavata/workflowDataModel_types.h      |   4 +-
 .../Model/AppCatalog/AppInterface/Types.php     |  20 ++++
 .../tools/RegisterOGCEUS3Application.java       |   2 +-
 .../tools/RegisterSampleApplications.java       |  76 +++++++-------
 .../tools/RegisterSampleApplicationsUtils.java  |   3 +-
 .../client/tools/RegisterUS3Application.java    |   2 +-
 .../appinterface/InputDataObjectType.java       | 102 ++++++++++++++++++-
 .../airavata/model/util/AppInterfaceUtil.java   |   2 +
 .../applicationInterfaceModel.thrift            |   3 +-
 .../data/impl/ApplicationInterfaceImpl.java     |   6 +-
 .../catalog/data/impl/WorkflowCatalogImpl.java  |   4 +-
 .../catalog/data/model/ApplicationInput.java    |  10 ++
 .../catalog/data/model/WorkflowInput.java       |  12 ++-
 .../resources/ApplicationInputResource.java     |  22 ++--
 .../data/resources/WorkflowInputResource.java   |  21 ++--
 .../catalog/data/util/AppCatalogJPAUtils.java   |   6 +-
 .../data/util/AppCatalogThriftConversion.java   |   4 +-
 .../app/catalog/test/AppInterfaceTest.java      |   2 +
 .../gfac/local/provider/impl/LocalProvider.java |  41 ++++++--
 .../registry/jpa/impl/ExperimentRegistry.java   |  12 +++
 .../registry/jpa/model/ApplicationInput.java    |  11 ++
 .../registry/jpa/model/Experiment_Input.java    |  11 ++
 .../registry/jpa/model/NodeInput.java           |  10 ++
 .../jpa/resources/ApplicationInputResource.java |  11 ++
 .../jpa/resources/ExperimentInputResource.java  |  11 ++
 .../jpa/resources/NodeInputResource.java        |  12 ++-
 .../registry/jpa/resources/Utils.java           |   3 +
 .../jpa/utils/ThriftDataModelConversion.java    |  15 ++-
 .../src/main/resources/registry-derby.sql       |   3 +
 .../src/main/resources/registry-mysql.sql       |   3 +
 .../engine/interpretor/WorkflowInterpreter.java |  14 ++-
 .../model/component/ws/WSComponent.java         |   2 +-
 .../component/ws/WSComponentApplication.java    |  95 +++++++++--------
 .../ws/WSComponentApplicationParameter.java     |  23 ++++-
 .../model/component/ws/WSComponentPort.java     |  16 ++-
 .../workflow/model/gpel/script/BPELScript.java  |   2 +-
 .../model/gpel/script/WorkflowWSDL.java         |   3 +-
 .../workflow/model/graph/GraphSchema.java       |   1 +
 .../workflow/model/graph/system/InputNode.java  |  11 ++
 .../workflow/model/utils/WorkflowConstants.java |  16 ++-
 .../registry/ComponentRegistryLoader.java       |   3 +-
 .../WorkflowInterpreterLaunchWindow.java        |   1 +
 47 files changed, 536 insertions(+), 168 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/applicationInterfaceModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/applicationInterfaceModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/applicationInterfaceModel_types.cpp
index 4a064b0..b32630a 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/applicationInterfaceModel_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/applicationInterfaceModel_types.cpp
@@ -45,8 +45,8 @@ const char* _kDataTypeNames[] = {
 };
 const std::map<int, const char*> _DataType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(6, _kDataTypeValues, _kDataTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
 
-const char* InputDataObjectType::ascii_fingerprint = "24F962C1CE4BE9FBD0F5D5EE9D1D5C00";
-const uint8_t InputDataObjectType::binary_fingerprint[16] = {0x24,0xF9,0x62,0xC1,0xCE,0x4B,0xE9,0xFB,0xD0,0xF5,0xD5,0xEE,0x9D,0x1D,0x5C,0x00};
+const char* InputDataObjectType::ascii_fingerprint = "91FB63C319A494A8E1E6563006402BC7";
+const uint8_t InputDataObjectType::binary_fingerprint[16] = {0x91,0xFB,0x63,0xC3,0x19,0xA4,0x94,0xA8,0xE1,0xE6,0x56,0x30,0x06,0x40,0x2B,0xC7};
 
 uint32_t InputDataObjectType::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -127,6 +127,14 @@ uint32_t InputDataObjectType::read(::apache::thrift::protocol::TProtocol* iprot)
           xfer += iprot->skip(ftype);
         }
         break;
+      case 8:
+        if (ftype == ::apache::thrift::protocol::T_I32) {
+          xfer += iprot->readI32(this->inputOrder);
+          this->__isset.inputOrder = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
       default:
         xfer += iprot->skip(ftype);
         break;
@@ -179,6 +187,11 @@ uint32_t InputDataObjectType::write(::apache::thrift::protocol::TProtocol* oprot
     xfer += oprot->writeString(this->metaData);
     xfer += oprot->writeFieldEnd();
   }
+  if (this->__isset.inputOrder) {
+    xfer += oprot->writeFieldBegin("inputOrder", ::apache::thrift::protocol::T_I32, 8);
+    xfer += oprot->writeI32(this->inputOrder);
+    xfer += oprot->writeFieldEnd();
+  }
   xfer += oprot->writeFieldStop();
   xfer += oprot->writeStructEnd();
   return xfer;
@@ -193,6 +206,7 @@ void swap(InputDataObjectType &a, InputDataObjectType &b) {
   swap(a.standardInput, b.standardInput);
   swap(a.userFriendlyDescription, b.userFriendlyDescription);
   swap(a.metaData, b.metaData);
+  swap(a.inputOrder, b.inputOrder);
   swap(a.__isset, b.__isset);
 }
 
@@ -291,8 +305,8 @@ void swap(OutputDataObjectType &a, OutputDataObjectType &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* ApplicationInterfaceDescription::ascii_fingerprint = "355A0972969341C2A113049339427849";
-const uint8_t ApplicationInterfaceDescription::binary_fingerprint[16] = {0x35,0x5A,0x09,0x72,0x96,0x93,0x41,0xC2,0xA1,0x13,0x04,0x93,0x39,0x42,0x78,0x49};
+const char* ApplicationInterfaceDescription::ascii_fingerprint = "F2FFD013708A2D0DA86FD5438F17268E";
+const uint8_t ApplicationInterfaceDescription::binary_fingerprint[16] = {0xF2,0xFF,0xD0,0x13,0x70,0x8A,0x2D,0x0D,0xA8,0x6F,0xD5,0x43,0x8F,0x17,0x26,0x8E};
 
 uint32_t ApplicationInterfaceDescription::read(::apache::thrift::protocol::TProtocol* iprot) {
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/applicationInterfaceModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/applicationInterfaceModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/applicationInterfaceModel_types.h
index 961feea..8076197 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/applicationInterfaceModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/applicationInterfaceModel_types.h
@@ -48,22 +48,23 @@ struct DataType {
 extern const std::map<int, const char*> _DataType_VALUES_TO_NAMES;
 
 typedef struct _InputDataObjectType__isset {
-  _InputDataObjectType__isset() : value(false), type(false), applicationArgument(false), standardInput(true), userFriendlyDescription(false), metaData(false) {}
+  _InputDataObjectType__isset() : value(false), type(false), applicationArgument(false), standardInput(true), userFriendlyDescription(false), metaData(false), inputOrder(false) {}
   bool value;
   bool type;
   bool applicationArgument;
   bool standardInput;
   bool userFriendlyDescription;
   bool metaData;
+  bool inputOrder;
 } _InputDataObjectType__isset;
 
 class InputDataObjectType {
  public:
 
-  static const char* ascii_fingerprint; // = "24F962C1CE4BE9FBD0F5D5EE9D1D5C00";
-  static const uint8_t binary_fingerprint[16]; // = {0x24,0xF9,0x62,0xC1,0xCE,0x4B,0xE9,0xFB,0xD0,0xF5,0xD5,0xEE,0x9D,0x1D,0x5C,0x00};
+  static const char* ascii_fingerprint; // = "91FB63C319A494A8E1E6563006402BC7";
+  static const uint8_t binary_fingerprint[16]; // = {0x91,0xFB,0x63,0xC3,0x19,0xA4,0x94,0xA8,0xE1,0xE6,0x56,0x30,0x06,0x40,0x2B,0xC7};
 
-  InputDataObjectType() : name(), value(), type((DataType::type)0), applicationArgument(), standardInput(false), userFriendlyDescription(), metaData() {
+  InputDataObjectType() : name(), value(), type((DataType::type)0), applicationArgument(), standardInput(false), userFriendlyDescription(), metaData(), inputOrder(0) {
   }
 
   virtual ~InputDataObjectType() throw() {}
@@ -75,6 +76,7 @@ class InputDataObjectType {
   bool standardInput;
   std::string userFriendlyDescription;
   std::string metaData;
+  int32_t inputOrder;
 
   _InputDataObjectType__isset __isset;
 
@@ -112,6 +114,11 @@ class InputDataObjectType {
     __isset.metaData = true;
   }
 
+  void __set_inputOrder(const int32_t val) {
+    inputOrder = val;
+    __isset.inputOrder = true;
+  }
+
   bool operator == (const InputDataObjectType & rhs) const
   {
     if (!(name == rhs.name))
@@ -140,6 +147,10 @@ class InputDataObjectType {
       return false;
     else if (__isset.metaData && !(metaData == rhs.metaData))
       return false;
+    if (__isset.inputOrder != rhs.__isset.inputOrder)
+      return false;
+    else if (__isset.inputOrder && !(inputOrder == rhs.inputOrder))
+      return false;
     return true;
   }
   bool operator != (const InputDataObjectType &rhs) const {
@@ -230,8 +241,8 @@ typedef struct _ApplicationInterfaceDescription__isset {
 class ApplicationInterfaceDescription {
  public:
 
-  static const char* ascii_fingerprint; // = "355A0972969341C2A113049339427849";
-  static const uint8_t binary_fingerprint[16]; // = {0x35,0x5A,0x09,0x72,0x96,0x93,0x41,0xC2,0xA1,0x13,0x04,0x93,0x39,0x42,0x78,0x49};
+  static const char* ascii_fingerprint; // = "F2FFD013708A2D0DA86FD5438F17268E";
+  static const uint8_t binary_fingerprint[16]; // = {0xF2,0xFF,0xD0,0x13,0x70,0x8A,0x2D,0x0D,0xA8,0x6F,0xD5,0x43,0x8F,0x17,0x26,0x8E};
 
   ApplicationInterfaceDescription() : applicationInterfaceId("DO_NOT_SET_AT_CLIENTS"), applicationName(), applicationDescription() {
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
index 18a2674..ca30e91 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
@@ -1843,8 +1843,8 @@ void swap(DataTransferDetails &a, DataTransferDetails &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* TaskDetails::ascii_fingerprint = "C0E50EB91BEBDC23A45D03BFD2BD630A";
-const uint8_t TaskDetails::binary_fingerprint[16] = {0xC0,0xE5,0x0E,0xB9,0x1B,0xEB,0xDC,0x23,0xA4,0x5D,0x03,0xBF,0xD2,0xBD,0x63,0x0A};
+const char* TaskDetails::ascii_fingerprint = "DFCB41DA19801BFF3CFE9E62BF38A6C7";
+const uint8_t TaskDetails::binary_fingerprint[16] = {0xDF,0xCB,0x41,0xDA,0x19,0x80,0x1B,0xFF,0x3C,0xFE,0x9E,0x62,0xBF,0x38,0xA6,0xC7};
 
 uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -2190,8 +2190,8 @@ void swap(TaskDetails &a, TaskDetails &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* WorkflowNodeDetails::ascii_fingerprint = "F9600D5A8E84EAF65A64E38C18DFACAE";
-const uint8_t WorkflowNodeDetails::binary_fingerprint[16] = {0xF9,0x60,0x0D,0x5A,0x8E,0x84,0xEA,0xF6,0x5A,0x64,0xE3,0x8C,0x18,0xDF,0xAC,0xAE};
+const char* WorkflowNodeDetails::ascii_fingerprint = "1A079CC07FB1A7970B53C4E16D7A3344";
+const uint8_t WorkflowNodeDetails::binary_fingerprint[16] = {0x1A,0x07,0x9C,0xC0,0x7F,0xB1,0xA7,0x97,0x0B,0x53,0xC4,0xE1,0x6D,0x7A,0x33,0x44};
 
 uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -2646,8 +2646,8 @@ void swap(ValidationResults &a, ValidationResults &b) {
   swap(a.validationResultList, b.validationResultList);
 }
 
-const char* Experiment::ascii_fingerprint = "CDFB79AEABF988D5D38D8EEAEEBECC6F";
-const uint8_t Experiment::binary_fingerprint[16] = {0xCD,0xFB,0x79,0xAE,0xAB,0xF9,0x88,0xD5,0xD3,0x8D,0x8E,0xEA,0xEE,0xBE,0xCC,0x6F};
+const char* Experiment::ascii_fingerprint = "655CCC3196684D1F7DD154965195C52B";
+const uint8_t Experiment::binary_fingerprint[16] = {0x65,0x5C,0xCC,0x31,0x96,0x68,0x4D,0x1F,0x7D,0xD1,0x54,0x96,0x51,0x95,0xC5,0x2B};
 
 uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
index c4edbb7..fa45481 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
@@ -1294,8 +1294,8 @@ typedef struct _TaskDetails__isset {
 class TaskDetails {
  public:
 
-  static const char* ascii_fingerprint; // = "C0E50EB91BEBDC23A45D03BFD2BD630A";
-  static const uint8_t binary_fingerprint[16]; // = {0xC0,0xE5,0x0E,0xB9,0x1B,0xEB,0xDC,0x23,0xA4,0x5D,0x03,0xBF,0xD2,0xBD,0x63,0x0A};
+  static const char* ascii_fingerprint; // = "DFCB41DA19801BFF3CFE9E62BF38A6C7";
+  static const uint8_t binary_fingerprint[16]; // = {0xDF,0xCB,0x41,0xDA,0x19,0x80,0x1B,0xFF,0x3C,0xFE,0x9E,0x62,0xBF,0x38,0xA6,0xC7};
 
   TaskDetails() : taskID("DO_NOT_SET_AT_CLIENTS"), creationTime(0), applicationId(), applicationVersion(), applicationDeploymentId() {
   }
@@ -1473,8 +1473,8 @@ typedef struct _WorkflowNodeDetails__isset {
 class WorkflowNodeDetails {
  public:
 
-  static const char* ascii_fingerprint; // = "F9600D5A8E84EAF65A64E38C18DFACAE";
-  static const uint8_t binary_fingerprint[16]; // = {0xF9,0x60,0x0D,0x5A,0x8E,0x84,0xEA,0xF6,0x5A,0x64,0xE3,0x8C,0x18,0xDF,0xAC,0xAE};
+  static const char* ascii_fingerprint; // = "1A079CC07FB1A7970B53C4E16D7A3344";
+  static const uint8_t binary_fingerprint[16]; // = {0x1A,0x07,0x9C,0xC0,0x7F,0xB1,0xA7,0x97,0x0B,0x53,0xC4,0xE1,0x6D,0x7A,0x33,0x44};
 
   WorkflowNodeDetails() : nodeInstanceId("DO_NOT_SET_AT_CLIENTS"), creationTime(0), nodeName("SINGLE_APP_NODE"), executionUnit((ExecutionUnit::type)1), executionUnitData() {
     executionUnit = (ExecutionUnit::type)1;
@@ -1712,8 +1712,8 @@ typedef struct _Experiment__isset {
 class Experiment {
  public:
 
-  static const char* ascii_fingerprint; // = "CDFB79AEABF988D5D38D8EEAEEBECC6F";
-  static const uint8_t binary_fingerprint[16]; // = {0xCD,0xFB,0x79,0xAE,0xAB,0xF9,0x88,0xD5,0xD3,0x8D,0x8E,0xEA,0xEE,0xBE,0xCC,0x6F};
+  static const char* ascii_fingerprint; // = "655CCC3196684D1F7DD154965195C52B";
+  static const uint8_t binary_fingerprint[16]; // = {0x65,0x5C,0xCC,0x31,0x96,0x68,0x4D,0x1F,0x7D,0xD1,0x54,0x96,0x51,0x95,0xC5,0x2B};
 
   Experiment() : experimentID("DO_NOT_SET_AT_CLIENTS"), projectID("DEFAULT"), creationTime(0), userName(), name(), description(), applicationId(), applicationVersion(), workflowTemplateId(), workflowTemplateVersion(), workflowExecutionInstanceId() {
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workflowDataModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workflowDataModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workflowDataModel_types.cpp
index 53f0b70..195d6b6 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workflowDataModel_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workflowDataModel_types.cpp
@@ -27,8 +27,8 @@
 
 
 
-const char* Workflow::ascii_fingerprint = "0F4DE03295CE4C20055DE0E68CFA7A65";
-const uint8_t Workflow::binary_fingerprint[16] = {0x0F,0x4D,0xE0,0x32,0x95,0xCE,0x4C,0x20,0x05,0x5D,0xE0,0xE6,0x8C,0xFA,0x7A,0x65};
+const char* Workflow::ascii_fingerprint = "C0E4ABD766E59503FEF37ABFB58F6DC5";
+const uint8_t Workflow::binary_fingerprint[16] = {0xC0,0xE4,0xAB,0xD7,0x66,0xE5,0x95,0x03,0xFE,0xF3,0x7A,0xBF,0xB5,0x8F,0x6D,0xC5};
 
 uint32_t Workflow::read(::apache::thrift::protocol::TProtocol* iprot) {
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workflowDataModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workflowDataModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workflowDataModel_types.h
index d688702..7ca41d9 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workflowDataModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/workflowDataModel_types.h
@@ -46,8 +46,8 @@ typedef struct _Workflow__isset {
 class Workflow {
  public:
 
-  static const char* ascii_fingerprint; // = "0F4DE03295CE4C20055DE0E68CFA7A65";
-  static const uint8_t binary_fingerprint[16]; // = {0x0F,0x4D,0xE0,0x32,0x95,0xCE,0x4C,0x20,0x05,0x5D,0xE0,0xE6,0x8C,0xFA,0x7A,0x65};
+  static const char* ascii_fingerprint; // = "C0E4ABD766E59503FEF37ABFB58F6DC5";
+  static const uint8_t binary_fingerprint[16]; // = {0xC0,0xE4,0xAB,0xD7,0x66,0xE5,0x95,0x03,0xFE,0xF3,0x7A,0xBF,0xB5,0x8F,0x6D,0xC5};
 
   Workflow() : templateId("DO_NOT_SET_AT_CLIENTS"), name(), graph(), image() {
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/AppInterface/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/AppInterface/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/AppInterface/Types.php
index 5350e10..ff6b2be 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/AppInterface/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/AppCatalog/AppInterface/Types.php
@@ -44,6 +44,7 @@ class InputDataObjectType {
   public $standardInput = false;
   public $userFriendlyDescription = null;
   public $metaData = null;
+  public $inputOrder = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
@@ -76,6 +77,10 @@ class InputDataObjectType {
           'var' => 'metaData',
           'type' => TType::STRING,
           ),
+        8 => array(
+          'var' => 'inputOrder',
+          'type' => TType::I32,
+          ),
         );
     }
     if (is_array($vals)) {
@@ -100,6 +105,9 @@ class InputDataObjectType {
       if (isset($vals['metaData'])) {
         $this->metaData = $vals['metaData'];
       }
+      if (isset($vals['inputOrder'])) {
+        $this->inputOrder = $vals['inputOrder'];
+      }
     }
   }
 
@@ -171,6 +179,13 @@ class InputDataObjectType {
             $xfer += $input->skip($ftype);
           }
           break;
+        case 8:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->inputOrder);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
         default:
           $xfer += $input->skip($ftype);
           break;
@@ -219,6 +234,11 @@ class InputDataObjectType {
       $xfer += $output->writeString($this->metaData);
       $xfer += $output->writeFieldEnd();
     }
+    if ($this->inputOrder !== null) {
+      $xfer += $output->writeFieldBegin('inputOrder', TType::I32, 8);
+      $xfer += $output->writeI32($this->inputOrder);
+      $xfer += $output->writeFieldEnd();
+    }
     $xfer += $output->writeFieldStop();
     $xfer += $output->writeStructEnd();
     return $xfer;

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
index 2b7c195..9ba0b4b 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
@@ -154,7 +154,7 @@ public class RegisterOGCEUS3Application {
             appModules.add(ultrascanModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("input", null,
-                    DataType.URI, null, false, "input tar file", null);
+                    DataType.URI, null, 1, false, "input tar file", null);
            
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
index 41020a0..e4e1e32 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
@@ -363,7 +363,7 @@ public class RegisterSampleApplications {
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("s_struct", "",
-                    DataType.URI, null, false, "Starting Structure File", null));
+                    DataType.URI, null, 1, false, "Starting Structure File", null));
 
 
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
@@ -380,11 +380,11 @@ public class RegisterSampleApplications {
             applicationInputs.clear();
             applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("ffcomplient_struct", "",
-                    DataType.URI, null, false, "FFComplient Structure File", null));
+                    DataType.URI, null, 1, false, "FFComplient Structure File", null));
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("topology", "",
-                    DataType.URI, null, false, "Topology File", null));
+                    DataType.URI, null, 2, false, "Topology File", null));
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("control_param_emv", "",
-                    DataType.URI, null, false, "Controlled parameters array of EM Vacuum", null));
+                    DataType.URI, null, 3, false, "Controlled parameters array of EM Vacuum", null));
 
 
             applicationOutputs.clear();
@@ -399,7 +399,7 @@ public class RegisterSampleApplications {
             applicationInputs.clear();
             applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("energy_min_struct", "",
-                    DataType.URI, null, false, "Energy Minimized Structure File", null));
+                    DataType.URI, null, 1, false, "Energy Minimized Structure File", null));
 
             applicationOutputs.clear();
             applicationOutputs = new ArrayList<OutputDataObjectType>();
@@ -413,11 +413,11 @@ public class RegisterSampleApplications {
             applicationInputs.clear();
             applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("struct_with_pbc", "",
-                    DataType.URI, null, false, "Structure with PBC File", null));
+                    DataType.URI, null, 1, false, "Structure with PBC File", null));
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("solvent_struct", "",
-                    DataType.URI, null, false, "Solvent Structure File", null));
+                    DataType.URI, null, 2, false, "Solvent Structure File", null));
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("topology", "",
-                    DataType.URI, null, false, "Topology File", null));
+                    DataType.URI, null, 3, false, "Topology File", null));
 
             applicationOutputs.clear();
             applicationOutputs = new ArrayList<OutputDataObjectType>();
@@ -434,11 +434,11 @@ public class RegisterSampleApplications {
             applicationInputs.clear();
             applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("struct_with_water", "",
-                    DataType.URI, null, false, "Structure with water File", null));
+                    DataType.URI, null, 1, false, "Structure with water File", null));
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("topology_with_water", "",
-            		DataType.URI, null, false, "Topology including water File", null));
+                    DataType.URI, null, 2, false, "Topology including water File", null));
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("control_param_emv", "",
-                    DataType.URI, null, false, "Controlled parameters array of EM Vacuum", null));
+                    DataType.URI, null, 3, false, "Controlled parameters array of EM Vacuum", null));
 
             applicationOutputs.clear();
             applicationOutputs = new ArrayList<OutputDataObjectType>();
@@ -452,9 +452,9 @@ public class RegisterSampleApplications {
             applicationInputs.clear();
             applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("struct_topoogy", "",
-                    DataType.URI, null, false, "Structure and Topology File", null));
+                    DataType.URI, null, 1, false, "Structure and Topology File", null));
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("topology_with_water", "",
-            		DataType.URI, null, false, "Topology including water File", null));
+                    DataType.URI, null, 2, false, "Topology including water File", null));
 
             applicationOutputs.clear();
             applicationOutputs = new ArrayList<OutputDataObjectType>();
@@ -471,11 +471,11 @@ public class RegisterSampleApplications {
             applicationInputs.clear();
             applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("sys_topoogy", "",
-                    DataType.URI, null, false, "Structure and Topology File", null));
+                    DataType.URI, null, 1, false, "Structure and Topology File", null));
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("sys_config", "",
-            		DataType.URI, null, false, "Topology including water File", null));
+                    DataType.URI, null, 2, false, "Topology including water File", null));
             applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("control_param_ems", "",
-                    DataType.URI, null, false, "Controlled parameters array of EM Solvent", null));
+                    DataType.URI, null, 3, false, "Controlled parameters array of EM Solvent", null));
 
             applicationOutputs.clear();
             applicationOutputs = new ArrayList<OutputDataObjectType>();
@@ -501,7 +501,7 @@ public class RegisterSampleApplications {
             appModules.add(echoModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("echo_input", "echo_output=Hello World",
-                    DataType.STRING, null, false, "A test string to Echo", null);
+                    DataType.STRING, null, 1, false, "A test string to Echo", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
@@ -530,7 +530,7 @@ public class RegisterSampleApplications {
             appModules.add(echoModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Input_to_Echo", "Hello World",
-                    DataType.STRING, null, false, "A test string to Echo", null);
+                    DataType.STRING, null, 1, false, "A test string to Echo", null);
             
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
@@ -559,13 +559,13 @@ public class RegisterSampleApplications {
             appModules.add(amberModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Heat_Restart_File", null,
-                    DataType.URI, null, false, "Heating up the system equilibration stage - 02_Heat.rst", null);
+                    DataType.URI, null, 1, false, "Heating up the system equilibration stage - 02_Heat.rst", null);
 
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("Production_Control_File", null,
-                    DataType.URI, null, false, "Constant pressure and temperature for production stage - 03_Prod.in", null);
+                    DataType.URI, null, 2, false, "Constant pressure and temperature for production stage - 03_Prod.in", null);
 
             InputDataObjectType input3 = RegisterSampleApplicationsUtils.createAppInput("Parameter_Topology_File", null,
-                    DataType.URI, null, false, "Parameter and Topology coordinates - prmtop", null);
+                    DataType.URI, null, 3, false, "Parameter and Topology coordinates - prmtop", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
@@ -601,13 +601,13 @@ public class RegisterSampleApplications {
             appModules.add(autoDockModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Heat_Restart_File", null,
-                    DataType.URI, null, false, "Heating up the system equilibration stage", null);
+                    DataType.URI, null, 1, false, "Heating up the system equilibration stage", null);
 
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("Production_Control_File", null,
-                    DataType.URI, null, false, "Constant pressure and temperature for production stage", null);
+                    DataType.URI, null, 2, false, "Constant pressure and temperature for production stage", null);
 
             InputDataObjectType input3 = RegisterSampleApplicationsUtils.createAppInput("Parameter_Topology_File", null,
-                    DataType.URI, null, false, "Parameter and Topology coordinates", null);
+                    DataType.URI, null, 3, false, "Parameter and Topology coordinates", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
@@ -638,10 +638,10 @@ public class RegisterSampleApplications {
             appModules.add(espressoModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("AI_Primitive_Cell", null,
-                    DataType.URI, null, false, "AI_Metal_Input_File - Al.sample.in", null);
+                    DataType.URI, null, 1, false, "AI_Metal_Input_File - Al.sample.in", null);
 
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("AI_Pseudopotential_File", null,
-                    DataType.URI, null, false, "Constant pressure and temperature for production stage - Al.pz-vbc.UPF", null);
+                    DataType.URI, null, 2, false, "Constant pressure and temperature for production stage - Al.pz-vbc.UPF", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
@@ -672,10 +672,10 @@ public class RegisterSampleApplications {
             appModules.add(gromacsModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Portable_Input_Binary_File", null,
-                    DataType.URI, null, false, "Coordinates velocities, molecular topology and simulation parameters - pdb1y6l-EM-vacuum.tpr", null);
+                    DataType.URI, null, 1, false, "Coordinates velocities, molecular topology and simulation parameters - pdb1y6l-EM-vacuum.tpr", null);
 
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("GROMOS_Coordinate_File", null,
-                    DataType.URI, null, false, "Trajectory Coordinates Molecular Structure in Gromos87 format - pdb1y6l-EM-vacuum.gro", null);
+                    DataType.URI, null, 2, false, "Trajectory Coordinates Molecular Structure in Gromos87 format - pdb1y6l-EM-vacuum.gro", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
@@ -708,7 +708,7 @@ public class RegisterSampleApplications {
             appModules.add(lammpsModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Friction_Simulation_Input", null,
-                    DataType.URI, null, false, "Friction Simulation Input - in.friction", null);
+                    DataType.URI, null, 1, false, "Friction Simulation Input - in.friction", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
@@ -736,7 +736,7 @@ public class RegisterSampleApplications {
             appModules.add(nwChemModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Water_Molecule_Input", null,
-                    DataType.URI, null, false, "Water Molecule Input File - water.nw", null);
+                    DataType.URI, null, 1, false, "Water Molecule Input File - water.nw", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
@@ -765,10 +765,10 @@ public class RegisterSampleApplications {
             appModules.add(trinityModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("RNA_Seq_Left_Input", null,
-                    DataType.URI, null, false, "RNA-Seq Left Library - reads.left.fq", null);
+                    DataType.URI, null, 1, false, "RNA-Seq Left Library - reads.left.fq", null);
 
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("RNA_Seq_Right_Input", null,
-                    DataType.URI, null, false, "RNA-Seq Right Library - reads.right.fq", null);
+                    DataType.URI, null, 2, false, "RNA-Seq Right Library - reads.right.fq", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
@@ -800,13 +800,13 @@ public class RegisterSampleApplications {
             appModules.add(wrfModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Config_Namelist_File", null,
-                    DataType.URI, null, false, "Namelist Configuration File - namelist.input", null);
+                    DataType.URI, null, 1, false, "Namelist Configuration File - namelist.input", null);
 
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("WRF_Initial_Conditions", null,
-                    DataType.URI, null, false, "Initial Conditions File - wrfinput_d01", null);
+                    DataType.URI, null, 2, false, "Initial Conditions File - wrfinput_d01", null);
 
             InputDataObjectType input3 = RegisterSampleApplicationsUtils.createAppInput("WRF_Boundary_File", null,
-                    DataType.URI, null, false, "Boundary Conditions File - wrfbdy_d01", null);
+                    DataType.URI, null, 3, false, "Boundary Conditions File - wrfbdy_d01", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
@@ -841,13 +841,13 @@ public class RegisterSampleApplications {
             appModules.add(phastaModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Parasolid_Geometric_Model", null,
-                    DataType.URI, null, false, "Parasolid geometric model - geom.xmt_txt", null);
+                    DataType.URI, null, 1, false, "Parasolid geometric model - geom.xmt_txt", null);
 
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("Problem_Definition", null,
-                    DataType.URI, null, false, "problem definition - geom.smd", null);
+                    DataType.URI, null, 2, false, "problem definition - geom.smd", null);
 
             InputDataObjectType input3 = RegisterSampleApplicationsUtils.createAppInput("Mesh_Description_File", null,
-                    DataType.URI, null, false, "Mesh Description - geom.sms", null);
+                    DataType.URI, null, 3, false, "Mesh Description - geom.sms", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
index 34f770a..58ba387 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
@@ -120,13 +120,14 @@ public class RegisterSampleApplicationsUtils {
 
     public static InputDataObjectType createAppInput
             (String inputName, String value, DataType type,
-             String applicationArgument, boolean stdIn, String description, String metadata) {
+             String applicationArgument, int order, boolean stdIn, String description, String metadata) {
         InputDataObjectType input = new InputDataObjectType();
 //        input.setIsEmpty(false);
         if (inputName != null) input.setName(inputName);
         if (value != null) input.setValue(value);
         if (type != null) input.setType(type);
         if (applicationArgument != null) input.setApplicationArgument(applicationArgument);
+        input.setInputOrder(order);
         if (description != null) input.setUserFriendlyDescription(description);
         input.setStandardInput(stdIn);
         if (metadata != null) input.setMetaData(metadata);

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterUS3Application.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterUS3Application.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterUS3Application.java
index ccb4e24..0e86469 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterUS3Application.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterUS3Application.java
@@ -154,7 +154,7 @@ public class RegisterUS3Application {
             appModules.add(ultrascanModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("input", null,
-                    DataType.URI, null, false, "input tar file", null);
+                    DataType.URI, null, 1, false, "input tar file", null);
            
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/InputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/InputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/InputDataObjectType.java
index 97227b8..0cd666b 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/InputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/InputDataObjectType.java
@@ -85,6 +85,7 @@ import org.slf4j.LoggerFactory;
   private static final org.apache.thrift.protocol.TField STANDARD_INPUT_FIELD_DESC = new org.apache.thrift.protocol.TField("standardInput", org.apache.thrift.protocol.TType.BOOL, (short)5);
   private static final org.apache.thrift.protocol.TField USER_FRIENDLY_DESCRIPTION_FIELD_DESC = new org.apache.thrift.protocol.TField("userFriendlyDescription", org.apache.thrift.protocol.TType.STRING, (short)6);
   private static final org.apache.thrift.protocol.TField META_DATA_FIELD_DESC = new org.apache.thrift.protocol.TField("metaData", org.apache.thrift.protocol.TType.STRING, (short)7);
+  private static final org.apache.thrift.protocol.TField INPUT_ORDER_FIELD_DESC = new org.apache.thrift.protocol.TField("inputOrder", org.apache.thrift.protocol.TType.I32, (short)8);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -99,6 +100,7 @@ import org.slf4j.LoggerFactory;
   private boolean standardInput; // optional
   private String userFriendlyDescription; // optional
   private String metaData; // optional
+  private int inputOrder; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -112,7 +114,8 @@ import org.slf4j.LoggerFactory;
     APPLICATION_ARGUMENT((short)4, "applicationArgument"),
     STANDARD_INPUT((short)5, "standardInput"),
     USER_FRIENDLY_DESCRIPTION((short)6, "userFriendlyDescription"),
-    META_DATA((short)7, "metaData");
+    META_DATA((short)7, "metaData"),
+    INPUT_ORDER((short)8, "inputOrder");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -141,6 +144,8 @@ import org.slf4j.LoggerFactory;
           return USER_FRIENDLY_DESCRIPTION;
         case 7: // META_DATA
           return META_DATA;
+        case 8: // INPUT_ORDER
+          return INPUT_ORDER;
         default:
           return null;
       }
@@ -182,8 +187,9 @@ import org.slf4j.LoggerFactory;
 
   // isset id assignments
   private static final int __STANDARDINPUT_ISSET_ID = 0;
+  private static final int __INPUTORDER_ISSET_ID = 1;
   private byte __isset_bitfield = 0;
-  private _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE,_Fields.APPLICATION_ARGUMENT,_Fields.STANDARD_INPUT,_Fields.USER_FRIENDLY_DESCRIPTION,_Fields.META_DATA};
+  private _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE,_Fields.APPLICATION_ARGUMENT,_Fields.STANDARD_INPUT,_Fields.USER_FRIENDLY_DESCRIPTION,_Fields.META_DATA,_Fields.INPUT_ORDER};
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
@@ -201,6 +207,8 @@ import org.slf4j.LoggerFactory;
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.META_DATA, new org.apache.thrift.meta_data.FieldMetaData("metaData", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+    tmpMap.put(_Fields.INPUT_ORDER, new org.apache.thrift.meta_data.FieldMetaData("inputOrder", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(InputDataObjectType.class, metaDataMap);
   }
@@ -241,6 +249,7 @@ import org.slf4j.LoggerFactory;
     if (other.isSetMetaData()) {
       this.metaData = other.metaData;
     }
+    this.inputOrder = other.inputOrder;
   }
 
   public InputDataObjectType deepCopy() {
@@ -257,6 +266,8 @@ import org.slf4j.LoggerFactory;
 
     this.userFriendlyDescription = null;
     this.metaData = null;
+    setInputOrderIsSet(false);
+    this.inputOrder = 0;
   }
 
   public String getName() {
@@ -427,6 +438,28 @@ import org.slf4j.LoggerFactory;
     }
   }
 
+  public int getInputOrder() {
+    return this.inputOrder;
+  }
+
+  public void setInputOrder(int inputOrder) {
+    this.inputOrder = inputOrder;
+    setInputOrderIsSet(true);
+  }
+
+  public void unsetInputOrder() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __INPUTORDER_ISSET_ID);
+  }
+
+  /** Returns true if field inputOrder is set (has been assigned a value) and false otherwise */
+  public boolean isSetInputOrder() {
+    return EncodingUtils.testBit(__isset_bitfield, __INPUTORDER_ISSET_ID);
+  }
+
+  public void setInputOrderIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __INPUTORDER_ISSET_ID, value);
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case NAME:
@@ -485,6 +518,14 @@ import org.slf4j.LoggerFactory;
       }
       break;
 
+    case INPUT_ORDER:
+      if (value == null) {
+        unsetInputOrder();
+      } else {
+        setInputOrder((Integer)value);
+      }
+      break;
+
     }
   }
 
@@ -511,6 +552,9 @@ import org.slf4j.LoggerFactory;
     case META_DATA:
       return getMetaData();
 
+    case INPUT_ORDER:
+      return Integer.valueOf(getInputOrder());
+
     }
     throw new IllegalStateException();
   }
@@ -536,6 +580,8 @@ import org.slf4j.LoggerFactory;
       return isSetUserFriendlyDescription();
     case META_DATA:
       return isSetMetaData();
+    case INPUT_ORDER:
+      return isSetInputOrder();
     }
     throw new IllegalStateException();
   }
@@ -616,6 +662,15 @@ import org.slf4j.LoggerFactory;
         return false;
     }
 
+    boolean this_present_inputOrder = true && this.isSetInputOrder();
+    boolean that_present_inputOrder = true && that.isSetInputOrder();
+    if (this_present_inputOrder || that_present_inputOrder) {
+      if (!(this_present_inputOrder && that_present_inputOrder))
+        return false;
+      if (this.inputOrder != that.inputOrder)
+        return false;
+    }
+
     return true;
   }
 
@@ -702,6 +757,16 @@ import org.slf4j.LoggerFactory;
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetInputOrder()).compareTo(other.isSetInputOrder());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetInputOrder()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.inputOrder, other.inputOrder);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -785,6 +850,12 @@ import org.slf4j.LoggerFactory;
       }
       first = false;
     }
+    if (isSetInputOrder()) {
+      if (!first) sb.append(", ");
+      sb.append("inputOrder:");
+      sb.append(this.inputOrder);
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -890,6 +961,14 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 8: // INPUT_ORDER
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.inputOrder = iprot.readI32();
+              struct.setInputOrderIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -948,6 +1027,11 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldEnd();
         }
       }
+      if (struct.isSetInputOrder()) {
+        oprot.writeFieldBegin(INPUT_ORDER_FIELD_DESC);
+        oprot.writeI32(struct.inputOrder);
+        oprot.writeFieldEnd();
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -985,7 +1069,10 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetMetaData()) {
         optionals.set(5);
       }
-      oprot.writeBitSet(optionals, 6);
+      if (struct.isSetInputOrder()) {
+        optionals.set(6);
+      }
+      oprot.writeBitSet(optionals, 7);
       if (struct.isSetValue()) {
         oprot.writeString(struct.value);
       }
@@ -1004,6 +1091,9 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetMetaData()) {
         oprot.writeString(struct.metaData);
       }
+      if (struct.isSetInputOrder()) {
+        oprot.writeI32(struct.inputOrder);
+      }
     }
 
     @Override
@@ -1011,7 +1101,7 @@ import org.slf4j.LoggerFactory;
       TTupleProtocol iprot = (TTupleProtocol) prot;
       struct.name = iprot.readString();
       struct.setNameIsSet(true);
-      BitSet incoming = iprot.readBitSet(6);
+      BitSet incoming = iprot.readBitSet(7);
       if (incoming.get(0)) {
         struct.value = iprot.readString();
         struct.setValueIsSet(true);
@@ -1036,6 +1126,10 @@ import org.slf4j.LoggerFactory;
         struct.metaData = iprot.readString();
         struct.setMetaDataIsSet(true);
       }
+      if (incoming.get(6)) {
+        struct.inputOrder = iprot.readI32();
+        struct.setInputOrderIsSet(true);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/airavata-api/airavata-model-utils/src/main/java/org/apache/airavata/model/util/AppInterfaceUtil.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-model-utils/src/main/java/org/apache/airavata/model/util/AppInterfaceUtil.java b/airavata-api/airavata-model-utils/src/main/java/org/apache/airavata/model/util/AppInterfaceUtil.java
index 4030857..ad7a0de 100644
--- a/airavata-api/airavata-model-utils/src/main/java/org/apache/airavata/model/util/AppInterfaceUtil.java
+++ b/airavata-api/airavata-model-utils/src/main/java/org/apache/airavata/model/util/AppInterfaceUtil.java
@@ -45,6 +45,7 @@ public class AppInterfaceUtil {
                                                               String value,
                                                               DataType type,
                                                               String applicationArgument,
+                                                              int order,
                                                               boolean standardInput,
                                                               String userFriendlyDesc,
                                                               String metadata){
@@ -54,6 +55,7 @@ public class AppInterfaceUtil {
         appInput.setType(type);
         appInput.setMetaData(metadata);
         appInput.setApplicationArgument(applicationArgument);
+        appInput.setInputOrder(order);
         appInput.setUserFriendlyDescription(userFriendlyDesc);
         appInput.setStandardInput(standardInput);
         return appInput;

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift b/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift
index 2bb16dc..5646dc5 100644
--- a/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift
@@ -77,7 +77,8 @@ struct InputDataObjectType {
     4: optional string applicationArgument,
     5: optional bool standardInput = 0,
     6: optional string userFriendlyDescription,
-    7: optional string metaData
+    7: optional string metaData,
+    8: optional i32 inputOrder
 }
 
 /**

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java
index d430ebe..67bd1bc 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java
@@ -101,8 +101,9 @@ public class ApplicationInterfaceImpl implements ApplicationInterface {
                     inputResource.setInputVal(input.getValue());
                     inputResource.setDataType(input.getType().toString());
                     inputResource.setMetadata(input.getMetaData());
-                    inputResource.setStandareInput(input.isStandardInput());
+                    inputResource.setStandardInput(input.isStandardInput());
                     inputResource.setAppArgument(input.getApplicationArgument());
+                    inputResource.setInputOrder(input.getInputOrder());
                     inputResource.save();
                 }
             }
@@ -216,8 +217,9 @@ public class ApplicationInterfaceImpl implements ApplicationInterface {
                     inputResource.setInputVal(input.getValue());
                     inputResource.setDataType(input.getType().toString());
                     inputResource.setMetadata(input.getMetaData());
-                    inputResource.setStandareInput(input.isStandardInput());
+                    inputResource.setStandardInput(input.isStandardInput());
                     inputResource.setAppArgument(input.getApplicationArgument());
+                    inputResource.setInputOrder(input.getInputOrder());
                     inputResource.save();
                 }
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java
index 3474b40..a57ac49 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java
@@ -98,7 +98,7 @@ public class WorkflowCatalogImpl implements WorkflowCatalog {
                     wfInputResource.setWfTemplateId(resource.getWfTemplateId());
                     wfInputResource.setDataType(input.getType().toString());
                     wfInputResource.setAppArgument(input.getApplicationArgument());
-                    wfInputResource.setStandareInput(input.isStandardInput());
+                    wfInputResource.setStandardInput(input.isStandardInput());
                     wfInputResource.setUserFriendlyDesc(input.getUserFriendlyDescription());
                     wfInputResource.setMetadata(input.getMetaData());
                     wfInputResource.save();
@@ -148,7 +148,7 @@ public class WorkflowCatalogImpl implements WorkflowCatalog {
                     existingInput.setWfTemplateId(existingWF.getWfTemplateId());
                     existingInput.setDataType(input.getType().toString());
                     existingInput.setAppArgument(input.getApplicationArgument());
-                    existingInput.setStandareInput(input.isStandardInput());
+                    existingInput.setStandardInput(input.isStandardInput());
                     existingInput.setUserFriendlyDesc(input.getUserFriendlyDescription());
                     existingInput.setMetadata(input.getMetaData());
                     existingInput.save();

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInput.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInput.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInput.java
index 689f24e..e0416b9 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInput.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationInput.java
@@ -47,6 +47,8 @@ public class ApplicationInput implements Serializable {
     private String userFriendlyDesc;
     @Column(name = "STANDARD_INPUT")
     private boolean standardInput;
+    @Column(name="INPUT_ORDER")
+    private int inputOrder;
 
     @ManyToOne(cascade= CascadeType.MERGE)
     @JoinColumn(name = "INTERFACE_ID")
@@ -123,4 +125,12 @@ public class ApplicationInput implements Serializable {
     public void setStandardInput(boolean standardInput) {
         this.standardInput = standardInput;
     }
+
+    public int getInputOrder() {
+        return inputOrder;
+    }
+
+    public void setInputOrder(int inputOrder) {
+        this.inputOrder = inputOrder;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowInput.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowInput.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowInput.java
index 81d2b6d..5682f56 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowInput.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowInput.java
@@ -48,8 +48,10 @@ public class WorkflowInput implements Serializable {
     private String userFriendlyDesc;
     @Column(name = "STANDARD_INPUT")
     private boolean standardInput;
+    @Column(name = "INPUT_ORDER")
+    private int inputOrder;
 
-    @ManyToOne(cascade= CascadeType.MERGE)
+    @ManyToOne(cascade = CascadeType.MERGE)
     @JoinColumn(name = "WF_TEMPLATE_ID")
     private Workflow workflow;
 
@@ -124,4 +126,12 @@ public class WorkflowInput implements Serializable {
     public void setStandardInput(boolean standardInput) {
         this.standardInput = standardInput;
     }
+
+    public int getInputOrder() {
+        return inputOrder;
+    }
+
+    public void setInputOrder(int inputOrder) {
+        this.inputOrder = inputOrder;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationInputResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationInputResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationInputResource.java
index 6894ff1..21a0844 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationInputResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationInputResource.java
@@ -48,7 +48,8 @@ public class ApplicationInputResource extends AbstractResource {
     private String metadata;
     private String appArgument;
     private String userFriendlyDesc;
-    private boolean standareInput;
+    private int inputOrder;
+    private boolean standardInput;
 
     private AppInterfaceResource appInterfaceResource;
 
@@ -288,7 +289,8 @@ public class ApplicationInputResource extends AbstractResource {
             applicationInput.setMetadata(metadata);
             applicationInput.setAppArgument(appArgument);
             applicationInput.setUserFriendlyDesc(userFriendlyDesc);
-            applicationInput.setStandardInput(standareInput);
+            applicationInput.setStandardInput(standardInput);
+            applicationInput.setInputOrder(inputOrder);
             if (existingApplicationInput == null) {
                 em.persist(applicationInput);
             } else {
@@ -404,11 +406,19 @@ public class ApplicationInputResource extends AbstractResource {
         this.appInterfaceResource = appInterfaceResource;
     }
 
-    public boolean isStandareInput() {
-        return standareInput;
+    public boolean isStandardInput() {
+        return standardInput;
     }
 
-    public void setStandareInput(boolean standareInput) {
-        this.standareInput = standareInput;
+    public void setStandardInput(boolean standardInput) {
+        this.standardInput = standardInput;
+    }
+
+    public int getInputOrder() {
+        return inputOrder;
+    }
+
+    public void setInputOrder(int inputOrder) {
+        this.inputOrder = inputOrder;
     }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowInputResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowInputResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowInputResource.java
index 75c1351..23f6536 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowInputResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowInputResource.java
@@ -48,7 +48,8 @@ public class WorkflowInputResource extends AbstractResource {
     private String metadata;
     private String appArgument;
     private String userFriendlyDesc;
-    private boolean standareInput;
+    private boolean standardInput;
+    private int inputOrder;
 
     private WorkflowResource workflowResource;
 
@@ -286,7 +287,7 @@ public class WorkflowInputResource extends AbstractResource {
             workflowInput.setMetadata(metadata);
             workflowInput.setAppArgument(appArgument);
             workflowInput.setUserFriendlyDesc(userFriendlyDesc);
-            workflowInput.setStandardInput(standareInput);
+            workflowInput.setStandardInput(standardInput);
             if (existingWFInput == null) {
                 em.persist(workflowInput);
             } else {
@@ -402,11 +403,19 @@ public class WorkflowInputResource extends AbstractResource {
         this.workflowResource = workflowResource;
     }
 
-    public boolean isStandareInput() {
-        return standareInput;
+    public boolean isStandardInput() {
+        return standardInput;
     }
 
-    public void setStandareInput(boolean standareInput) {
-        this.standareInput = standareInput;
+    public void setStandardInput(boolean standardInput) {
+        this.standardInput = standardInput;
+    }
+
+    public int getInputOrder() {
+        return inputOrder;
+    }
+
+    public void setInputOrder(int inputOrder) {
+        this.inputOrder = inputOrder;
     }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
index aca396a..de6a010 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
@@ -760,7 +760,8 @@ public class AppCatalogJPAUtils {
             resource.setMetadata(o.getMetadata());
             resource.setAppArgument(o.getAppArgument());
             resource.setUserFriendlyDesc(o.getUserFriendlyDesc());
-            resource.setStandareInput(o.isStandardInput());
+            resource.setStandardInput(o.isStandardInput());
+            resource.setInputOrder(o.getInputOrder());
             resource.setAppInterfaceResource((AppInterfaceResource)createAppInterfaceResource(o.getApplicationInterface()));
         }
         return resource;
@@ -777,8 +778,9 @@ public class AppCatalogJPAUtils {
             resource.setDataType(o.getDataType());
             resource.setMetadata(o.getMetadata());
             resource.setAppArgument(o.getAppArgument());
+            resource.setInputOrder(o.getInputOrder());
             resource.setUserFriendlyDesc(o.getUserFriendlyDesc());
-            resource.setStandareInput(o.isStandardInput());
+            resource.setStandardInput(o.isStandardInput());
             resource.setWorkflowResource((WorkflowResource)createWorkflow(o.getWorkflow()));
         }
         return resource;

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
index 9646bda..0ada380 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogThriftConversion.java
@@ -556,9 +556,10 @@ public class AppCatalogThriftConversion {
         inputDataObjectType.setName(input.getInputKey());
         inputDataObjectType.setValue(input.getInputVal());
         inputDataObjectType.setApplicationArgument(input.getAppArgument());
+        inputDataObjectType.setInputOrder(input.getInputOrder());
         inputDataObjectType.setMetaData(input.getMetadata());
         inputDataObjectType.setType(DataType.valueOf(input.getDataType()));
-        inputDataObjectType.setStandardInput(input.isStandareInput());
+        inputDataObjectType.setStandardInput(input.isStandardInput());
         inputDataObjectType.setUserFriendlyDescription(input.getUserFriendlyDesc());
         return inputDataObjectType;
     }
@@ -696,6 +697,7 @@ public class AppCatalogThriftConversion {
         InputDataObjectType input = new InputDataObjectType();
         input.setName(resource.getInputKey());
         input.setApplicationArgument(resource.getAppArgument());
+        input.setInputOrder(resource.getInputOrder());
         input.setType(DataType.valueOf(resource.getDataType()));
         input.setMetaData(resource.getMetadata());
         input.setUserFriendlyDescription(resource.getUserFriendlyDesc());

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppInterfaceTest.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppInterfaceTest.java b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppInterfaceTest.java
index 1a1dbd3..d2e5d0c 100644
--- a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppInterfaceTest.java
+++ b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppInterfaceTest.java
@@ -47,6 +47,7 @@ import static org.junit.Assert.assertTrue;
 public class AppInterfaceTest {
     private static Initialize initialize;
     private static AppCatalog appcatalog;
+    private static int order = 1;
 
     @Before
     public void setUp() {
@@ -169,6 +170,7 @@ public class AppInterfaceTest {
         input.setValue(value);
         input.setType(type);
         input.setApplicationArgument("test arg");
+        input.setInputOrder(order++);
         return input;
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
index 8b79ff9..8f034ae 100644
--- a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
+++ b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
@@ -23,8 +23,12 @@ package org.apache.airavata.gfac.local.provider.impl;
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
 
 import org.apache.airavata.gfac.Constants;
 import org.apache.airavata.gfac.GFacException;
@@ -252,20 +256,35 @@ public class LocalProvider extends AbstractProvider {
     private void buildCommand() {
         cmdList.add(jobExecutionContext.getExecutablePath());
         Map<String, Object> inputParameters = jobExecutionContext.getInMessageContext().getParameters();
-        for (Object inputObject : inputParameters.values()) {
-            if (inputObject instanceof InputDataObjectType) {
-                InputDataObjectType inputDataObjectType = (InputDataObjectType) inputObject;
-                if (inputDataObjectType.getApplicationArgument() != null
-                        && !inputDataObjectType.getApplicationArgument().equals("")) {
-                    cmdList.add(inputDataObjectType.getApplicationArgument());
-                }
 
-                if (inputDataObjectType.getValue() != null
-                        && !inputDataObjectType.getValue().equals("")) {
-                    cmdList.add(inputDataObjectType.getValue());
-                }
+        // sort the inputs first and then build the command List
+        Comparator<InputDataObjectType> inputOrderComparator = new Comparator<InputDataObjectType>() {
+            @Override
+            public int compare(InputDataObjectType inputDataObjectType, InputDataObjectType t1) {
+                log.info(" $$$$$$$$$$$$ inpput object order " + inputDataObjectType.getInputOrder() + " , t1 order " + t1.getInputOrder() + "$$$$$$$$$$$$$$$$" );
+                return inputDataObjectType.getInputOrder() - t1.getInputOrder();
+            }
+        };
+        Set<InputDataObjectType> sortedInputSet = new TreeSet<InputDataObjectType>(inputOrderComparator);
+        for (Object object : inputParameters.values()) {
+            if (object instanceof InputDataObjectType) {
+                InputDataObjectType inputDOT = (InputDataObjectType) object;
+                sortedInputSet.add(inputDOT);
+            }
+        }
+        log.info("$$$$$$$$$$$ size of sorted set = " + sortedInputSet.size() + "$$$$$$$$$$$$$$$$$$$");
+        for (InputDataObjectType inputDataObjectType : sortedInputSet) {
+            if (inputDataObjectType.getApplicationArgument() != null
+                    && !inputDataObjectType.getApplicationArgument().equals("")) {
+                cmdList.add(inputDataObjectType.getApplicationArgument());
+            }
+
+            if (inputDataObjectType.getValue() != null
+                    && !inputDataObjectType.getValue().equals("")) {
+                cmdList.add(inputDataObjectType.getValue());
             }
         }
+
     }
 
     private void initProcessBuilder(ApplicationDeploymentDescription app){

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/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 b091ebf..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
@@ -274,6 +274,8 @@ public class ExperimentRegistry {
                     resource.setDataType(input.getType().toString());
                 }
                 resource.setMetadata(input.getMetaData());
+                resource.setAppArgument(input.getApplicationArgument());
+                resource.setInputOrder(input.getInputOrder());
                 resource.save();
             }
         } catch (Exception e) {
@@ -293,6 +295,8 @@ public class ExperimentRegistry {
                             exinput.setDataType(input.getType().toString());
                         }
                         exinput.setMetadata(input.getMetaData());
+                        exinput.setAppArgument(input.getApplicationArgument());
+                        exinput.setInputOrder(input.getInputOrder());
                         exinput.save();
                     }
                 }
@@ -816,6 +820,8 @@ public class ExperimentRegistry {
                     resource.setDataType(input.getType().toString());
                 }
                 resource.setMetadata(input.getMetaData());
+                resource.setAppArgument(input.getApplicationArgument());
+                resource.setInputOrder(input.getInputOrder());
                 resource.save();
             }
         } catch (Exception e) {
@@ -837,6 +843,8 @@ public class ExperimentRegistry {
                         resource.setDataType(input.getType().toString());
                     }
                     resource.setMetadata(input.getMetaData());
+                    resource.setAppArgument(input.getApplicationArgument());
+                    resource.setInputOrder(input.getInputOrder());
                     resource.save();
                 }
             }
@@ -994,6 +1002,8 @@ public class ExperimentRegistry {
                     resource.setDataType(input.getType().toString());
                 }
                 resource.setMetadata(input.getMetaData());
+                resource.setAppArgument(input.getApplicationArgument());
+                resource.setInputOrder(input.getInputOrder());
                 resource.save();
             }
         } catch (Exception e) {
@@ -1059,6 +1069,8 @@ public class ExperimentRegistry {
                         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/a61b37f1/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 c80cb1b..6ece1c2 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
@@ -47,6 +47,9 @@ public class ApplicationInput implements Serializable {
     @Column(name = "APP_ARGUMENT")
     private String appArgument;
 
+    @Column(name = "INPUT_ORDER")
+    private int inputOrder;
+
     @Column(name = "STANDARD_INPUT")
     private boolean standardInput;
 
@@ -57,6 +60,14 @@ public class ApplicationInput implements Serializable {
     @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;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/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 a0dd404..cfa2bd6 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
@@ -58,10 +58,21 @@ public class Experiment_Input implements Serializable {
     @Column(name = "METADATA")
     private String metadata;
 
+    @Column(name = "INPUT_ORDER")
+    private int inputOrder;
+
     @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;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/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 d25886e..6b5ce02 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
@@ -45,6 +45,8 @@ public class NodeInput implements Serializable {
     private String value;
     @Column(name = "APP_ARGUMENT")
     private String appArgument;
+    @Column(name = "INPUT_ORDER")
+    private int inputOrder;
 
     @Column(name = "STANDARD_INPUT")
     private boolean standardInput;
@@ -127,4 +129,12 @@ public class NodeInput implements Serializable {
     public void setUserFriendlyDesc(String userFriendlyDesc) {
         this.userFriendlyDesc = userFriendlyDesc;
     }
+
+    public int getInputOrder() {
+        return inputOrder;
+    }
+
+    public void setInputOrder(int inputOrder) {
+        this.inputOrder = inputOrder;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a61b37f1/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 8d3f704..adca11b 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
@@ -45,6 +45,15 @@ public class ApplicationInputResource extends AbstractResource {
     private String appArgument;
     private boolean standardInput;
     private String userFriendlyDesc;
+    private int inputOrder;
+
+    public int getInputOrder() {
+        return inputOrder;
+    }
+
+    public void setInputOrder(int inputOrder) {
+        this.inputOrder = inputOrder;
+    }
 
     public String getAppArgument() {
         return appArgument;
@@ -153,6 +162,7 @@ public class ApplicationInputResource extends AbstractResource {
             applicationInput.setAppArgument(appArgument);
             applicationInput.setStandardInput(standardInput);
             applicationInput.setUserFriendlyDesc(userFriendlyDesc);
+            applicationInput.setInputOrder(inputOrder);
             if (value != null){
                 applicationInput.setValue(value.toCharArray());
             }
@@ -167,6 +177,7 @@ public class ApplicationInputResource extends AbstractResource {
                 existingInput.setAppArgument(appArgument);
                 existingInput.setStandardInput(standardInput);
                 existingInput.setUserFriendlyDesc(userFriendlyDesc);
+                existingInput.setInputOrder(inputOrder);
                 if (value != null){
                     existingInput.setValue(value.toCharArray());
                 }


[5/6] airavata git commit: Updated RegisterSampleData class and remove test debug lines from local provider

Posted by sh...@apache.org.
Updated RegisterSampleData class and remove test debug lines from local provider


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/09668d33
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/09668d33
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/09668d33

Branch: refs/heads/master
Commit: 09668d33905b4ec0f111cc0dfe40f64567471ddc
Parents: a61b37f
Author: shamrath <sh...@gmail.com>
Authored: Mon Dec 8 00:15:28 2014 -0500
Committer: shamrath <sh...@gmail.com>
Committed: Mon Dec 8 00:15:28 2014 -0500

----------------------------------------------------------------------
 .../airavata/client/samples/RegisterSampleData.java   | 14 +++++++-------
 .../gfac/local/provider/impl/LocalProvider.java       |  2 --
 2 files changed, 7 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/09668d33/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
index 1fa62ab..28f01f5 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
@@ -176,7 +176,7 @@ public class RegisterSampleData {
             appModules.add(echoModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Input_to_Echo", "Hello World",
-                    DataType.STRING, null, false, "A test string to Echo", null);
+                    DataType.STRING, null, 1, false, "A test string to Echo", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
@@ -205,9 +205,9 @@ public class RegisterSampleData {
             appModules.add(addModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("x", "2",
-                    DataType.STRING, null, false, "Add operation input_1", null);
+                    DataType.STRING, null, 1, false, "Add operation input_1", null);
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("y", "3",
-                    DataType.STRING, null, false, "Add operation input_2", null);
+                    DataType.STRING, null, 2, false, "Add operation input_2", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
@@ -237,9 +237,9 @@ public class RegisterSampleData {
             appModules.add(multiplyModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("x", "4",
-                    DataType.STRING, null, false, "Multiply operation input_1", null);
+                    DataType.STRING, null, 1, false, "Multiply operation input_1", null);
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("y", "5",
-                    DataType.STRING, null, false, "Multiply operation input_2", null);
+                    DataType.STRING, null, 2, false, "Multiply operation input_2", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
@@ -269,9 +269,9 @@ public class RegisterSampleData {
             appModules.add(subtractModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("x", "6",
-                    DataType.STRING, null, false, "Subtract operation input_1", null);
+                    DataType.STRING, null, 1, false, "Subtract operation input_1", null);
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("y", "7",
-                    DataType.STRING, null, false, "Subtract operation input_2", null);
+                    DataType.STRING, null, 2, false, "Subtract operation input_2", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);

http://git-wip-us.apache.org/repos/asf/airavata/blob/09668d33/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
index 8f034ae..9f055e9 100644
--- a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
+++ b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
@@ -261,7 +261,6 @@ public class LocalProvider extends AbstractProvider {
         Comparator<InputDataObjectType> inputOrderComparator = new Comparator<InputDataObjectType>() {
             @Override
             public int compare(InputDataObjectType inputDataObjectType, InputDataObjectType t1) {
-                log.info(" $$$$$$$$$$$$ inpput object order " + inputDataObjectType.getInputOrder() + " , t1 order " + t1.getInputOrder() + "$$$$$$$$$$$$$$$$" );
                 return inputDataObjectType.getInputOrder() - t1.getInputOrder();
             }
         };
@@ -272,7 +271,6 @@ public class LocalProvider extends AbstractProvider {
                 sortedInputSet.add(inputDOT);
             }
         }
-        log.info("$$$$$$$$$$$ size of sorted set = " + sortedInputSet.size() + "$$$$$$$$$$$$$$$$$$$");
         for (InputDataObjectType inputDataObjectType : sortedInputSet) {
             if (inputDataObjectType.getApplicationArgument() != null
                     && !inputDataObjectType.getApplicationArgument().equals("")) {


[6/6] airavata git commit: Merge branch 'gridChem_support', this will add input order preserving and application argument support to the gfac local provider

Posted by sh...@apache.org.
Merge branch 'gridChem_support', this will add input order preserving and application argument support to the gfac local provider


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/0c6301af
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/0c6301af
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/0c6301af

Branch: refs/heads/master
Commit: 0c6301afa71815d2feb9b8184f7fc1efd13684d2
Parents: b6d9a5e 09668d3
Author: shamrath <sh...@gmail.com>
Authored: Mon Dec 8 12:48:02 2014 -0500
Committer: shamrath <sh...@gmail.com>
Committed: Mon Dec 8 12:48:02 2014 -0500

----------------------------------------------------------------------
 .../applicationInterfaceModel_types.cpp         |  22 +++-
 .../airavata/applicationInterfaceModel_types.h  |  23 +++--
 .../lib/airavata/experimentModel_types.cpp      |  12 +--
 .../lib/airavata/experimentModel_types.h        |  12 +--
 .../lib/airavata/workflowDataModel_types.cpp    |   4 +-
 .../lib/airavata/workflowDataModel_types.h      |   4 +-
 .../Model/AppCatalog/AppInterface/Types.php     |  20 ++++
 .../client/samples/RegisterSampleData.java      |  14 +--
 .../tools/RegisterOGCEUS3Application.java       |   2 +-
 .../tools/RegisterSampleApplications.java       |  76 +++++++-------
 .../tools/RegisterSampleApplicationsUtils.java  |   3 +-
 .../client/tools/RegisterUS3Application.java    |   2 +-
 .../appinterface/InputDataObjectType.java       | 102 ++++++++++++++++++-
 .../airavata/model/util/AppInterfaceUtil.java   |   2 +
 .../applicationInterfaceModel.thrift            |   3 +-
 .../data/impl/ApplicationInterfaceImpl.java     |   6 +-
 .../catalog/data/impl/WorkflowCatalogImpl.java  |   4 +-
 .../catalog/data/model/ApplicationInput.java    |  10 ++
 .../catalog/data/model/WorkflowInput.java       |  12 ++-
 .../resources/ApplicationInputResource.java     |  22 ++--
 .../data/resources/WorkflowInputResource.java   |  21 ++--
 .../catalog/data/util/AppCatalogJPAUtils.java   |   6 +-
 .../data/util/AppCatalogThriftConversion.java   |   4 +-
 .../app/catalog/test/AppInterfaceTest.java      |   2 +
 .../gfac/local/provider/impl/LocalProvider.java |  41 +++++++-
 .../registry/jpa/impl/ExperimentRegistry.java   |  38 ++++---
 .../registry/jpa/model/ApplicationInput.java    |  55 ++++++++--
 .../registry/jpa/model/ApplicationOutput.java   |  22 ++--
 .../registry/jpa/model/Experiment_Input.java    |  56 ++++++++--
 .../registry/jpa/model/Experiment_Output.java   |  22 ++--
 .../registry/jpa/model/NodeInput.java           |  54 ++++++++--
 .../registry/jpa/model/NodeOutput.java          |  22 ++--
 .../jpa/resources/ApplicationInputResource.java |  58 +++++++++--
 .../resources/ApplicationOutputResource.java    |  25 ++---
 .../jpa/resources/ExperimentInputResource.java  |  59 +++++++++--
 .../jpa/resources/ExperimentOutputResource.java |  25 ++---
 .../jpa/resources/NodeInputResource.java        |  59 +++++++++--
 .../jpa/resources/NodeOutputResource.java       |  25 ++---
 .../registry/jpa/resources/Utils.java           |  27 +++--
 .../jpa/utils/ThriftDataModelConversion.java    |  39 ++++---
 .../src/main/resources/registry-derby.sql       |  27 +++--
 .../src/main/resources/registry-mysql.sql       |  27 +++--
 .../jpa/ExperimentInputResourceTest.java        |   2 +-
 .../jpa/ExperimentOutputResourceTest.java       |   2 +-
 .../engine/interpretor/WorkflowInterpreter.java |  14 ++-
 .../model/component/ws/WSComponent.java         |   3 +-
 .../component/ws/WSComponentApplication.java    |  97 ++++++++++--------
 .../ws/WSComponentApplicationParameter.java     |  39 ++++++-
 .../model/component/ws/WSComponentPort.java     |  23 ++++-
 .../workflow/model/gpel/script/BPELScript.java  |   2 +-
 .../model/gpel/script/WorkflowWSDL.java         |   3 +-
 .../workflow/model/graph/GraphSchema.java       |   1 +
 .../workflow/model/graph/system/InputNode.java  |  23 ++++-
 .../workflow/model/utils/WorkflowConstants.java |  16 ++-
 .../WorkflowInterpreterLaunchWindow.java        |   3 +
 55 files changed, 932 insertions(+), 365 deletions(-)
----------------------------------------------------------------------



[2/6] airavata git commit: Add an new property to inputnode keep application arugument and improve xbay gui to support that

Posted by sh...@apache.org.
Add an new property to inputnode keep application arugument and improve xbay gui to support that


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/ca2f23b2
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/ca2f23b2
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/ca2f23b2

Branch: refs/heads/master
Commit: ca2f23b2a9ca7ce1600b3e6a7effb63d261f3a91
Parents: 4697904
Author: shamrath <sh...@gmail.com>
Authored: Wed Dec 3 18:18:22 2014 -0500
Committer: shamrath <sh...@gmail.com>
Committed: Wed Dec 3 18:18:22 2014 -0500

----------------------------------------------------------------------
 .../gfac/local/provider/impl/LocalProvider.java | 24 ++++++++--
 .../registry/jpa/impl/ExperimentRegistry.java   | 26 +++++------
 .../registry/jpa/model/ApplicationInput.java    | 44 +++++++++++++++---
 .../registry/jpa/model/ApplicationOutput.java   | 22 +++------
 .../registry/jpa/model/Experiment_Input.java    | 45 +++++++++++++++---
 .../registry/jpa/model/Experiment_Output.java   | 22 +++------
 .../registry/jpa/model/NodeInput.java           | 44 +++++++++++++++---
 .../registry/jpa/model/NodeOutput.java          | 22 +++------
 .../jpa/resources/ApplicationInputResource.java | 47 ++++++++++++++++---
 .../resources/ApplicationOutputResource.java    | 25 +++-------
 .../jpa/resources/ExperimentInputResource.java  | 48 ++++++++++++++++----
 .../jpa/resources/ExperimentOutputResource.java | 25 +++-------
 .../jpa/resources/NodeInputResource.java        | 47 ++++++++++++++++---
 .../jpa/resources/NodeOutputResource.java       | 25 +++-------
 .../registry/jpa/resources/Utils.java           | 24 ++++++----
 .../jpa/utils/ThriftDataModelConversion.java    | 24 +++++-----
 .../src/main/resources/registry-derby.sql       | 24 ++++++----
 .../src/main/resources/registry-mysql.sql       | 24 ++++++----
 .../jpa/ExperimentInputResourceTest.java        |  2 +-
 .../jpa/ExperimentOutputResourceTest.java       |  2 +-
 .../model/component/ws/WSComponent.java         |  1 +
 .../component/ws/WSComponentApplication.java    |  4 +-
 .../ws/WSComponentApplicationParameter.java     | 22 +++++++--
 .../model/component/ws/WSComponentPort.java     |  9 ++++
 .../workflow/model/graph/system/InputNode.java  | 12 ++++-
 .../registry/ComponentRegistryLoader.java       | 10 ++--
 .../graph/system/InputConfigurationDialog.java  |  1 -
 .../WorkflowInterpreterLaunchWindow.java        |  2 +
 28 files changed, 414 insertions(+), 213 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
index f6ecc5f..8b79ff9 100644
--- a/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
+++ b/modules/gfac/gfac-local/src/main/java/org/apache/airavata/gfac/local/provider/impl/LocalProvider.java
@@ -39,6 +39,7 @@ import org.apache.airavata.gfac.local.utils.InputStreamToFileWriter;
 import org.apache.airavata.gfac.local.utils.InputUtils;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
 import org.apache.airavata.model.appcatalog.appdeployment.SetEnvPaths;
+import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
 import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
 import org.apache.airavata.model.messaging.event.JobIdentifier;
 import org.apache.airavata.model.messaging.event.JobStatusChangeEvent;
@@ -105,7 +106,8 @@ public class LocalProvider extends AbstractProvider {
     public void initialize(JobExecutionContext jobExecutionContext) throws GFacProviderException,GFacException {
     	super.initialize(jobExecutionContext);
 
-        buildCommand(jobExecutionContext.getExecutablePath(), ProviderUtils.getInputParameterValues(jobExecutionContext));
+        // build command with all inputs
+        buildCommand();
         initProcessBuilder(jobExecutionContext.getApplicationContext().getApplicationDeploymentDescription());
 
         // extra environment variables
@@ -247,9 +249,23 @@ public class LocalProvider extends AbstractProvider {
     }
 
 
-    private void buildCommand(String executable, List<String> inputParameterList){
-        cmdList.add(executable);
-        cmdList.addAll(inputParameterList);
+    private void buildCommand() {
+        cmdList.add(jobExecutionContext.getExecutablePath());
+        Map<String, Object> inputParameters = jobExecutionContext.getInMessageContext().getParameters();
+        for (Object inputObject : inputParameters.values()) {
+            if (inputObject instanceof InputDataObjectType) {
+                InputDataObjectType inputDataObjectType = (InputDataObjectType) inputObject;
+                if (inputDataObjectType.getApplicationArgument() != null
+                        && !inputDataObjectType.getApplicationArgument().equals("")) {
+                    cmdList.add(inputDataObjectType.getApplicationArgument());
+                }
+
+                if (inputDataObjectType.getValue() != null
+                        && !inputDataObjectType.getValue().equals("")) {
+                    cmdList.add(inputDataObjectType.getValue());
+                }
+            }
+        }
     }
 
     private void initProcessBuilder(ApplicationDeploymentDescription app){

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/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..b091ebf 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,7 +271,7 @@ 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.save();
@@ -290,7 +290,7 @@ 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.save();
@@ -313,7 +313,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 +336,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 +359,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 +382,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 +405,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,7 +813,7 @@ 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.save();
@@ -834,7 +834,7 @@ 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.save();
@@ -991,7 +991,7 @@ 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.save();
@@ -1011,7 +1011,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 +1035,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,7 +1056,7 @@ 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.save();

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/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..c80cb1b 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,13 +37,21 @@ 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 = "STANDARD_INPUT")
+    private boolean standardInput;
+
+    @Column(name = "USER_FRIENDLY_DESC")
+    private String userFriendlyDesc;
 
     @ManyToOne(cascade= CascadeType.MERGE)
     @JoinColumn(name = "TASK_ID")
@@ -65,12 +73,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 +104,28 @@ 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;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/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..7014a30 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,10 +37,8 @@ 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;
@@ -57,14 +55,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 +79,11 @@ public class ApplicationOutput implements Serializable {
         this.outputKey = outputKey;
     }
 
-    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;
     }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/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..a0dd404 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,8 +43,17 @@ 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;
@@ -77,12 +86,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 +109,28 @@ 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;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/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..a88659b 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,8 @@ 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;
 
     @ManyToOne
     @JoinColumn(name = "EXPERIMENT_ID")
@@ -74,20 +72,12 @@ public class Experiment_Output  implements Serializable {
         this.value = value;
     }
 
-    public String getMetadata() {
-        return metadata;
+    public String getDataType() {
+        return dataType;
     }
 
-    public void setMetadata(String metadata) {
-        this.metadata = metadata;
-    }
-
-    public String getOutputKeyType() {
-        return outputKeyType;
-    }
-
-    public void setOutputKeyType(String outputKeyType) {
-        this.outputKeyType = outputKeyType;
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
     }
 
     public Experiment getExperiment() {

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/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..d25886e 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,20 @@ 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 = "STANDARD_INPUT")
+    private boolean standardInput;
+
+    @Column(name = "USER_FRIENDLY_DESC")
+    private String userFriendlyDesc;
 
     @ManyToOne(cascade= CascadeType.MERGE)
     @JoinColumn(name = "NODE_INSTANCE_ID")
@@ -56,12 +64,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 +103,28 @@ 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;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/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..7aa9d40 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,10 +37,8 @@ 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;
 
@@ -56,14 +54,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 +78,11 @@ public class NodeOutput implements Serializable {
         this.outputKey = outputKey;
     }
 
-    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;
     }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/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..8d3f704 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,36 @@ 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;
+
+    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 +78,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 +149,10 @@ 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);
             if (value != null){
                 applicationInput.setValue(value.toCharArray());
             }
@@ -133,7 +163,10 @@ 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);
                 if (value != null){
                     existingInput.setValue(value.toCharArray());
                 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/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..db39c49 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,8 +39,7 @@ 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;
 
     public String getOutputKey() {
@@ -51,20 +50,12 @@ public class ApplicationOutputResource extends AbstractResource {
         this.outputKey = outputKey;
     }
 
-    public String getOutputType() {
-        return outputType;
+    public String getDataType() {
+        return dataType;
     }
 
-    public void setOutputType(String outputType) {
-        this.outputType = outputType;
-    }
-
-    public String getMetadata() {
-        return metadata;
-    }
-
-    public void setMetadata(String metadata) {
-        this.metadata = metadata;
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
     }
 
     public String getValue() {
@@ -122,21 +113,19 @@ public class ApplicationOutputResource extends AbstractResource {
             applicationOutput.setTask(taskDetail);
             applicationOutput.setTaskId(taskDetail.getTaskId());
             applicationOutput.setOutputKey(outputKey);
-            applicationOutput.setOutputKeyType(outputType);
+            applicationOutput.setDataType(dataType);
             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);
                 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/ca2f23b2/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..5c0fa98 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,35 @@ 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;
+
+    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 +94,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 +147,11 @@ 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);
             if (existingInput != null) {
                 existingInput.setEx_key(experimentKey);
                 existingInput.setExperiment(experiment);
@@ -130,8 +159,11 @@ 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);
                 exInput = em.merge(existingInput);
             } else {
                 em.persist(exInput);

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/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..c6375f7 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,7 @@ public class ExperimentOutputResource extends AbstractResource {
     private ExperimentResource experimentResource;
     private String experimentKey;
     private String value;
-    private String outputType;
-    private String metadata;
+    private String dataType;
 
     public String getExperimentKey() {
         return experimentKey;
@@ -67,20 +66,12 @@ public class ExperimentOutputResource extends AbstractResource {
         this.experimentResource = experimentResource;
     }
 
-    public String getOutputType() {
-        return outputType;
+    public String getDataType() {
+        return dataType;
     }
 
-    public void setOutputType(String outputType) {
-        this.outputType = outputType;
-    }
-
-    public String getMetadata() {
-        return metadata;
-    }
-
-    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 +111,7 @@ public class ExperimentOutputResource extends AbstractResource {
             if (value != null){
                 exOutput.setValue(value.toCharArray());
             }
-            exOutput.setOutputKeyType(outputType);
-            exOutput.setMetadata(metadata);
+            exOutput.setDataType(dataType);
 
             if (existingOutput != null) {
                 existingOutput.setEx_key(experimentKey);
@@ -130,8 +120,7 @@ public class ExperimentOutputResource extends AbstractResource {
                     existingOutput.setValue(value.toCharArray());
                 }
                 existingOutput.setExperiment_id(experiment.getExpId());
-                existingOutput.setOutputKeyType(outputType);
-                existingOutput.setMetadata(metadata);
+                existingOutput.setDataType(dataType);
                 exOutput = em.merge(existingOutput);
             } else {
                 em.persist(exOutput);

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/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..a335b2e 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,36 @@ 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;
+
+    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 +87,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() {
@@ -123,17 +150,23 @@ 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);
 
             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);
                 nodeInput = em.merge(existingInput);
             }else {
                 em.persist(nodeInput);

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/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..0770894 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,8 +40,7 @@ public class NodeOutputResource extends AbstractResource {
 	
     private WorkflowNodeDetailResource nodeDetailResource;
     private String outputKey;
-    private String outputType;
-    private String metadata;
+    private String dataType;
     private String value;
 
     public WorkflowNodeDetailResource getNodeDetailResource() {
@@ -60,20 +59,12 @@ public class NodeOutputResource extends AbstractResource {
         this.outputKey = outputKey;
     }
 
-    public String getOutputType() {
-        return outputType;
+    public String getDataType() {
+        return dataType;
     }
 
-    public void setOutputType(String outputType) {
-        this.outputType = outputType;
-    }
-
-    public String getMetadata() {
-        return metadata;
-    }
-
-    public void setMetadata(String metadata) {
-        this.metadata = metadata;
+    public void setDataType(String dataType) {
+        this.dataType = dataType;
     }
 
     public String getValue() {
@@ -123,17 +114,15 @@ 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);
 
             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);
                 nodeOutput = em.merge(existingOutput);
             } else {
                 em.persist(nodeOutput);

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/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..2fd3957 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,12 @@ 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.setStandardInput(o.isStandardInput());
+            eInputResource.setUserFriendlyDesc(o.getUserFriendlyDesc());
             if (o.getValue() != null){
                 eInputResource.setValue(new String(o.getValue()));
             }
@@ -533,8 +536,7 @@ 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());
         }
         return eOutputResource;
     }
@@ -601,7 +603,10 @@ 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.setStandardInput(o.isStandardInput());
+            inputResource.setUserFriendlyDesc(o.getUserFriendlyDesc());
             if (o.getValue() != null){
                 inputResource.setValue(new String(o.getValue()));
             }
@@ -615,12 +620,11 @@ 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());
         }
         return outputResource;
     }
@@ -631,9 +635,12 @@ 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.setStandardInput(o.isStandardInput());
+            inputResource.setUserFriendlyDesc(o.getUserFriendlyDesc());
         }
         return inputResource;
     }
@@ -643,10 +650,9 @@ 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());
         }
 
         return outputResource;

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/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..12e337e 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
@@ -186,8 +186,8 @@ 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());
                 return dataObjectType;
@@ -195,8 +195,8 @@ public class ThriftDataModelConversion {
                 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());
                 return dataObjectType;
@@ -204,8 +204,8 @@ public class ThriftDataModelConversion {
                 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());
                 return dataObjectType;
@@ -223,8 +223,8 @@ 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()));
                 }
 //                dataObjectType.setMetaData(expOutput.getMetadata());
                 return dataObjectType;
@@ -232,8 +232,8 @@ public class ThriftDataModelConversion {
                 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());
                 return dataObjectType;
@@ -241,8 +241,8 @@ public class ThriftDataModelConversion {
                 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()));
                 }
 //                dataObjectType.setMetaData(outputResource.getMetadata());
                 return dataObjectType;

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/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..9b46456 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,8 +125,11 @@ 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,
         PRIMARY KEY(EXPERIMENT_ID,INPUT_KEY),
         FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
@@ -136,8 +139,7 @@ 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,
         PRIMARY KEY(EXPERIMENT_ID,OUTPUT_KEY),
         FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
@@ -192,8 +194,11 @@ 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,
         PRIMARY KEY(TASK_ID,INPUT_KEY),
         FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE
@@ -203,8 +208,7 @@ 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,
         PRIMARY KEY(TASK_ID,OUTPUT_KEY),
         FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE
@@ -214,8 +218,11 @@ 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),
        PRIMARY KEY(NODE_INSTANCE_ID,INPUT_KEY),
        FOREIGN KEY (NODE_INSTANCE_ID) REFERENCES WORKFLOW_NODE_DETAIL(NODE_INSTANCE_ID) ON DELETE CASCADE
@@ -225,8 +232,7 @@ 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),
        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/ca2f23b2/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..7f070e8 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,7 +125,10 @@ 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,
         PRIMARY KEY(EXPERIMENT_ID,INPUT_KEY),
@@ -136,8 +139,7 @@ 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,
         PRIMARY KEY(EXPERIMENT_ID,OUTPUT_KEY),
         FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
@@ -173,7 +175,10 @@ 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,
         PRIMARY KEY(TASK_ID,INPUT_KEY),
@@ -184,8 +189,7 @@ 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,
         PRIMARY KEY(TASK_ID,OUTPUT_KEY),
         FOREIGN KEY (TASK_ID) REFERENCES TASK_DETAIL(TASK_ID) ON DELETE CASCADE
@@ -195,7 +199,10 @@ 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),
        PRIMARY KEY(NODE_INSTANCE_ID,INPUT_KEY),
@@ -206,8 +213,7 @@ 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),
        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/ca2f23b2/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/ca2f23b2/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/ca2f23b2/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponent.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponent.java b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponent.java
index bedfaac..b111322 100644
--- a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponent.java
+++ b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponent.java
@@ -92,6 +92,7 @@ public class WSComponent extends Component {
             WSComponentPort port = new WSComponentPort(inputDataObjectType.getName(),inputDataObjectType.getType() , this);
             port.setDescription(inputDataObjectType.getDescription());
             port.setDefaultValue(inputDataObjectType.getDefaultValue());
+            port.setApplicationArgument(inputDataObjectType.getApplicationArgument());
 			inputs.add(port);
 		}
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplication.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplication.java b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplication.java
index 5bf9daa..5ac10bd 100644
--- a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplication.java
+++ b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplication.java
@@ -211,8 +211,8 @@ public class WSComponentApplication {
             namespace = XmlConstants.BUILDER.newNamespace("xsd", WSConstants.XSD_NS_URI);
             String prefix = "xsd";
             QName type = new QName(namespace.getName(), typeName, prefix);
-            
-			addInputParameter(new WSComponentApplicationParameter(inputDataObjectType.getName(),type ,inputDataObjectType.getUserFriendlyDescription(), inputDataObjectType.getValue()));
+
+			addInputParameter(new WSComponentApplicationParameter(inputDataObjectType.getName(), type, inputDataObjectType.getUserFriendlyDescription(), inputDataObjectType.getValue(), inputDataObjectType.getApplicationArgument()));
 		}
 
         List<OutputDataObjectType> applicationOutputs = application.getApplicationOutputs();

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplicationParameter.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplicationParameter.java b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplicationParameter.java
index 92f6e56..42d889a 100644
--- a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplicationParameter.java
+++ b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentApplicationParameter.java
@@ -28,22 +28,28 @@ import javax.xml.bind.annotation.XmlValue;
 import javax.xml.namespace.QName;
 
 @XmlRootElement(name="Parameter")
-@XmlType(propOrder = {"name", "type", "description", "defaultValue"})
+@XmlType(propOrder = {"name", "type", "description", "defaultValue", "applicationArgument"})
 public class WSComponentApplicationParameter {
 	private String name;
 	private QName type;
 	private String description;
 	private String defaultValue;
+	private String applicationArgument;
 	
 	public WSComponentApplicationParameter() {
 	}
-	
+
+	public WSComponentApplicationParameter(String name, QName type, String description, String defaultValue) {
+		this(name, type, description, defaultValue, "");
+	}
+
 	public WSComponentApplicationParameter(String name, QName type,
-			String description, String defaultValue) {
+			String description, String defaultValue, String applicationArgument) {
 		this.name = name;
 		this.type = type;
 		this.description = description;
 		this.defaultValue = defaultValue;
+		this.applicationArgument = applicationArgument;
 	}
 
 	@XmlAttribute (required = true)
@@ -77,5 +83,13 @@ public class WSComponentApplicationParameter {
 	public void setDefaultValue(String defaultValue) {
 		this.defaultValue = defaultValue;
 	}
-	
+
+	@XmlAttribute
+	public String getApplicationArgument() {
+		return applicationArgument;
+	}
+
+	public void setApplicationArgument(String applicationArgument) {
+		this.applicationArgument = applicationArgument;
+	}
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentPort.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentPort.java b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentPort.java
index 259744e..b241116 100644
--- a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentPort.java
+++ b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/component/ws/WSComponentPort.java
@@ -39,6 +39,7 @@ public class WSComponentPort extends ComponentDataPort {
      * default
      */
     public static final String DEFAULT = "default";
+    private String applicationArgument;
 
     private WSComponent component;
 
@@ -152,6 +153,14 @@ public class WSComponentPort extends ComponentDataPort {
         this.value = value;
     }
 
+    public String getApplicationArgument() {
+        return applicationArgument;
+    }
+
+    public void setApplicationArgument(String applicationArgument) {
+        this.applicationArgument = applicationArgument;
+    }
+
     /**
      * @return The appinfo element.
      */

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/graph/system/InputNode.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/graph/system/InputNode.java b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/graph/system/InputNode.java
index c0bbf55..545d316 100644
--- a/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/graph/system/InputNode.java
+++ b/modules/workflow-model/workflow-model-core/src/main/java/org/apache/airavata/workflow/model/graph/system/InputNode.java
@@ -27,7 +27,6 @@ import javax.xml.namespace.QName;
 
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
-import com.google.gson.JsonPrimitive;
 import org.apache.airavata.common.utils.WSConstants;
 import org.apache.airavata.workflow.model.component.Component;
 import org.apache.airavata.workflow.model.component.system.InputComponent;
@@ -57,6 +56,8 @@ public class InputNode extends ParameterNode {
 
     private boolean visibility;
 
+    private String applicationArgument;
+
     /**
      * Creates an InputNode.
      * 
@@ -90,6 +91,14 @@ public class InputNode extends ParameterNode {
         this.visibility = visibility;
     }
 
+    public String getApplicationArgument() {
+        return applicationArgument;
+    }
+
+    public void setApplicationArgument(String applicationArgument) {
+        this.applicationArgument = applicationArgument;
+    }
+
     /**
      * @see org.apache.airavata.workflow.model.graph.impl.NodeImpl#getComponent()
      */
@@ -365,6 +374,7 @@ public class InputNode extends ParameterNode {
         setDescription(componentPort.getDescription());
         setDefaultValue(componentPort.getDefaultValue());
         setMetadata(componentPort.getAppinfo());
+        setApplicationArgument(componentPort.getApplicationArgument());
     }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/ComponentRegistryLoader.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/ComponentRegistryLoader.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/ComponentRegistryLoader.java
index b367dd6..0ca5f83 100644
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/ComponentRegistryLoader.java
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/component/registry/ComponentRegistryLoader.java
@@ -94,12 +94,12 @@ public class ComponentRegistryLoader implements Cancelable, Observer {
                 runInThread(registry);
             }
         };
-        this.loadThread.start();
-        
         if (!getComponentTreeNodesMap().containsKey(registry.getName())) {
-			// This has to be the last because it blocks when the dialog is modal.
-			this.loadingDialog.show();
-		}
+            // This has to be the last because it blocks when the dialog is modal.
+            this.loadingDialog.show();
+        }
+        this.loadThread.start();
+
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/graph/system/InputConfigurationDialog.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/graph/system/InputConfigurationDialog.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/graph/system/InputConfigurationDialog.java
index ffbd764..84249a9 100644
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/graph/system/InputConfigurationDialog.java
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/dialogs/graph/system/InputConfigurationDialog.java
@@ -28,7 +28,6 @@ import javax.swing.JButton;
 import javax.swing.JPanel;
 import javax.xml.namespace.QName;
 
-import org.apache.airavata.common.utils.WSConstants;
 import org.apache.airavata.common.utils.XMLUtil;
 import org.apache.airavata.workflow.model.graph.system.InputNode;
 import org.apache.airavata.xbaya.lead.LEADTypes;

http://git-wip-us.apache.org/repos/asf/airavata/blob/ca2f23b2/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/WorkflowInterpreterLaunchWindow.java
----------------------------------------------------------------------
diff --git a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/WorkflowInterpreterLaunchWindow.java b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/WorkflowInterpreterLaunchWindow.java
index 6b9ba7c..09cb3e8 100644
--- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/WorkflowInterpreterLaunchWindow.java
+++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/WorkflowInterpreterLaunchWindow.java
@@ -308,6 +308,8 @@ public class WorkflowInterpreterLaunchWindow {
             elem.setName(inputNode.getID());
             elem.setType(DataType.STRING);
             elem.setValue(value);
+            elem.setApplicationArgument(inputNode.getApplicationArgument());
+
 			experiment.addToExperimentInputs(elem );
         }