You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2014/12/22 22:58:16 UTC

[2/3] airavata git commit: adding gamess and update airavata data models

http://git-wip-us.apache.org/repos/asf/airavata/blob/842004ee/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 75cb78c..7a8f51f 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
@@ -29,9 +29,7 @@ import java.util.*;
 import org.apache.airavata.api.Airavata;
 import org.apache.airavata.api.client.AiravataClientFactory;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType;
-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;
@@ -74,6 +72,7 @@ public class RegisterSampleApplications {
     private static final String mpiName = "HelloMPI";
     private static final String monteXName = "TinkerMonte";
     private static final String gaussianName = "Gaussian";
+    private static final String gamessName = "Gamess";
 
     //Appplication Descriptions
     private static final String echoDescription = "A Simple Echo Application";
@@ -89,6 +88,7 @@ public class RegisterSampleApplications {
     private static final String mpiDescription = "A Hello MPI Application";
     private static final String monteXDescription = "Grid Chem Tinker Monte Application";
     private static final String gaussianDescription = "Grid Chem Gaussian Application";
+    private static final String gamessDescription = "A Gamess Application";
 
     //App Module Id's
     private static String echoModuleId;
@@ -104,6 +104,7 @@ public class RegisterSampleApplications {
     private static String mpiModuleId;
     private static String monteXModuleId;
     private static String gaussianModuleId;
+    private static String gamessModuleId;
 
     //App Interface Id's
     private static String echoInterfaceId = "";
@@ -118,6 +119,7 @@ public class RegisterSampleApplications {
     private static String trinityInterfaceId = "";
     private static String wrfInterfaceId;
     private static String phastaInterfaceId;
+    private static String gamessInterfaceId;
 
     public RegisterSampleApplications(Airavata.Client airavataClient) {
            this.airavataClient = airavataClient;
@@ -139,13 +141,13 @@ public class RegisterSampleApplications {
 //            registerSampleApplications.registerGatewayResourceProfile();
 
             //Register all application modules
-//            registerSampleApplications.registerAppModules();
+            registerSampleApplications.registerAppModules();
 
             //Register all application deployments
-//            registerSampleApplications.registerAppDeployments();
+            registerSampleApplications.registerAppDeployments();
 
             //Register all application interfaces
-//            registerSampleApplications.registerAppInterfaces();
+            registerSampleApplications.registerAppInterfaces();
 
             //write output into propertiesFile
 //            registerSampleApplications.writeIdPropertyFile();
@@ -309,6 +311,13 @@ public class RegisterSampleApplications {
             gaussianModuleId = airavataClient.registerApplicationModule(
                     RegisterSampleApplicationsUtils.createApplicationModule(
                             gaussianName, "1.0", gaussianDescription));
+            //Register GAMESS
+            gamessModuleId = airavataClient.registerApplicationModule(
+                    RegisterSampleApplicationsUtils.createApplicationModule(
+                            gamessName, "17May13", gamessDescription));
+            System.out.println("Gamess Module Id " + gamessModuleId);
+
+
         } catch (TException e) {
             e.printStackTrace();
         }
@@ -337,7 +346,6 @@ public class RegisterSampleApplications {
 
     public void registerAppInterfaces() {
         System.out.println("\n #### Registering Application Interfaces #### \n");
-//        registerGromaxWorkflowInterfaces();
 
         //Registering local Echo
 //        registerLocalEchoInterface();
@@ -362,6 +370,8 @@ public class RegisterSampleApplications {
 
         //Registering Lammps
         registerLammpsInterface();
+        //Registrting Gamess
+        registerGamessInterface();
 
         //Registering NWChem
         registerNWChemInterface();
@@ -378,140 +388,38 @@ public class RegisterSampleApplications {
 
     }
 
-    public void registerGromaxWorkflowInterfaces() {
+    public void registerGamessInterface() {
         try {
-            System.out.println("#### Registering Gromax Interface #### \n");
+            System.out.println("#### Registering Gamess Interface #### \n");
 
             List<String> appModules = new ArrayList<String>();
-            appModules.add(gromacsModuleId);
+            appModules.add(gamessDescription);
 
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("s_struct", "",
-                    DataType.URI, null, 1, false, "Starting Structure File", null));
-
+            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("gams_input", "",
+                    DataType.URI, null, 1, ValidityType.REQUIRED, CommandLineType.EXCLUSIVE, false, "Gamess Input file", null));
+            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("EXT_FILE", "",
+                    DataType.URI, null, 1, ValidityType.OPTIONAL, CommandLineType.INCLUSIVE, false, "Gamess EXT file", null));
 
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
-            applicationOutputs.add(RegisterSampleApplicationsUtils.createAppOutput("ffcomplient_struct",
-                    "", DataType.URI));
-            applicationOutputs.add(RegisterSampleApplicationsUtils.createAppOutput("topology",
-                    "", DataType.URI));
-
-            gromacsInterfaceId = airavataClient.registerApplicationInterface(
-                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("pb2gmx", "pb2gmx",
-                            appModules, applicationInputs, applicationOutputs));
-
-            
-            applicationInputs.clear();
-            applicationInputs = new ArrayList<InputDataObjectType>();
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("ffcomplient_struct", "",
-                    DataType.URI, null, 1, false, "FFComplient Structure File", null));
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("topology", "",
-                    DataType.URI, null, 2, false, "Topology File", null));
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("control_param_emv", "",
-                    DataType.URI, null, 3, false, "Controlled parameters array of EM Vacuum", null));
-
-
-            applicationOutputs.clear();
-            applicationOutputs = new ArrayList<OutputDataObjectType>();
-            applicationOutputs.add(RegisterSampleApplicationsUtils.createAppOutput("energy_min_struct",
-                    "", DataType.URI));
-
-            gromacsInterfaceId = airavataClient.registerApplicationInterface(
-                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("simulation1", "simulation1",
-                            appModules, applicationInputs, applicationOutputs));
-
-            applicationInputs.clear();
-            applicationInputs = new ArrayList<InputDataObjectType>();
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("energy_min_struct", "",
-                    DataType.URI, null, 1, false, "Energy Minimized Structure File", null));
-
-            applicationOutputs.clear();
-            applicationOutputs = new ArrayList<OutputDataObjectType>();
-            applicationOutputs.add(RegisterSampleApplicationsUtils.createAppOutput("struct_with_pbc",
-                    "", DataType.URI));
-
-            gromacsInterfaceId = airavataClient.registerApplicationInterface(
-                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("editconf", "Edit configuration",
+            applicationOutputs.add(RegisterSampleApplicationsUtils.createAppOutput("gams_output",
+                    "", DataType.URI, ValidityType.REQUIRED, CommandLineType.EXCLUSIVE));
+            applicationOutputs.add(RegisterSampleApplicationsUtils.createAppOutput("dat_file",
+                    "", DataType.URI, ValidityType.REQUIRED, CommandLineType.INCLUSIVE));
+            applicationOutputs.add(RegisterSampleApplicationsUtils.createAppOutput("trj_file",
+                    "", DataType.URI, ValidityType.OPTIONAL, CommandLineType.INCLUSIVE));
+            applicationOutputs.add(RegisterSampleApplicationsUtils.createAppOutput("rst_file",
+                    "", DataType.URI, ValidityType.OPTIONAL, CommandLineType.INCLUSIVE));
+            applicationOutputs.add(RegisterSampleApplicationsUtils.createAppOutput("f10_file",
+                    "", DataType.URI, ValidityType.OPTIONAL, CommandLineType.INCLUSIVE));
+
+
+            gamessInterfaceId = airavataClient.registerApplicationInterface(
+                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("gamess", "gamess",
                             appModules, applicationInputs, applicationOutputs));
-            
-            applicationInputs.clear();
-            applicationInputs = new ArrayList<InputDataObjectType>();
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("struct_with_pbc", "",
-                    DataType.URI, null, 1, false, "Structure with PBC File", null));
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("solvent_struct", "",
-                    DataType.URI, null, 2, false, "Solvent Structure File", null));
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("topology", "",
-                    DataType.URI, null, 3, false, "Topology File", null));
-
-            applicationOutputs.clear();
-            applicationOutputs = new ArrayList<OutputDataObjectType>();
-            applicationOutputs.add(RegisterSampleApplicationsUtils.createAppOutput("struct_with_water",
-                    "", DataType.URI));
-            applicationOutputs.add(RegisterSampleApplicationsUtils.createAppOutput("topology_with_water",
-                    "", DataType.URI));
-                        
 
-            gromacsInterfaceId = airavataClient.registerApplicationInterface(
-                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("genbox", "genbox",
-                            appModules, applicationInputs, applicationOutputs));
-            
-            applicationInputs.clear();
-            applicationInputs = new ArrayList<InputDataObjectType>();
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("struct_with_water", "",
-                    DataType.URI, null, 1, false, "Structure with water File", null));
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("topology_with_water", "",
-                    DataType.URI, null, 2, false, "Topology including water File", null));
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("control_param_emv", "",
-                    DataType.URI, null, 3, false, "Controlled parameters array of EM Vacuum", null));
-
-            applicationOutputs.clear();
-            applicationOutputs = new ArrayList<OutputDataObjectType>();
-            applicationOutputs.add(RegisterSampleApplicationsUtils.createAppOutput("struct_topoogy",
-                    "", DataType.URI));
-
-            gromacsInterfaceId = airavataClient.registerApplicationInterface(
-                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("grompp", "grompp",
-                            appModules, applicationInputs, applicationOutputs));
-            
-            applicationInputs.clear();
-            applicationInputs = new ArrayList<InputDataObjectType>();
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("struct_topoogy", "",
-                    DataType.URI, null, 1, false, "Structure and Topology File", null));
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("topology_with_water", "",
-                    DataType.URI, null, 2, false, "Topology including water File", null));
-
-            applicationOutputs.clear();
-            applicationOutputs = new ArrayList<OutputDataObjectType>();
-            applicationOutputs.add(RegisterSampleApplicationsUtils.createAppOutput("sys_topoogy",
-                    "", DataType.URI));
-                        
-            applicationOutputs.add(RegisterSampleApplicationsUtils.createAppOutput("sys_config",
-                    "", DataType.URI));
-            
-            gromacsInterfaceId = airavataClient.registerApplicationInterface(
-                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("genion", "grompp",
-                            appModules, applicationInputs, applicationOutputs));
-            
-            applicationInputs.clear();
-            applicationInputs = new ArrayList<InputDataObjectType>();
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("sys_topoogy", "",
-                    DataType.URI, null, 1, false, "Structure and Topology File", null));
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("sys_config", "",
-                    DataType.URI, null, 2, false, "Topology including water File", null));
-            applicationInputs.add(RegisterSampleApplicationsUtils.createAppInput("control_param_ems", "",
-                    DataType.URI, null, 3, false, "Controlled parameters array of EM Solvent", null));
-
-            applicationOutputs.clear();
-            applicationOutputs = new ArrayList<OutputDataObjectType>();
-            applicationOutputs.add(RegisterSampleApplicationsUtils.createAppOutput("energymin_sys",
-                    "", DataType.URI));
-            
-            gromacsInterfaceId = airavataClient.registerApplicationInterface(
-                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("simulation2", "simulation2",
-                            appModules, applicationInputs, applicationOutputs));
-            
-            System.out.println("Gromax Application Interface Id " + echoInterfaceId);
+            System.out.println("GAMESS Application Interface Id " + gamessModuleId);
 
         } catch (TException e) {
             e.printStackTrace();
@@ -526,13 +434,13 @@ public class RegisterSampleApplications {
             appModules.add(echoModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("echo_input", "echo_output=Hello World",
-                    DataType.STRING, null, 1, false, "A test string to Echo", null);
+                    DataType.STRING, null, 1,null, null, false, "A test string to Echo", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
 
             OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("echo_output",
-                    "", DataType.STRING);
+                    "", DataType.STRING, null, null);
 
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
             applicationOutputs.add(output1);
@@ -556,20 +464,20 @@ public class RegisterSampleApplications {
 
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Input_to_Echo", "",
-                    DataType.STRING, null, 1, false, "A test string to Echo", null);
+                    DataType.STRING, null, 1, null, null,false, "A test string to Echo", null);
             
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("Input_to_Echo2", "",
-                    DataType.URI, null, 2, false, "A sample input remote file", null);
+                    DataType.URI, null, 2, null, null,false, "A sample input remote file", null);
 
             InputDataObjectType input3 = RegisterSampleApplicationsUtils.createAppInput("Input_to_Echo3", "file:///tmp/test.txt",
-                    DataType.URI, null, 3, false, "A sample input local file", null);
+                    DataType.URI, null, 3,null, null, false, "A sample input local file", null);
 
             
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1); applicationInputs.add(input2); applicationInputs.add(input3);
 
             OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Echoed_Output",
