airavata-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From shame...@apache.org
Subject [3/5] airavata git commit: Revert "Revert "Merge branch 'master' of"", Reverting msmemon's merge commits and revert commit of that merge commit
Date Thu, 11 Dec 2014 19:45:15 GMT
http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/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..8ab0b46 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,10 @@ 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 org.apache.thrift.protocol.TField INPUT_VALID_FIELD_DESC = new org.apache.thrift.protocol.TField("inputValid", org.apache.thrift.protocol.TType.I32, (short)9);
+  private static final org.apache.thrift.protocol.TField ADDED_TO_COMMAND_LINE_FIELD_DESC = new org.apache.thrift.protocol.TField("addedToCommandLine", org.apache.thrift.protocol.TType.I32, (short)10);
+  private static final org.apache.thrift.protocol.TField DATA_STAGED_FIELD_DESC = new org.apache.thrift.protocol.TField("dataStaged", org.apache.thrift.protocol.TType.BOOL, (short)11);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -99,6 +103,10 @@ import org.slf4j.LoggerFactory;
   private boolean standardInput; // optional
   private String userFriendlyDescription; // optional
   private String metaData; // optional
+  private int inputOrder; // optional
+  private ValidityType inputValid; // optional
+  private CommandLineType addedToCommandLine; // optional
+  private boolean dataStaged; // 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 +120,19 @@ 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"),
+    /**
+     * 
+     * @see ValidityType
+     */
+    INPUT_VALID((short)9, "inputValid"),
+    /**
+     * 
+     * @see CommandLineType
+     */
+    ADDED_TO_COMMAND_LINE((short)10, "addedToCommandLine"),
+    DATA_STAGED((short)11, "dataStaged");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -141,6 +161,14 @@ import org.slf4j.LoggerFactory;
           return USER_FRIENDLY_DESCRIPTION;
         case 7: // META_DATA
           return META_DATA;
+        case 8: // INPUT_ORDER
+          return INPUT_ORDER;
+        case 9: // INPUT_VALID
+          return INPUT_VALID;
+        case 10: // ADDED_TO_COMMAND_LINE
+          return ADDED_TO_COMMAND_LINE;
+        case 11: // DATA_STAGED
+          return DATA_STAGED;
         default:
           return null;
       }
@@ -182,8 +210,10 @@ import org.slf4j.LoggerFactory;
 
   // isset id assignments
   private static final int __STANDARDINPUT_ISSET_ID = 0;
+  private static final int __INPUTORDER_ISSET_ID = 1;
+  private static final int __DATASTAGED_ISSET_ID = 2;
   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,_Fields.INPUT_VALID,_Fields.ADDED_TO_COMMAND_LINE,_Fields.DATA_STAGED};
   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 +231,14 @@ 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)));
