You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2015/06/15 20:34:15 UTC

[3/3] airavata git commit: fixing some compilation issues

fixing some compilation issues


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

Branch: refs/heads/master
Commit: b00f20f257fc7f5d1063ddf2c3b7b8f4fa5e23f4
Parents: 0924a6e
Author: Chathuri Wimalasena <ch...@apache.org>
Authored: Mon Jun 15 14:34:06 2015 -0400
Committer: Chathuri Wimalasena <ch...@apache.org>
Committed: Mon Jun 15 14:34:06 2015 -0400

----------------------------------------------------------------------
 .../AiravataExperimentStatusUpdator.java        |   4 +-
 .../listener/ExperimentStatusChangedEvent.java  |   2 +-
 .../util/AiravataServerThreadPoolExecutor.java  |   6 +-
 .../api/server/util/DataModelUtils.java         |  10 +-
 .../handler/AiravataServerHandlerTest.java      |  57 +++---
 .../api/client/AiravataClientFactory.java       |   8 +-
 .../client/samples/CreateLaunchBES.java         |  55 +++---
 .../client/samples/CreateLaunchExperiment.java  | 177 +++++++++----------
 .../samples/CreateLaunchExperimentUS3.java      |   2 +-
 .../client/samples/RegisterSampleData.java      |  12 +-
 .../samples/TestCreateLaunchExperiment.java     |   2 +-
 .../tools/RegisterOGCEUS3Application.java       |   6 +-
 .../tools/RegisterSampleApplications.java       |   4 +-
 .../tools/RegisterSampleApplicationsUtils.java  |   4 +-
 .../client/tools/RegisterUS3Application.java    |   6 +-
 .../airavata/model/util/AppInterfaceUtil.java   |   6 +-
 .../model/util/ExperimentModelUtil.java         | 161 ++++-------------
 .../gaussian/handler/GaussianHandler.java       |   2 +-
 .../gfac/bes/handlers/AbstractSMSHandler.java   |   4 +-
 .../gfac/bes/provider/impl/BESProvider.java     |   4 +-
 .../bes/security/UNICORESecurityContext.java    |   2 +-
 .../gfac/bes/utils/DataTransferrer.java         |   2 +-
 .../gfac/bes/utils/ResourceProcessor.java       |   4 +-
 .../apache/airavata/gfac/core/GFacUtils.java    |  20 +--
 .../gfac/core/context/JobExecutionContext.java  |   8 +-
 .../gfac/core/monitor/JobStatusResult.java      |   2 +-
 .../airavata/gfac/core/monitor/MonitorID.java   |   2 +-
 .../gfac/core/provider/AbstractProvider.java    |   4 +-
 modules/gfac/gfac-impl/pom.xml                  |   5 +
 .../handler/GSISSHDirectorySetupHandler.java    |   2 +-
 .../gfac/gsissh/handler/GSISSHInputHandler.java |  10 +-
 .../gsissh/handler/GSISSHOutputHandler.java     |  12 +-
 .../gsissh/handler/NewGSISSHOutputHandler.java  |   4 +-
 .../gsissh/provider/impl/GSISSHProvider.java    |   8 +-
 .../gfac/gsissh/util/GFACGSISSHUtils.java       |   4 +-
 .../gfac/impl/AiravataJobStatusUpdator.java     |   3 +-
 .../gfac/impl/AiravataTaskStatusUpdator.java    |   3 +-
 .../impl/AiravataWorkflowNodeStatusUpdator.java |   6 +-
 .../airavata/gfac/impl/BetterGfacImpl.java      |  18 +-
 .../airavata/gfac/impl/OutHandlerWorker.java    |   4 +-
 .../gfac/local/provider/impl/LocalProvider.java |   6 +-
 .../gfac/monitor/core/MessageParser.java        |   2 +-
 .../gfac/monitor/email/EmailBasedMonitor.java   |   8 +-
 .../monitor/email/parser/LSFEmailParser.java    |   2 +-
 .../monitor/email/parser/PBSEmailParser.java    |   2 +-
 .../monitor/email/parser/SLURMEmailParser.java  |   2 +-
 .../monitor/email/parser/UGEEmailParser.java    |   2 +-
 .../monitor/impl/pull/qstat/HPCPullMonitor.java |   2 +-
 .../impl/pull/qstat/ResourceConnection.java     |   2 +-
 .../monitor/impl/push/amqp/AMQPMonitor.java     |   2 +-
 .../impl/push/amqp/JSONMessageParser.java       |   2 +-
 .../impl/push/amqp/UnRegisterWorker.java        |   2 +-
 .../ssh/handler/AdvancedSCPInputHandler.java    |   2 +-
 .../ssh/handler/AdvancedSCPOutputHandler.java   |   4 +-
 .../gfac/ssh/handler/NewSSHOutputHandler.java   |   4 +-
 .../ssh/handler/SSHDirectorySetupHandler.java   |   2 +-
 .../gfac/ssh/handler/SSHInputHandler.java       |   2 +-
 .../gfac/ssh/handler/SSHOutputHandler.java      |  12 +-
 .../gfac/ssh/provider/impl/SSHProvider.java     |  10 +-
 .../airavata/gfac/ssh/util/GFACSSHUtils.java    |   8 +-
 .../services/impl/BigRed2TestWithSSHAuth.java   |   2 +-
 .../impl/GSISSHProviderTestWithMyProxyAuth.java |   2 +-
 .../gfac/services/impl/LocalProviderTest.java   |   8 +-
 .../airavata/gfac/server/GfacServerHandler.java |   4 +-
 .../apache/airavata/integration/BaseCaseIT.java |  10 +-
 .../airavata/integration/DataRetrievalIT.java   |   2 +-
 .../airavata/integration/SimpleEchoIT.java      |   6 +-
 .../SingleAppIntegrationTestBase.java           |   6 +-
 .../WorkflowIntegrationTestBase.java            |   2 +-
 .../sample/OrchestratorClientSample.java        |   6 +-
 .../core/validator/JobMetadataValidator.java    |   6 +-
 .../validator/impl/BatchQueueValidator.java     |   2 +-
 .../impl/ExperimentStatusValidator.java         |   8 +-
 .../airavata/orchestrator/cpi/Orchestrator.java |   6 +-
 .../cpi/impl/SimpleOrchestratorImpl.java        |   2 +-
 .../orchestrator/core/ValidatorTest.java        |   2 +-
 .../orchestrator/core/util/SecondValidator.java |   6 +-
 .../orchestrator/core/util/TestValidator.java   |   6 +-
 .../server/OrchestratorServerHandler.java       |  18 +-
 .../orchestrator/util/DataModelUtils.java       |   2 +-
 .../catalog/impl/ExperimentCatalogImpl.java     |   2 +-
 .../catalog/impl/ExperimentRegistry.java        |   2 +-
 .../catalog/resources/WorkerResource.java       |   2 +-
 .../utils/ThriftDataModelConversion.java        |   2 +-
 .../catalog/ExperimentUseCaseTest.java          |   2 +-
 .../catalog/TaskDetailResourceTest.java         |   2 +-
 .../ExperimentExecution.java                    |   2 +-
 .../workflow/engine/WorkflowEngineImpl.java     |   2 +-
 .../airavata/workflow/engine/WorkflowUtils.java |   2 +-
 .../engine/interpretor/WorkflowInterpreter.java |   2 +-
 .../WorkflowInterpreterSkeleton2.java           |   2 +-
 .../airavata/workflow/core/ProcessContext.java  |   4 +-
 .../core/SimpleWorkflowInterpreter.java         |  14 +-
 .../core/parser/AiravataWorkflowParser.java     |   2 +-
 .../core/parser/AiravataWorkflowParserTest.java |   2 +-
 .../airavata/xbaya/messaging/Monitor.java       |   2 +-
 .../ui/experiment/LaunchApplicationWindow.java  |   6 +-
 .../WorkflowInterpreterLaunchWindow.java        |   6 +-
 .../xbaya/ui/monitor/MonitorEventHandler.java   |   2 +-
 .../airavata/api/samples/ExperimentSample.java  |  10 +-
 100 files changed, 400 insertions(+), 509 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/b00f20f2/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/listener/AiravataExperimentStatusUpdator.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/listener/AiravataExperimentStatusUpdator.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/listener/AiravataExperimentStatusUpdator.java