-                    "", DataType.STRING);
+                    "", DataType.STRING, null, null);
             
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
             applicationOutputs.add(output1);
@@ -594,13 +502,13 @@ public class RegisterSampleApplications {
             appModules.add(mpiModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Sample_Input", "",
-                    DataType.STRING, null, 1, false, "An optional MPI source file", null);
+                    DataType.STRING, null, 1,null, null, false, "An optional MPI source file", null);
             
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
             
             OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Sample_Output",
-                    "", DataType.STRING);
+                    "", DataType.STRING, null, null);
             
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
             applicationOutputs.add(output1);
@@ -625,23 +533,23 @@ public class RegisterSampleApplications {
             appModules.add(amberModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Heat_Restart_File", null,
-                    DataType.URI, null, 1, false, "Heating up the system equilibration stage - 02_Heat.rst", null);
+                    DataType.URI, null, 1, null, null,false, "Heating up the system equilibration stage - 02_Heat.rst", null);
 
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("Production_Control_File", null,
-                    DataType.URI, null, 2, false, "Constant pressure and temperature for production stage - 03_Prod.in", null);
+                    DataType.URI, null, 2,null, null, false, "Constant pressure and temperature for production stage - 03_Prod.in", null);
 
             InputDataObjectType input3 = RegisterSampleApplicationsUtils.createAppInput("Parameter_Topology_File", null,
-                    DataType.URI, null, 3, false, "Parameter and Topology coordinates - prmtop", null);
+                    DataType.URI, null, 3,null, null, false, "Parameter and Topology coordinates - prmtop", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
             applicationInputs.add(input2);
             applicationInputs.add(input3);
 
