You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ms...@apache.org on 2014/10/23 17:31:17 UTC

[2/2] git commit: updated credential store with the latest oa4mp-client libs, versioned 1.1.3 (still it needs a quick review by the component developers) - excluded the use of bc-prov-146 on all places - adjusted some code for the sake of compilation

updated credential store with the latest oa4mp-client libs, versioned
1.1.3 (still it needs a quick review by the component developers)
- excluded the use of bc-prov-146 on all places
- adjusted some code for the sake of compilation



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

Branch: refs/heads/master
Commit: 9ae7c6ec3930f55b4de5214b80bd7ebb0d0b2836
Parents: 9e750d8
Author: msmemon <sh...@gmail.com>
Authored: Thu Oct 23 17:32:30 2014 +0200
Committer: msmemon <sh...@gmail.com>
Committed: Thu Oct 23 17:32:30 2014 +0200

----------------------------------------------------------------------
 .../client/samples/CreateLaunchExperiment.java  |    7 +-
 modules/commons/utils/pom.xml                   |    8 +-
 .../credential-store-webapp/pom.xml             |    4 +-
 .../credential-store/pom.xml                    |  233 +--
 .../servlet/CredentialStoreCallbackServlet.java |    4 +-
 modules/distribution/server/pom.xml             |    2 +-
 .../server/src/main/assembly/bin-assembly.xml   |   25 +-
 modules/gfac/gfac-bes/pom.xml                   |   20 -
 .../gfac/bes/provider/impl/BESProvider.java     |  647 ++++----
 .../gfac/bes/utils/DataTransferrer.java         |   25 +-
 .../airavata/gfac/bes/utils/JSDLGenerator.java  |    6 +-
 .../airavata/gfac/bes/utils/SecurityUtils.java  |   11 +-
 .../gfac/bes/utils/UASDataStagingProcessor.java |   11 +-
 modules/gfac/gfac-ec2/pom.xml                   |  238 +--
 .../airavata/gfac/ec2/util/EC2ProviderUtil.java |    3 +-
 modules/gfac/gfac-gram/pom.xml                  |   10 -
 modules/test-suite/pom.xml                      |    2 +-
 .../workflow-model/workflow-model-core/pom.xml  |    6 +
 pom.xml                                         | 1506 ++++++++----------
 19 files changed, 1385 insertions(+), 1383 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/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 0130f14..c40ac35 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