+    tmpMap.put(_Fields.INPUT_VALID, new org.apache.thrift.meta_data.FieldMetaData("inputValid", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ValidityType.class)));
+    tmpMap.put(_Fields.ADDED_TO_COMMAND_LINE, new org.apache.thrift.meta_data.FieldMetaData("addedToCommandLine", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, CommandLineType.class)));
+    tmpMap.put(_Fields.DATA_STAGED, new org.apache.thrift.meta_data.FieldMetaData("dataStaged", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(InputDataObjectType.class, metaDataMap);
   }
@@ -208,6 +246,8 @@ import org.slf4j.LoggerFactory;
   public InputDataObjectType() {
     this.standardInput = false;
 
+    this.dataStaged = false;
+
   }
 
   public InputDataObjectType(
@@ -241,6 +281,14 @@ import org.slf4j.LoggerFactory;
     if (other.isSetMetaData()) {
       this.metaData = other.metaData;
     }
+    this.inputOrder = other.inputOrder;
+    if (other.isSetInputValid()) {
+      this.inputValid = other.inputValid;
+    }
+    if (other.isSetAddedToCommandLine()) {
+      this.addedToCommandLine = other.addedToCommandLine;
+    }
+    this.dataStaged = other.dataStaged;
   }
 
   public InputDataObjectType deepCopy() {
@@ -257,6 +305,12 @@ import org.slf4j.LoggerFactory;
 
     this.userFriendlyDescription = null;
     this.metaData = null;
+    setInputOrderIsSet(false);
+    this.inputOrder = 0;
+    this.inputValid = null;
+    this.addedToCommandLine = null;
+    this.dataStaged = false;
+
   }
 
   public String getName() {
@@ -427,6 +481,112 @@ 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);
+  }
+
+  /**
+   * 
+   * @see ValidityType
+   */
+  public ValidityType getInputValid() {
+    return this.inputValid;
+  }
+
+  /**
+   * 
+   * @see ValidityType
+   */
+  public void setInputValid(ValidityType inputValid) {
+    this.inputValid = inputValid;
+  }
+
+  public void unsetInputValid() {
+    this.inputValid = null;
+  }
+
+  /** Returns true if field inputValid is set (has been assigned a value) and false otherwise */
+  public boolean isSetInputValid() {
+    return this.inputValid != null;
+  }
+
+  public void setInputValidIsSet(boolean value) {
+    if (!value) {
+      this.inputValid = null;
+    }
+  }
+
+  /**
+   * 
+   * @see CommandLineType
+   */
+  public CommandLineType getAddedToCommandLine() {
+    return this.addedToCommandLine;
+  }
+
+  /**
+   * 
+   * @see CommandLineType
+   */
+  public void setAddedToCommandLine(CommandLineType addedToCommandLine) {
+    this.addedToCommandLine = addedToCommandLine;
+  }
+
+  public void unsetAddedToCommandLine() {
+    this.addedToCommandLine = null;
+  }
+
+  /** Returns true if field addedToCommandLine is set (has been assigned a value) and false otherwise */
+  public boolean isSetAddedToCommandLine() {
+    return this.addedToCommandLine != null;
+  }
+
+  public void setAddedToCommandLineIsSet(boolean value) {
+    if (!value) {
+      this.addedToCommandLine = null;
+    }
+  }
+
+  public boolean isDataStaged() {
+    return this.dataStaged;
+  }
+
+  public void setDataStaged(boolean dataStaged) {
+    this.dataStaged = dataStaged;
+    setDataStagedIsSet(true);
+  }
+
+  public void unsetDataStaged() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __DATASTAGED_ISSET_ID);
+  }
+
+  /** Returns true if field dataStaged is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataStaged() {
+    return EncodingUtils.testBit(__isset_bitfield, __DATASTAGED_ISSET_ID);
+  }
+
+  public void setDataStagedIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DATASTAGED_ISSET_ID, value);
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case NAME:
@@ -485,6 +645,38 @@ import org.slf4j.LoggerFactory;
       }
       break;
 
+    case INPUT_ORDER:
+      if (value == null) {
+        unsetInputOrder();
+      } else {
+        setInputOrder((Integer)value);
+      }
+      break;
+
+    case INPUT_VALID:
+      if (value == null) {
+        unsetInputValid();
+      } else {
+        setInputValid((ValidityType)value);
+      }
+      break;
+
+    case ADDED_TO_COMMAND_LINE:
+      if (value == null) {
+        unsetAddedToCommandLine();
+      } else {
+        setAddedToCommandLine((CommandLineType)value);
+      }
+      break;
+
+    case DATA_STAGED:
+      if (value == null) {
+        unsetDataStaged();
+      } else {
+        setDataStaged((Boolean)value);
+      }
+      break;
+
     }
   }
 
@@ -511,6 +703,18 @@ import org.slf4j.LoggerFactory;
     case META_DATA:
       return getMetaData();
 
+    case INPUT_ORDER:
+      return Integer.valueOf(getInputOrder());
+
+    case INPUT_VALID:
+      return getInputValid();
+
+    case ADDED_TO_COMMAND_LINE:
+      return getAddedToCommandLine();
+
+    case DATA_STAGED:
+      return Boolean.valueOf(isDataStaged());
+
     }
     throw new IllegalStateException();
   }
@@ -536,6 +740,14 @@ import org.slf4j.LoggerFactory;
       return isSetUserFriendlyDescription();
     case META_DATA:
       return isSetMetaData();
+    case INPUT_ORDER:
+      return isSetInputOrder();
+    case INPUT_VALID:
+      return isSetInputValid();
+    case ADDED_TO_COMMAND_LINE:
+      return isSetAddedToCommandLine();
+    case DATA_STAGED:
+      return isSetDataStaged();
     }
     throw new IllegalStateException();
   }
@@ -616,6 +828,42 @@ 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;
+    }
+
+    boolean this_present_inputValid = true && this.isSetInputValid();
+    boolean that_present_inputValid = true && that.isSetInputValid();
+    if (this_present_inputValid || that_present_inputValid) {
+      if (!(this_present_inputValid && that_present_inputValid))
+        return false;
+      if (!this.inputValid.equals(that.inputValid))
+        return false;
+    }
+
+    boolean this_present_addedToCommandLine = true && this.isSetAddedToCommandLine();
+    boolean that_present_addedToCommandLine = true && that.isSetAddedToCommandLine();
+    if (this_present_addedToCommandLine || that_present_addedToCommandLine) {
+      if (!(this_present_addedToCommandLine && that_present_addedToCommandLine))
+        return false;
+      if (!this.addedToCommandLine.equals(that.addedToCommandLine))
+        return false;
+    }
+
+    boolean this_present_dataStaged = true && this.isSetDataStaged();
+    boolean that_present_dataStaged = true && that.isSetDataStaged();
+    if (this_present_dataStaged || that_present_dataStaged) {
+      if (!(this_present_dataStaged && that_present_dataStaged))
+        return false;
+      if (this.dataStaged != that.dataStaged)
+        return false;
+    }
+
     return true;
   }
 
@@ -702,6 +950,46 @@ 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;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetInputValid()).compareTo(other.isSetInputValid());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetInputValid()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.inputValid, other.inputValid);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetAddedToCommandLine()).compareTo(other.isSetAddedToCommandLine());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetAddedToCommandLine()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.addedToCommandLine, other.addedToCommandLine);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDataStaged()).compareTo(other.isSetDataStaged());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataStaged()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataStaged, other.dataStaged);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -785,6 +1073,38 @@ import org.slf4j.LoggerFactory;
       }
       first = false;
     }
+    if (isSetInputOrder()) {
+      if (!first) sb.append(", ");
+      sb.append("inputOrder:");
+      sb.append(this.inputOrder);
+      first = false;
+    }
+    if (isSetInputValid()) {
+      if (!first) sb.append(", ");
+      sb.append("inputValid:");
+      if (this.inputValid == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.inputValid);
+      }
+      first = false;
+    }
+    if (isSetAddedToCommandLine()) {
+      if (!first) sb.append(", ");
+      sb.append("addedToCommandLine:");
+      if (this.addedToCommandLine == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.addedToCommandLine);
+      }
+      first = false;
+    }
+    if (isSetDataStaged()) {
+      if (!first) sb.append(", ");
+      sb.append("dataStaged:");
+      sb.append(this.dataStaged);
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -890,6 +1210,38 @@ 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;
+          case 9: // INPUT_VALID
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.inputValid = ValidityType.findByValue(iprot.readI32());
+              struct.setInputValidIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 10: // ADDED_TO_COMMAND_LINE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.addedToCommandLine = CommandLineType.findByValue(iprot.readI32());
+              struct.setAddedToCommandLineIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 11: // DATA_STAGED
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.dataStaged = iprot.readBool();
+              struct.setDataStagedIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -948,6 +1300,30 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldEnd();
         }
       }
+      if (struct.isSetInputOrder()) {
+        oprot.writeFieldBegin(INPUT_ORDER_FIELD_DESC);
+        oprot.writeI32(struct.inputOrder);
+        oprot.writeFieldEnd();
+      }
+      if (struct.inputValid != null) {
+        if (struct.isSetInputValid()) {
+          oprot.writeFieldBegin(INPUT_VALID_FIELD_DESC);
+          oprot.writeI32(struct.inputValid.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.addedToCommandLine != null) {
+        if (struct.isSetAddedToCommandLine()) {
+          oprot.writeFieldBegin(ADDED_TO_COMMAND_LINE_FIELD_DESC);
+          oprot.writeI32(struct.addedToCommandLine.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetDataStaged()) {
+        oprot.writeFieldBegin(DATA_STAGED_FIELD_DESC);
+        oprot.writeBool(struct.dataStaged);
+        oprot.writeFieldEnd();
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -985,7 +1361,19 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetMetaData()) {
         optionals.set(5);
       }
-      oprot.writeBitSet(optionals, 6);
+      if (struct.isSetInputOrder()) {
+        optionals.set(6);
+      }
+      if (struct.isSetInputValid()) {
+        optionals.set(7);
+      }
+      if (struct.isSetAddedToCommandLine()) {
+        optionals.set(8);
+      }
+      if (struct.isSetDataStaged()) {
+        optionals.set(9);
+      }
+      oprot.writeBitSet(optionals, 10);
       if (struct.isSetValue()) {
         oprot.writeString(struct.value);
       }
@@ -1004,6 +1392,18 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetMetaData()) {
         oprot.writeString(struct.metaData);
       }
+      if (struct.isSetInputOrder()) {
+        oprot.writeI32(struct.inputOrder);
+      }
+      if (struct.isSetInputValid()) {
+        oprot.writeI32(struct.inputValid.getValue());
+      }
+      if (struct.isSetAddedToCommandLine()) {
+        oprot.writeI32(struct.addedToCommandLine.getValue());
+      }
+      if (struct.isSetDataStaged()) {
+        oprot.writeBool(struct.dataStaged);
+      }
     }
 
     @Override
@@ -1011,7 +1411,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(10);
       if (incoming.get(0)) {
         struct.value = iprot.readString();
         struct.setValueIsSet(true);
@@ -1036,6 +1436,22 @@ import org.slf4j.LoggerFactory;
         struct.metaData = iprot.readString();
         struct.setMetaDataIsSet(true);
       }
+      if (incoming.get(6)) {
+        struct.inputOrder = iprot.readI32();
+        struct.setInputOrderIsSet(true);
+      }
+      if (incoming.get(7)) {
+        struct.inputValid = ValidityType.findByValue(iprot.readI32());
+        struct.setInputValidIsSet(true);
+      }
+      if (incoming.get(8)) {
+        struct.addedToCommandLine = CommandLineType.findByValue(iprot.readI32());
+        struct.setAddedToCommandLineIsSet(true);
+      }
+      if (incoming.get(9)) {
+        struct.dataStaged = iprot.readBool();
+        struct.setDataStagedIsSet(true);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/OutputDataObjectType.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/OutputDataObjectType.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/OutputDataObjectType.java
index ddfaae9..337f167 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/OutputDataObjectType.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/appinterface/OutputDataObjectType.java
@@ -81,6 +81,9 @@ import org.slf4j.LoggerFactory;
   private static final org.apache.thrift.protocol.TField NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("name", org.apache.thrift.protocol.TType.STRING, (short)1);
   private static final org.apache.thrift.protocol.TField VALUE_FIELD_DESC = new org.apache.thrift.protocol.TField("value", org.apache.thrift.protocol.TType.STRING, (short)2);
   private static final org.apache.thrift.protocol.TField TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("type", org.apache.thrift.protocol.TType.I32, (short)3);
+  private static final org.apache.thrift.protocol.TField VALIDITY_TYPE_FIELD_DESC = new org.apache.thrift.protocol.TField("validityType", org.apache.thrift.protocol.TType.I32, (short)4);
+  private static final org.apache.thrift.protocol.TField DATA_MOVEMENT_FIELD_DESC = new org.apache.thrift.protocol.TField("dataMovement", org.apache.thrift.protocol.TType.BOOL, (short)5);
+  private static final org.apache.thrift.protocol.TField DATA_NAME_LOCATION_FIELD_DESC = new org.apache.thrift.protocol.TField("dataNameLocation", org.apache.thrift.protocol.TType.STRING, (short)6);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -91,6 +94,9 @@ import org.slf4j.LoggerFactory;
   private String name; // required
   private String value; // optional
   private DataType type; // optional
+  private ValidityType validityType; // optional
+  private boolean dataMovement; // optional
+  private String dataNameLocation; // 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 {
@@ -100,7 +106,14 @@ import org.slf4j.LoggerFactory;
      * 
      * @see DataType
      */