-            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("AMBER_Execution_Summary",null,DataType.URI);
-            OutputDataObjectType output2 = RegisterSampleApplicationsUtils.createAppOutput("AMBER_Execution_log",null,DataType.URI);
-            OutputDataObjectType output3 = RegisterSampleApplicationsUtils.createAppOutput("AMBER_Trajectory_file",null,DataType.URI);
-            OutputDataObjectType output4 = RegisterSampleApplicationsUtils.createAppOutput("AMBER_Restart_file",null,DataType.URI);
+            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("AMBER_Execution_Summary",null,DataType.URI, null, null);
+            OutputDataObjectType output2 = RegisterSampleApplicationsUtils.createAppOutput("AMBER_Execution_log",null,DataType.URI, null, null);
+            OutputDataObjectType output3 = RegisterSampleApplicationsUtils.createAppOutput("AMBER_Trajectory_file",null,DataType.URI, null, null);
+            OutputDataObjectType output4 = RegisterSampleApplicationsUtils.createAppOutput("AMBER_Restart_file",null,DataType.URI, null, null);
 
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
             applicationOutputs.add(output1);
@@ -667,13 +575,13 @@ public class RegisterSampleApplications {
             appModules.add(autoDockModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Heat_Restart_File", null,
-                    DataType.URI, null, 1, false, "Heating up the system equilibration stage", null);
+                    DataType.URI, null, 1,null, null, false, "Heating up the system equilibration stage", null);
 
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("Production_Control_File", null,
-                    DataType.URI, null, 2, false, "Constant pressure and temperature for production stage", null);
+                    DataType.URI, null, 2,null, null, false, "Constant pressure and temperature for production stage", null);
 
             InputDataObjectType input3 = RegisterSampleApplicationsUtils.createAppInput("Parameter_Topology_File", null,
-                    DataType.URI, null, 3, false, "Parameter and Topology coordinates", null);
+                    DataType.URI, null, 3,null, null, false, "Parameter and Topology coordinates", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
@@ -681,7 +589,7 @@ public class RegisterSampleApplications {
             applicationInputs.add(input3);
 
             OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Echoed_Output",
-                    "", DataType.STRING);
+                    "", DataType.STRING, null, null);
 
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
             applicationOutputs.add(output1);
@@ -704,17 +612,17 @@ public class RegisterSampleApplications {
             appModules.add(espressoModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("AI_Primitive_Cell", null,
-                    DataType.URI, null, 1, false, "AI_Metal_Input_File - Al.sample.in", null);
+                    DataType.URI, null, 1, null, null,false, "AI_Metal_Input_File - Al.sample.in", null);
 
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("AI_Pseudopotential_File", null,
-                    DataType.URI, null, 2, false, "Constant pressure and temperature for production stage - Al.pz-vbc.UPF", null);
+                    DataType.URI, null, 2, null, null,false, "Constant pressure and temperature for production stage - Al.pz-vbc.UPF", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
             applicationInputs.add(input2);
 
-            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("ESPRESSO_Execution_Log",null,DataType.URI);
-            OutputDataObjectType output2 = RegisterSampleApplicationsUtils.createAppOutput("ESPRESSO_WFC_Binary_file",null,DataType.URI);
+            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("ESPRESSO_Execution_Log",null,DataType.URI, null, null);
+            OutputDataObjectType output2 = RegisterSampleApplicationsUtils.createAppOutput("ESPRESSO_WFC_Binary_file",null,DataType.URI, null, null);
 
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
             applicationOutputs.add(output1);
@@ -738,18 +646,18 @@ public class RegisterSampleApplications {
             appModules.add(gromacsModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Portable_Input_Binary_File", null,
-                    DataType.URI, null, 1, false, "Coordinates velocities, molecular topology and simulation parameters - pdb1y6l-EM-vacuum.tpr", null);
+                    DataType.URI, null, 1, null, null, false, "Coordinates velocities, molecular topology and simulation parameters - pdb1y6l-EM-vacuum.tpr", null);
 
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("GROMOS_Coordinate_File", null,
-                    DataType.URI, null, 2, false, "Trajectory Coordinates Molecular Structure in Gromos87 format - pdb1y6l-EM-vacuum.gro", null);
+                    DataType.URI, null, 2, null, null,false, "Trajectory Coordinates Molecular Structure in Gromos87 format - pdb1y6l-EM-vacuum.gro", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
             applicationInputs.add(input2);
 
-            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("GROMACS_Execution_Log",null,DataType.URI);
-            OutputDataObjectType output2 = RegisterSampleApplicationsUtils.createAppOutput("Full_Precision_Trajectory_file",null,DataType.URI);
-            OutputDataObjectType output3 = RegisterSampleApplicationsUtils.createAppOutput("Portable_Energy_file",null,DataType.URI);
+            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("GROMACS_Execution_Log",null,DataType.URI, null, null);
+            OutputDataObjectType output2 = RegisterSampleApplicationsUtils.createAppOutput("Full_Precision_Trajectory_file",null,DataType.URI, null, null);
+            OutputDataObjectType output3 = RegisterSampleApplicationsUtils.createAppOutput("Portable_Energy_file",null,DataType.URI, null, null);
 
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
             applicationOutputs.add(output1);
@@ -774,12 +682,12 @@ public class RegisterSampleApplications {
             appModules.add(lammpsModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Friction_Simulation_Input", null,
-                    DataType.URI, null, 1, false, "Friction Simulation Input - in.friction", null);
+                    DataType.URI, null, 1,null, null, false, "Friction Simulation Input - in.friction", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
 
-            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("LAMMPS_Simulation_Log",null,DataType.URI);
+            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("LAMMPS_Simulation_Log",null,DataType.URI, null, null);
 
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
             applicationOutputs.add(output1);
@@ -802,12 +710,12 @@ public class RegisterSampleApplications {
             appModules.add(nwChemModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Water_Molecule_Input", null,
-                    DataType.URI, null, 1, false, "Water Molecule Input File - water.nw", null);
+                    DataType.URI, null, 1,null, null, false, "Water Molecule Input File - water.nw", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
 
-            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("NWChem_Execution_Log",null,DataType.URI);
+            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("NWChem_Execution_Log",null,DataType.URI, null, null);
 
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
             applicationOutputs.add(output1);
@@ -831,17 +739,17 @@ public class RegisterSampleApplications {
             appModules.add(trinityModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("RNA_Seq_Left_Input", null,
-                    DataType.URI, null, 1, false, "RNA-Seq Left Library - reads.left.fq", null);
+                    DataType.URI, null, 1,null, null, false, "RNA-Seq Left Library - reads.left.fq", null);
 
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("RNA_Seq_Right_Input", null,
-                    DataType.URI, null, 2, false, "RNA-Seq Right Library - reads.right.fq", null);
+                    DataType.URI, null, 2, null, null,false, "RNA-Seq Right Library - reads.right.fq", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
             applicationInputs.add(input2);
 
-            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Trinity_Execution_Log",null,DataType.URI);
-            OutputDataObjectType output2 = RegisterSampleApplicationsUtils.createAppOutput("Trinity_FASTA_File",null,DataType.URI);
+            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Trinity_Execution_Log",null,DataType.URI, null, null);
+            OutputDataObjectType output2 = RegisterSampleApplicationsUtils.createAppOutput("Trinity_FASTA_File",null,DataType.URI, null, null);
 
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
             applicationOutputs.add(output1);
@@ -866,13 +774,13 @@ public class RegisterSampleApplications {
             appModules.add(wrfModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Config_Namelist_File", null,
-                    DataType.URI, null, 1, false, "Namelist Configuration File - namelist.input", null);
+                    DataType.URI, null, 1,null, null, false, "Namelist Configuration File - namelist.input", null);
 
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("WRF_Initial_Conditions", null,
-                    DataType.URI, null, 2, false, "Initial Conditions File - wrfinput_d01", null);
+                    DataType.URI, null, 2, null, null,false, "Initial Conditions File - wrfinput_d01", null);
 
             InputDataObjectType input3 = RegisterSampleApplicationsUtils.createAppInput("WRF_Boundary_File", null,
-                    DataType.URI, null, 3, false, "Boundary Conditions File - wrfbdy_d01", null);
+                    DataType.URI, null, 3,null, null, false, "Boundary Conditions File - wrfbdy_d01", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
@@ -880,10 +788,10 @@ public class RegisterSampleApplications {
             applicationInputs.add(input3);
 
             OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("WRF_Output",
-                    "", DataType.URI);
+                    "", DataType.URI, null, null);
 
             OutputDataObjectType output2 = RegisterSampleApplicationsUtils.createAppOutput("WRF_Execution_Log",
-                    "", DataType.URI);
+                    "", DataType.URI, null, null);
 
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
             applicationOutputs.add(output1);
@@ -907,21 +815,21 @@ public class RegisterSampleApplications {
             appModules.add(phastaModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Parasolid_Geometric_Model", null,
-                    DataType.URI, null, 1, false, "Parasolid geometric model - geom.xmt_txt", null);
+                    DataType.URI, null, 1, null, null,false, "Parasolid geometric model - geom.xmt_txt", null);
 
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("Problem_Definition", null,
-                    DataType.URI, null, 2, false, "problem definition - geom.smd", null);
+                    DataType.URI, null, 2,null, null, false, "problem definition - geom.smd", null);
 
             InputDataObjectType input3 = RegisterSampleApplicationsUtils.createAppInput("Mesh_Description_File", null,
-                    DataType.URI, null, 3, false, "Mesh Description - geom.sms", null);
+                    DataType.URI, null, 3, null, null,false, "Mesh Description - geom.sms", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
             applicationInputs.add(input2);
             applicationInputs.add(input3);
 
-            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("PHASTA_Execution_Log",null,DataType.URI);
-            OutputDataObjectType output2 = RegisterSampleApplicationsUtils.createAppOutput("PHASTA_Output_tar",null,DataType.URI);
+            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("PHASTA_Execution_Log",null,DataType.URI, null, null);
+            OutputDataObjectType output2 = RegisterSampleApplicationsUtils.createAppOutput("PHASTA_Output_tar",null,DataType.URI, null, null);
 
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
             applicationOutputs.add(output1);
@@ -943,7 +851,7 @@ public class RegisterSampleApplications {
             //Register Echo
             String echoAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(echoModuleId, localhostId,
-                            "/bin/echo", ApplicationParallelismType.SERIAL, echoDescription));
+                            "/bin/echo", ApplicationParallelismType.SERIAL, echoDescription, null));
 
 
             System.out.println("Echo on localhost Id " + echoAppDeployId);
