Repository: airavata
Updated Branches:
  refs/heads/master b1f0b00d3 -> 7c5f1c85a


updating CPI s to have the gateway id - AIRAVATA-1607 AIRAVATA-1608


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

Branch: refs/heads/master
Commit: 7c5f1c85a250d66332eecbdf77ee64c581cb554a
Parents: b1f0b00
Author: Chathuri Wimalasena <[email protected]>
Authored: Wed Mar 4 13:36:32 2015 -0500
Committer: Chathuri Wimalasena <[email protected]>
Committed: Wed Mar 4 13:36:32 2015 -0500

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   | 121 ++++++++++++++++---
 .../api/server/util/DataModelUtils.java         |   8 +-
 .../client/samples/CreateLaunchExperiment.java  |   4 +-
 .../appcatalog/cpi/ApplicationDeployment.java   |   4 +-
 .../appcatalog/cpi/ApplicationInterface.java    |   8 +-
 .../appcatalog/cpi/WorkflowCatalog.java         |   4 +-
 .../data/impl/ApplicationDeploymentImpl.java    |   4 +-
 .../data/impl/ApplicationInterfaceImpl.java     |   8 +-
 .../catalog/data/impl/WorkflowCatalogImpl.java  |   4 +-
 .../app/catalog/test/AppDeploymentTest.java     |  11 +-
 .../app/catalog/test/AppInterfaceTest.java      |  12 +-
 .../airavata/integration/SimpleEchoIT.java      |   4 +-
 .../SingleAppIntegrationTestBase.java           |   6 +-
 .../integration/tools/DocumentCreatorNew.java   |   5 +-
 .../airavata/messaging/client/TestReader.java   |   3 -
 .../orchestrator/util/DataModelUtils.java       |  10 +-
 .../registry/jpa/impl/ExperimentRegistry.java   |   5 +-
 .../registry/jpa/impl/LoggingRegistryImpl.java  |  35 ++++--
 .../registry/jpa/impl/ProjectRegistry.java      |   8 +-
 .../registry/jpa/impl/RegistryImpl.java         |   6 +-
 .../apache/airavata/registry/cpi/Registry.java  |   2 +-
 .../airavata/workflow/engine/WorkflowUtils.java |  10 +-
 22 files changed, 195 insertions(+), 87 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
 
b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index ff90bb2..32aa08b 100644
--- 
a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ 
b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -126,7 +126,7 @@ public class AiravataServerHandler implements 
Airavata.Iface {
                 logger.error("Gateway id cannot be empty...");
                 throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
             }