-    TYPE((short)3, "type");
+    TYPE((short)3, "type"),
+    /**
+     * 
+     * @see ValidityType
+     */
+    VALIDITY_TYPE((short)4, "validityType"),
+    DATA_MOVEMENT((short)5, "dataMovement"),
+    DATA_NAME_LOCATION((short)6, "dataNameLocation");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -121,6 +134,12 @@ import org.slf4j.LoggerFactory;
           return VALUE;
         case 3: // TYPE
           return TYPE;
+        case 4: // VALIDITY_TYPE
+          return VALIDITY_TYPE;
+        case 5: // DATA_MOVEMENT
+          return DATA_MOVEMENT;
+        case 6: // DATA_NAME_LOCATION
+          return DATA_NAME_LOCATION;
         default:
           return null;
       }
@@ -161,7 +180,9 @@ import org.slf4j.LoggerFactory;
   }
 
   // isset id assignments
-  private _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE};
+  private static final int __DATAMOVEMENT_ISSET_ID = 0;
+  private byte __isset_bitfield = 0;
+  private _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE,_Fields.VALIDITY_TYPE,_Fields.DATA_MOVEMENT,_Fields.DATA_NAME_LOCATION};
   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);
@@ -171,6 +192,12 @@ import org.slf4j.LoggerFactory;
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.TYPE, new org.apache.thrift.meta_data.FieldMetaData("type", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, DataType.class)));
+    tmpMap.put(_Fields.VALIDITY_TYPE, new org.apache.thrift.meta_data.FieldMetaData("validityType", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.EnumMetaData(org.apache.thrift.protocol.TType.ENUM, ValidityType.class)));
+    tmpMap.put(_Fields.DATA_MOVEMENT, new org.apache.thrift.meta_data.FieldMetaData("dataMovement", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.BOOL)));
+    tmpMap.put(_Fields.DATA_NAME_LOCATION, new org.apache.thrift.meta_data.FieldMetaData("dataNameLocation", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(OutputDataObjectType.class, metaDataMap);
   }
@@ -189,6 +216,7 @@ import org.slf4j.LoggerFactory;
    * Performs a deep copy on <i>other</i>.
    */
   public OutputDataObjectType(OutputDataObjectType other) {
+    __isset_bitfield = other.__isset_bitfield;
     if (other.isSetName()) {
       this.name = other.name;
     }
@@ -198,6 +226,13 @@ import org.slf4j.LoggerFactory;
     if (other.isSetType()) {
       this.type = other.type;
     }
+    if (other.isSetValidityType()) {
+      this.validityType = other.validityType;
+    }
+    this.dataMovement = other.dataMovement;
+    if (other.isSetDataNameLocation()) {
+      this.dataNameLocation = other.dataNameLocation;
+    }
   }
 
   public OutputDataObjectType deepCopy() {
@@ -209,6 +244,10 @@ import org.slf4j.LoggerFactory;
     this.name = null;
     this.value = null;
     this.type = null;
+    this.validityType = null;
+    setDataMovementIsSet(false);
+    this.dataMovement = false;
+    this.dataNameLocation = null;
   }
 
   public String getName() {
@@ -288,6 +327,82 @@ import org.slf4j.LoggerFactory;
     }
   }
 