@@ -960,13 +868,13 @@ public class RegisterSampleApplications {
             appModules.add(gaussianModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("MainInputFile", null,
-                    DataType.URI, null, 1, false, "Gaussian main input file", null);
+                    DataType.URI, null, 1,null, null, false, "Gaussian main input file", null);
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
             applicationInputs.add(input1);
 
             OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("gaussian.out",
-                    "", DataType.URI);
+                    "", DataType.URI, null, null);
 
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
             applicationOutputs.add(output1);
@@ -989,19 +897,19 @@ public class RegisterSampleApplications {
             appModules.add(monteXModuleId);
 
             InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("xyzf", "O16.xyz",
-                    DataType.STRING, null, 1, false, "Tinker monte input_1", null);
+                    DataType.STRING, null, 1, null, null, false, "Tinker monte input_1", null);
             InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("keyf", "O16.key",
-                    DataType.STRING, "-k", 2, false, "Tinker monte input_2", null);
+                    DataType.STRING, "-k", 2, null, null, false, "Tinker monte input_2", null);
             InputDataObjectType input3 = RegisterSampleApplicationsUtils.createAppInput("stps", "20000",
-                    DataType.STRING, null, 3, false, "Tinker monte input_3", null);
+                    DataType.STRING, null, 3, null, null,false, "Tinker monte input_3", null);
             InputDataObjectType input4 = RegisterSampleApplicationsUtils.createAppInput("Ctc", "C",
-                    DataType.STRING, null, 4, false, "Tinker monte input_4", null);
+                    DataType.STRING, null, 4,null, null, false, "Tinker monte input_4", null);
             InputDataObjectType input5 = RegisterSampleApplicationsUtils.createAppInput("stpsZ", "3.0",
-                    DataType.STRING, null, 5, false, "Tinker monte input_5", null);
+                    DataType.STRING, null, 5,null, null, false, "Tinker monte input_5", null);
             InputDataObjectType input6 = RegisterSampleApplicationsUtils.createAppInput("temp", "298",
-                    DataType.STRING, null, 6, false, "Tinker monte input_6", null);
+                    DataType.STRING, null, 6,null, null, false, "Tinker monte input_6", null);
             InputDataObjectType input7 = RegisterSampleApplicationsUtils.createAppInput("Rconv", "0.01",
-                    DataType.STRING, null, 7, false, "Tinker monte input_7", null);
+                    DataType.STRING, null, 7,null, null, false, "Tinker monte input_7", null);
 
 
             List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
@@ -1014,7 +922,7 @@ public class RegisterSampleApplications {
             applicationInputs.add(input7);
 
             OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Diskoutputfile_with_dir",
-                    "", DataType.URI);
+                    "", DataType.URI, null, null);
 
             List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
             applicationOutputs.add(output1);
