You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2014/07/02 17:39:33 UTC

git commit: adding test class for app-deployment - AIRAVATA-1305

Repository: airavata
Updated Branches:
  refs/heads/master 72654907f -> 54d02d48f


adding test class for app-deployment - AIRAVATA-1305


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

Branch: refs/heads/master
Commit: 54d02d48fe31dcd9b45379c38faee45a11a9d963
Parents: 7265490
Author: Chathuri Wimalasena <ka...@gmail.com>
Authored: Wed Jul 2 11:39:28 2014 -0400
Committer: Chathuri Wimalasena <ka...@gmail.com>
Committed: Wed Jul 2 11:39:28 2014 -0400

----------------------------------------------------------------------
 .../appcatalog/cpi/ApplicationDeployment.java   |   2 +-
 .../data/impl/ApplicationDeploymentImpl.java    |  76 ++++++++++-
 .../data/model/ApplicationDeployment.java       |  10 +-
 .../data/resources/AbstractResource.java        |   8 +-
 .../data/resources/AppDeploymentResource.java   |   8 +-
 .../catalog/data/util/AppCatalogJPAUtils.java   |   4 +-
 .../app/catalog/test/AppDeploymentTest.java     | 135 +++++++++++++++++++
 .../app/catalog/test/AppInterfaceTest.java      |  19 ++-
 .../app/catalog/test/ComputeResourceTest.java   |   9 +-
 9 files changed, 249 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/54d02d48/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 a0e4394..149b9be 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
