You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2015/06/04 22:37:36 UTC

[50/52] [abbrv] [partial] airavata git commit: registry refactoring

http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/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 f59179e..5f25f8a 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
@@ -38,8 +38,8 @@ 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.registry.cpi.Registry;
-import org.apache.airavata.registry.cpi.RegistryModelType;
+import org.apache.airavata.registry.cpi.ExperimentCatalog;
+import org.apache.airavata.registry.cpi.ExperimentCatalogModelType;
 import org.apache.curator.framework.CuratorFramework;
 import org.apache.curator.utils.ZKPaths;
 import org.slf4j.Logger;
@@ -50,18 +50,18 @@ import java.util.Calendar;
 
 public class AiravataExperimentStatusUpdator implements AbstractActivityListener {
     private final static Logger logger = LoggerFactory.getLogger(AiravataExperimentStatusUpdator.class);
-    private Registry airavataRegistry;
+    private ExperimentCatalog airavataExperimentCatalog;
     private MonitorPublisher monitorPublisher;
     private Publisher publisher;
     private CuratorFramework curatorClient;
     private RabbitMQTaskLaunchConsumer consumer;
 
-    public Registry getAiravataRegistry() {
-        return airavataRegistry;
+    public ExperimentCatalog getAiravataExperimentCatalog() {
+        return airavataExperimentCatalog;
     }
 
-    public void setAiravataRegistry(Registry airavataRegistry) {
-        this.airavataRegistry = airavataRegistry;
+    public void setAiravataExperimentCatalog(ExperimentCatalog airavataExperimentCatalog) {
+        this.airavataExperimentCatalog = airavataExperimentCatalog;
     }
     
     @Subscribe
@@ -69,7 +69,7 @@ public class AiravataExperimentStatusUpdator implements AbstractActivityListener
 		try {
 			boolean updateExperimentStatus=true;
             boolean clean= false;
-			ExecutionType executionType = DataModelUtils.getExecutionType((Experiment) airavataRegistry.get(RegistryModelType.EXPERIMENT, nodeStatus.getWorkflowNodeIdentity().getExperimentId()));
+			ExecutionType executionType = DataModelUtils.getExecutionType((Experiment) airavataExperimentCatalog.get(ExperimentCatalogModelType.EXPERIMENT, nodeStatus.getWorkflowNodeIdentity().getExperimentId()));
             String experimentNode = ServerSettings.getSetting(Constants.ZOOKEEPER_GFAC_EXPERIMENT_NODE, "/gfac-experiments");
             String experimentPath = experimentNode + File.separator + ServerSettings.getSetting(Constants.ZOOKEEPER_GFAC_SERVER_NAME)
                     + File.separator + nodeStatus.getWorkflowNodeIdentity().getExperimentId();
@@ -183,7 +183,7 @@ public class AiravataExperimentStatusUpdator implements AbstractActivityListener
     }
 
     public  ExperimentState updateExperimentStatus(String experimentId, ExperimentState state) throws Exception {
-    	Experiment details = (Experiment)airavataRegistry.get(RegistryModelType.EXPERIMENT, experimentId);
+    	Experiment details = (Experiment) airavataExperimentCatalog.get(ExperimentCatalogModelType.EXPERIMENT, experimentId);
         if(details == null) {
             details = new Experiment();
             details.setExperimentID(experimentId);
@@ -194,15 +194,15 @@ public class AiravataExperimentStatusUpdator implements AbstractActivityListener
         status.setExperimentState(state);
         details.setExperimentStatus(status);
         logger.info("Updating the experiment status of experiment: " + experimentId + " to " + status.getExperimentState().toString());
-        airavataRegistry.update(RegistryModelType.EXPERIMENT_STATUS, status, experimentId);
+        airavataExperimentCatalog.update(ExperimentCatalogModelType.EXPERIMENT_STATUS, status, experimentId);
         return details.getExperimentStatus().getExperimentState();
 
     }
 
 	public void setup(Object... configurations) {
 		for (Object configuration : configurations) {
-			if (configuration instanceof Registry){
-				this.airavataRegistry=(Registry)configuration;
+			if (configuration instanceof ExperimentCatalog){
+				this.airavataExperimentCatalog =(ExperimentCatalog)configuration;
 			} else if (configuration instanceof MonitorPublisher){
 				this.monitorPublisher=(MonitorPublisher) configuration;
 			} else if (configuration instanceof Publisher){

http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/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 8af8956..8ca5c8c 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,8 +21,8 @@
 
 package org.apache.airavata.api.server.util;
 
-import org.airavata.appcatalog.cpi.AppCatalogException;
-import org.airavata.appcatalog.cpi.ApplicationInterface;
+import org.apache.airavata.registry.cpi.AppCatalogException;
+import org.apache.airavata.registry.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;

http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DatabaseCreator.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DatabaseCreator.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DatabaseCreator.java
index 0d857ba..3a62688 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DatabaseCreator.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/DatabaseCreator.java
@@ -266,10 +266,10 @@ public class DatabaseCreator {
                 DatabaseType databaseType = DatabaseCreator.getDatabaseType(conn);
                 if(databaseType.equals(DatabaseType.derby)){
                     is = Thread.currentThread().getContextClassLoader()
-                            .getResourceAsStream("registry-derby.sql");
+                            .getResourceAsStream("registry-core/src/main/resources/registry-derby.sql");
                 }else if(databaseType.equals(DatabaseType.derby)){
                     is = Thread.currentThread().getContextClassLoader()
-                            .getResourceAsStream("registry-mysql.sql");
+                            .getResourceAsStream("registry-core/src/main/resources/registry-mysql.sql");
                 }
             }
             reader = new BufferedReader(new InputStreamReader(is));

http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/RegistryInitUtil.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/RegistryInitUtil.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/RegistryInitUtil.java
index d7c100b..438bc6a 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/RegistryInitUtil.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/util/RegistryInitUtil.java
@@ -29,12 +29,12 @@ import java.sql.SQLException;
 
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.utils.ServerSettings;
-import org.apache.airavata.experiment.catalog.ResourceType;
-import org.apache.airavata.experiment.catalog.ResourceUtils;
-import org.apache.airavata.experiment.catalog.resources.GatewayResource;
-import org.apache.airavata.experiment.catalog.resources.ProjectResource;
-import org.apache.airavata.experiment.catalog.resources.UserResource;
-import org.apache.airavata.experiment.catalog.resources.WorkerResource;
+import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
+import org.apache.airavata.registry.core.experiment.catalog.ResourceUtils;
+import org.apache.airavata.registry.core.experiment.catalog.resources.GatewayResource;
+import org.apache.airavata.registry.core.experiment.catalog.resources.ProjectResource;
+import org.apache.airavata.registry.core.experiment.catalog.resources.UserResource;
+import org.apache.airavata.registry.core.experiment.catalog.resources.WorkerResource;
 import org.apache.derby.drda.NetworkServerControl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/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 5809122..dd7856e 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
@@ -83,7 +83,7 @@ public class CreateLaunchExperiment {
         airavataClient = AiravataClientFactory.createAiravataClient(THRIFT_SERVER_HOST, THRIFT_SERVER_PORT);
         AuthzToken token = new AuthzToken("empty_token");
         System.out.println("API version is " + airavataClient.getAPIVersion(token));
-//        registerApplications(); // run this only the first time
+        registerApplications(); // run this only the first time
         createAndLaunchExp();
     }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalog.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalog.java b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalog.java
deleted file mode 100644
index 8ae92c9..0000000
--- a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalog.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.airavata.appcatalog.cpi;
-
-public interface AppCatalog {
-    /**
-     * Get ComputeResource interface
-     * @return ComputeResource interface
-     */
-    ComputeResource getComputeResource() throws AppCatalogException;
-
-    /**
-     * Get application interface
-     * @return application interface
-     */
-    ApplicationInterface getApplicationInterface() throws AppCatalogException;
-
-    /**
-     * Get application deployment interface
-     * @return application deployment interface
-     */
-    ApplicationDeployment getApplicationDeployment() throws AppCatalogException;
-
-    /**
-     * Get Gateway profile interface
-     * @return Gateway profile interface
-     * @throws AppCatalogException
-     */
-    GwyResourceProfile getGatewayProfile() throws AppCatalogException;
-
-    /**
-     * Get workflow catalog interface
-     * @return workflow catalog interface
-     * @throws AppCatalogException
-     */
-    WorkflowCatalog getWorkflowCatalog() throws AppCatalogException;
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalogException.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalogException.java b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalogException.java
deleted file mode 100644
index c1a3c9b..0000000
--- a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/AppCatalogException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.airavata.appcatalog.cpi;
-
-public class AppCatalogException extends Exception{
-    private static final long serialVersionUID = -2849422320139467602L;
-
-    public AppCatalogException(Throwable e) {
-        super(e);
-    }
-
-    public AppCatalogException(String message) {
-        super(message, null);
-    }
-
-    public AppCatalogException(String message, Throwable e) {
-        super(message, e);
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/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
deleted file mode 100644
index b3dfcba..0000000
--- a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationDeployment.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.airavata.appcatalog.cpi;
-
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
-
-import java.util.List;
-import java.util.Map;
-
-public interface ApplicationDeployment {
-    /**
-     * Add application deployment
-     * @param deploymentDescription application deployment
-     * @return unique id for application deployment
-     */
-    String addApplicationDeployment (ApplicationDeploymentDescription deploymentDescription, String gatewayId) throws AppCatalogException;
-
-    /**
-     * This method will update application deployment
-     * @param deploymentId unique deployment id
-     * @param updatedDeployment updated deployment
-     */
-    void updateApplicationDeployment (String deploymentId, ApplicationDeploymentDescription updatedDeployment) throws AppCatalogException;;
-
-    /**
-     * This method will retrive application deployement
-     * @param deploymentId unique deployment id
-     * @return application deployment
-     */
-    ApplicationDeploymentDescription getApplicationDeployement (String deploymentId) throws AppCatalogException;
-
-    /**
-     * This method will return a list of application deployments according to given search criteria
-     * @param filters map should be provided as the field name and it's value
-     * @return list of application deployments
-     */
-    List<ApplicationDeploymentDescription> getApplicationDeployements (Map<String, String> filters) throws AppCatalogException;
-
-    List<ApplicationDeploymentDescription> getAllApplicationDeployements (String gatewayId) throws AppCatalogException;
-
-    List<String> getAllApplicationDeployementIds () throws AppCatalogException;
-
-    /**
-     * Check whether application deployment exists
-     * @param deploymentId unique deployment id
-     * @return true or false
-     */
-    boolean isAppDeploymentExists (String deploymentId) throws AppCatalogException;
-
-    /**
-     * Remove application deployment
-     * @param deploymentId unique deployment id
-     */
-    void removeAppDeployment (String deploymentId) throws AppCatalogException;
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/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
deleted file mode 100644
index 6b5a42d..0000000
--- a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ApplicationInterface.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.airavata.appcatalog.cpi;
-
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
-import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
-import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
-import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
-
-import java.util.List;
-import java.util.Map;
-
-public interface ApplicationInterface {
-    /**
-     * This method will add an application module
-     * @param applicationModule application module
-     * @return unique module id
-     */
-    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, String gatewayId) throws AppCatalogException;
-
-    /**
-     * This method will add an application module mapping
-     * @param moduleId unique module Id
-     * @param interfaceId unique interface id
-     */
-    void addApplicationModuleMapping (String moduleId, String interfaceId) throws AppCatalogException;
-
-    /**
-     * This method will update application module
-     * @param moduleId unique module Id
-     * @param updatedModule updated module
-     * @throws AppCatalogException
-     */
-    void updateApplicationModule (String moduleId, ApplicationModule updatedModule) throws AppCatalogException;
-
-    /**
-     * This method will update application interface
-     * @param interfaceId unique interface id
-     * @param updatedInterface updated app interface
-     * @throws AppCatalogException
-     */
-    void updateApplicationInterface (String interfaceId, ApplicationInterfaceDescription updatedInterface) throws AppCatalogException;
-
-    /**
-     * This method will retrieve application module by given module id
-     * @param moduleId unique module Id
-     * @return application module object
-     */
-    ApplicationModule getApplicationModule (String moduleId) throws AppCatalogException;
-
-    /**
-     * This method will retrieve application interface by given interface id
-     * @param interfaceId unique interface id
-     * @return application interface desc
-     */
-    ApplicationInterfaceDescription getApplicationInterface(String interfaceId) throws AppCatalogException;
-
-    /**
-     * This method will return a list of application modules according to given search criteria
-     * @param filters map should be provided as the field name and it's value
-     * @return list of application modules
-     */
-    List<ApplicationModule> getApplicationModules(Map<String, String> filters) throws AppCatalogException;
-
-    List<ApplicationModule> getAllApplicationModules(String gatewayId) throws AppCatalogException;
-
-    /**
-     * This method will return a list of application interfaces according to given search criteria
-     * @param filters map should be provided as the field name and it's value
-     * @return list of application interfaces
-     */
-    List<ApplicationInterfaceDescription> getApplicationInterfaces(Map<String, String> filters) throws AppCatalogException;
-
-    /**
-     * This method will return all the application interfaces
-     * @return list of all the application interfaces
-     */
-    List<ApplicationInterfaceDescription> getAllApplicationInterfaces(String gatewayId) throws AppCatalogException;
-
-    List<String> getAllApplicationInterfaceIds() throws AppCatalogException;
-
-    /**
-     * Remove application interface
-     * @param interfaceId unique interface id
-     */
-    boolean removeApplicationInterface (String interfaceId) throws AppCatalogException;
-
-    /**
-     * Remove application module
-     * @param moduleId unique module Id
-     */
-    boolean removeApplicationModule (String moduleId) throws AppCatalogException;
-
-    /**
-     * Check whether application interface exists
-     * @param interfaceId unique interface id
-     * @return true or false
-     */
-    boolean isApplicationInterfaceExists(String interfaceId) throws AppCatalogException;
-
-    /**
-     * Check whether application module exists
-     * @param moduleId unique module Id
-     * @return true or false
-     */
-    boolean isApplicationModuleExists(String moduleId) throws AppCatalogException;
-
-    /**
-     * This method will retrieve application inputs for given application interface
-     * @param interfaceId application interface id
-     * @return list of inputs
-     * @throws AppCatalogException
-     */
-    List<InputDataObjectType> getApplicationInputs(String interfaceId) throws AppCatalogException;
-
-    /**
-     * This method will retrieve application outputs for given application interface
-     * @param interfaceId application interface id
-     * @return list of output
-     * @throws AppCatalogException
-     */
-    List<OutputDataObjectType> getApplicationOutputs(String interfaceId) throws AppCatalogException;
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ComputeResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ComputeResource.java b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ComputeResource.java
deleted file mode 100644
index c17da17..0000000
--- a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/ComputeResource.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.airavata.appcatalog.cpi;
-
-import java.util.List;
-import java.util.Map;
-
-import org.apache.airavata.model.appcatalog.computeresource.*;
-
-public interface ComputeResource {
-    /**
-     * This function will add a compute resource description to the database
-     * @param description compute resource description
-     * @return unique resource ID generated by airavata
-     */
-    String addComputeResource (ComputeResourceDescription description) throws AppCatalogException;
-
-    /**
-     * This method will update compute resource
-     * @param computeResourceId unique compute resource id
-     * @param updatedComputeResource updated compute resource
-     */
-    void updateComputeResource (String computeResourceId, ComputeResourceDescription updatedComputeResource) throws AppCatalogException;
-    /**
-     * This function will add a SSHJobSubmission to the database
-     * @param sshJobSubmission sshJobSubmission object
-     * @return unique submission ID generated by airavata
-     */
-    String addSSHJobSubmission (SSHJobSubmission sshJobSubmission) throws AppCatalogException;
-
-
-    /**
-     * This function will add a SSHJobSubmission to the database
-     * @param sshJobSubmission sshJobSubmission object
-     * @return unique submission ID generated by airavata
-     */
-    String addCloudJobSubmission (CloudJobSubmission sshJobSubmission) throws AppCatalogException;
-
-
-    String addResourceJobManager(ResourceJobManager resourceJobManager) throws AppCatalogException;
-
-    void updateResourceJobManager (String resourceJobManagerId, ResourceJobManager updatedResourceJobManager) throws AppCatalogException;
-
-    ResourceJobManager getResourceJobManager (String resourceJobManagerId) throws AppCatalogException;
-
-    void deleteResourceJobManager (String resourceJobManagerId) throws AppCatalogException;
-    
-    /**
-     * This will add a SSHJobSubmission protocol to the database
-     * @param computeResourceId compute resource id
-     */
-    String addJobSubmissionProtocol(String computeResourceId, JobSubmissionInterface jobSubmissionInterface) throws AppCatalogException;
-
-    String addLocalJobSubmission (LOCALSubmission localSubmission) throws AppCatalogException;
-
-    /**
-     * This method will add a GlobusJobSubmission to the database
-     * @param globusJobSubmission GSISSHJobSubmission object
-     * @return uniquely generated submission id
-     */
-    String addGlobusJobSubmission (GlobusJobSubmission globusJobSubmission) throws AppCatalogException;
-
-    /**
-     * This method will add a UNICOREJobSubmission to the database
-     * @param unicoreJobSubmission 
-     * @return uniquely generated submission id
-     */
-    String addUNICOREJobSubmission (UnicoreJobSubmission unicoreJobSubmission) throws AppCatalogException;
-
-
-
-    String addLocalDataMovement (LOCALDataMovement localDataMovement) throws AppCatalogException;
-
-    /**
-     * This method will add a SCPData movement to the database
-     * @param scpDataMovement SCPData movement object
-     * @return uniquely generated data move id
-     */
-    String addScpDataMovement (SCPDataMovement scpDataMovement) throws AppCatalogException;
-
-    String addUnicoreDataMovement (UnicoreDataMovement unicoreDataMovement) throws AppCatalogException;
-
-    /**
-     * This will add a SCPDataMovement protocol to the database
-     * @param computeResourceId compute resource id
-     */
-    String addDataMovementProtocol (String computeResourceId, DataMovementInterface dataMovementInterface) throws AppCatalogException;
-
-    /**
-     * This method will add a GridFTP Data movement to the database
-     * @param gridFTPDataMovement GridFTP Data movement object
-     * @return uniquely generated data move id
-     */
-    String addGridFTPDataMovement (GridFTPDataMovement gridFTPDataMovement) throws AppCatalogException;
-
-    /**
-     * This method will retrieve compute resource object on given resource id
-     * @param resourceId unique resource id
-     * @return ComputeResource object
-     */
-    ComputeResourceDescription getComputeResource (String resourceId) throws AppCatalogException;
-
-    /**
-     * This method will return a list of computeResource descriptions according to given search criteria
-     * @param filters map should be provided as the field name and it's value
-     * @return list of compute resources
-     */
-    List<ComputeResourceDescription> getComputeResourceList (Map<String, String> filters) throws AppCatalogException;
-
-    /**
-     * This method will retrieve all the compute resources
-     * @return list of compute resources
-     * @throws AppCatalogException
-     */
-    List<ComputeResourceDescription> getAllComputeResourceList () throws AppCatalogException;
-
-    /**
-     * This method will retrieve all the compute resource id with it's name
-     * @return map of compute resource ids + name
-     * @throws AppCatalogException
-     */
-    Map<String, String> getAllComputeResourceIdList () throws AppCatalogException;
-
-
-
-//    /**
-//     * This method will retrieve GlobusJobSubmission object
-//     * @param submissionId unique submission id
-//     * @return GlobusJobSubmission object
-//     */
-//    GlobusJobSubmission getGlobusJobSubmission (String submissionId) throws AppCatalogException;
-//
-//    /**
-//     * This method will return a list of GlobusJobSubmission objects according to given search criteria
-//     * @param filters map should be provided as the field name and it's value
-//     * @return list of GlobusJobSubmission objects
-//     */
-//    List<GlobusJobSubmission> getGlobusJobSubmissionList (Map<String, String> filters) throws AppCatalogException;
-
-    /**
-     * This method will retrieve GSISSHJobSubmission object
-     * @param submissionId unique submission id
-     * @return GSISSHSubmission object
-     */
-    SSHJobSubmission getSSHJobSubmission (String submissionId) throws AppCatalogException;
-    
-    /**
-     * This method will retrieve UnicoreJobSubmission object
-     * @param submissionId unique submission id
-     * @return UnicoreSubmission object
-     */
-    UnicoreJobSubmission getUNICOREJobSubmission (String submissionId) throws AppCatalogException;
-    UnicoreDataMovement getUNICOREDataMovement (String dataMovementId) throws AppCatalogException;
-
-    
-
-    /**
-     * This method will retrieve GSISSHJobSubmission object
-     * @param submissionId unique submission id
-     * @return GSISSHSubmission object
-     */
-    CloudJobSubmission getCloudJobSubmission (String submissionId) throws AppCatalogException;
-//    /**
-//     * This method will return a list of GSISSHSubmission objects according to given search criteria
-//     * @param filters map should be provided as the field name and it's value
-//     * @return list of GSISSHSubmission objects
-//     */
-//    List<SSHJobSubmission> getSSHJobSubmissionList (Map<String, String> filters) throws AppCatalogException;
-    /**
-     * This method will retrieve SCP Data movement object
-     * @param dataMoveId unique data move id
-     * @return SCPDataMovement object
-     */
-    SCPDataMovement getSCPDataMovement (String dataMoveId) throws AppCatalogException;
-
-//    /**
-//     * This method will return a list of SCPDataMovement objects according to given search criteria
-//     * @param filters map should be provided as the field name and it's value
-//     * @return list of SCPDataMovement objects
-//     */
-//    List<SCPDataMovement> getSCPDataMovementList (Map<String, String> filters) throws AppCatalogException;
-
-    /**
-     * This method will retrieve GridFTPDataMovement object
-     * @param dataMoveId unique data move id
-     * @return GridFTPDataMovement object
-     */
-    GridFTPDataMovement getGridFTPDataMovement (String dataMoveId) throws AppCatalogException;
-
-//    /**
-//     * This method will return a list of GridFTPDataMovement objects according to given search criteria
-//     * @param filters map should be provided as the field name and it's value
-//     * @return list of GridFTPDataMovement objects
-//     */
-//    List<GridFTPDataMovement> getGridFTPDataMovementList (Map<String, String> filters) throws AppCatalogException;
-
-    /**
-     * This method will check whether the given resource already exists in the system
-     * @param resourceId unique resource id
-     * @return true or false
-     */
-    boolean isComputeResourceExists (String resourceId) throws AppCatalogException;
-
-    /**
-     * This method will remove given resource from the system
-     * @param resourceId unique resource id
-     */
-    void removeComputeResource (String resourceId) throws AppCatalogException;
-
-    /**
-     * This method will remove job submission interface
-     * @param jobSubmissionInterfaceId unique job submission interface id
-     * @throws AppCatalogException
-     */
-    void removeJobSubmissionInterface(String computeResourceId, String jobSubmissionInterfaceId) throws AppCatalogException;
-
-    /**
-     * This method will remove data movement interface
-     * @param dataMovementInterfaceId unique data movement id
-     * @throws AppCatalogException
-     */
-    void removeDataMovementInterface(String computeResourceId, String dataMovementInterfaceId)  throws AppCatalogException;
-
-    void removeBatchQueue(String computeResourceId, String queueName)  throws AppCatalogException;
-
-
-
-    LOCALSubmission getLocalJobSubmission(String submissionId) throws AppCatalogException;
-    
-    LOCALDataMovement getLocalDataMovement(String datamovementId) throws AppCatalogException;
-    
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/GwyResourceProfile.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/GwyResourceProfile.java b/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/GwyResourceProfile.java
deleted file mode 100644
index d6d04fc..0000000
--- a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/GwyResourceProfile.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.airavata.appcatalog.cpi;
-
-import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
-
-import java.util.List;
-
-public interface GwyResourceProfile {
-    /**
-     * This method will add a gateway profile
-     * @param gatewayProfile gateway profile
-     * @return gateway id
-     */
-    String addGatewayResourceProfile(GatewayResourceProfile gatewayProfile) throws AppCatalogException;
-
-    /**
-     * This method will update a gateway profile
-     * @param gatewayId unique gateway id
-     * @param updatedProfile updated profile
-     */
-    void updateGatewayResourceProfile(String gatewayId, GatewayResourceProfile updatedProfile) throws AppCatalogException;
-
-    /**
-     *
-     * @param gatewayId
-     * @return
-     */
-   GatewayResourceProfile getGatewayProfile (String gatewayId) throws AppCatalogException;
-
-    /**
-     * This method will remove a gateway profile
-     * @param gatewayId unique gateway id
-     * @return true or false
-     */
-    boolean removeGatewayResourceProfile(String gatewayId) throws AppCatalogException;
-    boolean removeComputeResourcePreferenceFromGateway(String gatewayId, String preferenceId) throws AppCatalogException;
-
-    /**
-     * This method will check whether gateway profile exists
-     * @param gatewayId unique gateway id
-     * @return true or false
-     */
-    boolean isGatewayResourceProfileExists(String gatewayId) throws AppCatalogException;
-
-    /**
-     *
-     * @param gatewayId
-     * @param hostId
-     * @return ComputeResourcePreference
-     */
-    ComputeResourcePreference getComputeResourcePreference (String gatewayId, String hostId) throws AppCatalogException;
-
-    /**
-     *
-     * @param gatewayId
-     * @return
-     */
-    List<ComputeResourcePreference> getAllComputeResourcePreferences (String gatewayId) throws AppCatalogException;
-
-    List<String> getGatewayProfileIds (String gatewayName) throws AppCatalogException;
-    List<GatewayResourceProfile> getAllGatewayProfiles () throws AppCatalogException;
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/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
deleted file mode 100644
index 6beeb60..0000000
--- a/modules/app-catalog/app-catalog-cpi/src/main/java/org/airavata/appcatalog/cpi/WorkflowCatalog.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-package org.airavata.appcatalog.cpi;
-
-import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
-
-import java.util.List;
-
-public interface WorkflowCatalog {
-
-    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, String gatewayId) throws AppCatalogException;
-
-    public void updateWorkflow(String workflowTemplateId, org.apache.airavata.model.Workflow workflow) throws AppCatalogException;
-
-    public String getWorkflowTemplateId(String workflowName) throws AppCatalogException;
-
-    public boolean isWorkflowExistWithName(String workflowName) throws AppCatalogException;
-
-    public void updateWorkflowOutputs(String workflowTemplateId, List<OutputDataObjectType> workflowOutputs) throws AppCatalogException;
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/AppCatalogFactory.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/AppCatalogFactory.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/AppCatalogFactory.java
deleted file mode 100644
index 34e0976..0000000
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/AppCatalogFactory.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.aiaravata.application.catalog.data.impl;
-
-import org.airavata.appcatalog.cpi.AppCatalog;
-import org.airavata.appcatalog.cpi.AppCatalogException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class AppCatalogFactory {
-    private static AppCatalog appCatalog;
-
-    private static Logger logger = LoggerFactory.getLogger(AppCatalogFactory.class);
-
-    public static AppCatalog getAppCatalog() throws AppCatalogException{
-        try {
-            if (appCatalog == null){
-                appCatalog = new AppCatalogImpl();
-            }
-
-        }catch (Exception e){
-            logger.error("Unable to create app catalog instance", e);
-            throw new AppCatalogException(e);
-        }
-        return appCatalog;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/AppCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/AppCatalogImpl.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/AppCatalogImpl.java
deleted file mode 100644
index 246554b..0000000
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/AppCatalogImpl.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.aiaravata.application.catalog.data.impl;
-
-import org.airavata.appcatalog.cpi.*;
-import org.airavata.appcatalog.cpi.GwyResourceProfile;
-
-public class AppCatalogImpl implements AppCatalog {
-    @Override
-    public ComputeResource getComputeResource() {
-        return new ComputeResourceImpl();
-    }
-
-    @Override
-    public ApplicationInterface getApplicationInterface() {
-        return new ApplicationInterfaceImpl();
-    }
-
-    @Override
-    public ApplicationDeployment getApplicationDeployment() {
-        return new ApplicationDeploymentImpl();
-    }
-
-	@Override
-	public GwyResourceProfile getGatewayProfile() throws AppCatalogException {
-		return new GwyResourceProfileImpl();
-	}
-
-    @Override
-    public WorkflowCatalog getWorkflowCatalog() throws AppCatalogException {
-        return new WorkflowCatalogImpl();
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/ec8c6202/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
deleted file mode 100644
index f0027ab..0000000
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/impl/ApplicationDeploymentImpl.java
+++ /dev/null
@@ -1,414 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.aiaravata.application.catalog.data.impl;
-
-import org.airavata.appcatalog.cpi.AppCatalogException;
-import org.airavata.appcatalog.cpi.ApplicationDeployment;
-import org.apache.aiaravata.application.catalog.data.resources.*;
-import org.apache.aiaravata.application.catalog.data.util.AppCatalogThriftConversion;
-import org.apache.aiaravata.application.catalog.data.util.AppCatalogUtils;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType;
-import org.apache.airavata.model.appcatalog.appdeployment.SetEnvPaths;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class ApplicationDeploymentImpl implements ApplicationDeployment {
-    private final static Logger logger = LoggerFactory.getLogger(ApplicationDeploymentImpl.class);
-
-    @Override
-    public String addApplicationDeployment(ApplicationDeploymentDescription deploymentDescription, String gatewayId) throws AppCatalogException {
-        try {
-            AppDeploymentResource deploymentResource = new AppDeploymentResource();
-            ComputeResourceResource computeHostResource = new ComputeResourceResource();
-            AppModuleResource moduleResource = new AppModuleResource();
-            if (!computeHostResource.isExists(deploymentDescription.getComputeHostId())){
-                logger.error("Compute host does not exist in the system. Please create a Compute host first...");
-                throw new AppCatalogException("Compute host does not exist in the system. Please create a Compute host first...");
-            }
-            if (!moduleResource.isExists(deploymentDescription.getAppModuleId())){
-                logger.error("Application module does not exist in the system. Please create an application module first...");
-                throw new AppCatalogException("Application module does not exist in the system. Please create an application module first...");
-            }
-            AppModuleResource module = (AppModuleResource)moduleResource.get(deploymentDescription.getAppModuleId());
-            ComputeResourceResource hostResource = (ComputeResourceResource) computeHostResource.get(deploymentDescription.getComputeHostId());
-            deploymentResource.setDeploymentId(hostResource.getHostName() + "_" + deploymentDescription.getAppModuleId());
-            deploymentResource.setAppModuleId(deploymentDescription.getAppModuleId());
-            deploymentResource.setModuleResource(module);
-            deploymentResource.setHostId(deploymentDescription.getComputeHostId());
-            deploymentResource.setHostResource(hostResource);
-            deploymentResource.setAppDes(deploymentDescription.getAppDeploymentDescription());
-            deploymentResource.setExecutablePath(deploymentDescription.getExecutablePath());
-            deploymentResource.setGatewayId(gatewayId);
-            ApplicationParallelismType parallelism = deploymentDescription.getParallelism();
-            if (parallelism != null){
-                deploymentResource.setParallelism(parallelism.toString());
-            }
-            deploymentResource.save();
-            deploymentDescription.setAppDeploymentId(deploymentResource.getDeploymentId());
-
-            List<String> moduleLoadCmds = deploymentDescription.getModuleLoadCmds();
-            if (moduleLoadCmds != null && !moduleLoadCmds.isEmpty()){
-                for (String cmd : moduleLoadCmds){
-                    ModuleLoadCmdResource cmdResource = new ModuleLoadCmdResource();
-                    cmdResource.setAppDeploymentId(deploymentDescription.getAppDeploymentId());
-                    cmdResource.setCmd(cmd);
-                    cmdResource.save();
-                }
-            }
-
-            List<String> preJobCommands = deploymentDescription.getPreJobCommands();
-            if (preJobCommands != null && !preJobCommands.isEmpty()){
-                for (String cmd : preJobCommands){
-                    PreJobCommandResource cmdResource = new PreJobCommandResource();
-                    cmdResource.setAppDeploymentId(deploymentDescription.getAppDeploymentId());
-                    cmdResource.setCommand(cmd);
-                    cmdResource.save();
-                }
-            }
-
-            List<String> postJobCommands = deploymentDescription.getPostJobCommands();
-            if (postJobCommands != null && !postJobCommands.isEmpty()){
-                for (String cmd : postJobCommands){
-                    PostJobCommandResource cmdResource = new PostJobCommandResource();
-                    cmdResource.setAppDeploymentId(deploymentDescription.getAppDeploymentId());
-                    cmdResource.setCommand(cmd);
-                    cmdResource.save();
-                }
-            }
-
-            List<SetEnvPaths> libPrependPaths = deploymentDescription.getLibPrependPaths();
-            if (libPrependPaths != null && !libPrependPaths.isEmpty()){
-                for (SetEnvPaths path : libPrependPaths){
-                    LibraryPrepandPathResource prepandPathResource = new LibraryPrepandPathResource();
-                    prepandPathResource.setAppDeploymentResource(deploymentResource);
-                    prepandPathResource.setName(path.getName());
-                    prepandPathResource.setValue(path.getValue());
-                    prepandPathResource.setDeploymentId(deploymentResource.getDeploymentId());
-                    prepandPathResource.save();
-                }
-            }
-
-            List<SetEnvPaths> libApendPaths = deploymentDescription.getLibAppendPaths();
-            if (libApendPaths != null && !libApendPaths.isEmpty()){
-                for (SetEnvPaths path : libApendPaths){
-                    LibraryApendPathResource apendPathResource = new LibraryApendPathResource();
-                    apendPathResource.setAppDeploymentResource(deploymentResource);
-                    apendPathResource.setName(path.getName());
-                    apendPathResource.setValue(path.getValue());
-                    apendPathResource.setDeploymentId(deploymentResource.getDeploymentId());
-                    apendPathResource.save();
-                }
-            }
-            List<SetEnvPaths> setEnvironment = deploymentDescription.getSetEnvironment();
-            if (setEnvironment != null && !setEnvironment.isEmpty()){
-                for (SetEnvPaths path : setEnvironment){
-                    AppEnvironmentResource environmentResource = new AppEnvironmentResource();
-                    environmentResource.setAppDeploymentResource(deploymentResource);
-                    environmentResource.setName(path.getName());
-                    environmentResource.setValue(path.getValue());
-                    environmentResource.setDeploymentId(deploymentResource.getDeploymentId());
-                    environmentResource.save();
-                }
-            }
-            return deploymentResource.getDeploymentId();
-        }catch (Exception e) {
-            logger.error("Error while saving application deployment...", e);
-            throw new AppCatalogException(e);
-        }
-    }
-
-    @Override
-    public void updateApplicationDeployment(String deploymentId, ApplicationDeploymentDescription updatedDeployment) throws AppCatalogException {
-        try {
-            AppDeploymentResource deploymentResource = new AppDeploymentResource();
-            AppDeploymentResource existingDep = (AppDeploymentResource)deploymentResource.get(deploymentId);
-            ComputeResourceResource computeHostResource = new ComputeResourceResource();
-            AppModuleResource moduleResource = new AppModuleResource();
-            if (!computeHostResource.isExists(updatedDeployment.getComputeHostId())){
-                logger.error("Compute host does not exist in the system. Please create a Compute host first...");
-                throw new AppCatalogException("Compute host does not exist in the system. Please create a Compute host first...");
-            }
-            if (!moduleResource.isExists(updatedDeployment.getAppModuleId())){
-                logger.error("Application module does not exist in the system. Please create an application module first...");
-                throw new AppCatalogException("Application module does not exist in the system. Please create an application module first...");
-            }
-            AppModuleResource module = (AppModuleResource)moduleResource.get(updatedDeployment.getAppModuleId());
-            existingDep.setAppModuleId(updatedDeployment.getAppModuleId());
-            existingDep.setModuleResource(module);
-            existingDep.setHostId(updatedDeployment.getComputeHostId());
-            existingDep.setHostResource((ComputeResourceResource)computeHostResource.get(updatedDeployment.getComputeHostId()));
-            existingDep.setAppDes(updatedDeployment.getAppDeploymentDescription());
-            existingDep.setExecutablePath(updatedDeployment.getExecutablePath());
-            if (updatedDeployment.getParallelism() != null){
-                deploymentResource.setParallelism(updatedDeployment.getParallelism().toString());
-            }
-
-            existingDep.save();
-
-            // remove existing module load commands
-            ModuleLoadCmdResource cmdResource = new ModuleLoadCmdResource();
-            Map<String, String> ids = new HashMap<String, String>();
-            ids.put(AbstractResource.ModuleLoadCmdConstants.APP_DEPLOYMENT_ID, deploymentId);
-            cmdResource.remove(ids);
-            List<String> moduleLoadCmds = updatedDeployment.getModuleLoadCmds();
-            if (moduleLoadCmds != null && !moduleLoadCmds.isEmpty()){
-                for (String cmd : moduleLoadCmds){
-                    ids = new HashMap<String, String>();
-                    ids.put(AbstractResource.ModuleLoadCmdConstants.APP_DEPLOYMENT_ID, deploymentId);
-                    ids.put(AbstractResource.ModuleLoadCmdConstants.CMD, cmd);
-                    if (cmdResource.isExists(ids)){
-                        cmdResource = (ModuleLoadCmdResource)cmdResource.get(ids);
-                    }
-                    cmdResource.setCmd(cmd);
-                    cmdResource.setAppDeploymentResource(existingDep);
-                    cmdResource.setAppDeploymentId(deploymentId);
-                    cmdResource.save();
-                }
-            }
-
-            PreJobCommandResource preJobCommandResource = new PreJobCommandResource();
-            ids = new HashMap<String, String>();
-            ids.put(AbstractResource.PreJobCommandConstants.DEPLOYMENT_ID, deploymentId);
-            preJobCommandResource.remove(ids);
-            List<String> preJobCommands = updatedDeployment.getPreJobCommands();
-            if (preJobCommands != null && !preJobCommands.isEmpty()){
-                for (String cmd : preJobCommands){
-                    ids = new HashMap<String, String>();
-                    ids.put(AbstractResource.PreJobCommandConstants.DEPLOYMENT_ID, deploymentId);
-                    ids.put(AbstractResource.PreJobCommandConstants.COMMAND, cmd);
-                    if (preJobCommandResource.isExists(ids)){
-                        preJobCommandResource = (PreJobCommandResource)preJobCommandResource.get(ids);
-                    }
-                    preJobCommandResource.setCommand(cmd);
-                    preJobCommandResource.setAppDeploymentResource(existingDep);
-                    preJobCommandResource.setAppDeploymentId(deploymentId);
-                    preJobCommandResource.save();
-                }
-            }
-
-            PostJobCommandResource postJobCommandResource = new PostJobCommandResource();
-            ids = new HashMap<String, String>();
-            ids.put(AbstractResource.PostJobCommandConstants.DEPLOYMENT_ID, deploymentId);
-            postJobCommandResource.remove(ids);
-            List<String> postJobCommands = updatedDeployment.getPostJobCommands();
-            if (postJobCommands != null && !postJobCommands.isEmpty()){
-                for (String cmd : postJobCommands){
-                    ids = new HashMap<String, String>();
-                    ids.put(AbstractResource.PostJobCommandConstants.DEPLOYMENT_ID, deploymentId);
-                    ids.put(AbstractResource.PostJobCommandConstants.COMMAND, cmd);
-                    if (postJobCommandResource.isExists(ids)){
-                        postJobCommandResource = (PostJobCommandResource)postJobCommandResource.get(ids);
-                    }
-                    postJobCommandResource.setCommand(cmd);
-                    postJobCommandResource.setAppDeploymentResource(existingDep);
-                    postJobCommandResource.setAppDeploymentId(deploymentId);
-                    postJobCommandResource.save();
-                }
-            }
-
-            // remove existing lib prepand paths
-            LibraryPrepandPathResource prepandPathResource = new LibraryPrepandPathResource();
-            ids = new HashMap<String, String>();
-            ids.put(AbstractResource.LibraryPrepandPathConstants.DEPLOYMENT_ID, deploymentId);
-            prepandPathResource.remove(ids);
-            List<SetEnvPaths> libPrependPaths = updatedDeployment.getLibPrependPaths();
-            if (libPrependPaths != null && !libPrependPaths.isEmpty()){
-                for (SetEnvPaths path : libPrependPaths){
-                    ids = new HashMap<String, String>();
-                    ids.put(AbstractResource.LibraryPrepandPathConstants.DEPLOYMENT_ID, deploymentId);
-                    ids.put(AbstractResource.LibraryPrepandPathConstants.NAME, path.getName());
-                    if (prepandPathResource.isExists(ids)){
-                        prepandPathResource = (LibraryPrepandPathResource)prepandPathResource.get(ids);
-                    }
-                    prepandPathResource.setAppDeploymentResource(existingDep);
-                    prepandPathResource.setName(path.getName());
-                    prepandPathResource.setValue(path.getValue());
-                    prepandPathResource.setDeploymentId(deploymentId);
-                    prepandPathResource.save();
-                }
-            }
-
-            List<SetEnvPaths> libApendPaths = updatedDeployment.getLibAppendPaths();
-            // remove lib append paths
-            LibraryApendPathResource apendPathResource = new LibraryApendPathResource();
-            ids = new HashMap<String, String>();
-            ids.put(AbstractResource.LibraryApendPathConstants.DEPLOYMENT_ID, deploymentId);
-            apendPathResource.remove(ids);
-            if (libApendPaths != null && !libApendPaths.isEmpty()){
-                for (SetEnvPaths path : libApendPaths){
-                    ids = new HashMap<String, String>();
-                    ids.put(AbstractResource.LibraryApendPathConstants.DEPLOYMENT_ID, deploymentId);
-                    ids.put(AbstractResource.LibraryApendPathConstants.NAME, path.getName());
-                    if (apendPathResource.isExists(ids)){
-                        apendPathResource = (LibraryApendPathResource)apendPathResource.get(ids);
-                    }
-                    apendPathResource.setAppDeploymentResource(existingDep);
-                    apendPathResource.setName(path.getName());
-                    apendPathResource.setValue(path.getValue());
-                    apendPathResource.setDeploymentId(deploymentId);
-                    apendPathResource.save();
-                }
-            }
-
-            List<SetEnvPaths> setEnvironment = updatedDeployment.getSetEnvironment();
-            // remove existing setEnvPaths
-            AppEnvironmentResource environmentResource = new AppEnvironmentResource();
-            ids = new HashMap<String, String>();
-            ids.put(AbstractResource.AppEnvironmentConstants.DEPLOYMENT_ID, deploymentId);
-            environmentResource.remove(ids);
-            if (setEnvironment != null && !setEnvironment.isEmpty()){
-                for (SetEnvPaths path : setEnvironment){
-                    ids = new HashMap<String, String>();
-                    ids.put(AbstractResource.AppEnvironmentConstants.DEPLOYMENT_ID, deploymentId);
-                    ids.put(AbstractResource.AppEnvironmentConstants.NAME, path.getName());
-                    if (environmentResource.isExists(ids)){
-                        environmentResource = (AppEnvironmentResource)environmentResource.get(ids);
-                    }
-                    environmentResource.setAppDeploymentResource(existingDep);
-                    environmentResource.setName(path.getName());
-                    environmentResource.setValue(path.getValue());
-                    environmentResource.setDeploymentId(deploymentId);
-                    environmentResource.save();
-                }
-            }
-        }catch (Exception e) {
-            logger.error("Error while updating application deployment...", e);
-            throw new AppCatalogException(e);
-        }
-    }
-
-    @Override
-    public ApplicationDeploymentDescription getApplicationDeployement(String deploymentId) throws AppCatalogException {
-        try {
-            AppDeploymentResource deploymentResource = new AppDeploymentResource();
-            AppDeploymentResource appDep = (AppDeploymentResource)deploymentResource.get(deploymentId);
-            return AppCatalogThriftConversion.getApplicationDeploymentDescription(appDep);
-        }catch (Exception e) {
-            logger.error("Error while retrieving application deployment...", e);
-            throw new AppCatalogException(e);
-        }
-    }
-
-    @Override
-    public List<ApplicationDeploymentDescription> getApplicationDeployements(Map<String, String> filters) throws AppCatalogException {
-        List<ApplicationDeploymentDescription> deploymentDescriptions = new ArrayList<ApplicationDeploymentDescription>();
-        try {
-            AppDeploymentResource resource = new AppDeploymentResource();
-            boolean firstTry=true;
-            for (String fieldName : filters.keySet() ){
-                List<ApplicationDeploymentDescription> tmpDescriptions = new ArrayList<ApplicationDeploymentDescription>();
-                if (fieldName.equals(AbstractResource.ApplicationDeploymentConstants.APP_MODULE_ID)){
-                    List<Resource> resources = resource.get(AbstractResource.ApplicationDeploymentConstants.APP_MODULE_ID, filters.get(fieldName));
-                    if (resources != null && !resources.isEmpty()){
-                    	tmpDescriptions = AppCatalogThriftConversion.getAppDepDescList(resources);
-                    }
-                }else if (fieldName.equals(AbstractResource.ApplicationDeploymentConstants.COMPUTE_HOST_ID)){
-                    List<Resource> resources = resource.get(AbstractResource.ApplicationDeploymentConstants.COMPUTE_HOST_ID, filters.get(fieldName));
-                    if (resources != null && !resources.isEmpty()){
-                    	tmpDescriptions = AppCatalogThriftConversion.getAppDepDescList(resources);
-                    }
-                } else {
-                    logger.error("Unsupported field name for app deployment.", new IllegalArgumentException());
-                    throw new IllegalArgumentException("Unsupported field name for app deployment.");
-                }
-                if (firstTry){
-                	deploymentDescriptions.addAll(tmpDescriptions);
-                    firstTry=false;
-                }else{
-                    List<String> ids=new ArrayList<String>();
-                	for (ApplicationDeploymentDescription applicationDeploymentDescription : deploymentDescriptions) {
-						ids.add(applicationDeploymentDescription.getAppDeploymentId());
-					}
-                    List<ApplicationDeploymentDescription> tmp2Descriptions = new ArrayList<ApplicationDeploymentDescription>();
-                	for (ApplicationDeploymentDescription applicationDeploymentDescription : tmpDescriptions) {
-						if (ids.contains(applicationDeploymentDescription.getAppDeploymentId())){
-							tmp2Descriptions.add(applicationDeploymentDescription);
-						}
-					}
-                	deploymentDescriptions.clear();
-                	deploymentDescriptions.addAll(tmp2Descriptions);
-                }
-            }
-        }catch (Exception e){
-            logger.error("Error while retrieving app deployment list...", e);
-            throw new AppCatalogException(e);
-        }
-        return deploymentDescriptions;
-    }
-
-    @Override
-    public List<ApplicationDeploymentDescription> getAllApplicationDeployements(String gatewayId) throws AppCatalogException {
-        List<ApplicationDeploymentDescription> deploymentDescriptions = new ArrayList<ApplicationDeploymentDescription>();
-        try {
-            AppDeploymentResource resource = new AppDeploymentResource();
-            resource.setGatewayId(gatewayId);
-            List<Resource> resources = resource.getAll();
-            if (resources != null && !resources.isEmpty()){
-                deploymentDescriptions = AppCatalogThriftConversion.getAppDepDescList(resources);
-            }
-
-        }catch (Exception e){
-            logger.error("Error while retrieving app deployment list...", e);
-            throw new AppCatalogException(e);
-        }
-        return deploymentDescriptions;
-    }
-
-    @Override
-    public List<String> getAllApplicationDeployementIds() throws AppCatalogException {
-        try {
-            AppDeploymentResource resource = new AppDeploymentResource();
-            return resource.getAllIds();
-        }catch (Exception e){
-            logger.error("Error while retrieving app deployment list...", e);
-            throw new AppCatalogException(e);
-        }
-    }
-
-    @Override
-    public boolean isAppDeploymentExists(String deploymentId) throws AppCatalogException {
-        try {
-           AppDeploymentResource deploymentResource = new AppDeploymentResource();
-            return deploymentResource.isExists(deploymentId);
-        }catch (Exception e){
-            logger.error("Error while retrieving app deployment...", e);
-            throw new AppCatalogException(e);
-        }
-    }
-
-    @Override
-    public void removeAppDeployment(String deploymentId) throws AppCatalogException {
-        try {
-            AppDeploymentResource deploymentResource = new AppDeploymentResource();
-            deploymentResource.remove(deploymentId);
-        }catch (Exception e){
-            logger.error("Error while deleting app deployment...", e);
-            throw new AppCatalogException(e);
-        }
-    }
-}