@@ -1037,56 +945,56 @@ public class RegisterSampleApplications {
             //Register Echo
             String echoAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(echoModuleId, stampedeResourceId,
-                            "/home1/01437/ogce/production/app_wrappers/echo_wrapper.sh", ApplicationParallelismType.SERIAL, echoDescription));
+                            "/home1/01437/ogce/production/app_wrappers/echo_wrapper.sh", ApplicationParallelismType.SERIAL, echoDescription, null));
             System.out.println("Echo on stampede deployment Id " + echoAppDeployId);
 
             //Register Amber
             String amberAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(amberModuleId, stampedeResourceId,
                             "/home1/01437/ogce/production/app_wrappers/amber_wrapper.sh", ApplicationParallelismType.MPI,
-                            amberDescription));
+                            amberDescription, null));
             System.out.println("Amber on stampede deployment Id " + amberAppDeployId);
 
             //Register ESPRESSO
             String espressoAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(espressoModuleId, stampedeResourceId,
                             "/home1/01437/ogce/production/app_wrappers/espresso_wrapper.sh", ApplicationParallelismType.MPI,
-                            espressoDescription));
+                            espressoDescription, null));
             System.out.println("ESPRESSO on stampede deployment Id " + espressoAppDeployId);
 
             //Register GROMACS
             String gromacsAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(gromacsModuleId, stampedeResourceId,
                             "/home1/01437/ogce/production/app_wrappers/gromacs_wrapper.sh", ApplicationParallelismType.MPI,
-                            gromacsDescription));
+                            gromacsDescription, null));
             System.out.println("GROMACS on stampede deployment Id " + gromacsAppDeployId);
 
             //Register LAMMPS
             String lammpsAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(lammpsModuleId, stampedeResourceId,
                             "/home1/01437/ogce/production/app_wrappers/lammps_wrapper.sh", ApplicationParallelismType.MPI,
-                            lammpsDescription));
+                            lammpsDescription, null));
             System.out.println("LAMMPS on stampede deployment Id " + lammpsAppDeployId);
 
             //Register NWChem
             String nwChemAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(nwChemModuleId, stampedeResourceId,
                             "/home1/01437/ogce/production/app_wrappers/nwchem_wrapper.sh", ApplicationParallelismType.MPI,
-                            nwChemDescription));
+                            nwChemDescription, null));
             System.out.println("NWChem on stampede deployment Id " + nwChemAppDeployId);
 
             //Register Trinity
             String trinityAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(trinityModuleId, stampedeResourceId,
                             "/home1/01437/ogce/production/app_wrappers/trinity_wrapper.sh", ApplicationParallelismType.MPI,
-                            trinityDescription));
+                            trinityDescription, null));
             System.out.println("Trinity on stampede deployment Id " + trinityAppDeployId);
 
             //Register WRF
             String wrfAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(wrfModuleId, stampedeResourceId,
                             "/home1/01437/ogce/production/app_wrappers/wrf_wrapper.sh", ApplicationParallelismType.MPI,
-                            wrfDescription));
+                            wrfDescription, null));
             System.out.println("WRF on stampede deployment Id " + wrfAppDeployId);
 
         } catch (TException e) {
@@ -1101,38 +1009,47 @@ public class RegisterSampleApplications {
             //Register Echo
             String echoAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(echoModuleId, trestlesResourceId,
-                            "/home/ogce/production/app_wrappers/echo_wrapper.sh", ApplicationParallelismType.SERIAL, echoDescription));
+                            "/home/ogce/production/app_wrappers/echo_wrapper.sh", ApplicationParallelismType.SERIAL, echoDescription, null));
             System.out.println("Echo on trestles deployment Id " + echoAppDeployId);
 
             //Register Amber
             String amberAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(amberModuleId, trestlesResourceId,
                             "/home/ogce/production/app_wrappers/amber_wrapper.sh", ApplicationParallelismType.MPI,
-                            amberDescription));
+                            amberDescription, null));
             System.out.println("Amber on trestles deployment Id " + amberAppDeployId);
 
             //Register GROMACS
             String gromacsAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(gromacsModuleId, trestlesResourceId,
                             "/home/ogce/production/app_wrappers/gromacs_wrapper.sh", ApplicationParallelismType.MPI,
-                            gromacsDescription));
+                            gromacsDescription, null));
             System.out.println("GROMACS on trestles deployment Id " + gromacsAppDeployId);
 
             //Register LAMMPS
             String lammpsAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(lammpsModuleId, trestlesResourceId,
                             "/home/ogce/production/app_wrappers/lammps_wrapper.sh", ApplicationParallelismType.MPI,
-                            lammpsDescription));
+                            lammpsDescription, null));
             System.out.println("LAMMPS on trestles deployment Id " + lammpsAppDeployId);
 
+            //Register GAMESS
+            List<String> moduleLoadCmd = new ArrayList<String>();
+            moduleLoadCmd.add("module load gamess");
+            String gamessAppDeployId = airavataClient.registerApplicationDeployment(
+                    RegisterSampleApplicationsUtils.createApplicationDeployment(gamessModuleId, trestlesResourceId,
+                            "/opt/gamess/rungms", ApplicationParallelismType.MPI,
+                            gamessDescription, moduleLoadCmd));
+            System.out.println("Gamess on trestles deployment Id " + gamessAppDeployId);
+
             String monteXAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(monteXModuleId, trestlesResourceId,
-                            "path/to/the/monte.x", ApplicationParallelismType.OPENMP, monteXDescription));
+                            "path/to/the/monte.x", ApplicationParallelismType.OPENMP, monteXDescription, null));
             System.out.println("Tinker Monte on trestles deployment Id " + monteXAppDeployId);
 
             String gaussianAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(gaussianModuleId, trestlesResourceId,
-                            "path/to/the/gaussian.sh", ApplicationParallelismType.OPENMP, gaussianDescription));
+                            "path/to/the/gaussian.sh", ApplicationParallelismType.OPENMP, gaussianDescription, null));
             System.out.println("Gaussian on trestles deployment Id " + gaussianAppDeployId);
 
         } catch (TException e) {
@@ -1147,21 +1064,21 @@ public class RegisterSampleApplications {
             //Register Echo
             String echoAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(echoModuleId, bigredResourceId,
-                            "/N/u/cgateway/BigRed2/production/app_wrappers/echo_wrapper.sh", ApplicationParallelismType.SERIAL, echoDescription));
+                            "/N/u/cgateway/BigRed2/production/app_wrappers/echo_wrapper.sh", ApplicationParallelismType.SERIAL, echoDescription, null));
             System.out.println("Echo on bigredII deployment Id " + echoAppDeployId);
 
             //Register Amber
             String amberAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(amberModuleId, bigredResourceId,
                             "/N/u/cgateway/BigRed2/production/app_wrappers/amber_wrapper.sh", ApplicationParallelismType.MPI,
-                            amberDescription));
+                            amberDescription, null));
             System.out.println("Amber on bigredII deployment Id " + amberAppDeployId);
 
             //Register AutoDock
             String autoDockDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(autoDockModuleId, bigredResourceId,
                             "/N/u/cgateway/BigRed2/production/app_wrappers/auto_dock_wrapper.sh", ApplicationParallelismType.MPI,
-                            autoDockDescription));
+                            autoDockDescription, null));
             System.out.println("AutoDock on bigredII deployment Id " + autoDockDeployId);
 
 //            //Register GROMACS
