You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2012/11/10 04:25:45 UTC

svn commit: r1407723 [1/2] - in /airavata/sandbox/grid-tools/gram-client: ./ src/main/java/org/apache/airavata/jobsubmission/ src/main/java/org/apache/airavata/jobsubmission/context/ src/main/java/org/apache/airavata/jobsubmission/gram/ src/main/java/o...

Author: smarru
Date: Sat Nov 10 03:25:44 2012
New Revision: 1407723

URL: http://svn.apache.org/viewvc?rev=1407723&view=rev
Log:
adding the rat headers

Modified:
    airavata/sandbox/grid-tools/gram-client/pom.xml
    airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/CancelJob.java
    airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/JobListener.java
    airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/JobStatus.java
    airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/JobSubmission.java
    airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/context/ApplicationContext.java
    airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/context/CertificateManager.java
    airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/context/MyProxyCredentials.java
    airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/gram/ExectionContext.java
    airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/gram/FileTransfer.java
    airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/gram/GramJobSubmission.java
    airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/gram/JobSubmissionListener.java
    airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/gram/JobSubmittionListener.java
    airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/utils/GridFTPContactInfo.java
    airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/utils/GridFtp.java
    airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/utils/ServiceConstants.java

Modified: airavata/sandbox/grid-tools/gram-client/pom.xml
URL: http://svn.apache.org/viewvc/airavata/sandbox/grid-tools/gram-client/pom.xml?rev=1407723&r1=1407722&r2=1407723&view=diff
==============================================================================
--- airavata/sandbox/grid-tools/gram-client/pom.xml (original)
+++ airavata/sandbox/grid-tools/gram-client/pom.xml Sat Nov 10 03:25:44 2012
@@ -1,3 +1,16 @@
+<?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. -->
+
 <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/maven-v4_0_0.xsd">
 	<!-- the version of maven's project object model -->
@@ -84,115 +97,7 @@
 					<target>1.5</target>
 				</configuration>
 			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-dependency-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>copy-dependencies</id>
-						<phase>package</phase>
-						<goals>
-							<goal>copy-dependencies</goal>
-						</goals>
-						<configuration>
-							<outputDirectory>target/lib</outputDirectory>
-							<overWriteReleases>false</overWriteReleases>
-							<overWriteSnapshots>true</overWriteSnapshots>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<artifactId>maven-antrun-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>deleteCACerts</id>
-						<phase>clean</phase>
-						<goals>
-							<goal>run</goal>
-						</goals>
-						<inherited>false</inherited>
-						<configuration>
-							<tasks>
-								<delete dir="${trustedCertsLocation}" />
-							</tasks>
-						</configuration>
-					</execution>
-					<execution>
-						<id>installCACerts</id>
-						<goals>
-							<goal>run</goal>
-						</goals>
-						<phase>process-resources</phase>
-						<inherited>false</inherited>
-						<configuration>
-							<tasks>
-								<mkdir dir="${trustedCertsLocation}" />
-								<echo message="Downloading file" />
-								<get src="http://software.xsede.org/security/xsede-certs.tar.gz"
-									dest="${trustedCertsLocation}/xsede-certs.tar.gz" ignoreerrors="yes"
-									verbose="on" />
-								<echo message="Unzipping the certs" />
-								<gunzip src="${trustedCertsLocation}/xsede-certs.tar.gz"
-									dest="${trustedCertsLocation}/" />
-
-								<echo message="Downloading file" />
-								<get
-									src="http://www.collab-ogce.org/ogce/images/d/d1/IUCerts.tar.gz"
-									dest="${trustedCertsLocation}/IUCerts.tar.gz" ignoreerrors="yes"
-									verbose="on" />
-								<echo message="Unzipping the certs" />
-								<gunzip src="${trustedCertsLocation}/IUCerts.tar.gz"
-									dest="${trustedCertsLocation}/" />
-								<echo message="Untarring" />
-								<untar dest="${trustedCertsLocation}/../">
-									<fileset dir="${trustedCertsLocation}/">
-										<include name="**/*.tar" />
-									</fileset>
-								</untar>
-
-							</tasks>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
 		</plugins>
-		<pluginManagement>
-			<plugins>
-				<!--This plugin's configuration is used to store Eclipse m2e settings 
-					only. It has no influence on the Maven build itself. -->
-				<plugin>
-					<groupId>org.eclipse.m2e</groupId>
-					<artifactId>lifecycle-mapping</artifactId>
-					<version>1.0.0</version>
-					<configuration>
-						<lifecycleMappingMetadata>
-							<pluginExecutions>
-								<pluginExecution>
-									<pluginExecutionFilter>
-										<groupId>
-											org.apache.maven.plugins
-										</groupId>
-										<artifactId>
-											maven-antrun-plugin
-										</artifactId>
-										<versionRange>
-											[1.3,)
-										</versionRange>
-										<goals>
-											<goal>run</goal>
-										</goals>
-									</pluginExecutionFilter>
-									<action>
-										<ignore></ignore>
-									</action>
-								</pluginExecution>
-							</pluginExecutions>
-						</lifecycleMappingMetadata>
-					</configuration>
-				</plugin>
-			</plugins>
-		</pluginManagement>
 	</build>
 
 </project>