@@ -53,7 +53,7 @@ public class CreateLaunchExperiment {
     private static final String DEFAULT_GATEWAY = "default.registry.gateway";
     private static Airavata.Client airavataClient;
 
-    private static String echoAppId = "Echo_afb090d6-392f-493f-80a6-929bc848ad5d";
+    private static String echoAppId = "Echo_6281480a-9887-4a0f-8311-59bbaf738e54";
     private static String wrfAppId = "WRF_5f097c9c-7066-49ec-aed7-4e39607b3adc";
     private static String amberAppId = "Amber_89906be6-5678-49a6-9d04-a0604fbdef2e";
 
@@ -78,11 +78,12 @@ public class CreateLaunchExperiment {
     
     
     
-    public static void createAndLaunchExp() {
+    public static void createAndLaunchExp() throws TException {
+    	final String expId = createEchoExperimentForFSD(airavataClient);
     	try {
         for (int i = 0; i < 2; i++) {
 //    final String expId = createExperimentForSSHHost(airavata);
-            final String expId = createEchoExperimentForFSD(airavataClient);
+//            final String expId = createEchoExperimentForFSD(airavataClient);
 //    final String expId = createEchoExperimentForStampede(airavataClient);
 //    final String expId = createExperimentEchoForLocalHost(airavataClient);
 //    final String expId = createExperimentWRFTrestles(airavataClient);

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/commons/utils/pom.xml
----------------------------------------------------------------------
diff --git a/modules/commons/utils/pom.xml b/modules/commons/utils/pom.xml
index 5b93732..934ba6c 100644
--- a/modules/commons/utils/pom.xml
+++ b/modules/commons/utils/pom.xml
@@ -48,12 +48,18 @@
             <groupId>org.ogce</groupId>
             <artifactId>xsul</artifactId>
             <version>${xsul.version}</version>
+            <exclusions>
+            	<exclusion>
+            		<groupId>org.bouncycastle</groupId>
+            		<artifactId>bcprov-jdk16</artifactId>
+            	</exclusion>
+            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.ogce</groupId>
             <artifactId>xsul5</artifactId>
             <version>${xsul5.version}</version>
-        </dependency>
+        </dependency> 
         <dependency>
             <groupId>org.apache.axis2</groupId>
             <artifactId>axis2-kernel</artifactId>

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/credential-store-service/credential-store-webapp/pom.xml
----------------------------------------------------------------------
diff --git a/modules/credential-store-service/credential-store-webapp/pom.xml b/modules/credential-store-service/credential-store-webapp/pom.xml
index 9c8ca71..796e3c3 100644
--- a/modules/credential-store-service/credential-store-webapp/pom.xml
+++ b/modules/credential-store-service/credential-store-webapp/pom.xml
@@ -104,7 +104,7 @@
             <artifactId>commons-codec</artifactId>
             <version>1.6</version>
         </dependency>
-        <dependency>
+        <!-- <dependency>
             <groupId>edu.uiuc.ncsa.myproxy</groupId>
             <artifactId>oa4mp-client-oauth1</artifactId>
             <version>${oa4mp.version}</version>
@@ -118,7 +118,7 @@
                     <artifactId>postgresql</artifactId>
                 </exclusion>
             </exclusions>
-        </dependency>
+        </dependency> -->
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-api</artifactId>

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/credential-store-service/credential-store/pom.xml
----------------------------------------------------------------------
diff --git a/modules/credential-store-service/credential-store/pom.xml b/modules/credential-store-service/credential-store/pom.xml
index e3c8a4a..ba36222 100644
--- a/modules/credential-store-service/credential-store/pom.xml
+++ b/modules/credential-store-service/credential-store/pom.xml
@@ -1,36 +1,39 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<!--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. -->
+<!--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. -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.airavata</groupId>
-        <artifactId>airavata</artifactId>
-        <version>0.14-SNAPSHOT</version>
-        <relativePath>../../../pom.xml</relativePath>
-    </parent>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<parent>
+		<groupId>org.apache.airavata</groupId>
+		<artifactId>airavata</artifactId>
+		<version>0.14-SNAPSHOT</version>
+		<relativePath>../../../pom.xml</relativePath>
+	</parent>
 
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>airavata-credential-store</artifactId>
-    <name>Airavata Credential Store</name>
-    <description>Module to manage credentials</description>
+	<modelVersion>4.0.0</modelVersion>
+	<artifactId>airavata-credential-store</artifactId>
+	<name>Airavata Credential Store</name>
+	<description>Module to manage credentials</description>
 
-    <dependencies>
-
-        <dependency>
-            <groupId>edu.uiuc.ncsa.myproxy</groupId>
-            <artifactId>oa4mp-client-api</artifactId>
-            <version>${oa4mp.version}</version>
-        </dependency>
-        <dependency>
+	<dependencies>
+		<dependency>
+			<groupId>edu.uiuc.ncsa.myproxy</groupId>
+			<artifactId>oa4mp-client-api</artifactId>
+			<version>${oa4mp.version}</version>
+		</dependency>
+		<dependency>
             <groupId>edu.uiuc.ncsa.myproxy</groupId>
-            <artifactId>oa4mp-client-oauth1</artifactId>
+            <artifactId>oa4mp-client-loader-oauth1</artifactId>
             <version>${oa4mp.version}</version>
             <exclusions>
         	<exclusion>
@@ -51,97 +54,97 @@
 			</exclusion>
             </exclusions>
         </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>4.7</version>
-            <scope>test</scope>
-        </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>org.apache.derby</groupId>
-            <artifactId>derbytools</artifactId>
-            <version>${derby.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>commons-dbcp</groupId>
-            <artifactId>commons-dbcp</artifactId>
-            <version>1.4</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-common-utils</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>log4j</groupId>
+			<artifactId>log4j</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.7</version>
+			<scope>test</scope>
+		</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>org.apache.derby</groupId>
+			<artifactId>derbytools</artifactId>
+			<version>${derby.version}</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>commons-dbcp</groupId>
+			<artifactId>commons-dbcp</artifactId>
+			<version>1.4</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.airavata</groupId>
+			<artifactId>airavata-common-utils</artifactId>
+			<version>${project.version}</version>
+		</dependency> 
+		<dependency>
 			<groupId>com.jcraft</groupId>
 			<artifactId>jsch</artifactId>
 			<version>0.1.50</version>
 		</dependency>
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>servlet-api</artifactId>
-            <version>2.5</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-email</artifactId>
-            <version>1.3.2</version>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <version>${surefire.version}</version>
-                <inherited>true</inherited>
-                <configuration>
-                    <systemPropertyVariables>
-                        <credential.module.directory>${basedir}</credential.module.directory>
-                    </systemPropertyVariables>
-                    <excludes>
-                        <exclude>**/DAOBaseTestCase.java</exclude>
-                        <exclude>**/MappingDAOTest.java</exclude>
-                    </excludes>
-                    <testSourceDirectory>${basedir}\src\test\java\</testSourceDirectory>
-                </configuration>
-            </plugin>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>servlet-api</artifactId>
+			<version>2.5</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.commons</groupId>
+			<artifactId>commons-email</artifactId>
+			<version>1.3.2</version>
+		</dependency>
+	</dependencies>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>${surefire.version}</version>
+				<inherited>true</inherited>
+				<configuration>
+					<systemPropertyVariables>
+						<credential.module.directory>${basedir}</credential.module.directory>
+					</systemPropertyVariables>
+					<excludes>
+						<exclude>**/DAOBaseTestCase.java</exclude>
+						<exclude>**/MappingDAOTest.java</exclude>
+					</excludes>
+					<testSourceDirectory>${basedir}\src\test\java\</testSourceDirectory>
+				</configuration>
+			</plugin>
 
-        </plugins>
-        <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
-        <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
-        <testResources>
-            <testResource>
-                <directory>${project.basedir}/src/test/resources</directory>
-            </testResource>
-        </testResources>
-    </build>
+		</plugins>
+		<testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
+		<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
+		<testResources>
+			<testResource>
+				<directory>${project.basedir}/src/test/resources</directory>
+			</testResource>
+		</testResources>
+	</build>
 </project>

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/servlet/CredentialStoreCallbackServlet.java
----------------------------------------------------------------------
diff --git a/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/servlet/CredentialStoreCallbackServlet.java b/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/servlet/CredentialStoreCallbackServlet.java
index f232a00..cf6eac8 100644
--- a/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/servlet/CredentialStoreCallbackServlet.java
+++ b/modules/credential-store-service/credential-store/src/main/java/org/apache/airavata/credential/store/servlet/CredentialStoreCallbackServlet.java
@@ -147,8 +147,8 @@ public class CredentialStoreCallbackServlet extends ClientServlet {
         info("Token id presented " + portalTokenId);
 
         info("2.a. Getting token and verifier.");
-        String token = request.getParameter(TOKEN_KEY);
-        String verifier = request.getParameter(VERIFIER_KEY);
+        String token = request.getParameter(CONST(ClientEnvironment.TOKEN));
+        String verifier = request.getParameter(CONST(ClientEnvironment.VERIFIER));
         if (token == null || verifier == null) {
             warn("2.a. The token is " + (token == null ? "null" : token) + " and the verifier is "
                     + (verifier == null ? "null" : verifier));

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/distribution/server/pom.xml
----------------------------------------------------------------------
diff --git a/modules/distribution/server/pom.xml b/modules/distribution/server/pom.xml
index 7e41d1c..0cefe36 100644
--- a/modules/distribution/server/pom.xml
+++ b/modules/distribution/server/pom.xml
@@ -397,7 +397,7 @@
         </dependency-->
         <dependency>
             <groupId>org.bouncycastle</groupId>
-            <artifactId>bcprov-jdk16</artifactId>
+            <artifactId>bcprov-jdk15on</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.openjpa</groupId>

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/distribution/server/src/main/assembly/bin-assembly.xml
----------------------------------------------------------------------
diff --git a/modules/distribution/server/src/main/assembly/bin-assembly.xml b/modules/distribution/server/src/main/assembly/bin-assembly.xml
index 33e0270..32cb5e7 100644
--- a/modules/distribution/server/src/main/assembly/bin-assembly.xml
+++ b/modules/distribution/server/src/main/assembly/bin-assembly.xml
@@ -255,8 +255,8 @@
 				<include>net.schmizz:sshj</include>
 				<include>j2ssh:j2ssh-core</include>
 				<include>j2ssh:j2ssh-common</include>
-				<include>org.apache.httpcomponents:httpcore:jar:4.1</include>
-				<include>org.apache.httpcomponents:httpclient:jar:4.1</include>
+				<include>org.apache.httpcomponents:httpcore:jar:4.2.4</include>
+				<include>org.apache.httpcomponents:httpclient:jar:4.2.4</include>
 				<include>de.odysseus.staxon:staxon:jar:1.2</include>
 				<include>de.odysseus.staxon:staxon-jackson:jar:1.2</include>
 				<include>org.ebaysf.web:cors-filter:jar:1.0.0</include>
@@ -274,9 +274,6 @@
 				<!-- UNICORE Dependencies Start -->
 				<include>eu.unicore:unicore-client-wrapper</include>
 				<include>org.apache.xmlbeans:xmlbeans-xpath</include>
-				<include>net.sf.saxon:saxon</include>
-				<include>net.sf.saxon:saxon-dom</include>
-				<include>net.sf.saxon:saxon-xpath</include>
 				<include>log4j:apache-log4j-extras</include>
 				<include>eu.eu-emi.security:canl</include>
 				<include>org.bouncycastle:bcpkix-jdk15on</include>
@@ -301,7 +298,23 @@
 				<include>org.apache.cxf:cxf-rt-ws-policy</include>
 				<include>org.apache.cxf:cxf-rt-transports-http</include>
 				<include>org.apache.cxf:cxf-rt-features-clustering</include>
-				<!-- UNICORE Dependencies End -->
+				<include>org.apache.neethi:neethi</include>
+				<include>org.apache.cxf:cxf-rt-frontend-jaxws</include>
+				<include>xml-resolver:xml-resolver</include>
+				<include>org.eclipse.jetty:jetty-servlet</include>
+				<include>org.eclipse.jetty:jetty-security</include>
+				<include>org.eclipse.jetty:jetty-server</include>
+				<include>org.eclipse.jetty.orbit:javax.servlet</include>
+				<include>org.eclipse.jetty:jetty-servlets</include>
+				<include>org.eclipse.jetty:jetty-continuation</include>
+				<include>org.eclipse.jetty:jetty-client</include>
+				<include>org.eclipse.jetty:jetty-http</include>
+				<include>org.eclipse.jetty:jetty-io</include>
+				<include>org.eclipse.jetty:jetty-util</include>
+				<include>wsdl4j:wsdl4j</include>
+				<include>org.apache.santuario:xmlsec</include>
+				<include>commons-httpclient:commons-httpclient</include>
+				<include>commons-codec:commons-codec</include>
 			</includes>
 		</dependencySet>
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/gfac/gfac-bes/pom.xml
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-bes/pom.xml b/modules/gfac/gfac-bes/pom.xml
index e0c1df8..f14c9f5 100644
--- a/modules/gfac/gfac-bes/pom.xml
+++ b/modules/gfac/gfac-bes/pom.xml
@@ -89,26 +89,6 @@
 
 		<!-- gsi-ssh api dependencies -->
 		<dependency>
-			<groupId>org.apache.airavata</groupId>
-			<artifactId>gsissh</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.airavata</groupId>
-			<artifactId>airavata-data-models</artifactId>
-			<version>${project.version}</version>
-		</dependency>
-		<dependency>
-			<groupId>com.jcraft</groupId>
-			<artifactId>jsch</artifactId>
-			<version>0.1.50</version>
-		</dependency>
-		<dependency>
-			<groupId>org.ogce</groupId>
-			<artifactId>bcgss</artifactId>
-			<version>146</version>
-		</dependency>
-		<dependency>
 			<groupId>org.apache.xmlbeans</groupId>
 			<artifactId>xmlbeans</artifactId>
 			<version>${xmlbeans.version}</version>

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java
index f321c5e..7ed038a 100644
--- a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java
+++ b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/provider/impl/BESProvider.java
@@ -17,7 +17,7 @@
  * specific language governing permissions and limitations
  * under the License.
  *
-*/
+ */
 package org.apache.airavata.gfac.bes.provider.impl;
 
 import java.util.Calendar;
@@ -27,11 +27,15 @@ import org.apache.airavata.common.exception.ApplicationSettingsException;
 import org.apache.airavata.gfac.GFacException;
 import org.apache.airavata.gfac.bes.security.UNICORESecurityContext;
 import org.apache.airavata.gfac.bes.security.X509SecurityContext;
-import org.apache.airavata.gfac.bes.utils.ActivityInfo;
 import org.apache.airavata.gfac.bes.utils.BESConstants;
-import org.apache.airavata.gfac.bes.utils.DataServiceInfo;
+import org.apache.airavata.gfac.bes.utils.DataTransferrer;
 import org.apache.airavata.gfac.bes.utils.JSDLGenerator;
+import org.apache.airavata.gfac.bes.utils.SecurityUtils;
+import org.apache.airavata.gfac.bes.utils.StorageCreator;
 import org.apache.airavata.gfac.core.context.JobExecutionContext;
+import org.apache.airavata.gfac.core.notification.events.StartExecutionEvent;
+import org.apache.airavata.gfac.core.notification.events.StatusChangeEvent;
+import org.apache.airavata.gfac.core.notification.events.UnicoreJobIDEvent;
 import org.apache.airavata.gfac.core.provider.AbstractProvider;
 import org.apache.airavata.gfac.core.provider.GFacProvider;
 import org.apache.airavata.gfac.core.provider.GFacProviderException;
@@ -54,305 +58,412 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3.x2005.x08.addressing.EndpointReferenceType;
 
+import de.fzj.unicore.bes.client.ActivityClient;
 import de.fzj.unicore.bes.client.FactoryClient;
 import de.fzj.unicore.bes.faults.UnknownActivityIdentifierFault;
+import de.fzj.unicore.uas.client.StorageClient;
 import de.fzj.unicore.wsrflite.xmlbeans.WSUtilities;
 import eu.emi.security.authn.x509.impl.X500NameUtils;
 import eu.unicore.util.httpclient.DefaultClientConfiguration;
 
+public class BESProvider extends AbstractProvider implements GFacProvider,
+		BESConstants {
+	protected final Logger log = LoggerFactory.getLogger(this.getClass());
 
+	private DefaultClientConfiguration secProperties;
 
-public class BESProvider extends AbstractProvider implements GFacProvider, BESConstants{
-    protected final Logger log = LoggerFactory.getLogger(this.getClass());
+	private String jobId;
 
-    private DefaultClientConfiguration secProperties;
-
-    private String jobId;
-    
 	public void initialize(JobExecutionContext jobExecutionContext)
 			throws GFacProviderException, GFacException {
 		log.info("Initializing UNICORE Provider..");
 		super.initialize(jobExecutionContext);
-		secProperties = (DefaultClientConfiguration)jobExecutionContext.getProperty(PROP_CLIENT_CONF);
-        if (secProperties != null) {
-        	secProperties = secProperties.clone();
-        	return;
-        }
-            
-        UNICORESecurityContext unicoreContext = (UNICORESecurityContext) jobExecutionContext.getSecurityContext(X509SecurityContext.X509_SECURITY_CONTEXT);
-        if(log.isDebugEnabled()) {
-        	log.debug("Generating default configuration.");
-        }
-        //TODO: check what credential mode should be used
-        try {
+		secProperties = (DefaultClientConfiguration) jobExecutionContext.getProperty(PROP_CLIENT_CONF);
+		if (secProperties != null) {
+			secProperties = secProperties.clone();
+			return;
+		}
+		SecurityUtils.addSecurityContext(jobExecutionContext);
+		UNICORESecurityContext unicoreContext = (UNICORESecurityContext) jobExecutionContext.getSecurityContext(X509SecurityContext.X509_SECURITY_CONTEXT);
+		if (log.isDebugEnabled()) {
+			log.debug("Generating default configuration.");
+		}
+		// TODO: check what credential mode should be used
+		try {
 			secProperties = unicoreContext.getDefaultConfiguration();
 		} catch (ApplicationSettingsException e) {
 			throw new GFacProviderException(e.getMessage(), e);
 		}
-        if(log.isDebugEnabled()) {
-        	log.debug("Security properties initialized.");
-        }
-    }
-
-
-	public void execute(JobExecutionContext jobExecutionContext) throws GFacProviderException, GFacException {
-        UnicoreHostType host = (UnicoreHostType) jobExecutionContext.getApplicationContext().getHostDescription()
-                .getType();
-
-        String factoryUrl = host.getUnicoreBESEndPointArray()[0];
-
-        EndpointReferenceType eprt = EndpointReferenceType.Factory.newInstance();
-        eprt.addNewAddress().setStringValue(factoryUrl);
-        
-//		WSUtilities.addServerIdentity(eprt, serverDN);
-
-
-        String userDN = getUserName(jobExecutionContext);
-        
-        //TODO: to be removed
-        if (userDN == null || userDN.equalsIgnoreCase("admin")) {
-            userDN = "CN=zdv575, O=Ultrascan Gateway, C=DE";
-        }
-        
-        try {
-            
-            DataServiceInfo dsInfo = new DataServiceInfo(jobExecutionContext);
-            
-            CreateActivityDocument cad = CreateActivityDocument.Factory.newInstance();
-            JobDefinitionDocument jobDefDoc = JobDefinitionDocument.Factory.newInstance();
-
-            JobDefinitionType jobDefinition = jobDefDoc.addNewJobDefinition();
-            try {
-                jobDefinition = JSDLGenerator.buildJSDLInstance(jobExecutionContext, dsInfo).getJobDefinition();
-                cad.addNewCreateActivity().addNewActivityDocument().setJobDefinition(jobDefinition);
-                log.info("JSDL" + jobDefDoc.toString());
-            } catch (Exception e1) {
-                throw new GFacProviderException("Cannot generate JSDL instance from the JobExecutionContext.", e1);
-            }
-
-           FactoryClient factory = null;
-           JobDetails jobDetails = new JobDetails();
-           
-           try {
-                factory = new FactoryClient(eprt, secProperties);
-            } catch (Exception e) {
-                throw new GFacProviderException(e.getLocalizedMessage(), e);
-            }
-            CreateActivityResponseDocument response = null;
-            try {
-                log.info(String.format("Activity Submitting to %s ... \n", factoryUrl));
-                response = factory.createActivity(cad);
-                
-                log.info(String.format("Activity Submitted to %s \n", factoryUrl));
-            } catch (Exception e) {
-                throw new GFacProviderException("Cannot create activity.", e);
-            }
-            EndpointReferenceType activityEpr = response.getCreateActivityResponse().getActivityIdentifier();
-           	
-
-            log.info("Activity : " + activityEpr.getAddress().getStringValue() + " Submitted.");
-
-            // factory.waitWhileActivityIsDone(activityEpr, 1000);
-            jobId = WSUtilities.extractResourceID(activityEpr);
-            if (jobId == null) {
-                jobId = new Long(Calendar.getInstance().getTimeInMillis()).toString();
-            }
-            log.info("JobID: " + jobId);
-//            jobExecutionContext.getNotifier().publish(new UnicoreJobIDEvent(jobId));
-            //TODO: not working
-//            saveApplicationJob(jobExecutionContext, jobDefinition, activityEpr.toString());
-            jobDetails.setJobID(activityEpr.toString());
-            jobDetails.setJobDescription(activityEpr.toString());
-            
-            jobExecutionContext.setJobDetails(jobDetails);
-            
-            log.info(formatStatusMessage(activityEpr.getAddress().getStringValue(),
-                    factory.getActivityStatus(activityEpr).toString()));
-
-            // TODO publish the status messages to the message bus
-            ActivityStatusType activityStatus = null;
-            ActivityInfo activityInfo;
-            activityInfo = new ActivityInfo();
-            activityInfo.setActivityEPR(activityEpr);
-            activityInfo.setActivityStatusDoc(activityStatus);
-            jobExecutionContext.setProperty(PROP_ACTIVITY_INFO, activityInfo);
-        } catch (UnknownActivityIdentifierFault e1) {
-            throw new GFacProviderException(e1.getLocalizedMessage(), e1);
-        }
-    }
-	
-	
-	private JobState getApplicationJobStatus(ActivityStatusType activityStatus){
-        if (activityStatus == null) {
-            return JobState.UNKNOWN;
-        }
-        Enum state = activityStatus.getState();
-        String status = null;
-        XmlCursor acursor = activityStatus.newCursor();
-        try {
-            if (acursor.toFirstChild()) {
-                if (acursor.getName().getNamespaceURI().equals("http://schemas.ogf.org/hpcp/2007/01/fs")) {
-                    status = acursor.getName().getLocalPart();
-                }
-            }
-            if (status != null) {
-                if (status.equalsIgnoreCase("Queued") || status.equalsIgnoreCase("Starting")
-                        || status.equalsIgnoreCase("Ready")) {
-                    return JobState.QUEUED;
-                } else if (status.equalsIgnoreCase("Staging-In")) {
-                    return JobState.SUBMITTED;
-                } else if (status.equalsIgnoreCase("Staging-Out") || status.equalsIgnoreCase("FINISHED")) {
-                    return JobState.COMPLETE;
-                } else if (status.equalsIgnoreCase("Executing")) {
-                    return JobState.ACTIVE;
-                } else if (status.equalsIgnoreCase("FAILED")) {
-                    return JobState.FAILED;
-                } else if (status.equalsIgnoreCase("CANCELLED")) {
-                    return JobState.CANCELED;
-                }
-            } else {
-                if (ActivityStateEnumeration.CANCELLED.equals(state)) {
-                    return JobState.CANCELED;
-                } else if (ActivityStateEnumeration.FAILED.equals(state)) {
-                    return JobState.FAILED;
-                } else if (ActivityStateEnumeration.FINISHED.equals(state)) {
-                    return JobState.COMPLETE;
-                } else if (ActivityStateEnumeration.RUNNING.equals(state)) {
-                    return JobState.ACTIVE;
-                }
-            }
-        } finally {
-            if (acursor != null)
-                acursor.dispose();
-        }
-        return JobState.UNKNOWN;
-    }
-
-    private void saveApplicationJob(JobExecutionContext jobExecutionContext, JobDefinitionType jobDefinition,
-                                    String metadata) throws GFacException {
-
-    	
-//    	ApplicationJob appJob = GFacUtils.createApplicationJob(jobExecutionContext);
-//        appJob.setJobId(jobId);
-//        appJob.setJobData(jobDefinition.toString());
-//        appJob.setSubmittedTime(Calendar.getInstance().getTime());
-//        appJob.setStatus(ApplicationJobStatus.SUBMITTED);
-//        appJob.setStatusUpdateTime(appJob.getSubmittedTime());
-//        appJob.setMetadata(metadata);
-//        GFacUtils.recordApplicationJob(jobExecutionContext, appJob);
-        
-        details.setJobID(jobId);
-        GFacUtils.saveJobStatus(jobExecutionContext, details, JobState.SUBMITTED);
-        
-    }
-
-    /**
-     * EndpointReference need to be saved to make cancel work.
-     *
-     * @param activityEpr
-     * @param jobExecutionContext
-     * @throws GFacProviderException
-     */
-    public void cancelJob(String activityEpr, JobExecutionContext jobExecutionContext) throws GFacProviderException {
-        try {
-//            initSecurityProperties(jobExecutionContext);
-            EndpointReferenceType eprt = EndpointReferenceType.Factory.parse(activityEpr);
-            UnicoreHostType host = (UnicoreHostType) jobExecutionContext.getApplicationContext().getHostDescription()
-                    .getType();
-
-            String factoryUrl = host.getUnicoreBESEndPointArray()[0];
-            EndpointReferenceType epr = EndpointReferenceType.Factory.newInstance();
-            epr.addNewAddress().setStringValue(factoryUrl);
-
-            FactoryClient factory = new FactoryClient(epr, secProperties);
-            factory.terminateActivity(eprt);
-        } catch (Exception e) {
-            throw new GFacProviderException(e.getLocalizedMessage(),e);
-        }
-
-    }
-
-
-    //FIXME: Get user details
-    private String getUserName(JobExecutionContext context) {
-//        if (context.getConfigurationData()!= null) {
-//            return context.getConfigurationData().getBasicMetadata().getUserName();
-//        } else {
-           return "";
-//        }
-    }
-
-    protected ActivityStatusType getStatus(FactoryClient fc, EndpointReferenceType activityEpr)
-            throws UnknownActivityIdentifierFault {
-
-        GetActivityStatusesDocument stats = GetActivityStatusesDocument.Factory.newInstance();
-
-        stats.addNewGetActivityStatuses().setActivityIdentifierArray(new EndpointReferenceType[] { activityEpr });
-
-        GetActivityStatusesResponseDocument resDoc = fc.getActivityStatuses(stats);
-
-        ActivityStatusType activityStatus = resDoc.getGetActivityStatusesResponse().getResponseArray()[0]
-                .getActivityStatus();
-        return activityStatus;
-    }
-
-    protected String formatStatusMessage(String activityUrl, String status) {
-        return String.format("Activity %s is %s.\n", activityUrl, status);
-    }
-
-    protected String subStatusAsString(ActivityStatusType statusType) {
-
-        StringBuffer sb = new StringBuffer();
-
-        sb.append(statusType.getState().toString());
-
-        XmlCursor acursor = statusType.newCursor();
-        if (acursor.toFirstChild()) {
-            do {
-                if (acursor.getName().getNamespaceURI().equals("http://schemas.ogf.org/hpcp/2007/01/fs")) {
-                    sb.append(":");
-                    sb.append(acursor.getName().getLocalPart());
-                }
-            } while (acursor.toNextSibling());
-            acursor.dispose();
-            return sb.toString();
-        } else {
-            acursor.dispose();
-            return sb.toString();
-        }
-
-    }
-
-
-    private String getCNFromUserDN(String userDN) {
-        return X500NameUtils.getAttributeValues(userDN, BCStyle.CN)[0];
-
-    }
+		if (log.isDebugEnabled()) {
+			log.debug("Security properties initialized.");
+		}
+	}
+
+	public void execute(JobExecutionContext jobExecutionContext)
+			throws GFacProviderException, GFacException {
+		UnicoreHostType host = (UnicoreHostType) jobExecutionContext
+				.getApplicationContext().getHostDescription().getType();
+
+		String factoryUrl = host.getUnicoreBESEndPointArray()[0];
+
+		EndpointReferenceType eprt = EndpointReferenceType.Factory
+				.newInstance();
+		eprt.addNewAddress().setStringValue(factoryUrl);
+
+		// WSUtilities.addServerIdentity(eprt, serverDN);
+
+		String userDN = getUserName(jobExecutionContext);
+
+		// TODO: to be removed
+		if (userDN == null || userDN.equalsIgnoreCase("admin")) {
+			userDN = "CN=zdv575, O=Ultrascan Gateway, C=DE";
+		}
+
+		StorageClient sc = null;
+
+		try {
+
+			CreateActivityDocument cad = CreateActivityDocument.Factory
+					.newInstance();
+			JobDefinitionDocument jobDefDoc = JobDefinitionDocument.Factory
+					.newInstance();
+
+//			String xlogin = getCNFromUserDN(userDN);
+
+			// create storage
+			StorageCreator storageCreator = new StorageCreator(secProperties,
+					factoryUrl, 5, null);
+
+			try {
+				sc = storageCreator.createStorage();
+			} catch (Exception e2) {
+				log.error("Cannot create storage..");
+				throw new GFacProviderException("Cannot create storage..", e2);
+			}
+
+			JobDefinitionType jobDefinition = jobDefDoc.addNewJobDefinition();
+			try {
+				jobDefinition = JSDLGenerator.buildJSDLInstance(
+						jobExecutionContext, sc.getUrl()).getJobDefinition();
+				cad.addNewCreateActivity().addNewActivityDocument()
+						.setJobDefinition(jobDefinition);
+				log.info("JSDL" + jobDefDoc.toString());
+			} catch (Exception e1) {
+				throw new GFacProviderException(
+						"Cannot generate JSDL instance from the JobExecutionContext.",
+						e1);
+			}
+
+			// upload files if any
+			DataTransferrer dt = new DataTransferrer(jobExecutionContext, sc);
+			dt.uploadLocalFiles();
+
+			FactoryClient factory = null;
+			JobDetails jobDetails = new JobDetails();
+
+			try {
+				factory = new FactoryClient(eprt, secProperties);
+			} catch (Exception e) {
+				throw new GFacProviderException(e.getLocalizedMessage(), e);
+			}
+			CreateActivityResponseDocument response = null;
+			try {
+				log.info(String.format("Activity Submitting to %s ... \n",
+						factoryUrl));
+				jobExecutionContext.getNotifier().publish(new StartExecutionEvent());
+				response = factory.createActivity(cad);
+				log.info(String.format("Activity Submitted to %s \n", factoryUrl));
+			} catch (Exception e) {
+				throw new GFacProviderException("Cannot create activity.", e);
+			}
+			EndpointReferenceType activityEpr = response.getCreateActivityResponse().getActivityIdentifier();
+
+			log.info("Activity : " + activityEpr.getAddress().getStringValue()	+ " Submitted.");
+
+			// factory.waitWhileActivityIsDone(activityEpr, 1000);
+			jobId = WSUtilities.extractResourceID(activityEpr);
+			if (jobId == null) {
+				jobId = new Long(Calendar.getInstance().getTimeInMillis())
+						.toString();
+			}
+			log.info("JobID: " + jobId);
+			jobDetails.setJobID(activityEpr.toString());
+			jobDetails.setJobDescription(activityEpr.toString());
+
+			jobExecutionContext.setJobDetails(jobDetails);
+			try {
+			log.info(formatStatusMessage(activityEpr.getAddress()
+					.getStringValue(), factory.getActivityStatus(activityEpr)
+					.toString()));
+
+			jobExecutionContext.getNotifier().publish(new UnicoreJobIDEvent(jobId));
+			GFacUtils.saveJobStatus(jobExecutionContext, details,JobState.SUBMITTED);
+
+			factory.getActivityStatus(activityEpr);
+			log.info(formatStatusMessage(activityEpr.getAddress()
+					.getStringValue(), factory.getActivityStatus(activityEpr)
+					.toString()));
+
+			// TODO publish the status messages to the message bus
+			while ((factory.getActivityStatus(activityEpr) != ActivityStateEnumeration.FINISHED)
+					&& (factory.getActivityStatus(activityEpr) != ActivityStateEnumeration.FAILED)
+					&& (factory.getActivityStatus(activityEpr) != ActivityStateEnumeration.CANCELLED)) {
+
+				ActivityStatusType activityStatus = null;
+				try {
+					activityStatus = getStatus(factory, activityEpr);
+					JobState applicationJobStatus = getApplicationJobStatus(activityStatus);
+					String jobStatusMessage = "Status of job " + jobId + "is "
+							+ applicationJobStatus;
+					GFacUtils.updateJobStatus(jobExecutionContext, jobDetails,
+							applicationJobStatus);
+
+					jobExecutionContext.getNotifier().publish(
+							new StatusChangeEvent(jobStatusMessage));
+
+					// GFacUtils.updateApplicationJobStatus(jobExecutionContext,jobId,
+					// applicationJobStatus);
+				} catch (UnknownActivityIdentifierFault e) {
+					throw new GFacProviderException(e.getMessage(),
+							e.getCause());
+				}
+
+				try {
+					Thread.sleep(5000);
+				} catch (InterruptedException e) {
+				}
+				continue;
+			}
+			}catch(Exception e) {
+				throw new GFacProviderException(e.getMessage(),
+						e.getCause());
+				
+			}
+			
+			ActivityStatusType activityStatus = null;
+			try {
+				activityStatus = getStatus(factory, activityEpr);
+				log.info(formatStatusMessage(activityEpr.getAddress().getStringValue(), activityStatus.getState().toString()));
+				ActivityClient activityClient;
+				activityClient = new ActivityClient(activityEpr,secProperties);
+				dt.setStorageClient(activityClient.getUspaceClient());
+			} catch (Exception e1) {
+				throw new GFacProviderException(e1.getMessage(),
+						e1.getCause());
+			}
+
+			
+
+			if ((activityStatus.getState() == ActivityStateEnumeration.FAILED)) {
+				String error = activityStatus.getFault().getFaultcode()
+						.getLocalPart()
+						+ "\n"
+						+ activityStatus.getFault().getFaultstring()
+						+ "\n EXITCODE: " + activityStatus.getExitCode();
+				log.info(error);
+				try {
+					Thread.sleep(5000);
+				} catch (InterruptedException e) {
+				}
+				dt.downloadStdOuts();
+			} else if (activityStatus.getState() == ActivityStateEnumeration.CANCELLED) {
+				JobState applicationJobStatus = JobState.CANCELED;
+				String jobStatusMessage = "Status of job " + jobId + "is "
+						+ applicationJobStatus;
+				jobExecutionContext.getNotifier().publish(
+						new StatusChangeEvent(jobStatusMessage));
+				GFacUtils.updateJobStatus(jobExecutionContext, jobDetails,
+						applicationJobStatus);
+				throw new GFacProviderException(
+						jobExecutionContext.getExperimentID() + "Job Canceled");
+			}
+
+			else if (activityStatus.getState() == ActivityStateEnumeration.FINISHED) {
+				try {
+					Thread.sleep(5000);
+				} catch (InterruptedException e) {
+				}
+				if (activityStatus.getExitCode() == 0) {
+					dt.downloadRemoteFiles();
+				} else {
+					dt.downloadStdOuts();
+				}
+			}
+
+		} finally {
+			// destroy sms instance
+			try {
+				if (sc != null) {
+					sc.destroy();
+				}
+			} catch (Exception e) {
+				log.warn(
+						"Cannot destroy temporary SMS instance:" + sc.getUrl(),
+						e);
+			}
+		}
+
+	}
+
+	private JobState getApplicationJobStatus(ActivityStatusType activityStatus) {
+		if (activityStatus == null) {
+			return JobState.UNKNOWN;
+		}
+		Enum state = activityStatus.getState();
+		String status = null;
+		XmlCursor acursor = activityStatus.newCursor();
+		try {
+			if (acursor.toFirstChild()) {
+				if (acursor.getName().getNamespaceURI()
+						.equals("http://schemas.ogf.org/hpcp/2007/01/fs")) {
+					status = acursor.getName().getLocalPart();
+				}
+			}
+			if (status != null) {
+				if (status.equalsIgnoreCase("Queued")
+						|| status.equalsIgnoreCase("Starting")
+						|| status.equalsIgnoreCase("Ready")) {
+					return JobState.QUEUED;
+				} else if (status.equalsIgnoreCase("Staging-In")) {
+					return JobState.SUBMITTED;
+				} else if (status.equalsIgnoreCase("Staging-Out")
+						|| status.equalsIgnoreCase("FINISHED")) {
+					return JobState.COMPLETE;
+				} else if (status.equalsIgnoreCase("Executing")) {
+					return JobState.ACTIVE;
+				} else if (status.equalsIgnoreCase("FAILED")) {
+					return JobState.FAILED;
+				} else if (status.equalsIgnoreCase("CANCELLED")) {
+					return JobState.CANCELED;
+				}
+			} else {
+				if (ActivityStateEnumeration.CANCELLED.equals(state)) {
+					return JobState.CANCELED;
+				} else if (ActivityStateEnumeration.FAILED.equals(state)) {
+					return JobState.FAILED;
+				} else if (ActivityStateEnumeration.FINISHED.equals(state)) {
+					return JobState.COMPLETE;
+				} else if (ActivityStateEnumeration.RUNNING.equals(state)) {
+					return JobState.ACTIVE;
+				}
+			}
+		} finally {
+			if (acursor != null)
+				acursor.dispose();
+		}
+		return JobState.UNKNOWN;
+	}
+
+	/**
+	 * EndpointReference need to be saved to make cancel work.
+	 * 
+	 * @param activityEpr
+	 * @param jobExecutionContext
+	 * @throws GFacProviderException
+	 */
+	public void cancelJob(String activityEpr,
+			JobExecutionContext jobExecutionContext)
+			throws GFacProviderException {
+		try {
+			// initSecurityProperties(jobExecutionContext);
+			EndpointReferenceType eprt = EndpointReferenceType.Factory
+					.parse(activityEpr);
+			UnicoreHostType host = (UnicoreHostType) jobExecutionContext
+					.getApplicationContext().getHostDescription().getType();
+
+			String factoryUrl = host.getUnicoreBESEndPointArray()[0];
+			EndpointReferenceType epr = EndpointReferenceType.Factory
+					.newInstance();
+			epr.addNewAddress().setStringValue(factoryUrl);
+
+			FactoryClient factory = new FactoryClient(epr, secProperties);
+			factory.terminateActivity(eprt);
+		} catch (Exception e) {
+			throw new GFacProviderException(e.getLocalizedMessage(), e);
+		}
+
+	}
+
+	// FIXME: Get user details
+	private String getUserName(JobExecutionContext context) {
+		// if (context.getConfigurationData()!= null) {
+		// return
+		// context.getConfigurationData().getBasicMetadata().getUserName();
+		// } else {
+		return "";
+		// }
+	}
+
+	protected ActivityStatusType getStatus(FactoryClient fc,
+			EndpointReferenceType activityEpr)
+			throws UnknownActivityIdentifierFault {
+
+		GetActivityStatusesDocument stats = GetActivityStatusesDocument.Factory
+				.newInstance();
+
+		stats.addNewGetActivityStatuses().setActivityIdentifierArray(
+				new EndpointReferenceType[] { activityEpr });
+
+		GetActivityStatusesResponseDocument resDoc = fc
+				.getActivityStatuses(stats);
+
+		ActivityStatusType activityStatus = resDoc
+				.getGetActivityStatusesResponse().getResponseArray()[0]
+				.getActivityStatus();
+		return activityStatus;
+	}
+
+	protected String formatStatusMessage(String activityUrl, String status) {
+		return String.format("Activity %s is %s.\n", activityUrl, status);
+	}
+
+	protected String subStatusAsString(ActivityStatusType statusType) {
+
+		StringBuffer sb = new StringBuffer();
+
+		sb.append(statusType.getState().toString());
+
+		XmlCursor acursor = statusType.newCursor();
+		if (acursor.toFirstChild()) {
+			do {
+				if (acursor.getName().getNamespaceURI()
+						.equals("http://schemas.ogf.org/hpcp/2007/01/fs")) {
+					sb.append(":");
+					sb.append(acursor.getName().getLocalPart());
+				}
+			} while (acursor.toNextSibling());
+			acursor.dispose();
+			return sb.toString();
+		} else {
+			acursor.dispose();
+			return sb.toString();
+		}
+
+	}
 
+	private String getCNFromUserDN(String userDN) {
+		return X500NameUtils.getAttributeValues(userDN, BCStyle.CN)[0];
+
+	}
 
 	@Override
 	public void initProperties(Map<String, String> properties)
 			throws GFacProviderException, GFacException {
 		// TODO Auto-generated method stub
-		
-	}
-
-
-	
 
+	}
 
 	@Override
 	public void dispose(JobExecutionContext jobExecutionContext)
 			throws GFacProviderException, GFacException {
 		secProperties = null;
-		
-	}
 
+	}
 
 	@Override
 	public void cancelJob(JobExecutionContext jobExecutionContext)
 			throws GFacProviderException, GFacException {
 		// TODO Auto-generated method stub
-		
+
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/DataTransferrer.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/DataTransferrer.java b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/DataTransferrer.java
index ae8cb8d..f811f97 100644
--- a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/DataTransferrer.java
+++ b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/DataTransferrer.java
@@ -71,9 +71,8 @@ public class DataTransferrer {
 				String fileName = new File(uri).getName();
 				if (uri.startsWith("file")) {
 					try {
-						String uriWithoutProtocol = uri.substring(
-								uri.lastIndexOf("://") + 1, uri.length());
-						FileUploader fileUploader = new FileUploader(uriWithoutProtocol, "input/" + fileName, Mode.overwrite);
+						String uriWithoutProtocol = uri.substring(uri.lastIndexOf("://") + 1, uri.length());
+						FileUploader fileUploader = new FileUploader(uriWithoutProtocol,"input/" + fileName,Mode.overwrite);
 						fileUploader.perform(storageClient);
 					} catch (FileNotFoundException e3) {
 						throw new GFacProviderException(
@@ -90,7 +89,7 @@ public class DataTransferrer {
 	}
 	
 	/**
-	 * This method will download all the remote files specified according to the output 
+	 * This method will download all the remote files specified in the output 
 	 * context of a job.  
 	 * */
 	public void downloadRemoteFiles() throws GFacProviderException {
@@ -112,24 +111,20 @@ public class DataTransferrer {
 			ActualParameter outParam = (ActualParameter) outputParams
 					.get(paramKey);
 
-			// if single urls then convert each url into jsdl source
-			// elements,
-			// that are formed by concat of gridftpurl+inputdir+filename
-
 			String paramDataType = outParam.getType().getType().toString();
 
 			if ("String".equals(paramDataType)) {
 				String stringPrm = ((StringParameterType) outParam
 						.getType()).getValue();
 				String localFileName = null;
-				//TODO: why analysis.tar? it wont scale to gateways..
+				//TODO: why analysis.tar? it wont scale to other gateways..
 				if(stringPrm == null || stringPrm.isEmpty()){
 					localFileName = "analysis-results.tar";
 				}else{
 					localFileName = stringPrm.substring(stringPrm.lastIndexOf("/")+1);
 				}
 				String outputLocation = downloadLocation+File.separator+localFileName;
-				FileDownloader fileDownloader = new FileDownloader("output/"+stringPrm,outputLocation, Mode.overwrite);
+				FileDownloader fileDownloader = new FileDownloader(stringPrm,outputLocation, Mode.overwrite);
 				try {
 					fileDownloader.perform(storageClient);
 					 ((StringParameterType) outParam.getType()).setValue(outputLocation);
@@ -145,7 +140,7 @@ public class DataTransferrer {
 				for (String v : valueArray) {
 					String localFileName = v.substring(v.lastIndexOf("/")+1);;
 					String outputLocation = downloadLocation+File.separator+localFileName;
-					FileDownloader fileDownloader = new FileDownloader("output/"+v,outputLocation, Mode.overwrite);
+					FileDownloader fileDownloader = new FileDownloader(v,outputLocation, Mode.overwrite);
 					try {
 						fileDownloader.perform(storageClient);
 						 ((StringParameterType) outParam.getType()).setValue(outputLocation);
@@ -195,7 +190,7 @@ public class DataTransferrer {
 		ApplicationDeploymentDescriptionType appDesc = application.getType();
 	
 		String stdoutLocation = downloadLocation+File.separator+stdoutFileName;
-		FileDownloader f1 = new FileDownloader("output/"+stdoutFileName,stdoutLocation, Mode.overwrite);
+		FileDownloader f1 = new FileDownloader(stdoutFileName,stdoutLocation, Mode.overwrite);
 		try {
 			f1.perform(storageClient);
 			String stdoutput = readFile(stdoutLocation);
@@ -204,7 +199,7 @@ public class DataTransferrer {
 			throw new GFacProviderException(e.getLocalizedMessage(),e);
 		}
 		String stderrLocation = downloadLocation+File.separator+stderrFileName;
-		FileDownloader f2 = new FileDownloader("output/"+stderrFileName,stderrLocation, Mode.overwrite);
+		FileDownloader f2 = new FileDownloader(stderrFileName,stderrLocation, Mode.overwrite);
 		try {
 			f2.perform(storageClient);
 			String stderror = readFile(stderrLocation);
@@ -228,6 +223,10 @@ public class DataTransferrer {
 		return buff.toString();
 	}
 	
+	public void setStorageClient(StorageClient sc){
+		storageClient = sc;
+	}
+	
 	private String getDownloadLocation() {
 		TaskDetails taskData = jobContext.getTaskData();
 		if (taskData != null && taskData.getAdvancedOutputDataHandling() != null) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/JSDLGenerator.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/JSDLGenerator.java b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/JSDLGenerator.java
index d46aef9..c29e12d 100644
--- a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/JSDLGenerator.java
+++ b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/JSDLGenerator.java
@@ -64,8 +64,7 @@ public class JSDLGenerator implements BESConstants {
 		return jobDefDoc;
 	}
 
-	public synchronized static JobDefinitionDocument buildJSDLInstance(
-			JobExecutionContext context, String smsUrl) throws Exception {
+	public synchronized static JobDefinitionDocument buildJSDLInstance(JobExecutionContext context, String smsUrl) throws Exception {
 
 		JobDefinitionDocument jobDefDoc = JobDefinitionDocument.Factory
 				.newInstance();
@@ -82,8 +81,7 @@ public class JSDLGenerator implements BESConstants {
 
 		ApplicationProcessor.generateJobSpecificAppElements(value, context);
 
-		UASDataStagingProcessor.generateDataStagingElements(value, context,
-				smsUrl);
+		UASDataStagingProcessor.generateDataStagingElements(value, context, smsUrl);
 
 		return jobDefDoc;
 	}

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/SecurityUtils.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/SecurityUtils.java b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/SecurityUtils.java
index 3a44f45..ac79f33 100644
--- a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/SecurityUtils.java
+++ b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/SecurityUtils.java
@@ -24,8 +24,6 @@ import org.apache.airavata.gfac.bes.security.UNICORESecurityContext;
 import org.apache.airavata.gfac.bes.security.X509SecurityContext;
 import org.apache.airavata.gfac.core.context.JobExecutionContext;
 import org.apache.airavata.gfac.core.utils.GFacUtils;
-import org.apache.airavata.gsi.ssh.api.ServerInfo;
-import org.apache.airavata.schemas.gfac.GlobusHostType;
 import org.apache.airavata.schemas.gfac.UnicoreHostType;
 import org.bouncycastle.asn1.ASN1InputStream;
 import org.bouncycastle.asn1.x500.X500Name;
@@ -45,7 +43,7 @@ public class SecurityUtils {
 	private final static Logger logger = LoggerFactory.getLogger(SecurityUtils.class);
 	
 	
-	public static void addSecurityContext(JobExecutionContext jobExecutionContext) throws GFacException, ApplicationSettingsException {
+	public static void addSecurityContext(JobExecutionContext jobExecutionContext) throws GFacException {
 		
 		 HostDescription registeredHost = jobExecutionContext.getApplicationContext().getHostDescription();
 	        if (! (registeredHost.getType() instanceof UnicoreHostType)) {
@@ -54,7 +52,12 @@ public class SecurityUtils {
 	        else
 	        {	
 	        	String credentialStoreToken = jobExecutionContext.getCredentialStoreToken(); // set by the framework
-	            RequestData requestData = new RequestData(ServerSettings.getDefaultUserGateway()); // coming from top tier
+	            RequestData requestData;
+				try {
+					requestData = new RequestData(ServerSettings.getDefaultUserGateway());
+				} catch (ApplicationSettingsException e1) {
+					throw new GFacException(e1);
+				} // coming from top tier
 	            requestData.setTokenId(credentialStoreToken);
 	            
 	            CredentialReader credentialReader = null;

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/UASDataStagingProcessor.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/UASDataStagingProcessor.java b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/UASDataStagingProcessor.java
index ab6dc23..6ab7ed0 100644
--- a/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/UASDataStagingProcessor.java
+++ b/modules/gfac/gfac-bes/src/main/java/org/apache/airavata/gfac/bes/utils/UASDataStagingProcessor.java
@@ -51,7 +51,7 @@ public class UASDataStagingProcessor {
 		MessageContext outMessage = new MessageContext();
 		ActualParameter a1 = new ActualParameter();
 		a1.getType().changeType(StringParameterType.type);
-		((StringParameterType)a1.getType()).setValue("output/analysis-results.tar");
+		((StringParameterType)a1.getType()).setValue("analysis-results.tar");
 		outMessage.addParameter("o1", a1);
 		context.setOutMessageContext(outMessage);
 		
@@ -142,10 +142,6 @@ public class UASDataStagingProcessor {
 			ActualParameter outParam = (ActualParameter) outputParams
 					.get(paramKey);
 
-			// if single urls then convert each url into jsdl source
-			// elements,
-			// that are formed by concat of gridftpurl+inputdir+filename
-
 			String paramDataType = outParam.getType().getType().toString();
 
 			if ("URI".equals(paramDataType)) {
@@ -154,8 +150,6 @@ public class UASDataStagingProcessor {
 				createOutURIElement(value, uriPrm);
 			}
 
-			// string params are converted into the job arguments
-
 			else if (("URIArray").equals(paramDataType)) {
 				String[] uriArray = ((URIArrayType) outParam.getType())
 						.getValueArray();
@@ -165,6 +159,9 @@ public class UASDataStagingProcessor {
 				}
 
 			}
+			else if ("String".equals(paramDataType) || "StringArray".equals(paramDataType)) {
+				return value;
+			}
 			else if ("String".equals(paramDataType)) {
 				String stringPrm = ((StringParameterType) outParam
 						.getType()).getValue();

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/gfac/gfac-ec2/pom.xml
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ec2/pom.xml b/modules/gfac/gfac-ec2/pom.xml
index f083e0a..d51fddb 100644
--- a/modules/gfac/gfac-ec2/pom.xml
+++ b/modules/gfac/gfac-ec2/pom.xml
@@ -1,128 +1,136 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<!--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. -->
+<!--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. -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <groupId>org.apache.airavata</groupId>
-        <artifactId>gfac</artifactId>
-        <version>0.14-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<parent>
+		<groupId>org.apache.airavata</groupId>
+		<artifactId>gfac</artifactId>
+		<version>0.14-SNAPSHOT</version>
+		<relativePath>../pom.xml</relativePath>
+	</parent>
 
-    <modelVersion>4.0.0</modelVersion>
-    <artifactId>airavata-gfac-ec2</artifactId>
-    <name>Airavata GFac EC2 Implementation</name>
-    <description>The core GFAC EC2 implementation using the framework features</description>
-    <url>http://airavata.apache.org/</url>
+	<modelVersion>4.0.0</modelVersion>
+	<artifactId>airavata-gfac-ec2</artifactId>
+	<name>Airavata GFac EC2 Implementation</name>
+	<description>The core GFAC EC2 implementation using the framework features</description>
+	<url>http://airavata.apache.org/</url>
 
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-gfac-core</artifactId>
-            <version>${project.version}</version>
-        </dependency>
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.airavata</groupId>
+			<artifactId>airavata-gfac-core</artifactId>
+			<version>${project.version}</version>
+		</dependency>
 
-        <dependency>
-            <groupId>commons-configuration</groupId>
-            <artifactId>commons-configuration</artifactId>
-            <version>1.6</version>
-        </dependency>
+		<dependency>
+			<groupId>commons-configuration</groupId>
+			<artifactId>commons-configuration</artifactId>
+			<version>1.6</version>
+		</dependency>
 
-        <!-- Logging -->
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-        </dependency>
+		<!-- Logging -->
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+		</dependency>
 
-        <!-- GFAC schemas -->
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-workflow-execution-context</artifactId>
-            <version>${project.version}</version>
-        </dependency>
-        <!-- Workflow Tracking -->
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-workflow-tracking</artifactId>
-            <version>${project.version}</version>
-        </dependency>
+		<!-- GFAC schemas -->
+		<dependency>
+			<groupId>org.apache.airavata</groupId>
+			<artifactId>airavata-workflow-execution-context</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<!-- Workflow Tracking -->
+		<dependency>
+			<groupId>org.apache.airavata</groupId>
+			<artifactId>airavata-workflow-tracking</artifactId>
+			<version>${project.version}</version>
+		</dependency>
 
-        <!-- SSH -->
-        <dependency>
-            <groupId>net.schmizz</groupId>
-            <artifactId>sshj</artifactId>
-            <version>0.8.0</version>
-        </dependency>
+		<!-- SSH -->
+		<dependency>
+			<groupId>net.schmizz</groupId>
+			<artifactId>sshj</artifactId>
+			<version>0.8.0</version>
+		</dependency>
 
-        <!-- Credential Store -->
-        <dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-credential-store</artifactId>
-            <version>${project.version}</version>
-        </dependency>
+		<!-- Credential Store -->
+		<dependency>
+			<groupId>org.apache.airavata</groupId>
+			<artifactId>airavata-credential-store</artifactId>
+			<version>${project.version}</version>
+		</dependency>
 
-        <!-- Amazon EC2 Provider -->
-        <dependency>
-            <groupId>com.amazonaws</groupId>
-            <artifactId>aws-java-sdk</artifactId>
-            <version>1.3.20</version>
-        </dependency>
-        <dependency>
-            <groupId>sshtools</groupId>
-            <artifactId>j2ssh-core</artifactId>
-            <version>0.2.9</version>
-        </dependency>
-        <dependency>
-            <groupId>sshtools</groupId>
-            <artifactId>j2ssh-common</artifactId>
-            <version>0.2.9</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpclient</artifactId>
-            <version>4.3</version>
-            <type>jar</type>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.httpcomponents</groupId>
-            <artifactId>httpcore</artifactId>
-            <version>4.3</version>
-            <type>jar</type>
-        </dependency>
+		<!-- Amazon EC2 Provider -->
+		<dependency>
+			<groupId>com.amazonaws</groupId>
+			<artifactId>aws-java-sdk</artifactId>
+			<version>1.3.20</version>
+		</dependency>
+		<dependency>
+			<groupId>sshtools</groupId>
+			<artifactId>j2ssh-core</artifactId>
+			<version>0.2.9</version>
+		</dependency>
+		<dependency>
+			<groupId>sshtools</groupId>
+			<artifactId>j2ssh-common</artifactId>
+			<version>0.2.9</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.httpcomponents</groupId>
+			<artifactId>httpclient</artifactId>
+			<version>4.3</version>
+			<type>jar</type>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.httpcomponents</groupId>
+			<artifactId>httpcore</artifactId>
+			<version>4.3</version>
+			<type>jar</type>
+		</dependency>
 
-        <!-- Test -->
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <version>6.1.1</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>jcl-over-slf4j</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <scope>test</scope>
-        </dependency>
-	<dependency>
-            <groupId>org.apache.airavata</groupId>
-            <artifactId>airavata-client-configuration</artifactId>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
+		<!-- Test -->
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.testng</groupId>
+			<artifactId>testng</artifactId>
+			<version>6.1.1</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>jcl-over-slf4j</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-log4j12</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.airavata</groupId>
+			<artifactId>airavata-client-configuration</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.bouncycastle</groupId>
+			<artifactId>bcpkix-jdk15on</artifactId>
+		</dependency>
+	</dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/util/EC2ProviderUtil.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/util/EC2ProviderUtil.java b/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/util/EC2ProviderUtil.java
index e9774ca..4d7fab7 100644
--- a/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/util/EC2ProviderUtil.java
+++ b/modules/gfac/gfac-ec2/src/main/java/org/apache/airavata/gfac/ec2/util/EC2ProviderUtil.java
@@ -28,7 +28,6 @@ import com.amazonaws.services.ec2.model.DeleteKeyPairRequest;
 import com.amazonaws.services.ec2.model.DescribeKeyPairsRequest;
 import com.amazonaws.services.ec2.model.ImportKeyPairRequest;
 import com.sshtools.j2ssh.util.Base64;
-import org.bouncycastle.openssl.PEMWriter;
 
 import java.io.*;
 import java.security.KeyPair;
@@ -36,6 +35,8 @@ import java.security.KeyPairGenerator;
 import java.security.NoSuchAlgorithmException;
 import java.security.spec.InvalidKeySpecException;
 
+import org.bouncycastle.openssl.PEMWriter;
+
 /*This class holds the utility methods used for the EC2Provider*/
 public class EC2ProviderUtil {
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/gfac/gfac-gram/pom.xml
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-gram/pom.xml b/modules/gfac/gfac-gram/pom.xml
index 841e792..ac58e15 100644
--- a/modules/gfac/gfac-gram/pom.xml
+++ b/modules/gfac/gfac-gram/pom.xml
@@ -32,16 +32,6 @@
             <groupId>org.jglobus</groupId>
             <artifactId>gram</artifactId>
             <version>${jglobus.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.bouncycastle</groupId>
-                    <artifactId>bcprov-jdk16</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.bouncycastle</groupId>
-            <artifactId>bcprov-jdk16</artifactId>
         </dependency>
         <dependency>
             <groupId>org.jglobus</groupId>

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/test-suite/pom.xml
----------------------------------------------------------------------
diff --git a/modules/test-suite/pom.xml b/modules/test-suite/pom.xml
index cb4b3fc..260051c 100644
--- a/modules/test-suite/pom.xml
+++ b/modules/test-suite/pom.xml
@@ -33,7 +33,7 @@
 
         <dependency>
             <groupId>org.bouncycastle</groupId>
-            <artifactId>bcprov-jdk16</artifactId>
+            <artifactId>bcprov-jdk15on</artifactId>
         </dependency>
         <dependency>
             <groupId>commons-configuration</groupId>

http://git-wip-us.apache.org/repos/asf/airavata/blob/9ae7c6ec/modules/workflow-model/workflow-model-core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-core/pom.xml b/modules/workflow-model/workflow-model-core/pom.xml
index 5055464..09478dd 100644
--- a/modules/workflow-model/workflow-model-core/pom.xml
+++ b/modules/workflow-model/workflow-model-core/pom.xml
@@ -57,6 +57,12 @@
             <groupId>org.ogce</groupId>
             <artifactId>xsul</artifactId>
             <version>${xsul.version}</version>
+            <exclusions>
+            	<exclusion>
+            		<groupId>org.bouncycastle</groupId>
+            		<artifactId>bcprov-jdk16</artifactId>
+            	</exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>