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

[1/3] airavata git commit: Removed DataObjectType thift struct from experimentModel and replace it with Input and Output DataObjectType define in applicationInterfaceModel thrift file

Repository: airavata
Updated Branches:
  refs/heads/gfac_appcatalog_int 95354eab8 -> d7f35e18d


http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
index 19a8b37..c6037f7 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Workspace/Experiment/Types.php
@@ -203,21 +203,6 @@ final class CorrectiveAction {
   );
 }
 
-final class DataType {
-  const STRING = 0;
-  const INTEGER = 1;
-  const URI = 2;
-  const STDOUT = 3;
-  const STDERR = 4;
-  static public $__names = array(
-    0 => 'STRING',
-    1 => 'INTEGER',
-    2 => 'URI',
-    3 => 'STDOUT',
-    4 => 'STDERR',
-  );
-}
-
 final class ExecutionUnit {
   const INPUT = 0;
   const APPLICATION = 1;
@@ -783,138 +768,6 @@ class ApplicationStatus {
 
 }
 
-class DataObjectType {
-  static $_TSPEC;
-
-  public $key = null;
-  public $value = null;
-  public $type = null;
-  public $metaData = null;
-
-  public function __construct($vals=null) {
-    if (!isset(self::$_TSPEC)) {
-      self::$_TSPEC = array(
-        1 => array(
-          'var' => 'key',
-          'type' => TType::STRING,
-          ),
-        2 => array(
-          'var' => 'value',
-          'type' => TType::STRING,
-          ),
-        3 => array(
-          'var' => 'type',
-          'type' => TType::I32,
-          ),
-        4 => array(
-          'var' => 'metaData',
-          'type' => TType::STRING,
-          ),
-        );
-    }
-    if (is_array($vals)) {
-      if (isset($vals['key'])) {
-        $this->key = $vals['key'];
-      }
-      if (isset($vals['value'])) {
-        $this->value = $vals['value'];
-      }
-      if (isset($vals['type'])) {
-        $this->type = $vals['type'];
-      }
-      if (isset($vals['metaData'])) {
-        $this->metaData = $vals['metaData'];
-      }
-    }
-  }
-
-  public function getName() {
-    return 'DataObjectType';
-  }
-
-  public function read($input)
-  {
-    $xfer = 0;
-    $fname = null;
-    $ftype = 0;
-    $fid = 0;
-    $xfer += $input->readStructBegin($fname);
-    while (true)
-    {
-      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
-      if ($ftype == TType::STOP) {
-        break;
-      }
-      switch ($fid)
-      {
-        case 1:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->key);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->value);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->type);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 4:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->metaData);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
-    $xfer = 0;
-    $xfer += $output->writeStructBegin('DataObjectType');
-    if ($this->key !== null) {
-      $xfer += $output->writeFieldBegin('key', TType::STRING, 1);
-      $xfer += $output->writeString($this->key);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->value !== null) {
-      $xfer += $output->writeFieldBegin('value', TType::STRING, 2);
-      $xfer += $output->writeString($this->value);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->type !== null) {
-      $xfer += $output->writeFieldBegin('type', TType::I32, 3);
-      $xfer += $output->writeI32($this->type);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->metaData !== null) {
-      $xfer += $output->writeFieldBegin('metaData', TType::STRING, 4);
-      $xfer += $output->writeString($this->metaData);
-      $xfer += $output->writeFieldEnd();
-    }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
 class ComputationalResourceScheduling {
   static $_TSPEC;
 
@@ -2427,7 +2280,7 @@ class TaskDetails {
           'etype' => TType::STRUCT,
           'elem' => array(
             'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\Workspace\Experiment\DataObjectType',
+            'class' => '\Airavata\Model\AppCatalog\AppInterface\InputDataObjectType',
             ),
           ),
         7 => array(
@@ -2436,7 +2289,7 @@ class TaskDetails {
           'etype' => TType::STRUCT,
           'elem' => array(
             'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\Workspace\Experiment\DataObjectType',
+            'class' => '\Airavata\Model\AppCatalog\AppInterface\OutputDataObjectType',
             ),
           ),
         8 => array(
@@ -2597,7 +2450,7 @@ class TaskDetails {
             for ($_i18 = 0; $_i18 < $_size14; ++$_i18)
             {
               $elem19 = null;
-              $elem19 = new \Airavata\Model\Workspace\Experiment\DataObjectType();
+              $elem19 = new \Airavata\Model\AppCatalog\AppInterface\InputDataObjectType();
               $xfer += $elem19->read($input);
               $this->applicationInputs []= $elem19;
             }
@@ -2615,7 +2468,7 @@ class TaskDetails {
             for ($_i24 = 0; $_i24 < $_size20; ++$_i24)
             {
               $elem25 = null;
-              $elem25 = new \Airavata\Model\Workspace\Experiment\DataObjectType();
+              $elem25 = new \Airavata\Model\AppCatalog\AppInterface\OutputDataObjectType();
               $xfer += $elem25->read($input);
               $this->applicationOutputs []= $elem25;
             }
@@ -2915,7 +2768,7 @@ class WorkflowNodeDetails {
           'etype' => TType::STRUCT,
           'elem' => array(
             'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\Workspace\Experiment\DataObjectType',
+            'class' => '\Airavata\Model\AppCatalog\AppInterface\InputDataObjectType',
             ),
           ),
         7 => array(
@@ -2924,7 +2777,7 @@ class WorkflowNodeDetails {
           'etype' => TType::STRUCT,
           'elem' => array(
             'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\Workspace\Experiment\DataObjectType',
+            'class' => '\Airavata\Model\AppCatalog\AppInterface\OutputDataObjectType',
             ),
           ),
         8 => array(
@@ -3049,7 +2902,7 @@ class WorkflowNodeDetails {
             for ($_i53 = 0; $_i53 < $_size49; ++$_i53)
             {
               $elem54 = null;
-              $elem54 = new \Airavata\Model\Workspace\Experiment\DataObjectType();
+              $elem54 = new \Airavata\Model\AppCatalog\AppInterface\InputDataObjectType();
               $xfer += $elem54->read($input);
               $this->nodeInputs []= $elem54;
             }
@@ -3067,7 +2920,7 @@ class WorkflowNodeDetails {
             for ($_i59 = 0; $_i59 < $_size55; ++$_i59)
             {
               $elem60 = null;
-              $elem60 = new \Airavata\Model\Workspace\Experiment\DataObjectType();
+              $elem60 = new \Airavata\Model\AppCatalog\AppInterface\OutputDataObjectType();
               $xfer += $elem60->read($input);
               $this->nodeOutputs []= $elem60;
             }
@@ -3533,7 +3386,7 @@ class Experiment {
           'etype' => TType::STRUCT,
           'elem' => array(
             'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\Workspace\Experiment\DataObjectType',
+            'class' => '\Airavata\Model\AppCatalog\AppInterface\InputDataObjectType',
             ),
           ),
         14 => array(
@@ -3542,7 +3395,7 @@ class Experiment {
           'etype' => TType::STRUCT,
           'elem' => array(
             'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\Workspace\Experiment\DataObjectType',
+            'class' => '\Airavata\Model\AppCatalog\AppInterface\OutputDataObjectType',
             ),
           ),
         15 => array(
@@ -3750,7 +3603,7 @@ class Experiment {
             for ($_i88 = 0; $_i88 < $_size84; ++$_i88)
             {
               $elem89 = null;
-              $elem89 = new \Airavata\Model\Workspace\Experiment\DataObjectType();
+              $elem89 = new \Airavata\Model\AppCatalog\AppInterface\InputDataObjectType();
               $xfer += $elem89->read($input);
               $this->experimentInputs []= $elem89;
             }
@@ -3768,7 +3621,7 @@ class Experiment {
             for ($_i94 = 0; $_i94 < $_size90; ++$_i94)
             {
               $elem95 = null;
-              $elem95 = new \Airavata\Model\Workspace\Experiment\DataObjectType();
+              $elem95 = new \Airavata\Model\AppCatalog\AppInterface\OutputDataObjectType();
               $xfer += $elem95->read($input);
               $this->experimentOutputs []= $elem95;
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
index a96cba7..daaf4cc 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
@@ -53,7 +53,7 @@ public class CreateLaunchExperiment {
     private static final String DEFAULT_GATEWAY = "default.registry.gateway";
     private static Airavata.Client airavataClient;
 
-    private static String echoAppId = "Echo_b6782be4-315b-4cbd-9403-aa7ce564548a";
+    private static String echoAppId = "Echo_37c26231-8784-4a40-b184-ae00f6330113";
     private static String wrfAppId = "WRF_5f097c9c-7066-49ec-aed7-4e39607b3adc";
     private static String amberAppId = "Amber_89906be6-5678-49a6-9d04-a0604fbdef2e";
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperimentForLocalhost.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperimentForLocalhost.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperimentForLocalhost.java
new file mode 100644
index 0000000..dcd684c
--- /dev/null
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperimentForLocalhost.java
@@ -0,0 +1,269 @@
+package org.apache.airavata.client.samples;
+
+import org.apache.airavata.api.Airavata;
+import org.apache.airavata.api.client.AiravataClientFactory;
+import org.apache.airavata.client.tools.RegisterSampleApplicationsUtils;
+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.computeresource.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
+import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType;
+import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
+import org.apache.airavata.model.error.AiravataClientConnectException;
+import org.apache.airavata.model.error.AiravataClientException;
+import org.apache.thrift.TException;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by shameera on 9/30/14.
+ */
+public class CreateLaunchExperimentForLocalhost {
+
+    private static final String THRIFT_SERVER_HOST = "127.0.0.1";
+    private static final int THRIFT_SERVER_PORT = 8930;
+    private static final String DEFAULT_GATEWAY = "Sample";
+
+    private Airavata.Client airavataClient;
+    private String localhostId;
+    private String echoModuleId;
+    private String addModuleId;
+    private String multiplyModuleId;
+    private String subtractModuleId;
+
+    public static void main(String[] args) throws AiravataClientConnectException, TException {
+        CreateLaunchExperimentForLocalhost worker = new CreateLaunchExperimentForLocalhost();
+        worker.register();
+    }
+
+
+    public void register() throws AiravataClientConnectException, TException {
+        airavataClient = AiravataClientFactory.createAiravataClient(THRIFT_SERVER_HOST, THRIFT_SERVER_PORT);
+
+        registerLocalhost();
+//        registerGatewayProfile();
+        registerApplicationModules();
+        registerApplicationDeployments();
+        registerApplicationInterfaces();
+    }
+
+    private void registerGatewayProfile() throws TException {
+        ComputeResourcePreference localhostResourcePreference = RegisterSampleApplicationsUtils.
+             createComputeResourcePreference("localhost", "test", false, null, null, null,
+                "/Users/shameera/work/source/git_airavata/modules/distribution/server/target/apache-airavata-server-0.14-SNAPSHOT/tmp");
+        GatewayResourceProfile gatewayResourceProfile = new GatewayResourceProfile();
+        gatewayResourceProfile.setGatewayID(DEFAULT_GATEWAY);
+        gatewayResourceProfile.setGatewayName(DEFAULT_GATEWAY);
+        gatewayResourceProfile.addToComputeResourcePreferences(localhostResourcePreference);
+        airavataClient.registerGatewayResourceProfile(gatewayResourceProfile);
+    }
+
+    private void registerLocalhost() {
+//        try {
+//            System.out.println("\n #### Registering Localhost Computational Resource #### \n");
+//
+//            ComputeResourceDescription computeResourceDescription = RegisterSampleApplicationsUtils.
+//                    createComputeResourceDescription("localhost", "LocalHost", null, null);
+//            localhostId = airavataClient.registerComputeResource(computeResourceDescription);
+//            ResourceJobManager resourceJobManager = RegisterSampleApplicationsUtils.
+//                    createResourceJobManager(ResourceJobManagerType.FORK, null, null, null);
+//            LOCALSubmission submission = new LOCALSubmission();
+//            submission.setResourceJobManager(resourceJobManager);
+//            boolean localSubmission = airavataClient.addLocalSubmissionDetails(localhostId, 1, submission);
+//            if (!localSubmission) throw new AiravataClientException();
+//            System.out.println("LocalHost Resource Id is " + localhostId);
+//
+//        } catch (TException e) {
+//            e.printStackTrace();
+//        }
+    }
+
+    private void registerApplicationInterfaces() {
+         registerAddApplicationInterface();
+        registerSubtractApplicationInterface();
+        registerMultiplyApplicationInterface();
+        registerEchoInterface();
+    }
+
+    private void registerApplicationDeployments() throws TException {
+        System.out.println("#### Registering Application Deployments on Localhost #### \n");
+        //Register Echo
+        String echoAppDeployId = airavataClient.registerApplicationDeployment(
+                RegisterSampleApplicationsUtils.createApplicationDeployment(echoModuleId, localhostId,
+                        "/Users/shameera/work/tryout/scripts/echo.sh", ApplicationParallelismType.SERIAL, "Echo application description"));
+        System.out.println("Echo on localhost Id " + echoAppDeployId);
+
+        //Register Add application
+        String addAppDeployId = airavataClient.registerApplicationDeployment(
+                RegisterSampleApplicationsUtils.createApplicationDeployment(addModuleId, localhostId,
+                        "/Users/shameera/work/tryout/scripts/add.sh", ApplicationParallelismType.SERIAL, "Add application description"));
+        System.out.println("Add on localhost Id " + addAppDeployId);
+
+        //Register Multiply application
+        String multiplyAppDeployId = airavataClient.registerApplicationDeployment(
+                RegisterSampleApplicationsUtils.createApplicationDeployment(multiplyModuleId, localhostId,
+                        "/Users/shameera/work/tryout/scripts/multiply.sh", ApplicationParallelismType.SERIAL, "Multiply application description"));
+        System.out.println("Echo on localhost Id " + multiplyAppDeployId);
+
+        //Register Subtract application
+        String subtractAppDeployId = airavataClient.registerApplicationDeployment(
+                RegisterSampleApplicationsUtils.createApplicationDeployment(subtractModuleId, localhostId,
+                        "/Users/shameera/work/tryout/scripts/subtract.sh", ApplicationParallelismType.SERIAL, "Subtract application description "));
+        System.out.println("Echo on localhost Id " + subtractAppDeployId);
+    }
+
+    private void registerApplicationModules() throws TException {
+        //Register Echo
+        echoModuleId = airavataClient.registerApplicationModule(
+                RegisterSampleApplicationsUtils.createApplicationModule(
+                        "Echo", "1.0", "Echo application description"));
+        System.out.println("Echo Module Id " + echoModuleId);
+        //Register Echo
+        addModuleId = airavataClient.registerApplicationModule(
+                RegisterSampleApplicationsUtils.createApplicationModule(
+                        "Add", "1.0", "Add application description"));
+        System.out.println("Add Module Id " + addModuleId);
+        //Register Echo
+        multiplyModuleId = airavataClient.registerApplicationModule(
+                RegisterSampleApplicationsUtils.createApplicationModule(
+                        "Multiply", "1.0", "Multiply application description"));
+        System.out.println("Multiply Module Id " + multiplyModuleId);
+        //Register Echo
+        subtractModuleId = airavataClient.registerApplicationModule(
+                RegisterSampleApplicationsUtils.createApplicationModule(
+                        "Subtract", "1.0", "Subtract application description"));
+        System.out.println("Subtract Module Id " + subtractModuleId);
+
+    }
+
+
+    public void registerEchoInterface() {
+        try {
+            System.out.println("#### Registering Echo Interface #### \n");
+
+            List<String> appModules = new ArrayList<String>();
+            appModules.add(echoModuleId);
+
+            InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Input_to_Echo", "Hello World",
+                    DataType.STRING, null, false, "A test string to Echo", null);
+
+            List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
+            applicationInputs.add(input1);
+
+            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Echoed_Output",
+                    "", DataType.STRING);
+
+            List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
+            applicationOutputs.add(output1);
+
+            String echoInterfaceId = airavataClient.registerApplicationInterface(
+                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("Echo", "Echo application description",
+                            appModules, applicationInputs, applicationOutputs));
+            System.out.println("Echo Application Interface Id " + echoInterfaceId);
+
+        } catch (TException e) {
+            e.printStackTrace();
+        }
+    }
+
+    public void registerAddApplicationInterface() {
+        try {
+            System.out.println("#### Registering Add Application Interface #### \n");
+
+            List<String> appModules = new ArrayList<String>();
+            appModules.add(addModuleId);
+
+            InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("x", "2",
+                    DataType.STRING, null, false, "Add operation input_1", null);
+            InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("y", "3",
+                    DataType.STRING, null, false, "Add operation input_2", null);
+
+            List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
+            applicationInputs.add(input1);
+            applicationInputs.add(input2);
+
+            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Result",
+                    "0", DataType.STRING);
+
+            List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
+            applicationOutputs.add(output1);
+
+            String addApplicationInterfaceId = airavataClient.registerApplicationInterface(
+                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("Add", "Add two numbers",
+                            appModules, applicationInputs, applicationOutputs));
+            System.out.println("Add Application Interface Id " + addApplicationInterfaceId);
+
+        } catch (TException e) {
+            e.printStackTrace();
+        }
+    }
+
+    public void registerMultiplyApplicationInterface() {
+        try {
+            System.out.println("#### Registering Multiply Application Interface #### \n");
+
+            List<String> appModules = new ArrayList<String>();
+            appModules.add(multiplyModuleId);
+
+            InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("x", "4",
+                    DataType.STRING, null, false, "Multiply operation input_1", null);
+            InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("y", "5",
+                    DataType.STRING, null, false, "Multiply operation input_2", null);
+
+            List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
+            applicationInputs.add(input1);
+            applicationInputs.add(input2);
+
+            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Result",
+                    "0", DataType.STRING);
+
+            List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
+            applicationOutputs.add(output1);
+
+            String multiplyApplicationInterfaceId = airavataClient.registerApplicationInterface(
+                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("Multiply", "Multiply two numbers",
+                            appModules, applicationInputs, applicationOutputs));
+            System.out.println("Multiply Application Interface Id " + multiplyApplicationInterfaceId);
+
+        } catch (TException e) {
+            e.printStackTrace();
+        }
+    }
+
+    public void registerSubtractApplicationInterface() {
+        try {
+            System.out.println("#### Registering Subtract Application Interface #### \n");
+
+            List<String> appModules = new ArrayList<String>();
+            appModules.add(subtractModuleId);
+
+            InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("x", "6",
+                    DataType.STRING, null, false, "Subtract operation input_1", null);
+            InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("y", "7",
+                    DataType.STRING, null, false, "Subtract operation input_2", null);
+
+            List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
+            applicationInputs.add(input1);
+            applicationInputs.add(input2);
+
+            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Result",
+                    "0", DataType.STRING);
+
+            List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
+            applicationOutputs.add(output1);
+
+            String subtractApplicationInterfaceId = airavataClient.registerApplicationInterface(
+                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("Subtract", "Subtract two numbers",
+                            appModules, applicationInputs, applicationOutputs));
+            System.out.println("Subtract Application Interface Id " + subtractApplicationInterfaceId);
+
+        } catch (TException e) {
+            e.printStackTrace();
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
index fbbd6c0..a86cfb7 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/messaging/event/TaskOutputChangeEvent.java
@@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory;
     schemes.put(TupleScheme.class, new TaskOutputChangeEventTupleSchemeFactory());
   }
 
-  private List<org.apache.airavata.model.workspace.experiment.DataObjectType> output; // required
+  private List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> output; // required
   private TaskIdentifier taskIdentity; // required
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@@ -131,7 +131,7 @@ import org.slf4j.LoggerFactory;
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
     tmpMap.put(_Fields.OUTPUT, new org.apache.thrift.meta_data.FieldMetaData("output", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.workspace.experiment.DataObjectType.class))));
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType.class))));
     tmpMap.put(_Fields.TASK_IDENTITY, new org.apache.thrift.meta_data.FieldMetaData("taskIdentity", org.apache.thrift.TFieldRequirementType.REQUIRED, 
         new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, TaskIdentifier.class)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
@@ -142,7 +142,7 @@ import org.slf4j.LoggerFactory;
   }
 
   public TaskOutputChangeEvent(
-    List<org.apache.airavata.model.workspace.experiment.DataObjectType> output,
+    List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> output,
     TaskIdentifier taskIdentity)
   {
     this();
@@ -155,9 +155,9 @@ import org.slf4j.LoggerFactory;
    */
   public TaskOutputChangeEvent(TaskOutputChangeEvent other) {
     if (other.isSetOutput()) {
-      List<org.apache.airavata.model.workspace.experiment.DataObjectType> __this__output = new ArrayList<org.apache.airavata.model.workspace.experiment.DataObjectType>(other.output.size());
-      for (org.apache.airavata.model.workspace.experiment.DataObjectType other_element : other.output) {
-        __this__output.add(new org.apache.airavata.model.workspace.experiment.DataObjectType(other_element));
+      List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> __this__output = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>(other.output.size());
+      for (org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType other_element : other.output) {
+        __this__output.add(new org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType(other_element));
       }
       this.output = __this__output;
     }
@@ -180,22 +180,22 @@ import org.slf4j.LoggerFactory;
     return (this.output == null) ? 0 : this.output.size();
   }
 
-  public java.util.Iterator<org.apache.airavata.model.workspace.experiment.DataObjectType> getOutputIterator() {
+  public java.util.Iterator<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getOutputIterator() {
     return (this.output == null) ? null : this.output.iterator();
   }
 
-  public void addToOutput(org.apache.airavata.model.workspace.experiment.DataObjectType elem) {
+  public void addToOutput(org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType elem) {
     if (this.output == null) {
-      this.output = new ArrayList<org.apache.airavata.model.workspace.experiment.DataObjectType>();
+      this.output = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>();
     }
     this.output.add(elem);
   }
 
-  public List<org.apache.airavata.model.workspace.experiment.DataObjectType> getOutput() {
+  public List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getOutput() {
     return this.output;
   }
 
-  public void setOutput(List<org.apache.airavata.model.workspace.experiment.DataObjectType> output) {
+  public void setOutput(List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> output) {
     this.output = output;
   }
 
@@ -243,7 +243,7 @@ import org.slf4j.LoggerFactory;
       if (value == null) {
         unsetOutput();
       } else {
-        setOutput((List<org.apache.airavata.model.workspace.experiment.DataObjectType>)value);
+        setOutput((List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>)value);
       }
       break;
 
@@ -445,11 +445,11 @@ import org.slf4j.LoggerFactory;
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
-                struct.output = new ArrayList<org.apache.airavata.model.workspace.experiment.DataObjectType>(_list0.size);
+                struct.output = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>(_list0.size);
                 for (int _i1 = 0; _i1 < _list0.size; ++_i1)
                 {
-                  org.apache.airavata.model.workspace.experiment.DataObjectType _elem2;
-                  _elem2 = new org.apache.airavata.model.workspace.experiment.DataObjectType();
+                  org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _elem2;
+                  _elem2 = new org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType();
                   _elem2.read(iprot);
                   struct.output.add(_elem2);
                 }
@@ -486,7 +486,7 @@ import org.slf4j.LoggerFactory;
         oprot.writeFieldBegin(OUTPUT_FIELD_DESC);
         {
           oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.output.size()));
-          for (org.apache.airavata.model.workspace.experiment.DataObjectType _iter3 : struct.output)
+          for (org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _iter3 : struct.output)
           {
             _iter3.write(oprot);
           }
@@ -518,7 +518,7 @@ import org.slf4j.LoggerFactory;
       TTupleProtocol oprot = (TTupleProtocol) prot;
       {
         oprot.writeI32(struct.output.size());
-        for (org.apache.airavata.model.workspace.experiment.DataObjectType _iter4 : struct.output)
+        for (org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _iter4 : struct.output)
         {
           _iter4.write(oprot);
         }
@@ -531,11 +531,11 @@ import org.slf4j.LoggerFactory;
       TTupleProtocol iprot = (TTupleProtocol) prot;
       {
         org.apache.thrift.protocol.TList _list5 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-        struct.output = new ArrayList<org.apache.airavata.model.workspace.experiment.DataObjectType>(_list5.size);
+        struct.output = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>(_list5.size);
         for (int _i6 = 0; _i6 < _list5.size; ++_i6)
         {
-          org.apache.airavata.model.workspace.experiment.DataObjectType _elem7;
-          _elem7 = new org.apache.airavata.model.workspace.experiment.DataObjectType();
+          org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _elem7;
+          _elem7 = new org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType();
           _elem7.read(iprot);
           struct.output.add(_elem7);
         }

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/Experiment.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/Experiment.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/Experiment.java
index 7b674cd..7f974cd 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/Experiment.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/Experiment.java
@@ -105,8 +105,8 @@ import org.slf4j.LoggerFactory;
   private String workflowTemplateVersion; // optional
   private UserConfigurationData userConfigurationData; // optional
   private String workflowExecutionInstanceId; // optional
-  private List<DataObjectType> experimentInputs; // optional
-  private List<DataObjectType> experimentOutputs; // optional
+  private List<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType> experimentInputs; // optional
+  private List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> experimentOutputs; // optional
   private ExperimentStatus experimentStatus; // optional
   private List<WorkflowNodeStatus> stateChangeList; // optional
   private List<WorkflowNodeDetails> workflowNodeDetailsList; // optional
@@ -254,10 +254,10 @@ import org.slf4j.LoggerFactory;
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.EXPERIMENT_INPUTS, new org.apache.thrift.meta_data.FieldMetaData("experimentInputs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DataObjectType.class))));
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType.class))));
     tmpMap.put(_Fields.EXPERIMENT_OUTPUTS, new org.apache.thrift.meta_data.FieldMetaData("experimentOutputs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DataObjectType.class))));
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType.class))));
     tmpMap.put(_Fields.EXPERIMENT_STATUS, new org.apache.thrift.meta_data.FieldMetaData("experimentStatus", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ExperimentStatus.class)));
     tmpMap.put(_Fields.STATE_CHANGE_LIST, new org.apache.thrift.meta_data.FieldMetaData("stateChangeList", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
@@ -333,16 +333,16 @@ import org.slf4j.LoggerFactory;
       this.workflowExecutionInstanceId = other.workflowExecutionInstanceId;
     }
     if (other.isSetExperimentInputs()) {
-      List<DataObjectType> __this__experimentInputs = new ArrayList<DataObjectType>(other.experimentInputs.size());
-      for (DataObjectType other_element : other.experimentInputs) {
-        __this__experimentInputs.add(new DataObjectType(other_element));
+      List<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType> __this__experimentInputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType>(other.experimentInputs.size());
+      for (org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType other_element : other.experimentInputs) {
+        __this__experimentInputs.add(new org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType(other_element));
       }
       this.experimentInputs = __this__experimentInputs;
     }
     if (other.isSetExperimentOutputs()) {
-      List<DataObjectType> __this__experimentOutputs = new ArrayList<DataObjectType>(other.experimentOutputs.size());
-      for (DataObjectType other_element : other.experimentOutputs) {
-        __this__experimentOutputs.add(new DataObjectType(other_element));
+      List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> __this__experimentOutputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>(other.experimentOutputs.size());
+      for (org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType other_element : other.experimentOutputs) {
+        __this__experimentOutputs.add(new org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType(other_element));
       }
       this.experimentOutputs = __this__experimentOutputs;
     }
@@ -680,22 +680,22 @@ import org.slf4j.LoggerFactory;
     return (this.experimentInputs == null) ? 0 : this.experimentInputs.size();
   }
 
-  public java.util.Iterator<DataObjectType> getExperimentInputsIterator() {
+  public java.util.Iterator<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType> getExperimentInputsIterator() {
     return (this.experimentInputs == null) ? null : this.experimentInputs.iterator();
   }
 
-  public void addToExperimentInputs(DataObjectType elem) {
+  public void addToExperimentInputs(org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType elem) {
     if (this.experimentInputs == null) {
-      this.experimentInputs = new ArrayList<DataObjectType>();
+      this.experimentInputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType>();
     }
     this.experimentInputs.add(elem);
   }
 
-  public List<DataObjectType> getExperimentInputs() {
+  public List<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType> getExperimentInputs() {
     return this.experimentInputs;
   }
 
-  public void setExperimentInputs(List<DataObjectType> experimentInputs) {
+  public void setExperimentInputs(List<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType> experimentInputs) {
     this.experimentInputs = experimentInputs;
   }
 
@@ -718,22 +718,22 @@ import org.slf4j.LoggerFactory;
     return (this.experimentOutputs == null) ? 0 : this.experimentOutputs.size();
   }
 
-  public java.util.Iterator<DataObjectType> getExperimentOutputsIterator() {
+  public java.util.Iterator<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getExperimentOutputsIterator() {
     return (this.experimentOutputs == null) ? null : this.experimentOutputs.iterator();
   }
 
-  public void addToExperimentOutputs(DataObjectType elem) {
+  public void addToExperimentOutputs(org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType elem) {
     if (this.experimentOutputs == null) {
-      this.experimentOutputs = new ArrayList<DataObjectType>();
+      this.experimentOutputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>();
     }
     this.experimentOutputs.add(elem);
   }
 
-  public List<DataObjectType> getExperimentOutputs() {
+  public List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getExperimentOutputs() {
     return this.experimentOutputs;
   }
 
-  public void setExperimentOutputs(List<DataObjectType> experimentOutputs) {
+  public void setExperimentOutputs(List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> experimentOutputs) {
     this.experimentOutputs = experimentOutputs;
   }
 
@@ -991,7 +991,7 @@ import org.slf4j.LoggerFactory;
       if (value == null) {
         unsetExperimentInputs();
       } else {
-        setExperimentInputs((List<DataObjectType>)value);
+        setExperimentInputs((List<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType>)value);
       }
       break;
 
@@ -999,7 +999,7 @@ import org.slf4j.LoggerFactory;
       if (value == null) {
         unsetExperimentOutputs();
       } else {
-        setExperimentOutputs((List<DataObjectType>)value);
+        setExperimentOutputs((List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>)value);
       }
       break;
 
@@ -1871,11 +1871,11 @@ import org.slf4j.LoggerFactory;
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list96 = iprot.readListBegin();
-                struct.experimentInputs = new ArrayList<DataObjectType>(_list96.size);
+                struct.experimentInputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType>(_list96.size);
                 for (int _i97 = 0; _i97 < _list96.size; ++_i97)
                 {
-                  DataObjectType _elem98;
-                  _elem98 = new DataObjectType();
+                  org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType _elem98;
+                  _elem98 = new org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType();
                   _elem98.read(iprot);
                   struct.experimentInputs.add(_elem98);
                 }
@@ -1890,11 +1890,11 @@ import org.slf4j.LoggerFactory;
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list99 = iprot.readListBegin();
-                struct.experimentOutputs = new ArrayList<DataObjectType>(_list99.size);
+                struct.experimentOutputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>(_list99.size);
                 for (int _i100 = 0; _i100 < _list99.size; ++_i100)
                 {
-                  DataObjectType _elem101;
-                  _elem101 = new DataObjectType();
+                  org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _elem101;
+                  _elem101 = new org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType();
                   _elem101.read(iprot);
                   struct.experimentOutputs.add(_elem101);
                 }
@@ -2063,7 +2063,7 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(EXPERIMENT_INPUTS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.experimentInputs.size()));
-            for (DataObjectType _iter111 : struct.experimentInputs)
+            for (org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType _iter111 : struct.experimentInputs)
             {
               _iter111.write(oprot);
             }
@@ -2077,7 +2077,7 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(EXPERIMENT_OUTPUTS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.experimentOutputs.size()));
-            for (DataObjectType _iter112 : struct.experimentOutputs)
+            for (org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _iter112 : struct.experimentOutputs)
             {
               _iter112.write(oprot);
             }
@@ -2227,7 +2227,7 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetExperimentInputs()) {
         {
           oprot.writeI32(struct.experimentInputs.size());
-          for (DataObjectType _iter116 : struct.experimentInputs)
+          for (org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType _iter116 : struct.experimentInputs)
           {
             _iter116.write(oprot);
           }
@@ -2236,7 +2236,7 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetExperimentOutputs()) {
         {
           oprot.writeI32(struct.experimentOutputs.size());
-          for (DataObjectType _iter117 : struct.experimentOutputs)
+          for (org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _iter117 : struct.experimentOutputs)
           {
             _iter117.write(oprot);
           }
@@ -2322,11 +2322,11 @@ import org.slf4j.LoggerFactory;
       if (incoming.get(8)) {
         {
           org.apache.thrift.protocol.TList _list121 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.experimentInputs = new ArrayList<DataObjectType>(_list121.size);
+          struct.experimentInputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType>(_list121.size);
           for (int _i122 = 0; _i122 < _list121.size; ++_i122)
           {
-            DataObjectType _elem123;
-            _elem123 = new DataObjectType();
+            org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType _elem123;
+            _elem123 = new org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType();
             _elem123.read(iprot);
             struct.experimentInputs.add(_elem123);
           }
@@ -2336,11 +2336,11 @@ import org.slf4j.LoggerFactory;
       if (incoming.get(9)) {
         {
           org.apache.thrift.protocol.TList _list124 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.experimentOutputs = new ArrayList<DataObjectType>(_list124.size);
+          struct.experimentOutputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>(_list124.size);
           for (int _i125 = 0; _i125 < _list124.size; ++_i125)
           {
-            DataObjectType _elem126;
-            _elem126 = new DataObjectType();
+            org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _elem126;
+            _elem126 = new org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType();
             _elem126.read(iprot);
             struct.experimentOutputs.add(_elem126);
           }

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/JobDetails.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/JobDetails.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/JobDetails.java
index c1034a0..d1cbe5e 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/JobDetails.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/JobDetails.java
@@ -271,14 +271,9 @@ import org.slf4j.LoggerFactory;
     }
   }
 
-    /**
-     * this method is deprecated after we introduce new thirft model with appcatalog
-     * @return
-     */
-    @Deprecated
-    public String getJobDescription() {
-        return this.jobDescription;
-    }
+  public String getJobDescription() {
+    return this.jobDescription;
+  }
 
   public void setJobDescription(String jobDescription) {
     this.jobDescription = jobDescription;

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TaskDetails.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TaskDetails.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TaskDetails.java
index aabc989..2312b1a 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TaskDetails.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/TaskDetails.java
@@ -84,8 +84,8 @@ import org.slf4j.LoggerFactory;
   private String applicationId; // optional
   private String applicationVersion; // optional
   private String applicationDeploymentId; // optional
-  private List<DataObjectType> applicationInputs; // optional
-  private List<DataObjectType> applicationOutputs; // optional
+  private List<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType> applicationInputs; // optional
+  private List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> applicationOutputs; // optional
   private ComputationalResourceScheduling taskScheduling; // optional
   private AdvancedInputDataHandling advancedInputDataHandling; // optional
   private AdvancedOutputDataHandling advancedOutputDataHandling; // optional
@@ -210,10 +210,10 @@ import org.slf4j.LoggerFactory;
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.APPLICATION_INPUTS, new org.apache.thrift.meta_data.FieldMetaData("applicationInputs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DataObjectType.class))));
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType.class))));
     tmpMap.put(_Fields.APPLICATION_OUTPUTS, new org.apache.thrift.meta_data.FieldMetaData("applicationOutputs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DataObjectType.class))));
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType.class))));
     tmpMap.put(_Fields.TASK_SCHEDULING, new org.apache.thrift.meta_data.FieldMetaData("taskScheduling", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, ComputationalResourceScheduling.class)));
     tmpMap.put(_Fields.ADVANCED_INPUT_DATA_HANDLING, new org.apache.thrift.meta_data.FieldMetaData("advancedInputDataHandling", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
@@ -266,16 +266,16 @@ import org.slf4j.LoggerFactory;
       this.applicationDeploymentId = other.applicationDeploymentId;
     }
     if (other.isSetApplicationInputs()) {
-      List<DataObjectType> __this__applicationInputs = new ArrayList<DataObjectType>(other.applicationInputs.size());
-      for (DataObjectType other_element : other.applicationInputs) {
-        __this__applicationInputs.add(new DataObjectType(other_element));
+      List<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType> __this__applicationInputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType>(other.applicationInputs.size());
+      for (org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType other_element : other.applicationInputs) {
+        __this__applicationInputs.add(new org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType(other_element));
       }
       this.applicationInputs = __this__applicationInputs;
     }
     if (other.isSetApplicationOutputs()) {
-      List<DataObjectType> __this__applicationOutputs = new ArrayList<DataObjectType>(other.applicationOutputs.size());
-      for (DataObjectType other_element : other.applicationOutputs) {
-        __this__applicationOutputs.add(new DataObjectType(other_element));
+      List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> __this__applicationOutputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>(other.applicationOutputs.size());
+      for (org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType other_element : other.applicationOutputs) {
+        __this__applicationOutputs.add(new org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType(other_element));
       }
       this.applicationOutputs = __this__applicationOutputs;
     }
@@ -456,22 +456,22 @@ import org.slf4j.LoggerFactory;
     return (this.applicationInputs == null) ? 0 : this.applicationInputs.size();
   }
 
-  public java.util.Iterator<DataObjectType> getApplicationInputsIterator() {
+  public java.util.Iterator<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType> getApplicationInputsIterator() {
     return (this.applicationInputs == null) ? null : this.applicationInputs.iterator();
   }
 
-  public void addToApplicationInputs(DataObjectType elem) {
+  public void addToApplicationInputs(org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType elem) {
     if (this.applicationInputs == null) {
-      this.applicationInputs = new ArrayList<DataObjectType>();
+      this.applicationInputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType>();
     }
     this.applicationInputs.add(elem);
   }
 
-  public List<DataObjectType> getApplicationInputs() {
+  public List<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType> getApplicationInputs() {
     return this.applicationInputs;
   }
 
-  public void setApplicationInputs(List<DataObjectType> applicationInputs) {
+  public void setApplicationInputs(List<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType> applicationInputs) {
     this.applicationInputs = applicationInputs;
   }
 
@@ -494,22 +494,22 @@ import org.slf4j.LoggerFactory;
     return (this.applicationOutputs == null) ? 0 : this.applicationOutputs.size();
   }
 
-  public java.util.Iterator<DataObjectType> getApplicationOutputsIterator() {
+  public java.util.Iterator<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getApplicationOutputsIterator() {
     return (this.applicationOutputs == null) ? null : this.applicationOutputs.iterator();
   }
 
-  public void addToApplicationOutputs(DataObjectType elem) {
+  public void addToApplicationOutputs(org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType elem) {
     if (this.applicationOutputs == null) {
-      this.applicationOutputs = new ArrayList<DataObjectType>();
+      this.applicationOutputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>();
     }
     this.applicationOutputs.add(elem);
   }
 
-  public List<DataObjectType> getApplicationOutputs() {
+  public List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getApplicationOutputs() {
     return this.applicationOutputs;
   }
 
-  public void setApplicationOutputs(List<DataObjectType> applicationOutputs) {
+  public void setApplicationOutputs(List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> applicationOutputs) {
     this.applicationOutputs = applicationOutputs;
   }
 
@@ -780,7 +780,7 @@ import org.slf4j.LoggerFactory;
       if (value == null) {
         unsetApplicationInputs();
       } else {
-        setApplicationInputs((List<DataObjectType>)value);
+        setApplicationInputs((List<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType>)value);
       }
       break;
 
@@ -788,7 +788,7 @@ import org.slf4j.LoggerFactory;
       if (value == null) {
         unsetApplicationOutputs();
       } else {
-        setApplicationOutputs((List<DataObjectType>)value);
+        setApplicationOutputs((List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>)value);
       }
       break;
 
@@ -1491,11 +1491,11 @@ import org.slf4j.LoggerFactory;
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list16 = iprot.readListBegin();
-                struct.applicationInputs = new ArrayList<DataObjectType>(_list16.size);
+                struct.applicationInputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType>(_list16.size);
                 for (int _i17 = 0; _i17 < _list16.size; ++_i17)
                 {
-                  DataObjectType _elem18;
-                  _elem18 = new DataObjectType();
+                  org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType _elem18;
+                  _elem18 = new org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType();
                   _elem18.read(iprot);
                   struct.applicationInputs.add(_elem18);
                 }
@@ -1510,11 +1510,11 @@ import org.slf4j.LoggerFactory;
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list19 = iprot.readListBegin();
-                struct.applicationOutputs = new ArrayList<DataObjectType>(_list19.size);
+                struct.applicationOutputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>(_list19.size);
                 for (int _i20 = 0; _i20 < _list19.size; ++_i20)
                 {
-                  DataObjectType _elem21;
-                  _elem21 = new DataObjectType();
+                  org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _elem21;
+                  _elem21 = new org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType();
                   _elem21.read(iprot);
                   struct.applicationOutputs.add(_elem21);
                 }
@@ -1667,7 +1667,7 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(APPLICATION_INPUTS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.applicationInputs.size()));
-            for (DataObjectType _iter31 : struct.applicationInputs)
+            for (org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType _iter31 : struct.applicationInputs)
             {
               _iter31.write(oprot);
             }
@@ -1681,7 +1681,7 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(APPLICATION_OUTPUTS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.applicationOutputs.size()));
-            for (DataObjectType _iter32 : struct.applicationOutputs)
+            for (org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _iter32 : struct.applicationOutputs)
             {
               _iter32.write(oprot);
             }
@@ -1834,7 +1834,7 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetApplicationInputs()) {
         {
           oprot.writeI32(struct.applicationInputs.size());
-          for (DataObjectType _iter36 : struct.applicationInputs)
+          for (org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType _iter36 : struct.applicationInputs)
           {
             _iter36.write(oprot);
           }
@@ -1843,7 +1843,7 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetApplicationOutputs()) {
         {
           oprot.writeI32(struct.applicationOutputs.size());
-          for (DataObjectType _iter37 : struct.applicationOutputs)
+          for (org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _iter37 : struct.applicationOutputs)
           {
             _iter37.write(oprot);
           }
@@ -1915,11 +1915,11 @@ import org.slf4j.LoggerFactory;
       if (incoming.get(4)) {
         {
           org.apache.thrift.protocol.TList _list41 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.applicationInputs = new ArrayList<DataObjectType>(_list41.size);
+          struct.applicationInputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType>(_list41.size);
           for (int _i42 = 0; _i42 < _list41.size; ++_i42)
           {
-            DataObjectType _elem43;
-            _elem43 = new DataObjectType();
+            org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType _elem43;
+            _elem43 = new org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType();
             _elem43.read(iprot);
             struct.applicationInputs.add(_elem43);
           }
@@ -1929,11 +1929,11 @@ import org.slf4j.LoggerFactory;
       if (incoming.get(5)) {
         {
           org.apache.thrift.protocol.TList _list44 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.applicationOutputs = new ArrayList<DataObjectType>(_list44.size);
+          struct.applicationOutputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>(_list44.size);
           for (int _i45 = 0; _i45 < _list44.size; ++_i45)
           {
-            DataObjectType _elem46;
-            _elem46 = new DataObjectType();
+            org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _elem46;
+            _elem46 = new org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType();
             _elem46.read(iprot);
             struct.applicationOutputs.add(_elem46);
           }

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/WorkflowNodeDetails.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/WorkflowNodeDetails.java b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/WorkflowNodeDetails.java
index 62e5a7e..bab25cd 100644
--- a/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/WorkflowNodeDetails.java
+++ b/airavata-api/airavata-data-models/src/main/java/org/apache/airavata/model/workspace/experiment/WorkflowNodeDetails.java
@@ -78,8 +78,8 @@ import org.slf4j.LoggerFactory;
   private String nodeName; // required
   private ExecutionUnit executionUnit; // required
   private String executionUnitData; // optional
-  private List<DataObjectType> nodeInputs; // optional
-  private List<DataObjectType> nodeOutputs; // optional
+  private List<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType> nodeInputs; // optional
+  private List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> nodeOutputs; // optional
   private WorkflowNodeStatus workflowNodeStatus; // optional
   private List<TaskDetails> taskDetailsList; // optional
   private List<ErrorDetails> errors; // optional
@@ -192,10 +192,10 @@ import org.slf4j.LoggerFactory;
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.NODE_INPUTS, new org.apache.thrift.meta_data.FieldMetaData("nodeInputs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DataObjectType.class))));
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType.class))));
     tmpMap.put(_Fields.NODE_OUTPUTS, new org.apache.thrift.meta_data.FieldMetaData("nodeOutputs", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, DataObjectType.class))));
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType.class))));
     tmpMap.put(_Fields.WORKFLOW_NODE_STATUS, new org.apache.thrift.meta_data.FieldMetaData("workflowNodeStatus", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
         new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WorkflowNodeStatus.class)));
     tmpMap.put(_Fields.TASK_DETAILS_LIST, new org.apache.thrift.meta_data.FieldMetaData("taskDetailsList", org.apache.thrift.TFieldRequirementType.OPTIONAL, 
@@ -247,16 +247,16 @@ import org.slf4j.LoggerFactory;
       this.executionUnitData = other.executionUnitData;
     }
     if (other.isSetNodeInputs()) {
-      List<DataObjectType> __this__nodeInputs = new ArrayList<DataObjectType>(other.nodeInputs.size());
-      for (DataObjectType other_element : other.nodeInputs) {
-        __this__nodeInputs.add(new DataObjectType(other_element));
+      List<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType> __this__nodeInputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType>(other.nodeInputs.size());
+      for (org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType other_element : other.nodeInputs) {
+        __this__nodeInputs.add(new org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType(other_element));
       }
       this.nodeInputs = __this__nodeInputs;
     }
     if (other.isSetNodeOutputs()) {
-      List<DataObjectType> __this__nodeOutputs = new ArrayList<DataObjectType>(other.nodeOutputs.size());
-      for (DataObjectType other_element : other.nodeOutputs) {
-        __this__nodeOutputs.add(new DataObjectType(other_element));
+      List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> __this__nodeOutputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>(other.nodeOutputs.size());
+      for (org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType other_element : other.nodeOutputs) {
+        __this__nodeOutputs.add(new org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType(other_element));
       }
       this.nodeOutputs = __this__nodeOutputs;
     }
@@ -427,22 +427,22 @@ import org.slf4j.LoggerFactory;
     return (this.nodeInputs == null) ? 0 : this.nodeInputs.size();
   }
 
-  public java.util.Iterator<DataObjectType> getNodeInputsIterator() {
+  public java.util.Iterator<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType> getNodeInputsIterator() {
     return (this.nodeInputs == null) ? null : this.nodeInputs.iterator();
   }
 
-  public void addToNodeInputs(DataObjectType elem) {
+  public void addToNodeInputs(org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType elem) {
     if (this.nodeInputs == null) {
-      this.nodeInputs = new ArrayList<DataObjectType>();
+      this.nodeInputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType>();
     }
     this.nodeInputs.add(elem);
   }
 
-  public List<DataObjectType> getNodeInputs() {
+  public List<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType> getNodeInputs() {
     return this.nodeInputs;
   }
 
-  public void setNodeInputs(List<DataObjectType> nodeInputs) {
+  public void setNodeInputs(List<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType> nodeInputs) {
     this.nodeInputs = nodeInputs;
   }
 
@@ -465,22 +465,22 @@ import org.slf4j.LoggerFactory;
     return (this.nodeOutputs == null) ? 0 : this.nodeOutputs.size();
   }
 
-  public java.util.Iterator<DataObjectType> getNodeOutputsIterator() {
+  public java.util.Iterator<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getNodeOutputsIterator() {
     return (this.nodeOutputs == null) ? null : this.nodeOutputs.iterator();
   }
 
-  public void addToNodeOutputs(DataObjectType elem) {
+  public void addToNodeOutputs(org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType elem) {
     if (this.nodeOutputs == null) {
-      this.nodeOutputs = new ArrayList<DataObjectType>();
+      this.nodeOutputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>();
     }
     this.nodeOutputs.add(elem);
   }
 
-  public List<DataObjectType> getNodeOutputs() {
+  public List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getNodeOutputs() {
     return this.nodeOutputs;
   }
 
-  public void setNodeOutputs(List<DataObjectType> nodeOutputs) {
+  public void setNodeOutputs(List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> nodeOutputs) {
     this.nodeOutputs = nodeOutputs;
   }
 
@@ -644,7 +644,7 @@ import org.slf4j.LoggerFactory;
       if (value == null) {
         unsetNodeInputs();
       } else {
-        setNodeInputs((List<DataObjectType>)value);
+        setNodeInputs((List<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType>)value);
       }
       break;
 
@@ -652,7 +652,7 @@ import org.slf4j.LoggerFactory;
       if (value == null) {
         unsetNodeOutputs();
       } else {
-        setNodeOutputs((List<DataObjectType>)value);
+        setNodeOutputs((List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>)value);
       }
       break;
 
@@ -1182,11 +1182,11 @@ import org.slf4j.LoggerFactory;
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list56 = iprot.readListBegin();
-                struct.nodeInputs = new ArrayList<DataObjectType>(_list56.size);
+                struct.nodeInputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType>(_list56.size);
                 for (int _i57 = 0; _i57 < _list56.size; ++_i57)
                 {
-                  DataObjectType _elem58;
-                  _elem58 = new DataObjectType();
+                  org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType _elem58;
+                  _elem58 = new org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType();
                   _elem58.read(iprot);
                   struct.nodeInputs.add(_elem58);
                 }
@@ -1201,11 +1201,11 @@ import org.slf4j.LoggerFactory;
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
                 org.apache.thrift.protocol.TList _list59 = iprot.readListBegin();
-                struct.nodeOutputs = new ArrayList<DataObjectType>(_list59.size);
+                struct.nodeOutputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>(_list59.size);
                 for (int _i60 = 0; _i60 < _list59.size; ++_i60)
                 {
-                  DataObjectType _elem61;
-                  _elem61 = new DataObjectType();
+                  org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _elem61;
+                  _elem61 = new org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType();
                   _elem61.read(iprot);
                   struct.nodeOutputs.add(_elem61);
                 }
@@ -1308,7 +1308,7 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(NODE_INPUTS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.nodeInputs.size()));
-            for (DataObjectType _iter68 : struct.nodeInputs)
+            for (org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType _iter68 : struct.nodeInputs)
             {
               _iter68.write(oprot);
             }
@@ -1322,7 +1322,7 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(NODE_OUTPUTS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.nodeOutputs.size()));
-            for (DataObjectType _iter69 : struct.nodeOutputs)
+            for (org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _iter69 : struct.nodeOutputs)
             {
               _iter69.write(oprot);
             }
@@ -1418,7 +1418,7 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetNodeInputs()) {
         {
           oprot.writeI32(struct.nodeInputs.size());
-          for (DataObjectType _iter72 : struct.nodeInputs)
+          for (org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType _iter72 : struct.nodeInputs)
           {
             _iter72.write(oprot);
           }
@@ -1427,7 +1427,7 @@ import org.slf4j.LoggerFactory;
       if (struct.isSetNodeOutputs()) {
         {
           oprot.writeI32(struct.nodeOutputs.size());
-          for (DataObjectType _iter73 : struct.nodeOutputs)
+          for (org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _iter73 : struct.nodeOutputs)
           {
             _iter73.write(oprot);
           }
@@ -1477,11 +1477,11 @@ import org.slf4j.LoggerFactory;
       if (incoming.get(2)) {
         {
           org.apache.thrift.protocol.TList _list76 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.nodeInputs = new ArrayList<DataObjectType>(_list76.size);
+          struct.nodeInputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType>(_list76.size);
           for (int _i77 = 0; _i77 < _list76.size; ++_i77)
           {
-            DataObjectType _elem78;
-            _elem78 = new DataObjectType();
+            org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType _elem78;
+            _elem78 = new org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType();
             _elem78.read(iprot);
             struct.nodeInputs.add(_elem78);
           }
@@ -1491,11 +1491,11 @@ import org.slf4j.LoggerFactory;
       if (incoming.get(3)) {
         {
           org.apache.thrift.protocol.TList _list79 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.nodeOutputs = new ArrayList<DataObjectType>(_list79.size);
+          struct.nodeOutputs = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>(_list79.size);
           for (int _i80 = 0; _i80 < _list79.size; ++_i80)
           {
-            DataObjectType _elem81;
-            _elem81 = new DataObjectType();
+            org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _elem81;
+            _elem81 = new org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType();
             _elem81.read(iprot);
             struct.nodeOutputs.add(_elem81);
           }

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
index 59b3e7b..2598082 100644
--- a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
+++ b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
@@ -397,7 +397,7 @@ service Airavata {
               3: airavataErrors.AiravataClientException ace,
               4: airavataErrors.AiravataSystemException ase)
 
-  list<experimentModel.DataObjectType> getExperimentOutputs (1: required string airavataExperimentId)
+  list<applicationInterfaceModel.OutputDataObjectType> getExperimentOutputs (1: required string airavataExperimentId)
       throws (1: airavataErrors.InvalidRequestException ire,
               2: airavataErrors.ExperimentNotFoundException enf,
               3: airavataErrors.AiravataClientException ace,

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/thrift-interface-descriptions/experimentModel.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/experimentModel.thrift b/airavata-api/thrift-interface-descriptions/experimentModel.thrift
index 61ba12b..512cfe8 100644
--- a/airavata-api/thrift-interface-descriptions/experimentModel.thrift
+++ b/airavata-api/thrift-interface-descriptions/experimentModel.thrift
@@ -19,6 +19,7 @@
  */
 
 include "computeResourceModel.thrift"
+include "applicationInterfaceModel.thrift"
 
 namespace java org.apache.airavata.model.workspace.experiment
 namespace php Airavata.Model.Workspace.Experiment
@@ -183,25 +184,6 @@ enum CorrectiveAction {
     CANNOT_BE_DETERMINED
 }
 
-enum DataType{
-	STRING,
-	INTEGER,
-	URI,
-	STDOUT,
-	STDERR
-}
-
-/**
-* A structure  hold experiment input output
-*
-*/
-struct DataObjectType {
-    1: required string key,
-    2: optional string value,
-    3: optional DataType type,
-    4: optional string metaData
-}
-
 /**
  * A structure holding the Computational Resource Scheduling.
  *
@@ -307,8 +289,8 @@ struct TaskDetails {
     3: optional string applicationId,
     4: optional string applicationVersion,
     5: optional string applicationDeploymentId,
-    6: optional list<DataObjectType> applicationInputs,
-    7: optional list<DataObjectType> applicationOutputs,
+    6: optional list<applicationInterfaceModel.InputDataObjectType> applicationInputs,
+    7: optional list<applicationInterfaceModel.OutputDataObjectType> applicationOutputs,
     8: optional ComputationalResourceScheduling taskScheduling,
     9: optional AdvancedInputDataHandling advancedInputDataHandling,
     10: optional AdvancedOutputDataHandling advancedOutputDataHandling,
@@ -336,8 +318,8 @@ struct WorkflowNodeDetails {
     3: required string nodeName = SINGLE_APP_NODE_NAME,
     4: required ExecutionUnit executionUnit = ExecutionUnit.APPLICATION,
     5: optional string executionUnitData,
-    6: optional list<DataObjectType> nodeInputs,
-    7: optional list<DataObjectType> nodeOutputs,
+    6: optional list<applicationInterfaceModel.InputDataObjectType> nodeInputs,
+    7: optional list<applicationInterfaceModel.OutputDataObjectType> nodeOutputs,
     8: optional WorkflowNodeStatus workflowNodeStatus,
     9: optional list<TaskDetails> taskDetailsList,
     10: optional list<ErrorDetails> errors
@@ -390,8 +372,8 @@ struct Experiment {
     10: optional string workflowTemplateVersion,
     11: optional UserConfigurationData userConfigurationData,
     12: optional string workflowExecutionInstanceId,
-    13: optional list<DataObjectType> experimentInputs,
-    14: optional list<DataObjectType> experimentOutputs,
+    13: optional list<applicationInterfaceModel.InputDataObjectType> experimentInputs,
+    14: optional list<applicationInterfaceModel.OutputDataObjectType> experimentOutputs,
     15: optional ExperimentStatus experimentStatus,
     16: optional list<WorkflowNodeStatus> stateChangeList,
     17: optional list<WorkflowNodeDetails> workflowNodeDetailsList,

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/thrift-interface-descriptions/messagingEvents.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/messagingEvents.thrift b/airavata-api/thrift-interface-descriptions/messagingEvents.thrift
index d7178cc..c9f3808 100644
--- a/airavata-api/thrift-interface-descriptions/messagingEvents.thrift
+++ b/airavata-api/thrift-interface-descriptions/messagingEvents.thrift
@@ -19,6 +19,7 @@
  */
 
 include "experimentModel.thrift"
+include "applicationInterfaceModel.thrift"
 
 namespace java org.apache.airavata.model.messaging.event
 namespace php Airavata.Model.Messaging.Event
@@ -75,7 +76,7 @@ struct TaskStatusChangeRequestEvent {
 }
 
 struct TaskOutputChangeEvent {
-    1: required list<experimentModel.DataObjectType> output;
+    1: required list<applicationInterfaceModel.OutputDataObjectType> output;
     2: required TaskIdentifier taskIdentity;
 }
 


[3/3] airavata git commit: Removed local test class

Posted by sh...@apache.org.
Removed local test class


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

Branch: refs/heads/gfac_appcatalog_int
Commit: d7f35e18d1735e6709b859a1d692f16d144aaedd
Parents: 198de99
Author: shamrath <sh...@gmail.com>
Authored: Thu Nov 6 15:52:45 2014 -0500
Committer: shamrath <sh...@gmail.com>
Committed: Thu Nov 6 15:52:45 2014 -0500

----------------------------------------------------------------------
 .../CreateLaunchExperimentForLocalhost.java     | 269 -------------------
 1 file changed, 269 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/d7f35e18/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperimentForLocalhost.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperimentForLocalhost.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperimentForLocalhost.java
deleted file mode 100644
index dcd684c..0000000
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperimentForLocalhost.java
+++ /dev/null
@@ -1,269 +0,0 @@
-package org.apache.airavata.client.samples;
-
-import org.apache.airavata.api.Airavata;
-import org.apache.airavata.api.client.AiravataClientFactory;
-import org.apache.airavata.client.tools.RegisterSampleApplicationsUtils;
-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.computeresource.ComputeResourceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
-import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType;
-import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
-import org.apache.airavata.model.error.AiravataClientConnectException;
-import org.apache.airavata.model.error.AiravataClientException;
-import org.apache.thrift.TException;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by shameera on 9/30/14.
- */
-public class CreateLaunchExperimentForLocalhost {
-
-    private static final String THRIFT_SERVER_HOST = "127.0.0.1";
-    private static final int THRIFT_SERVER_PORT = 8930;
-    private static final String DEFAULT_GATEWAY = "Sample";
-
-    private Airavata.Client airavataClient;
-    private String localhostId;
-    private String echoModuleId;
-    private String addModuleId;
-    private String multiplyModuleId;
-    private String subtractModuleId;
-
-    public static void main(String[] args) throws AiravataClientConnectException, TException {
-        CreateLaunchExperimentForLocalhost worker = new CreateLaunchExperimentForLocalhost();
-        worker.register();
-    }
-
-
-    public void register() throws AiravataClientConnectException, TException {
-        airavataClient = AiravataClientFactory.createAiravataClient(THRIFT_SERVER_HOST, THRIFT_SERVER_PORT);
-
-        registerLocalhost();
-//        registerGatewayProfile();
-        registerApplicationModules();
-        registerApplicationDeployments();
-        registerApplicationInterfaces();
-    }
-
-    private void registerGatewayProfile() throws TException {
-        ComputeResourcePreference localhostResourcePreference = RegisterSampleApplicationsUtils.
-             createComputeResourcePreference("localhost", "test", false, null, null, null,
-                "/Users/shameera/work/source/git_airavata/modules/distribution/server/target/apache-airavata-server-0.14-SNAPSHOT/tmp");
-        GatewayResourceProfile gatewayResourceProfile = new GatewayResourceProfile();
-        gatewayResourceProfile.setGatewayID(DEFAULT_GATEWAY);
-        gatewayResourceProfile.setGatewayName(DEFAULT_GATEWAY);
-        gatewayResourceProfile.addToComputeResourcePreferences(localhostResourcePreference);
-        airavataClient.registerGatewayResourceProfile(gatewayResourceProfile);
-    }
-
-    private void registerLocalhost() {
-//        try {
-//            System.out.println("\n #### Registering Localhost Computational Resource #### \n");
-//
-//            ComputeResourceDescription computeResourceDescription = RegisterSampleApplicationsUtils.
-//                    createComputeResourceDescription("localhost", "LocalHost", null, null);
-//            localhostId = airavataClient.registerComputeResource(computeResourceDescription);
-//            ResourceJobManager resourceJobManager = RegisterSampleApplicationsUtils.
-//                    createResourceJobManager(ResourceJobManagerType.FORK, null, null, null);
-//            LOCALSubmission submission = new LOCALSubmission();
-//            submission.setResourceJobManager(resourceJobManager);
-//            boolean localSubmission = airavataClient.addLocalSubmissionDetails(localhostId, 1, submission);
-//            if (!localSubmission) throw new AiravataClientException();
-//            System.out.println("LocalHost Resource Id is " + localhostId);
-//
-//        } catch (TException e) {
-//            e.printStackTrace();
-//        }
-    }
-
-    private void registerApplicationInterfaces() {
-         registerAddApplicationInterface();
-        registerSubtractApplicationInterface();
-        registerMultiplyApplicationInterface();
-        registerEchoInterface();
-    }
-
-    private void registerApplicationDeployments() throws TException {
-        System.out.println("#### Registering Application Deployments on Localhost #### \n");
-        //Register Echo
-        String echoAppDeployId = airavataClient.registerApplicationDeployment(
-                RegisterSampleApplicationsUtils.createApplicationDeployment(echoModuleId, localhostId,
-                        "/Users/shameera/work/tryout/scripts/echo.sh", ApplicationParallelismType.SERIAL, "Echo application description"));
-        System.out.println("Echo on localhost Id " + echoAppDeployId);
-
-        //Register Add application
-        String addAppDeployId = airavataClient.registerApplicationDeployment(
-                RegisterSampleApplicationsUtils.createApplicationDeployment(addModuleId, localhostId,
-                        "/Users/shameera/work/tryout/scripts/add.sh", ApplicationParallelismType.SERIAL, "Add application description"));
-        System.out.println("Add on localhost Id " + addAppDeployId);
-
-        //Register Multiply application
-        String multiplyAppDeployId = airavataClient.registerApplicationDeployment(
-                RegisterSampleApplicationsUtils.createApplicationDeployment(multiplyModuleId, localhostId,
-                        "/Users/shameera/work/tryout/scripts/multiply.sh", ApplicationParallelismType.SERIAL, "Multiply application description"));
-        System.out.println("Echo on localhost Id " + multiplyAppDeployId);
-
-        //Register Subtract application
-        String subtractAppDeployId = airavataClient.registerApplicationDeployment(
-                RegisterSampleApplicationsUtils.createApplicationDeployment(subtractModuleId, localhostId,
-                        "/Users/shameera/work/tryout/scripts/subtract.sh", ApplicationParallelismType.SERIAL, "Subtract application description "));
-        System.out.println("Echo on localhost Id " + subtractAppDeployId);
-    }
-
-    private void registerApplicationModules() throws TException {
-        //Register Echo
-        echoModuleId = airavataClient.registerApplicationModule(
-                RegisterSampleApplicationsUtils.createApplicationModule(
-                        "Echo", "1.0", "Echo application description"));
-        System.out.println("Echo Module Id " + echoModuleId);
-        //Register Echo
-        addModuleId = airavataClient.registerApplicationModule(
-                RegisterSampleApplicationsUtils.createApplicationModule(
-                        "Add", "1.0", "Add application description"));
-        System.out.println("Add Module Id " + addModuleId);
-        //Register Echo
-        multiplyModuleId = airavataClient.registerApplicationModule(
-                RegisterSampleApplicationsUtils.createApplicationModule(
-                        "Multiply", "1.0", "Multiply application description"));
-        System.out.println("Multiply Module Id " + multiplyModuleId);
-        //Register Echo
-        subtractModuleId = airavataClient.registerApplicationModule(
-                RegisterSampleApplicationsUtils.createApplicationModule(
-                        "Subtract", "1.0", "Subtract application description"));
-        System.out.println("Subtract Module Id " + subtractModuleId);
-
-    }
-
-
-    public void registerEchoInterface() {
-        try {
-            System.out.println("#### Registering Echo Interface #### \n");
-
-            List<String> appModules = new ArrayList<String>();
-            appModules.add(echoModuleId);
-
-            InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("Input_to_Echo", "Hello World",
-                    DataType.STRING, null, false, "A test string to Echo", null);
-
-            List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
-            applicationInputs.add(input1);
-
-            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Echoed_Output",
-                    "", DataType.STRING);
-
-            List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
-            applicationOutputs.add(output1);
-
-            String echoInterfaceId = airavataClient.registerApplicationInterface(
-                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("Echo", "Echo application description",
-                            appModules, applicationInputs, applicationOutputs));
-            System.out.println("Echo Application Interface Id " + echoInterfaceId);
-
-        } catch (TException e) {
-            e.printStackTrace();
-        }
-    }
-
-    public void registerAddApplicationInterface() {
-        try {
-            System.out.println("#### Registering Add Application Interface #### \n");
-
-            List<String> appModules = new ArrayList<String>();
-            appModules.add(addModuleId);
-
-            InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("x", "2",
-                    DataType.STRING, null, false, "Add operation input_1", null);
-            InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("y", "3",
-                    DataType.STRING, null, false, "Add operation input_2", null);
-
-            List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
-            applicationInputs.add(input1);
-            applicationInputs.add(input2);
-
-            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Result",
-                    "0", DataType.STRING);
-
-            List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
-            applicationOutputs.add(output1);
-
-            String addApplicationInterfaceId = airavataClient.registerApplicationInterface(
-                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("Add", "Add two numbers",
-                            appModules, applicationInputs, applicationOutputs));
-            System.out.println("Add Application Interface Id " + addApplicationInterfaceId);
-
-        } catch (TException e) {
-            e.printStackTrace();
-        }
-    }
-
-    public void registerMultiplyApplicationInterface() {
-        try {
-            System.out.println("#### Registering Multiply Application Interface #### \n");
-
-            List<String> appModules = new ArrayList<String>();
-            appModules.add(multiplyModuleId);
-
-            InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("x", "4",
-                    DataType.STRING, null, false, "Multiply operation input_1", null);
-            InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("y", "5",
-                    DataType.STRING, null, false, "Multiply operation input_2", null);
-
-            List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
-            applicationInputs.add(input1);
-            applicationInputs.add(input2);
-
-            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Result",
-                    "0", DataType.STRING);
-
-            List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
-            applicationOutputs.add(output1);
-
-            String multiplyApplicationInterfaceId = airavataClient.registerApplicationInterface(
-                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("Multiply", "Multiply two numbers",
-                            appModules, applicationInputs, applicationOutputs));
-            System.out.println("Multiply Application Interface Id " + multiplyApplicationInterfaceId);
-
-        } catch (TException e) {
-            e.printStackTrace();
-        }
-    }
-
-    public void registerSubtractApplicationInterface() {
-        try {
-            System.out.println("#### Registering Subtract Application Interface #### \n");
-
-            List<String> appModules = new ArrayList<String>();
-            appModules.add(subtractModuleId);
-
-            InputDataObjectType input1 = RegisterSampleApplicationsUtils.createAppInput("x", "6",
-                    DataType.STRING, null, false, "Subtract operation input_1", null);
-            InputDataObjectType input2 = RegisterSampleApplicationsUtils.createAppInput("y", "7",
-                    DataType.STRING, null, false, "Subtract operation input_2", null);
-
-            List<InputDataObjectType> applicationInputs = new ArrayList<InputDataObjectType>();
-            applicationInputs.add(input1);
-            applicationInputs.add(input2);
-
-            OutputDataObjectType output1 = RegisterSampleApplicationsUtils.createAppOutput("Result",
-                    "0", DataType.STRING);
-
-            List<OutputDataObjectType> applicationOutputs = new ArrayList<OutputDataObjectType>();
-            applicationOutputs.add(output1);
-
-            String subtractApplicationInterfaceId = airavataClient.registerApplicationInterface(
-                    RegisterSampleApplicationsUtils.createApplicationInterfaceDescription("Subtract", "Subtract two numbers",
-                            appModules, applicationInputs, applicationOutputs));
-            System.out.println("Subtract Application Interface Id " + subtractApplicationInterfaceId);
-
-        } catch (TException e) {
-            e.printStackTrace();
-        }
-    }
-}


[2/3] airavata git commit: Removed DataObjectType thift struct from experimentModel and replace it with Input and Output DataObjectType define in applicationInterfaceModel thrift file

Posted by sh...@apache.org.
Removed DataObjectType thift struct from experimentModel and replace it with Input and Output DataObjectType define in applicationInterfaceModel thrift file


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

Branch: refs/heads/gfac_appcatalog_int
Commit: 198de990384ca3b3974222f22847d2a431fdd686
Parents: 95354ea
Author: shamrath <sh...@gmail.com>
Authored: Thu Nov 6 15:47:57 2014 -0500
Committer: shamrath <sh...@gmail.com>
Committed: Thu Nov 6 15:47:57 2014 -0500

----------------------------------------------------------------------
 .../java/org/apache/airavata/api/Airavata.java  |  58 +--
 .../main/resources/lib/airavata/Airavata.cpp    |   6 +-
 .../src/main/resources/lib/airavata/Airavata.h  |  16 +-
 .../lib/airavata/Airavata_server.skeleton.cpp   |   2 +-
 .../lib/airavata/experimentModel_types.cpp      | 521 +++++++------------
 .../lib/airavata/experimentModel_types.h        | 124 +----
 .../lib/airavata/messagingEvents_types.cpp      |   6 +-
 .../lib/airavata/messagingEvents_types.h        |   9 +-
 .../resources/lib/Airavata/API/Airavata.php     |   4 +-
 .../Airavata/Model/Messaging/Event/Types.php    |   4 +-
 .../Model/Workspace/Experiment/Types.php        | 171 +-----
 .../client/samples/CreateLaunchExperiment.java  |   2 +-
 .../CreateLaunchExperimentForLocalhost.java     | 269 ++++++++++
 .../messaging/event/TaskOutputChangeEvent.java  |  40 +-
 .../model/workspace/experiment/Experiment.java  |  76 +--
 .../model/workspace/experiment/JobDetails.java  |  11 +-
 .../model/workspace/experiment/TaskDetails.java |  76 +--
 .../experiment/WorkflowNodeDetails.java         |  76 +--
 .../airavataAPI.thrift                          |   2 +-
 .../experimentModel.thrift                      |  32 +-
 .../messagingEvents.thrift                      |   3 +-
 21 files changed, 699 insertions(+), 809 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index 720173c..d6f2c44 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -358,7 +358,7 @@ import org.slf4j.LoggerFactory;
 
     public org.apache.airavata.model.workspace.experiment.ExperimentStatus getExperimentStatus(String airavataExperimentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
-    public List<org.apache.airavata.model.workspace.experiment.DataObjectType> getExperimentOutputs(String airavataExperimentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
+    public List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getExperimentOutputs(String airavataExperimentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
     public Map<String,org.apache.airavata.model.workspace.experiment.JobStatus> getJobStatuses(String airavataExperimentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException;
 
@@ -2335,7 +2335,7 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getExperimentStatus failed: unknown result");
     }
 
-    public List<org.apache.airavata.model.workspace.experiment.DataObjectType> getExperimentOutputs(String airavataExperimentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getExperimentOutputs(String airavataExperimentId) throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       send_getExperimentOutputs(airavataExperimentId);
       return recv_getExperimentOutputs();
@@ -2348,7 +2348,7 @@ import org.slf4j.LoggerFactory;
       sendBase("getExperimentOutputs", args);
     }
 
-    public List<org.apache.airavata.model.workspace.experiment.DataObjectType> recv_getExperimentOutputs() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
+    public List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> recv_getExperimentOutputs() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException
     {
       getExperimentOutputs_result result = new getExperimentOutputs_result();
       receiveBase(result, "getExperimentOutputs");
@@ -5622,7 +5622,7 @@ import org.slf4j.LoggerFactory;
         prot.writeMessageEnd();
       }
 
-      public List<org.apache.airavata.model.workspace.experiment.DataObjectType> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
+      public List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getResult() throws org.apache.airavata.model.error.InvalidRequestException, org.apache.airavata.model.error.ExperimentNotFoundException, org.apache.airavata.model.error.AiravataClientException, org.apache.airavata.model.error.AiravataSystemException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -12695,7 +12695,7 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public static class getExperimentOutputs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getExperimentOutputs_args, List<org.apache.airavata.model.workspace.experiment.DataObjectType>> {
+    public static class getExperimentOutputs<I extends AsyncIface> extends org.apache.thrift.AsyncProcessFunction<I, getExperimentOutputs_args, List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>> {
       public getExperimentOutputs() {
         super("getExperimentOutputs");
       }
@@ -12704,10 +12704,10 @@ import org.slf4j.LoggerFactory;
         return new getExperimentOutputs_args();
       }
 
-      public AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.DataObjectType>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
+      public AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>> getResultHandler(final AsyncFrameBuffer fb, final int seqid) {
         final org.apache.thrift.AsyncProcessFunction fcall = this;
-        return new AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.DataObjectType>>() { 
-          public void onComplete(List<org.apache.airavata.model.workspace.experiment.DataObjectType> o) {
+        return new AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>>() { 
+          public void onComplete(List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> o) {
             getExperimentOutputs_result result = new getExperimentOutputs_result();
             result.success = o;
             try {
@@ -12762,7 +12762,7 @@ import org.slf4j.LoggerFactory;
         return false;
       }
 
-      public void start(I iface, getExperimentOutputs_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.workspace.experiment.DataObjectType>> resultHandler) throws TException {
+      public void start(I iface, getExperimentOutputs_args args, org.apache.thrift.async.AsyncMethodCallback<List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>> resultHandler) throws TException {
         iface.getExperimentOutputs(args.airavataExperimentId,resultHandler);
       }
     }
@@ -41960,7 +41960,7 @@ import org.slf4j.LoggerFactory;
       schemes.put(TupleScheme.class, new getExperimentOutputs_resultTupleSchemeFactory());
     }
 
-    public List<org.apache.airavata.model.workspace.experiment.DataObjectType> success; // required
+    public List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> success; // required
     public org.apache.airavata.model.error.InvalidRequestException ire; // required
     public org.apache.airavata.model.error.ExperimentNotFoundException enf; // required
     public org.apache.airavata.model.error.AiravataClientException ace; // required
@@ -42042,7 +42042,7 @@ import org.slf4j.LoggerFactory;
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.workspace.experiment.DataObjectType.class))));
+              new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType.class))));
       tmpMap.put(_Fields.IRE, new org.apache.thrift.meta_data.FieldMetaData("ire", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       tmpMap.put(_Fields.ENF, new org.apache.thrift.meta_data.FieldMetaData("enf", org.apache.thrift.TFieldRequirementType.DEFAULT, 
@@ -42059,7 +42059,7 @@ import org.slf4j.LoggerFactory;
     }
 
     public getExperimentOutputs_result(
-      List<org.apache.airavata.model.workspace.experiment.DataObjectType> success,
+      List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> success,
       org.apache.airavata.model.error.InvalidRequestException ire,
       org.apache.airavata.model.error.ExperimentNotFoundException enf,
       org.apache.airavata.model.error.AiravataClientException ace,
@@ -42078,9 +42078,9 @@ import org.slf4j.LoggerFactory;
      */
     public getExperimentOutputs_result(getExperimentOutputs_result other) {
       if (other.isSetSuccess()) {
-        List<org.apache.airavata.model.workspace.experiment.DataObjectType> __this__success = new ArrayList<org.apache.airavata.model.workspace.experiment.DataObjectType>(other.success.size());
-        for (org.apache.airavata.model.workspace.experiment.DataObjectType other_element : other.success) {
-          __this__success.add(new org.apache.airavata.model.workspace.experiment.DataObjectType(other_element));
+        List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> __this__success = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>(other.success.size());
+        for (org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType other_element : other.success) {
+          __this__success.add(new org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType(other_element));
         }
         this.success = __this__success;
       }
@@ -42115,22 +42115,22 @@ import org.slf4j.LoggerFactory;
       return (this.success == null) ? 0 : this.success.size();
     }
 
-    public java.util.Iterator<org.apache.airavata.model.workspace.experiment.DataObjectType> getSuccessIterator() {
+    public java.util.Iterator<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getSuccessIterator() {
       return (this.success == null) ? null : this.success.iterator();
     }
 
-    public void addToSuccess(org.apache.airavata.model.workspace.experiment.DataObjectType elem) {
+    public void addToSuccess(org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType elem) {
       if (this.success == null) {
-        this.success = new ArrayList<org.apache.airavata.model.workspace.experiment.DataObjectType>();
+        this.success = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>();
       }
       this.success.add(elem);
     }
 
-    public List<org.apache.airavata.model.workspace.experiment.DataObjectType> getSuccess() {
+    public List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> getSuccess() {
       return this.success;
     }
 
-    public getExperimentOutputs_result setSuccess(List<org.apache.airavata.model.workspace.experiment.DataObjectType> success) {
+    public getExperimentOutputs_result setSuccess(List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType> success) {
       this.success = success;
       return this;
     }
@@ -42252,7 +42252,7 @@ import org.slf4j.LoggerFactory;
         if (value == null) {
           unsetSuccess();
         } else {
-          setSuccess((List<org.apache.airavata.model.workspace.experiment.DataObjectType>)value);
+          setSuccess((List<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>)value);
         }
         break;
 
@@ -42563,11 +42563,11 @@ import org.slf4j.LoggerFactory;
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
                   org.apache.thrift.protocol.TList _list80 = iprot.readListBegin();
-                  struct.success = new ArrayList<org.apache.airavata.model.workspace.experiment.DataObjectType>(_list80.size);
+                  struct.success = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>(_list80.size);
                   for (int _i81 = 0; _i81 < _list80.size; ++_i81)
                   {
-                    org.apache.airavata.model.workspace.experiment.DataObjectType _elem82;
-                    _elem82 = new org.apache.airavata.model.workspace.experiment.DataObjectType();
+                    org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _elem82;
+                    _elem82 = new org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType();
                     _elem82.read(iprot);
                     struct.success.add(_elem82);
                   }
@@ -42633,7 +42633,7 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(SUCCESS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.success.size()));
-            for (org.apache.airavata.model.workspace.experiment.DataObjectType _iter83 : struct.success)
+            for (org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _iter83 : struct.success)
             {
               _iter83.write(oprot);
             }
@@ -42698,7 +42698,7 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetSuccess()) {
           {
             oprot.writeI32(struct.success.size());
-            for (org.apache.airavata.model.workspace.experiment.DataObjectType _iter84 : struct.success)
+            for (org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _iter84 : struct.success)
             {
               _iter84.write(oprot);
             }
@@ -42725,11 +42725,11 @@ import org.slf4j.LoggerFactory;
         if (incoming.get(0)) {
           {
             org.apache.thrift.protocol.TList _list85 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.success = new ArrayList<org.apache.airavata.model.workspace.experiment.DataObjectType>(_list85.size);
+            struct.success = new ArrayList<org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType>(_list85.size);
             for (int _i86 = 0; _i86 < _list85.size; ++_i86)
             {
-              org.apache.airavata.model.workspace.experiment.DataObjectType _elem87;
-              _elem87 = new org.apache.airavata.model.workspace.experiment.DataObjectType();
+              org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType _elem87;
+              _elem87 = new org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType();
               _elem87.read(iprot);
               struct.success.add(_elem87);
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
index 063c4c6..59d72e5 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.cpp
@@ -5621,7 +5621,7 @@ uint32_t Airavata_getExperimentOutputs_result::write(::apache::thrift::protocol:
     xfer += oprot->writeFieldBegin("success", ::apache::thrift::protocol::T_LIST, 0);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->success.size()));
-      std::vector< ::apache::airavata::model::workspace::experiment::DataObjectType> ::const_iterator _iter116;
+      std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> ::const_iterator _iter116;
       for (_iter116 = this->success.begin(); _iter116 != this->success.end(); ++_iter116)
       {
         xfer += (*_iter116).write(oprot);
@@ -25467,7 +25467,7 @@ void AiravataClient::recv_getExperimentStatus( ::apache::airavata::model::worksp
   throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getExperimentStatus failed: unknown result");
 }
 
-void AiravataClient::getExperimentOutputs(std::vector< ::apache::airavata::model::workspace::experiment::DataObjectType> & _return, const std::string& airavataExperimentId)
+void AiravataClient::getExperimentOutputs(std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> & _return, const std::string& airavataExperimentId)
 {
   send_getExperimentOutputs(airavataExperimentId);
   recv_getExperimentOutputs(_return);
@@ -25487,7 +25487,7 @@ void AiravataClient::send_getExperimentOutputs(const std::string& airavataExperi
   oprot_->getTransport()->flush();
 }
 
-void AiravataClient::recv_getExperimentOutputs(std::vector< ::apache::airavata::model::workspace::experiment::DataObjectType> & _return)
+void AiravataClient::recv_getExperimentOutputs(std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> & _return)
 {
 
   int32_t rseqid = 0;

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
index b68d927..31e2d25 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata.h
@@ -54,7 +54,7 @@ class AiravataIf {
   virtual bool validateExperiment(const std::string& airavataExperimentId) = 0;
   virtual void launchExperiment(const std::string& airavataExperimentId, const std::string& airavataCredStoreToken) = 0;
   virtual void getExperimentStatus( ::apache::airavata::model::workspace::experiment::ExperimentStatus& _return, const std::string& airavataExperimentId) = 0;
-  virtual void getExperimentOutputs(std::vector< ::apache::airavata::model::workspace::experiment::DataObjectType> & _return, const std::string& airavataExperimentId) = 0;
+  virtual void getExperimentOutputs(std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> & _return, const std::string& airavataExperimentId) = 0;
   virtual void getJobStatuses(std::map<std::string,  ::apache::airavata::model::workspace::experiment::JobStatus> & _return, const std::string& airavataExperimentId) = 0;
   virtual void getJobDetails(std::vector< ::apache::airavata::model::workspace::experiment::JobDetails> & _return, const std::string& airavataExperimentId) = 0;
   virtual void getDataTransferDetails(std::vector< ::apache::airavata::model::workspace::experiment::DataTransferDetails> & _return, const std::string& airavataExperimentId) = 0;
@@ -227,7 +227,7 @@ class AiravataNull : virtual public AiravataIf {
   void getExperimentStatus( ::apache::airavata::model::workspace::experiment::ExperimentStatus& /* _return */, const std::string& /* airavataExperimentId */) {
     return;
   }
-  void getExperimentOutputs(std::vector< ::apache::airavata::model::workspace::experiment::DataObjectType> & /* _return */, const std::string& /* airavataExperimentId */) {
+  void getExperimentOutputs(std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> & /* _return */, const std::string& /* airavataExperimentId */) {
     return;
   }
   void getJobStatuses(std::map<std::string,  ::apache::airavata::model::workspace::experiment::JobStatus> & /* _return */, const std::string& /* airavataExperimentId */) {
@@ -3511,7 +3511,7 @@ class Airavata_getExperimentOutputs_result {
 
   virtual ~Airavata_getExperimentOutputs_result() throw() {}
 
-  std::vector< ::apache::airavata::model::workspace::experiment::DataObjectType>  success;
+  std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType>  success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::ExperimentNotFoundException enf;
    ::apache::airavata::api::error::AiravataClientException ace;
@@ -3519,7 +3519,7 @@ class Airavata_getExperimentOutputs_result {
 
   _Airavata_getExperimentOutputs_result__isset __isset;
 
-  void __set_success(const std::vector< ::apache::airavata::model::workspace::experiment::DataObjectType> & val) {
+  void __set_success(const std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> & val) {
     success = val;
   }
 
@@ -3579,7 +3579,7 @@ class Airavata_getExperimentOutputs_presult {
 
   virtual ~Airavata_getExperimentOutputs_presult() throw() {}
 
-  std::vector< ::apache::airavata::model::workspace::experiment::DataObjectType> * success;
+  std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> * success;
    ::apache::airavata::api::error::InvalidRequestException ire;
    ::apache::airavata::api::error::ExperimentNotFoundException enf;
    ::apache::airavata::api::error::AiravataClientException ace;
@@ -14014,9 +14014,9 @@ class AiravataClient : virtual public AiravataIf {
   void getExperimentStatus( ::apache::airavata::model::workspace::experiment::ExperimentStatus& _return, const std::string& airavataExperimentId);
   void send_getExperimentStatus(const std::string& airavataExperimentId);
   void recv_getExperimentStatus( ::apache::airavata::model::workspace::experiment::ExperimentStatus& _return);
-  void getExperimentOutputs(std::vector< ::apache::airavata::model::workspace::experiment::DataObjectType> & _return, const std::string& airavataExperimentId);
+  void getExperimentOutputs(std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> & _return, const std::string& airavataExperimentId);
   void send_getExperimentOutputs(const std::string& airavataExperimentId);
-  void recv_getExperimentOutputs(std::vector< ::apache::airavata::model::workspace::experiment::DataObjectType> & _return);
+  void recv_getExperimentOutputs(std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> & _return);
   void getJobStatuses(std::map<std::string,  ::apache::airavata::model::workspace::experiment::JobStatus> & _return, const std::string& airavataExperimentId);
   void send_getJobStatuses(const std::string& airavataExperimentId);
   void recv_getJobStatuses(std::map<std::string,  ::apache::airavata::model::workspace::experiment::JobStatus> & _return);
@@ -14703,7 +14703,7 @@ class AiravataMultiface : virtual public AiravataIf {
     return;
   }
 
-  void getExperimentOutputs(std::vector< ::apache::airavata::model::workspace::experiment::DataObjectType> & _return, const std::string& airavataExperimentId) {
+  void getExperimentOutputs(std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> & _return, const std::string& airavataExperimentId) {
     size_t sz = ifaces_.size();
     size_t i = 0;
     for (; i < (sz - 1); ++i) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
index ce06c45..1dc8277 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/Airavata_server.skeleton.cpp
@@ -149,7 +149,7 @@ class AiravataHandler : virtual public AiravataIf {
     printf("getExperimentStatus\n");
   }
 
-  void getExperimentOutputs(std::vector< ::apache::airavata::model::workspace::experiment::DataObjectType> & _return, const std::string& airavataExperimentId) {
+  void getExperimentOutputs(std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> & _return, const std::string& airavataExperimentId) {
     // Your implementation goes here
     printf("getExperimentOutputs\n");
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
index fdf070d..18a2674 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.cpp
@@ -221,22 +221,6 @@ const char* _kCorrectiveActionNames[] = {
 };
 const std::map<int, const char*> _CorrectiveAction_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(3, _kCorrectiveActionValues, _kCorrectiveActionNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
 
-int _kDataTypeValues[] = {
-  DataType::STRING,
-  DataType::INTEGER,
-  DataType::URI,
-  DataType::STDOUT,
-  DataType::STDERR
-};
-const char* _kDataTypeNames[] = {
-  "STRING",
-  "INTEGER",
-  "URI",
-  "STDOUT",
-  "STDERR"
-};
-const std::map<int, const char*> _DataType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(5, _kDataTypeValues, _kDataTypeNames), ::apache::thrift::TEnumIterator(-1, NULL, NULL));
-
 int _kExecutionUnitValues[] = {
   ExecutionUnit::INPUT,
   ExecutionUnit::APPLICATION,
@@ -735,115 +719,6 @@ void swap(ApplicationStatus &a, ApplicationStatus &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* DataObjectType::ascii_fingerprint = "544FBB8031AE070AEEB7AC0E4A90E43C";
-const uint8_t DataObjectType::binary_fingerprint[16] = {0x54,0x4F,0xBB,0x80,0x31,0xAE,0x07,0x0A,0xEE,0xB7,0xAC,0x0E,0x4A,0x90,0xE4,0x3C};
-
-uint32_t DataObjectType::read(::apache::thrift::protocol::TProtocol* iprot) {
-
-  uint32_t xfer = 0;
-  std::string fname;
-  ::apache::thrift::protocol::TType ftype;
-  int16_t fid;
-
-  xfer += iprot->readStructBegin(fname);
-
-  using ::apache::thrift::protocol::TProtocolException;
-
-  bool isset_key = false;
-
-  while (true)
-  {
-    xfer += iprot->readFieldBegin(fname, ftype, fid);
-    if (ftype == ::apache::thrift::protocol::T_STOP) {
-      break;
-    }
-    switch (fid)
-    {
-      case 1:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->key);
-          isset_key = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 2:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->value);
-          this->__isset.value = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 3:
-        if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast5;
-          xfer += iprot->readI32(ecast5);
-          this->type = (DataType::type)ecast5;
-          this->__isset.type = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      case 4:
-        if (ftype == ::apache::thrift::protocol::T_STRING) {
-          xfer += iprot->readString(this->metaData);
-          this->__isset.metaData = true;
-        } else {
-          xfer += iprot->skip(ftype);
-        }
-        break;
-      default:
-        xfer += iprot->skip(ftype);
-        break;
-    }
-    xfer += iprot->readFieldEnd();
-  }
-
-  xfer += iprot->readStructEnd();
-
-  if (!isset_key)
-    throw TProtocolException(TProtocolException::INVALID_DATA);
-  return xfer;
-}
-
-uint32_t DataObjectType::write(::apache::thrift::protocol::TProtocol* oprot) const {
-  uint32_t xfer = 0;
-  xfer += oprot->writeStructBegin("DataObjectType");
-
-  xfer += oprot->writeFieldBegin("key", ::apache::thrift::protocol::T_STRING, 1);
-  xfer += oprot->writeString(this->key);
-  xfer += oprot->writeFieldEnd();
-
-  if (this->__isset.value) {
-    xfer += oprot->writeFieldBegin("value", ::apache::thrift::protocol::T_STRING, 2);
-    xfer += oprot->writeString(this->value);
-    xfer += oprot->writeFieldEnd();
-  }
-  if (this->__isset.type) {
-    xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_I32, 3);
-    xfer += oprot->writeI32((int32_t)this->type);
-    xfer += oprot->writeFieldEnd();
-  }
-  if (this->__isset.metaData) {
-    xfer += oprot->writeFieldBegin("metaData", ::apache::thrift::protocol::T_STRING, 4);
-    xfer += oprot->writeString(this->metaData);
-    xfer += oprot->writeFieldEnd();
-  }
-  xfer += oprot->writeFieldStop();
-  xfer += oprot->writeStructEnd();
-  return xfer;
-}
-
-void swap(DataObjectType &a, DataObjectType &b) {
-  using ::std::swap;
-  swap(a.key, b.key);
-  swap(a.value, b.value);
-  swap(a.type, b.type);
-  swap(a.metaData, b.metaData);
-  swap(a.__isset, b.__isset);
-}
-
 const char* ComputationalResourceScheduling::ascii_fingerprint = "32AC7AC41AD3753A7224A32FD6EB4B5D";
 const uint8_t ComputationalResourceScheduling::binary_fingerprint[16] = {0x32,0xAC,0x7A,0xC4,0x1A,0xD3,0x75,0x3A,0x72,0x24,0xA3,0x2F,0xD6,0xEB,0x4B,0x5D};
 
@@ -1529,9 +1404,9 @@ uint32_t ErrorDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 5:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast6;
-          xfer += iprot->readI32(ecast6);
-          this->errorCategory = (ErrorCategory::type)ecast6;
+          int32_t ecast5;
+          xfer += iprot->readI32(ecast5);
+          this->errorCategory = (ErrorCategory::type)ecast5;
           this->__isset.errorCategory = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1547,9 +1422,9 @@ uint32_t ErrorDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 7:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast7;
-          xfer += iprot->readI32(ecast7);
-          this->correctiveAction = (CorrectiveAction::type)ecast7;
+          int32_t ecast6;
+          xfer += iprot->readI32(ecast6);
+          this->correctiveAction = (CorrectiveAction::type)ecast6;
           this->__isset.correctiveAction = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1557,9 +1432,9 @@ uint32_t ErrorDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
         break;
       case 8:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast8;
-          xfer += iprot->readI32(ecast8);
-          this->actionableGroup = (ActionableGroup::type)ecast8;
+          int32_t ecast7;
+          xfer += iprot->readI32(ecast7);
+          this->actionableGroup = (ActionableGroup::type)ecast7;
           this->__isset.actionableGroup = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -1569,14 +1444,14 @@ uint32_t ErrorDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->rootCauseErrorIdList.clear();
-            uint32_t _size9;
-            ::apache::thrift::protocol::TType _etype12;
-            xfer += iprot->readListBegin(_etype12, _size9);
-            this->rootCauseErrorIdList.resize(_size9);
-            uint32_t _i13;
-            for (_i13 = 0; _i13 < _size9; ++_i13)
+            uint32_t _size8;
+            ::apache::thrift::protocol::TType _etype11;
+            xfer += iprot->readListBegin(_etype11, _size8);
+            this->rootCauseErrorIdList.resize(_size8);
+            uint32_t _i12;
+            for (_i12 = 0; _i12 < _size8; ++_i12)
             {
-              xfer += iprot->readString(this->rootCauseErrorIdList[_i13]);
+              xfer += iprot->readString(this->rootCauseErrorIdList[_i12]);
             }
             xfer += iprot->readListEnd();
           }
@@ -1646,10 +1521,10 @@ uint32_t ErrorDetails::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldBegin("rootCauseErrorIdList", ::apache::thrift::protocol::T_LIST, 9);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->rootCauseErrorIdList.size()));
-      std::vector<std::string> ::const_iterator _iter14;
-      for (_iter14 = this->rootCauseErrorIdList.begin(); _iter14 != this->rootCauseErrorIdList.end(); ++_iter14)
+      std::vector<std::string> ::const_iterator _iter13;
+      for (_iter13 = this->rootCauseErrorIdList.begin(); _iter13 != this->rootCauseErrorIdList.end(); ++_iter13)
       {
-        xfer += oprot->writeString((*_iter14));
+        xfer += oprot->writeString((*_iter13));
       }
       xfer += oprot->writeListEnd();
     }
@@ -1743,14 +1618,14 @@ uint32_t JobDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->errors.clear();
-            uint32_t _size15;
-            ::apache::thrift::protocol::TType _etype18;
-            xfer += iprot->readListBegin(_etype18, _size15);
-            this->errors.resize(_size15);
-            uint32_t _i19;
-            for (_i19 = 0; _i19 < _size15; ++_i19)
+            uint32_t _size14;
+            ::apache::thrift::protocol::TType _etype17;
+            xfer += iprot->readListBegin(_etype17, _size14);
+            this->errors.resize(_size14);
+            uint32_t _i18;
+            for (_i18 = 0; _i18 < _size14; ++_i18)
             {
-              xfer += this->errors[_i19].read(iprot);
+              xfer += this->errors[_i18].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -1822,10 +1697,10 @@ uint32_t JobDetails::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeFieldBegin("errors", ::apache::thrift::protocol::T_LIST, 6);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->errors.size()));
-      std::vector<ErrorDetails> ::const_iterator _iter20;
-      for (_iter20 = this->errors.begin(); _iter20 != this->errors.end(); ++_iter20)
+      std::vector<ErrorDetails> ::const_iterator _iter19;
+      for (_iter19 = this->errors.begin(); _iter19 != this->errors.end(); ++_iter19)
       {
-        xfer += (*_iter20).write(oprot);
+        xfer += (*_iter19).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -1968,8 +1843,8 @@ void swap(DataTransferDetails &a, DataTransferDetails &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* TaskDetails::ascii_fingerprint = "5329C387E7633AF234038F8461F51097";
-const uint8_t TaskDetails::binary_fingerprint[16] = {0x53,0x29,0xC3,0x87,0xE7,0x63,0x3A,0xF2,0x34,0x03,0x8F,0x84,0x61,0xF5,0x10,0x97};
+const char* TaskDetails::ascii_fingerprint = "C0E50EB91BEBDC23A45D03BFD2BD630A";
+const uint8_t TaskDetails::binary_fingerprint[16] = {0xC0,0xE5,0x0E,0xB9,0x1B,0xEB,0xDC,0x23,0xA4,0x5D,0x03,0xBF,0xD2,0xBD,0x63,0x0A};
 
 uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -2036,14 +1911,14 @@ uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->applicationInputs.clear();
-            uint32_t _size21;
-            ::apache::thrift::protocol::TType _etype24;
-            xfer += iprot->readListBegin(_etype24, _size21);
-            this->applicationInputs.resize(_size21);
-            uint32_t _i25;
-            for (_i25 = 0; _i25 < _size21; ++_i25)
+            uint32_t _size20;
+            ::apache::thrift::protocol::TType _etype23;
+            xfer += iprot->readListBegin(_etype23, _size20);
+            this->applicationInputs.resize(_size20);
+            uint32_t _i24;
+            for (_i24 = 0; _i24 < _size20; ++_i24)
             {
-              xfer += this->applicationInputs[_i25].read(iprot);
+              xfer += this->applicationInputs[_i24].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2056,14 +1931,14 @@ uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->applicationOutputs.clear();
-            uint32_t _size26;
-            ::apache::thrift::protocol::TType _etype29;
-            xfer += iprot->readListBegin(_etype29, _size26);
-            this->applicationOutputs.resize(_size26);
-            uint32_t _i30;
-            for (_i30 = 0; _i30 < _size26; ++_i30)
+            uint32_t _size25;
+            ::apache::thrift::protocol::TType _etype28;
+            xfer += iprot->readListBegin(_etype28, _size25);
+            this->applicationOutputs.resize(_size25);
+            uint32_t _i29;
+            for (_i29 = 0; _i29 < _size25; ++_i29)
             {
-              xfer += this->applicationOutputs[_i30].read(iprot);
+              xfer += this->applicationOutputs[_i29].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2108,14 +1983,14 @@ uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->jobDetailsList.clear();
-            uint32_t _size31;
-            ::apache::thrift::protocol::TType _etype34;
-            xfer += iprot->readListBegin(_etype34, _size31);
-            this->jobDetailsList.resize(_size31);
-            uint32_t _i35;
-            for (_i35 = 0; _i35 < _size31; ++_i35)
+            uint32_t _size30;
+            ::apache::thrift::protocol::TType _etype33;
+            xfer += iprot->readListBegin(_etype33, _size30);
+            this->jobDetailsList.resize(_size30);
+            uint32_t _i34;
+            for (_i34 = 0; _i34 < _size30; ++_i34)
             {
-              xfer += this->jobDetailsList[_i35].read(iprot);
+              xfer += this->jobDetailsList[_i34].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2128,14 +2003,14 @@ uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->dataTransferDetailsList.clear();
-            uint32_t _size36;
-            ::apache::thrift::protocol::TType _etype39;
-            xfer += iprot->readListBegin(_etype39, _size36);
-            this->dataTransferDetailsList.resize(_size36);
-            uint32_t _i40;
-            for (_i40 = 0; _i40 < _size36; ++_i40)
+            uint32_t _size35;
+            ::apache::thrift::protocol::TType _etype38;
+            xfer += iprot->readListBegin(_etype38, _size35);
+            this->dataTransferDetailsList.resize(_size35);
+            uint32_t _i39;
+            for (_i39 = 0; _i39 < _size35; ++_i39)
             {
-              xfer += this->dataTransferDetailsList[_i40].read(iprot);
+              xfer += this->dataTransferDetailsList[_i39].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2148,14 +2023,14 @@ uint32_t TaskDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->errors.clear();
-            uint32_t _size41;
-            ::apache::thrift::protocol::TType _etype44;
-            xfer += iprot->readListBegin(_etype44, _size41);
-            this->errors.resize(_size41);
-            uint32_t _i45;
-            for (_i45 = 0; _i45 < _size41; ++_i45)
+            uint32_t _size40;
+            ::apache::thrift::protocol::TType _etype43;
+            xfer += iprot->readListBegin(_etype43, _size40);
+            this->errors.resize(_size40);
+            uint32_t _i44;
+            for (_i44 = 0; _i44 < _size40; ++_i44)
             {
-              xfer += this->errors[_i45].read(iprot);
+              xfer += this->errors[_i44].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2210,10 +2085,10 @@ uint32_t TaskDetails::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldBegin("applicationInputs", ::apache::thrift::protocol::T_LIST, 6);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->applicationInputs.size()));
-      std::vector<DataObjectType> ::const_iterator _iter46;
-      for (_iter46 = this->applicationInputs.begin(); _iter46 != this->applicationInputs.end(); ++_iter46)
+      std::vector< ::apache::airavata::model::appcatalog::appinterface::InputDataObjectType> ::const_iterator _iter45;
+      for (_iter45 = this->applicationInputs.begin(); _iter45 != this->applicationInputs.end(); ++_iter45)
       {
-        xfer += (*_iter46).write(oprot);
+        xfer += (*_iter45).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2223,10 +2098,10 @@ uint32_t TaskDetails::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldBegin("applicationOutputs", ::apache::thrift::protocol::T_LIST, 7);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->applicationOutputs.size()));
-      std::vector<DataObjectType> ::const_iterator _iter47;
-      for (_iter47 = this->applicationOutputs.begin(); _iter47 != this->applicationOutputs.end(); ++_iter47)
+      std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> ::const_iterator _iter46;
+      for (_iter46 = this->applicationOutputs.begin(); _iter46 != this->applicationOutputs.end(); ++_iter46)
       {
-        xfer += (*_iter47).write(oprot);
+        xfer += (*_iter46).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2256,10 +2131,10 @@ uint32_t TaskDetails::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldBegin("jobDetailsList", ::apache::thrift::protocol::T_LIST, 12);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->jobDetailsList.size()));
-      std::vector<JobDetails> ::const_iterator _iter48;
-      for (_iter48 = this->jobDetailsList.begin(); _iter48 != this->jobDetailsList.end(); ++_iter48)
+      std::vector<JobDetails> ::const_iterator _iter47;
+      for (_iter47 = this->jobDetailsList.begin(); _iter47 != this->jobDetailsList.end(); ++_iter47)
       {
-        xfer += (*_iter48).write(oprot);
+        xfer += (*_iter47).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2269,10 +2144,10 @@ uint32_t TaskDetails::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldBegin("dataTransferDetailsList", ::apache::thrift::protocol::T_LIST, 13);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->dataTransferDetailsList.size()));
-      std::vector<DataTransferDetails> ::const_iterator _iter49;
-      for (_iter49 = this->dataTransferDetailsList.begin(); _iter49 != this->dataTransferDetailsList.end(); ++_iter49)
+      std::vector<DataTransferDetails> ::const_iterator _iter48;
+      for (_iter48 = this->dataTransferDetailsList.begin(); _iter48 != this->dataTransferDetailsList.end(); ++_iter48)
       {
-        xfer += (*_iter49).write(oprot);
+        xfer += (*_iter48).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2282,10 +2157,10 @@ uint32_t TaskDetails::write(::apache::thrift::protocol::TProtocol* oprot) const
     xfer += oprot->writeFieldBegin("errors", ::apache::thrift::protocol::T_LIST, 14);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->errors.size()));
-      std::vector<ErrorDetails> ::const_iterator _iter50;
-      for (_iter50 = this->errors.begin(); _iter50 != this->errors.end(); ++_iter50)
+      std::vector<ErrorDetails> ::const_iterator _iter49;
+      for (_iter49 = this->errors.begin(); _iter49 != this->errors.end(); ++_iter49)
       {
-        xfer += (*_iter50).write(oprot);
+        xfer += (*_iter49).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2315,8 +2190,8 @@ void swap(TaskDetails &a, TaskDetails &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* WorkflowNodeDetails::ascii_fingerprint = "6ABC52FB94DCEC8D6AA3F1F3188E2691";
-const uint8_t WorkflowNodeDetails::binary_fingerprint[16] = {0x6A,0xBC,0x52,0xFB,0x94,0xDC,0xEC,0x8D,0x6A,0xA3,0xF1,0xF3,0x18,0x8E,0x26,0x91};
+const char* WorkflowNodeDetails::ascii_fingerprint = "F9600D5A8E84EAF65A64E38C18DFACAE";
+const uint8_t WorkflowNodeDetails::binary_fingerprint[16] = {0xF9,0x60,0x0D,0x5A,0x8E,0x84,0xEA,0xF6,0x5A,0x64,0xE3,0x8C,0x18,0xDF,0xAC,0xAE};
 
 uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -2367,9 +2242,9 @@ uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot)
         break;
       case 4:
         if (ftype == ::apache::thrift::protocol::T_I32) {
-          int32_t ecast51;
-          xfer += iprot->readI32(ecast51);
-          this->executionUnit = (ExecutionUnit::type)ecast51;
+          int32_t ecast50;
+          xfer += iprot->readI32(ecast50);
+          this->executionUnit = (ExecutionUnit::type)ecast50;
           isset_executionUnit = true;
         } else {
           xfer += iprot->skip(ftype);
@@ -2387,14 +2262,14 @@ uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot)
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->nodeInputs.clear();
-            uint32_t _size52;
-            ::apache::thrift::protocol::TType _etype55;
-            xfer += iprot->readListBegin(_etype55, _size52);
-            this->nodeInputs.resize(_size52);
-            uint32_t _i56;
-            for (_i56 = 0; _i56 < _size52; ++_i56)
+            uint32_t _size51;
+            ::apache::thrift::protocol::TType _etype54;
+            xfer += iprot->readListBegin(_etype54, _size51);
+            this->nodeInputs.resize(_size51);
+            uint32_t _i55;
+            for (_i55 = 0; _i55 < _size51; ++_i55)
             {
-              xfer += this->nodeInputs[_i56].read(iprot);
+              xfer += this->nodeInputs[_i55].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2407,14 +2282,14 @@ uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot)
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->nodeOutputs.clear();
-            uint32_t _size57;
-            ::apache::thrift::protocol::TType _etype60;
-            xfer += iprot->readListBegin(_etype60, _size57);
-            this->nodeOutputs.resize(_size57);
-            uint32_t _i61;
-            for (_i61 = 0; _i61 < _size57; ++_i61)
+            uint32_t _size56;
+            ::apache::thrift::protocol::TType _etype59;
+            xfer += iprot->readListBegin(_etype59, _size56);
+            this->nodeOutputs.resize(_size56);
+            uint32_t _i60;
+            for (_i60 = 0; _i60 < _size56; ++_i60)
             {
-              xfer += this->nodeOutputs[_i61].read(iprot);
+              xfer += this->nodeOutputs[_i60].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2435,14 +2310,14 @@ uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot)
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->taskDetailsList.clear();
-            uint32_t _size62;
-            ::apache::thrift::protocol::TType _etype65;
-            xfer += iprot->readListBegin(_etype65, _size62);
-            this->taskDetailsList.resize(_size62);
-            uint32_t _i66;
-            for (_i66 = 0; _i66 < _size62; ++_i66)
+            uint32_t _size61;
+            ::apache::thrift::protocol::TType _etype64;
+            xfer += iprot->readListBegin(_etype64, _size61);
+            this->taskDetailsList.resize(_size61);
+            uint32_t _i65;
+            for (_i65 = 0; _i65 < _size61; ++_i65)
             {
-              xfer += this->taskDetailsList[_i66].read(iprot);
+              xfer += this->taskDetailsList[_i65].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2455,14 +2330,14 @@ uint32_t WorkflowNodeDetails::read(::apache::thrift::protocol::TProtocol* iprot)
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->errors.clear();
-            uint32_t _size67;
-            ::apache::thrift::protocol::TType _etype70;
-            xfer += iprot->readListBegin(_etype70, _size67);
-            this->errors.resize(_size67);
-            uint32_t _i71;
-            for (_i71 = 0; _i71 < _size67; ++_i71)
+            uint32_t _size66;
+            ::apache::thrift::protocol::TType _etype69;
+            xfer += iprot->readListBegin(_etype69, _size66);
+            this->errors.resize(_size66);
+            uint32_t _i70;
+            for (_i70 = 0; _i70 < _size66; ++_i70)
             {
-              xfer += this->errors[_i71].read(iprot);
+              xfer += this->errors[_i70].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2519,10 +2394,10 @@ uint32_t WorkflowNodeDetails::write(::apache::thrift::protocol::TProtocol* oprot
     xfer += oprot->writeFieldBegin("nodeInputs", ::apache::thrift::protocol::T_LIST, 6);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->nodeInputs.size()));
-      std::vector<DataObjectType> ::const_iterator _iter72;
-      for (_iter72 = this->nodeInputs.begin(); _iter72 != this->nodeInputs.end(); ++_iter72)
+      std::vector< ::apache::airavata::model::appcatalog::appinterface::InputDataObjectType> ::const_iterator _iter71;
+      for (_iter71 = this->nodeInputs.begin(); _iter71 != this->nodeInputs.end(); ++_iter71)
       {
-        xfer += (*_iter72).write(oprot);
+        xfer += (*_iter71).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2532,10 +2407,10 @@ uint32_t WorkflowNodeDetails::write(::apache::thrift::protocol::TProtocol* oprot
     xfer += oprot->writeFieldBegin("nodeOutputs", ::apache::thrift::protocol::T_LIST, 7);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->nodeOutputs.size()));
-      std::vector<DataObjectType> ::const_iterator _iter73;
-      for (_iter73 = this->nodeOutputs.begin(); _iter73 != this->nodeOutputs.end(); ++_iter73)
+      std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> ::const_iterator _iter72;
+      for (_iter72 = this->nodeOutputs.begin(); _iter72 != this->nodeOutputs.end(); ++_iter72)
       {
-        xfer += (*_iter73).write(oprot);
+        xfer += (*_iter72).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2550,10 +2425,10 @@ uint32_t WorkflowNodeDetails::write(::apache::thrift::protocol::TProtocol* oprot
     xfer += oprot->writeFieldBegin("taskDetailsList", ::apache::thrift::protocol::T_LIST, 9);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->taskDetailsList.size()));
-      std::vector<TaskDetails> ::const_iterator _iter74;
-      for (_iter74 = this->taskDetailsList.begin(); _iter74 != this->taskDetailsList.end(); ++_iter74)
+      std::vector<TaskDetails> ::const_iterator _iter73;
+      for (_iter73 = this->taskDetailsList.begin(); _iter73 != this->taskDetailsList.end(); ++_iter73)
       {
-        xfer += (*_iter74).write(oprot);
+        xfer += (*_iter73).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2563,10 +2438,10 @@ uint32_t WorkflowNodeDetails::write(::apache::thrift::protocol::TProtocol* oprot
     xfer += oprot->writeFieldBegin("errors", ::apache::thrift::protocol::T_LIST, 10);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->errors.size()));
-      std::vector<ErrorDetails> ::const_iterator _iter75;
-      for (_iter75 = this->errors.begin(); _iter75 != this->errors.end(); ++_iter75)
+      std::vector<ErrorDetails> ::const_iterator _iter74;
+      for (_iter74 = this->errors.begin(); _iter74 != this->errors.end(); ++_iter74)
       {
-        xfer += (*_iter75).write(oprot);
+        xfer += (*_iter74).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -2708,14 +2583,14 @@ uint32_t ValidationResults::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->validationResultList.clear();
-            uint32_t _size76;
-            ::apache::thrift::protocol::TType _etype79;
-            xfer += iprot->readListBegin(_etype79, _size76);
-            this->validationResultList.resize(_size76);
-            uint32_t _i80;
-            for (_i80 = 0; _i80 < _size76; ++_i80)
+            uint32_t _size75;
+            ::apache::thrift::protocol::TType _etype78;
+            xfer += iprot->readListBegin(_etype78, _size75);
+            this->validationResultList.resize(_size75);
+            uint32_t _i79;
+            for (_i79 = 0; _i79 < _size75; ++_i79)
             {
-              xfer += this->validationResultList[_i80].read(iprot);
+              xfer += this->validationResultList[_i79].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2751,10 +2626,10 @@ uint32_t ValidationResults::write(::apache::thrift::protocol::TProtocol* oprot)
   xfer += oprot->writeFieldBegin("validationResultList", ::apache::thrift::protocol::T_LIST, 2);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->validationResultList.size()));
-    std::vector<ValidatorResult> ::const_iterator _iter81;
-    for (_iter81 = this->validationResultList.begin(); _iter81 != this->validationResultList.end(); ++_iter81)
+    std::vector<ValidatorResult> ::const_iterator _iter80;
+    for (_iter80 = this->validationResultList.begin(); _iter80 != this->validationResultList.end(); ++_iter80)
     {
-      xfer += (*_iter81).write(oprot);
+      xfer += (*_iter80).write(oprot);
     }
     xfer += oprot->writeListEnd();
   }
@@ -2771,8 +2646,8 @@ void swap(ValidationResults &a, ValidationResults &b) {
   swap(a.validationResultList, b.validationResultList);
 }
 
-const char* Experiment::ascii_fingerprint = "EAE6C4E7D5F1EDAC82E4630FDDD892A9";
-const uint8_t Experiment::binary_fingerprint[16] = {0xEA,0xE6,0xC4,0xE7,0xD5,0xF1,0xED,0xAC,0x82,0xE4,0x63,0x0F,0xDD,0xD8,0x92,0xA9};
+const char* Experiment::ascii_fingerprint = "CDFB79AEABF988D5D38D8EEAEEBECC6F";
+const uint8_t Experiment::binary_fingerprint[16] = {0xCD,0xFB,0x79,0xAE,0xAB,0xF9,0x88,0xD5,0xD3,0x8D,0x8E,0xEA,0xEE,0xBE,0xCC,0x6F};
 
 uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -2898,14 +2773,14 @@ uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->experimentInputs.clear();
-            uint32_t _size82;
-            ::apache::thrift::protocol::TType _etype85;
-            xfer += iprot->readListBegin(_etype85, _size82);
-            this->experimentInputs.resize(_size82);
-            uint32_t _i86;
-            for (_i86 = 0; _i86 < _size82; ++_i86)
+            uint32_t _size81;
+            ::apache::thrift::protocol::TType _etype84;
+            xfer += iprot->readListBegin(_etype84, _size81);
+            this->experimentInputs.resize(_size81);
+            uint32_t _i85;
+            for (_i85 = 0; _i85 < _size81; ++_i85)
             {
-              xfer += this->experimentInputs[_i86].read(iprot);
+              xfer += this->experimentInputs[_i85].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2918,14 +2793,14 @@ uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->experimentOutputs.clear();
-            uint32_t _size87;
-            ::apache::thrift::protocol::TType _etype90;
-            xfer += iprot->readListBegin(_etype90, _size87);
-            this->experimentOutputs.resize(_size87);
-            uint32_t _i91;
-            for (_i91 = 0; _i91 < _size87; ++_i91)
+            uint32_t _size86;
+            ::apache::thrift::protocol::TType _etype89;
+            xfer += iprot->readListBegin(_etype89, _size86);
+            this->experimentOutputs.resize(_size86);
+            uint32_t _i90;
+            for (_i90 = 0; _i90 < _size86; ++_i90)
             {
-              xfer += this->experimentOutputs[_i91].read(iprot);
+              xfer += this->experimentOutputs[_i90].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2946,14 +2821,14 @@ uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->stateChangeList.clear();
-            uint32_t _size92;
-            ::apache::thrift::protocol::TType _etype95;
-            xfer += iprot->readListBegin(_etype95, _size92);
-            this->stateChangeList.resize(_size92);
-            uint32_t _i96;
-            for (_i96 = 0; _i96 < _size92; ++_i96)
+            uint32_t _size91;
+            ::apache::thrift::protocol::TType _etype94;
+            xfer += iprot->readListBegin(_etype94, _size91);
+            this->stateChangeList.resize(_size91);
+            uint32_t _i95;
+            for (_i95 = 0; _i95 < _size91; ++_i95)
             {
-              xfer += this->stateChangeList[_i96].read(iprot);
+              xfer += this->stateChangeList[_i95].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2966,14 +2841,14 @@ uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->workflowNodeDetailsList.clear();
-            uint32_t _size97;
-            ::apache::thrift::protocol::TType _etype100;
-            xfer += iprot->readListBegin(_etype100, _size97);
-            this->workflowNodeDetailsList.resize(_size97);
-            uint32_t _i101;
-            for (_i101 = 0; _i101 < _size97; ++_i101)
+            uint32_t _size96;
+            ::apache::thrift::protocol::TType _etype99;
+            xfer += iprot->readListBegin(_etype99, _size96);
+            this->workflowNodeDetailsList.resize(_size96);
+            uint32_t _i100;
+            for (_i100 = 0; _i100 < _size96; ++_i100)
             {
-              xfer += this->workflowNodeDetailsList[_i101].read(iprot);
+              xfer += this->workflowNodeDetailsList[_i100].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -2986,14 +2861,14 @@ uint32_t Experiment::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->errors.clear();
-            uint32_t _size102;
-            ::apache::thrift::protocol::TType _etype105;
-            xfer += iprot->readListBegin(_etype105, _size102);
-            this->errors.resize(_size102);
-            uint32_t _i106;
-            for (_i106 = 0; _i106 < _size102; ++_i106)
+            uint32_t _size101;
+            ::apache::thrift::protocol::TType _etype104;
+            xfer += iprot->readListBegin(_etype104, _size101);
+            this->errors.resize(_size101);
+            uint32_t _i105;
+            for (_i105 = 0; _i105 < _size101; ++_i105)
             {
-              xfer += this->errors[_i106].read(iprot);
+              xfer += this->errors[_i105].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -3086,10 +2961,10 @@ uint32_t Experiment::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeFieldBegin("experimentInputs", ::apache::thrift::protocol::T_LIST, 13);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->experimentInputs.size()));
-      std::vector<DataObjectType> ::const_iterator _iter107;
-      for (_iter107 = this->experimentInputs.begin(); _iter107 != this->experimentInputs.end(); ++_iter107)
+      std::vector< ::apache::airavata::model::appcatalog::appinterface::InputDataObjectType> ::const_iterator _iter106;
+      for (_iter106 = this->experimentInputs.begin(); _iter106 != this->experimentInputs.end(); ++_iter106)
       {
-        xfer += (*_iter107).write(oprot);
+        xfer += (*_iter106).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3099,10 +2974,10 @@ uint32_t Experiment::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeFieldBegin("experimentOutputs", ::apache::thrift::protocol::T_LIST, 14);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->experimentOutputs.size()));
-      std::vector<DataObjectType> ::const_iterator _iter108;
-      for (_iter108 = this->experimentOutputs.begin(); _iter108 != this->experimentOutputs.end(); ++_iter108)
+      std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> ::const_iterator _iter107;
+      for (_iter107 = this->experimentOutputs.begin(); _iter107 != this->experimentOutputs.end(); ++_iter107)
       {
-        xfer += (*_iter108).write(oprot);
+        xfer += (*_iter107).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3117,10 +2992,10 @@ uint32_t Experiment::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeFieldBegin("stateChangeList", ::apache::thrift::protocol::T_LIST, 16);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->stateChangeList.size()));
-      std::vector<WorkflowNodeStatus> ::const_iterator _iter109;
-      for (_iter109 = this->stateChangeList.begin(); _iter109 != this->stateChangeList.end(); ++_iter109)
+      std::vector<WorkflowNodeStatus> ::const_iterator _iter108;
+      for (_iter108 = this->stateChangeList.begin(); _iter108 != this->stateChangeList.end(); ++_iter108)
       {
-        xfer += (*_iter109).write(oprot);
+        xfer += (*_iter108).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3130,10 +3005,10 @@ uint32_t Experiment::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeFieldBegin("workflowNodeDetailsList", ::apache::thrift::protocol::T_LIST, 17);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->workflowNodeDetailsList.size()));
-      std::vector<WorkflowNodeDetails> ::const_iterator _iter110;
-      for (_iter110 = this->workflowNodeDetailsList.begin(); _iter110 != this->workflowNodeDetailsList.end(); ++_iter110)
+      std::vector<WorkflowNodeDetails> ::const_iterator _iter109;
+      for (_iter109 = this->workflowNodeDetailsList.begin(); _iter109 != this->workflowNodeDetailsList.end(); ++_iter109)
       {
-        xfer += (*_iter110).write(oprot);
+        xfer += (*_iter109).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3143,10 +3018,10 @@ uint32_t Experiment::write(::apache::thrift::protocol::TProtocol* oprot) const {
     xfer += oprot->writeFieldBegin("errors", ::apache::thrift::protocol::T_LIST, 18);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->errors.size()));
-      std::vector<ErrorDetails> ::const_iterator _iter111;
-      for (_iter111 = this->errors.begin(); _iter111 != this->errors.end(); ++_iter111)
+      std::vector<ErrorDetails> ::const_iterator _iter110;
+      for (_iter110 = this->errors.begin(); _iter110 != this->errors.end(); ++_iter110)
       {
-        xfer += (*_iter111).write(oprot);
+        xfer += (*_iter110).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }
@@ -3275,14 +3150,14 @@ uint32_t ExperimentSummary::read(::apache::thrift::protocol::TProtocol* iprot) {
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->errors.clear();
-            uint32_t _size112;
-            ::apache::thrift::protocol::TType _etype115;
-            xfer += iprot->readListBegin(_etype115, _size112);
-            this->errors.resize(_size112);
-            uint32_t _i116;
-            for (_i116 = 0; _i116 < _size112; ++_i116)
+            uint32_t _size111;
+            ::apache::thrift::protocol::TType _etype114;
+            xfer += iprot->readListBegin(_etype114, _size111);
+            this->errors.resize(_size111);
+            uint32_t _i115;
+            for (_i115 = 0; _i115 < _size111; ++_i115)
             {
-              xfer += this->errors[_i116].read(iprot);
+              xfer += this->errors[_i115].read(iprot);
             }
             xfer += iprot->readListEnd();
           }
@@ -3355,10 +3230,10 @@ uint32_t ExperimentSummary::write(::apache::thrift::protocol::TProtocol* oprot)
     xfer += oprot->writeFieldBegin("errors", ::apache::thrift::protocol::T_LIST, 9);
     {
       xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->errors.size()));
-      std::vector<ErrorDetails> ::const_iterator _iter117;
-      for (_iter117 = this->errors.begin(); _iter117 != this->errors.end(); ++_iter117)
+      std::vector<ErrorDetails> ::const_iterator _iter116;
+      for (_iter116 = this->errors.begin(); _iter116 != this->errors.end(); ++_iter116)
       {
-        xfer += (*_iter117).write(oprot);
+        xfer += (*_iter116).write(oprot);
       }
       xfer += oprot->writeListEnd();
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
index fa1803e..c4edbb7 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/experimentModel_types.h
@@ -31,6 +31,7 @@
 
 #include <thrift/cxxfunctional.h>
 #include "computeResourceModel_types.h"
+#include "applicationInterfaceModel_types.h"
 
 
 namespace apache { namespace airavata { namespace model { namespace workspace { namespace experiment {
@@ -164,18 +165,6 @@ struct CorrectiveAction {
 
 extern const std::map<int, const char*> _CorrectiveAction_VALUES_TO_NAMES;
 
-struct DataType {
-  enum type {
-    STRING = 0,
-    INTEGER = 1,
-    URI = 2,
-    STDOUT = 3,
-    STDERR = 4
-  };
-};
-
-extern const std::map<int, const char*> _DataType_VALUES_TO_NAMES;
-
 struct ExecutionUnit {
   enum type {
     INPUT = 0,
@@ -505,81 +494,6 @@ class ApplicationStatus {
 
 void swap(ApplicationStatus &a, ApplicationStatus &b);
 
-typedef struct _DataObjectType__isset {
-  _DataObjectType__isset() : value(false), type(false), metaData(false) {}
-  bool value;
-  bool type;
-  bool metaData;
-} _DataObjectType__isset;
-
-class DataObjectType {
- public:
-
-  static const char* ascii_fingerprint; // = "544FBB8031AE070AEEB7AC0E4A90E43C";
-  static const uint8_t binary_fingerprint[16]; // = {0x54,0x4F,0xBB,0x80,0x31,0xAE,0x07,0x0A,0xEE,0xB7,0xAC,0x0E,0x4A,0x90,0xE4,0x3C};
-
-  DataObjectType() : key(), value(), type((DataType::type)0), metaData() {
-  }
-
-  virtual ~DataObjectType() throw() {}
-
-  std::string key;
-  std::string value;
-  DataType::type type;
-  std::string metaData;
-
-  _DataObjectType__isset __isset;
-
-  void __set_key(const std::string& val) {
-    key = val;
-  }
-
-  void __set_value(const std::string& val) {
-    value = val;
-    __isset.value = true;
-  }
-
-  void __set_type(const DataType::type val) {
-    type = val;
-    __isset.type = true;
-  }
-
-  void __set_metaData(const std::string& val) {
-    metaData = val;
-    __isset.metaData = true;
-  }
-
-  bool operator == (const DataObjectType & rhs) const
-  {
-    if (!(key == rhs.key))
-      return false;
-    if (__isset.value != rhs.__isset.value)
-      return false;
-    else if (__isset.value && !(value == rhs.value))
-      return false;
-    if (__isset.type != rhs.__isset.type)
-      return false;
-    else if (__isset.type && !(type == rhs.type))
-      return false;
-    if (__isset.metaData != rhs.__isset.metaData)
-      return false;
-    else if (__isset.metaData && !(metaData == rhs.metaData))
-      return false;
-    return true;
-  }
-  bool operator != (const DataObjectType &rhs) const {
-    return !(*this == rhs);
-  }
-
-  bool operator < (const DataObjectType & ) const;
-
-  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
-  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
-
-};
-
-void swap(DataObjectType &a, DataObjectType &b);
-
 typedef struct _ComputationalResourceScheduling__isset {
   _ComputationalResourceScheduling__isset() : resourceHostId(false), totalCPUCount(false), nodeCount(false), numberOfThreads(false), queueName(false), wallTimeLimit(false), jobStartTime(false), totalPhysicalMemory(false), computationalProjectAccount(false) {}
   bool resourceHostId;
@@ -1380,8 +1294,8 @@ typedef struct _TaskDetails__isset {
 class TaskDetails {
  public:
 
-  static const char* ascii_fingerprint; // = "5329C387E7633AF234038F8461F51097";
-  static const uint8_t binary_fingerprint[16]; // = {0x53,0x29,0xC3,0x87,0xE7,0x63,0x3A,0xF2,0x34,0x03,0x8F,0x84,0x61,0xF5,0x10,0x97};
+  static const char* ascii_fingerprint; // = "C0E50EB91BEBDC23A45D03BFD2BD630A";
+  static const uint8_t binary_fingerprint[16]; // = {0xC0,0xE5,0x0E,0xB9,0x1B,0xEB,0xDC,0x23,0xA4,0x5D,0x03,0xBF,0xD2,0xBD,0x63,0x0A};
 
   TaskDetails() : taskID("DO_NOT_SET_AT_CLIENTS"), creationTime(0), applicationId(), applicationVersion(), applicationDeploymentId() {
   }
@@ -1393,8 +1307,8 @@ class TaskDetails {
   std::string applicationId;
   std::string applicationVersion;
   std::string applicationDeploymentId;
-  std::vector<DataObjectType>  applicationInputs;
-  std::vector<DataObjectType>  applicationOutputs;
+  std::vector< ::apache::airavata::model::appcatalog::appinterface::InputDataObjectType>  applicationInputs;
+  std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType>  applicationOutputs;
   ComputationalResourceScheduling taskScheduling;
   AdvancedInputDataHandling advancedInputDataHandling;
   AdvancedOutputDataHandling advancedOutputDataHandling;
@@ -1429,12 +1343,12 @@ class TaskDetails {
     __isset.applicationDeploymentId = true;
   }
 
-  void __set_applicationInputs(const std::vector<DataObjectType> & val) {
+  void __set_applicationInputs(const std::vector< ::apache::airavata::model::appcatalog::appinterface::InputDataObjectType> & val) {
     applicationInputs = val;
     __isset.applicationInputs = true;
   }
 
-  void __set_applicationOutputs(const std::vector<DataObjectType> & val) {
+  void __set_applicationOutputs(const std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> & val) {
     applicationOutputs = val;
     __isset.applicationOutputs = true;
   }
@@ -1559,8 +1473,8 @@ typedef struct _WorkflowNodeDetails__isset {
 class WorkflowNodeDetails {
  public:
 
-  static const char* ascii_fingerprint; // = "6ABC52FB94DCEC8D6AA3F1F3188E2691";
-  static const uint8_t binary_fingerprint[16]; // = {0x6A,0xBC,0x52,0xFB,0x94,0xDC,0xEC,0x8D,0x6A,0xA3,0xF1,0xF3,0x18,0x8E,0x26,0x91};
+  static const char* ascii_fingerprint; // = "F9600D5A8E84EAF65A64E38C18DFACAE";
+  static const uint8_t binary_fingerprint[16]; // = {0xF9,0x60,0x0D,0x5A,0x8E,0x84,0xEA,0xF6,0x5A,0x64,0xE3,0x8C,0x18,0xDF,0xAC,0xAE};
 
   WorkflowNodeDetails() : nodeInstanceId("DO_NOT_SET_AT_CLIENTS"), creationTime(0), nodeName("SINGLE_APP_NODE"), executionUnit((ExecutionUnit::type)1), executionUnitData() {
     executionUnit = (ExecutionUnit::type)1;
@@ -1574,8 +1488,8 @@ class WorkflowNodeDetails {
   std::string nodeName;
   ExecutionUnit::type executionUnit;
   std::string executionUnitData;
-  std::vector<DataObjectType>  nodeInputs;
-  std::vector<DataObjectType>  nodeOutputs;
+  std::vector< ::apache::airavata::model::appcatalog::appinterface::InputDataObjectType>  nodeInputs;
+  std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType>  nodeOutputs;
   WorkflowNodeStatus workflowNodeStatus;
   std::vector<TaskDetails>  taskDetailsList;
   std::vector<ErrorDetails>  errors;
@@ -1604,12 +1518,12 @@ class WorkflowNodeDetails {
     __isset.executionUnitData = true;
   }
 
-  void __set_nodeInputs(const std::vector<DataObjectType> & val) {
+  void __set_nodeInputs(const std::vector< ::apache::airavata::model::appcatalog::appinterface::InputDataObjectType> & val) {
     nodeInputs = val;
     __isset.nodeInputs = true;
   }
 
-  void __set_nodeOutputs(const std::vector<DataObjectType> & val) {
+  void __set_nodeOutputs(const std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> & val) {
     nodeOutputs = val;
     __isset.nodeOutputs = true;
   }
@@ -1798,8 +1712,8 @@ typedef struct _Experiment__isset {
 class Experiment {
  public:
 
-  static const char* ascii_fingerprint; // = "EAE6C4E7D5F1EDAC82E4630FDDD892A9";
-  static const uint8_t binary_fingerprint[16]; // = {0xEA,0xE6,0xC4,0xE7,0xD5,0xF1,0xED,0xAC,0x82,0xE4,0x63,0x0F,0xDD,0xD8,0x92,0xA9};
+  static const char* ascii_fingerprint; // = "CDFB79AEABF988D5D38D8EEAEEBECC6F";
+  static const uint8_t binary_fingerprint[16]; // = {0xCD,0xFB,0x79,0xAE,0xAB,0xF9,0x88,0xD5,0xD3,0x8D,0x8E,0xEA,0xEE,0xBE,0xCC,0x6F};
 
   Experiment() : experimentID("DO_NOT_SET_AT_CLIENTS"), projectID("DEFAULT"), creationTime(0), userName(), name(), description(), applicationId(), applicationVersion(), workflowTemplateId(), workflowTemplateVersion(), workflowExecutionInstanceId() {
   }
@@ -1818,8 +1732,8 @@ class Experiment {
   std::string workflowTemplateVersion;
   UserConfigurationData userConfigurationData;
   std::string workflowExecutionInstanceId;
-  std::vector<DataObjectType>  experimentInputs;
-  std::vector<DataObjectType>  experimentOutputs;
+  std::vector< ::apache::airavata::model::appcatalog::appinterface::InputDataObjectType>  experimentInputs;
+  std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType>  experimentOutputs;
   ExperimentStatus experimentStatus;
   std::vector<WorkflowNodeStatus>  stateChangeList;
   std::vector<WorkflowNodeDetails>  workflowNodeDetailsList;
@@ -1883,12 +1797,12 @@ class Experiment {
     __isset.workflowExecutionInstanceId = true;
   }
 
-  void __set_experimentInputs(const std::vector<DataObjectType> & val) {
+  void __set_experimentInputs(const std::vector< ::apache::airavata::model::appcatalog::appinterface::InputDataObjectType> & val) {
     experimentInputs = val;
     __isset.experimentInputs = true;
   }
 
-  void __set_experimentOutputs(const std::vector<DataObjectType> & val) {
+  void __set_experimentOutputs(const std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> & val) {
     experimentOutputs = val;
     __isset.experimentOutputs = true;
   }

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messagingEvents_types.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messagingEvents_types.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messagingEvents_types.cpp
index c661759..4bfd1bc 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messagingEvents_types.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messagingEvents_types.cpp
@@ -607,8 +607,8 @@ void swap(TaskStatusChangeRequestEvent &a, TaskStatusChangeRequestEvent &b) {
   swap(a.taskIdentity, b.taskIdentity);
 }
 
-const char* TaskOutputChangeEvent::ascii_fingerprint = "A7F4390C8E4A64CE48431C1FB6A45F50";
-const uint8_t TaskOutputChangeEvent::binary_fingerprint[16] = {0xA7,0xF4,0x39,0x0C,0x8E,0x4A,0x64,0xCE,0x48,0x43,0x1C,0x1F,0xB6,0xA4,0x5F,0x50};
+const char* TaskOutputChangeEvent::ascii_fingerprint = "850570A8E8883AE24DE92AFC9AA86C7E";
+const uint8_t TaskOutputChangeEvent::binary_fingerprint[16] = {0x85,0x05,0x70,0xA8,0xE8,0x88,0x3A,0xE2,0x4D,0xE9,0x2A,0xFC,0x9A,0xA8,0x6C,0x7E};
 
 uint32_t TaskOutputChangeEvent::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -683,7 +683,7 @@ uint32_t TaskOutputChangeEvent::write(::apache::thrift::protocol::TProtocol* opr
   xfer += oprot->writeFieldBegin("output", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast<uint32_t>(this->output.size()));
-    std::vector< ::apache::airavata::model::workspace::experiment::DataObjectType> ::const_iterator _iter9;
+    std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> ::const_iterator _iter9;
     for (_iter9 = this->output.begin(); _iter9 != this->output.end(); ++_iter9)
     {
       xfer += (*_iter9).write(oprot);

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messagingEvents_types.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messagingEvents_types.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messagingEvents_types.h
index 4eefe50..61dc55f 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messagingEvents_types.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/airavata/messagingEvents_types.h
@@ -31,6 +31,7 @@
 
 #include <thrift/cxxfunctional.h>
 #include "experimentModel_types.h"
+#include "applicationInterfaceModel_types.h"
 
 
 namespace apache { namespace airavata { namespace model { namespace messaging { namespace event {
@@ -353,18 +354,18 @@ void swap(TaskStatusChangeRequestEvent &a, TaskStatusChangeRequestEvent &b);
 class TaskOutputChangeEvent {
  public:
 
-  static const char* ascii_fingerprint; // = "A7F4390C8E4A64CE48431C1FB6A45F50";
-  static const uint8_t binary_fingerprint[16]; // = {0xA7,0xF4,0x39,0x0C,0x8E,0x4A,0x64,0xCE,0x48,0x43,0x1C,0x1F,0xB6,0xA4,0x5F,0x50};
+  static const char* ascii_fingerprint; // = "850570A8E8883AE24DE92AFC9AA86C7E";
+  static const uint8_t binary_fingerprint[16]; // = {0x85,0x05,0x70,0xA8,0xE8,0x88,0x3A,0xE2,0x4D,0xE9,0x2A,0xFC,0x9A,0xA8,0x6C,0x7E};
 
   TaskOutputChangeEvent() {
   }
 
   virtual ~TaskOutputChangeEvent() throw() {}
 
-  std::vector< ::apache::airavata::model::workspace::experiment::DataObjectType>  output;
+  std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType>  output;
   TaskIdentifier taskIdentity;
 
-  void __set_output(const std::vector< ::apache::airavata::model::workspace::experiment::DataObjectType> & val) {
+  void __set_output(const std::vector< ::apache::airavata::model::appcatalog::appinterface::OutputDataObjectType> & val) {
     output = val;
   }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
index 20134a8..ba421d8 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
@@ -11357,7 +11357,7 @@ class Airavata_getExperimentOutputs_result {
           'etype' => TType::STRUCT,
           'elem' => array(
             'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\Workspace\Experiment\DataObjectType',
+            'class' => '\Airavata\Model\AppCatalog\AppInterface\OutputDataObjectType',
             ),
           ),
         1 => array(
@@ -11429,7 +11429,7 @@ class Airavata_getExperimentOutputs_result {
             for ($_i74 = 0; $_i74 < $_size70; ++$_i74)
             {
               $elem75 = null;
-              $elem75 = new \Airavata\Model\Workspace\Experiment\DataObjectType();
+              $elem75 = new \Airavata\Model\AppCatalog\AppInterface\OutputDataObjectType();
               $xfer += $elem75->read($input);
               $this->success []= $elem75;
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/198de990/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Messaging/Event/Types.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Messaging/Event/Types.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Messaging/Event/Types.php
index 0be911b..d20392a 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Messaging/Event/Types.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/Model/Messaging/Event/Types.php
@@ -705,7 +705,7 @@ class TaskOutputChangeEvent {
           'etype' => TType::STRUCT,
           'elem' => array(
             'type' => TType::STRUCT,
-            'class' => '\Airavata\Model\Workspace\Experiment\DataObjectType',
+            'class' => '\Airavata\Model\AppCatalog\AppInterface\OutputDataObjectType',
             ),
           ),
         2 => array(
@@ -753,7 +753,7 @@ class TaskOutputChangeEvent {
             for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
             {
               $elem5 = null;
-              $elem5 = new \Airavata\Model\Workspace\Experiment\DataObjectType();
+              $elem5 = new \Airavata\Model\AppCatalog\AppInterface\OutputDataObjectType();
               $xfer += $elem5->read($input);
               $this->output []= $elem5;
             }