Modified: airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/CancelJob.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/CancelJob.java?rev=1407723&r1=1407722&r2=1407723&view=diff
==============================================================================
--- airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/CancelJob.java (original)
+++ airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/CancelJob.java Sat Nov 10 03:25:44 2012
@@ -1,3 +1,24 @@
+/*
+ *
+ * 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.jobsubmission;
 
 import org.apache.airavata.jobsubmission.context.ApplicationContext;

Modified: airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/JobListener.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/JobListener.java?rev=1407723&r1=1407722&r2=1407723&view=diff
==============================================================================
--- airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/JobListener.java (original)
+++ airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/JobListener.java Sat Nov 10 03:25:44 2012
@@ -1,3 +1,24 @@
+/*
+ *
+ * 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.jobsubmission;
 
 import org.globus.gram.GramException;
@@ -8,48 +29,48 @@ import org.ietf.jgss.GSSException;
 
 public class JobListener implements GramJobListener {
 
-	private boolean finished;
-	private int error;
-	private int status;
-	private GSSCredential credential;
-	private GramJob job;
-	
-	public JobListener(GramJob job, GSSCredential credential) {
-		this.job = job;
-		this.credential = credential;
-	}
-	public void waitFor() throws InterruptedException, GSSException, GramException {
-		while (!finished) {
-			
-		// job status is changed but method isn't invoked
-		if (status != 0) {
-			if (job.getStatus() != status) {
-				System.out.println("invoke method manually");
-				statusChanged(job);
-				}
-			}
-		 else {
-			statusChanged(job);
-			 System.out.println("Status is zero");
-		}
-		synchronized (this) {
-			wait(1000l);
-		}		
-		}
-	}
-
-	public void statusChanged(GramJob job) {
-		int jobStatus = job.getStatus();
-		String jobId = job.getIDAsString();
-		String statusString = job.getStatusAsString();
-		System.out.println("Status " + statusString);
-		if (jobStatus == GramJob.STATUS_DONE) {
-			finished = true;
-		} else if (jobStatus == GramJob.STATUS_FAILED) {
-			finished = true;
-			error = job.getError();
-			System.out.println("Job Error Code: " + error);
-		}
-	}
+    private boolean finished;
+    private int error;
+    private int status;
+    private GSSCredential credential;
+    private GramJob job;
+
+    public JobListener(GramJob job, GSSCredential credential) {
+        this.job = job;
+        this.credential = credential;
+    }
+
+    public void waitFor() throws InterruptedException, GSSException, GramException {
+        while (!finished) {
+
+            // job status is changed but method isn't invoked
+            if (status != 0) {
+                if (job.getStatus() != status) {
+                    System.out.println("invoke method manually");
+                    statusChanged(job);
+                }
+            } else {
+                statusChanged(job);
+                System.out.println("Status is zero");
+            }
+            synchronized (this) {
+                wait(1000l);
+            }
+        }
+    }
+
+    public void statusChanged(GramJob job) {
+        int jobStatus = job.getStatus();
+        String jobId = job.getIDAsString();
+        String statusString = job.getStatusAsString();
+        System.out.println("Status " + statusString);
+        if (jobStatus == GramJob.STATUS_DONE) {
+            finished = true;
+        } else if (jobStatus == GramJob.STATUS_FAILED) {
+            finished = true;
+            error = job.getError();
+            System.out.println("Job Error Code: " + error);
+        }
+    }
 
 }
\ No newline at end of file

Modified: airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/JobStatus.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/JobStatus.java?rev=1407723&r1=1407722&r2=1407723&view=diff
==============================================================================
--- airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/JobStatus.java (original)
+++ airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/JobStatus.java Sat Nov 10 03:25:44 2012
@@ -1,3 +1,24 @@
+/*
+ *
+ * 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.jobsubmission;
 
 import org.apache.airavata.jobsubmission.context.ApplicationContext;
@@ -5,29 +26,28 @@ import org.globus.gram.GramJob;
 
 public class JobStatus {
 
-	
-	/**
-	 * @param args
-	 */
-	public static void main(String[] args) {
-		try {
-			ApplicationContext context = new ApplicationContext();
-			context.login();
-			
-			String rsl = "";
-			GramJob job = new GramJob(context.getGssCredential(),rsl);
-			job.setID("https://gatekeeper.ranger.tacc.teragrid.org:50388/16073791261988702796/9536223017013632385/");
-			JobListener listener = new JobListener(job, context.getGssCredential());
-			job.addListener(listener);
-			System.out.println("Status 1111111" + job.getStatusAsString());
-		    listener.waitFor();
-			System.out.println("Now Status" + job.getStatusAsString());
-			job.removeListener(listener);
-		} catch (Exception e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
+    /**
+     * @param args
+     */
+    public static void main(String[] args) {
+        try {
+            ApplicationContext context = new ApplicationContext();
+            context.login();
+
+            String rsl = "";
+            GramJob job = new GramJob(context.getGssCredential(), rsl);
+            job.setID("https://gatekeeper.ranger.tacc.teragrid.org:50388/16073791261988702796/9536223017013632385/");
+            JobListener listener = new JobListener(job, context.getGssCredential());
+            job.addListener(listener);
+            System.out.println("Status 1111111" + job.getStatusAsString());
+            listener.waitFor();
+            System.out.println("Now Status" + job.getStatusAsString());
+            job.removeListener(listener);
+        } catch (Exception e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
 
-	}
+    }
 
 }

Modified: airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/JobSubmission.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/JobSubmission.java?rev=1407723&r1=1407722&r2=1407723&view=diff
==============================================================================
--- airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/JobSubmission.java (original)
+++ airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/JobSubmission.java Sat Nov 10 03:25:44 2012
@@ -1,3 +1,24 @@
+/*
+ *
+ * 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.jobsubmission;
 
 import org.apache.airavata.jobsubmission.context.ApplicationContext;
@@ -8,95 +29,95 @@ import org.ietf.jgss.GSSCredential;
 
 public class JobSubmission {
 
-	private static final Logger log = Logger.getLogger(JobSubmission.class);
-	private static ExectionContext contextExectionContext;
-	private static ApplicationContext context;
-	private static String newline = System.getProperty("line.separator");
-
-	public static synchronized ApplicationContext getContext() throws Exception {
-		if (context == null) {
-			context = new ApplicationContext();
-			try {
-				context.login();
-			} catch (Exception e) {
-				context = null;
-				e.printStackTrace();
-				throw e;
-			}
-		}
-		return context;
-	}
-
-	public static ExectionContext getExecutionContext() {
-
-		if (contextExectionContext == null) {
-			try {
-				contextExectionContext = new ExectionContext();
-			} catch (Exception e) {
-				log.error("Error loading configuration file", e);
-				System.err.println("Make sure configuration file is in classpath and has proper values");
-
-				/*
-				 * Set required value to default since property file cannot be
-				 * loaded
-				 */
-				// contextExectionContext.setHost("login5.ranger.tacc.utexas.edu:2120/jobmanager-sge");
-				// contextExectionContext.setHost("gatekeeper.lonestar.tacc.teragrid.org:2120/jobmanager-lsf");
-				// contextExectionContext.setHost("queenbee.loni-lsu.teragrid.org:2120/jobmanager-pbs");
-				contextExectionContext.setHost("gatekeeper.ranger.tacc.teragrid.org:2120/jobmanager-sge");
-				contextExectionContext.setExecutable("/bin/sleep");
-				contextExectionContext.setArguments("30");
-				contextExectionContext.setQueue("checkpt");
-				contextExectionContext.setProjectName("TG-STA060010N");
-				contextExectionContext.setJobType("single");
-				contextExectionContext.setMaxWallTime(1);
-				contextExectionContext.setPcount(1);
-				contextExectionContext.setHostCount(1);
-				e.printStackTrace();
-			}
-		}
-		return contextExectionContext;
-	}
-
-	public static void main(String[] args) {
-		try {
-			ApplicationContext context = new ApplicationContext();
-			context.login();
-
-			StringBuffer jobstatus = new StringBuffer();
-			GramJobSubmission gramJobSubmittion = new GramJobSubmission();
-
-			System.out.println();
-
-			gramJobSubmittion.executeJob(context.getGssCredential(), getExecutionContext(), jobstatus);
-			System.out.println(jobstatus.toString());
-			System.exit(0);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	public String toString() {
-		String result = null;
-		try {
-			StringBuffer x = new StringBuffer();
-			GSSCredential gssCredential = getContext().getGssCredential();
-			x.append(getExecutionContext().getHost() + "#" + getCName(gssCredential.getName().toString()) + newline);
-			log.info("NAME:" + getCName(gssCredential.getName().toString()));
-
-			GramJobSubmission gramJobSubmittion = new GramJobSubmission();
-			gramJobSubmittion.executeJob(gssCredential, getExecutionContext(), x);
-			result = x.toString();
-		} catch (Exception e) {
-			log.error(e.getCause());
-			result = getExecutionContext().getHost() + "#" + "user" + newline + System.currentTimeMillis() + "#" + "id" + "#" + "FAILED" + "#" + e.getMessage();
-
-		}
-		return result;
-	}
-
-	private String getCName(String full) {
-		int index = full.indexOf("/CN=");
-		return full.substring(index + 4);
-	}
+    private static final Logger log = Logger.getLogger(JobSubmission.class);
+    private static ExectionContext contextExectionContext;
+    private static ApplicationContext context;
+    private static String newline = System.getProperty("line.separator");
+
+    public static synchronized ApplicationContext getContext() throws Exception {
+        if (context == null) {
+            context = new ApplicationContext();
+            try {
+                context.login();
+            } catch (Exception e) {
+                context = null;
+                e.printStackTrace();
+                throw e;
+            }
+        }
+        return context;
+    }
+
+    public static ExectionContext getExecutionContext() {
+
+        if (contextExectionContext == null) {
+            try {
+                contextExectionContext = new ExectionContext();
+            } catch (Exception e) {
+                log.error("Error loading configuration file", e);
+                System.err.println("Make sure configuration file is in classpath and has proper values");
+
+                /*
+                 * Set required value to default since property file cannot be loaded
+                 */
+                // contextExectionContext.setHost("login5.ranger.tacc.utexas.edu:2120/jobmanager-sge");
+                // contextExectionContext.setHost("gatekeeper.lonestar.tacc.teragrid.org:2120/jobmanager-lsf");
+                // contextExectionContext.setHost("queenbee.loni-lsu.teragrid.org:2120/jobmanager-pbs");
+                contextExectionContext.setHost("gatekeeper.ranger.tacc.teragrid.org:2120/jobmanager-sge");
+                contextExectionContext.setExecutable("/bin/sleep");
+                contextExectionContext.setArguments("30");
+                contextExectionContext.setQueue("checkpt");
+                contextExectionContext.setProjectName("TG-STA060010N");
+                contextExectionContext.setJobType("single");
+                contextExectionContext.setMaxWallTime(1);
+                contextExectionContext.setPcount(1);
+                contextExectionContext.setHostCount(1);
+                e.printStackTrace();
+            }
+        }
+        return contextExectionContext;
+    }
+
+    public static void main(String[] args) {
+        try {
+            ApplicationContext context = new ApplicationContext();
+            context.login();
+
+            StringBuffer jobstatus = new StringBuffer();
+            GramJobSubmission gramJobSubmittion = new GramJobSubmission();
+
+            System.out.println();
+
+            gramJobSubmittion.executeJob(context.getGssCredential(), getExecutionContext(), jobstatus);
+            System.out.println(jobstatus.toString());
+            System.exit(0);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    public String toString() {
+        String result = null;
+        try {
+            StringBuffer x = new StringBuffer();
+            GSSCredential gssCredential = getContext().getGssCredential();
+            x.append(getExecutionContext().getHost() + "#" + getCName(gssCredential.getName().toString()) + newline);
+            log.info("NAME:" + getCName(gssCredential.getName().toString()));
+
+            GramJobSubmission gramJobSubmittion = new GramJobSubmission();
+            gramJobSubmittion.executeJob(gssCredential, getExecutionContext(), x);
+            result = x.toString();
+        } catch (Exception e) {
+            log.error(e.getCause());
+            result = getExecutionContext().getHost() + "#" + "user" + newline + System.currentTimeMillis() + "#" + "id"
+                    + "#" + "FAILED" + "#" + e.getMessage();
+
+        }
+        return result;
+    }
+
+    private String getCName(String full) {
+        int index = full.indexOf("/CN=");
+        return full.substring(index + 4);
+    }
 }

Modified: airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/context/ApplicationContext.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/context/ApplicationContext.java?rev=1407723&r1=1407722&r2=1407723&view=diff
==============================================================================
--- airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/context/ApplicationContext.java (original)
+++ airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/context/ApplicationContext.java Sat Nov 10 03:25:44 2012
@@ -1,9 +1,22 @@
 /*
- * Copyright (c) 2009 Pervasive Lab, Indiana University. All rights reserved.
  *
- * This software is open source. See the bottom of this file for 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.
  *
- * $Id: $
  */
 
 package org.apache.airavata.jobsubmission.context;
@@ -18,164 +31,161 @@ import org.apache.log4j.Logger;
 import org.globus.myproxy.MyProxy;
 import org.ietf.jgss.GSSCredential;
 
-/**
- * @author Raminderjeet Singh
- */
 public class ApplicationContext {
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -2270092298283648553L;
-	public static final String GRAMCLIENT_PROPERTY = "gramclient.properties";
-	private Properties properties;
-	protected GSSCredential gssCredential;
-
-	private MyProxyCredentials credentials;
-	private static final Logger log = Logger.getLogger(ApplicationContext.class);
-
-	/**
-	 * 
-	 * Constructs a ApplicationGlobalContext.
-	 * 
-	 * @throws GfacGUIException
-	 */
-
-	public ApplicationContext() throws Exception {
-		log.setLevel(org.apache.log4j.Level.INFO);
-		loadConfiguration();
-
-	}
-
-	public static void main(String[] args) {
-		try {
-			ApplicationContext context = new ApplicationContext();
-			context.login();
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * 
-	 * @throws GfacException
-	 */
-	public void login() throws Exception {
-		gssCredential = credentials.getGssCredential();
-	}
-
-	public static String getProperty(String name) {
-		try {
-			ApplicationContext context = new ApplicationContext();
-			return context.getProperties().getProperty(name);
-		} catch (Exception e) {
-			e.printStackTrace();
-			return null;
-		}
-
-	}
-
-	/**
-	 * Load the configration file
-	 * 
-	 * @throws GfacException
-	 */
-	private void loadConfiguration() throws Exception {
-		try {
-			if (properties == null) {
-				ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-				File webinfDir = null;
-				URL propertyFile = classLoader.getResource(GRAMCLIENT_PROPERTY);
-
-				if (propertyFile != null) {
-					File tempFile = new File(propertyFile.getFile());
-					if (tempFile.exists()) {
-						webinfDir = tempFile.getParentFile().getParentFile();
-					}
-				} else {
-					throw new Exception(" Not able to locate " + GRAMCLIENT_PROPERTY);
-				}
-				InputStream propertyStream = classLoader.getResourceAsStream(GRAMCLIENT_PROPERTY);
-				properties = new Properties();
-				if (credentials == null) {
-					this.credentials = new MyProxyCredentials();
-				}
-				if (propertyStream != null) {
-					properties.load(propertyStream);
-					String myproxyServerTmp = properties.getProperty(ServiceConstants.MYPROXY_SERVER);
-					if (myproxyServerTmp != null) {
-						this.credentials.setMyproxyHostname(myproxyServerTmp.trim());
-					}
-					String myproxyPortTemp = properties.getProperty(ServiceConstants.MYPROXY_PORT);
-					if (myproxyPortTemp != null && myproxyPortTemp.trim().length() > 0) {
-						this.credentials.setMyproxyPortNumber(Integer.parseInt(myproxyPortTemp.trim()));
-					} else {
-						this.credentials.setMyproxyPortNumber(MyProxy.DEFAULT_PORT);
-					}
-					String myproxyuser = properties.getProperty(ServiceConstants.MYPROXY_USERNAME);
-					if (myproxyuser != null) {
-						this.credentials.setMyproxyUserName(myproxyuser);
-					}
-					String myproxypass = properties.getProperty(ServiceConstants.MYPROXY_PASSWD);
-					if (myproxypass != null) {
-						this.credentials.setMyproxyPassword(myproxypass);
-					}
-					String myproxytime = properties.getProperty(ServiceConstants.MYPROXY_LIFETIME);
-					if (myproxytime != null) {
-						this.credentials.setMyproxyLifeTime(Integer.parseInt(myproxytime));
-					}
-					this.credentials.setHostcertsKeyFile(properties.getProperty(ServiceConstants.HOSTCERTS_KEY_FILE));
-					this.credentials.setTrustedCertsFile(properties.getProperty(ServiceConstants.TRUSTED_CERTS_FILE));
-				}
-			}
-
-		} catch (Exception e) {
-			e.printStackTrace();
-			log.error(e.getLocalizedMessage());
-			throw new Exception(e);
-		}
-
-	}
-
-	/**
-	 * @return the properties
-	 */
-	public Properties getProperties() {
-		return properties;
-	}
-
-	/**
-	 * @param properties
-	 *            the properties to set
-	 */
-	public void setProperties(Properties properties) {
-		this.properties = properties;
-	}
-
-	/**
-	 * Returns the gssCredential.
-	 * 
-	 * @return The gssCredential
-	 */
-	public GSSCredential getGssCredential() {
-		return this.gssCredential;
-	}
-
-	/**
-	 * Sets gssCredential.
+    /**
 	 * 
-	 * @param gssCredential
-	 *            The gssCredential to set.
 	 */
-	public void setGssCredential(GSSCredential gssCredential) {
-		this.gssCredential = gssCredential;
-	}
-
-	public MyProxyCredentials getCredentials() {
-		return credentials;
-	}
-
-	public void setCredentials(MyProxyCredentials credentials) {
-		this.credentials = credentials;
-	}
+    private static final long serialVersionUID = -2270092298283648553L;
+    public static final String GRAMCLIENT_PROPERTY = "gramclient.properties";
+    private Properties properties;
+    protected GSSCredential gssCredential;
+
+    private MyProxyCredentials credentials;
+    private static final Logger log = Logger.getLogger(ApplicationContext.class);
+
+    /**
+     * 
+     * Constructs a ApplicationGlobalContext.
+     * 
+     * @throws GfacGUIException
+     */
+
+    public ApplicationContext() throws Exception {
+        log.setLevel(org.apache.log4j.Level.INFO);
+        loadConfiguration();
+
+    }
+
+    public static void main(String[] args) {
+        try {
+            ApplicationContext context = new ApplicationContext();
+            context.login();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 
+     * @throws GfacException
+     */
+    public void login() throws Exception {
+        gssCredential = credentials.getGssCredential();
+    }
+
+    public static String getProperty(String name) {
+        try {
+            ApplicationContext context = new ApplicationContext();
+            return context.getProperties().getProperty(name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return null;
+        }
+
+    }
+
+    /**
+     * Load the configration file
+     * 
+     * @throws GfacException
+     */
+    private void loadConfiguration() throws Exception {
+        try {
+            if (properties == null) {
+                ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+                File webinfDir = null;
+                URL propertyFile = classLoader.getResource(GRAMCLIENT_PROPERTY);
+
+                if (propertyFile != null) {
+                    File tempFile = new File(propertyFile.getFile());
+                    if (tempFile.exists()) {
+                        webinfDir = tempFile.getParentFile().getParentFile();
+                    }
+                } else {
+                    throw new Exception(" Not able to locate " + GRAMCLIENT_PROPERTY);
+                }
+                InputStream propertyStream = classLoader.getResourceAsStream(GRAMCLIENT_PROPERTY);
+                properties = new Properties();
+                if (credentials == null) {
+                    this.credentials = new MyProxyCredentials();
+                }
+                if (propertyStream != null) {
+                    properties.load(propertyStream);
+                    String myproxyServerTmp = properties.getProperty(ServiceConstants.MYPROXY_SERVER);
+                    if (myproxyServerTmp != null) {
+                        this.credentials.setMyproxyHostname(myproxyServerTmp.trim());
+                    }
+                    String myproxyPortTemp = properties.getProperty(ServiceConstants.MYPROXY_PORT);
+                    if (myproxyPortTemp != null && myproxyPortTemp.trim().length() > 0) {
+                        this.credentials.setMyproxyPortNumber(Integer.parseInt(myproxyPortTemp.trim()));
+                    } else {
+                        this.credentials.setMyproxyPortNumber(MyProxy.DEFAULT_PORT);
+                    }
+                    String myproxyuser = properties.getProperty(ServiceConstants.MYPROXY_USERNAME);
+                    if (myproxyuser != null) {
+                        this.credentials.setMyproxyUserName(myproxyuser);
+                    }
+                    String myproxypass = properties.getProperty(ServiceConstants.MYPROXY_PASSWD);
+                    if (myproxypass != null) {
+                        this.credentials.setMyproxyPassword(myproxypass);
+                    }
+                    String myproxytime = properties.getProperty(ServiceConstants.MYPROXY_LIFETIME);
+                    if (myproxytime != null) {
+                        this.credentials.setMyproxyLifeTime(Integer.parseInt(myproxytime));
+                    }
+                    this.credentials.setHostcertsKeyFile(properties.getProperty(ServiceConstants.HOSTCERTS_KEY_FILE));
+                    this.credentials.setTrustedCertsFile(properties.getProperty(ServiceConstants.TRUSTED_CERTS_FILE));
+                }
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error(e.getLocalizedMessage());
+            throw new Exception(e);
+        }
+
+    }
+
+    /**
+     * @return the properties
+     */
+    public Properties getProperties() {
+        return properties;
+    }
+
+    /**
+     * @param properties
+     *            the properties to set
+     */
+    public void setProperties(Properties properties) {
+        this.properties = properties;
+    }
+
+    /**
+     * Returns the gssCredential.
+     * 
+     * @return The gssCredential
+     */
+    public GSSCredential getGssCredential() {
+        return this.gssCredential;
+    }
+
+    /**
+     * Sets gssCredential.
+     * 
+     * @param gssCredential
+     *            The gssCredential to set.
+     */
+    public void setGssCredential(GSSCredential gssCredential) {
+        this.gssCredential = gssCredential;
+    }
+
+    public MyProxyCredentials getCredentials() {
+        return credentials;
+    }
+
+    public void setCredentials(MyProxyCredentials credentials) {
+        this.credentials = credentials;
+    }
 }

Modified: airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/context/CertificateManager.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/context/CertificateManager.java?rev=1407723&r1=1407722&r2=1407723&view=diff
==============================================================================
--- airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/context/CertificateManager.java (original)
+++ airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/context/CertificateManager.java Sat Nov 10 03:25:44 2012
@@ -1,10 +1,24 @@
 /*
- * Copyright (c) 2009 Pervasive Lab, Indiana University. All rights reserved.
  *
- * This software is open source. See the bottom of this file for 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.
  *
- * $Id: $
  */
+
 package org.apache.airavata.jobsubmission.context;
 
 import java.io.InputStream;
@@ -16,15 +30,8 @@ import java.util.List;
 import org.globus.gsi.CertUtil;
 import org.globus.util.ClassLoaderUtils;
 
-
-
-/**
- * @author Raminderjeet Singh
- */
 public class CertificateManager {
 
-  
- 
     private static X509Certificate[] trustedCertificates;
 
     /**
@@ -38,40 +45,36 @@ public class CertificateManager {
         }
 
         List<X509Certificate> extremeTrustedCertificates = getTrustedCertificates(certificate);
- 
+
         List<X509Certificate> allTrustedCertificates = new ArrayList<X509Certificate>();
         allTrustedCertificates.addAll(extremeTrustedCertificates);
- 
-        trustedCertificates = allTrustedCertificates
-                .toArray(new X509Certificate[allTrustedCertificates.size()]);
+
+        trustedCertificates = allTrustedCertificates.toArray(new X509Certificate[allTrustedCertificates.size()]);
         return trustedCertificates;
     }
 
-
     private static List<X509Certificate> getTrustedCertificates(String pass) {
-    	//ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); //**
-    	//InputStream stream = classLoader.getResourceAsStream(pass); //**
-    	InputStream stream = ClassLoaderUtils.getResourceAsStream(pass); //**
+        // ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); //**
+        // InputStream stream = classLoader.getResourceAsStream(pass); //**
+        InputStream stream = ClassLoaderUtils.getResourceAsStream(pass); // **
         if (stream == null) {
-            throw new RuntimeException("Failed to get InputStream to "
-                    + pass);
+            throw new RuntimeException("Failed to get InputStream to " + pass);
         }
         return readTrustedCertificates(stream);
     }
-    
+
     /**
      * @param stream
      * @return List of X509Certificate
      */
-    public static List<X509Certificate> readTrustedCertificates(
-            InputStream stream) {
+    public static List<X509Certificate> readTrustedCertificates(InputStream stream) {
         ArrayList<X509Certificate> certificates = new ArrayList<X509Certificate>();
         while (true) {
             X509Certificate certificate;
             try {
-            	 certificate = CertUtil.loadCertificate(stream);
-//                certificate = CertificateLoadUtil.loadCertificate(stream); //**
-            }catch (GeneralSecurityException e) {
+                certificate = CertUtil.loadCertificate(stream);
+                // certificate = CertificateLoadUtil.loadCertificate(stream); //**
+            } catch (GeneralSecurityException e) {
                 String message = "Certificates are invalid";
                 throw new RuntimeException(message, e);
             }
@@ -84,4 +87,3 @@ public class CertificateManager {
     }
 
 }
-

Modified: airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/context/MyProxyCredentials.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/context/MyProxyCredentials.java?rev=1407723&r1=1407722&r2=1407723&view=diff
==============================================================================
--- airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/context/MyProxyCredentials.java (original)
+++ airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/context/MyProxyCredentials.java Sat Nov 10 03:25:44 2012
@@ -1,10 +1,24 @@
 /*
- * Copyright (c) 2009 Pervasive Lab, Indiana University. All rights reserved.
  *
- * This software is open source. See the bottom of this file for 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.
  *
- * $Id: $
  */
+
 package org.apache.airavata.jobsubmission.context;
 
 import java.io.File;
@@ -20,286 +34,285 @@ import org.globus.gsi.gssapi.GlobusGSSCr
 import org.globus.myproxy.MyProxy;
 import org.ietf.jgss.GSSCredential;
 
-/**
- * @author Raminderjeet Singh
- */
 public class MyProxyCredentials implements Serializable {
 
-	private static final long serialVersionUID = -2471014486509046212L;
-	protected String myproxyHostname;
-	protected String myproxyUserName;
-	protected String myproxyPassword;
-	protected int myproxyPortNumber;
-	protected GSSCredential gssCredential;
-	protected String portalUserName;
-	private String hostcertsKeyFile;
-	private String trustedCertsFile;
-
-	protected int myproxyLifeTime = 14400;
-	final static int SECS_PER_MIN = 60;
-	final static int SECS_PER_HOUR = 3600;
-
-	private boolean initialized = false;
-	private boolean user = true;
-	protected X509Certificate[] trustedCertificates;
-
-	private static final Logger log = Logger.getLogger(MyProxyCredentials.class);
-
-	public MyProxyCredentials() {
-		// default constructor
-	}
-
-	public MyProxyCredentials(String myproxyServer, int myproxyPort, String myproxyUsername, String myproxyPassphrase, int myproxyLifetime) {
-		this.myproxyHostname = myproxyServer;
-		this.myproxyPortNumber = myproxyPort;
-		this.myproxyUserName = myproxyUsername;
-		this.myproxyPassword = myproxyPassphrase;
-		this.myproxyLifeTime = myproxyLifetime;
-
-	}
-
-	public GSSCredential getGssCredential() throws Exception {
-		FileInputStream fis = null;
-		try {
-			if (hostcertsKeyFile != null && !user) {
-				fis = new FileInputStream(hostcertsKeyFile);
-//				X509Credential globusCred = new X509Credential(fis); //**
-				GlobusCredential globusCred = new GlobusCredential(fis);
-				this.gssCredential = new GlobusGSSCredentialImpl(globusCred, GSSCredential.INITIATE_AND_ACCEPT);
-
-			} else {
-				this.gssCredential = getDefaultProxy();
-			}
-			if (gssCredential != null) {
-				return gssCredential;
-			}
-		} catch (Exception e) {
-			log.error("Failed to load proxy credential from ProxyManager");
-			e.printStackTrace();
-			throw e;
-		} finally {
-			if (fis != null) {
-				fis.close();
-			}
-		}
-
-		// then we will try the MyProxy
-		if (getMyproxyUserName() != null && getMyproxyPassword() != null) {
-			gssCredential = renewProxy();
-		}
-		return gssCredential;
-	}
-
-	public GSSCredential getDefaultProxy() throws Exception {
-		init();
-		MyProxy myproxy = new MyProxy(this.myproxyHostname, this.myproxyPortNumber);
-		log.info("USER=" + this.myproxyUserName + ",PASS=" + this.myproxyPassword + ",TIME=" + this.myproxyLifeTime);
-		return myproxy.get(this.myproxyUserName, this.myproxyPassword, this.myproxyLifeTime);
-	}
-
-	private void init() {
-		if (trustedCertsFile != null) {
-			if (new File(trustedCertsFile).isDirectory()) {
-				TrustedCertificates certificates = TrustedCertificates.load(trustedCertsFile);
-				TrustedCertificates.setDefaultTrustedCertificates(certificates);
-			} else {
-				this.trustedCertificates = CertificateManager.getTrustedCertificate(trustedCertsFile);
-
-				TrustedCertificates certificatesArray = new TrustedCertificates(this.trustedCertificates);
-				TrustedCertificates.setDefaultTrustedCertificates(certificatesArray);
-			}
-		}
-	}
-
-	public GSSCredential renewProxy() throws Exception {
-		init();
-
-		FileOutputStream fout = null;
-		try {
-			String proxyloc = null;
-			MyProxy myproxy = new MyProxy(myproxyHostname, myproxyPortNumber);
-			int lifeHours = myproxyLifeTime * SECS_PER_HOUR;
-			GSSCredential proxy = myproxy.get(myproxyUserName, myproxyPassword, lifeHours);
-
-			GlobusCredential globusCred = null; //**
-//			X509Credential globusCred = null; //**
-			if (proxy instanceof GlobusGSSCredentialImpl) {
-				globusCred = ((GlobusGSSCredentialImpl) proxy).getGlobusCredential();//** 
-//				globusCred = ((GlobusGSSCredentialImpl) proxy).getX509Credential();//**
-				log.info("got proxy from myproxy for " + myproxyUserName + " with " + myproxyLifeTime + " lifetime.");
-				String uid = myproxyUserName;
-				if (proxyloc == null) {
-					log.info("uid: " + uid);
-					proxyloc = "/tmp/x509up_u" + uid;
-				}
-				File proxyfile = new File(proxyloc);
-				log.info("proxy location: " + proxyfile.getAbsolutePath());
-				if (proxyfile.exists() == false) {
-					String dirpath = proxyloc.substring(0, proxyloc.lastIndexOf('/'));
-					File dir = new File(dirpath);
-					if (dir.exists() == false) {
-						dir.mkdirs();
-						log.info("new directory " + dirpath + " is created.");
-					}
-					proxyfile.createNewFile();
-					log.info("new proxy file " + proxyloc + " is created.");
-				}
-				fout = new FileOutputStream(proxyfile);
-				globusCred.save(fout);
-				String osName = System.getProperty("os.name");
-				if (!osName.contains("Windows")) {
-					Runtime.getRuntime().exec("/bin/chmod 600 " + proxyloc);
-				}
-				log.info("Proxy file renewed to " + proxyloc + " for the user " + myproxyUserName + " with " + myproxyLifeTime + " lifetime.");
-
-			}
-			return proxy;
-		} catch (Exception e) {
-			throw new Exception(e);
-		} finally {
-			if (fout != null) {
-				fout.close();
-			}
-		}
-	}
-
-	/**
-	 * @return the myproxyHostname
-	 */
-	public String getMyproxyHostname() {
-		return myproxyHostname;
-	}
-
-	/**
-	 * @param myproxyHostname
-	 *            the myproxyHostname to set
-	 */
-	public void setMyproxyHostname(String myproxyHostname) {
-		this.myproxyHostname = myproxyHostname;
-	}
-
-	/**
-	 * @return the myproxyUserName
-	 */
-	public String getMyproxyUserName() {
-		return myproxyUserName;
-	}
-
-	/**
-	 * @param myproxyUserName
-	 *            the myproxyUserName to set
-	 */
-	public void setMyproxyUserName(String myproxyUserName) {
-		this.myproxyUserName = myproxyUserName;
-	}
-
-	/**
-	 * @return the myproxyPassword
-	 */
-	public String getMyproxyPassword() {
-		return myproxyPassword;
-	}
-
-	/**
-	 * @param myproxyPassword
-	 *            the myproxyPassword to set
-	 */
-	public void setMyproxyPassword(String myproxyPassword) {
-		this.myproxyPassword = myproxyPassword;
-	}
-
-	/**
-	 * @return the myproxyLifeTime
-	 */
-	public int getMyproxyLifeTime() {
-		return myproxyLifeTime;
-	}
-
-	/**
-	 * @param myproxyLifeTime
-	 *            the myproxyLifeTime to set
-	 */
-	public void setMyproxyLifeTime(int myproxyLifeTime) {
-		this.myproxyLifeTime = myproxyLifeTime;
-	}
-
-	/**
-	 * @return the myproxyPortNumber
-	 */
-	public int getMyproxyPortNumber() {
-		return myproxyPortNumber;
-	}
-
-	/**
-	 * @param myproxyPortNumber
-	 *            the myproxyPortNumber to set
-	 */
-	public void setMyproxyPortNumber(int myproxyPortNumber) {
-		this.myproxyPortNumber = myproxyPortNumber;
-	}
-
-	/**
-	 * @return the portalUserName
-	 */
-	public String getPortalUserName() {
-		return portalUserName;
-	}
-
-	/**
-	 * @param portalUserName
-	 *            the portalUserName to set
-	 */
-	public void setPortalUserName(String portalUserName) {
-		this.portalUserName = portalUserName;
-	}
-
-	/**
-	 * Returns the initialized.
-	 * 
-	 * @return The initialized
-	 */
-	public boolean isInitialized() {
-		return this.initialized;
-	}
-
-	/**
-	 * Sets initialized.
-	 * 
-	 * @param initialized
-	 *            The initialized to set.
-	 */
-	public void setInitialized(boolean initialized) {
-		this.initialized = initialized;
-	}
-
-	/**
-	 * @param hostcertsKeyFile
-	 *            the hostcertsKeyFile to set
-	 */
-	public void setHostcertsKeyFile(String hostcertsKeyFile) {
-		this.hostcertsKeyFile = hostcertsKeyFile;
-	}
-
-	/**
-	 * @return the hostcertsKeyFile
-	 */
-	public String getHostcertsKeyFile() {
-		return hostcertsKeyFile;
-	}
-
-	/**
-	 * @param trustedCertsFile
-	 *            the trustedCertsFile to set
-	 */
-	public void setTrustedCertsFile(String trustedCertsFile) {
-		this.trustedCertsFile = trustedCertsFile;
-	}
-
-	/**
-	 * @return the trustedCertsFile
-	 */
-	public String getTrustedCertsFile() {
-		return trustedCertsFile;
-	}
+    private static final long serialVersionUID = -2471014486509046212L;
+    protected String myproxyHostname;
+    protected String myproxyUserName;
+    protected String myproxyPassword;
+    protected int myproxyPortNumber;
+    protected GSSCredential gssCredential;
+    protected String portalUserName;
+    private String hostcertsKeyFile;
+    private String trustedCertsFile;
+
+    protected int myproxyLifeTime = 14400;
+    final static int SECS_PER_MIN = 60;
+    final static int SECS_PER_HOUR = 3600;
+
+    private boolean initialized = false;
+    private boolean user = true;
+    protected X509Certificate[] trustedCertificates;
+
+    private static final Logger log = Logger.getLogger(MyProxyCredentials.class);
+
+    public MyProxyCredentials() {
+        // default constructor
+    }
+
+    public MyProxyCredentials(String myproxyServer, int myproxyPort, String myproxyUsername, String myproxyPassphrase,
+            int myproxyLifetime) {
+        this.myproxyHostname = myproxyServer;
+        this.myproxyPortNumber = myproxyPort;
+        this.myproxyUserName = myproxyUsername;
+        this.myproxyPassword = myproxyPassphrase;
+        this.myproxyLifeTime = myproxyLifetime;
+
+    }
+
+    public GSSCredential getGssCredential() throws Exception {
+        FileInputStream fis = null;
+        try {
+            if (hostcertsKeyFile != null && !user) {
+                fis = new FileInputStream(hostcertsKeyFile);
+                // X509Credential globusCred = new X509Credential(fis); //**
+                GlobusCredential globusCred = new GlobusCredential(fis);
+                this.gssCredential = new GlobusGSSCredentialImpl(globusCred, GSSCredential.INITIATE_AND_ACCEPT);
+
+            } else {
+                this.gssCredential = getDefaultProxy();
+            }
+            if (gssCredential != null) {
+                return gssCredential;
+            }
+        } catch (Exception e) {
+            log.error("Failed to load proxy credential from ProxyManager");
+            e.printStackTrace();
+            throw e;
+        } finally {
+            if (fis != null) {
+                fis.close();
+            }
+        }
+
+        // then we will try the MyProxy
+        if (getMyproxyUserName() != null && getMyproxyPassword() != null) {
+            gssCredential = renewProxy();
+        }
+        return gssCredential;
+    }
+
+    public GSSCredential getDefaultProxy() throws Exception {
+        init();
+        MyProxy myproxy = new MyProxy(this.myproxyHostname, this.myproxyPortNumber);
+        log.info("USER=" + this.myproxyUserName + ",PASS=" + this.myproxyPassword + ",TIME=" + this.myproxyLifeTime);
+        return myproxy.get(this.myproxyUserName, this.myproxyPassword, this.myproxyLifeTime);
+    }
+
+    private void init() {
+        if (trustedCertsFile != null) {
+            if (new File(trustedCertsFile).isDirectory()) {
+                TrustedCertificates certificates = TrustedCertificates.load(trustedCertsFile);
+                TrustedCertificates.setDefaultTrustedCertificates(certificates);
+            } else {
+                this.trustedCertificates = CertificateManager.getTrustedCertificate(trustedCertsFile);
+
+                TrustedCertificates certificatesArray = new TrustedCertificates(this.trustedCertificates);
+                TrustedCertificates.setDefaultTrustedCertificates(certificatesArray);
+            }
+        }
+    }
+
+    public GSSCredential renewProxy() throws Exception {
+        init();
+
+        FileOutputStream fout = null;
+        try {
+            String proxyloc = null;
+            MyProxy myproxy = new MyProxy(myproxyHostname, myproxyPortNumber);
+            int lifeHours = myproxyLifeTime * SECS_PER_HOUR;
+            GSSCredential proxy = myproxy.get(myproxyUserName, myproxyPassword, lifeHours);
+
+            GlobusCredential globusCred = null; // **
+            // X509Credential globusCred = null; //**
+            if (proxy instanceof GlobusGSSCredentialImpl) {
+                globusCred = ((GlobusGSSCredentialImpl) proxy).getGlobusCredential();// **
+                // globusCred = ((GlobusGSSCredentialImpl) proxy).getX509Credential();//**
+                log.info("got proxy from myproxy for " + myproxyUserName + " with " + myproxyLifeTime + " lifetime.");
+                String uid = myproxyUserName;
+                if (proxyloc == null) {
+                    log.info("uid: " + uid);
+                    proxyloc = "/tmp/x509up_u" + uid;
+                }
+                File proxyfile = new File(proxyloc);
+                log.info("proxy location: " + proxyfile.getAbsolutePath());
+                if (proxyfile.exists() == false) {
+                    String dirpath = proxyloc.substring(0, proxyloc.lastIndexOf('/'));
+                    File dir = new File(dirpath);
+                    if (dir.exists() == false) {
+                        dir.mkdirs();
+                        log.info("new directory " + dirpath + " is created.");
+                    }
+                    proxyfile.createNewFile();
+                    log.info("new proxy file " + proxyloc + " is created.");
+                }
+                fout = new FileOutputStream(proxyfile);
+                globusCred.save(fout);
+                String osName = System.getProperty("os.name");
+                if (!osName.contains("Windows")) {
+                    Runtime.getRuntime().exec("/bin/chmod 600 " + proxyloc);
+                }
+                log.info("Proxy file renewed to " + proxyloc + " for the user " + myproxyUserName + " with "
+                        + myproxyLifeTime + " lifetime.");
+
+            }
+            return proxy;
+        } catch (Exception e) {
+            throw new Exception(e);
+        } finally {
+            if (fout != null) {
+                fout.close();
+            }
+        }
+    }
+
+    /**
+     * @return the myproxyHostname
+     */
+    public String getMyproxyHostname() {
+        return myproxyHostname;
+    }
+
+    /**
+     * @param myproxyHostname
+     *            the myproxyHostname to set
+     */
+    public void setMyproxyHostname(String myproxyHostname) {
+        this.myproxyHostname = myproxyHostname;
+    }
+
+    /**
+     * @return the myproxyUserName
+     */
+    public String getMyproxyUserName() {
+        return myproxyUserName;
+    }
+
+    /**
+     * @param myproxyUserName
+     *            the myproxyUserName to set
+     */
+    public void setMyproxyUserName(String myproxyUserName) {
+        this.myproxyUserName = myproxyUserName;
+    }
+
+    /**
+     * @return the myproxyPassword
+     */
+    public String getMyproxyPassword() {
+        return myproxyPassword;
+    }
+
+    /**
+     * @param myproxyPassword
+     *            the myproxyPassword to set
+     */
+    public void setMyproxyPassword(String myproxyPassword) {
+        this.myproxyPassword = myproxyPassword;
+    }
+
+    /**
+     * @return the myproxyLifeTime
+     */
+    public int getMyproxyLifeTime() {
+        return myproxyLifeTime;
+    }
+
+    /**
+     * @param myproxyLifeTime
+     *            the myproxyLifeTime to set
+     */
+    public void setMyproxyLifeTime(int myproxyLifeTime) {
+        this.myproxyLifeTime = myproxyLifeTime;
+    }
+
+    /**
+     * @return the myproxyPortNumber
+     */
+    public int getMyproxyPortNumber() {
+        return myproxyPortNumber;
+    }
+
+    /**
+     * @param myproxyPortNumber
+     *            the myproxyPortNumber to set
+     */
+    public void setMyproxyPortNumber(int myproxyPortNumber) {
+        this.myproxyPortNumber = myproxyPortNumber;
+    }
+
+    /**
+     * @return the portalUserName
+     */
+    public String getPortalUserName() {
+        return portalUserName;
+    }
+
+    /**
+     * @param portalUserName
+     *            the portalUserName to set
+     */
+    public void setPortalUserName(String portalUserName) {
+        this.portalUserName = portalUserName;
+    }
+
+    /**
+     * Returns the initialized.
+     * 
+     * @return The initialized
+     */
+    public boolean isInitialized() {
+        return this.initialized;
+    }
+
+    /**
+     * Sets initialized.
+     * 
+     * @param initialized
+     *            The initialized to set.
+     */
+    public void setInitialized(boolean initialized) {
+        this.initialized = initialized;
+    }
+
+    /**
+     * @param hostcertsKeyFile
+     *            the hostcertsKeyFile to set
+     */
+    public void setHostcertsKeyFile(String hostcertsKeyFile) {
+        this.hostcertsKeyFile = hostcertsKeyFile;
+    }
+
+    /**
+     * @return the hostcertsKeyFile
+     */
+    public String getHostcertsKeyFile() {
+        return hostcertsKeyFile;
+    }
+
+    /**
+     * @param trustedCertsFile
+     *            the trustedCertsFile to set
+     */
+    public void setTrustedCertsFile(String trustedCertsFile) {
+        this.trustedCertsFile = trustedCertsFile;
+    }
+
+    /**
+     * @return the trustedCertsFile
+     */
+    public String getTrustedCertsFile() {
+        return trustedCertsFile;
+    }
 
 }

Modified: airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/gram/ExectionContext.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/gram/ExectionContext.java?rev=1407723&r1=1407722&r2=1407723&view=diff
==============================================================================
--- airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/gram/ExectionContext.java (original)
+++ airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/gram/ExectionContext.java Sat Nov 10 03:25:44 2012
@@ -1,3 +1,24 @@
+/*
+ *
+ * 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.jobsubmission.gram;
 
 import java.io.IOException;
@@ -9,431 +30,429 @@ import org.apache.airavata.jobsubmission
 
 public class ExectionContext {
 
-	private String workingDir;
-	private String tmpDir;
-	private String stdOut;
-	private String stderr;
-	private String host;
-	private String executable;
-	private ArrayList<String[]> env;
-	private String inputDataDir;
-	private String outputDataDir;
-	private boolean parameterNamesNeeded = false;
-	private String stdIn;
-	private String stdoutStr;
-	private String stderrStr;
-	private String queue;
-	private Integer maxWallTime;
-	private Integer pcount;
-	private String projectName;
-	private Integer minMemory;
-	private Integer hostCount;
-	private String jobType;
-	private String arguments;
-	private String gridFTPServerSource;
-	private String sourcedataLocation;
-	private String gridFTPServerDest;
-	private String destdataLocation;
-	
-	
-
-	public static final String PROPERTY_FILE = "gramclient.properties";
-
-	public ExectionContext() throws IOException {
-		loadConfigration();
-	}
-
-	private void loadConfigration() throws IOException {
-		ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
-		InputStream propertyStream = classLoader.getResourceAsStream(PROPERTY_FILE);
-
-		Properties properties = new Properties();
-		if (propertyStream != null) {
-			properties.load(propertyStream);
-			String gateway = properties.getProperty(ServiceConstants.GATEWAY);
-			String exec = properties.getProperty(ServiceConstants.EXECUTION);
-			String args = properties.getProperty(ServiceConstants.ARGUMENTS);
-			String queueName = properties.getProperty(ServiceConstants.QUEUE);
-			String pn = properties.getProperty(ServiceConstants.PROJECT_NUMBER);
-			String jt = properties.getProperty(ServiceConstants.JOB_TYPE);
-			String mwt = properties.getProperty(ServiceConstants.MAX_WALL_TIME);
-			String pc = properties.getProperty(ServiceConstants.PCOUNT);
-			String hc = properties.getProperty(ServiceConstants.HOSTCOUNT);
-			String gridFTPServerSource =  properties.getProperty(ServiceConstants.GRIDFTPSERVERSOURCE);
-			String gridFTPSourcePath =  properties.getProperty(ServiceConstants.GRIDFTPSOURCEPATH);
-			String gridFTPServerDest =  properties.getProperty(ServiceConstants.GRIDFTPSERVERDEST);
-			String gridFTPDestPath =  properties.getProperty(ServiceConstants.GRIDFTPDESTPATH);
-			if (gateway != null) {
-				this.host = gateway;
-			}
-			if (exec != null) {
-				this.executable = exec;
-			}
-			if (args != null) {
-				this.arguments = args;
-			}
-			if (queueName != null) {
-				this.queue = queueName;
-			}
-			if (pn != null) {
-				this.projectName = pn;
-			}
-			if (jt != null) {
-				this.jobType = jt;
-			}
-			if (mwt != null) {
-				try {
-					this.maxWallTime = Integer.parseInt(mwt);
-				} catch (NumberFormatException e) {
-					this.maxWallTime = 1;
-				}
-			}
-			if (pc != null) {
-				try {
-					this.pcount = Integer.parseInt(pc);
-				} catch (NumberFormatException e) {
-					this.pcount = 1;
-				}
-			}
-			if (hc != null) {
-				try {
-					this.hostCount = Integer.parseInt(hc);
-				} catch (NumberFormatException e) {
-					this.hostCount = 1;
-				}
-			}
-			if(gridFTPServerSource != null && !gridFTPServerSource.isEmpty()){
-				this.gridFTPServerSource = gridFTPServerSource;
-			}
-			if(gridFTPSourcePath != null && !gridFTPSourcePath.isEmpty()){
-				this.sourcedataLocation = gridFTPSourcePath;
-			}
-			if(gridFTPServerDest != null && !gridFTPServerDest.isEmpty()){
-				this.gridFTPServerDest = gridFTPServerDest;
-			}
-			if(gridFTPDestPath != null && !gridFTPDestPath.isEmpty()){
-				this.destdataLocation = gridFTPDestPath;
-			}
-			
-		}
-	}
-
-	/**
-	 * @return the workingDir
-	 */
-	public String getWorkingDir() {
-		return workingDir;
-	}
-
-	/**
-	 * @param workingDir
-	 *            the workingDir to set
-	 */
-	public void setWorkingDir(String workingDir) {
-		this.workingDir = workingDir;
-	}
-
-	/**
-	 * @return the tmpDir
-	 */
-	public String getTmpDir() {
-		return tmpDir;
-	}
-
-	/**
-	 * @param tmpDir
-	 *            the tmpDir to set
-	 */
-	public void setTmpDir(String tmpDir) {
-		this.tmpDir = tmpDir;
-	}
-
-	/**
-	 * @return the stdOut
-	 */
-	public String getStdOut() {
-		return stdOut;
-	}
-
-	/**
-	 * @param stdOut
-	 *            the stdOut to set
-	 */
-	public void setStdOut(String stdOut) {
-		this.stdOut = stdOut;
-	}
-
-	/**
-	 * @return the stderr
-	 */
-	public String getStderr() {
-		return stderr;
-	}
-
-	/**
-	 * @param stderr
-	 *            the stderr to set
-	 */
-	public void setStderr(String stderr) {
-		this.stderr = stderr;
-	}
-
-	/**
-	 * @return the host
-	 */
-	public String getHost() {
-		return host;
-	}
-
-	/**
-	 * @param host
-	 *            the host to set
-	 */
-	public void setHost(String host) {
-		this.host = host;
-	}
-
-	/**
-	 * @return the executable
-	 */
-	public String getExecutable() {
-		return executable;
-	}
-
-	/**
-	 * @param executable
-	 *            the executable to set
-	 */
-	public void setExecutable(String executable) {
-		this.executable = executable;
-	}
-
-	/**
-	 * @return the env
-	 */
-	public ArrayList<String[]> getEnv() {
-		return env;
-	}
-
-	/**
-	 * @param env
-	 *            the env to set
-	 */
-	public void setEnv(ArrayList<String[]> env) {
-		this.env = env;
-	}
-
-	/**
-	 * @return the inputDataDir
-	 */
-	public String getInputDataDir() {
-		return inputDataDir;
-	}
-
-	/**
-	 * @param inputDataDir
-	 *            the inputDataDir to set
-	 */
-	public void setInputDataDir(String inputDataDir) {
-		this.inputDataDir = inputDataDir;
-	}
-
-	/**
-	 * @return the outputDataDir
-	 */
-	public String getOutputDataDir() {
-		return outputDataDir;
-	}
-
-	/**
-	 * @param outputDataDir
-	 *            the outputDataDir to set
-	 */
-	public void setOutputDataDir(String outputDataDir) {
-		this.outputDataDir = outputDataDir;
-	}
-
-	/**
-	 * @return the parameterNamesNeeded
-	 */
-	public boolean isParameterNamesNeeded() {
-		return parameterNamesNeeded;
-	}
-
-	/**
-	 * @param parameterNamesNeeded
-	 *            the parameterNamesNeeded to set
-	 */
-	public void setParameterNamesNeeded(boolean parameterNamesNeeded) {
-		this.parameterNamesNeeded = parameterNamesNeeded;
-	}
-
-	/**
-	 * @return the stdIn
-	 */
-	public String getStdIn() {
-		return stdIn;
-	}
-
-	/**
-	 * @param stdIn
-	 *            the stdIn to set
-	 */
-	public void setStdIn(String stdIn) {
-		this.stdIn = stdIn;
-	}
-
-	/**
-	 * @return the stdoutStr
-	 */
-	public String getStdoutStr() {
-		return stdoutStr;
-	}
-
-	/**
-	 * @param stdoutStr
-	 *            the stdoutStr to set
-	 */
-	public void setStdoutStr(String stdoutStr) {
-		this.stdoutStr = stdoutStr;
-	}
-
-	/**
-	 * @return the stderrStr
-	 */
-	public String getStderrStr() {
-		return stderrStr;
-	}
-
-	/**
-	 * @param stderrStr
-	 *            the stderrStr to set
-	 */
-	public void setStderrStr(String stderrStr) {
-		this.stderrStr = stderrStr;
-	}
-
-	public void setQueue(String queue) {
-		this.queue = queue;
-	}
-
-	public String getQueue() {
-		return queue;
-	}
-
-	public void setMaxWallTime(Integer maxWallTime) {
-		this.maxWallTime = maxWallTime;
-	}
-
-	public Integer getMaxWallTime() {
-		return maxWallTime;
-	}
-
-	/**
-	 * @return the pcount
-	 */
-	public Integer getPcount() {
-		return pcount;
-	}
-
-	/**
-	 * @param pcount
-	 *            the pcount to set
-	 */
-	public void setPcount(Integer pcount) {
-		this.pcount = pcount;
-	}
-
-	/**
-	 * @return the projectName
-	 */
-	public String getProjectName() {
-		return projectName;
-	}
-
-	/**
-	 * @param projectName
-	 *            the projectName to set
-	 */
-	public void setProjectName(String projectName) {
-		this.projectName = projectName;
-	}
-
-	/**
-	 * @return the minMemory
-	 */
-	public Integer getMinMemory() {
-		return minMemory;
-	}
-
-	/**
-	 * @param minMemory
-	 *            the minMemory to set
-	 */
-	public void setMinMemory(Integer minMemory) {
-		this.minMemory = minMemory;
-	}
-
-	/**
-	 * @return the hostCount
-	 */
-	public Integer getHostCount() {
-		return hostCount;
-	}
-
-	/**
-	 * @param hostCount
-	 *            the hostCount to set
-	 */
-	public void setHostCount(Integer hostCount) {
-		this.hostCount = hostCount;
-	}
-
-	public void setJobType(String jobType) {
-		this.jobType = jobType;
-	}
-
-	public String getJobType() {
-		return jobType;
-	}
-
-	public void setArguments(String arguments) {
-		this.arguments = arguments;
-	}
-
-	public String getArguments() {
-		return arguments;
-	}
-
-	public String getGridFTPServerSource() {
-		return gridFTPServerSource;
-	}
-
-	public void setGridFTPServerSource(String gridFTPServerSource) {
-		this.gridFTPServerSource = gridFTPServerSource;
-	}
-
-	public String getSourcedataLocation() {
-		return sourcedataLocation;
-	}
-
-	public void setSourcedataLocation(String sourcedataLocation) {
-		this.sourcedataLocation = sourcedataLocation;
-	}
-
-	public String getGridFTPServerDest() {
-		return gridFTPServerDest;
-	}
-
-	public void setGridFTPServerDest(String gridFTPServerDest) {
-		this.gridFTPServerDest = gridFTPServerDest;
-	}
-
-	public String getDestdataLocation() {
-		return destdataLocation;
-	}
-
-	public void setDestdataLocation(String destdataLocation) {
-		this.destdataLocation = destdataLocation;
-	}
+    private String workingDir;
+    private String tmpDir;
+    private String stdOut;
+    private String stderr;
+    private String host;
+    private String executable;
+    private ArrayList<String[]> env;
+    private String inputDataDir;
+    private String outputDataDir;
+    private boolean parameterNamesNeeded = false;
+    private String stdIn;
+    private String stdoutStr;
+    private String stderrStr;
+    private String queue;
+    private Integer maxWallTime;
+    private Integer pcount;
+    private String projectName;
+    private Integer minMemory;
+    private Integer hostCount;
+    private String jobType;
+    private String arguments;
+    private String gridFTPServerSource;
+    private String sourcedataLocation;
+    private String gridFTPServerDest;
+    private String destdataLocation;
+
+    public static final String PROPERTY_FILE = "gramclient.properties";
+
+    public ExectionContext() throws IOException {
+        loadConfigration();
+    }
+
+    private void loadConfigration() throws IOException {
+        ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+        InputStream propertyStream = classLoader.getResourceAsStream(PROPERTY_FILE);
+
+        Properties properties = new Properties();
+        if (propertyStream != null) {
+            properties.load(propertyStream);
+            String gateway = properties.getProperty(ServiceConstants.GATEWAY);
+            String exec = properties.getProperty(ServiceConstants.EXECUTION);
+            String args = properties.getProperty(ServiceConstants.ARGUMENTS);
+            String queueName = properties.getProperty(ServiceConstants.QUEUE);
+            String pn = properties.getProperty(ServiceConstants.PROJECT_NUMBER);
+            String jt = properties.getProperty(ServiceConstants.JOB_TYPE);
+            String mwt = properties.getProperty(ServiceConstants.MAX_WALL_TIME);
+            String pc = properties.getProperty(ServiceConstants.PCOUNT);
+            String hc = properties.getProperty(ServiceConstants.HOSTCOUNT);
+            String gridFTPServerSource = properties.getProperty(ServiceConstants.GRIDFTPSERVERSOURCE);
+            String gridFTPSourcePath = properties.getProperty(ServiceConstants.GRIDFTPSOURCEPATH);
+            String gridFTPServerDest = properties.getProperty(ServiceConstants.GRIDFTPSERVERDEST);
+            String gridFTPDestPath = properties.getProperty(ServiceConstants.GRIDFTPDESTPATH);
+            if (gateway != null) {
+                this.host = gateway;
+            }
+            if (exec != null) {
+                this.executable = exec;
+            }
+            if (args != null) {
+                this.arguments = args;
+            }
+            if (queueName != null) {
+                this.queue = queueName;
+            }
+            if (pn != null) {
+                this.projectName = pn;
+            }
+            if (jt != null) {
+                this.jobType = jt;
+            }
+            if (mwt != null) {
+                try {
+                    this.maxWallTime = Integer.parseInt(mwt);
+                } catch (NumberFormatException e) {
+                    this.maxWallTime = 1;
+                }
+            }
+            if (pc != null) {
+                try {
+                    this.pcount = Integer.parseInt(pc);
+                } catch (NumberFormatException e) {
+                    this.pcount = 1;
+                }
+            }
+            if (hc != null) {
+                try {
+                    this.hostCount = Integer.parseInt(hc);
+                } catch (NumberFormatException e) {
+                    this.hostCount = 1;
+                }
+            }
+            if (gridFTPServerSource != null && !gridFTPServerSource.isEmpty()) {
+                this.gridFTPServerSource = gridFTPServerSource;
+            }
+            if (gridFTPSourcePath != null && !gridFTPSourcePath.isEmpty()) {
+                this.sourcedataLocation = gridFTPSourcePath;
+            }
+            if (gridFTPServerDest != null && !gridFTPServerDest.isEmpty()) {
+                this.gridFTPServerDest = gridFTPServerDest;
+            }
+            if (gridFTPDestPath != null && !gridFTPDestPath.isEmpty()) {
+                this.destdataLocation = gridFTPDestPath;
+            }
+
+        }
+    }
+
+    /**
+     * @return the workingDir
+     */
+    public String getWorkingDir() {
+        return workingDir;
+    }
+
+    /**
+     * @param workingDir
+     *            the workingDir to set
+     */
+    public void setWorkingDir(String workingDir) {
+        this.workingDir = workingDir;
+    }
+
+    /**
+     * @return the tmpDir
+     */
+    public String getTmpDir() {
+        return tmpDir;
+    }
+
+    /**
+     * @param tmpDir
+     *            the tmpDir to set
+     */
+    public void setTmpDir(String tmpDir) {
+        this.tmpDir = tmpDir;
+    }
+
+    /**
+     * @return the stdOut
+     */
+    public String getStdOut() {
+        return stdOut;
+    }
+
+    /**
+     * @param stdOut
+     *            the stdOut to set
+     */
+    public void setStdOut(String stdOut) {
+        this.stdOut = stdOut;
+    }
+
+    /**
+     * @return the stderr
+     */
+    public String getStderr() {
+        return stderr;
+    }
+
+    /**
+     * @param stderr
+     *            the stderr to set
+     */
+    public void setStderr(String stderr) {
+        this.stderr = stderr;
+    }
+
+    /**
+     * @return the host
+     */
+    public String getHost() {
+        return host;
+    }
+
+    /**
+     * @param host
+     *            the host to set
+     */
+    public void setHost(String host) {
+        this.host = host;
+    }
+
+    /**
+     * @return the executable
+     */
+    public String getExecutable() {
+        return executable;
+    }
+
+    /**
+     * @param executable
+     *            the executable to set
+     */
+    public void setExecutable(String executable) {
+        this.executable = executable;
+    }
+
+    /**
+     * @return the env
+     */
+    public ArrayList<String[]> getEnv() {
+        return env;
+    }
+
+    /**
+     * @param env
+     *            the env to set
+     */
+    public void setEnv(ArrayList<String[]> env) {
+        this.env = env;
+    }
+
+    /**
+     * @return the inputDataDir
+     */
+    public String getInputDataDir() {
+        return inputDataDir;
+    }
+
+    /**
+     * @param inputDataDir
+     *            the inputDataDir to set
+     */
+    public void setInputDataDir(String inputDataDir) {
+        this.inputDataDir = inputDataDir;
+    }
+
+    /**
+     * @return the outputDataDir
+     */
+    public String getOutputDataDir() {
+        return outputDataDir;
+    }
+
+    /**
+     * @param outputDataDir
+     *            the outputDataDir to set
+     */
+    public void setOutputDataDir(String outputDataDir) {
+        this.outputDataDir = outputDataDir;
+    }
+
+    /**
+     * @return the parameterNamesNeeded
+     */
+    public boolean isParameterNamesNeeded() {
+        return parameterNamesNeeded;
+    }
+
+    /**
+     * @param parameterNamesNeeded
+     *            the parameterNamesNeeded to set
+     */
+    public void setParameterNamesNeeded(boolean parameterNamesNeeded) {
+        this.parameterNamesNeeded = parameterNamesNeeded;
+    }
+
+    /**
+     * @return the stdIn
+     */
+    public String getStdIn() {
+        return stdIn;
+    }
+
+    /**
+     * @param stdIn
+     *            the stdIn to set
+     */
+    public void setStdIn(String stdIn) {
+        this.stdIn = stdIn;
+    }
+
+    /**
+     * @return the stdoutStr
+     */
+    public String getStdoutStr() {
+        return stdoutStr;
+    }
+
+    /**
+     * @param stdoutStr
+     *            the stdoutStr to set
+     */
+    public void setStdoutStr(String stdoutStr) {
+        this.stdoutStr = stdoutStr;
+    }
+
+    /**
+     * @return the stderrStr
+     */
+    public String getStderrStr() {
+        return stderrStr;
+    }
+
+    /**
+     * @param stderrStr
+     *            the stderrStr to set
+     */
+    public void setStderrStr(String stderrStr) {
+        this.stderrStr = stderrStr;
+    }
+
+    public void setQueue(String queue) {
+        this.queue = queue;
+    }
+
+    public String getQueue() {
+        return queue;
+    }
+
+    public void setMaxWallTime(Integer maxWallTime) {
+        this.maxWallTime = maxWallTime;
+    }
+
+    public Integer getMaxWallTime() {
+        return maxWallTime;
+    }
+
+    /**
+     * @return the pcount
+     */
+    public Integer getPcount() {
+        return pcount;
+    }
+
+    /**
+     * @param pcount
+     *            the pcount to set
+     */
+    public void setPcount(Integer pcount) {
+        this.pcount = pcount;
+    }
+
+    /**
+     * @return the projectName
+     */
+    public String getProjectName() {
+        return projectName;
+    }
+
+    /**
+     * @param projectName
+     *            the projectName to set
+     */
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
+    /**
+     * @return the minMemory
+     */
+    public Integer getMinMemory() {
+        return minMemory;
+    }
+
+    /**
+     * @param minMemory
+     *            the minMemory to set
+     */
+    public void setMinMemory(Integer minMemory) {
+        this.minMemory = minMemory;
+    }
+
+    /**
+     * @return the hostCount
+     */
+    public Integer getHostCount() {
+        return hostCount;
+    }
+
+    /**
+     * @param hostCount
+     *            the hostCount to set
+     */
+    public void setHostCount(Integer hostCount) {
+        this.hostCount = hostCount;
+    }
+
+    public void setJobType(String jobType) {
+        this.jobType = jobType;
+    }
+
+    public String getJobType() {
+        return jobType;
+    }
+
+    public void setArguments(String arguments) {
+        this.arguments = arguments;
+    }
+
+    public String getArguments() {
+        return arguments;
+    }
+
+    public String getGridFTPServerSource() {
+        return gridFTPServerSource;
+    }
+
+    public void setGridFTPServerSource(String gridFTPServerSource) {
+        this.gridFTPServerSource = gridFTPServerSource;
+    }
+
+    public String getSourcedataLocation() {
+        return sourcedataLocation;
+    }
+
+    public void setSourcedataLocation(String sourcedataLocation) {
+        this.sourcedataLocation = sourcedataLocation;
+    }
+
+    public String getGridFTPServerDest() {
+        return gridFTPServerDest;
+    }
+
+    public void setGridFTPServerDest(String gridFTPServerDest) {
+        this.gridFTPServerDest = gridFTPServerDest;
+    }
+
+    public String getDestdataLocation() {
+        return destdataLocation;
+    }
+
+    public void setDestdataLocation(String destdataLocation) {
+        this.destdataLocation = destdataLocation;
+    }
 }

Modified: airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/gram/FileTransfer.java
URL: http://svn.apache.org/viewvc/airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/gram/FileTransfer.java?rev=1407723&r1=1407722&r2=1407723&view=diff
==============================================================================
--- airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/gram/FileTransfer.java (original)
+++ airavata/sandbox/grid-tools/gram-client/src/main/java/org/apache/airavata/jobsubmission/gram/FileTransfer.java Sat Nov 10 03:25:44 2012
@@ -1,3 +1,24 @@
+/*
+ *
+ * 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.jobsubmission.gram;
 
 import java.net.URI;
@@ -11,52 +32,52 @@ import org.ietf.jgss.GSSCredential;
 
 public class FileTransfer {
 
-	public void makeDir(GSSCredential gssCred, URI destURI) throws Exception {
-		GridFtp ftp = new GridFtp();
-		ftp.makeDir(destURI, gssCred);
-	}
-
-	public void transferData(GSSCredential gssCred, URI srcURI, URI destURI) throws Exception {
-		GridFtp ftp = new GridFtp();
-		ftp.transfer(srcURI, destURI, gssCred, true);
-	}
-
-	public void transferData(GSSCredential gssCred, String sourceERP, String remoteSrcFile, String targetERP,
-			String remoteDestFile) throws Exception {
-		GridFtp ftp = new GridFtp();
-		URI srcURI = GridFtp.createGsiftpURI(sourceERP, remoteSrcFile);
-		URI destURI = GridFtp.createGsiftpURI(targetERP, remoteDestFile);
-		ftp.transfer(srcURI, destURI, gssCred, true);
-	}
-
-	public static void main(String[] args) {
-		try {
-			BasicConfigurator.configure();
-			Logger logger = Logger.getLogger("GridFTPClient");
-			Level lev = Level.toLevel("DEBUG");
-			logger.setLevel(lev);
-			ApplicationContext context = new ApplicationContext();
-			context.login();
-			ExectionContext contextExectionContext = new ExectionContext();
-			FileTransfer fileTransfer = new FileTransfer();
-
-			String sourceERP = contextExectionContext.getGridFTPServerSource();
-			String remoteSrcFile = contextExectionContext.getSourcedataLocation();
-			String targeterp = contextExectionContext.getGridFTPServerDest();
-			String remoteDestFile = contextExectionContext.getDestdataLocation();
-			URI srcURI = GridFtp.createGsiftpURI(sourceERP, remoteSrcFile);
-			URI destURI = GridFtp.createGsiftpURI(targeterp, remoteDestFile);
-			URI dirLocation = GridFtp.createGsiftpURI(targeterp,
-					remoteDestFile.substring(0, remoteDestFile.lastIndexOf("/")));
-			GSSCredential gssCredential = context.getGssCredential();
-			System.out.println(dirLocation);
-			fileTransfer.makeDir(gssCredential, dirLocation);
-			fileTransfer.transferData(gssCredential, srcURI, destURI);
-
-		} catch (Exception e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
+    public void makeDir(GSSCredential gssCred, URI destURI) throws Exception {
+        GridFtp ftp = new GridFtp();
+        ftp.makeDir(destURI, gssCred);
+    }
+
+    public void transferData(GSSCredential gssCred, URI srcURI, URI destURI) throws Exception {
+        GridFtp ftp = new GridFtp();
+        ftp.transfer(srcURI, destURI, gssCred, true);
+    }
+
+    public void transferData(GSSCredential gssCred, String sourceERP, String remoteSrcFile, String targetERP,
+            String remoteDestFile) throws Exception {
+        GridFtp ftp = new GridFtp();
+        URI srcURI = GridFtp.createGsiftpURI(sourceERP, remoteSrcFile);
+        URI destURI = GridFtp.createGsiftpURI(targetERP, remoteDestFile);
+        ftp.transfer(srcURI, destURI, gssCred, true);
+    }
+
+    public static void main(String[] args) {
+        try {
+            BasicConfigurator.configure();
+            Logger logger = Logger.getLogger("GridFTPClient");
+            Level lev = Level.toLevel("DEBUG");
+            logger.setLevel(lev);
+            ApplicationContext context = new ApplicationContext();
+            context.login();
+            ExectionContext contextExectionContext = new ExectionContext();
+            FileTransfer fileTransfer = new FileTransfer();
+
+            String sourceERP = contextExectionContext.getGridFTPServerSource();
+            String remoteSrcFile = contextExectionContext.getSourcedataLocation();
+            String targeterp = contextExectionContext.getGridFTPServerDest();
+            String remoteDestFile = contextExectionContext.getDestdataLocation();
+            URI srcURI = GridFtp.createGsiftpURI(sourceERP, remoteSrcFile);
+            URI destURI = GridFtp.createGsiftpURI(targeterp, remoteDestFile);
+            URI dirLocation = GridFtp.createGsiftpURI(targeterp,
+                    remoteDestFile.substring(0, remoteDestFile.lastIndexOf("/")));
+            GSSCredential gssCredential = context.getGssCredential();
+            System.out.println(dirLocation);
+            fileTransfer.makeDir(gssCredential, dirLocation);
+            fileTransfer.transferData(gssCredential, srcURI, destURI);
+
+        } catch (Exception e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
 
-	}
+    }
 }
\ No newline at end of file