@@ -1190,13 +1107,13 @@ public class RegisterSampleApplications {
             //Register Echo
             String echoAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(echoModuleId, fsdResourceId,
-                            "/bin/echo", ApplicationParallelismType.SERIAL, echoDescription));
+                            "/bin/echo", ApplicationParallelismType.SERIAL, echoDescription, null));
             System.out.println("Echo on FSD deployment Id: " + echoAppDeployId);
 
             //Register MPI
             String mpiAppDeployId = airavataClient.registerApplicationDeployment(
                     RegisterSampleApplicationsUtils.createApplicationDeployment(mpiModuleId, fsdResourceId,
-                            "/home/bes/hellompi", ApplicationParallelismType.OPENMP_MPI, mpiDescription));
+                            "/home/bes/hellompi", ApplicationParallelismType.OPENMP_MPI, mpiDescription, null));
             System.out.println("MPI on FSD deployment Id: " + mpiAppDeployId);
 
         } catch (TException e) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/842004ee/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 58ba387..83be356 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
@@ -24,10 +24,7 @@ package org.apache.airavata.client.tools;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType;
-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;
 
@@ -55,9 +52,12 @@ public class RegisterSampleApplicationsUtils {
         return computeResourcePreference;
     }
 
-    public static ApplicationDeploymentDescription createApplicationDeployment(
-           String appModuleId, String computeResourceId, String executablePath,
-           ApplicationParallelismType parallelism, String appDeploymentDescription) {
+    public static ApplicationDeploymentDescription createApplicationDeployment(String appModuleId,
+                                                                               String computeResourceId,
+                                                                               String executablePath,
+                                                                               ApplicationParallelismType parallelism,
+                                                                               String appDeploymentDescription,
+                                                                               List<String> moduleLoadCmds) {
         ApplicationDeploymentDescription deployment = new ApplicationDeploymentDescription();
 //		deployment.setIsEmpty(false);
         deployment.setAppDeploymentDescription(appDeploymentDescription);
@@ -65,6 +65,7 @@ public class RegisterSampleApplicationsUtils {
         deployment.setComputeHostId(computeResourceId);
         deployment.setExecutablePath(executablePath);
         deployment.setParallelism(parallelism);
+        deployment.setModuleLoadCmds(moduleLoadCmds);
         return deployment;
     }
 
@@ -118,9 +119,16 @@ public class RegisterSampleApplicationsUtils {
         return resourceJobManager;
     }
 
-    public static InputDataObjectType createAppInput
-            (String inputName, String value, DataType type,
-             String applicationArgument, int order, boolean stdIn, String description, String metadata) {
+    public static InputDataObjectType createAppInput (String inputName,
+                                                      String value,
+                                                      DataType type,
+                                                      String applicationArgument,
+                                                      int order,
+                                                      ValidityType validityType,
+                                                      CommandLineType commandLineType,
+                                                      boolean stdIn,
+                                                      String description,
+                                                      String metadata) {
         InputDataObjectType input = new InputDataObjectType();
 //        input.setIsEmpty(false);
         if (inputName != null) input.setName(inputName);
@@ -128,18 +136,34 @@ public class RegisterSampleApplicationsUtils {
         if (type != null) input.setType(type);
         if (applicationArgument != null) input.setApplicationArgument(applicationArgument);
         input.setInputOrder(order);
+        if (validityType != null){
+            input.setInputValid(validityType);
+        }
+        if (commandLineType != null){
+            input.setAddedToCommandLine(commandLineType);
+        }
         if (description != null) input.setUserFriendlyDescription(description);
         input.setStandardInput(stdIn);
         if (metadata != null) input.setMetaData(metadata);
         return input;
     }
 
-    public static OutputDataObjectType createAppOutput(String inputName, String value, DataType type) {
+    public static OutputDataObjectType createAppOutput(String inputName,
+                                                       String value,
+                                                       DataType type,
+                                                       ValidityType validityType,
+                                                       CommandLineType commandLineType) {
         OutputDataObjectType outputDataObjectType = new OutputDataObjectType();
 //        outputDataObjectType.setIsEmpty(false);
         if (inputName != null) outputDataObjectType.setName(inputName);
         if (value != null) outputDataObjectType.setValue(value);
         if (type != null) outputDataObjectType.setType(type);
+        if (validityType != null){
+            outputDataObjectType.setValidityType(validityType);
+        }
+        if (commandLineType != null){
+            outputDataObjectType.setAddedToCommandLine(commandLineType);
+        }
         return outputDataObjectType;
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/842004ee/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 337f167..4197c30 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
@@ -82,8 +82,9 @@ import org.slf4j.LoggerFactory;
   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 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)5);
+  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)6);
+  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)7);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -95,6 +96,7 @@ import org.slf4j.LoggerFactory;
   private String value; // optional
   private DataType type; // optional
   private ValidityType validityType; // optional
+  private CommandLineType addedToCommandLine; // optional
   private boolean dataMovement; // optional
   private String dataNameLocation; // optional
 
@@ -112,8 +114,13 @@ import org.slf4j.LoggerFactory;
      * @see ValidityType
      */
     VALIDITY_TYPE((short)4, "validityType"),
-    DATA_MOVEMENT((short)5, "dataMovement"),
-    DATA_NAME_LOCATION((short)6, "dataNameLocation");
+    /**
+     * 
+     * @see CommandLineType
+     */
+    ADDED_TO_COMMAND_LINE((short)5, "addedToCommandLine"),
+    DATA_MOVEMENT((short)6, "dataMovement"),
+    DATA_NAME_LOCATION((short)7, "dataNameLocation");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -136,9 +143,11 @@ import org.slf4j.LoggerFactory;
           return TYPE;
         case 4: // VALIDITY_TYPE
           return VALIDITY_TYPE;
-        case 5: // DATA_MOVEMENT
+        case 5: // ADDED_TO_COMMAND_LINE
+          return ADDED_TO_COMMAND_LINE;
+        case 6: // DATA_MOVEMENT
           return DATA_MOVEMENT;
-        case 6: // DATA_NAME_LOCATION
+        case 7: // DATA_NAME_LOCATION
           return DATA_NAME_LOCATION;
         default:
           return null;
@@ -182,7 +191,7 @@ import org.slf4j.LoggerFactory;
   // isset id assignments
   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};
+  private _Fields optionals[] = {_Fields.VALUE,_Fields.TYPE,_Fields.VALIDITY_TYPE,_Fields.ADDED_TO_COMMAND_LINE,_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);
@@ -194,6 +203,8 @@ import org.slf4j.LoggerFactory;
         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.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_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, 
@@ -229,6 +240,9 @@ import org.slf4j.LoggerFactory;
     if (other.isSetValidityType()) {
       this.validityType = other.validityType;
     }
+    if (other.isSetAddedToCommandLine()) {
+      this.addedToCommandLine = other.addedToCommandLine;
+    }
     this.dataMovement = other.dataMovement;
     if (other.isSetDataNameLocation()) {
       this.dataNameLocation = other.dataNameLocation;
@@ -245,6 +259,7 @@ import org.slf4j.LoggerFactory;
     this.value = null;
     this.type = null;
     this.validityType = null;
+    this.addedToCommandLine = null;
     setDataMovementIsSet(false);
     this.dataMovement = false;
     this.dataNameLocation = null;
@@ -358,6 +373,37 @@ import org.slf4j.LoggerFactory;
     }
   }
 
