You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2014/04/11 22:09:42 UTC

git commit: fixing test cases and changing the property names

Repository: airavata
Updated Branches:
  refs/heads/master a8d53cdaa -> a5def0963


fixing test cases and changing the property names


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

Branch: refs/heads/master
Commit: a5def09630000299a3cfcf8295c88da9ab4d8af1
Parents: a8d53cd
Author: lahiru <la...@apache.org>
Authored: Fri Apr 11 16:09:35 2014 -0400
Committer: lahiru <la...@apache.org>
Committed: Fri Apr 11 16:09:35 2014 -0400

----------------------------------------------------------------------
 .../main/resources/airavata-server.properties   |   4 +-
 .../org/apache/airavata/gfac/Constants.java     |   4 +-
 .../services/impl/BigRed2TestWithSSHAuth.java   |  17 ++-
 .../impl/GSISSHProviderTestWithMyProxyAuth.java |   8 +-
 .../GSISecurityContextTestWithMyProxyAuth.java  |  20 ++-
 .../airavata/job/monitor/MonitorManager.java    |  11 ++
 .../airavata/job/monitor/QstatMonitorTest.java  | 139 ------------------
 .../QstatMonitorTestWithMyProxyAuth.java        | 143 +++++++++++++++++++
 modules/orchestrator/orchestrator-core/pom.xml  |  23 +++
 .../orchestrator/core/BaseOrchestratorTest.java |   4 +
 .../orchestrator/core/NewOrchestratorTest.java  |  83 ++++++-----
 .../core/OrchestratorTestWithGSISSH.java        |  96 -------------
 .../core/OrchestratorTestWithMyProxyAuth.java   | 113 +++++++++++++++
 .../src/test/resources/PBSTemplate.xslt         |  77 ++++++++++
 .../registry/jpa/impl/LoggingRegistryImpl.java  |   4 +
 samples/distribution/pom.xml                    |   1 +
 .../impl/DefaultSSHApiTestWithMyProxyAuth.java  |  14 +-
 .../gsi/ssh/impl/VanilaTestWithSSHAuth.java     |  16 +--
 18 files changed, 464 insertions(+), 313 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/modules/configuration/server/src/main/resources/airavata-server.properties
----------------------------------------------------------------------
diff --git a/modules/configuration/server/src/main/resources/airavata-server.properties b/modules/configuration/server/src/main/resources/airavata-server.properties
index ef17106..22849b1 100644
--- a/modules/configuration/server/src/main/resources/airavata-server.properties
+++ b/modules/configuration/server/src/main/resources/airavata-server.properties
@@ -99,8 +99,8 @@ gfac.embedded=true
 ###########################################################################
 
 myproxy.server=myproxy.teragrid.org