-            return (String)registry.add(ParentDataType.GATEWAY, gateway);
+            return (String)registry.add(ParentDataType.GATEWAY, gateway, 
gateway.getGatewayId());
         } catch (RegistryException e) {
             logger.error("Error while adding gateway", e);
             AiravataSystemException exception = new AiravataSystemException();
@@ -258,7 +258,15 @@ public class AiravataServerHandler implements 
Airavata.Iface {
                 logger.error("Project name and owner cannot be empty...");
                 throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
             }
-            return (String)registry.add(ParentDataType.PROJECT, project);
+            if (!validateString(gatewayId)){
+                logger.error("Gateway ID cannot be empty...");
+                throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+            }
+            if (!isGatewayExist(gatewayId)){
+                logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+                throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+            }
+            return (String)registry.add(ParentDataType.PROJECT, project, 
gatewayId);
         } catch (RegistryException e) {
             logger.error("Error while creating the project", e);
             AiravataSystemException exception = new AiravataSystemException();
@@ -349,6 +357,10 @@ public class AiravataServerHandler implements 
Airavata.Iface {
             exception.setMessage("Username cannot be empty. Please provide a 
valid user..");
             throw exception;
         }
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         List<Project> projects = new ArrayList<Project>();
         try {
             if (!ResourceUtils.isUserExist(userName)){
@@ -386,6 +398,10 @@ public class AiravataServerHandler implements 
Airavata.Iface {
             exception.setMessage("Username cannot be empty. Please provide a 
valid user..");
             throw exception;
         }
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         try {
             if (!ResourceUtils.isUserExist(userName)){
                 logger.error("User does not exist in the system. Please 
provide a valid user..");
@@ -424,6 +440,10 @@ public class AiravataServerHandler implements 
Airavata.Iface {
             exception.setMessage("Username cannot be empty. Please provide a 
valid user..");
             throw exception;
         }
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         try {
             if (!ResourceUtils.isUserExist(userName)){
                 logger.error("User does not exist in the system. Please 
provide a valid user..");
@@ -462,6 +482,10 @@ public class AiravataServerHandler implements 
Airavata.Iface {
             exception.setMessage("Username cannot be empty. Please provide a 
valid user..");
             throw exception;
         }
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         try {
             if (!ResourceUtils.isUserExist(userName)){
                 logger.error("User does not exist in the system. Please 
provide a valid user..");
@@ -500,6 +524,10 @@ public class AiravataServerHandler implements 
Airavata.Iface {
             exception.setMessage("Username cannot be empty. Please provide a 
valid user..");
             throw exception;
         }
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         try {
             if (!ResourceUtils.isUserExist(userName)){
                 logger.error("User does not exist in the system. Please 
provide a valid user..");
@@ -535,6 +563,10 @@ public class AiravataServerHandler implements 
Airavata.Iface {
             exception.setMessage("Username cannot be empty. Please provide a 
valid user..");
             throw exception;
         }
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         try {
             if (!ResourceUtils.isUserExist(userName)){
                 logger.error("User does not exist in the system. Please 
provide a valid user..");
@@ -571,6 +603,10 @@ public class AiravataServerHandler implements 
Airavata.Iface {
             exception.setMessage("Username cannot be empty. Please provide a 
valid user..");
             throw exception;
         }
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         try {
             if (!ResourceUtils.isUserExist(userName)){
                 logger.error("User does not exist in the system. Please 
provide a valid user..");
@@ -607,6 +643,10 @@ public class AiravataServerHandler implements 
Airavata.Iface {
             exception.setMessage("Username cannot be empty. Please provide a 
valid user..");
             throw exception;
         }
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         try {
             if (!ResourceUtils.isUserExist(userName)){
                 logger.error("User does not exist in the system. Please 
provide a valid user..");
@@ -692,6 +732,10 @@ public class AiravataServerHandler implements 
Airavata.Iface {
             exception.setMessage("Username cannot be empty. Please provide a 
valid user..");
             throw exception;
         }
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         try {
             if (!ResourceUtils.isUserExist(userName)){
                 logger.error("User does not exist in the system. Please 
provide a valid user..");
@@ -751,7 +795,11 @@ public class AiravataServerHandler implements 
Airavata.Iface {
                 exception.setMessage("Cannot create experiments with empty 
experiment name");
                 throw exception;
             }
-            String experimentId = 
(String)registry.add(ParentDataType.EXPERIMENT, experiment);
+            if (!isGatewayExist(gatewayId)){
+                logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+                throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+            }
+            String experimentId = 
(String)registry.add(ParentDataType.EXPERIMENT, experiment, gatewayId);
             if (ServerSettings.isRabbitMqPublishEnabled()){
                 gatewayId = ServerSettings.getDefaultUserGateway();
                 ExperimentStatusChangeEvent event = new 
ExperimentStatusChangeEvent(ExperimentState.CREATED,
@@ -1309,7 +1357,7 @@ public class AiravataServerHandler implements 
Airavata.Iface {
             if (existingExperiment.getErrors() != null ){
                 existingExperiment.getErrors().clear();
             }
-            return (String)registry.add(ParentDataType.EXPERIMENT, 
existingExperiment);
+            return (String)registry.add(ParentDataType.EXPERIMENT, 
existingExperiment, null);
         } catch (Exception e) {
             logger.errorId(existingExperimentID, "Error while cloning the 
experiment with existing configuration...", e);
             AiravataSystemException exception = new AiravataSystemException();
@@ -1355,9 +1403,13 @@ public class AiravataServerHandler implements 
Airavata.Iface {
      */
     @Override
     public String registerApplicationModule(String gatewayId, 
ApplicationModule applicationModule) throws InvalidRequestException, 
AiravataClientException, AiravataSystemException, TException {
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         try {
             appCatalog = AppCatalogFactory.getAppCatalog();
-            return 
appCatalog.getApplicationInterface().addApplicationModule(applicationModule);
+            return 
appCatalog.getApplicationInterface().addApplicationModule(applicationModule, 
gatewayId);
         } catch (AppCatalogException e) {
             logger.error("Error while adding application module...", e);
             AiravataSystemException exception = new AiravataSystemException();
@@ -1413,9 +1465,13 @@ public class AiravataServerHandler implements 
Airavata.Iface {
 
     @Override
     public List<ApplicationModule> getAllAppModules(String gatewayId) throws 
InvalidRequestException, AiravataClientException, AiravataSystemException, 
TException {
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         try {
             appCatalog = AppCatalogFactory.getAppCatalog();
-            return 
appCatalog.getApplicationInterface().getAllApplicationModules();
+            return 
appCatalog.getApplicationInterface().getAllApplicationModules(gatewayId);
         } catch (AppCatalogException e) {
             logger.error("Error while retrieving all application modules...", 
e);
             AiravataSystemException exception = new AiravataSystemException();
@@ -1454,9 +1510,13 @@ public class AiravataServerHandler implements 
Airavata.Iface {
      */
     @Override
     public String registerApplicationDeployment(String gatewayId, 
ApplicationDeploymentDescription applicationDeployment) throws 
InvalidRequestException, AiravataClientException, AiravataSystemException, 
TException {
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         try {
             appCatalog = AppCatalogFactory.getAppCatalog();
-            return 
appCatalog.getApplicationDeployment().addApplicationDeployment(applicationDeployment);
+            return 
appCatalog.getApplicationDeployment().addApplicationDeployment(applicationDeployment,
 gatewayId);
         } catch (AppCatalogException e) {
             logger.error("Error while adding application deployment...", e);
             AiravataSystemException exception = new AiravataSystemException();
@@ -1540,9 +1600,13 @@ public class AiravataServerHandler implements 
Airavata.Iface {
      */
     @Override
     public List<ApplicationDeploymentDescription> 
getAllApplicationDeployments(String gatewayId) throws InvalidRequestException, 
AiravataClientException, AiravataSystemException, TException {
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         try {
             appCatalog = AppCatalogFactory.getAppCatalog();
-            return 
appCatalog.getApplicationDeployment().getAllApplicationDeployements();
+            return 
appCatalog.getApplicationDeployment().getAllApplicationDeployements(gatewayId);
         } catch (AppCatalogException e) {
             logger.error("Error while retrieving application deployments...", 
e);
             AiravataSystemException exception = new AiravataSystemException();
@@ -1588,9 +1652,13 @@ public class AiravataServerHandler implements 
Airavata.Iface {
      */
     @Override
     public String registerApplicationInterface(String gatewayId, 
ApplicationInterfaceDescription applicationInterface) throws 
InvalidRequestException, AiravataClientException, AiravataSystemException, 
TException {
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         try {
             appCatalog = AppCatalogFactory.getAppCatalog();
-            return 
appCatalog.getApplicationInterface().addApplicationInterface(applicationInterface);
+            return 
appCatalog.getApplicationInterface().addApplicationInterface(applicationInterface,
 gatewayId);
         } catch (AppCatalogException e) {
             logger.error("Error while adding application interface...", e);
             AiravataSystemException exception = new AiravataSystemException();
@@ -1673,9 +1741,13 @@ public class AiravataServerHandler implements 
Airavata.Iface {
      */
     @Override
     public Map<String, String> getAllApplicationInterfaceNames(String 
gatewayId) throws InvalidRequestException, AiravataClientException, 
AiravataSystemException, TException {
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         try {
             appCatalog = AppCatalogFactory.getAppCatalog();
-            List<ApplicationInterfaceDescription> allApplicationInterfaces = 
appCatalog.getApplicationInterface().getAllApplicationInterfaces();
+            List<ApplicationInterfaceDescription> allApplicationInterfaces = 
appCatalog.getApplicationInterface().getAllApplicationInterfaces(gatewayId);
             Map<String, String> allApplicationInterfacesMap = new 
HashMap<String, String>();
             if (allApplicationInterfaces != null && 
!allApplicationInterfaces.isEmpty()){
                 for (ApplicationInterfaceDescription interfaceDescription : 
allApplicationInterfaces){
@@ -1700,9 +1772,13 @@ public class AiravataServerHandler implements 
Airavata.Iface {
      */
     @Override
     public List<ApplicationInterfaceDescription> 
getAllApplicationInterfaces(String gatewayId) throws InvalidRequestException, 
AiravataClientException, AiravataSystemException, TException {
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
         try {
             appCatalog = AppCatalogFactory.getAppCatalog();
-            return 
appCatalog.getApplicationInterface().getAllApplicationInterfaces();
+            return 
appCatalog.getApplicationInterface().getAllApplicationInterfaces(gatewayId);
         } catch (AppCatalogException e) {
             logger.error("Error while retrieving application interfaces...", 
e);
             AiravataSystemException exception = new AiravataSystemException();
@@ -2612,7 +2688,7 @@ public class AiravataServerHandler implements 
Airavata.Iface {
      */
     @Override
     public GatewayResourceProfile getGatewayResourceProfile(String gatewayID) 
throws InvalidRequestException, AiravataClientException, 
AiravataSystemException, TException {
-       try {
+        try {
             appCatalog = AppCatalogFactory.getAppCatalog();
             GwyResourceProfile gatewayProfile = appCatalog.getGatewayProfile();
             return gatewayProfile.getGatewayProfile(gatewayID);
@@ -2635,7 +2711,7 @@ public class AiravataServerHandler implements 
Airavata.Iface {
      */
     @Override
     public boolean updateGatewayResourceProfile(String gatewayID, 
GatewayResourceProfile gatewayResourceProfile) throws InvalidRequestException, 
AiravataClientException, AiravataSystemException, TException {
-       try {
+        try {
             appCatalog = AppCatalogFactory.getAppCatalog();
             GwyResourceProfile gatewayProfile = appCatalog.getGatewayProfile();
             gatewayProfile.updateGatewayResourceProfile(gatewayID, 
gatewayResourceProfile);
@@ -2658,7 +2734,7 @@ public class AiravataServerHandler implements 
Airavata.Iface {
      */
     @Override
     public boolean deleteGatewayResourceProfile(String gatewayID) throws 
InvalidRequestException, AiravataClientException, AiravataSystemException, 
TException {
-       try {
+        try {
             appCatalog = AppCatalogFactory.getAppCatalog();
             GwyResourceProfile gatewayProfile = appCatalog.getGatewayProfile();
             gatewayProfile.removeGatewayResourceProfile(gatewayID);
@@ -2843,8 +2919,13 @@ public class AiravataServerHandler implements 
Airavata.Iface {
     @Override
        public List<String> getAllWorkflows(String gatewayId) throws 
InvalidRequestException,
                        AiravataClientException, AiravataSystemException, 
TException {
-               try {
-                       return getWorkflowCatalog().getAllWorkflows();
+
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
+        try {
+                       return getWorkflowCatalog().getAllWorkflows(gatewayId);
                } catch (AppCatalogException e) {
                        String msg = "Error in retrieving all workflow template 
Ids.";
                        logger.error(msg, e);
@@ -2888,8 +2969,12 @@ public class AiravataServerHandler implements 
Airavata.Iface {
        public String registerWorkflow(String gatewayId, Workflow workflow)
                        throws InvalidRequestException, AiravataClientException,
                        AiravataSystemException, TException {
-               try {
-                       return getWorkflowCatalog().registerWorkflow(workflow);
+        if (!isGatewayExist(gatewayId)){
+            logger.error("Gateway does not exist.Please provide a valid 
gateway id...");
+            throw new 
AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
+        }
+        try {
+                       return getWorkflowCatalog().registerWorkflow(workflow, 
gatewayId);
                } catch (AppCatalogException e) {
                        String msg = "Error in registering the workflow 
"+workflow.getName()+".";
                        logger.error(msg, e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/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 3bb02c2..5f4db49 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
@@ -21,18 +21,18 @@
 
 package org.apache.airavata.api.server.util;
 
-import java.sql.SQLException;
-import java.util.List;
-
 import org.airavata.appcatalog.cpi.AppCatalogException;
 import org.airavata.appcatalog.cpi.ApplicationInterface;
 import org.apache.aiaravata.application.catalog.data.impl.AppCatalogFactory;
+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.workflow.catalog.WorkflowCatalogFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.List;
+
 public class DataModelUtils {
     private static final Logger logger = 
LoggerFactory.getLogger(DataModelUtils.class);
        public static ExecutionType getExecutionType(Experiment experiment) 
throws Exception{
@@ -43,7 +43,7 @@ public class DataModelUtils {
                        if (allApplicationInterfaceIds.contains(applicationId)){
                                return ExecutionType.SINGLE_APP;
                        } else {
-                               List<String> allWorkflows = 
WorkflowCatalogFactory.getWorkflowCatalog().getAllWorkflows();
+                               List<String> allWorkflows = 
WorkflowCatalogFactory.getWorkflowCatalog().getAllWorkflows(ServerSettings.getDefaultUserGateway());
                                if (allWorkflows.contains(applicationId)){
                                        return ExecutionType.WORKFLOW;
                                }

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/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 01f017a..eb1b833 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
@@ -54,13 +54,13 @@ public class CreateLaunchExperiment {
        
     private final static Logger logger = 
LoggerFactory.getLogger(CreateLaunchExperiment.class);
     private static final String DEFAULT_USER = "default.registry.user";
-    private static final String DEFAULT_GATEWAY = "default.registry.gateway";
+    private static final String DEFAULT_GATEWAY = "php_reference_gateway";
     private static Airavata.Client airavataClient;
 
     private static String echoAppId = 
"Echo_f828a575-7f17-4149-9d45-abe2aa9c6109";
     private static String mpiAppId = 
"HelloMPI_720e159f-198f-4daa-96ca-9f5eafee92c9";
     private static String wrfAppId = 
"WRF_7ad5da38-c08b-417c-a9ea-da9298839762";
-    private static String amberAppId = 
"Amber_98ac2eec-b253-4c43-81dc-54d845f64337";
+    private static String amberAppId = 
"Amber_6321b79f-3891-4421-b6c0-e294043a302e";
     private static String gromacsAppId = 
"GROMACS_05622038-9edd-4cb1-824e-0b7cb993364b";
     private static String espressoAppId = 
"ESPRESSO_10cc2820-5d0b-4c63-9546-8a8b595593c1";
     private static String lammpsAppId = 
"LAMMPS_10893eb5-3840-438c-8446-d26c7ecb001f";

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationDeployment.java
----------------------------------------------------------------------
diff --git 
a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationDeployment.java
 
b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationDeployment.java
index 2ea7963..b3dfcba 100644
--- 
a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationDeployment.java
+++ 
b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationDeployment.java
@@ -30,7 +30,7 @@ public interface ApplicationDeployment {
      * @param deploymentDescription application deployment
      * @return unique id for application deployment
      */
-    String addApplicationDeployment (ApplicationDeploymentDescription 
deploymentDescription) throws AppCatalogException;
+    String addApplicationDeployment (ApplicationDeploymentDescription 
deploymentDescription, String gatewayId) throws AppCatalogException;
 
     /**
      * This method will update application deployment
@@ -53,7 +53,7 @@ public interface ApplicationDeployment {
      */
     List<ApplicationDeploymentDescription> getApplicationDeployements 
(Map<String, String> filters) throws AppCatalogException;
 
-    List<ApplicationDeploymentDescription> getAllApplicationDeployements () 
throws AppCatalogException;
+    List<ApplicationDeploymentDescription> getAllApplicationDeployements 
(String gatewayId) throws AppCatalogException;
 
     List<String> getAllApplicationDeployementIds () throws AppCatalogException;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationInterface.java
----------------------------------------------------------------------
diff --git 
a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationInterface.java
 
b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationInterface.java
index 76e99a3..6b5a42d 100644
--- 
a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationInterface.java
+++ 
b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationInterface.java
@@ -33,14 +33,14 @@ public interface ApplicationInterface {
      * @param applicationModule application module
      * @return unique module id
      */
-    String addApplicationModule (ApplicationModule applicationModule) throws 
AppCatalogException;
+    String addApplicationModule (ApplicationModule applicationModule, String 
gatewayId) throws AppCatalogException;
 
     /**
      * This method will add application interface description
      * @param applicationInterfaceDescription application interface
      * @return unique app interface id
      */
-    String addApplicationInterface(ApplicationInterfaceDescription 
applicationInterfaceDescription) throws AppCatalogException;
+    String addApplicationInterface(ApplicationInterfaceDescription 
applicationInterfaceDescription, String gatewayId) throws AppCatalogException;
 
     /**
      * This method will add an application module mapping
@@ -86,7 +86,7 @@ public interface ApplicationInterface {
      */
     List<ApplicationModule> getApplicationModules(Map<String, String> filters) 
throws AppCatalogException;
 
-    List<ApplicationModule> getAllApplicationModules() throws 
AppCatalogException;
+    List<ApplicationModule> getAllApplicationModules(String gatewayId) throws 
AppCatalogException;
 
     /**
      * This method will return a list of application interfaces according to 
given search criteria
@@ -99,7 +99,7 @@ public interface ApplicationInterface {
      * This method will return all the application interfaces
      * @return list of all the application interfaces
      */
-    List<ApplicationInterfaceDescription> getAllApplicationInterfaces() throws 
AppCatalogException;
+    List<ApplicationInterfaceDescription> getAllApplicationInterfaces(String 
gatewayId) throws AppCatalogException;
 
     List<String> getAllApplicationInterfaceIds() throws AppCatalogException;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/WorkflowCatalog.java
----------------------------------------------------------------------
diff --git 
a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/WorkflowCatalog.java
 
b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/WorkflowCatalog.java
index b3be2f8..538dc01 100644
--- 
a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/WorkflowCatalog.java
+++ 
b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/WorkflowCatalog.java
@@ -25,13 +25,13 @@ import java.util.List;
 
 public interface WorkflowCatalog {
 
-    public List<String> getAllWorkflows() throws AppCatalogException;
+    public List<String> getAllWorkflows(String gatewayId) throws 
AppCatalogException;
 
     public org.apache.airavata.model.Workflow getWorkflow(String 
workflowTemplateId) throws AppCatalogException;
 
     public void deleteWorkflow(String workflowTemplateId) throws 
AppCatalogException;
 
-    public String registerWorkflow(org.apache.airavata.model.Workflow 
workflow) throws AppCatalogException;
+    public String registerWorkflow(org.apache.airavata.model.Workflow 
workflow, String gatewayId) throws AppCatalogException;
 
     public void updateWorkflow(String workflowTemplateId, 
org.apache.airavata.model.Workflow workflow) throws AppCatalogException;
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationDeploymentImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationDeploymentImpl.java
 
b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationDeploymentImpl.java
index 5b90ca6..a383a05 100644
--- 
a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationDeploymentImpl.java
+++ 
b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationDeploymentImpl.java
@@ -41,7 +41,7 @@ public class ApplicationDeploymentImpl implements 
ApplicationDeployment {
     private final static Logger logger = 
LoggerFactory.getLogger(ApplicationDeploymentImpl.class);
 
     @Override
-    public String addApplicationDeployment(ApplicationDeploymentDescription 
deploymentDescription) throws AppCatalogException {
+    public String addApplicationDeployment(ApplicationDeploymentDescription 
deploymentDescription, String gatewayId) throws AppCatalogException {
         try {
             AppDeploymentResource deploymentResource = new 
AppDeploymentResource();
             ComputeResourceResource computeHostResource = new 
ComputeResourceResource();
@@ -360,7 +360,7 @@ public class ApplicationDeploymentImpl implements 
ApplicationDeployment {
     }
 
     @Override
-    public List<ApplicationDeploymentDescription> 
getAllApplicationDeployements() throws AppCatalogException {
+    public List<ApplicationDeploymentDescription> 
getAllApplicationDeployements(String gatewayId) throws AppCatalogException {
         List<ApplicationDeploymentDescription> deploymentDescriptions = new 
ArrayList<ApplicationDeploymentDescription>();
         try {
             AppDeploymentResource resource = new AppDeploymentResource();

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java
 
b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java
index 889aeb6..85b8b60 100644
--- 
a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java
+++ 
b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationInterfaceImpl.java
@@ -43,7 +43,7 @@ public class ApplicationInterfaceImpl implements 
ApplicationInterface {
     private final static Logger logger = 
LoggerFactory.getLogger(ApplicationInterfaceImpl.class);
 
     @Override
-    public String addApplicationModule(ApplicationModule applicationModule) 
throws AppCatalogException {
+    public String addApplicationModule(ApplicationModule applicationModule, 
String gatewayId) throws AppCatalogException {
         try {
             AppModuleResource moduleResource = new AppModuleResource();
             moduleResource.setModuleName(applicationModule.getAppModuleName());
@@ -64,7 +64,7 @@ public class ApplicationInterfaceImpl implements 
ApplicationInterface {
     }
 
     @Override
-    public String addApplicationInterface(ApplicationInterfaceDescription 
applicationInterfaceDescription) throws AppCatalogException {
+    public String addApplicationInterface(ApplicationInterfaceDescription 
applicationInterfaceDescription, String gatewayId) throws AppCatalogException {
         try {
             AppInterfaceResource resource = new AppInterfaceResource();
             
resource.setAppName(applicationInterfaceDescription.getApplicationName());
@@ -315,7 +315,7 @@ public class ApplicationInterfaceImpl implements 
ApplicationInterface {
     }
 
     @Override
-    public List<ApplicationModule> getAllApplicationModules() throws 
AppCatalogException {
+    public List<ApplicationModule> getAllApplicationModules(String gatewayId) 
throws AppCatalogException {
         List<ApplicationModule> applicationModules = new 
ArrayList<ApplicationModule>();
         try {
             AppModuleResource resource = new AppModuleResource();
@@ -352,7 +352,7 @@ public class ApplicationInterfaceImpl implements 
ApplicationInterface {
     }
 
     @Override
-    public List<ApplicationInterfaceDescription> getAllApplicationInterfaces() 
throws AppCatalogException {
+    public List<ApplicationInterfaceDescription> 
getAllApplicationInterfaces(String gatewayId) throws AppCatalogException {
         try {
             AppInterfaceResource resource = new AppInterfaceResource();
             List<Resource> resources = resource.getAll();

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java
 
b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java
index a57ac49..f51b051 100644
--- 
a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java
+++ 
b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/WorkflowCatalogImpl.java
@@ -41,7 +41,7 @@ public class WorkflowCatalogImpl implements WorkflowCatalog {
     private final static Logger logger = 
LoggerFactory.getLogger(WorkflowCatalogImpl.class);
 
     @Override
-    public List<String> getAllWorkflows() throws AppCatalogException {
+    public List<String> getAllWorkflows(String gatewayId) throws 
AppCatalogException {
         List<String> workflowIds = new ArrayList<String>();
         try {
             WorkflowResource resource = new WorkflowResource();
@@ -77,7 +77,7 @@ public class WorkflowCatalogImpl implements WorkflowCatalog {
     }
 
     @Override
-    public String registerWorkflow(Workflow workflow) throws 
AppCatalogException {
+    public String registerWorkflow(Workflow workflow, String gatewayId) throws 
AppCatalogException {
         try {
             WorkflowResource resource = new WorkflowResource();
             
resource.setWfTemplateId(AppCatalogUtils.getID(workflow.getName()));

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppDeploymentTest.java
----------------------------------------------------------------------
diff --git 
a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppDeploymentTest.java
 
b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppDeploymentTest.java
index 1d45007..0040770 100644
--- 
a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppDeploymentTest.java
+++ 
b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppDeploymentTest.java
@@ -22,14 +22,11 @@
 package org.apache.airavata.app.catalog.test;
 
 import org.airavata.appcatalog.cpi.*;
-import org.airavata.appcatalog.cpi.ApplicationDeployment;
-import org.airavata.appcatalog.cpi.ApplicationInterface;
-import org.airavata.appcatalog.cpi.ComputeResource;
 import org.apache.aiaravata.application.catalog.data.impl.AppCatalogFactory;
-import org.apache.aiaravata.application.catalog.data.model.*;
 import 
org.apache.aiaravata.application.catalog.data.resources.AbstractResource;
 import org.apache.airavata.app.catalog.test.util.Initialize;
 import org.apache.airavata.common.utils.AiravataUtils;
+import org.apache.airavata.common.utils.ServerSettings;
 import 
org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
 import org.apache.airavata.model.appcatalog.appdeployment.SetEnvPaths;
@@ -83,7 +80,7 @@ public class AppDeploymentTest {
         ApplicationModule module = new ApplicationModule();
         module.setAppModuleName("WRF");
         module.setAppModuleVersion("1.0.0");
-        String wrfModuleId = appInt.addApplicationModule(module);
+        String wrfModuleId = appInt.addApplicationModule(module, 
ServerSettings.getDefaultUserGateway());
 
         ApplicationDeploymentDescription description = new 
ApplicationDeploymentDescription();
         description.setAppModuleId(wrfModuleId);
@@ -106,7 +103,7 @@ public class AppDeploymentTest {
         appEvns.add(createSetEnvPath("name6", "val6"));
         description.setSetEnvironment(appEvns);
 
-        String appDepId = appDep.addApplicationDeployment(description);
+        String appDepId = appDep.addApplicationDeployment(description, 
ServerSettings.getDefaultUserGateway());
         ApplicationDeploymentDescription app = null;
         if (appDep.isAppDeploymentExists(appDepId)){
             app = appDep.getApplicationDeployement(appDepId);
@@ -134,7 +131,7 @@ public class AppDeploymentTest {
         List<String> allApplicationDeployementIds = 
appDep.getAllApplicationDeployementIds();
         System.out.println("******** Size of all App deployments ids 
*********** : " + allApplicationDeployementIds.size());
 
-        List<ApplicationDeploymentDescription> allApplicationDeployements = 
appDep.getAllApplicationDeployements();
+        List<ApplicationDeploymentDescription> allApplicationDeployements = 
appDep.getAllApplicationDeployements(ServerSettings.getDefaultUserGateway());
         System.out.println("******** Size of all App deployments *********** : 
" + allApplicationDeployements.size());
 
         assertTrue("App interface saved successfully", app != null);

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppInterfaceTest.java
----------------------------------------------------------------------
diff --git 
a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppInterfaceTest.java
 
b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppInterfaceTest.java
index e85732c..6ac4d81 100644
--- 
a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppInterfaceTest.java
+++ 
b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppInterfaceTest.java
@@ -27,7 +27,9 @@ import org.airavata.appcatalog.cpi.ApplicationInterface;
 import org.apache.aiaravata.application.catalog.data.impl.AppCatalogFactory;
 import 
org.apache.aiaravata.application.catalog.data.resources.AbstractResource;
 import org.apache.airavata.app.catalog.test.util.Initialize;
+import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.utils.AiravataUtils;
+import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
 import 
org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
 import org.apache.airavata.model.appcatalog.appinterface.DataType;
@@ -96,7 +98,7 @@ public class AppInterfaceTest {
             description.setApplicationModules(modules);
             description.setApplicationInputs(inputs);
             description.setApplicationOutputs(outputs);
-            String appID = appInterface.addApplicationInterface(description);
+            String appID = appInterface.addApplicationInterface(description, 
ServerSettings.getDefaultUserGateway());
             System.out.println("********** application id ************* : " + 
appID);
             ApplicationInterfaceDescription ainterface = null;
             if (appInterface.isApplicationInterfaceExists(appID)){
@@ -141,7 +143,7 @@ public class AppInterfaceTest {
             List<ApplicationInterfaceDescription> apps = 
appInterface.getApplicationInterfaces(filters);
             System.out.println("********** Size og app interfaces 
************* : " + apps.size());
 
-            List<ApplicationInterfaceDescription> appInts = 
appInterface.getAllApplicationInterfaces();
+            List<ApplicationInterfaceDescription> appInts = 
appInterface.getAllApplicationInterfaces(ServerSettings.getDefaultUserGateway());
             System.out.println("********** Size of all app interfaces 
************* : " + appInts.size());
 
             List<String> appIntIds = 
appInterface.getAllApplicationInterfaceIds();
@@ -150,6 +152,8 @@ public class AppInterfaceTest {
             assertTrue("App interface saved successfully", ainterface != null);
         }catch (AppCatalogException e) {
             e.printStackTrace();
+        } catch (ApplicationSettingsException e) {
+            e.printStackTrace();
         }
 
     }
@@ -160,9 +164,11 @@ public class AppInterfaceTest {
             module.setAppModuleName(moduleName);
             module.setAppModuleVersion("1.0.0");
             module.setAppModuleDescription("WeatherForcast");
-            return 
appcatalog.getApplicationInterface().addApplicationModule(module);
+            return 
appcatalog.getApplicationInterface().addApplicationModule(module, 
ServerSettings.getDefaultUserGateway());
         } catch (AppCatalogException e) {
             logger.error(e.getMessage(), e);
+        } catch (ApplicationSettingsException e) {
+            e.printStackTrace();
         }
         return null;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/integration-tests/src/test/java/org/apache/airavata/integration/SimpleEchoIT.java
----------------------------------------------------------------------
diff --git 
a/modules/integration-tests/src/test/java/org/apache/airavata/integration/SimpleEchoIT.java
 
b/modules/integration-tests/src/test/java/org/apache/airavata/integration/SimpleEchoIT.java
index 0b94c43..20713f9 100644
--- 
a/modules/integration-tests/src/test/java/org/apache/airavata/integration/SimpleEchoIT.java
+++ 
b/modules/integration-tests/src/test/java/org/apache/airavata/integration/SimpleEchoIT.java
@@ -21,6 +21,7 @@
 
 package org.apache.airavata.integration;
 
+import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.integration.tools.DocumentCreatorNew;
 import org.apache.airavata.model.appcatalog.appinterface.DataType;
 import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
@@ -77,8 +78,7 @@ public class SimpleEchoIT extends 
SingleAppIntegrationTestBase {
         exOut.add(output);
 
         Project project = ProjectModelUtil.createProject("project1", "admin", 
"test project");
-        String projectId = getClient().createProject("default", project);
-
+        String projectId = getClient().createProject("php_reference_gateway", 
project);
         Experiment simpleExperiment =
                 ExperimentModelUtil.createSimpleExperiment(projectId, "admin", 
"echoExperiment", appId, appId, exInputs);
         simpleExperiment.setExperimentOutputs(exOut);

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/integration-tests/src/test/java/org/apache/airavata/integration/SingleAppIntegrationTestBase.java
----------------------------------------------------------------------
diff --git 
a/modules/integration-tests/src/test/java/org/apache/airavata/integration/SingleAppIntegrationTestBase.java
 
b/modules/integration-tests/src/test/java/org/apache/airavata/integration/SingleAppIntegrationTestBase.java
index a2f0b91..86786aa 100644
--- 
a/modules/integration-tests/src/test/java/org/apache/airavata/integration/SingleAppIntegrationTestBase.java
+++ 
b/modules/integration-tests/src/test/java/org/apache/airavata/integration/SingleAppIntegrationTestBase.java
@@ -22,6 +22,8 @@ package org.apache.airavata.integration;
 
 import java.util.Date;
 
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+import org.apache.airavata.common.utils.ServerSettings;
 import org.apache.airavata.model.error.AiravataSystemException;
 import org.apache.airavata.model.error.ExperimentNotFoundException;
 import org.apache.airavata.model.error.InvalidRequestException;
@@ -36,8 +38,8 @@ import org.junit.Assert;
  */
 public class SingleAppIntegrationTestBase extends AbstractIntegrationTest {
 
-    protected String createExperiment(Experiment experiment) throws 
AiravataSystemException, InvalidRequestException, TException {
-        return getClient().createExperiment("default", experiment);
+    protected String createExperiment(Experiment experiment) throws 
AiravataSystemException, InvalidRequestException, TException, 
ApplicationSettingsException {
+        return getClient().createExperiment("php_reference_gateway", 
experiment);
     }
 
     protected void launchExperiment(String expId) throws 
ExperimentNotFoundException, AiravataSystemException, InvalidRequestException, 
TException {

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/integration-tests/src/test/java/org/apache/airavata/integration/tools/DocumentCreatorNew.java
----------------------------------------------------------------------
diff --git 
a/modules/integration-tests/src/test/java/org/apache/airavata/integration/tools/DocumentCreatorNew.java
 
b/modules/integration-tests/src/test/java/org/apache/airavata/integration/tools/DocumentCreatorNew.java
index 281fc90..273efce 100644
--- 
a/modules/integration-tests/src/test/java/org/apache/airavata/integration/tools/DocumentCreatorNew.java
+++ 
b/modules/integration-tests/src/test/java/org/apache/airavata/integration/tools/DocumentCreatorNew.java
@@ -50,7 +50,7 @@ import java.util.*;
 
 public class DocumentCreatorNew {
 
-    private static final String DEFAULT_GATEWAY = "default.registry.gateway";
+    private static final String DEFAULT_GATEWAY = "php_reference_gateway";
     private AppCatalog appcatalog = null;
     private String trestleshpcHostAddress = "trestles.sdsc.edu";
     private String lonestarHostAddress = "lonestar.tacc.utexas.edu";
@@ -133,7 +133,7 @@ public class DocumentCreatorNew {
         if (gatewayResourceProfile == null) {
             gatewayResourceProfile = new GatewayResourceProfile();
 //                             gatewayResourceProfile.setGatewayID("default");
-            gatewayResourceProfile.setGatewayID("default");
+            gatewayResourceProfile.setGatewayID("php_reference_gateway");
             
gatewayResourceProfile.setGatewayID(client.registerGatewayResourceProfile(gatewayResourceProfile));
         }
 //     }
@@ -163,7 +163,6 @@ public class DocumentCreatorNew {
 
         ApplicationModule module = 
DocumentCreatorUtils.createApplicationModule("echo", "1.1", null);
         
module.setAppModuleId(client.registerApplicationModule(DEFAULT_GATEWAY, 
module));
-        ;
 
         ApplicationDeploymentDescription deployment = 
DocumentCreatorUtils.createApplicationDeployment(host.getComputeResourceId(), 
module.getAppModuleId(), "/bin/echo", ApplicationParallelismType.SERIAL, 
"SSHEchoApplication");
         client.registerApplicationDeployment(DEFAULT_GATEWAY, deployment);

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/messaging/client/src/main/java/org/apache/airavata/messaging/client/TestReader.java
----------------------------------------------------------------------
diff --git 
a/modules/messaging/client/src/main/java/org/apache/airavata/messaging/client/TestReader.java
 
b/modules/messaging/client/src/main/java/org/apache/airavata/messaging/client/TestReader.java
index eec87c8..cf4e7f4 100644
--- 
a/modules/messaging/client/src/main/java/org/apache/airavata/messaging/client/TestReader.java
+++ 
b/modules/messaging/client/src/main/java/org/apache/airavata/messaging/client/TestReader.java
@@ -5,9 +5,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Stream;
 
-/**
- * Created by chathuri on 2/20/15.
- */
 public class TestReader {
     public static void main(String[] args) throws IOException {
         String fileName = 
"/Users/chathuri/dev/airavata/docs/messaging_framework/gw111/results_350";

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/orchestrator/airavata-orchestrator-service/src/main/java/org/apache/airavata/orchestrator/util/DataModelUtils.java
----------------------------------------------------------------------
diff --git 
a/modules/orchestrator/airavata-orchestrator-service/src/main/java/org/apache/airavata/orchestrator/util/DataModelUtils.java
 
b/modules/orchestrator/airavata-orchestrator-service/src/main/java/org/apache/airavata/orchestrator/util/DataModelUtils.java
index f2ccbff..3243eb8 100644
--- 
a/modules/orchestrator/airavata-orchestrator-service/src/main/java/org/apache/airavata/orchestrator/util/DataModelUtils.java
+++ 
b/modules/orchestrator/airavata-orchestrator-service/src/main/java/org/apache/airavata/orchestrator/util/DataModelUtils.java
@@ -26,6 +26,8 @@ import java.util.List;
 import org.airavata.appcatalog.cpi.AppCatalogException;
 import org.airavata.appcatalog.cpi.ApplicationInterface;
 import org.apache.aiaravata.application.catalog.data.impl.AppCatalogFactory;
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+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.workflow.catalog.WorkflowCatalogFactory;
@@ -43,14 +45,16 @@ public class DataModelUtils {
                        if (allApplicationInterfaceIds.contains(applicationId)){
                                return ExecutionType.SINGLE_APP;
                        } else {
-                               List<String> allWorkflows = 
WorkflowCatalogFactory.getWorkflowCatalog().getAllWorkflows();
+                               List<String> allWorkflows = 
WorkflowCatalogFactory.getWorkflowCatalog().getAllWorkflows(ServerSettings.getDefaultUserGateway());
                                if (allWorkflows.contains(applicationId)){
                                        return ExecutionType.WORKFLOW;
                                }
                        }
                } catch (AppCatalogException e) {
                        logger.error(e.getMessage(), e);
-               }
-               return ExecutionType.UNKNOWN;
+               } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+        }
+        return ExecutionType.UNKNOWN;
        }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
index 7575d6c..d2d99a0 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
@@ -56,7 +56,7 @@ public class ExperimentRegistry {
 
     }
 
-    public String addExperiment(Experiment experiment) throws 
RegistryException {
+    public String addExperiment(Experiment experiment, String gatewayId) 
throws RegistryException {
         String experimentID;
         try {
             if (!ResourceUtils.isUserExist(experiment.getUserName())) {
@@ -68,7 +68,8 @@ public class ExperimentRegistry {
             experimentResource.setExpID(experimentID);
             experimentResource.setExpName(experiment.getName());
             experimentResource.setExecutionUser(experiment.getUserName());
-            experimentResource.setGateway(gatewayResource);
+            GatewayResource gateway = 
(GatewayResource)ResourceUtils.getGateway(gatewayId);
+            experimentResource.setGateway(gateway);
             
experimentResource.setEnableEmailNotifications(experiment.isEnableEmailNotification());
             if (!workerResource.isProjectExists(experiment.getProjectID())) {
                 logger.error("Project does not exist in the system..");

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/LoggingRegistryImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/LoggingRegistryImpl.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/LoggingRegistryImpl.java
index 1420faa..a288884 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/LoggingRegistryImpl.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/LoggingRegistryImpl.java
@@ -30,47 +30,58 @@ import java.util.Map;
 public class LoggingRegistryImpl implements Registry {
     private final static Logger logger = 
LoggerFactory.getLogger(LoggingRegistryImpl.class);
 
-    public Object add(ChildDataType dataType, Object newObjectToAdd, Object 
dependentIdentifiers) throws RegistryException {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    @Override
+    public Object add(ParentDataType dataType, Object newObjectToAdd, String 
gatewayId) throws RegistryException {
+        return null;
     }
 
-    public Object add(ParentDataType dataType, Object newObjectToAdd) throws 
RegistryException {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    @Override
+    public Object add(ChildDataType dataType, Object newObjectToAdd, Object 
dependentIdentifiers) throws RegistryException {
+        return null;
     }
 
+    @Override
     public void update(RegistryModelType dataType, Object newObjectToUpdate, 
Object identifier) throws RegistryException {
-        //To change body of implemented methods use File | Settings | File 
Templates.
+
     }
 
+    @Override
     public void update(RegistryModelType dataType, Object identifier, String 
fieldName, Object value) throws RegistryException {
-        //To change body of implemented methods use File | Settings | File 
Templates.
+
     }
 
+    @Override
     public Object get(RegistryModelType dataType, Object identifier) throws 
RegistryException {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        return null;
     }
 
+    @Override
     public List<Object> get(RegistryModelType dataType, String fieldName, 
Object value) throws RegistryException {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        return null;
     }
 
+    @Override
     public List<Object> search(RegistryModelType dataType, Map<String, String> 
filters) throws RegistryException {
         return null;
     }
 
+    @Override
     public Object getValue(RegistryModelType dataType, Object identifier, 
String field) throws RegistryException {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        return null;
     }
 
+    @Override
     public List<String> getIds(RegistryModelType dataType, String fieldName, 
Object value) throws RegistryException {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        return null;
     }
 
+    @Override
     public void remove(RegistryModelType dataType, Object identifier) throws 
RegistryException {
-        //To change body of implemented methods use File | Settings | File 
Templates.
+
     }
 
+    @Override
     public boolean isExist(RegistryModelType dataType, Object identifier) 
throws RegistryException {
-        return false;  //To change body of implemented methods use File | 
Settings | File Templates.
+        return false;
     }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ProjectRegistry.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ProjectRegistry.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ProjectRegistry.java
index 6765d9c..21980b2 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ProjectRegistry.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ProjectRegistry.java
@@ -25,6 +25,7 @@ import java.util.*;
 
 import org.apache.airavata.common.utils.AiravataUtils;
 import org.apache.airavata.model.workspace.Project;
+import org.apache.airavata.persistance.registry.jpa.Resource;
 import org.apache.airavata.persistance.registry.jpa.ResourceType;
 import org.apache.airavata.persistance.registry.jpa.ResourceUtils;
 import org.apache.airavata.persistance.registry.jpa.resources.*;
@@ -52,7 +53,7 @@ public class ProjectRegistry {
         }
     }
 
-    public String addProject (Project project) throws RegistryException{
+    public String addProject (Project project, String gatewayId) throws 
RegistryException{
         String projectId;
         try {
             if (!ResourceUtils.isUserExist(project.getOwner())){
@@ -65,7 +66,8 @@ public class ProjectRegistry {
             projectResource.setName(project.getName());
             projectResource.setDescription(project.getDescription());
             
projectResource.setCreationTime(AiravataUtils.getTime(project.getCreationTime()));
-            projectResource.setGateway(workerResource.getGateway());
+            GatewayResource gateway = 
(GatewayResource)ResourceUtils.getGateway(gatewayId);
+            projectResource.setGateway(gateway);
             WorkerResource worker = new WorkerResource(project.getOwner(), 
workerResource.getGateway());
             projectResource.setWorker(worker);
             projectResource.save();
@@ -107,7 +109,7 @@ public class ProjectRegistry {
             existingProject.setDescription(project.getDescription());
             existingProject.setName(project.getName());
             
existingProject.setCreationTime(AiravataUtils.getTime(project.getCreationTime()));
-            existingProject.setGateway(gatewayResource);
+//            existingProject.setGateway(gatewayResource);
             UserResource user = 
(UserResource)ResourceUtils.getUser(project.getOwner());
             if (!gatewayResource.isExists(ResourceType.GATEWAY_WORKER, 
user.getUserName())){
                 workerResource = 
ResourceUtils.addGatewayWorker(gatewayResource, user);

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
index d09c0e9..d2af1cd 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/RegistryImpl.java
@@ -100,13 +100,13 @@ public class RegistryImpl implements Registry {
      * @return return the identifier to identify the object
      */
     @Override
-    public Object add(ParentDataType dataType, Object newObjectToAdd) throws 
RegistryException {
+    public Object add(ParentDataType dataType, Object newObjectToAdd, String 
gatewayId) throws RegistryException {
         try {
             switch (dataType) {
                 case PROJECT:
-                    return projectRegistry.addProject((Project)newObjectToAdd);
+                    return projectRegistry.addProject((Project)newObjectToAdd, 
gatewayId);
                 case EXPERIMENT:
-                    return experimentRegistry.addExperiment((Experiment) 
newObjectToAdd);
+                    return experimentRegistry.addExperiment((Experiment) 
newObjectToAdd, gatewayId);
                 case GATEWAY:
                     return gatewayRegistry.addGateway((Gateway)newObjectToAdd);
                 default:

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/Registry.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/Registry.java
 
b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/Registry.java
index ae71149..6d0ad4f 100644
--- 
a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/Registry.java
+++ 
b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/Registry.java
@@ -36,7 +36,7 @@ public interface Registry {
      *                       etc
      * @return return the identifier to identify the object
      */
-    public Object add(ParentDataType dataType, Object newObjectToAdd) throws 
RegistryException ;
+    public Object add(ParentDataType dataType, Object newObjectToAdd, String 
gatewayId) throws RegistryException ;
 
     /**
      * This method is to add an object in to the registry

http://git-wip-us.apache.org/repos/asf/airavata/blob/7c5f1c85/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/WorkflowUtils.java
----------------------------------------------------------------------
diff --git 
a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/WorkflowUtils.java
 
b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/WorkflowUtils.java
index fb2a6fa..e975c58 100644
--- 
a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/WorkflowUtils.java
+++ 
b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/WorkflowUtils.java
@@ -26,6 +26,8 @@ import java.util.List;
 import org.airavata.appcatalog.cpi.AppCatalogException;
 import org.airavata.appcatalog.cpi.ApplicationInterface;
 import org.apache.aiaravata.application.catalog.data.impl.AppCatalogFactory;
+import org.apache.airavata.common.exception.ApplicationSettingsException;
+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.workflow.catalog.WorkflowCatalogFactory;
@@ -42,14 +44,16 @@ public class WorkflowUtils {
                        if (allApplicationInterfaceIds.contains(applicationId)){
                                return ExecutionType.SINGLE_APP;
                        } else {
-                               List<String> allWorkflows = 
WorkflowCatalogFactory.getWorkflowCatalog().getAllWorkflows();
+                               List<String> allWorkflows = 
WorkflowCatalogFactory.getWorkflowCatalog().getAllWorkflows(ServerSettings.getDefaultUserGateway());
                                if (allWorkflows.contains(applicationId)){
                                        return ExecutionType.WORKFLOW;
                                }
                        }
                } catch (AppCatalogException e) {
             logger.error(e.getMessage(), e);
-               }
-               return ExecutionType.UNKNOWN;
+               } catch (ApplicationSettingsException e) {
+            logger.error(e.getMessage(), e);
+        }
+        return ExecutionType.UNKNOWN;
        }
 }

Reply via email to