+  /**
+   * 
+   * @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 isDataMovement() {
     return this.dataMovement;
   }
@@ -437,6 +483,14 @@ import org.slf4j.LoggerFactory;
       }
       break;
 
+    case ADDED_TO_COMMAND_LINE:
+      if (value == null) {
+        unsetAddedToCommandLine();
+      } else {
+        setAddedToCommandLine((CommandLineType)value);
+      }
+      break;
+
     case DATA_MOVEMENT:
       if (value == null) {
         unsetDataMovement();
@@ -470,6 +524,9 @@ import org.slf4j.LoggerFactory;
     case VALIDITY_TYPE:
       return getValidityType();
 
+    case ADDED_TO_COMMAND_LINE:
+      return getAddedToCommandLine();
+
     case DATA_MOVEMENT:
       return Boolean.valueOf(isDataMovement());
 
@@ -495,6 +552,8 @@ import org.slf4j.LoggerFactory;
       return isSetType();
     case VALIDITY_TYPE:
       return isSetValidityType();
+    case ADDED_TO_COMMAND_LINE:
+      return isSetAddedToCommandLine();
     case DATA_MOVEMENT:
       return isSetDataMovement();
     case DATA_NAME_LOCATION:
@@ -552,6 +611,15 @@ import org.slf4j.LoggerFactory;
         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_dataMovement = true && this.isSetDataMovement();
     boolean that_present_dataMovement = true && that.isSetDataMovement();
     if (this_present_dataMovement || that_present_dataMovement) {
@@ -626,6 +694,16 @@ import org.slf4j.LoggerFactory;
         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(isSetDataMovement()).compareTo(other.isSetDataMovement());
     if (lastComparison != 0) {
       return lastComparison;
@@ -703,6 +781,16 @@ import org.slf4j.LoggerFactory;
       }
       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 (isSetDataMovement()) {
       if (!first) sb.append(", ");
       sb.append("dataMovement:");
@@ -800,7 +888,15 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 5: // DATA_MOVEMENT
+          case 5: // 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 6: // DATA_MOVEMENT
             if (schemeField.type == org.apache.thrift.protocol.TType.BOOL) {
               struct.dataMovement = iprot.readBool();
               struct.setDataMovementIsSet(true);
@@ -808,7 +904,7 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
-          case 6: // DATA_NAME_LOCATION
+          case 7: // DATA_NAME_LOCATION
             if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
               struct.dataNameLocation = iprot.readString();
               struct.setDataNameLocationIsSet(true);
@@ -855,6 +951,13 @@ import org.slf4j.LoggerFactory;
           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.isSetDataMovement()) {
         oprot.writeFieldBegin(DATA_MOVEMENT_FIELD_DESC);
         oprot.writeBool(struct.dataMovement);
@@ -895,13 +998,16 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetValidityType()) {
         optionals.set(2);
       }
-      if (struct.isSetDataMovement()) {
+      if (struct.isSetAddedToCommandLine()) {
         optionals.set(3);
       }
-      if (struct.isSetDataNameLocation()) {
+      if (struct.isSetDataMovement()) {
         optionals.set(4);
       }
-      oprot.writeBitSet(optionals, 5);
+      if (struct.isSetDataNameLocation()) {
+        optionals.set(5);
+      }
+      oprot.writeBitSet(optionals, 6);
       if (struct.isSetValue()) {
         oprot.writeString(struct.value);
       }
@@ -911,6 +1017,9 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetValidityType()) {
         oprot.writeI32(struct.validityType.getValue());
       }
+      if (struct.isSetAddedToCommandLine()) {
+        oprot.writeI32(struct.addedToCommandLine.getValue());
+      }
       if (struct.isSetDataMovement()) {
         oprot.writeBool(struct.dataMovement);
       }
@@ -924,7 +1033,7 @@ import org.slf4j.LoggerFactory;
       TTupleProtocol iprot = (TTupleProtocol) prot;
       struct.name = iprot.readString();
       struct.setNameIsSet(true);
-      BitSet incoming = iprot.readBitSet(5);
+      BitSet incoming = iprot.readBitSet(6);
       if (incoming.get(0)) {
         struct.value = iprot.readString();
         struct.setValueIsSet(true);
@@ -938,10 +1047,14 @@ import org.slf4j.LoggerFactory;
         struct.setValidityTypeIsSet(true);
       }
       if (incoming.get(3)) {
+        struct.addedToCommandLine = CommandLineType.findByValue(iprot.readI32());
+        struct.setAddedToCommandLineIsSet(true);
+      }
+      if (incoming.get(4)) {
         struct.dataMovement = iprot.readBool();
         struct.setDataMovementIsSet(true);
       }
-      if (incoming.get(4)) {
+      if (incoming.get(5)) {
         struct.dataNameLocation = iprot.readString();
         struct.setDataNameLocationIsSet(true);
       }

http://git-wip-us.apache.org/repos/asf/airavata/blob/842004ee/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
index 1c43948..f4ab850 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/appcatalog/computeresource/BatchQueue.java
@@ -64,6 +64,7 @@ import org.slf4j.LoggerFactory;
   private static final org.apache.thrift.protocol.TField MAX_NODES_FIELD_DESC = new org.apache.thrift.protocol.TField("maxNodes", org.apache.thrift.protocol.TType.I32, (short)4);
   private static final org.apache.thrift.protocol.TField MAX_PROCESSORS_FIELD_DESC = new org.apache.thrift.protocol.TField("maxProcessors", org.apache.thrift.protocol.TType.I32, (short)5);
   private static final org.apache.thrift.protocol.TField MAX_JOBS_IN_QUEUE_FIELD_DESC = new org.apache.thrift.protocol.TField("maxJobsInQueue", org.apache.thrift.protocol.TType.I32, (short)6);
+  private static final org.apache.thrift.protocol.TField MAX_MEMORY_FIELD_DESC = new org.apache.thrift.protocol.TField("maxMemory", org.apache.thrift.protocol.TType.I32, (short)7);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
@@ -77,6 +78,7 @@ import org.slf4j.LoggerFactory;
   private int maxNodes; // optional
   private int maxProcessors; // optional
   private int maxJobsInQueue; // optional
+  private int maxMemory; // 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 {
@@ -85,7 +87,8 @@ import org.slf4j.LoggerFactory;
     MAX_RUN_TIME((short)3, "maxRunTime"),
     MAX_NODES((short)4, "maxNodes"),
     MAX_PROCESSORS((short)5, "maxProcessors"),
-    MAX_JOBS_IN_QUEUE((short)6, "maxJobsInQueue");
+    MAX_JOBS_IN_QUEUE((short)6, "maxJobsInQueue"),
+    MAX_MEMORY((short)7, "maxMemory");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -112,6 +115,8 @@ import org.slf4j.LoggerFactory;
           return MAX_PROCESSORS;
         case 6: // MAX_JOBS_IN_QUEUE
           return MAX_JOBS_IN_QUEUE;
+        case 7: // MAX_MEMORY
+          return MAX_MEMORY;
         default:
           return null;
       }
@@ -156,8 +161,9 @@ import org.slf4j.LoggerFactory;
   private static final int __MAXNODES_ISSET_ID = 1;
   private static final int __MAXPROCESSORS_ISSET_ID = 2;
   private static final int __MAXJOBSINQUEUE_ISSET_ID = 3;
+  private static final int __MAXMEMORY_ISSET_ID = 4;
   private byte __isset_bitfield = 0;
-  private _Fields optionals[] = {_Fields.QUEUE_DESCRIPTION,_Fields.MAX_RUN_TIME,_Fields.MAX_NODES,_Fields.MAX_PROCESSORS,_Fields.MAX_JOBS_IN_QUEUE};
+  private _Fields optionals[] = {_Fields.QUEUE_DESCRIPTION,_Fields.MAX_RUN_TIME,_Fields.MAX_NODES,_Fields.MAX_PROCESSORS,_Fields.MAX_JOBS_IN_QUEUE,_Fields.MAX_MEMORY};
   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);
@@ -173,6 +179,8 @@ import org.slf4j.LoggerFactory;
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
     tmpMap.put(_Fields.MAX_JOBS_IN_QUEUE, new org.apache.thrift.meta_data.FieldMetaData("maxJobsInQueue", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32)));
+    tmpMap.put(_Fields.MAX_MEMORY, new org.apache.thrift.meta_data.FieldMetaData("maxMemory", 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(BatchQueue.class, metaDataMap);
   }
@@ -202,6 +210,7 @@ import org.slf4j.LoggerFactory;
     this.maxNodes = other.maxNodes;
     this.maxProcessors = other.maxProcessors;
     this.maxJobsInQueue = other.maxJobsInQueue;
+    this.maxMemory = other.maxMemory;
   }
 
   public BatchQueue deepCopy() {
@@ -220,6 +229,8 @@ import org.slf4j.LoggerFactory;
     this.maxProcessors = 0;
     setMaxJobsInQueueIsSet(false);
     this.maxJobsInQueue = 0;
+    setMaxMemoryIsSet(false);
+    this.maxMemory = 0;
   }
 
   public String getQueueName() {
@@ -356,6 +367,28 @@ import org.slf4j.LoggerFactory;
     __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __MAXJOBSINQUEUE_ISSET_ID, value);
   }
 
+  public int getMaxMemory() {
+    return this.maxMemory;
+  }
+
+  public void setMaxMemory(int maxMemory) {
+    this.maxMemory = maxMemory;
+    setMaxMemoryIsSet(true);
+  }
+
+  public void unsetMaxMemory() {
+    __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __MAXMEMORY_ISSET_ID);
+  }
+
+  /** Returns true if field maxMemory is set (has been assigned a value) and false otherwise */
+  public boolean isSetMaxMemory() {
+    return EncodingUtils.testBit(__isset_bitfield, __MAXMEMORY_ISSET_ID);
+  }
+
+  public void setMaxMemoryIsSet(boolean value) {
+    __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __MAXMEMORY_ISSET_ID, value);
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case QUEUE_NAME:
@@ -406,6 +439,14 @@ import org.slf4j.LoggerFactory;
       }
       break;
 