index 90a71d9..235dbfe 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/listener/AiravataExperimentStatusUpdator.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/listener/AiravataExperimentStatusUpdator.java
@@ -37,8 +37,8 @@ import org.apache.airavata.model.messaging.event.ExperimentStatusChangeEvent;
 import org.apache.airavata.model.messaging.event.MessageType;
 import org.apache.airavata.model.messaging.event.WorkflowNodeStatusChangeEvent;
 import org.apache.airavata.model.util.ExecutionType;
-import org.apache.airavata.model.workspace.experiment.Experiment;
-import org.apache.airavata.model.workspace.experiment.ExperimentState;
+import org.apache.airavata.model.experiment.ExperimentModel;
+import org.apache.airavata.model.experiment.ExperimentModelState;
 import org.apache.airavata.registry.cpi.ExperimentCatalog;
 import org.apache.airavata.registry.cpi.ExperimentCatalogModelType;
 import org.apache.curator.framework.CuratorFramework;

http://git-wip-us.apache.org/repos/asf/airavata/blob/b00f20f2/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/listener/ExperimentStatusChangedEvent.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/listener/ExperimentStatusChangedEvent.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/listener/ExperimentStatusChangedEvent.java
index 722f150..aee709c 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/listener/ExperimentStatusChangedEvent.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/listener/ExperimentStatusChangedEvent.java
@@ -22,7 +22,7 @@
 //
 //import org.apache.airavata.common.utils.listener.AbstractStateChangeRequest;
 //import org.apache.airavata.gfac.core.monitor.ExperimentIdentity;
-//import org.apache.airavata.model.workspace.experiment.ExperimentState;
+//import org.apache.airavata.model.experiment.ExperimentModelState;
 //
 ///**
 // * This is the primary job state object used in

http://git-wip-us.apache.org/repos/asf/airavata/blob/b00f20f2/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/AiravataServerThreadPoolExecutor.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/AiravataServerThreadPoolExecutor.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/AiravataServerThreadPoolExecutor.java
index b5a9b27..9f04ddb 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/AiravataServerThreadPoolExecutor.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/AiravataServerThreadPoolExecutor.java
@@ -22,15 +22,15 @@
 package org.apache.airavata.api.server.util;
 
 import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.common.logger.AiravataLogger;