+  /**
+   * 
+   * @see ValidityType
+   */
+  public ValidityType getValidityType() {
+    return this.validityType;
+  }
+
+  /**
+   * 
+   * @see ValidityType
+   */
+  public void setValidityType(ValidityType validityType) {
+    this.validityType = validityType;
+  }
+
+  public void unsetValidityType() {
+    this.validityType = null;
+  }
+
+  /** Returns true if field validityType is set (has been assigned a value) and false otherwise */
+  public boolean isSetValidityType() {
+    return this.validityType != null;
+  }
+
+  public void setValidityTypeIsSet(boolean value) {
+    if (!value) {
+      this.validityType = null;
+    }
+  }
+
+  public boolean isDataMovement() {
+    return this.dataMovement;
+  }
+
+  public void setDataMovement(boolean dataMovement) {
+    this.dataMovement = dataMovement;
+    setDataMovementIsSet(true);
+  }
+
+  public void unsetDataMovement() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __DATAMOVEMENT_ISSET_ID);
+  }
+
+  /** Returns true if field dataMovement is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataMovement() {
+    return EncodingUtils.testBit(__isset_bitfield, __DATAMOVEMENT_ISSET_ID);
+  }
+
+  public void setDataMovementIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __DATAMOVEMENT_ISSET_ID, value);
+  }
+
+  public String getDataNameLocation() {
+    return this.dataNameLocation;
+  }
+
+  public void setDataNameLocation(String dataNameLocation) {
+    this.dataNameLocation = dataNameLocation;
+  }
+
+  public void unsetDataNameLocation() {
+    this.dataNameLocation = null;
+  }
+
+  /** Returns true if field dataNameLocation is set (has been assigned a value) and false otherwise */
+  public boolean isSetDataNameLocation() {
+    return this.dataNameLocation != null;
+  }
+
+  public void setDataNameLocationIsSet(boolean value) {
+    if (!value) {
+      this.dataNameLocation = null;
+    }
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case NAME:
@@ -314,6 +429,30 @@ import org.slf4j.LoggerFactory;
       }
       break;
 
+    case VALIDITY_TYPE:
+      if (value == null) {
+        unsetValidityType();
+      } else {
+        setValidityType((ValidityType)value);
+      }
+      break;
+
+    case DATA_MOVEMENT:
+      if (value == null) {
+        unsetDataMovement();
+      } else {
+        setDataMovement((Boolean)value);
+      }
+      break;
+
+    case DATA_NAME_LOCATION:
+      if (value == null) {
+        unsetDataNameLocation();
+      } else {
+        setDataNameLocation((String)value);
+      }
+      break;
+
     }
   }
 
@@ -328,6 +467,15 @@ import org.slf4j.LoggerFactory;
     case TYPE:
       return getType();
 
+    case VALIDITY_TYPE:
+      return getValidityType();
+
+    case DATA_MOVEMENT:
+      return Boolean.valueOf(isDataMovement());
+
+    case DATA_NAME_LOCATION:
+      return getDataNameLocation();
+
     }
     throw new IllegalStateException();
   }
@@ -345,6 +493,12 @@ import org.slf4j.LoggerFactory;
       return isSetValue();
     case TYPE:
       return isSetType();
+    case VALIDITY_TYPE:
+      return isSetValidityType();
+    case DATA_MOVEMENT:
+      return isSetDataMovement();
+    case DATA_NAME_LOCATION:
+      return isSetDataNameLocation();
     }
     throw new IllegalStateException();
   }
@@ -389,6 +543,33 @@ import org.slf4j.LoggerFactory;
         return false;
     }
 
+    boolean this_present_validityType = true && this.isSetValidityType();
+    boolean that_present_validityType = true && that.isSetValidityType();
+    if (this_present_validityType || that_present_validityType) {
+      if (!(this_present_validityType && that_present_validityType))
+        return false;
+      if (!this.validityType.equals(that.validityType))
+        return false;
+    }
+
+    boolean this_present_dataMovement = true && this.isSetDataMovement();
+    boolean that_present_dataMovement = true && that.isSetDataMovement();
+    if (this_present_dataMovement || that_present_dataMovement) {
+      if (!(this_present_dataMovement && that_present_dataMovement))
+        return false;
+      if (this.dataMovement != that.dataMovement)
+        return false;
+    }
+
+    boolean this_present_dataNameLocation = true && this.isSetDataNameLocation();
+    boolean that_present_dataNameLocation = true && that.isSetDataNameLocation();
+    if (this_present_dataNameLocation || that_present_dataNameLocation) {
+      if (!(this_present_dataNameLocation && that_present_dataNameLocation))
+        return false;
+      if (!this.dataNameLocation.equals(that.dataNameLocation))
+        return false;
+    }
+
     return true;
   }
 
@@ -435,6 +616,36 @@ import org.slf4j.LoggerFactory;
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetValidityType()).compareTo(other.isSetValidityType());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetValidityType()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.validityType, other.validityType);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDataMovement()).compareTo(other.isSetDataMovement());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataMovement()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataMovement, other.dataMovement);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetDataNameLocation()).compareTo(other.isSetDataNameLocation());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetDataNameLocation()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.dataNameLocation, other.dataNameLocation);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -482,6 +693,32 @@ import org.slf4j.LoggerFactory;
       }
       first = false;
     }