@@ -18,7 +18,7 @@ public interface ApplicationDeployment {
      * @param deploymentId unique deployment id
      * @param updatedDeployment updated deployment
      */
-    void updateApplicationDeployment (String deploymentId, ApplicationDeploymentDescription updatedDeployment);
+    void updateApplicationDeployment (String deploymentId, ApplicationDeploymentDescription updatedDeployment) throws AppCatalogException;;
 
     /**
      * This method will retrive application deployement

http://git-wip-us.apache.org/repos/asf/airavata/blob/54d02d48/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 493cab8..828d439 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
@@ -31,6 +31,7 @@ import org.apache.airavata.model.appcatalog.appdeployment.SetEnvPaths;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -105,8 +106,81 @@ public class ApplicationDeploymentImpl implements ApplicationDeployment {
     }
 
     @Override
-    public void updateApplicationDeployment(String deploymentId, ApplicationDeploymentDescription updatedDeployment) {
+    public void updateApplicationDeployment(String deploymentId, ApplicationDeploymentDescription updatedDeployment) throws AppCatalogException {
+        try {
+            AppDeploymentResource deploymentResource = new AppDeploymentResource();
+            AppDeploymentResource existingDep = (AppDeploymentResource)deploymentResource.get(deploymentId);
+            ComputeHostResource computeHostResource = new ComputeHostResource();
+            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((ComputeHostResource)computeHostResource.get(updatedDeployment.getComputeHostId()));
+            existingDep.setAppDes(updatedDeployment.getAppDeploymentDescription());
+            existingDep.setExecutablePath(updatedDeployment.getExecutablePath());
+            existingDep.setEnvModuleLoadCMD(updatedDeployment.getModuleLoadCmd());
+            existingDep.save();
+
+            List<SetEnvPaths> libPrependPaths = updatedDeployment.getLibPrependPaths();
+            if (libPrependPaths != null && !libPrependPaths.isEmpty()){
+                for (SetEnvPaths path : libPrependPaths){
+                    LibraryPrepandPathResource prepandPathResource = new LibraryPrepandPathResource();
+                    Map<String, String> ids = new HashMap<String, String>();
+                    ids.put(AbstractResource.LibraryPrepandPathConstants.DEPLOYMENT_ID, deploymentId);
+                    ids.put(AbstractResource.LibraryPrepandPathConstants.NAME, path.getName());
+                    LibraryPrepandPathResource existingPrepandPath = (LibraryPrepandPathResource)prepandPathResource.get(ids);
+                    existingPrepandPath.setAppDeploymentResource(existingDep);
+                    existingPrepandPath.setName(path.getName());
+                    existingPrepandPath.setValue(path.getValue());
+                    existingPrepandPath.setDeploymentId(deploymentId);
+                    existingPrepandPath.save();
+                }
+            }
+
+            List<SetEnvPaths> libApendPaths = updatedDeployment.getLibAppendPaths();
+            if (libApendPaths != null && !libApendPaths.isEmpty()){
+                for (SetEnvPaths path : libApendPaths){
+                    LibraryApendPathResource apendPathResource = new LibraryApendPathResource();
+                    Map<String, String> ids = new HashMap<String, String>();
+                    ids.put(AbstractResource.LibraryApendPathConstants.DEPLOYMENT_ID, deploymentId);
+                    ids.put(AbstractResource.LibraryApendPathConstants.NAME, path.getName());
+                    LibraryApendPathResource existingApendPath = (LibraryApendPathResource)apendPathResource.get(ids);
+                    existingApendPath.setAppDeploymentResource(existingDep);
+                    existingApendPath.setName(path.getName());
+                    existingApendPath.setValue(path.getValue());
+                    existingApendPath.setDeploymentId(deploymentId);
+                    existingApendPath.save();
+                }
+            }
 
+            List<SetEnvPaths> setEnvironment = updatedDeployment.getSetEnvironment();
+            if (setEnvironment != null && !setEnvironment.isEmpty()){
+                for (SetEnvPaths path : setEnvironment){
+                    AppEnvironmentResource environmentResource = new AppEnvironmentResource();
+                    Map<String, String> ids = new HashMap<String, String>();
+                    ids.put(AbstractResource.AppEnvironmentConstants.DEPLOYMENT_ID, deploymentId);
+                    ids.put(AbstractResource.AppEnvironmentConstants.NAME, path.getName());
+                    AppEnvironmentResource existingAppEnv = (AppEnvironmentResource)environmentResource.get(ids);
+                    existingAppEnv.setAppDeploymentResource(existingDep);
+                    existingAppEnv.setName(path.getName());
+                    existingAppEnv.setValue(path.getValue());
+                    existingAppEnv.setDeploymentId(deploymentId);
+                    existingAppEnv.save();
+                }
+            }
+        }catch (Exception e) {
+            logger.error("Error while updating application deployment...", e);
+            throw new AppCatalogException(e);
+        }
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/airavata/blob/54d02d48/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationDeployment.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationDeployment.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationDeployment.java
index 86fb152..8e6cb1a 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationDeployment.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/model/ApplicationDeployment.java
@@ -29,7 +29,7 @@ import java.io.Serializable;
 public class ApplicationDeployment implements Serializable {
     @Id
     @Column(name = "DEPLOYMENT_ID")
-    private String deployementID;
+    private String deploymentID;
     @Column(name = "APP_MODULE_ID")
     private String appModuleID;
     @Column(name = "COMPUTE_HOST_ID")
@@ -50,12 +50,12 @@ public class ApplicationDeployment implements Serializable {
     private ComputeResource computeResource;
 
 
-    public String getDeployementID() {
-        return deployementID;
+    public String getDeploymentID() {
+        return deploymentID;
     }
 
-    public void setDeployementID(String deployementID) {
-        this.deployementID = deployementID;
+    public void setDeploymentID(String deploymentID) {
+        this.deploymentID = deploymentID;
     }
 
     public String getAppModuleID() {

http://git-wip-us.apache.org/repos/asf/airavata/blob/54d02d48/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
index be5fecc..0aebb79 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AbstractResource.java
@@ -155,7 +155,7 @@ public abstract class AbstractResource implements Resource {
 
     public final class ApplicationDeploymentConstants {
         public static final String APP_MODULE_ID = "appModuleID";
-        public static final String DEPLOYMENT_ID = "deployementID";
+        public static final String DEPLOYMENT_ID = "deploymentID";
         public static final String COMPUTE_HOST_ID = "hostID";
         public static final String EXECUTABLE_PATH = "executablePath";
         public static final String APPLICATION_DESC = "applicationDesc";
@@ -163,19 +163,19 @@ public abstract class AbstractResource implements Resource {
     }
 
     public final class LibraryPrepandPathConstants {
-        public static final String DEPLOYMENT_ID = "deployementID";
+        public static final String DEPLOYMENT_ID = "deploymentID";
         public static final String NAME = "name";
         public static final String VALUE = "value";
     }
 
     public final class LibraryApendPathConstants {
-        public static final String DEPLOYMENT_ID = "deployementID";
+        public static final String DEPLOYMENT_ID = "deploymentID";
         public static final String NAME = "name";
         public static final String VALUE = "value";
     }
 
     public final class AppEnvironmentConstants {
-        public static final String DEPLOYMENT_ID = "deployementID";
+        public static final String DEPLOYMENT_ID = "deploymentID";
         public static final String NAME = "name";
         public static final String VALUE = "value";
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/54d02d48/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AppDeploymentResource.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AppDeploymentResource.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AppDeploymentResource.java
index 2e404e6..cc8693f 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AppDeploymentResource.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/resources/AppDeploymentResource.java
@@ -238,7 +238,7 @@ public class AppDeploymentResource extends AbstractResource {
                 if (results.size() != 0) {
                     for (Object result : results) {
                         ApplicationDeployment deployment = (ApplicationDeployment) result;
-                        appDeployments.add(deployment.getDeployementID());
+                        appDeployments.add(deployment.getDeploymentID());
                     }
                 }
             } else if (fieldName.equals(ApplicationDeploymentConstants.COMPUTE_HOST_ID)) {
@@ -248,7 +248,7 @@ public class AppDeploymentResource extends AbstractResource {
                 if (results.size() != 0) {
                     for (Object result : results) {
                         ApplicationDeployment deployment = (ApplicationDeployment) result;
-                        appDeployments.add(deployment.getDeployementID());
+                        appDeployments.add(deployment.getDeploymentID());
                     }
                 }
             }else {
@@ -286,17 +286,21 @@ public class AppDeploymentResource extends AbstractResource {
             ApplicationModule applicationModule = em.find(ApplicationModule.class, appModuleId);
             ComputeResource computeHost = em.find(ComputeResource.class, hostId);
             if (existingDeployment !=  null){
+                existingDeployment.setDeploymentID(deploymentId);
                 existingDeployment.setApplicationDesc(appDes);
                 existingDeployment.setAppModuleID(appModuleId);
                 existingDeployment.setApplicationModule(applicationModule);
                 existingDeployment.setComputeResource(computeHost);
+                existingDeployment.setHostID(hostId);
                 existingDeployment.setExecutablePath(executablePath);
                 existingDeployment.setEnvModuleLoaString(envModuleLoadCMD);
                 em.merge(existingDeployment);
             }else {
                 ApplicationDeployment deployment  = new ApplicationDeployment();
                 deployment.setApplicationDesc(appDes);
+                deployment.setDeploymentID(deploymentId);
                 deployment.setAppModuleID(appModuleId);
+                deployment.setHostID(hostId);
                 deployment.setApplicationModule(applicationModule);
                 deployment.setComputeResource(computeHost);
                 deployment.setExecutablePath(executablePath);

http://git-wip-us.apache.org/repos/asf/airavata/blob/54d02d48/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
index b5ac1af..a293f33 100644
--- a/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
+++ b/modules/app-catalog/app-catalog-data/src/main/java/org/apache/aiaravata/application/catalog/data/util/AppCatalogJPAUtils.java
@@ -369,7 +369,7 @@ public class AppCatalogJPAUtils {
         GridFTPDMEndpointResource resource = new GridFTPDMEndpointResource();
         resource.setDataMoveId(o.getDataMoveId());
         resource.setEndpoint(o.getEndpoint());
-        resource.setGridFTPDataMovementResource((GridFTPDataMovementResource)createGridFTPDataMovement(o.getGridFTPDataMovement()));
+        resource.setGridFTPDataMovementResource((GridFTPDataMovementResource) createGridFTPDataMovement(o.getGridFTPDataMovement()));
         return resource;
     }
 
@@ -402,7 +402,7 @@ public class AppCatalogJPAUtils {
 
     private static Resource createApplicationDeployment(ApplicationDeployment o) {
         AppDeploymentResource resource = new AppDeploymentResource();
-        resource.setDeploymentId(o.getDeployementID());
+        resource.setDeploymentId(o.getDeploymentID());
         resource.setAppDes(o.getApplicationDesc());
         resource.setAppModuleId(o.getAppModuleID());
         resource.setEnvModuleLoadCMD(o.getEnvModuleLoaString());

http://git-wip-us.apache.org/repos/asf/airavata/blob/54d02d48/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
new file mode 100644
index 0000000..68e344c
--- /dev/null
+++ b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/AppDeploymentTest.java
@@ -0,0 +1,135 @@
+/*
+ *
+ * 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.airavata.app.catalog.test;
+
+import org.airavata.appcatalog.cpi.*;
+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.utils.AiravataUtils;
+import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
+import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
+import org.apache.airavata.model.appcatalog.appdeployment.SetEnvPaths;
+import org.apache.airavata.model.computehost.ComputeResourceDescription;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.junit.Assert.assertTrue;
+
+public class AppDeploymentTest {
+    private static Initialize initialize;
+    private static AppCatalog appcatalog;
+
+    @Before
+    public void setUp() {
+        try {
+            AiravataUtils.setExecutionAsServer();
+            initialize = new Initialize("appcatalog-derby.sql");
+            initialize.initializeDB();
+            appcatalog = AppCatalogFactory.getAppCatalog();
+        } catch (AppCatalogException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        System.out.println("********** TEAR DOWN ************");
+        initialize.stopDerbyServer();
+
+    }
+
+    @Test
+    public void testAppDeployment () throws Exception {
+        ApplicationDeployment appDep = appcatalog.getApplicationDeployment();
+        ApplicationInterface appInt = appcatalog.getApplicationInterface();
+        ComputeResource computeRs = appcatalog.getComputeResource();
+        ComputeResourceDescription cm = new ComputeResourceDescription();
+        cm.setHostName("localhost");
+        cm.setResourceDescription("test compute host");
+        String hostId = computeRs.addComputeResource(cm);
+
+        ApplicationModule module = new ApplicationModule();
+        module.setAppModuleName("WRF");
+        module.setAppModuleVersion("1.0.0");
+        String wrfModuleId = appInt.addApplicationModule(module);
+
+        ApplicationDeploymentDescription description = new ApplicationDeploymentDescription();
+        description.setAppModuleId(wrfModuleId);
+        description.setComputeHostId(hostId);
+        description.setExecutablePath("/home/a/b/c");
+        description.setAppDeploymentDescription("test app deployment");
+        description.setModuleLoadCmd("module load");
+        List<SetEnvPaths> libPrepandPaths = new ArrayList<SetEnvPaths>();
+        libPrepandPaths.add(createSetEnvPath("name1", "val1"));
+        libPrepandPaths.add(createSetEnvPath("name2", "val2"));
+        description.setLibPrependPaths(libPrepandPaths);
+        List<SetEnvPaths> libApendPaths = new ArrayList<SetEnvPaths>();
+        libApendPaths.add(createSetEnvPath("name3", "val3"));
+        libApendPaths.add(createSetEnvPath("name4", "val4"));
+        description.setLibAppendPaths(libApendPaths);
+        List<SetEnvPaths> appEvns = new ArrayList<SetEnvPaths>();
+        appEvns.add(createSetEnvPath("name5", "val5"));
+        appEvns.add(createSetEnvPath("name6", "val6"));
+        description.setSetEnvironment(appEvns);
+
+        String appDepId = appDep.addApplicationDeployment(description);
+        ApplicationDeploymentDescription app = null;
+        if (appDep.isAppDeploymentExists(appDepId)){
+            app = appDep.getApplicationDeployement(appDepId);
+            System.out.println("*********** application deployment desc ********* : " + app.getAppDeploymentDescription());
+        }
+
+        description.setAppDeploymentDescription("test app deployment2");
+        appDep.updateApplicationDeployment(appDepId, description);
+
+        if (appDep.isAppDeploymentExists(appDepId)){
+            app = appDep.getApplicationDeployement(appDepId);
+            System.out.println("*********** application deployment desc ********* : " + app.getAppDeploymentDescription());
+        }
+
+        Map<String, String> moduleIdFilter = new HashMap<String, String>();
+        moduleIdFilter.put(AbstractResource.ApplicationDeploymentConstants.APP_MODULE_ID, wrfModuleId);
+        List<ApplicationDeploymentDescription> applicationDeployements = appDep.getApplicationDeployements(moduleIdFilter);
+        System.out.println("******** Size of App deployments for module *********** : " + applicationDeployements.size());
+        Map<String, String> hostFilter = new HashMap<String, String>();
+        hostFilter.put(AbstractResource.ApplicationDeploymentConstants.COMPUTE_HOST_ID, hostId);
+        List<ApplicationDeploymentDescription> applicationDeployementsForHost = appDep.getApplicationDeployements(hostFilter);
+        System.out.println("******** Size of App deployments for host *********** : " + applicationDeployementsForHost.size());
+        assertTrue("App interface saved successfully", app != null);
+    }
+
+    public SetEnvPaths createSetEnvPath (String name, String val){
+        SetEnvPaths setEnvPaths = new SetEnvPaths();
+        setEnvPaths.setName(name);
+        setEnvPaths.setValue(val);
+        return setEnvPaths;
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/54d02d48/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 78ef867..6bf67ca 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
@@ -32,7 +32,7 @@ import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDes
 import org.apache.airavata.model.appcatalog.appinterface.DataType;
 import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
 import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
-import org.junit.AfterClass;
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -57,9 +57,11 @@ public class AppInterfaceTest {
         }
     }
 
-    @AfterClass
-    public static void tearDownAfterClass() throws Exception {
+    @After
+    public void tearDown() throws Exception {
+        System.out.println("********** TEAR DOWN ************");
         initialize.stopDerbyServer();
+
     }
 
     @Test
@@ -94,6 +96,17 @@ public class AppInterfaceTest {
                 ainterface = appInterface.getApplicationInterface(appID);
                 System.out.println("********** application name ************* : " + ainterface.getApplicationName());
             }
+            ApplicationModule wrfModule = appInterface.getApplicationModule(wrfModuleId);
+            System.out.println("********** WRF module name ************* : " + wrfModule.getAppModuleName());
+            ApplicationModule amberModule = appInterface.getApplicationModule(amberModuleId);
+            System.out.println("********** Amber module name ************* : " + amberModule.getAppModuleName());
+
+            List<InputDataObjectType> applicationInputs = appInterface.getApplicationInputs(appID);
+            System.out.println("********** App Input size ************* : " + applicationInputs.size());
+
+            List<OutputDataObjectType> applicationOutputs = appInterface.getApplicationOutputs(appID);
+            System.out.println("********** App output size ************* : " + applicationOutputs.size());
+
             assertTrue("App interface saved successfully", ainterface != null);
 
         }catch (AppCatalogException e) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/54d02d48/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/ComputeResourceTest.java
----------------------------------------------------------------------
diff --git a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/ComputeResourceTest.java b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/ComputeResourceTest.java
index ab12ae4..4638159 100644
--- a/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/ComputeResourceTest.java
+++ b/modules/app-catalog/app-catalog-data/src/test/java/org/apache/airavata/app/catalog/test/ComputeResourceTest.java
@@ -26,11 +26,10 @@ import org.airavata.appcatalog.cpi.AppCatalog;
 import org.airavata.appcatalog.cpi.AppCatalogException;
 import org.airavata.appcatalog.cpi.ComputeResource;
 import org.apache.aiaravata.application.catalog.data.impl.AppCatalogFactory;
-import org.apache.aiaravata.application.catalog.data.impl.AppCatalogImpl;
 import org.apache.airavata.app.catalog.test.util.Initialize;
 import org.apache.airavata.common.utils.AiravataUtils;
 import org.apache.airavata.model.computehost.*;
-import org.junit.AfterClass;
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -54,9 +53,11 @@ public class ComputeResourceTest {
         }
     }
 
-    @AfterClass
-    public static void tearDownAfterClass() throws Exception {
+    @After
+    public void tearDown() throws Exception {
+        System.out.println("********** TEAR DOWN ************");
         initialize.stopDerbyServer();
+
     }
 
     @Test