+    case MAX_MEMORY:
+      if (value == null) {
+        unsetMaxMemory();
+      } else {
+        setMaxMemory((Integer)value);
+      }
+      break;
+
     }
   }
 
@@ -429,6 +470,9 @@ import org.slf4j.LoggerFactory;
     case MAX_JOBS_IN_QUEUE:
       return Integer.valueOf(getMaxJobsInQueue());
 
+    case MAX_MEMORY:
+      return Integer.valueOf(getMaxMemory());
+
     }
     throw new IllegalStateException();
   }
@@ -452,6 +496,8 @@ import org.slf4j.LoggerFactory;
       return isSetMaxProcessors();
     case MAX_JOBS_IN_QUEUE:
       return isSetMaxJobsInQueue();
+    case MAX_MEMORY:
+      return isSetMaxMemory();
     }
     throw new IllegalStateException();
   }
@@ -523,6 +569,15 @@ import org.slf4j.LoggerFactory;
         return false;
     }
 
+    boolean this_present_maxMemory = true && this.isSetMaxMemory();
+    boolean that_present_maxMemory = true && that.isSetMaxMemory();
+    if (this_present_maxMemory || that_present_maxMemory) {
+      if (!(this_present_maxMemory && that_present_maxMemory))
+        return false;
+      if (this.maxMemory != that.maxMemory)
+        return false;
+    }
+
     return true;
   }
 
@@ -599,6 +654,16 @@ import org.slf4j.LoggerFactory;
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetMaxMemory()).compareTo(other.isSetMaxMemory());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetMaxMemory()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.maxMemory, other.maxMemory);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
@@ -660,6 +725,12 @@ import org.slf4j.LoggerFactory;
       sb.append(this.maxJobsInQueue);
       first = false;
     }
+    if (isSetMaxMemory()) {
+      if (!first) sb.append(", ");
+      sb.append("maxMemory:");
+      sb.append(this.maxMemory);
+      first = false;
+    }
     sb.append(")");
     return sb.toString();
   }
@@ -757,6 +828,14 @@ import org.slf4j.LoggerFactory;
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 7: // MAX_MEMORY
+            if (schemeField.type == org.apache.thrift.protocol.TType.I32) {
+              struct.maxMemory = iprot.readI32();
+              struct.setMaxMemoryIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
@@ -802,6 +881,11 @@ import org.slf4j.LoggerFactory;
         oprot.writeI32(struct.maxJobsInQueue);
         oprot.writeFieldEnd();
       }
+      if (struct.isSetMaxMemory()) {
+        oprot.writeFieldBegin(MAX_MEMORY_FIELD_DESC);
+        oprot.writeI32(struct.maxMemory);
+        oprot.writeFieldEnd();
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
@@ -836,7 +920,10 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetMaxJobsInQueue()) {
         optionals.set(4);
       }
-      oprot.writeBitSet(optionals, 5);
+      if (struct.isSetMaxMemory()) {
+        optionals.set(5);
+      }
+      oprot.writeBitSet(optionals, 6);
       if (struct.isSetQueueDescription()) {
         oprot.writeString(struct.queueDescription);
       }
@@ -852,6 +939,9 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetMaxJobsInQueue()) {
         oprot.writeI32(struct.maxJobsInQueue);
       }
+      if (struct.isSetMaxMemory()) {
+        oprot.writeI32(struct.maxMemory);
+      }
     }
 
     @Override
@@ -859,7 +949,7 @@ import org.slf4j.LoggerFactory;
       TTupleProtocol iprot = (TTupleProtocol) prot;
       struct.queueName = iprot.readString();
       struct.setQueueNameIsSet(true);
-      BitSet incoming = iprot.readBitSet(5);
+      BitSet incoming = iprot.readBitSet(6);
       if (incoming.get(0)) {
         struct.queueDescription = iprot.readString();
         struct.setQueueDescriptionIsSet(true);
@@ -880,6 +970,10 @@ import org.slf4j.LoggerFactory;
         struct.maxJobsInQueue = iprot.readI32();
         struct.setMaxJobsInQueueIsSet(true);
       }
+      if (incoming.get(5)) {
+        struct.maxMemory = iprot.readI32();
+        struct.setMaxMemoryIsSet(true);
+      }
     }
   }