+    if (isSetValidityType()) {
+      if (!first) sb.append(", ");
+      sb.append("validityType:");
+      if (this.validityType == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.validityType);
+      }
+      first = false;
+    }
+    if (isSetDataMovement()) {
+      if (!first) sb.append(", ");
+      sb.append("dataMovement:");
+      sb.append(this.dataMovement);
+      first = false;
+    }
+    if (isSetDataNameLocation()) {
+      if (!first) sb.append(", ");
+      sb.append("dataNameLocation:");
+      if (this.dataNameLocation == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.dataNameLocation);
+      }
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -505,6 +742,8 @@ import org.slf4j.LoggerFactory;
 
   private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
     try {
+      // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor.
+      __isset_bitfield = 0;
       read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
     } catch (org.apache.thrift.TException te) {
       throw new java.io.IOException(te);
@@ -553,6 +792,30 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 4: // VALIDITY_TYPE
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.validityType = ValidityType.findByValue(iprot.readI32());
+              struct.setValidityTypeIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 5: // DATA_MOVEMENT
+            if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
+              struct.dataMovement = iprot.readBool();
+              struct.setDataMovementIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 6: // DATA_NAME_LOCATION
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.dataNameLocation = iprot.readString();
+              struct.setDataNameLocationIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -585,6 +848,25 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldEnd();
         }
       }
+      if (struct.validityType != null) {
+        if (struct.isSetValidityType()) {
+          oprot.writeFieldBegin(VALIDITY_TYPE_FIELD_DESC);
+          oprot.writeI32(struct.validityType.getValue());
+          oprot.writeFieldEnd();
+        }
+      }
+      if (struct.isSetDataMovement()) {
+        oprot.writeFieldBegin(DATA_MOVEMENT_FIELD_DESC);
+        oprot.writeBool(struct.dataMovement);
+        oprot.writeFieldEnd();
+      }
+      if (struct.dataNameLocation != null) {
+        if (struct.isSetDataNameLocation()) {
+          oprot.writeFieldBegin(DATA_NAME_LOCATION_FIELD_DESC);
+          oprot.writeString(struct.dataNameLocation);
+          oprot.writeFieldEnd();
+        }
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -610,13 +892,31 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetType()) {
         optionals.set(1);
       }
-      oprot.writeBitSet(optionals, 2);
+      if (struct.isSetValidityType()) {
+        optionals.set(2);
+      }
+      if (struct.isSetDataMovement()) {
+        optionals.set(3);
+      }
+      if (struct.isSetDataNameLocation()) {
+        optionals.set(4);
+      }
+      oprot.writeBitSet(optionals, 5);
       if (struct.isSetValue()) {
         oprot.writeString(struct.value);
       }
       if (struct.isSetType()) {
         oprot.writeI32(struct.type.getValue());
       }
+      if (struct.isSetValidityType()) {
+        oprot.writeI32(struct.validityType.getValue());
+      }
+      if (struct.isSetDataMovement()) {
+        oprot.writeBool(struct.dataMovement);
+      }
+      if (struct.isSetDataNameLocation()) {
+        oprot.writeString(struct.dataNameLocation);
+      }
     }
 
     @Override
@@ -624,7 +924,7 @@ import org.slf4j.LoggerFactory;
       TTupleProtocol iprot = (TTupleProtocol) prot;
       struct.name = iprot.readString();
       struct.setNameIsSet(true);
-      BitSet incoming = iprot.readBitSet(2);
+      BitSet incoming = iprot.readBitSet(5);
       if (incoming.get(0)) {
         struct.value = iprot.readString();
         struct.setValueIsSet(true);
@@ -633,6 +933,18 @@ import org.slf4j.LoggerFactory;
         struct.type = DataType.findByValue(iprot.readI32());
         struct.setTypeIsSet(true);
       }