-myproxy.user=ogce
-myproxy.pass=
+myproxy.username=ogce
+myproxy.password=
 myproxy.life=3600
 # XSEDE Trusted certificates can be downloaded from https://software.xsede.org/security/xsede-certs.tar.gz
 trusted.cert.location=/Users/lahirugunathilake/Downloads/certificates

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/Constants.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/Constants.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/Constants.java
index 5f1af68..bda40b1 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/Constants.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/Constants.java
@@ -57,8 +57,8 @@ public class Constants {
     public static final String TRUSTED_CERTIFICATE_SYSTEM_PROPERTY = "X509_CERT_DIR";
     public static final String MYPROXY_SERVER = "myproxy.server";
     public static final String MYPROXY_SERVER_PORT = "myproxy.port";
-    public static final String MYPROXY_USER = "myproxy.user";
-    public static final String MYPROXY_PASS = "myproxy.pass";
+    public static final String MYPROXY_USER = "myproxy.username";
+    public static final String MYPROXY_PASS = "myproxy.password";
     public static final String MYPROXY_LIFE = "myproxy.life";
     /*
      * SSH properties

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/modules/gfac/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/BigRed2TestWithSSHAuth.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/BigRed2TestWithSSHAuth.java b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/BigRed2TestWithSSHAuth.java
index 2fc1038..de8e1b4 100644
--- a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/BigRed2TestWithSSHAuth.java
+++ b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/BigRed2TestWithSSHAuth.java
@@ -76,20 +76,21 @@ public class BigRed2TestWithSSHAuth {
 //        System.setProperty("ssh.public.key.path", "/Users/lahirugunathilake/.ssh/id_dsa.pub");
 //        System.setProperty("ssh.working.directory", "/tmp");
 
+        this.hostName = "bigred2.uits.iu.edu";
         this.hostName = System.getProperty("ssh.host");
-        this.userName = System.getProperty("ssh.user");
+        this.userName = System.getProperty("ssh.username");
         this.password = System.getProperty("ssh.password");
-        this.privateKeyPath = System.getProperty("ssh.private.key.path");
-        this.publicKeyPath = System.getProperty("ssh.public.key.path");
-        this.passPhrase = System.getProperty("ssh.private.key.passphrase");
+        this.privateKeyPath = System.getProperty("private.ssh.key");
+        this.publicKeyPath = System.getProperty("public.ssh.key");
+        this.passPhrase = System.getProperty("ssh.keypass");
         this.workingDirectory = System.getProperty("ssh.working.directory");
 
 
          if (this.userName == null
                 || (this.password==null && (this.publicKeyPath == null || this.privateKeyPath == null)) || this.workingDirectory == null) {
             System.out.println("########### In order to test you have to either username password or private,public keys");
-            System.out.println("Use -Dssh.user=xxx -Dssh.password=yyy -Dssh.private.key.passphrase=zzz " +
-                    "-Dssh.private.key.path -Dssh.public.key.path -Dssh.working.directory ");
+            System.out.println("Use -Dssh.username=xxx -Dssh.password=yyy -Dssh.keypass=zzz " +
+                    "-Dprivate.ssh.key -Dpublic.ssh.key -Dssh.working.directory ");
         }
         URL resource = GramProviderTestWithMyProxyAuth.class.getClassLoader().getResource(org.apache.airavata.common.utils.Constants.GFAC_CONFIG_XML);
         assert resource != null;
@@ -242,9 +243,11 @@ public class BigRed2TestWithSSHAuth {
     }
 
     @Test
-    public void testGramProvider() throws GFacException {
+    public void testSSHProvider() throws GFacException {
         GFacImpl gFacAPI = new GFacImpl();
         gFacAPI.submitJob(jobExecutionContext);
+        org.junit.Assert.assertNotNull(jobExecutionContext.getJobDetails().getJobDescription());
+        org.junit.Assert.assertNotNull(jobExecutionContext.getJobDetails().getJobID());
     }
 
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/modules/gfac/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/GSISSHProviderTestWithMyProxyAuth.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/GSISSHProviderTestWithMyProxyAuth.java b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/GSISSHProviderTestWithMyProxyAuth.java
index fbf93dd..221f6e1 100644
--- a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/GSISSHProviderTestWithMyProxyAuth.java
+++ b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/GSISSHProviderTestWithMyProxyAuth.java
@@ -72,14 +72,14 @@ public class GSISSHProviderTestWithMyProxyAuth {
 //        System.setProperty("basedir", "/Users/lahirugunathilake/Downloads");
 //        System.setProperty("gsi.working.directory", "/home/ogce");
 //        System.setProperty("gsi.certificate.path", "/Users/lahirugunathilake/Downloads/certificates");
-        certificateLocation = System.getProperty("gsi.certificate.path");
-        myProxyUserName = System.getProperty("myproxy.user");
+        certificateLocation = System.getProperty("trusted.cert.location");
+        myProxyUserName = System.getProperty("myproxy.username");
         myProxyPassword = System.getProperty("myproxy.password");
         workingDirectory = System.getProperty("gsi.working.directory");
 
         if (myProxyUserName == null || myProxyPassword == null || certificateLocation == null) {
             System.out.println(">>>>>> Please run tests with my proxy user name and password. " +
-                    "E.g :- mvn clean install -Dmyproxy.user=xxx -Dmyproxy.password=xxx -Dgsi.working.directory=/path<<<<<<<");
+                    "E.g :- mvn clean install -Dmyproxy.username=xxx -Dmyproxy.password=xxx -Dgsi.working.directory=/path<<<<<<<");
             throw new Exception("Need my proxy user name password to run tests.");
         }
         URL resource = GSISSHProviderTestWithMyProxyAuth.class.getClassLoader().getResource(org.apache.airavata.common.utils.Constants.GFAC_CONFIG_XML);
@@ -220,7 +220,7 @@ public class GSISSHProviderTestWithMyProxyAuth {
         return sshSecurityContext;
     }
     @Test
-    public void testGramProvider() throws GFacException {
+    public void testGSISSHProvider() throws GFacException {
         GFacImpl gFacAPI = new GFacImpl();
         gFacAPI.submitJob(jobExecutionContext);
         System.out.println(jobExecutionContext.getJobDetails().getJobDescription());

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/modules/gfac/gfac-core/src/test/java/org/apache/airavata/gfac/context/security/GSISecurityContextTestWithMyProxyAuth.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/gfac/context/security/GSISecurityContextTestWithMyProxyAuth.java b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/gfac/context/security/GSISecurityContextTestWithMyProxyAuth.java
index 9789756..9a24931 100644
--- a/modules/gfac/gfac-core/src/test/java/org/apache/airavata/gfac/context/security/GSISecurityContextTestWithMyProxyAuth.java
+++ b/modules/gfac/gfac-core/src/test/java/org/apache/airavata/gfac/context/security/GSISecurityContextTestWithMyProxyAuth.java
@@ -35,13 +35,6 @@ import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
-import java.io.File;
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 7/12/13
- * Time: 12:58 PM
- */
 
 public class GSISecurityContextTestWithMyProxyAuth extends DatabaseTestCases {
 
@@ -54,13 +47,18 @@ public class GSISecurityContextTestWithMyProxyAuth extends DatabaseTestCases {
     public static void setUpClass() throws Exception {
         AiravataUtils.setExecutionAsServer();
 
-        System.setProperty("myproxy.user", "ogce");
-        System.setProperty("myproxy.password", "");
-        userName = System.getProperty("myproxy.user");
+//        System.setProperty("myproxy.username", "ogce");
+//        System.setProperty("myproxy.password", "");
+        userName = System.getProperty("myproxy.username");
         password = System.getProperty("myproxy.password");
+        System.setProperty("myproxy.server", "myproxy.teragrid.org");
+        System.setProperty("myproxy.life", "3600");
+        System.setProperty("credential.store.keystore.url", "../configuration/server/src/main/resources/airavata.jks");
+        System.setProperty("credential.store.keystore.alias", "airavata");
+        System.setProperty("credential.store.keystore.password", "airavata");
 
         if (userName == null || password == null || userName.trim().equals("") || password.trim().equals("")) {
-            log.error("===== Please set myproxy.user and myproxy.password system properties. =======");
+            log.error("===== Please set myproxy.username and myproxy.password system properties. =======");
             Assert.fail("Please set myproxy.user and myproxy.password system properties.");
         }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/job/monitor/MonitorManager.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/job/monitor/MonitorManager.java b/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/job/monitor/MonitorManager.java
index 272053c..45b7230 100644
--- a/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/job/monitor/MonitorManager.java
+++ b/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/job/monitor/MonitorManager.java
@@ -32,6 +32,7 @@ import org.apache.airavata.job.monitor.impl.pull.qstat.QstatMonitor;
 import org.apache.airavata.job.monitor.impl.push.amqp.AMQPMonitor;
 import org.apache.airavata.job.monitor.util.CommonUtils;
 import org.apache.airavata.persistance.registry.jpa.impl.RegistryImpl;
+import org.apache.airavata.registry.cpi.Registry;
 import org.apache.airavata.schemas.gfac.GlobusHostType;
 import org.apache.airavata.schemas.gfac.GsisshHostType;
 import org.apache.airavata.schemas.gfac.SSHHostType;
@@ -83,6 +84,16 @@ public class MonitorManager {
         registerListener(new AiravataJobStatusUpdator(new RegistryImpl(), getFinishQueue()));
     }
 
+    public MonitorManager(Registry registry) {
+        pullMonitors = new ArrayList<PullMonitor>();
+        pushMonitors = new ArrayList<PushMonitor>();
+        pullQueue = new LinkedBlockingQueue<UserMonitorData>();
+        pushQueue = new LinkedBlockingQueue<MonitorID>();
+        finishQueue = new LinkedBlockingQueue<MonitorID>();
+        localJobQueue = new LinkedBlockingQueue<MonitorID>();
+        monitorPublisher = new MonitorPublisher(new EventBus());
+        registerListener(new AiravataJobStatusUpdator(registry, getFinishQueue()));
+    }
     /**
      * This can be use to add an empty AMQPMonitor object to the monitor system
      * and tihs method will take care of the initialization

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/modules/gfac/gfac-monitor/src/test/java/org/apache/airavata/job/monitor/QstatMonitorTest.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/test/java/org/apache/airavata/job/monitor/QstatMonitorTest.java b/modules/gfac/gfac-monitor/src/test/java/org/apache/airavata/job/monitor/QstatMonitorTest.java
deleted file mode 100644
index 68460d4..0000000
--- a/modules/gfac/gfac-monitor/src/test/java/org/apache/airavata/job/monitor/QstatMonitorTest.java
+++ /dev/null
@@ -1,139 +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.airavata.job.monitor;
-
-import org.apache.airavata.commons.gfac.type.HostDescription;
-import org.apache.airavata.gsi.ssh.api.Cluster;
-import org.apache.airavata.gsi.ssh.api.SSHApiException;
-import org.apache.airavata.gsi.ssh.api.ServerInfo;
-import org.apache.airavata.gsi.ssh.api.authentication.GSIAuthenticationInfo;
-import org.apache.airavata.gsi.ssh.api.job.JobDescriptor;
-import org.apache.airavata.gsi.ssh.impl.PBSCluster;
-import org.apache.airavata.gsi.ssh.impl.authentication.MyProxyAuthenticationInfo;
-import org.apache.airavata.gsi.ssh.util.CommonUtils;
-import org.apache.airavata.job.monitor.exception.AiravataMonitorException;
-import org.apache.airavata.job.monitor.impl.pull.qstat.QstatMonitor;
-import org.apache.airavata.schemas.gfac.GsisshHostType;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-public class QstatMonitorTest {
-    private MonitorManager monitorManager;
-    private String myProxyUserName;
-    private String myProxyPassword;
-    private String certificateLocation;
-    private String pbsFilePath;
-    private String workingDirectory;
-    private HostDescription hostDescription;
-
-    @Before
-    public void setUp() throws Exception {
-        System.setProperty("myproxy.user", "ogce");
-        System.setProperty("myproxy.password", "");
-        System.setProperty("basedir", "/Users/lahirugunathilake/work/airavata/sandbox/gsissh");
-        System.setProperty("gsi.working.directory", "/home/ogce");
-        myProxyUserName = System.getProperty("myproxy.user");
-        myProxyPassword = System.getProperty("myproxy.password");
-        workingDirectory = System.getProperty("gsi.working.directory");
-        String pomDirectory = System.getProperty("basedir");
-        certificateLocation = "/Users/lahirugunathilake/Downloads/certificates";
-        if (myProxyUserName == null || myProxyPassword == null || workingDirectory == null) {
-            System.out.println(">>>>>> Please run tests with my proxy user name and password. " +
-                    "E.g :- mvn clean install -Dmyproxy.user=xxx -Dmyproxy.password=xxx -Dgsi.working.directory=/path<<<<<<<");
-            throw new Exception("Need my proxy user name password to run tests.");
-        }
-
-        monitorManager = new MonitorManager();
-        QstatMonitor qstatMonitor = new
-                QstatMonitor(monitorManager.getPullQueue(), monitorManager.getMonitorPublisher());
-        try {
-            monitorManager.addPullMonitor(qstatMonitor);
-            monitorManager.launchMonitor();
-        } catch (AiravataMonitorException e) {
-            e.printStackTrace();
-        }
-
-        hostDescription = new HostDescription(GsisshHostType.type);
-        hostDescription.getType().setHostAddress("trestles.sdsc.edu");
-        hostDescription.getType().setHostName("gsissh-gordon");
-    }
-
-    @Test
-    public void testQstatMonitor() throws SSHApiException {
-        /* now have to submit a job to some machine and add that job to the queue */
-        //Create authentication
-        GSIAuthenticationInfo authenticationInfo
-                = new MyProxyAuthenticationInfo(myProxyUserName, myProxyPassword, "myproxy.teragrid.org",
-                7512, 17280000, certificateLocation);
-
-        // Server info
-        ServerInfo serverInfo = new ServerInfo("ogce", hostDescription.getType().getHostAddress());
-
-
-        Cluster pbsCluster = new PBSCluster(serverInfo, authenticationInfo, CommonUtils.getPBSJobManager("/opt/torque/bin/"));
-
-
-        // Execute command
-        System.out.println("Target PBS file path: " + workingDirectory);
-        // constructing the job object
-        JobDescriptor jobDescriptor = new JobDescriptor();
-        jobDescriptor.setWorkingDirectory(workingDirectory);
-        jobDescriptor.setShellName("/bin/bash");
-        jobDescriptor.setJobName("GSI_SSH_SLEEP_JOB");
-        jobDescriptor.setExecutablePath("/bin/echo");
-        jobDescriptor.setAllEnvExport(true);
-        jobDescriptor.setMailOptions("n");
-        jobDescriptor.setStandardOutFile(workingDirectory + File.separator + "application.out");
-        jobDescriptor.setStandardErrorFile(workingDirectory + File.separator + "application.err");
-        jobDescriptor.setNodes(1);
-        jobDescriptor.setProcessesPerNode(1);
-        jobDescriptor.setQueueName("normal");
-        jobDescriptor.setMaxWallTime("60");
-        jobDescriptor.setAcountString("sds128");
-        List<String> inputs = new ArrayList<String>();
-        jobDescriptor.setOwner("ogce");
-        inputs.add("Hello World");
-        jobDescriptor.setInputValues(inputs);
-        //finished construction of job object
-        System.out.println(jobDescriptor.toXML());
-        for (int i = 0; i < 1; i++) {
-            String jobID = pbsCluster.submitBatchJob(jobDescriptor);
-            MonitorID monitorID = new MonitorID(hostDescription, jobID,null,null, "ogce");
-            monitorID.setAuthenticationInfo(authenticationInfo);
-            try {
-                monitorManager.addAJobToMonitor(monitorID);
-            } catch (AiravataMonitorException e) {
-                e.printStackTrace();
-            } catch (InterruptedException e) {
-                e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-            }
-        }
-        try {
-            Thread.sleep(10000000);
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/modules/gfac/gfac-monitor/src/test/java/org/apache/airavata/job/monitor/QstatMonitorTestWithMyProxyAuth.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/test/java/org/apache/airavata/job/monitor/QstatMonitorTestWithMyProxyAuth.java b/modules/gfac/gfac-monitor/src/test/java/org/apache/airavata/job/monitor/QstatMonitorTestWithMyProxyAuth.java
new file mode 100644
index 0000000..33ed964
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/test/java/org/apache/airavata/job/monitor/QstatMonitorTestWithMyProxyAuth.java
@@ -0,0 +1,143 @@
+/*
+ *
+ * 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.job.monitor;
+
+import org.apache.airavata.commons.gfac.type.HostDescription;
+import org.apache.airavata.gsi.ssh.api.Cluster;
+import org.apache.airavata.gsi.ssh.api.SSHApiException;
+import org.apache.airavata.gsi.ssh.api.ServerInfo;
+import org.apache.airavata.gsi.ssh.api.authentication.GSIAuthenticationInfo;
+import org.apache.airavata.gsi.ssh.api.job.JobDescriptor;
+import org.apache.airavata.gsi.ssh.impl.PBSCluster;
+import org.apache.airavata.gsi.ssh.impl.authentication.MyProxyAuthenticationInfo;
+import org.apache.airavata.gsi.ssh.util.CommonUtils;
+import org.apache.airavata.job.monitor.exception.AiravataMonitorException;
+import org.apache.airavata.job.monitor.impl.pull.qstat.QstatMonitor;
+import org.apache.airavata.persistance.registry.jpa.impl.RegistryFactory;
+import org.apache.airavata.schemas.gfac.GsisshHostType;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+public class QstatMonitorTestWithMyProxyAuth {
+    private MonitorManager monitorManager;
+    private String myProxyUserName;
+    private String myProxyPassword;
+    private String certificateLocation;
+    private String pbsFilePath;
+    private String workingDirectory;
+    private HostDescription hostDescription;
+
+    @Before
+    public void setUp() throws Exception {
+//        System.setProperty("myproxy.username", "ogce");
+//        System.setProperty("myproxy.password", "");
+//        System.setProperty("basedir", "/Users/lahirugunathilake/work/airavata/sandbox/gsissh");
+//        System.setProperty("gsi.working.directory", "/home/ogce");
+//        System.setProperty("trusted.cert.location", "/Users/lahirugunathilake/Downloads/certificates");
+        myProxyUserName = System.getProperty("myproxy.username");
+        myProxyPassword = System.getProperty("myproxy.password");
+        workingDirectory = System.getProperty("gsi.working.directory");
+        certificateLocation = System.getProperty("trusted.cert.location");
+        if (myProxyUserName == null || myProxyPassword == null || workingDirectory == null) {
+            System.out.println(">>>>>> Please run tests with my proxy user name and password. " +
+                    "E.g :- mvn clean install -Dmyproxy.username=xxx -Dmyproxy.password=xxx -Dgsi.working.directory=/path<<<<<<<");
+            throw new Exception("Need my proxy user name password to run tests.");
+        }
+
+        monitorManager = new MonitorManager(RegistryFactory.getLoggingRegistry());
+        QstatMonitor qstatMonitor = new
+                QstatMonitor(monitorManager.getPullQueue(), monitorManager.getMonitorPublisher());
+        try {
+            monitorManager.addPullMonitor(qstatMonitor);
+            monitorManager.launchMonitor();
+        } catch (AiravataMonitorException e) {
+            e.printStackTrace();
+        }
+
+        hostDescription = new HostDescription(GsisshHostType.type);
+        hostDescription.getType().setHostAddress("trestles.sdsc.edu");
+        hostDescription.getType().setHostName("gsissh-gordon");
+        ((GsisshHostType) hostDescription.getType()).setPort(22);
+        ((GsisshHostType)hostDescription.getType()).setInstalledPath("/opt/torque/bin/");
+    }
+
+    @Test
+    public void testQstatMonitor() throws SSHApiException {
+        /* now have to submit a job to some machine and add that job to the queue */
+        //Create authentication
+        GSIAuthenticationInfo authenticationInfo
+                = new MyProxyAuthenticationInfo(myProxyUserName, myProxyPassword, "myproxy.teragrid.org",
+                7512, 17280000, certificateLocation);
+
+        // Server info
+        ServerInfo serverInfo = new ServerInfo("ogce", hostDescription.getType().getHostAddress());
+
+
+        Cluster pbsCluster = new PBSCluster(serverInfo, authenticationInfo, CommonUtils.getPBSJobManager("/opt/torque/bin/"));
+
+
+        // Execute command
+        System.out.println("Target PBS file path: " + workingDirectory);
+        // constructing the job object
+        JobDescriptor jobDescriptor = new JobDescriptor();
+        jobDescriptor.setWorkingDirectory(workingDirectory);
+        jobDescriptor.setShellName("/bin/bash");
+        jobDescriptor.setJobName("GSI_SSH_SLEEP_JOB");
+        jobDescriptor.setExecutablePath("/bin/echo");
+        jobDescriptor.setAllEnvExport(true);
+        jobDescriptor.setMailOptions("n");
+        jobDescriptor.setStandardOutFile(workingDirectory + File.separator + "application.out");
+        jobDescriptor.setStandardErrorFile(workingDirectory + File.separator + "application.err");
+        jobDescriptor.setNodes(1);
+        jobDescriptor.setProcessesPerNode(1);
+        jobDescriptor.setQueueName("normal");
+        jobDescriptor.setMaxWallTime("60");
+        jobDescriptor.setAcountString("sds128");
+        List<String> inputs = new ArrayList<String>();
+        jobDescriptor.setOwner("ogce");
+        inputs.add("Hello World");
+        jobDescriptor.setInputValues(inputs);
+        //finished construction of job object
+        System.out.println(jobDescriptor.toXML());
+        for (int i = 0; i < 1; i++) {
+            String jobID = pbsCluster.submitBatchJob(jobDescriptor);
+            System.out.println("Job submitted successfully, Job ID: " +  jobID);
+            MonitorID monitorID = new MonitorID(hostDescription, jobID,null,null, "ogce");
+            monitorID.setAuthenticationInfo(authenticationInfo);
+            try {
+                monitorManager.addAJobToMonitor(monitorID);
+            } catch (AiravataMonitorException e) {
+                e.printStackTrace();
+            } catch (InterruptedException e) {
+                e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+            }
+        }
+        try {
+            Thread.sleep(10000000);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/modules/orchestrator/orchestrator-core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/pom.xml b/modules/orchestrator/orchestrator-core/pom.xml
index d12f24e..e718c93 100644
--- a/modules/orchestrator/orchestrator-core/pom.xml
+++ b/modules/orchestrator/orchestrator-core/pom.xml
@@ -75,6 +75,24 @@ the License. -->
             <artifactId>gfac-monitor</artifactId>
             <version>${project.version}</version>
         </dependency>
+         <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derby</artifactId>
+            <version>${derby.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derbyclient</artifactId>
+            <version>${derby.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derbynet</artifactId>
+            <version>${derby.version}</version>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>junit</groupId>
             <artifactId>junit</artifactId>
@@ -86,6 +104,11 @@ the License. -->
             <version>6.1.1</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.airavata</groupId>
+            <artifactId>airavata-server-configuration</artifactId>
+            <scope>test</scope>
+        </dependency>
 	<dependency>
             <groupId>org.apache.airavata</groupId>
             <artifactId>airavata-server-configuration</artifactId>

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/BaseOrchestratorTest.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/BaseOrchestratorTest.java b/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/BaseOrchestratorTest.java
index 0d5447c..f880f95 100644
--- a/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/BaseOrchestratorTest.java
+++ b/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/BaseOrchestratorTest.java
@@ -91,4 +91,8 @@ public class BaseOrchestratorTest {
     public void setDocumentCreator(DocumentCreator documentCreator) {
         this.documentCreator = documentCreator;
     }
+
+    private void settingServerProperties(){
+
+    }
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/NewOrchestratorTest.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/NewOrchestratorTest.java b/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/NewOrchestratorTest.java
index 522e3b2..e161da6 100644
--- a/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/NewOrchestratorTest.java
+++ b/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/NewOrchestratorTest.java
@@ -27,24 +27,32 @@ import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
 import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.common.utils.AiravataUtils;
 import org.apache.airavata.common.utils.ServerSettings;
+import org.apache.airavata.model.util.ExperimentModelUtil;
+import org.apache.airavata.model.workspace.experiment.*;
 import org.apache.airavata.orchestrator.cpi.Orchestrator;
 import org.apache.airavata.orchestrator.cpi.impl.SimpleOrchestratorImpl;
+import org.apache.airavata.persistance.registry.jpa.impl.RegistryFactory;
 import org.apache.airavata.persistance.registry.jpa.impl.RegistryImpl;
 import org.apache.airavata.registry.cpi.ChildDataType;
 import org.apache.airavata.registry.cpi.ParentDataType;
 import org.apache.airavata.registry.cpi.Registry;
+import org.apache.airavata.schemas.gfac.DataType;
+import org.apache.thrift.TException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.annotations.BeforeTest;
 import org.testng.annotations.Test;
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 
 public class NewOrchestratorTest extends BaseOrchestratorTest {
     private static final Logger log = LoggerFactory.getLogger(NewOrchestratorTest.class);
 
     private Orchestrator orchestrator;
     private String experimentID;
+    private List<TaskDetails> tasks;
 
     @BeforeTest
     public void setUp() throws Exception {
@@ -52,51 +60,52 @@ public class NewOrchestratorTest extends BaseOrchestratorTest {
         super.setUp();
         orchestrator = new SimpleOrchestratorImpl();
         createJobRequestWithDocuments(getAiravataAPI());
+        // System.setProperty("myproxy.user", "ogce");
+//         System.setProperty("myproxy.pass", "");
+//         System.setProperty("trusted.cert.location", "/Users/lahirugunathilake/Downloads/certificates");
+         //this is the same propertySystem.getProperty("myproxy.user");
+//         System.setProperty("myproxy.pass",System.getProperty("myproxy.password"));
+//        System.setProperty("trusted.cert.location",System.getProperty("gsi.working.directory"));
     }
 
     private void createJobRequestWithDocuments(AiravataAPI airavataAPI) throws Exception{
         // creating host description
+        List<DataObjectType> exInputs = new ArrayList<DataObjectType>();
+        DataObjectType input = new DataObjectType();
+        input.setKey("echo_input");
+        input.setType(DataType.STRING.toString());
+        input.setValue("echo_output=Hello World");
+        exInputs.add(input);
 
-        //Using new airavata-api methods to store experiment metadata
-//        BasicMetadata basicMetadata = new BasicMetadata();
-//        basicMetadata.setExperimentName("test123");
-//        basicMetadata.setUserName("admin");
-//        basicMetadata.setUserNameIsSet(true);
-//        basicMetadata.setProjectID("default");
-//
-//        AdvancedInputDataHandling advancedInputDataHandling = new AdvancedInputDataHandling();
-//        AdvancedOutputDataHandling advancedOutputDataHandling = new AdvancedOutputDataHandling();
-//        ComputationalResourceScheduling computationalResourceScheduling = new ComputationalResourceScheduling();
-//        QualityOfServiceParams qualityOfServiceParams = new QualityOfServiceParams();
-//        ConfigurationData configurationData = new ConfigurationData();
-//
-//
-//        HashMap<String, String> exInputs = new HashMap<String, String>();
-//        exInputs.put("echo_input", "echo_output=hello");
-//
-//        configurationData.setExperimentInputs(exInputs);
-//        configurationData.setAdvanceInputDataHandling(advancedInputDataHandling);
-//        configurationData.setAdvanceOutputDataHandling(advancedOutputDataHandling);
-//        configurationData.setComputationalResourceScheduling(computationalResourceScheduling);
-//        configurationData.setQosParams(qualityOfServiceParams);
-//        configurationData.setApplicationId("Echo");
-//
-//        Registry registry = new RegistryImpl();
-//        experimentID = (String) registry.add(ParentDataType.EXPERIMENT, basicMetadata);
-//        registry.add(ChildDataType.EXPERIMENT_CONFIGURATION_DATA, configurationData, experimentID);
-    }
+        List<DataObjectType> exOut = new ArrayList<DataObjectType>();
+        DataObjectType output = new DataObjectType();
+        output.setKey("echo_output");
+        output.setType(DataType.STRING.toString());
+        output.setValue("");
+        exOut.add(output);
 
-    @Test
-    public void noDescriptorTest() throws Exception {
+        Experiment simpleExperiment =
+                ExperimentModelUtil.createSimpleExperiment("project1", "admin", "echoExperiment", "SimpleEcho0", "SimpleEcho0", exInputs);
+        simpleExperiment.setExperimentOutputs(exOut);
 
-//        boolean b = orchestrator.launchExperiment(experimentID);
+        ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling("localhost", 1, 1, 1, "normal", 0, 0, 1, "sds128");
+        scheduling.setResourceHostId("localhost");
+        UserConfigurationData userConfigurationData = new UserConfigurationData();
+        userConfigurationData.setAiravataAutoSchedule(false);
+        userConfigurationData.setOverrideManualScheduledParams(false);
+        userConfigurationData.setComputationalResourceScheduling(scheduling);
+        simpleExperiment.setUserConfigurationData(userConfigurationData);
 
-//        if (b) {
-//            This means orchestrator successfully accepted the job
-//            Assert.assertTrue(true);
-//        } else {
-//            Assert.assertFalse(true);
-//        }
+        Registry defaultRegistry = RegistryFactory.getDefaultRegistry();
+        experimentID = (String)defaultRegistry.add(ParentDataType.EXPERIMENT, simpleExperiment);
+        tasks = orchestrator.createTasks(experimentID);
+    }
+
+    @Test
+    public void localHostTest() throws Exception {
+          for(TaskDetails details:tasks) {
+              orchestrator.launchExperiment(experimentID, details.getTaskID());
+          }
     }
 
     private AiravataAPI getAiravataAPI() {

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/OrchestratorTestWithGSISSH.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/OrchestratorTestWithGSISSH.java b/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/OrchestratorTestWithGSISSH.java
deleted file mode 100644
index 5042062..0000000
--- a/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/OrchestratorTestWithGSISSH.java
+++ /dev/null
@@ -1,96 +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.airavata.orchestrator.core;
-
-import junit.framework.Assert;
-
-import org.apache.airavata.client.api.AiravataAPI;
-import org.apache.airavata.common.utils.AiravataUtils;
-import org.apache.airavata.orchestrator.cpi.Orchestrator;
-import org.apache.airavata.orchestrator.cpi.impl.SimpleOrchestratorImpl;
-import org.apache.airavata.persistance.registry.jpa.impl.RegistryImpl;
-import org.apache.airavata.registry.cpi.ChildDataType;
-import org.apache.airavata.registry.cpi.ParentDataType;
-import org.apache.airavata.registry.cpi.Registry;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
-
-import java.util.HashMap;
-
-public class OrchestratorTestWithGSISSH extends BaseOrchestratorTest {
-    private static final Logger log = LoggerFactory.getLogger(NewOrchestratorTest.class);
-
-     private Orchestrator orchestrator;
-
-     private String experimentID;
-
-     @BeforeTest
-     public void setUp() throws Exception {
-         AiravataUtils.setExecutionAsServer();
-         super.setUp();
-         orchestrator = new SimpleOrchestratorImpl();
-         createJobRequestWithDocuments();
-     }
-
-     private void createJobRequestWithDocuments() throws Exception{
-         //Using new airavata-api methods to store experiment metadata
-//         BasicMetadata basicMetadata = new BasicMetadata();
-//         basicMetadata.setExperimentName("test-trestles-gsissh");
-//         basicMetadata.setUserName("admin");
-//         basicMetadata.setUserNameIsSet(true);
-//         basicMetadata.setProjectID("default");
-//
-//         AdvancedInputDataHandling advancedInputDataHandling = new AdvancedInputDataHandling();
-//         AdvancedOutputDataHandling advancedOutputDataHandling = new AdvancedOutputDataHandling();
-//         ComputationalResourceScheduling computationalResourceScheduling = new ComputationalResourceScheduling();
-//         QualityOfServiceParams qualityOfServiceParams = new QualityOfServiceParams();
-//         ConfigurationData configurationData = new ConfigurationData();
-//
-//         HashMap<String, String> exInputs = new HashMap<String, String>();
-//         exInputs.put("echo_input", "echo_output=hello");
-//
-//         configurationData.setExperimentInputs(exInputs);
-//         configurationData.setAdvanceInputDataHandling(advancedInputDataHandling);
-//         configurationData.setAdvanceOutputDataHandling(advancedOutputDataHandling);
-//         configurationData.setComputationalResourceScheduling(computationalResourceScheduling);
-//         configurationData.setQosParams(qualityOfServiceParams);
-//         configurationData.setApplicationId("SimpleEcho2");
-//
-//         Registry registry = new RegistryImpl();
-//         experimentID = (String) registry.add(ParentDataType.EXPERIMENT, basicMetadata);
-//         registry.add(ChildDataType.EXPERIMENT_CONFIGURATION_DATA, configurationData, experimentID);
-     }
-
-     @Test
-     public void noDescriptorTest() throws Exception {
-//        boolean b = orchestrator.launchExperiment(experimentID);
-//        if (b) {
-//            This means orchestrator successfully accepted the job
-//            Assert.assertTrue(true);
-//        } else {
-//            Assert.assertFalse(true);
-//        }
-     }
-
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/OrchestratorTestWithMyProxyAuth.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/OrchestratorTestWithMyProxyAuth.java b/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/OrchestratorTestWithMyProxyAuth.java
new file mode 100644
index 0000000..9fafe98
--- /dev/null
+++ b/modules/orchestrator/orchestrator-core/src/test/java/org/apache/airavata/orchestrator/core/OrchestratorTestWithMyProxyAuth.java
@@ -0,0 +1,113 @@
+/*
+ *
+ * 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.orchestrator.core;
+
+import junit.framework.Assert;
+
+import org.apache.airavata.client.api.AiravataAPI;
+import org.apache.airavata.common.utils.AiravataUtils;
+import org.apache.airavata.common.utils.ApplicationSettings;
+import org.apache.airavata.model.util.ExperimentModelUtil;
+import org.apache.airavata.model.workspace.experiment.*;
+import org.apache.airavata.orchestrator.cpi.Orchestrator;
+import org.apache.airavata.orchestrator.cpi.impl.SimpleOrchestratorImpl;
+import org.apache.airavata.persistance.registry.jpa.impl.RegistryFactory;
+import org.apache.airavata.persistance.registry.jpa.impl.RegistryImpl;
+import org.apache.airavata.persistance.registry.jpa.model.TaskDetail;
+import org.apache.airavata.registry.cpi.ChildDataType;
+import org.apache.airavata.registry.cpi.ParentDataType;
+import org.apache.airavata.registry.cpi.Registry;
+import org.apache.airavata.schemas.gfac.DataType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+public class OrchestratorTestWithMyProxyAuth extends BaseOrchestratorTest {
+    private static final Logger log = LoggerFactory.getLogger(NewOrchestratorTest.class);
+
+     private Orchestrator orchestrator;
+
+     private String experimentID;
+
+     private List<TaskDetails> tasks;
+
+     @BeforeTest
+     public void setUp() throws Exception {
+         AiravataUtils.setExecutionAsServer();
+         super.setUp();
+         orchestrator = new SimpleOrchestratorImpl();
+         createJobRequestWithDocuments();
+//         System.setProperty("myproxy.user", "ogce");
+//         System.setProperty("myproxy.pass", "");
+//         System.setProperty("trusted.cert.location", "/Users/lahirugunathilake/Downloads/certificates");
+         // this is the same propertySystem.getProperty("myproxy.user");
+//         System.setProperty("myproxy.pass",System.getProperty("myproxy.password"));
+//        System.setProperty("trusted.cert.location",System.getProperty("gsi.working.directory"));
+     }
+
+     private void createJobRequestWithDocuments() throws Exception{
+         List<DataObjectType> exInputs = new ArrayList<DataObjectType>();
+         DataObjectType input = new DataObjectType();
+         input.setKey("echo_input");
+         input.setType(DataType.STRING.toString());
+         input.setValue("echo_output=Hello World");
+         exInputs.add(input);
+
+         List<DataObjectType> exOut = new ArrayList<DataObjectType>();
+         DataObjectType output = new DataObjectType();
+         output.setKey("echo_output");
+         output.setType(DataType.STRING.toString());
+         output.setValue("");
+         exOut.add(output);
+
+         Experiment simpleExperiment =
+                 ExperimentModelUtil.createSimpleExperiment("project1", "admin", "echoExperiment", "SimpleEcho2", "SimpleEcho2", exInputs);
+         simpleExperiment.setExperimentOutputs(exOut);
+
+         ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling("trestles.sdsc.edu", 1, 1, 1, "normal", 0, 0, 1, "sds128");
+         scheduling.setResourceHostId("gsissh-trestles");
+         UserConfigurationData userConfigurationData = new UserConfigurationData();
+         userConfigurationData.setAiravataAutoSchedule(false);
+         userConfigurationData.setOverrideManualScheduledParams(false);
+         userConfigurationData.setComputationalResourceScheduling(scheduling);
+         simpleExperiment.setUserConfigurationData(userConfigurationData);
+
+         Registry registry = RegistryFactory.getDefaultRegistry();
+         experimentID = (String) registry.add(ParentDataType.EXPERIMENT, simpleExperiment);
+         tasks = orchestrator.createTasks(experimentID);
+
+     }
+
+     @Test
+     public void noDescriptorTest() throws Exception {
+         for(TaskDetails taskDetail:tasks) {
+             orchestrator.launchExperiment(experimentID, taskDetail.getTaskID());
+         }
+     }
+
+
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/modules/orchestrator/orchestrator-core/src/test/resources/PBSTemplate.xslt
----------------------------------------------------------------------
diff --git a/modules/orchestrator/orchestrator-core/src/test/resources/PBSTemplate.xslt b/modules/orchestrator/orchestrator-core/src/test/resources/PBSTemplate.xslt
new file mode 100644
index 0000000..e4398e0
--- /dev/null
+++ b/modules/orchestrator/orchestrator-core/src/test/resources/PBSTemplate.xslt
@@ -0,0 +1,77 @@
+<!--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. -->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://airavata.apache.org/gsi/ssh/2012/12">
+<xsl:output method="text" />
+<xsl:template match="/ns:JobDescriptor">
+#! /bin/sh
+#   <xsl:choose>
+    <xsl:when test="ns:shellName">
+##PBS -S <xsl:value-of select="ns:shellName"/>
+    </xsl:when></xsl:choose>
+    <xsl:choose>
+    <xsl:when test="ns:queueName">
+#PBS -q <xsl:value-of select="ns:queueName"/>
+    </xsl:when>
+    </xsl:choose>
+    <xsl:choose>
+    <xsl:when test="ns:mailOptions">
+#PBS -m <xsl:value-of select="ns:mailOptions"/>
+    </xsl:when>
+    </xsl:choose>
+    <xsl:choose>
+<xsl:when test="ns:acountString">
+#PBS -A <xsl:value-of select="ns:acountString"/>
+    </xsl:when>
+    </xsl:choose>
+    <xsl:choose>
+    <xsl:when test="ns:maxWallTime">
+#PBS -l walltime=<xsl:value-of select="ns:maxWallTime"/>
+    </xsl:when>
+    </xsl:choose>
+    <xsl:choose>
+    <xsl:when test="ns:jobName">
+#PBS -N <xsl:value-of select="ns:jobName"/>
+    </xsl:when>
+    </xsl:choose>
+    <xsl:choose>
+    <xsl:when test="ns:standardOutFile">
+#PBS -o <xsl:value-of select="ns:standardOutFile"/>
+    </xsl:when>
+    </xsl:choose>
+    <xsl:choose>
+    <xsl:when test="ns:standardOutFile">
+#PBS -e <xsl:value-of select="ns:standardErrorFile"/>
+    </xsl:when>
+    </xsl:choose>
+    <xsl:choose>
+    <xsl:when test="(ns:nodes) and (ns:processesPerNode)">
+#PBS -l nodes=<xsl:value-of select="ns:nodes"/>:ppn=<xsl:value-of select="ns:processesPerNode"/>
+<xsl:text>&#xa;</xsl:text>
+    </xsl:when>
+    </xsl:choose>
+<xsl:for-each select="ns:exports/ns:name">
+<xsl:value-of select="."/>=<xsl:value-of select="./@value"/><xsl:text>&#xa;</xsl:text>
+export<xsl:text>   </xsl:text><xsl:value-of select="."/>
+<xsl:text>&#xa;</xsl:text>
+</xsl:for-each>
+<xsl:for-each select="ns:preJobCommands/ns:command">
+      <xsl:value-of select="."/><xsl:text>   </xsl:text>
+    </xsl:for-each>
+cd <xsl:text>   </xsl:text><xsl:value-of select="ns:workingDirectory"/><xsl:text>&#xa;</xsl:text>
+    <xsl:choose><xsl:when test="ns:jobSubmitterCommand">
+<xsl:value-of select="ns:jobSubmitterCommand"/><xsl:text>   </xsl:text></xsl:when></xsl:choose><xsl:value-of select="ns:executablePath"/><xsl:text>   </xsl:text>
+<xsl:for-each select="ns:inputs/ns:input">
+      <xsl:value-of select="."/><xsl:text>   </xsl:text>
+    </xsl:for-each>
+<xsl:for-each select="ns:postJobCommands/ns:command">
+      <xsl:value-of select="."/><xsl:text>   </xsl:text>
+</xsl:for-each>
+
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/LoggingRegistryImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/LoggingRegistryImpl.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/LoggingRegistryImpl.java
index 49532d9..1c6f923 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/LoggingRegistryImpl.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/LoggingRegistryImpl.java
@@ -21,10 +21,14 @@
 package org.apache.airavata.persistance.registry.jpa.impl;
 
 import org.apache.airavata.registry.cpi.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.List;
 
 public class LoggingRegistryImpl implements Registry {
+    private final static Logger logger = LoggerFactory.getLogger(LoggingRegistryImpl.class);
+
     public Object add(ChildDataType dataType, Object newObjectToAdd, Object dependentIdentifiers) throws RegistryException {
         return null;  //To change body of implemented methods use File | Settings | File Templates.
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/samples/distribution/pom.xml
----------------------------------------------------------------------
diff --git a/samples/distribution/pom.xml b/samples/distribution/pom.xml
index 8f1b2fc..85f9049 100644
--- a/samples/distribution/pom.xml
+++ b/samples/distribution/pom.xml
@@ -93,6 +93,7 @@
             <artifactId>airavata-simple-math-service</artifactId>
             <version>${project.version}</version>
         </dependency>
+
     </dependencies>
     <properties>
         <archieve.name>apache-airavata-samples</archieve.name>

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/tools/gsissh/src/test/java/org/apache/airavata/gsi/ssh/impl/DefaultSSHApiTestWithMyProxyAuth.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/test/java/org/apache/airavata/gsi/ssh/impl/DefaultSSHApiTestWithMyProxyAuth.java b/tools/gsissh/src/test/java/org/apache/airavata/gsi/ssh/impl/DefaultSSHApiTestWithMyProxyAuth.java
index ae3f4d4..1e99b9d 100644
--- a/tools/gsissh/src/test/java/org/apache/airavata/gsi/ssh/impl/DefaultSSHApiTestWithMyProxyAuth.java
+++ b/tools/gsissh/src/test/java/org/apache/airavata/gsi/ssh/impl/DefaultSSHApiTestWithMyProxyAuth.java
@@ -53,19 +53,19 @@ public class DefaultSSHApiTestWithMyProxyAuth {
     @BeforeTest
     public void setUp() throws Exception {
         System.out.println("Test case name " + this.getClass().getName());
-        System.setProperty("myproxy.user", "ogce");
-        System.setProperty("myproxy.password", "0Gce3098");
-        System.setProperty("gsi.certificate.path", "/Users/lahirugunathilake/Downloads/certificates");
-        System.setProperty("gsi.working.directory", "/home/ogce");
+//        System.setProperty("myproxy.username", "ogce");
+//        System.setProperty("myproxy.password", "");
+//        System.setProperty("trusted.cert.location", "/Users/lahirugunathilake/Downloads/certificates");
+//        System.setProperty("gsi.working.directory", "/home/ogce");
 
-        certificateLocation = System.getProperty("gsi.certificate.path");
-        myProxyUserName = System.getProperty("myproxy.user");
+        certificateLocation = System.getProperty("trusted.cert.location");
+        myProxyUserName = System.getProperty("myproxy.username");
         myProxyPassword = System.getProperty("myproxy.password");
         workingDirectory = System.getProperty("gsi.working.directory");
 
         if (myProxyUserName == null || myProxyPassword == null || workingDirectory == null) {
             System.out.println(">>>>>> Please run tests with my proxy user name and password. " +
-                    "E.g :- mvn clean install -Dmyproxy.user=xxx -Dmyproxy.password=xxx -Dgsi.working.directory=/path<<<<<<<");
+                    "E.g :- mvn clean install -Dmyproxy.username=xxx -Dmyproxy.password=xxx -Dtrusted.cert.location=/path<<<<<<<");
             throw new Exception("Need my proxy user name password to run tests.");
         }
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/a5def096/tools/gsissh/src/test/java/org/apache/airavata/gsi/ssh/impl/VanilaTestWithSSHAuth.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/test/java/org/apache/airavata/gsi/ssh/impl/VanilaTestWithSSHAuth.java b/tools/gsissh/src/test/java/org/apache/airavata/gsi/ssh/impl/VanilaTestWithSSHAuth.java
index f20647d..dfbaef0 100644
--- a/tools/gsissh/src/test/java/org/apache/airavata/gsi/ssh/impl/VanilaTestWithSSHAuth.java
+++ b/tools/gsissh/src/test/java/org/apache/airavata/gsi/ssh/impl/VanilaTestWithSSHAuth.java
@@ -52,17 +52,17 @@ public class VanilaTestWithSSHAuth {
     public void setUp() throws Exception {
         System.out.println("Test case name " + this.getClass().getName());
         this.hostName = "bigred2.uits.iu.edu";        //default ssh host
-        System.setProperty("ssh.user", "lginnali");
-        System.setProperty("ssh.private.key.path", "/Users/lahirugunathilake/.ssh/id_dsa");
-        System.setProperty("ssh.public.key.path", "/Users/lahirugunathilake/.ssh/id_dsa.pub");
-        System.setProperty("ssh.working.directory", "/tmp");
+//        System.setProperty("ssh.user", "lginnali");
+//        System.setProperty("ssh.private.key.path", "/Users/lahirugunathilake/.ssh/id_dsa");
+//        System.setProperty("ssh.public.key.path", "/Users/lahirugunathilake/.ssh/id_dsa.pub");
+//        System.setProperty("ssh.working.directory", "/tmp");
 
         this.hostName = System.getProperty("ssh.host");
-        this.userName = System.getProperty("ssh.user");
+        this.userName = System.getProperty("ssh.username");
         this.password = System.getProperty("ssh.password");
-        this.privateKeyPath = System.getProperty("ssh.private.key.path");
-        this.publicKeyPath = System.getProperty("ssh.public.key.path");
-        this.passPhrase = System.getProperty("ssh.private.key.passphrase");
+        this.privateKeyPath = System.getProperty("private.ssh.key");
+        this.publicKeyPath = System.getProperty("public.ssh.key");
+        this.passPhrase = System.getProperty("ssh.keypass");
         this.workingDirectory = System.getProperty("ssh.working.directory");