-import org.apache.airavata.common.logger.AiravataLoggerFactory;
 import org.apache.airavata.common.utils.ServerSettings;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
 public class AiravataServerThreadPoolExecutor {
-    private final static AiravataLogger logger = AiravataLoggerFactory.getLogger(AiravataServerThreadPoolExecutor.class);
+    private final static Logger logger = LoggerFactory.getLogger(AiravataServerThreadPoolExecutor.class);
     public static final String AIRAVATA_SERVER_THREAD_POOL_SIZE = "airavata.server.thread.pool.size";
 
     private static ExecutorService threadPool;

http://git-wip-us.apache.org/repos/asf/airavata/blob/b00f20f2/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DataModelUtils.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DataModelUtils.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DataModelUtils.java
index 6934a00..d3d410f 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DataModelUtils.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DataModelUtils.java
@@ -26,7 +26,7 @@ import org.apache.airavata.registry.cpi.AppCatalogException;
 import org.apache.airavata.registry.cpi.ApplicationInterface;
 import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.model.util.ExecutionType;
-import org.apache.airavata.model.workspace.experiment.Experiment;
+import org.apache.airavata.model.experiment.ExperimentModel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -34,11 +34,11 @@ import java.util.List;
 
 public class DataModelUtils {
     private static final Logger logger = LoggerFactory.getLogger(DataModelUtils.class);
-	public static ExecutionType getExecutionType(Experiment experiment) throws Exception{
+	public static ExecutionType getExecutionType(ExperimentModel experiment) throws Exception{
 		try {
 			ApplicationInterface applicationInterface = RegistryFactory.getAppCatalog().getApplicationInterface();
 			List<String> allApplicationInterfaceIds = applicationInterface.getAllApplicationInterfaceIds();
-			String applicationId = experiment.getApplicationId();
+			String applicationId = experiment.getExecutionId();
 			if (allApplicationInterfaceIds.contains(applicationId)){
 				return ExecutionType.SINGLE_APP;
 			} else {
@@ -48,8 +48,8 @@ public class DataModelUtils {
 				}
 			}
 		} catch (AppCatalogException e) {
-            logger.error("Error while retrieving execution type for experiment : " + experiment.getExperimentID(), e);
-            throw new Exception("Error while retrieving execution type for experiment : " + experiment.getExperimentID(), e);
+            logger.error("Error while retrieving execution type for experiment : " + experiment.getExperimentId(), e);
+            throw new Exception("Error while retrieving execution type for experiment : " + experiment.getExperimentId(), e);
 		}
 		return ExecutionType.UNKNOWN;
 	}

http://git-wip-us.apache.org/repos/asf/airavata/blob/b00f20f2/airavata-api/airavata-api-server/src/test/java/org/apache/airavata/api/server/handler/AiravataServerHandlerTest.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/test/java/org/apache/airavata/api/server/handler/AiravataServerHandlerTest.java b/airavata-api/airavata-api-server/src/test/java/org/apache/airavata/api/server/handler/AiravataServerHandlerTest.java
index dad2ef7..cbe694f 100644
--- a/airavata-api/airavata-api-server/src/test/java/org/apache/airavata/api/server/handler/AiravataServerHandlerTest.java
+++ b/airavata-api/airavata-api-server/src/test/java/org/apache/airavata/api/server/handler/AiravataServerHandlerTest.java
@@ -25,11 +25,15 @@ import org.apache.airavata.api.server.handler.utils.AppCatInit;
 import org.apache.airavata.api.server.handler.utils.ExpCatInit;
 import org.apache.airavata.api.server.util.RegistryInitUtil;
 import org.apache.airavata.common.utils.AiravataUtils;
-import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
-import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
+import org.apache.airavata.model.application.io.InputDataObjectType;
+import org.apache.airavata.model.application.io.OutputDataObjectType;
+import org.apache.airavata.model.experiment.ExperimentModel;
+import org.apache.airavata.model.experiment.ExperimentSummaryModel;
+import org.apache.airavata.model.experiment.UserConfigurationDataModel;
+import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
+import org.apache.airavata.model.status.ExperimentState;
 import org.apache.airavata.model.workspace.Gateway;
 import org.apache.airavata.model.workspace.Project;
-import org.apache.airavata.model.workspace.experiment.*;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -185,25 +189,24 @@ public class AiravataServerHandlerTest {
             inputDataObjectType.setName("Input_to_Echo");
             inputDataObjectType.setValue("Hello World");
 
-            ComputationalResourceScheduling scheduling = new ComputationalResourceScheduling();
+            ComputationalResourceSchedulingModel scheduling = new ComputationalResourceSchedulingModel();
             scheduling.setResourceHostId(UUID.randomUUID().toString());
-            scheduling.setComputationalProjectAccount("TG-STA110014S");
             scheduling.setTotalCPUCount(1);
             scheduling.setNodeCount(1);
             scheduling.setWallTimeLimit(15);
             scheduling.setQueueName("normal");
 
-            UserConfigurationData userConfigurationData = new UserConfigurationData();
+            UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
             userConfigurationData.setAiravataAutoSchedule(false);
             userConfigurationData.setOverrideManualScheduledParams(false);
             userConfigurationData.setComputationalResourceScheduling(scheduling);
 
-            Experiment experiment = new Experiment();
-            experiment.setProjectID(projectId1);
+            ExperimentModel experiment = new ExperimentModel();
+            experiment.setProjectId(projectId1);
             experiment.setUserName("TestUser" + TAG);
-            experiment.setName("TestExperiment"+TAG);
+            experiment.setExperimentName("TestExperiment" + TAG);
             experiment.setDescription("experiment");
-            experiment.setApplicationId(applicationId);
+            experiment.setExecutionId(applicationId);
             experiment.setUserConfigurationData(userConfigurationData);
             experiment.addToExperimentInputs(inputDataObjectType);
 
@@ -211,17 +214,17 @@ public class AiravataServerHandlerTest {
             Assert.assertNotNull(experimentId1);
 
             //retrieving the stored experiment
-            Experiment retrievedExperiment = airavataServerHandler.getExperiment(experimentId1);
+            ExperimentModel retrievedExperiment = airavataServerHandler.getExperiment(experimentId1);
             Assert.assertNotNull(retrievedExperiment);
-            Assert.assertEquals(retrievedExperiment.getProjectID(), experiment.getProjectID());
+            Assert.assertEquals(retrievedExperiment.getProjectId(), experiment.getProjectId());
             Assert.assertEquals(retrievedExperiment.getDescription(), experiment.getDescription());
-            Assert.assertEquals(retrievedExperiment.getName(), experiment.getName());
-            Assert.assertEquals(retrievedExperiment.getApplicationId(), experiment.getApplicationId());
+            Assert.assertEquals(retrievedExperiment.getExperimentName(), experiment.getExperimentName());
+            Assert.assertEquals(retrievedExperiment.getExecutionId(), experiment.getExecutionId());
             Assert.assertNotNull(retrievedExperiment.getUserConfigurationData());
             Assert.assertNotNull(retrievedExperiment.getExperimentInputs());
 
             //updating an existing experiment
-            experiment.setName("NewExperimentName"+TAG);
+            experiment.setExperimentName("NewExperimentName" + TAG);
             OutputDataObjectType outputDataObjectType = new OutputDataObjectType();
             outputDataObjectType.setName("Output_to_Echo");
             outputDataObjectType.setValue("Hello World");
@@ -229,24 +232,24 @@ public class AiravataServerHandlerTest {
             airavataServerHandler.updateExperiment(experimentId1, experiment);
 
             //creating more experiments
-            experiment = new Experiment();
-            experiment.setProjectID(projectId1);
+            experiment = new ExperimentModel();
+            experiment.setProjectId(projectId1);
             experiment.setUserName("TestUser" + TAG);
-            experiment.setName("TestExperiment2" + TAG);
+            experiment.setExperimentName("TestExperiment2" + TAG);
             experiment.setDescription("experiment");
-            experiment.setApplicationId(applicationId);
+            experiment.setExecutionId(applicationId);
             experiment.setUserConfigurationData(userConfigurationData);
             experiment.addToExperimentInputs(inputDataObjectType);
 
             String experimentId2 = airavataServerHandler.createExperiment(gatewayId, experiment);
             Assert.assertNotNull(experimentId2);
 
-            experiment = new Experiment();
-            experiment.setProjectID(projectId1);
+            experiment = new ExperimentModel();
+            experiment.setProjectId(projectId1);
             experiment.setUserName("TestUser" + TAG);
-            experiment.setName("TestExperiment3"+TAG);
+            experiment.setExperimentName("TestExperiment3" + TAG);
             experiment.setDescription("experiment");
-            experiment.setApplicationId(applicationId);
+            experiment.setExecutionId(applicationId);
             experiment.setUserConfigurationData(userConfigurationData);
             experiment.addToExperimentInputs(inputDataObjectType);
 
@@ -254,7 +257,7 @@ public class AiravataServerHandlerTest {
             Assert.assertNotNull(experimentId3);
 
             //searching experiments by name
-            List<ExperimentSummary> results = airavataServerHandler.searchExperimentsByName(gatewayId,
+            List<ExperimentSummaryModel> results = airavataServerHandler.searchExperimentsByName(gatewayId,
                     "TestUser" + TAG, "Experiment2");
             Assert.assertTrue(results.size()==1);
             //with pagination
@@ -302,7 +305,7 @@ public class AiravataServerHandlerTest {
 
 
             //retrieving all experiments in project
-            List<Experiment> list = airavataServerHandler.getAllExperimentsInProject(projectId1);
+            List<ExperimentModel> list = airavataServerHandler.getAllExperimentsInProject(projectId1);
             Assert.assertTrue(list.size()==3);
             //with pagination
             list = airavataServerHandler.getAllExperimentsInProjectWithPagination(projectId1, 2, 1);
@@ -316,8 +319,8 @@ public class AiravataServerHandlerTest {
                     gatewayId, "TestUser" + TAG, 2, 0);
             //testing time ordering
             Assert.assertTrue(list.size()==2);
-            Experiment exp1 = list.get(0);
-            Experiment exp2 = list.get(1);
+            ExperimentModel exp1 = list.get(0);
+            ExperimentModel exp2 = list.get(1);
             Assert.assertTrue(exp1.getCreationTime()-exp2.getCreationTime() > 0);
 
         } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/b00f20f2/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/client/AiravataClientFactory.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/client/AiravataClientFactory.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/client/AiravataClientFactory.java
index e5048a2..2ef6a6e 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/client/AiravataClientFactory.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/client/AiravataClientFactory.java
@@ -23,7 +23,7 @@ package org.apache.airavata.api.client;
 
 import org.apache.airavata.api.Airavata;
 
-import org.apache.airavata.model.error.AiravataClientConnectException;
+import org.apache.airavata.model.error.AiravataClientException;
 import org.apache.thrift.protocol.TBinaryProtocol;
 import org.apache.thrift.protocol.TProtocol;
 import org.apache.thrift.transport.TSocket;
@@ -36,7 +36,7 @@ public class AiravataClientFactory {
 
     private final static Logger logger = LoggerFactory.getLogger(AiravataClientFactory.class);
 
-    public static Airavata.Client createAiravataClient(String serverHost, int serverPort) throws AiravataClientConnectException{
+    public static Airavata.Client createAiravataClient(String serverHost, int serverPort) throws AiravataClientException{
         try {
             TTransport transport = new TSocket(serverHost, serverPort);
             transport.open();
@@ -44,7 +44,9 @@ public class AiravataClientFactory {
 //            TMultiplexedProtocol mp = new TMultiplexedProtocol(protocol, "APIServer");
             return new Airavata.Client(protocol);
         } catch (TTransportException e) {
-            throw new AiravataClientConnectException("Unable to connect to the server at "+serverHost+":"+serverPort);
+            AiravataClientException exception = new AiravataClientException();
+            exception.setParameter("Unable to connect to the server at "+serverHost+":"+serverPort);
+            throw exception;
         }
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/b00f20f2/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchBES.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchBES.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchBES.java
index b4fd0bc..74eda5c 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchBES.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchBES.java
@@ -9,27 +9,26 @@ import org.apache.airavata.api.Airavata;
 import org.apache.airavata.api.client.AiravataClientFactory;
 import org.apache.airavata.client.tools.RegisterSampleApplications;
 import org.apache.airavata.client.tools.RegisterSampleApplicationsUtils;
-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.JobSubmissionInterface;
 import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
 import org.apache.airavata.model.appcatalog.computeresource.SecurityProtocol;
 import org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission;
+import org.apache.airavata.model.application.io.InputDataObjectType;
+import org.apache.airavata.model.application.io.OutputDataObjectType;
+import org.apache.airavata.model.commons.ErrorModel;
 import org.apache.airavata.model.error.AiravataClientException;
 import org.apache.airavata.model.error.AiravataErrorType;
 import org.apache.airavata.model.error.AiravataSystemException;
 import org.apache.airavata.model.error.ExperimentNotFoundException;
 import org.apache.airavata.model.error.InvalidRequestException;
+import org.apache.airavata.model.experiment.ExperimentSummaryModel;
+import org.apache.airavata.model.experiment.UserConfigurationDataModel;
+import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
 import org.apache.airavata.model.util.ExperimentModelUtil;
 import org.apache.airavata.model.workspace.Gateway;
 import org.apache.airavata.model.workspace.Project;
-import org.apache.airavata.model.workspace.experiment.AdvancedOutputDataHandling;
-import org.apache.airavata.model.workspace.experiment.ComputationalResourceScheduling;
-import org.apache.airavata.model.workspace.experiment.ErrorDetails;
-import org.apache.airavata.model.workspace.experiment.Experiment;
-import org.apache.airavata.model.workspace.experiment.ExperimentSummary;
-import org.apache.airavata.model.workspace.experiment.UserConfigurationData;
+import org.apache.airavata.model.experiment.ExperimentModel;
 import org.apache.thrift.TException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -146,8 +145,8 @@ public class CreateLaunchBES {
 
             Thread.sleep(10000);
             for (String exId : experimentIds) {
-                Experiment experiment = airavataClient.getExperiment(exId);
-                System.out.println(experiment.getExperimentID() + " " + experiment.getExperimentStatus().getExperimentState().name());
+                ExperimentModel experiment = airavataClient.getExperiment(exId);
+                System.out.println(experiment.getExperimentId() + " " + experiment.getExperimentStatus().getState().name());
             }
 
 
@@ -235,7 +234,7 @@ public class CreateLaunchBES {
             }
             List<OutputDataObjectType> exOut = client.getApplicationOutputs(echoAppId);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment("default", "admin", "echoExperiment", "SimpleEcho2", echoAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -245,8 +244,8 @@ public class CreateLaunchBES {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(unicoreHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 30, 0, 1048576, "sds128");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 30, 1048576);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -254,12 +253,6 @@ public class CreateLaunchBES {
                         userConfigurationData.setGenerateCert(false);
                         userConfigurationData.setUserDN("");
 
-                        // set output directory 
-                        AdvancedOutputDataHandling dataHandling = new AdvancedOutputDataHandling();
-                        dataHandling.setOutputDataDir("/tmp/airavata/output/" + UUID.randomUUID().toString() + "/");
-                        userConfigurationData.setAdvanceOutputDataHandling(dataHandling);
-                        simpleExperiment.setUserConfigurationData(userConfigurationData);
-
                         return client.createExperiment(DEFAULT_GATEWAY, simpleExperiment);
                     }
                 }
@@ -307,7 +300,7 @@ public class CreateLaunchBES {
             	}
 			}
             
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment("default", "admin", "mpiExperiment", "HelloMPI", mpiAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -317,8 +310,8 @@ public class CreateLaunchBES {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(unicoreHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 0, 4, 0, null, 10, 0, 0, null);
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 0, 4, 0, null, 10, 0);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -326,10 +319,6 @@ public class CreateLaunchBES {
                         userConfigurationData.setGenerateCert(true);
                         userConfigurationData.setUserDN("CN=m.memon, O=Ultrascan Gateway, C=DE");
 
-                        // set output directory 
-                        AdvancedOutputDataHandling dataHandling = new AdvancedOutputDataHandling();
-                        dataHandling.setOutputDataDir("/tmp/airavata/output/" + UUID.randomUUID().toString() + "/");
-                        userConfigurationData.setAdvanceOutputDataHandling(dataHandling);
                         simpleExperiment.setUserConfigurationData(userConfigurationData);
 
                         return client.createExperiment(DEFAULT_GATEWAY, simpleExperiment);
@@ -353,7 +342,7 @@ public class CreateLaunchBES {
     }
     
     
-    public static List<Experiment> getExperimentsForUser(Airavata.Client client, String user) {
+    public static List<ExperimentModel> getExperimentsForUser(Airavata.Client client, String user) {
         try {
             return client.getAllUserExperiments(DEFAULT_GATEWAY, user);
         } catch (AiravataSystemException e) {
@@ -414,7 +403,7 @@ public class CreateLaunchBES {
     }
 
 
-    public static List<ExperimentSummary> searchExperimentsByName(Airavata.Client client, String user, String expName) {
+    public static List<ExperimentSummaryModel> searchExperimentsByName(Airavata.Client client, String user, String expName) {
         try {
             return client.searchExperimentsByName(DEFAULT_GATEWAY, user, expName);
         } catch (AiravataSystemException e) {
@@ -429,7 +418,7 @@ public class CreateLaunchBES {
         return null;
     }
 
-    public static List<ExperimentSummary> searchExperimentsByDesc(Airavata.Client client, String user, String desc) {
+    public static List<ExperimentSummaryModel> searchExperimentsByDesc(Airavata.Client client, String user, String desc) {
         try {
             return client.searchExperimentsByDesc(DEFAULT_GATEWAY, user, desc);
         } catch (AiravataSystemException e) {
@@ -444,7 +433,7 @@ public class CreateLaunchBES {
         return null;
     }
 
-    public static List<ExperimentSummary> searchExperimentsByApplication(Airavata.Client client, String user, String app) {
+    public static List<ExperimentSummaryModel> searchExperimentsByApplication(Airavata.Client client, String user, String app) {
         try {
             return client.searchExperimentsByApplication(DEFAULT_GATEWAY, user, app);
         } catch (AiravataSystemException e) {
@@ -461,10 +450,10 @@ public class CreateLaunchBES {
 
     public static void getExperiment(Airavata.Client client, String expId) throws Exception {
         try {
-            Experiment experiment = client.getExperiment(expId);
-            List<ErrorDetails> errors = experiment.getErrors();
+            ExperimentModel experiment = client.getExperiment(expId);
+            List<ErrorModel> errors = experiment.getErrors();
             if (errors != null && !errors.isEmpty()) {
-                for (ErrorDetails error : errors) {
+                for (ErrorModel error : errors) {
                     System.out.println("ERROR MESSAGE : " + error.getActualErrorMessage());
                 }
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/b00f20f2/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 7e31835..42ef184 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
@@ -25,17 +25,20 @@ import org.apache.airavata.api.Airavata;
 import org.apache.airavata.api.client.AiravataClientFactory;
 import org.apache.airavata.client.tools.RegisterSampleApplications;
 import org.apache.airavata.client.tools.RegisterSampleApplicationsUtils;
-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.*;
+import org.apache.airavata.model.application.io.DataType;
+import org.apache.airavata.model.application.io.InputDataObjectType;
+import org.apache.airavata.model.application.io.OutputDataObjectType;
+import org.apache.airavata.model.commons.ErrorModel;
 import org.apache.airavata.model.error.*;
+import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
 import org.apache.airavata.model.security.AuthzToken;
+import org.apache.airavata.model.status.ExperimentState;
 import org.apache.airavata.model.util.ExperimentModelUtil;
 import org.apache.airavata.model.util.ProjectModelUtil;
 import org.apache.airavata.model.workspace.Gateway;
 import org.apache.airavata.model.workspace.Project;
-import org.apache.airavata.model.workspace.experiment.*;
+import org.apache.airavata.model.experiment.*;
 import org.apache.thrift.TException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -191,13 +194,13 @@ public class CreateLaunchExperiment {
             while(allNotFinished) {
                 allNotFinished = false;
                 for (String exId : experimentIds) {
-                    Experiment experiment = airavataClient.getExperiment(exId);
-                    if(!experiment.getExperimentStatus().getExperimentState().equals(ExperimentState.COMPLETED)&&
-                            !experiment.getExperimentStatus().getExperimentState().equals(ExperimentState.FAILED)
-                            &&!experiment.getExperimentStatus().getExperimentState().equals(ExperimentState.CANCELED)){
+                    ExperimentModel experiment = airavataClient.getExperiment(exId);
+                    if(!experiment.getExperimentStatus().getState().equals(ExperimentState.COMPLETED)&&
+                            !experiment.getExperimentStatus().getState().equals(ExperimentState.FAILED)
+                            &&!experiment.getExperimentStatus().getState().equals(ExperimentState.CANCELED)){
                         allNotFinished = true;
                     }
-                    System.out.println(experiment.getExperimentID() + " " + experiment.getExperimentStatus().getExperimentState().name());
+                    System.out.println(experiment.getExperimentId() + " " + experiment.getExperimentStatus().getState().name());
                 }
                 System.out.println("----------------------------------------------------");
                 Thread.sleep(10000);
@@ -269,7 +272,7 @@ public class CreateLaunchExperiment {
             Project project = ProjectModelUtil.createProject("default", "admin", "test project");
             String projectId = client.createProject(DEFAULT_GATEWAY, project);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment(projectId, "admin", "echoExperiment", "SimpleEcho3", echoAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -278,8 +281,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(trestlesHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 30, 0, 1, "TG-STA110014S");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 30, 1);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -319,7 +322,7 @@ public class CreateLaunchExperiment {
             }
             List<OutputDataObjectType> exOut = client.getApplicationOutputs(echoAppId);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment("default", "admin", "echoExperiment", "SimpleEcho2", echoAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -329,19 +332,13 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(unicoreHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 30, 0, 1048576, "sds128");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 30, 1048576);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
-                        
                         userConfigurationData.setGenerateCert(false);
                         userConfigurationData.setUserDN("");
-
-                        // set output directory 
-                        AdvancedOutputDataHandling dataHandling = new AdvancedOutputDataHandling();
-                        dataHandling.setOutputDataDir("/tmp/airavata/output/" + UUID.randomUUID().toString() + "/");
-                        userConfigurationData.setAdvanceOutputDataHandling(dataHandling);
                         simpleExperiment.setUserConfigurationData(userConfigurationData);
 
                         return client.createExperiment(DEFAULT_GATEWAY, simpleExperiment);
@@ -376,7 +373,7 @@ public class CreateLaunchExperiment {
             List<OutputDataObjectType> exOut = client.getApplicationOutputs(mpiAppId);
 
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment("default", "admin", "mpiExperiment", "HelloMPI", mpiAppId, null);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -386,8 +383,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(unicoreHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 2, 1, 2, "normal", 30, 0, 1048576, "sds128");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 2, 1, 2, "normal", 30, 1048576);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -395,10 +392,6 @@ public class CreateLaunchExperiment {
                         userConfigurationData.setGenerateCert(false);
                         userConfigurationData.setUserDN("");
 
-                        // set output directory 
-                        AdvancedOutputDataHandling dataHandling = new AdvancedOutputDataHandling();
-                        dataHandling.setOutputDataDir("/tmp/airavata/output/" + UUID.randomUUID().toString() + "/");
-                        userConfigurationData.setAdvanceOutputDataHandling(dataHandling);
                         simpleExperiment.setUserConfigurationData(userConfigurationData);
 
                         return client.createExperiment(DEFAULT_GATEWAY, simpleExperiment);
@@ -428,7 +421,7 @@ public class CreateLaunchExperiment {
             setWRFInputs(exInputs);
             List<OutputDataObjectType> exOut = client.getApplicationOutputs(wrfAppId);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment("default", "admin", "WRFExperiment", "Testing", wrfAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -437,8 +430,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(stampedeHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 2, 32, 1, "development", 90, 0, 1, "TG-STA110014S");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 2, 32, 1, "development", 90, 1);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -484,7 +477,7 @@ public class CreateLaunchExperiment {
             setGROMACSInputs(exInputs);
             List<OutputDataObjectType> exOut = client.getApplicationOutputs(gromacsAppId);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment("default", "admin", "GromacsExperiment", "Testing", gromacsAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -493,8 +486,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(stampedeHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 16, 1, "development", 30, 0, 1, "TG-STA110014S");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 16, 1, "development", 30, 1);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -535,7 +528,7 @@ public class CreateLaunchExperiment {
             setESPRESSOInputs(exInputs);
             List<OutputDataObjectType> exOut = client.getApplicationOutputs(espressoAppId);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment("default", "admin", "EspressoExperiment", "Testing", espressoAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -544,8 +537,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(stampedeHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 16, 1, "development", 30, 0, 1, "TG-STA110014S");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 16, 1, "development", 30, 1);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -586,7 +579,7 @@ public class CreateLaunchExperiment {
             setTRINITYInputs(exInputs);
             List<OutputDataObjectType> exOut = client.getApplicationOutputs(trinityAppId);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment("default", "admin", "TrinityExperiment", "Testing", trinityAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -595,8 +588,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(stampedeHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 16, 1, "development", 30, 0, 1, "TG-STA110014S");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 16, 1, "development", 30, 1);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -637,7 +630,7 @@ public class CreateLaunchExperiment {
             setLAMMPSInputs(exInputs);
             List<OutputDataObjectType> exOut = client.getApplicationOutputs(lammpsAppId);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment("default", "admin", "LAMMPSExperiment", "Testing", lammpsAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -646,8 +639,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(stampedeHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 16, 1, "development", 30, 0, 1, "TG-STA110014S");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 16, 1, "development", 30, 1);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -686,7 +679,7 @@ public class CreateLaunchExperiment {
             setNWCHEMInputs(exInputs);
             List<OutputDataObjectType> exOut = client.getApplicationOutputs(nwchemAppId);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment("default", "admin", "NWchemExperiment", "Testing", nwchemAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -695,8 +688,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(stampedeHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 16, 1, "development", 30, 0, 1, "TG-STA110014S");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 16, 1, "development", 30, 1);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -735,7 +728,7 @@ public class CreateLaunchExperiment {
             setAUTODOCKInputs(exInputs);
             List<OutputDataObjectType> exOut = client.getApplicationOutputs(nwchemAppId);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment("default", "admin", "AutoDockExperiment", "Testing", autodockAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -744,8 +737,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(stampedeHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 16, 1, "development", 30, 0, 1, "TG-STA110014S");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 16, 1, "development", 30, 1);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -807,7 +800,7 @@ public class CreateLaunchExperiment {
             setWRFInputs(exInputs);
             List<OutputDataObjectType> exOut = client.getApplicationOutputs(wrfAppId);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment("default", "admin", "WRFExperiment", "Testing", wrfAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -816,8 +809,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(trestlesHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 30, 0, 1, "sds128");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 30, 1);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -854,7 +847,7 @@ public class CreateLaunchExperiment {
 
     public static void updateExperiment(Airavata.Client client, String expId) throws TException {
         try {
-            Experiment experiment = client.getExperiment(expId);
+            ExperimentModel experiment = client.getExperiment(expId);
             experiment.setDescription("updatedDescription");
             client.updateExperiment(expId, experiment);
         } catch (TException e) {
@@ -877,7 +870,7 @@ public class CreateLaunchExperiment {
             Project project = ProjectModelUtil.createProject("project1", "admin", "test project");
             String projectId = client.createProject(DEFAULT_GATEWAY, project);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment(projectId, "admin", "echoExperiment", "Echo Test", echoAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -886,8 +879,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(localHost)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 30, 0, 1, "");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 30, 1);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -931,13 +924,13 @@ public class CreateLaunchExperiment {
 //            Project project = ProjectModelUtil.createProject("default", "admin", "test project");
 //            String projectId = client.createProject(project);
 //
-//            Experiment simpleExperiment =
+//            ExperimentModel simpleExperiment =
 //                    ExperimentModelUtil.createSimpleExperiment(projectId, "admin", "sshEchoExperiment", "SSHEcho1", sshHostAppId.split(",")[1], exInputs);
 //            simpleExperiment.setExperimentOutputs(exOut);
 //
-//            ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(sshHostAppId.split(",")[0], 1, 1, 1, "normal", 1, 0, 1, "sds128");
+//            ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(sshHostAppId.split(",")[0], 1, 1, 1, "normal", 1, 0, 1, "sds128");
 //            scheduling.setResourceHostId("gw111.iu.xsede.org");
-//            UserConfigurationData userConfigurationData = new UserConfigurationData();
+//            UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
 //            userConfigurationData.setAiravataAutoSchedule(false);
 //            userConfigurationData.setOverrideManualScheduledParams(false);
 //            userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -971,7 +964,7 @@ public class CreateLaunchExperiment {
             Project project = ProjectModelUtil.createProject("default", "admin", "test project");
             String projectId = client.createProject(DEFAULT_GATEWAY, project);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment(projectId, "admin", "echoExperiment", "SimpleEcho3", echoAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -980,8 +973,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(stampedeHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 30, 0, 1, "TG-STA110014S");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 30, 1);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -1025,7 +1018,7 @@ public class CreateLaunchExperiment {
 //            Project project = ProjectModelUtil.createProject("default", "admin", "test project");
 //            String projectId = client.createProject(project);
 //
-//            Experiment simpleExperiment =
+//            ExperimentModel simpleExperiment =
 //                    ExperimentModelUtil.createSimpleExperiment(projectId, "admin", "echoExperiment", "SimpleEcho4", echoAppId, exInputs);
 //            simpleExperiment.setExperimentOutputs(exOut);
 //
@@ -1034,8 +1027,8 @@ public class CreateLaunchExperiment {
 //                for (String id : computeResources.keySet()){
 //                    String resourceName = computeResources.get(id);
 //                    if (resourceName.equals(stampedeHostName)){
-//                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 1, 0, 1, "TG-STA110014S");
-//                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+//                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 1, 0, 1, "TG-STA110014S");
+//                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
 //                        userConfigurationData.setAiravataAutoSchedule(false);
 //                        userConfigurationData.setOverrideManualScheduledParams(false);
 //                        userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -1044,9 +1037,9 @@ public class CreateLaunchExperiment {
 //                    }
 //                }
 //            }
-//            ComputationalResourceScheduling scheduling =
+//            ComputationalResourceSchedulingModel scheduling =
 //                    ExperimentModelUtil.createComputationResourceScheduling(sgeAppId.split(",")[0], 1, 1, 1, "normal", 1, 0, 1, "TG-STA110014S");
-//            UserConfigurationData userConfigurationData = new UserConfigurationData();
+//            UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
 //            userConfigurationData.setAiravataAutoSchedule(false);
 //            userConfigurationData.setOverrideManualScheduledParams(false);
 //            userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -1090,7 +1083,7 @@ public class CreateLaunchExperiment {
             Project project = ProjectModelUtil.createProject("default", "lahiru", "test project");
             String projectId = client.createProject(DEFAULT_GATEWAY, project);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment(projectId, "lahiru", "sshEchoExperiment", "SimpleEchoBR", echoAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -1099,8 +1092,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(br2HostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 30, 0, 1, null);
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 1, 1, 1, "normal", 30, 1);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -1137,7 +1130,7 @@ public class CreateLaunchExperiment {
             String projectId = client.createProject(DEFAULT_GATEWAY, project);
 
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment(projectId, "lg11w", "sshEchoExperiment", "StressMem", echoAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
             simpleExperiment.setExperimentInputs(exInputs);
@@ -1147,8 +1140,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(umassrcHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 10, 1, 1, "long", 60, 0, 1000, "airavata");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 10, 1, 1, "long", 60,1000);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -1198,7 +1191,7 @@ public class CreateLaunchExperiment {
             exOut.add(outputDataObjectType);
             exOut.add(output1);*/
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment("default", "lg11w", "LAMMPSExperiment", "Testing", lammpsAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -1207,8 +1200,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(umassrcHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 10, 16, 1, "long", 60, 0, 1000, "airavata");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 10, 16, 1, "long", 60, 1000);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -1262,7 +1255,7 @@ public class CreateLaunchExperiment {
             Project project = ProjectModelUtil.createProject("default", "admin", "test project");
             String projectId = client.createProject(DEFAULT_GATEWAY, project);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment(projectId, "admin", "sshEchoExperiment", "SimpleEchoBR", amberAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -1272,8 +1265,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(br2HostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "cpu", 20, 0, 1, null);
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "cpu", 20, 1);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -1327,7 +1320,7 @@ public class CreateLaunchExperiment {
             Project project = ProjectModelUtil.createProject("default", "admin", "test project");
             String projectId = client.createProject(DEFAULT_GATEWAY, project);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment(projectId, "admin", "sshEchoExperiment", "SimpleEchoBR", amberAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
 
@@ -1336,8 +1329,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(stampedeHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "development", 20, 0, 1, "TG-STA110014S");
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "development", 20, 1);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -1390,7 +1383,7 @@ public class CreateLaunchExperiment {
             Project project = ProjectModelUtil.createProject("default", "admin", "test project");
             String projectId = client.createProject(DEFAULT_GATEWAY, project);
 
-            Experiment simpleExperiment =
+            ExperimentModel simpleExperiment =
                     ExperimentModelUtil.createSimpleExperiment(projectId, "admin", "sshEchoExperiment", "SimpleEchoBR", amberAppId, exInputs);
             simpleExperiment.setExperimentOutputs(exOut);
             simpleExperiment.setEnableEmailNotification(true);
@@ -1400,8 +1393,8 @@ public class CreateLaunchExperiment {
                 for (String id : computeResources.keySet()) {
                     String resourceName = computeResources.get(id);
                     if (resourceName.equals(trestlesHostName)) {
-                        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "normal", 20, 0, 1, null);
-                        UserConfigurationData userConfigurationData = new UserConfigurationData();
+                        ComputationalResourceSchedulingModel scheduling = ExperimentModelUtil.createComputationResourceScheduling(id, 4, 1, 1, "normal", 20, 1);
+                        UserConfigurationDataModel userConfigurationData = new UserConfigurationDataModel();
                         userConfigurationData.setAiravataAutoSchedule(false);
                         userConfigurationData.setOverrideManualScheduledParams(false);
                         userConfigurationData.setComputationalResourceScheduling(scheduling);
@@ -1449,7 +1442,7 @@ public class CreateLaunchExperiment {
         }
     }
 
-    public static List<Experiment> getExperimentsForUser(Airavata.Client client, String user) {
+    public static List<ExperimentModel> getExperimentsForUser(Airavata.Client client, String user) {
         try {
             return client.getAllUserExperiments(DEFAULT_GATEWAY, user);
         } catch (AiravataSystemException e) {
@@ -1510,7 +1503,7 @@ public class CreateLaunchExperiment {
     }
 
 
-    public static List<ExperimentSummary> searchExperimentsByName(Airavata.Client client, String user, String expName) {
+    public static List<ExperimentSummaryModel> searchExperimentsByName(Airavata.Client client, String user, String expName) {
         try {
             return client.searchExperimentsByName(DEFAULT_GATEWAY, user, expName);
         } catch (AiravataSystemException e) {
@@ -1525,7 +1518,7 @@ public class CreateLaunchExperiment {
         return null;
     }
 
-    public static List<ExperimentSummary> searchExperimentsByDesc(Airavata.Client client, String user, String desc) {
+    public static List<ExperimentSummaryModel> searchExperimentsByDesc(Airavata.Client client, String user, String desc) {
         try {
             return client.searchExperimentsByDesc(DEFAULT_GATEWAY, user, desc);
         } catch (AiravataSystemException e) {
@@ -1540,7 +1533,7 @@ public class CreateLaunchExperiment {
         return null;
     }
 
-    public static List<ExperimentSummary> searchExperimentsByApplication(Airavata.Client client, String user, String app) {
+    public static List<ExperimentSummaryModel> searchExperimentsByApplication(Airavata.Client client, String user, String app) {
         try {
             return client.searchExperimentsByApplication(DEFAULT_GATEWAY, user, app);
         } catch (AiravataSystemException e) {
@@ -1557,10 +1550,10 @@ public class CreateLaunchExperiment {
 
     public static void getExperiment(Airavata.Client client, String expId) throws Exception {
         try {
-            Experiment experiment = client.getExperiment(expId);
-            List<ErrorDetails> errors = experiment.getErrors();
+            ExperimentModel experiment = client.getExperiment(expId);
+            List<ErrorModel> errors = experiment.getErrors();
             if (errors != null && !errors.isEmpty()) {
-                for (ErrorDetails error : errors) {
+                for (ErrorModel error : errors) {
                     System.out.println("ERROR MESSAGE : " + error.getActualErrorMessage());
                 }
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/b00f20f2/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperimentUS3.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperimentUS3.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperimentUS3.java
index 2c4aede..2065033 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperimentUS3.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperimentUS3.java
@@ -31,7 +31,7 @@ import org.apache.airavata.model.error.InvalidRequestException;
 import org.apache.airavata.model.util.ExperimentModelUtil;
 import org.apache.airavata.model.util.ProjectModelUtil;
 import org.apache.airavata.model.workspace.Project;
-import org.apache.airavata.model.workspace.experiment.*;
+import org.apache.airavata.model.experiment.*;
 import org.apache.thrift.TException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

http://git-wip-us.apache.org/repos/asf/airavata/blob/b00f20f2/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
index 868514b..7a0b10c 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/RegisterSampleData.java
@@ -25,9 +25,6 @@ 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.DataMovementInterface;
 import org.apache.airavata.model.appcatalog.computeresource.DataMovementProtocol;
@@ -38,7 +35,10 @@ 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.application.io.DataType;
+import org.apache.airavata.model.application.io.InputDataObjectType;
+import org.apache.airavata.model.application.io.OutputDataObjectType;
+import org.apache.airavata.model.error.AiravataClientException;
 import org.apache.airavata.model.workspace.Gateway;
 import org.apache.thrift.TException;
 
@@ -64,7 +64,7 @@ public class RegisterSampleData {
 
     private String gatewayId;
 
-    public static void main(String[] args) throws AiravataClientConnectException, TException {
+    public static void main(String[] args) throws AiravataClientException, TException {
         RegisterSampleData registerSampleData = new RegisterSampleData();
         registerSampleData.init();
         registerSampleData.register();
@@ -81,7 +81,7 @@ public class RegisterSampleData {
         System.out.println(sampleScriptDir);
     }
 
-    public void register() throws AiravataClientConnectException, TException {
+    public void register() throws AiravataClientException, TException {
         airavataClient = AiravataClientFactory.createAiravataClient(THRIFT_SERVER_HOST, THRIFT_SERVER_PORT);
         gatewayId = registerGateway();
         registerLocalhost();

http://git-wip-us.apache.org/repos/asf/airavata/blob/b00f20f2/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/TestCreateLaunchExperiment.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/TestCreateLaunchExperiment.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/TestCreateLaunchExperiment.java
index 197a363..a57298f 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/TestCreateLaunchExperiment.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/TestCreateLaunchExperiment.java
@@ -28,7 +28,7 @@ import org.apache.airavata.model.error.AiravataClientException;
 import org.apache.airavata.model.error.AiravataSystemException;
 import org.apache.airavata.model.error.InvalidRequestException;
 import org.apache.airavata.model.security.AuthzToken;
-import org.apache.airavata.model.workspace.experiment.*;
+import org.apache.airavata.model.experiment.*;
 import org.apache.thrift.TException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

http://git-wip-us.apache.org/repos/asf/airavata/blob/b00f20f2/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
index 359f183..e7f2dec 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterOGCEUS3Application.java
@@ -29,9 +29,6 @@ import java.util.Map;
 import org.apache.airavata.api.Airavata;
 import org.apache.airavata.api.client.AiravataClientFactory;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType;
-import org.apache.airavata.model.appcatalog.appinterface.DataType;
-import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
-import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
 import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
 import org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand;
 import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
@@ -41,6 +38,9 @@ import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
 import org.apache.airavata.model.appcatalog.computeresource.SecurityProtocol;
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
+import org.apache.airavata.model.application.io.DataType;
+import org.apache.airavata.model.application.io.InputDataObjectType;
+import org.apache.airavata.model.application.io.OutputDataObjectType;
 import org.apache.airavata.model.error.AiravataClientException;
 import org.apache.thrift.TException;
 import org.slf4j.Logger;

http://git-wip-us.apache.org/repos/asf/airavata/blob/b00f20f2/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
index cd00d7e..0189114 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
@@ -30,10 +30,12 @@ import org.apache.airavata.api.Airavata;
 import org.apache.airavata.api.client.AiravataClientFactory;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType;
-import org.apache.airavata.model.appcatalog.appinterface.*;
 import org.apache.airavata.model.appcatalog.computeresource.*;
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
 import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
+import org.apache.airavata.model.application.io.DataType;
+import org.apache.airavata.model.application.io.InputDataObjectType;
+import org.apache.airavata.model.application.io.OutputDataObjectType;
 import org.apache.airavata.model.error.AiravataClientException;
 import org.apache.thrift.TException;
 import org.slf4j.Logger;

http://git-wip-us.apache.org/repos/asf/airavata/blob/b00f20f2/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
index a466b9f..7184f85 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplicationsUtils.java
@@ -24,10 +24,12 @@ package org.apache.airavata.client.tools;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType;
-import org.apache.airavata.model.appcatalog.appdeployment.SetEnvPaths;
 import org.apache.airavata.model.appcatalog.appinterface.*;
 import org.apache.airavata.model.appcatalog.computeresource.*;
 import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
+import org.apache.airavata.model.application.io.DataType;
+import org.apache.airavata.model.application.io.InputDataObjectType;
+import org.apache.airavata.model.application.io.OutputDataObjectType;
 
 import java.util.List;
 import java.util.Map;