+      if (incoming.get(2)) {
+        struct.validityType = ValidityType.findByValue(iprot.readI32());
+        struct.setValidityTypeIsSet(true);
+      }
+      if (incoming.get(3)) {
+        struct.dataMovement = iprot.readBool();
+        struct.setDataMovementIsSet(true);
+      }
+      if (incoming.get(4)) {
+        struct.dataNameLocation = iprot.readString();
+        struct.setDataNameLocationIsSet(true);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/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/63a561c3/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..8e6c896 100644
--- a/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/applicationInterfaceModel.thrift
@@ -43,6 +43,22 @@ enum DataType{
 	STDERR
 }
 
+enum ValidityType{
+	REQUIRED,
+	OPTIONAL
+}
+
+enum CommandLineType{
+	INCLUSIVE,
+	EXCLUSIVE
+}
+
+enum InputMetadataType {
+    MEMORY,
+    CPU
+}
+
+
 /**
  * Application Inputs. The paramters describe how inputs are passed to the application.
  *
@@ -70,14 +86,17 @@ enum DataType{
  *
 */
 struct InputDataObjectType {
-//    1: required bool isEmpty = 0,
     1: required string name,
     2: optional string value,
     3: optional DataType type,
     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,
+    9: optional ValidityType inputValid,
+    10: optional CommandLineType addedToCommandLine,
+    11: optional bool dataStaged = 0
 }
 
 /**
@@ -107,10 +126,12 @@ struct InputDataObjectType {
  *
 */
 struct OutputDataObjectType {
-//    1: required bool isEmpty = 0,
     1: required string name,
     2: optional string value,
-    3: optional DataType type
+    3: optional DataType type,
+    4: optional ValidityType validityType,
+    5: optional bool dataMovement,
+    6: optional string dataNameLocation
 }
 
 /**

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/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/63a561c3/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/63a561c3/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..e7b98c2 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,14 @@ public class ApplicationInput implements Serializable {
     private String userFriendlyDesc;
     @Column(name = "STANDARD_INPUT")
     private boolean standardInput;
+    @Column(name="INPUT_ORDER")
+    private int inputOrder;
+    @Column(name="VALIDITY_TYPE")
+    private String validityType;
+    @Column(name="COMMANDLINE_TYPE")
+    private String commandLineType;
+    @Column(name = "DATA_STAGED")
+    private boolean dataStaged;
 
     @ManyToOne(cascade= CascadeType.MERGE)
     @JoinColumn(name = "INTERFACE_ID")
@@ -123,4 +131,36 @@ 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;
+    }
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public String getCommandLineType() {
+        return commandLineType;
+    }
+
+    public void setCommandLineType(String commandLineType) {
+        this.commandLineType = commandLineType;
+    }
+
+    public boolean isDataStaged() {
+        return dataStaged;
+    }
+
+    public void setDataStaged(boolean dataStaged) {
+        this.dataStaged = dataStaged;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationOutput.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationOutput.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationOutput.java
index 6e418af..c13e7d3 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationOutput.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationOutput.java
@@ -39,6 +39,12 @@ public class ApplicationOutput implements Serializable {
     private String outputVal;
     @Column(name = "DATA_TYPE")
     private String dataType;
+    @Column(name = "VALIDITY_TYPE")
+    private String validityType;
+    @Column(name = "DATA_MOVEMENT")
+    private boolean dataMovement;
+    @Column(name = "DATA_NAME_LOCATION")
+    private String dataNameLocation;
 
     @ManyToOne(cascade= CascadeType.MERGE)
     @JoinColumn(name = "INTERFACE_ID")
@@ -83,4 +89,28 @@ public class ApplicationOutput implements Serializable {
     public void setOutputVal(String outputVal) {
         this.outputVal = outputVal;
     }
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public boolean isDataMovement() {
+        return dataMovement;
+    }
+
+    public void setDataMovement(boolean dataMovement) {
+        this.dataMovement = dataMovement;
+    }
+
+    public String getDataNameLocation() {
+        return dataNameLocation;
+    }
+
+    public void setDataNameLocation(String dataNameLocation) {
+        this.dataNameLocation = dataNameLocation;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/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..8318bee 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,16 @@ public class WorkflowInput implements Serializable {
     private String userFriendlyDesc;
     @Column(name = "STANDARD_INPUT")
     private boolean standardInput;
-
-    @ManyToOne(cascade= CascadeType.MERGE)
+    @Column(name = "INPUT_ORDER")
+    private int inputOrder;
+    @Column(name="VALIDITY_TYPE")
+    private String validityType;
+    @Column(name="COMMANDLINE_TYPE")
+    private String commandLineType;
+    @Column(name = "DATA_STAGED")
+    private boolean dataStaged;
+
+    @ManyToOne(cascade = CascadeType.MERGE)
     @JoinColumn(name = "WF_TEMPLATE_ID")
     private Workflow workflow;
 
@@ -124,4 +132,36 @@ 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;
+    }
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public String getCommandLineType() {
+        return commandLineType;
+    }
+
+    public void setCommandLineType(String commandLineType) {
+        this.commandLineType = commandLineType;
+    }
+
+    public boolean isDataStaged() {
+        return dataStaged;
+    }
+
+    public void setDataStaged(boolean dataStaged) {
+        this.dataStaged = dataStaged;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowOutput.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowOutput.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowOutput.java
index 5532c6c..8343a48 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowOutput.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/WorkflowOutput.java
@@ -40,6 +40,12 @@ public class WorkflowOutput implements Serializable {
     private char[] outputVal;
     @Column(name = "DATA_TYPE")
     private String dataType;
+    @Column(name = "VALIDITY_TYPE")
+    private String validityType;
+    @Column(name = "DATA_MOVEMENT")
+    private boolean dataMovement;
+    @Column(name = "DATA_NAME_LOCATION")
+    private String dataNameLocation;
 
     @ManyToOne(cascade= CascadeType.MERGE)
     @JoinColumn(name = "WF_TEMPLATE_ID")
@@ -84,4 +90,28 @@ public class WorkflowOutput implements Serializable {
     public void setOutputVal(char[] outputVal) {
         this.outputVal = outputVal;
     }
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public boolean isDataMovement() {
+        return dataMovement;
+    }
+
+    public void setDataMovement(boolean dataMovement) {
+        this.dataMovement = dataMovement;
+    }
+
+    public String getDataNameLocation() {
+        return dataNameLocation;
+    }
+
+    public void setDataNameLocation(String dataNameLocation) {
+        this.dataNameLocation = dataNameLocation;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/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..87e1246 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,11 @@ public class ApplicationInputResource extends AbstractResource {
     private String metadata;
     private String appArgument;
     private String userFriendlyDesc;
-    private boolean standareInput;
+    private int inputOrder;
+    private boolean standardInput;
+    private String validityType;
+    private String commandLineType;
+    private boolean dataStaged;
 
     private AppInterfaceResource appInterfaceResource;
 
@@ -288,7 +292,11 @@ public class ApplicationInputResource extends AbstractResource {
             applicationInput.setMetadata(metadata);
             applicationInput.setAppArgument(appArgument);
             applicationInput.setUserFriendlyDesc(userFriendlyDesc);
-            applicationInput.setStandardInput(standareInput);
+            applicationInput.setStandardInput(standardInput);
+            applicationInput.setInputOrder(inputOrder);
+            applicationInput.setCommandLineType(commandLineType);
+            applicationInput.setValidityType(validityType);
+            applicationInput.setDataStaged(dataStaged);
             if (existingApplicationInput == null) {
                 em.persist(applicationInput);
             } else {
@@ -404,11 +412,43 @@ 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;
+    }
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public String getCommandLineType() {
+        return commandLineType;
+    }
+
+    public void setCommandLineType(String commandLineType) {
+        this.commandLineType = commandLineType;
+    }
+
+    public boolean isDataStaged() {
+        return dataStaged;
+    }
+
+    public void setDataStaged(boolean dataStaged) {
+        this.dataStaged = dataStaged;
     }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationOutputResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationOutputResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationOutputResource.java
index ea0f52b..e3d97c2 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationOutputResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/ApplicationOutputResource.java
@@ -44,6 +44,9 @@ public class ApplicationOutputResource extends AbstractResource {
     private String outputKey;
     private String outputVal;
     private String dataType;
+    private String validityType;
+    private boolean dataMovement;
+    private String dataNameLocation;
 
     private AppInterfaceResource appInterfaceResource;
 
@@ -283,6 +286,9 @@ public class ApplicationOutputResource extends AbstractResource {
             applicationOutput.setDataType(dataType);
             applicationOutput.setOutputKey(outputKey);
             applicationOutput.setOutputVal(outputVal);
+            applicationOutput.setValidityType(validityType);
+            applicationOutput.setDataMovement(dataMovement);
+            applicationOutput.setDataNameLocation(dataNameLocation);
             em.merge(applicationOutput);
             em.getTransaction().commit();
             em.close();
@@ -369,4 +375,28 @@ public class ApplicationOutputResource extends AbstractResource {
     public void setAppInterfaceResource(AppInterfaceResource appInterfaceResource) {
         this.appInterfaceResource = appInterfaceResource;
     }
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public boolean isDataMovement() {
+        return dataMovement;
+    }
+
+    public void setDataMovement(boolean dataMovement) {
+        this.dataMovement = dataMovement;
+    }
+
+    public String getDataNameLocation() {
+        return dataNameLocation;
+    }
+
+    public void setDataNameLocation(String dataNameLocation) {
+        this.dataNameLocation = dataNameLocation;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/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..c00d48c 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,11 @@ public class WorkflowInputResource extends AbstractResource {
     private String metadata;
     private String appArgument;
     private String userFriendlyDesc;
-    private boolean standareInput;
+    private boolean standardInput;
+    private int inputOrder;
+    private String validityType;
+    private String commandLineType;
+    private boolean dataStaged;
 
     private WorkflowResource workflowResource;
 
@@ -286,7 +290,10 @@ public class WorkflowInputResource extends AbstractResource {
             workflowInput.setMetadata(metadata);
             workflowInput.setAppArgument(appArgument);
             workflowInput.setUserFriendlyDesc(userFriendlyDesc);
-            workflowInput.setStandardInput(standareInput);
+            workflowInput.setStandardInput(standardInput);
+            workflowInput.setCommandLineType(commandLineType);
+            workflowInput.setValidityType(validityType);
+            workflowInput.setDataStaged(dataStaged);
             if (existingWFInput == null) {
                 em.persist(workflowInput);
             } else {
@@ -402,11 +409,43 @@ 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;
+    }
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public String getCommandLineType() {
+        return commandLineType;
+    }
+
+    public void setCommandLineType(String commandLineType) {
+        this.commandLineType = commandLineType;
+    }
+
+    public boolean isDataStaged() {
+        return dataStaged;
+    }
+
+    public void setDataStaged(boolean dataStaged) {
+        this.dataStaged = dataStaged;
     }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowOutputResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowOutputResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowOutputResource.java
index edefad9..b8f7bbf 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowOutputResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/WorkflowOutputResource.java
@@ -44,6 +44,9 @@ public class WorkflowOutputResource extends AbstractResource {
     private String outputKey;
     private String outputVal;
     private String dataType;
+    private String validityType;
+    private boolean dataMovement;
+    private String dataNameLocation;
 
     private WorkflowResource workflowResource;
 
@@ -276,6 +279,9 @@ public class WorkflowOutputResource extends AbstractResource {
                 if (outputKey != null){
                     existingWorkflowOutput.setOutputVal(outputVal.toCharArray());
                 }
+                existingWorkflowOutput.setValidityType(validityType);
+                existingWorkflowOutput.setDataMovement(dataMovement);
+                existingWorkflowOutput.setDataNameLocation(dataNameLocation);
                 em.merge(existingWorkflowOutput);
             } else {
                 WorkflowOutput workflowOutput = new WorkflowOutput();
@@ -287,6 +293,9 @@ public class WorkflowOutputResource extends AbstractResource {
                 if (outputKey != null){
                     workflowOutput.setOutputVal(outputVal.toCharArray());
                 }
+                workflowOutput.setValidityType(validityType);
+                workflowOutput.setDataMovement(dataMovement);
+                workflowOutput.setDataNameLocation(dataNameLocation);
                 em.persist(workflowOutput);
             }
             em.getTransaction().commit();
@@ -374,4 +383,28 @@ public class WorkflowOutputResource extends AbstractResource {
     public void setWorkflowResource(WorkflowResource workflowResource) {
         this.workflowResource = workflowResource;
     }
+
+    public String getValidityType() {
+        return validityType;
+    }
+
+    public void setValidityType(String validityType) {
+        this.validityType = validityType;
+    }
+
+    public boolean isDataMovement() {
+        return dataMovement;
+    }
+
+    public void setDataMovement(boolean dataMovement) {
+        this.dataMovement = dataMovement;
+    }
+
+    public String getDataNameLocation() {
+        return dataNameLocation;
+    }
+
+    public void setDataNameLocation(String dataNameLocation) {
+        this.dataNameLocation = dataNameLocation;
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/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..4c9d257 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,11 @@ 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.setValidityType(o.getValidityType());
+            resource.setCommandLineType(o.getCommandLineType());
+            resource.setDataStaged(o.isDataStaged());
             resource.setAppInterfaceResource((AppInterfaceResource)createAppInterfaceResource(o.getApplicationInterface()));
         }
         return resource;
@@ -777,8 +781,12 @@ 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.setValidityType(o.getValidityType());
+            resource.setCommandLineType(o.getCommandLineType());
+            resource.setDataStaged(o.isDataStaged());
             resource.setWorkflowResource((WorkflowResource)createWorkflow(o.getWorkflow()));
         }
         return resource;
@@ -791,6 +799,9 @@ public class AppCatalogJPAUtils {
             resource.setOutputKey(o.getOutputKey());
             resource.setOutputVal(o.getOutputVal());
             resource.setDataType(o.getDataType());
+            resource.setValidityType(o.getValidityType());
+            resource.setDataMovement(o.isDataMovement());
+            resource.setDataNameLocation(o.getDataNameLocation());
             resource.setAppInterfaceResource((AppInterfaceResource)createAppInterfaceResource(o.getApplicationInterface()));
         }
         return resource;
@@ -805,6 +816,9 @@ public class AppCatalogJPAUtils {
                 resource.setOutputVal(new String(o.getOutputVal()));
             }
             resource.setDataType(o.getDataType());
+            resource.setValidityType(o.getValidityType());
+            resource.setDataMovement(o.isDataMovement());
+            resource.setDataNameLocation(o.getDataNameLocation());
             resource.setWorkflowResource((WorkflowResource)createWorkflow(o.getWorkflow()));
         }
         return resource;

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/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..de9d577 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
@@ -28,10 +28,7 @@ import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentD
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType;
 import org.apache.airavata.model.appcatalog.appdeployment.SetEnvPaths;
-import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
-import org.apache.airavata.model.appcatalog.appinterface.DataType;
-import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
-import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
+import org.apache.airavata.model.appcatalog.appinterface.*;
 import org.apache.airavata.model.appcatalog.computeresource.*;
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
@@ -556,10 +553,18 @@ 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());
+        if (input.getValidityType() != null){
+            inputDataObjectType.setInputValid(ValidityType.valueOf(input.getValidityType()));
+        }
+        if (input.getCommandLineType() != null){
+            inputDataObjectType.setAddedToCommandLine(CommandLineType.valueOf(input.getCommandLineType()));
+        }
+        inputDataObjectType.setDataStaged(input.isDataStaged());
         return inputDataObjectType;
     }
 
@@ -575,6 +580,11 @@ public class AppCatalogThriftConversion {
         outputDataObjectType.setName(output.getOutputKey());
         outputDataObjectType.setValue(output.getOutputVal());
         outputDataObjectType.setType(DataType.valueOf(output.getDataType()));
+        if (output.getValidityType() != null){
+            outputDataObjectType.setValidityType(ValidityType.valueOf(output.getValidityType()));
+        }
+        outputDataObjectType.setDataMovement(output.isDataMovement());
+        outputDataObjectType.setDataNameLocation(output.getDataNameLocation());
         return outputDataObjectType;
     }
 
@@ -696,9 +706,17 @@ 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());
+        if (resource.getValidityType() != null){
+            input.setInputValid(ValidityType.valueOf(resource.getValidityType()));
+        }
+        if (resource.getCommandLineType() != null){
+            input.setAddedToCommandLine(CommandLineType.valueOf(resource.getCommandLineType()));
+        }
+        input.setDataStaged(resource.isDataStaged());
         return input;
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
index 7037508..a98fef6 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-derby.sql
@@ -270,6 +270,10 @@ CREATE TABLE APPLICATION_INPUT
          METADATA VARCHAR(255),
          APP_ARGUMENT VARCHAR(255),
          STANDARD_INPUT SMALLINT,
+         INPUT_ORDER INTEGER,
+         VALIDITY_TYPE VARCHAR(255),
+         COMMANDLINE_TYPE VARCHAR(255),
+         DATA_STAGED SMALLINT,
          USER_FRIENDLY_DESC VARCHAR(255),
          PRIMARY KEY(INTERFACE_ID,INPUT_KEY),
          FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE
@@ -281,6 +285,9 @@ CREATE TABLE APPLICATION_OUTPUT
          OUTPUT_KEY VARCHAR(255),
          OUTPUT_VALUE VARCHAR(255),
          DATA_TYPE VARCHAR(255),
+         VALIDITY_TYPE VARCHAR(255),
+         DATA_MOVEMENT SMALLINT,
+         DATA_NAME_LOCATION VARCHAR(255),
          PRIMARY KEY(INTERFACE_ID,OUTPUT_KEY),
          FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE
 );

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
index 44d7fd8..5a4d239 100644
--- a/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
+++ b/modules/app-catalog/app-catalog-data/src/main/resources/appcatalog-mysql.sql
@@ -256,6 +256,10 @@ CREATE TABLE APPLICATION_INPUT
          APP_ARGUMENT VARCHAR(255),
          STANDARD_INPUT SMALLINT,
          USER_FRIENDLY_DESC VARCHAR(255),
+         INPUT_ORDER INTEGER,
+         VALIDITY_TYPE VARCHAR(255),
+         COMMANDLINE_TYPE VARCHAR(255),
+         DATA_STAGED SMALLINT,
          PRIMARY KEY(INTERFACE_ID,INPUT_KEY),
          FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE
 );
@@ -266,6 +270,9 @@ CREATE TABLE APPLICATION_OUTPUT
          OUTPUT_KEY VARCHAR(255),
          OUTPUT_VALUE VARCHAR(255),
          DATA_TYPE VARCHAR(255),
+         VALIDITY_TYPE VARCHAR(255),
+         DATA_MOVEMENT SMALLINT,
+         DATA_NAME_LOCATION VARCHAR(255),
          PRIMARY KEY(INTERFACE_ID,OUTPUT_KEY),
          FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE
 );

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/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/63a561c3/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql b/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
index 7037508..a98fef6 100644
--- a/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
+++ b/modules/app-catalog/app-catalog-data/src/test/resources/appcatalog-derby.sql
@@ -270,6 +270,10 @@ CREATE TABLE APPLICATION_INPUT
          METADATA VARCHAR(255),
          APP_ARGUMENT VARCHAR(255),
          STANDARD_INPUT SMALLINT,
+         INPUT_ORDER INTEGER,
+         VALIDITY_TYPE VARCHAR(255),
+         COMMANDLINE_TYPE VARCHAR(255),
+         DATA_STAGED SMALLINT,
          USER_FRIENDLY_DESC VARCHAR(255),
          PRIMARY KEY(INTERFACE_ID,INPUT_KEY),
          FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE
@@ -281,6 +285,9 @@ CREATE TABLE APPLICATION_OUTPUT
          OUTPUT_KEY VARCHAR(255),
          OUTPUT_VALUE VARCHAR(255),
          DATA_TYPE VARCHAR(255),
+         VALIDITY_TYPE VARCHAR(255),
+         DATA_MOVEMENT SMALLINT,
+         DATA_NAME_LOCATION VARCHAR(255),
          PRIMARY KEY(INTERFACE_ID,OUTPUT_KEY),
          FOREIGN KEY (INTERFACE_ID) REFERENCES APPLICATION_INTERFACE(INTERFACE_ID) ON DELETE CASCADE
 );

http://git-wip-us.apache.org/repos/asf/airavata/blob/63a561c3/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..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
@@ -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;
@@ -39,6 +43,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 +110,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 +253,36 @@ 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();
+
+        // sort the inputs first and then build the command List
+        Comparator<InputDataObjectType> inputOrderComparator = new Comparator<InputDataObjectType>() {
+            @Override
+            public int compare(InputDataObjectType inputDataObjectType, InputDataObjectType t1) {
+                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);
+            }
+        }
+        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){


Mime
View raw message