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 2011/06/24 13:01:18 UTC

svn commit: r1139241 [1/3] - in /incubator/airavata/core/trunk/gfac: ./ .settings/ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/airavata/ src/main/java/org/apache/airavata/core/ src/main/java/org/a...

Author: smarru
Date: Fri Jun 24 11:01:15 2011
New Revision: 1139241

URL: http://svn.apache.org/viewvc?rev=1139241&view=rev
Log:
Airvata core application wrapper pojo component

Added:
    incubator/airavata/core/trunk/gfac/
    incubator/airavata/core/trunk/gfac/.classpath
    incubator/airavata/core/trunk/gfac/.project
    incubator/airavata/core/trunk/gfac/.settings/
    incubator/airavata/core/trunk/gfac/.settings/org.eclipse.jdt.core.prefs
    incubator/airavata/core/trunk/gfac/.settings/org.maven.ide.eclipse.prefs
    incubator/airavata/core/trunk/gfac/pom.xml
    incubator/airavata/core/trunk/gfac/src/
    incubator/airavata/core/trunk/gfac/src/main/
    incubator/airavata/core/trunk/gfac/src/main/java/
    incubator/airavata/core/trunk/gfac/src/main/java/org/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/ExecutionContext.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/InvocationContext.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/MessageContext.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/SecurityContext.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/ServiceContext.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/AmazonSecurityContext.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/ExecutionContextImpl.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/GSISecurityContext.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/ParameterContextImpl.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/utils/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/utils/MyProxyManager.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/FileTransferFault.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/GfacException.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/JobSubmissionFault.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/Chain.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/DataServiceChain.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/ExitableChain.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/PostExecuteChain.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/PreExecuteChain.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/data/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/data/RegistryDataService.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/external/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/external/GridFtp.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/factory/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/factory/AbstractServiceFactory.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/factory/PropertyServiceFactory.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/model/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/model/ExecutionModel.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/notification/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/notification/DummyNotification.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/notification/NotificationService.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/provider/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/provider/AbstractProvider.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/provider/EC2Provider.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/provider/GramProvider.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/provider/LocalProvider.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/provider/Provider.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/provider/SSHProvider.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/provider/utils/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/provider/utils/GramRSLGenerator.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/provider/utils/JobSubmissionListener.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/registry/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/registry/RegistryService.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/registry/impl/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/registry/impl/XregistryServiceWrapper.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/scheduler/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/scheduler/Scheduler.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/scheduler/impl/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/scheduler/impl/SchedulerImpl.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/services/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/services/GenericService.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/services/impl/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/services/impl/AbstractSimpleService.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImpl.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/type/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/type/BooleanParameter.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/type/DoubleParameter.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/type/FloatParameter.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/type/IntegerParameter.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/type/Parameter.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/type/StringParameter.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/type/URIParameter.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/utils/
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/utils/ContactInfo.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/utils/ErrorCodes.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/utils/GFacConstants.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/utils/GFacOptions.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/utils/GfacUtils.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/utils/GlobalConfiguration.java
    incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/utils/OutputUtils.java
    incubator/airavata/core/trunk/gfac/src/main/resources/
    incubator/airavata/core/trunk/gfac/src/main/resources/service.properties
    incubator/airavata/core/trunk/gfac/src/test/
    incubator/airavata/core/trunk/gfac/src/test/java/
    incubator/airavata/core/trunk/gfac/src/test/java/org/
    incubator/airavata/core/trunk/gfac/src/test/java/org/apache/
    incubator/airavata/core/trunk/gfac/src/test/java/org/apache/airavata/
    incubator/airavata/core/trunk/gfac/src/test/java/org/apache/airavata/core/
    incubator/airavata/core/trunk/gfac/src/test/java/org/apache/airavata/core/gfac/
    incubator/airavata/core/trunk/gfac/src/test/java/org/apache/airavata/core/gfac/factory/
    incubator/airavata/core/trunk/gfac/src/test/java/org/apache/airavata/core/gfac/factory/OGCEGenericFactoryTest.java
    incubator/airavata/core/trunk/gfac/src/test/java/org/apache/airavata/core/gfac/services/
    incubator/airavata/core/trunk/gfac/src/test/java/org/apache/airavata/core/gfac/services/impl/
    incubator/airavata/core/trunk/gfac/src/test/java/org/apache/airavata/core/gfac/services/impl/PropertiesBasedServiceImplTest.java
    incubator/airavata/core/trunk/gfac/src/test/java/org/apache/airavata/core/gfac/type/
    incubator/airavata/core/trunk/gfac/src/test/java/org/apache/airavata/core/gfac/type/StringParameterTest.java
    incubator/airavata/core/trunk/gfac/src/test/resources/
    incubator/airavata/core/trunk/gfac/src/test/resources/service.properties

Added: incubator/airavata/core/trunk/gfac/.classpath
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/.classpath?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/.classpath (added)
+++ incubator/airavata/core/trunk/gfac/.classpath Fri Jun 24 11:01:15 2011
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Added: incubator/airavata/core/trunk/gfac/.project
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/.project?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/.project (added)
+++ incubator/airavata/core/trunk/gfac/.project Fri Jun 24 11:01:15 2011
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>gfac-pojo</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
+	</natures>
+</projectDescription>

Added: incubator/airavata/core/trunk/gfac/.settings/org.eclipse.jdt.core.prefs
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/.settings/org.eclipse.jdt.core.prefs?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/.settings/org.eclipse.jdt.core.prefs (added)
+++ incubator/airavata/core/trunk/gfac/.settings/org.eclipse.jdt.core.prefs Fri Jun 24 11:01:15 2011
@@ -0,0 +1,6 @@
+#Fri Jun 24 05:47:57 EDT 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.5

Added: incubator/airavata/core/trunk/gfac/.settings/org.maven.ide.eclipse.prefs
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/.settings/org.maven.ide.eclipse.prefs?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/.settings/org.maven.ide.eclipse.prefs (added)
+++ incubator/airavata/core/trunk/gfac/.settings/org.maven.ide.eclipse.prefs Fri Jun 24 11:01:15 2011
@@ -0,0 +1,8 @@
+#Fri Jun 24 05:47:47 EDT 2011
+activeProfiles=
+eclipse.preferences.version=1
+fullBuildGoals=process-test-resources
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+skipCompilerPlugin=true
+version=1

Added: incubator/airavata/core/trunk/gfac/pom.xml
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/pom.xml?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/pom.xml (added)
+++ incubator/airavata/core/trunk/gfac/pom.xml Fri Jun 24 11:01:15 2011
@@ -0,0 +1,150 @@
+<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">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>GFac</groupId>
+	<version>0.0.1-SNAPSHOT</version>
+	<artifactId>GFac-Core</artifactId>
+	<name>gfac-core</name>
+	<description>The core GFAC functionality independent from any webservice implementation. </description>
+	<properties>
+		<org.slf4j.version>1.6.1</org.slf4j.version>
+		<log4j.version>1.2.16</log4j.version>
+	</properties>
+	<repositories>
+		<repository>
+			<name>ogce.m2.all</name>
+			<id>ogce.m2.all</id>
+			<url>http://community.ucs.indiana.edu:9090/archiva/repository/ogce.m2.all
+				</url>
+		</repository>
+	</repositories>
+	<dependencies>
+		<dependency>
+			<groupId>cog-jglobus</groupId>
+			<artifactId>cog-jglobus</artifactId>
+			<version>1.8.0_1</version>
+		</dependency>
+		<dependency>
+			<groupId>cog-4_1_6_rc2</groupId>
+			<artifactId>puretls</artifactId>
+			<type>jar</type>
+			<version>cog-4_1_6</version>
+		</dependency>
+		<dependency>
+			<groupId>cog-4_1_6_rc2</groupId>
+			<artifactId>cryptix32</artifactId>
+			<version>cog-4_1_6</version>
+		</dependency>
+		<dependency>
+			<groupId>cog-4_1_6_rc2</groupId>
+			<artifactId>cryptix-asn1</artifactId>
+			<version>cog-4_1_6</version>
+		</dependency>
+		<dependency>
+			<groupId>bouncycastle</groupId>
+			<artifactId>bcprov-jdk15</artifactId>
+			<version>143</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-httpclient</groupId>
+			<artifactId>commons-httpclient</artifactId>
+			<version>3.1</version>
+		</dependency>
+		<!-- Logging -->
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+			<version>${org.slf4j.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>jcl-over-slf4j</artifactId>
+			<version>${org.slf4j.version}</version>
+			<scope>runtime</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-log4j12</artifactId>
+			<version>${org.slf4j.version}</version>
+			<scope>runtime</scope>
+		</dependency>
+		<dependency>
+			<groupId>log4j</groupId>
+			<artifactId>log4j</artifactId>
+			<version>${log4j.version}</version>
+			<scope>runtime</scope>
+		</dependency>
+		<dependency>
+			<groupId>commons-logging</groupId>
+			<artifactId>commons-logging</artifactId>
+			<version>1.0.4</version>
+		</dependency>
+		<!-- GFAC schemas -->
+		<dependency>
+			<groupId>gfac</groupId>
+			<artifactId>gfac-schema-utils</artifactId>
+			<version>0.4.3</version>
+		</dependency>
+		<dependency>
+			<groupId>xpp3</groupId>
+			<artifactId>xpp3</artifactId>
+			<version>1.1.4c</version>
+		</dependency>
+		<dependency>
+			<groupId>workflow-tracking</groupId>
+			<artifactId>workflow_tracking</artifactId>
+			<version>2.7.1</version>
+			<type>jar</type>
+		</dependency>
+
+		<dependency>
+			<groupId>workflow-tracking</groupId>
+			<artifactId>workflow_tracking_types</artifactId>
+			<version>2.6</version>
+			<type>jar</type>
+		</dependency>
+		<dependency>
+			<groupId>xmlbeans</groupId>
+			<artifactId>xbean</artifactId>
+			<version>2.3.0</version>
+		</dependency>
+		<dependency>
+			<groupId>workflow-context-header</groupId>
+			<artifactId>workflow-context-header</artifactId>
+			<version>1.0</version>
+		</dependency>
+		<!-- Xregistry jars -->
+		<dependency>
+			<groupId>xregistry</groupId>
+			<artifactId>xregistry-client</artifactId>
+			<version>1.2.2</version>
+		</dependency>
+		<dependency>
+			<groupId>xregistry</groupId>
+			<artifactId>xregistry_generated</artifactId>
+			<version>0.8.3</version>
+			<type>jar</type>
+		</dependency>
+
+		<!-- SSH -->
+		<dependency>
+			<groupId>net.schmizz</groupId>
+			<artifactId>sshj</artifactId>
+			<version>0.3.1</version>
+		</dependency>
+
+		<!-- Amazon -->
+		<dependency>
+			<groupId>com.amazonaws</groupId>
+			<artifactId>aws-java-sdk</artifactId>
+			<version>1.1.8</version>
+		</dependency>
+
+		<!-- Test -->
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.7</version>
+		</dependency>
+	</dependencies>
+</project>
\ No newline at end of file

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/ExecutionContext.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/ExecutionContext.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/ExecutionContext.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/ExecutionContext.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,33 @@
+package org.apache.airavata.core.gfac.context;
+
+import org.apache.airavata.core.gfac.model.ExecutionModel;
+import org.apache.airavata.core.gfac.notification.NotificationService;
+import org.apache.airavata.core.gfac.registry.RegistryService;
+import org.ogce.namespaces.x2010.x08.x30.workflowContextHeader.WorkflowContextHeaderDocument.WorkflowContextHeader;
+
+public interface ExecutionContext {
+
+	ExecutionModel getExecutionModel();
+
+	void setExectionModel(ExecutionModel model);
+
+	WorkflowContextHeader getWorkflowHeader();
+
+	void setWorkflowHeader(WorkflowContextHeader header);
+
+	NotificationService getNotificationService();
+
+	void setNotificationService(NotificationService service);
+
+	SecurityContext getSecurityContext();
+
+	void setSecurityContext(SecurityContext context);
+
+	ServiceContext getServiceContext();
+
+	void setServiceContext(ServiceContext context);
+	
+	RegistryService getRegistryService();
+	
+	void setRegistryService(RegistryService registryService);
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/InvocationContext.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/InvocationContext.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/InvocationContext.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/InvocationContext.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,43 @@
+package org.apache.airavata.core.gfac.context;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Main context that is used throughout the service
+ * 
+ * @author Patanachai Tangchaisin
+ *
+ */
+public class InvocationContext {
+
+	private String serviceName;
+	private ExecutionContext executionContext;
+	private Map<String, MessageContext> messageContextMap = new HashMap<String, MessageContext>();
+	private Map<String, SecurityContext> securityContextMap = new HashMap<String, SecurityContext>();;	
+	
+	public String getServiceName() {
+		return serviceName;
+	}
+	public void setServiceName(String serviceName) {
+		this.serviceName = serviceName;
+	}
+	public ExecutionContext getExecutionContext() {
+		return executionContext;
+	}
+	public void setExecutionContext(ExecutionContext executionContext) {
+		this.executionContext = executionContext;
+	}
+	public MessageContext getMessageContext(String name) {
+		return this.messageContextMap.get(name);
+	}
+	public void addMessageContext(String name, MessageContext messageContext) {
+		this.messageContextMap.put(name, messageContext);
+	}
+	public SecurityContext getSecurityContext(String name) {
+		return this.securityContextMap.get(name);
+	}
+	public void addSecurityContext(String name, SecurityContext securityContext) {
+		this.securityContextMap.put(name, securityContext);
+	}
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/MessageContext.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/MessageContext.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/MessageContext.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/MessageContext.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,18 @@
+package org.apache.airavata.core.gfac.context;
+
+import java.util.Iterator;
+
+public interface MessageContext<T> {
+	
+	public Iterator<String> getParameterNames();
+
+	public T getParameterValue(String name);
+
+	public String getParameterType(String name);
+
+	public String getStringParameterValue(String name);
+	
+	public void addParameter(String name, String type, T value);
+	
+	public void setValue(String name, T value);
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/SecurityContext.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/SecurityContext.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/SecurityContext.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/SecurityContext.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,5 @@
+package org.apache.airavata.core.gfac.context;
+
+
+public interface SecurityContext {
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/ServiceContext.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/ServiceContext.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/ServiceContext.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/ServiceContext.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,12 @@
+package org.apache.airavata.core.gfac.context;
+
+import org.apache.airavata.core.gfac.utils.GlobalConfiguration;
+import org.ogce.schemas.gfac.documents.ServiceMapType;
+
+public interface ServiceContext {
+
+	ServiceMapType getService();
+
+	GlobalConfiguration getGlobalConfiguration();
+
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/AmazonSecurityContext.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/AmazonSecurityContext.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/AmazonSecurityContext.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/AmazonSecurityContext.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,26 @@
+package org.apache.airavata.core.gfac.context.impl;
+
+import org.apache.airavata.core.gfac.context.SecurityContext;
+
+public class AmazonSecurityContext implements SecurityContext {
+
+	private String accessKey;
+	private String secretKey;
+	
+	public String getAccessKey() {
+		return accessKey;
+	}
+
+	public void setAccessKey(String accessKey) {
+		this.accessKey = accessKey;
+	}
+
+	public String getSecretKey() {
+		return secretKey;
+	}
+
+	public void setSecretKey(String secretKey) {
+		this.secretKey = secretKey;
+	}	
+
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/ExecutionContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/ExecutionContextImpl.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/ExecutionContextImpl.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/ExecutionContextImpl.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,71 @@
+package org.apache.airavata.core.gfac.context.impl;
+
+import org.apache.airavata.core.gfac.context.ExecutionContext;
+import org.apache.airavata.core.gfac.context.SecurityContext;
+import org.apache.airavata.core.gfac.context.ServiceContext;
+import org.apache.airavata.core.gfac.model.ExecutionModel;
+import org.apache.airavata.core.gfac.notification.NotificationService;
+import org.apache.airavata.core.gfac.registry.RegistryService;
+import org.ogce.namespaces.x2010.x08.x30.workflowContextHeader.WorkflowContextHeaderDocument.WorkflowContextHeader;
+
+public class ExecutionContextImpl implements ExecutionContext {
+
+	private ExecutionModel executionModel;
+	private WorkflowContextHeader workflowContextHeader;
+	private NotificationService notificationService;
+	private RegistryService registryService;
+	private SecurityContext securityContext;
+
+	public ExecutionModel getExecutionModel() {
+		return executionModel;
+	}
+
+	public void setExectionModel(ExecutionModel model) {
+		this.executionModel = model;
+	}
+
+	public WorkflowContextHeader getWorkflowHeader() {
+		return workflowContextHeader;
+	}
+
+	public void setWorkflowHeader(WorkflowContextHeader header) {
+		this.workflowContextHeader = header;
+	}
+
+	public NotificationService getNotificationService() {
+		return this.notificationService;
+	}
+
+	public void setNotificationService(NotificationService service) {
+		this.notificationService = service;
+
+	}
+
+	public SecurityContext getSecurityContext() {
+		return this.securityContext;
+	}
+
+	public void setSecurityContext(SecurityContext context) {
+		this.securityContext = context;
+
+	}
+
+	public ServiceContext getServiceContext() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public void setServiceContext(ServiceContext context) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public RegistryService getRegistryService() {
+		return this.registryService;
+	}
+
+	public void setRegistryService(RegistryService registryService) {
+		this.registryService = registryService;
+	}
+
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/GSISecurityContext.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/GSISecurityContext.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/GSISecurityContext.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/GSISecurityContext.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,110 @@
+package org.apache.airavata.core.gfac.context.impl;
+
+import org.apache.airavata.core.gfac.context.SecurityContext;
+import org.apache.airavata.core.gfac.context.impl.utils.MyProxyManager;
+import org.apache.airavata.core.gfac.exception.GfacException;
+import org.apache.airavata.core.gfac.exception.GfacException.FaultCode;
+import org.apache.airavata.core.gfac.utils.GlobalConfiguration;
+import org.globus.tools.MyProxy;
+import org.ietf.jgss.GSSCredential;
+import org.ietf.jgss.GSSException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class GSISecurityContext implements SecurityContext {
+
+	protected final Logger log = LoggerFactory.getLogger(this.getClass());
+
+	private MyProxyManager proxyRenewer;
+
+	private String myproxyUserName;
+
+	private String myproxyPasswd;
+
+	private String myproxyServer;
+
+	private int myproxyLifetime;
+
+	private String trustedCertLoc;
+
+	private GSSCredential gssCredentails;
+	private GlobalConfiguration globalConfiguration;
+
+	public GSISecurityContext() {
+
+	}
+
+	public GSISecurityContext(GlobalConfiguration globalConfiguration) throws GfacException {
+		try {
+			this.globalConfiguration = globalConfiguration;
+			myproxyUserName = globalConfiguration.getProperty("myproxyUserName");
+			myproxyPasswd = globalConfiguration.getProperty("myproxyPasswd");
+			myproxyServer = globalConfiguration.getProperty("myproxyServer");
+			String lifetime = globalConfiguration.getProperty("myproxyLifetime");
+			trustedCertLoc = globalConfiguration.getTrustedCertsFile();
+			// Load the Credential configurations
+			if (myproxyUserName != null && myproxyPasswd != null && myproxyServer != null && lifetime != null) {
+				this.myproxyLifetime = Integer.parseInt(lifetime);
+				this.proxyRenewer = new MyProxyManager(myproxyUserName, myproxyPasswd, MyProxy.MYPROXY_SERVER_PORT, myproxyLifetime, myproxyServer, trustedCertLoc);
+				log.info("loaded credentails from Proxy server");
+			} else {
+				log.info(myproxyUserName + " " + (myproxyPasswd != null) + " " + myproxyServer + " " + myproxyLifetime);
+				this.proxyRenewer = null;
+			}
+		} catch (NumberFormatException e) {
+			throw new GfacException(e, FaultCode.InvaliedLocalArgumnet);
+		} catch (Exception e) {
+			throw new GfacException(e, FaultCode.InternalServiceError);
+		}
+	}
+
+	public GSSCredential getGssCredentails() throws GfacException, GSSException {
+		try {
+			System.out.println(gssCredentails);
+			if (gssCredentails == null || gssCredentails.getRemainingLifetime() < 10 * 90) {
+				if (proxyRenewer != null) {
+					gssCredentails = proxyRenewer.renewProxy();
+				} else if (myproxyUserName != null && myproxyPasswd != null && myproxyServer != null) {
+					this.proxyRenewer = new MyProxyManager(myproxyUserName, myproxyPasswd, MyProxy.MYPROXY_SERVER_PORT, myproxyLifetime, myproxyServer, trustedCertLoc);
+					log.info("loaded credentails from Proxy server");
+					gssCredentails = this.proxyRenewer.renewProxy();
+				}
+			}
+			return gssCredentails;
+		} catch (Exception e) {
+			throw new GfacException(e, FaultCode.ErrorAtDependentService);
+		}
+	}
+
+	public String getMyproxyUserName() {
+		return myproxyUserName;
+	}
+
+	public void setMyproxyUserName(String myproxyUserName) {
+		this.myproxyUserName = myproxyUserName;
+	}
+
+	public String getMyproxyPasswd() {
+		return myproxyPasswd;
+	}
+
+	public void setMyproxyPasswd(String myproxyPasswd) {
+		this.myproxyPasswd = myproxyPasswd;
+	}
+
+	public String getMyproxyServer() {
+		return myproxyServer;
+	}
+
+	public void setMyproxyServer(String myproxyServer) {
+		this.myproxyServer = myproxyServer;
+	}
+
+	public int getMyproxyLifetime() {
+		return myproxyLifetime;
+	}
+
+	public void setMyproxyLifetime(int myproxyLifetime) {
+		this.myproxyLifetime = myproxyLifetime;
+	}
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/ParameterContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/ParameterContextImpl.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/ParameterContextImpl.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/ParameterContextImpl.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,46 @@
+package org.apache.airavata.core.gfac.context.impl;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.apache.airavata.core.gfac.context.MessageContext;
+import org.apache.airavata.core.gfac.type.Parameter;
+
+@SuppressWarnings("rawtypes")
+public class ParameterContextImpl implements MessageContext<Parameter> {
+	
+	private Map<String, Parameter> value;
+	
+	public ParameterContextImpl(){
+		this.value = new HashMap<String, Parameter>();
+	}	
+	
+	public Iterator<String> getParameterNames() {
+		return this.value.keySet().iterator();
+	}
+
+	public Parameter getParameterValue(String name) {
+		return this.value.get(name);
+	}
+
+	public String getParameterType(String name) {
+		return this.value.get(name).getTypeName();
+	}
+
+	public String getStringParameterValue(String name) {
+		if(this.value.containsKey(name))
+			return this.value.get(name).toString();
+		else
+			return null;
+	}
+	
+	public void addParameter(String name, String type, Parameter value){
+		this.value.put(name, value);
+	}
+
+	public void setValue(String name, Parameter value) {
+		this.value.put(name, value);		
+	}
+
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/utils/MyProxyManager.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/utils/MyProxyManager.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/utils/MyProxyManager.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/context/impl/utils/MyProxyManager.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,113 @@
+package org.apache.airavata.core.gfac.context.impl.utils;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.UUID;
+
+import org.apache.airavata.core.gfac.exception.GfacException;
+import org.apache.airavata.core.gfac.exception.GfacException.FaultCode;
+import org.globus.gsi.GlobusCredential;
+import org.globus.gsi.TrustedCertificates;
+import org.globus.gsi.gssapi.GlobusGSSCredentialImpl;
+import org.globus.myproxy.MyProxy;
+import org.globus.myproxy.MyProxyException;
+import org.ietf.jgss.GSSCredential;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class MyProxyManager {
+
+	private final Logger log = LoggerFactory.getLogger(this.getClass());
+	
+	private final String username;
+    private final String password;
+    private final int port;
+    private final int lifetime;
+    private final String hostname;
+    private String trustedCertsLoc;
+
+    public MyProxyManager(final String username, final String password, final int port,
+            final int lifetime, final String hostname) {
+        super();
+        this.username = username;
+        this.password = password;
+        this.port = port;
+        this.lifetime = lifetime;
+        this.hostname = hostname;
+    }
+    public MyProxyManager(final String username, final String password, final int port,
+            final int lifetime, final String hostname, String trustedCertsLoc) {
+        super();
+        this.username = username;
+        this.password = password;
+        this.port = port;
+        this.lifetime = lifetime;
+        this.hostname = hostname;
+        this.trustedCertsLoc = trustedCertsLoc;
+    }
+    public MyProxyManager(String username, String password, int lifetime) {
+        super();
+        this.username = username;
+        this.password = password;
+        this.lifetime = lifetime;
+        hostname = "rainier.extreme.indiana.edu";
+        this.port = MyProxy.DEFAULT_PORT;
+    }
+  
+	private void init() {
+		if(trustedCertsLoc != null){
+    	TrustedCertificates certificates = TrustedCertificates.load(trustedCertsLoc);
+		TrustedCertificates.setDefaultTrustedCertificates(certificates);
+		}
+	}
+
+	public GSSCredential renewProxy() throws GfacException {
+
+	        try {
+	        	init() ;
+	            String proxyloc = null;
+	            MyProxy myproxy = new MyProxy(hostname, port);
+	            GSSCredential proxy = myproxy.get(username, password, lifetime);
+	            GlobusCredential globusCred = null;
+	            if (proxy instanceof GlobusGSSCredentialImpl) {
+	                globusCred = ((GlobusGSSCredentialImpl) proxy).getGlobusCredential();
+	                log.info("got proxy from myproxy for " + username + " with " + lifetime + " lifetime.");
+	             	 String uid=username;
+	                if (proxyloc == null) {
+							  //						  uid = XpolaUtil.getSysUserid();
+							  log.info("uid: " + uid);
+							  proxyloc = "/tmp/x509up_u" + uid + UUID.randomUUID().toString();
+	                }
+	                log.info("proxy location: " + proxyloc);
+	                File proxyfile = new File(proxyloc);
+	                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.");
+	                }
+	                FileOutputStream fout = new FileOutputStream(proxyfile);
+	                globusCred.save(fout);
+	                fout.close();
+	                Runtime.getRuntime().exec("/bin/chmod 600 " + proxyloc);
+	                log.info("Proxy file renewed to " + proxyloc + " for the user "
+	                        + username + " with " + lifetime + " lifetime.");
+
+	            }
+	            return proxy;
+	        } catch (MyProxyException e) {
+	            throw new GfacException(e,FaultCode.ErrorAtDependentService);
+	        } catch (FileNotFoundException e) {
+	            throw new GfacException(e,FaultCode.LocalError);
+	        } catch (IOException e) {
+	            throw new GfacException(e,FaultCode.LocalError);
+	        }
+	    }
+
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/FileTransferFault.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/FileTransferFault.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/FileTransferFault.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/FileTransferFault.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,18 @@
+package org.apache.airavata.core.gfac.exception;
+
+import java.net.URI;
+
+import org.apache.airavata.core.gfac.utils.GFacOptions.FileTransferServiceType;
+import org.ogce.schemas.gfac.inca.faults.DataTransfer;
+
+public class FileTransferFault extends GfacException{
+    public FileTransferFault(Throwable cause,FileTransferServiceType api,String origHost, URI source,URI dest, String options) {
+        super(cause, FaultCode.ErrorAtDependentService);
+        DataTransfer dataTransfer = DataTransfer.Factory.newInstance();
+        dataTransfer.setOrigHost(origHost);
+        dataTransfer.setSource(source.toString());
+        dataTransfer.setDest(dest.toString());
+        dataTransfer.setOptions(options);
+        errorActionDocument = createFaultData(dataTransfer, api.toString(), cause);
+    }
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/GfacException.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/GfacException.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/GfacException.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/GfacException.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,76 @@
+package org.apache.airavata.core.gfac.exception;
+
+import java.text.DateFormat;
+import java.util.Date;
+
+import org.apache.xmlbeans.XmlObject;
+import org.ogce.schemas.gfac.inca.faults.ActionDocument;
+import org.ogce.schemas.gfac.inca.faults.Application;
+import org.ogce.schemas.gfac.inca.faults.DataTransfer;
+import org.ogce.schemas.gfac.inca.faults.FileSystem;
+import org.ogce.schemas.gfac.inca.faults.Job;
+import org.ogce.schemas.gfac.inca.faults.ActionDocument.Action;
+
+public class GfacException extends Exception {
+
+    public static enum FaultCode{ServiceNotReachable, InvalidRequest, InternalServiceError, ErrorAtDependentService, ErrorAtClientBeforeWsCall, 
+        ErrorAtClientWhileWsCall, ErrorAtClientAfterWsCall, InitalizationError, UnsupportedMessage, InvaliedLocalArgumnet, 
+        LocalError, CmdAppError, ErrorAtCreatedService, InvalidConfig, Unknown, InvaliedResponse, JobSubmissionFailed};
+        
+    private static final long serialVersionUID = 1L;
+    private static DateFormat formatter = DateFormat.getTimeInstance();
+    protected ActionDocument errorActionDocument;
+
+    protected String faultCode;
+    public GfacException(String message, Throwable cause) {
+        super(message, cause);
+    }
+    
+    public GfacException(String message, Throwable cause,FaultCode faultCode) {
+        super(message, cause);
+        this.faultCode = faultCode.toString();
+    }
+
+    public GfacException(String message,FaultCode faultCode) {
+        super(message);
+        this.faultCode = faultCode.toString();
+    }
+
+    public GfacException(Throwable cause,FaultCode faultCode) {
+        super(cause);
+        if(cause instanceof GfacException){
+            GfacException gfacExeption = (GfacException)cause;
+            setFaultCode(gfacExeption.getFaultCode());
+        }
+        this.faultCode = faultCode.toString();
+    }
+    public String getFaultCode() {
+        return faultCode != null?faultCode:getMessage();
+    }
+    public void setFaultCode(String faultCode) {
+        this.faultCode = faultCode;
+    }
+    public ActionDocument createFaultData(XmlObject fault,String api,Throwable e){
+        ActionDocument document = ActionDocument.Factory.newInstance();
+        Action type = document.addNewAction();
+        type.setId("");
+        type.setApplication("lead");
+        type.setApi(api);
+        
+        if(fault instanceof DataTransfer){
+            type.setDataTransferArray(new DataTransfer[]{(DataTransfer)fault});
+        }else if(fault instanceof Job){
+            type.setJobArray(new Job[]{(Job)fault});
+        }else if(fault instanceof Job){
+            type.setFileSystemArray(new FileSystem[]{(FileSystem)fault});
+        }else if(fault instanceof Application){
+            type.setCmdapplicationArray(new Application[]{(Application)fault});            
+        }
+        type.setEndTime(formatter.format(new Date()));
+        Throwable cause = e;
+        while(cause.getCause() != null){
+            cause = cause.getCause();
+        }
+        return document;
+    }
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/JobSubmissionFault.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/JobSubmissionFault.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/JobSubmissionFault.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/exception/JobSubmissionFault.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,16 @@
+package org.apache.airavata.core.gfac.exception;
+
+import org.apache.airavata.core.gfac.provider.Provider;
+import org.apache.airavata.core.gfac.utils.GFacOptions.CurrentProviders;
+import org.ogce.schemas.gfac.inca.faults.Job;
+
+public class JobSubmissionFault extends GfacException{
+    public JobSubmissionFault(Throwable cause,String submitHost, String contact,String rsl,CurrentProviders api) {
+        super(cause,FaultCode.ErrorAtDependentService);
+        Job job = Job.Factory.newInstance();
+        job.setContact(contact);
+        job.setRsl(rsl);
+        job.setSubmitHost(submitHost);
+        errorActionDocument = createFaultData(job, api.toString(), cause);
+    }
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/Chain.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/Chain.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/Chain.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/Chain.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,20 @@
+package org.apache.airavata.core.gfac.extension;
+
+import org.apache.airavata.core.gfac.context.InvocationContext;
+import org.apache.airavata.core.gfac.exception.GfacException;
+
+public abstract class Chain<T> {
+	protected T next;
+
+	public T setNext(T nextChain) {
+		this.next = nextChain;
+		return this.next;
+	}
+
+	/**
+	 * Start the chain
+	 * 
+	 * @param context
+	 */
+	public abstract void start(InvocationContext context) throws GfacException;
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/DataServiceChain.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/DataServiceChain.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/DataServiceChain.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/DataServiceChain.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,5 @@
+package org.apache.airavata.core.gfac.extension;
+
+public abstract class DataServiceChain extends ExitableChain{
+	
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/ExitableChain.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/ExitableChain.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/ExitableChain.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/ExitableChain.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,20 @@
+package org.apache.airavata.core.gfac.extension;
+
+import org.apache.airavata.core.gfac.context.InvocationContext;
+import org.apache.airavata.core.gfac.exception.GfacException;
+
+public abstract class ExitableChain extends Chain<ExitableChain> {
+	public final void start(InvocationContext context) throws GfacException{
+		boolean breakTheChain = this.execute(context);
+		if (next != null && !breakTheChain) {
+			this.next.start(context);
+		}
+	}
+	
+	/**
+	 * 
+	 * @param context
+	 * @return true if no need for further processing
+	 */
+	protected abstract boolean execute(InvocationContext context) throws GfacException;	
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/PostExecuteChain.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/PostExecuteChain.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/PostExecuteChain.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/PostExecuteChain.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,5 @@
+package org.apache.airavata.core.gfac.extension;
+
+public abstract class PostExecuteChain extends ExitableChain{
+	
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/PreExecuteChain.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/PreExecuteChain.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/PreExecuteChain.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/PreExecuteChain.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,5 @@
+package org.apache.airavata.core.gfac.extension;
+
+
+public abstract class PreExecuteChain extends ExitableChain{	
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/data/RegistryDataService.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/data/RegistryDataService.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/data/RegistryDataService.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/extension/data/RegistryDataService.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,168 @@
+package org.apache.airavata.core.gfac.extension.data;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.UUID;
+
+import javax.xml.namespace.QName;
+
+import org.apache.airavata.core.gfac.context.InvocationContext;
+import org.apache.airavata.core.gfac.context.impl.ParameterContextImpl;
+import org.apache.airavata.core.gfac.exception.GfacException;
+import org.apache.airavata.core.gfac.exception.GfacException.FaultCode;
+import org.apache.airavata.core.gfac.extension.DataServiceChain;
+import org.apache.airavata.core.gfac.model.ExecutionModel;
+import org.apache.airavata.core.gfac.registry.RegistryService;
+import org.apache.airavata.core.gfac.type.StringParameter;
+import org.apache.airavata.core.gfac.utils.GfacUtils;
+import org.apache.xmlbeans.XmlException;
+import org.ogce.schemas.gfac.documents.ApplicationDescriptionDocument;
+import org.ogce.schemas.gfac.documents.ApplicationDescriptionType;
+import org.ogce.schemas.gfac.documents.DeploymentDescriptionType;
+import org.ogce.schemas.gfac.documents.GlobusGatekeeperType;
+import org.ogce.schemas.gfac.documents.HostDescriptionDocument;
+import org.ogce.schemas.gfac.documents.HostDescriptionType;
+import org.ogce.schemas.gfac.documents.NameValuePairType;
+import org.ogce.schemas.gfac.documents.OutputParameterType;
+import org.ogce.schemas.gfac.documents.ServiceMapDocument;
+import org.ogce.schemas.gfac.documents.ServiceMapType;
+
+public class RegistryDataService extends DataServiceChain {
+
+	private static final String INPUT_MESSAGE_CONTEXT = "input";
+	private static final String OUTPUT_MESSAGE_CONTEXT = "output";
+
+	public boolean execute(InvocationContext context) throws GfacException {
+
+		/*
+		 * Load host and app description from registry
+		 */
+		RegistryService registryService = context.getExecutionContext().getRegistryService();
+		String serviceMapStr = registryService.getServiceMap(context.getServiceName());
+		System.out.println(serviceMapStr);
+		if (serviceMapStr != null) {
+			try {
+
+				ServiceMapType serviceMap = ServiceMapDocument.Factory.parse(serviceMapStr).getServiceMap();
+				QName appName = GfacUtils.findApplcationName(serviceMap);
+
+				// host name
+				String hostName = findHostFromServiceMap(registryService, appName);
+
+				// app
+				String appDesc = registryService.getAppDesc(appName.toString(), hostName);
+				ApplicationDescriptionType appDescType = ApplicationDescriptionDocument.Factory.parse(appDesc).getApplicationDescription();
+
+				// host desc
+				String hostDesc = registryService.getHostDesc(hostName);
+				HostDescriptionType hostDescType = HostDescriptionDocument.Factory.parse(hostDesc).getHostDescription();
+
+				// application deployment
+				DeploymentDescriptionType deploymentDesc = appDescType.getDeploymentDescription();
+				String tmpDir = deploymentDesc.getTmpDir();
+				if (tmpDir == null && hostDescType != null) {
+					tmpDir = hostDescType.getHostConfiguration().getTmpDir();
+				}
+
+				if (tmpDir == null) {
+					tmpDir = "/tmp";
+				}
+
+				String date = new Date().toString();
+				date = date.replaceAll(" ", "_");
+				date = date.replaceAll(":", "_");
+
+				tmpDir = tmpDir + File.separator + appDescType.getApplicationName().getStringValue() + "_" + date + "_" + UUID.randomUUID();
+
+				String workingDir = deploymentDesc.getWorkDir();
+				if (workingDir == null || workingDir.trim().length() == 0) {
+					workingDir = tmpDir;
+				}
+
+				String stdOut = tmpDir + File.separator + appDescType.getApplicationName().getStringValue() + ".stdout";
+				String stderr = tmpDir + File.separator + appDescType.getApplicationName().getStringValue() + ".stderr";
+				String executable = deploymentDesc.getExecutable();
+				String host = deploymentDesc.getHostName();
+
+				NameValuePairType[] env = deploymentDesc.getApplicationEnvArray();
+				Map<String, String> envMap = new HashMap<String, String>();
+				if (env != null) {
+					for (int i = 0; i < env.length; i++) {
+						envMap.put(env[i].getName(), env[i].getValue());
+					}
+				}
+
+				String inputDataDir = tmpDir + File.separator + "inputData";
+				String outputDataDir = tmpDir + File.separator + "outputData";
+
+				GlobusGatekeeperType[] gatekeepers = hostDescType.getHostConfiguration().getGlobusGatekeeperArray();
+
+				ExecutionModel model = new ExecutionModel();
+				model.setHost(host);
+				model.setExecutable(executable);
+				model.setTmpDir(tmpDir);
+				model.setWorkingDir(workingDir);
+				model.setStdOut(stdOut);
+				model.setStderr(stderr);
+				model.setInputDataDir(inputDataDir);
+				model.setOutputDataDir(outputDataDir);
+				model.setEnv(envMap);
+				model.setAplicationDesc(appDescType);
+				model.setHostDesc(hostDescType);
+				model.setGatekeeper(gatekeepers[0]);
+
+				// input parameter
+				ArrayList<String> tmp = new ArrayList<String>();
+				for (Iterator<String> iterator = context.getMessageContext(INPUT_MESSAGE_CONTEXT).getParameterNames(); iterator.hasNext();) {
+					String key = iterator.next();
+					tmp.add(context.getMessageContext(INPUT_MESSAGE_CONTEXT).getStringParameterValue(key));
+				}
+				model.setInputParameters(tmp);
+
+				context.getExecutionContext().setExectionModel(model);
+
+				// output parameter
+				//TODO type mapping
+				if (serviceMap.getPortTypeArray(0).getMethodArray(0).getOutputParameterArray() != null) {
+					ParameterContextImpl outtmp = new ParameterContextImpl();
+					for (OutputParameterType output : serviceMap.getPortTypeArray(0).getMethodArray(0).getOutputParameterArray()) {
+						outtmp.addParameter(output.getParameterName(), output.getParameterType().toString(), new StringParameter());
+					}
+					context.addMessageContext(OUTPUT_MESSAGE_CONTEXT, outtmp);
+				}
+
+			} catch (XmlException e) {
+				throw new GfacException(e, FaultCode.InitalizationError);
+			}
+		} else {
+			throw new GfacException("Service Map for " + context.getServiceName() + " does not found on resource Catalog " + registryService, FaultCode.InvalidRequest);
+		}
+
+		return false;
+	}
+
+	private String findHostFromServiceMap(RegistryService regService, QName appName) throws GfacException {
+
+		System.out.println("Searching registry for some deployed application hosts\n");
+		String[] hosts = regService.app2Hosts(appName.toString());
+		if (hosts.length > 1) {
+			String hostNames = "";
+			for (int i = 0; i < hosts.length; i++) {
+				hostNames = hostNames + hosts[i];
+			}
+			System.out.println("Application deployed on more than one machine. The full Host list is " + hostNames + "\n");
+		}
+		if (hosts.length >= 1) {
+			System.out.println("Found Host = " + hosts[0]);
+			return hosts[0];
+		} else {
+			System.out.println("Applcation  " + appName.getLocalPart() + " not found in registry");
+			return null;
+		}
+	}
+
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/external/GridFtp.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/external/GridFtp.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/external/GridFtp.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/external/GridFtp.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,113 @@
+package org.apache.airavata.core.gfac.external;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.URI;
+
+import org.apache.airavata.core.gfac.exception.GfacException;
+import org.apache.airavata.core.gfac.utils.ContactInfo;
+import org.globus.ftp.DataChannelAuthentication;
+import org.globus.ftp.GridFTPClient;
+import org.globus.ftp.exception.ClientException;
+import org.globus.ftp.exception.ServerException;
+import org.globus.gsi.gssapi.auth.HostAuthorization;
+import org.ietf.jgss.GSSCredential;
+
+public class GridFtp {
+	public void makeDir(URI destURI, GSSCredential gssCred) throws GfacException {
+		GridFTPClient destClient = null;
+		try {
+			ContactInfo destHost = new ContactInfo(destURI.getHost(), destURI.getPort());
+			String destPath = destURI.getPath();
+			System.out.println(("Creating Directory = " + destHost + "=" + destPath));
+
+			destClient = new GridFTPClient(destHost.hostName, destHost.port);
+
+			int tryCount = 0;
+			while (true) {
+				try {
+					destClient.setAuthorization(new HostAuthorization("host"));
+					destClient.authenticate(gssCred);
+					destClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
+
+					if (!destClient.exists(destPath)) {
+						destClient.makeDir(destPath);
+					}
+					break;
+				} catch (Exception e) {
+					String message = "Mkdir " + destURI + " with " + e.getMessage() + " (try " + tryCount + ") retrying at Gfac";
+					tryCount++;
+					if (tryCount >= 3) {
+						throw new GfacException(e.getMessage(), e);
+					}
+					Thread.sleep(10000);
+				}
+			}
+		} catch (ServerException e) {
+			e.printStackTrace();
+		} catch (IOException e) {
+			e.printStackTrace();
+		} catch (InterruptedException e) {
+			e.printStackTrace();
+		} finally {
+			if (destClient != null)
+				try {
+					destClient.close();
+				} catch (Exception e) {
+					// no op
+				}
+		}
+	}
+
+	public String readRemoteFile(URI destURI, GSSCredential gsCredential, File localFile) throws GfacException {
+		GridFTPClient ftpClient = null;
+
+		try {
+			ContactInfo contactInfo = new ContactInfo(destURI.getHost(), destURI.getPort());
+			String remoteFile = destURI.getPath();
+
+			ftpClient = new GridFTPClient(contactInfo.hostName, contactInfo.port);
+			ftpClient.setAuthorization(new HostAuthorization("host"));
+			ftpClient.authenticate(gsCredential);
+			ftpClient.setDataChannelAuthentication(DataChannelAuthentication.SELF);
+
+			File localTempfile;
+			if (localFile == null) {
+				localTempfile = File.createTempFile("stderr", "err");
+			} else {
+				localTempfile = localFile;
+			}
+
+			System.out.println("the local temp file is " + localTempfile);
+			System.out.println("the remote file is " + remoteFile);
+
+			ftpClient.get(remoteFile, localTempfile);
+			FileInputStream instream = new FileInputStream(localTempfile);
+			int size = instream.available();
+			byte[] buf = new byte[size];
+
+			instream.read(buf);
+
+			return new String(buf);
+		} catch (ServerException e) {
+			e.printStackTrace();
+		} catch (ClientException e) {
+			e.printStackTrace();
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+		} catch (IOException e) {
+			e.printStackTrace();
+		} finally {
+			if (ftpClient != null)
+				try {
+					ftpClient.close();
+				} catch (Exception e) {
+					// no op
+				}
+		}
+		return null;
+	}
+
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/factory/AbstractServiceFactory.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/factory/AbstractServiceFactory.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/factory/AbstractServiceFactory.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/factory/AbstractServiceFactory.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,14 @@
+package org.apache.airavata.core.gfac.factory;
+
+import org.apache.airavata.core.gfac.exception.GfacException;
+import org.apache.airavata.core.gfac.services.GenericService;
+
+public abstract class AbstractServiceFactory {
+	
+	public final GenericService createService() throws GfacException{
+		getGenericService().init();		
+		return getGenericService();
+	}
+	
+	protected abstract GenericService getGenericService() throws GfacException;
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/factory/PropertyServiceFactory.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/factory/PropertyServiceFactory.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/factory/PropertyServiceFactory.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/factory/PropertyServiceFactory.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,16 @@
+package org.apache.airavata.core.gfac.factory;
+
+import org.apache.airavata.core.gfac.services.GenericService;
+import org.apache.airavata.core.gfac.services.impl.PropertiesBasedServiceImpl;
+
+public class PropertyServiceFactory extends AbstractServiceFactory {
+
+	private GenericService service;
+
+	public GenericService getGenericService(){
+		if(service == null){
+			service = new PropertiesBasedServiceImpl();
+		}
+		return service;
+	}
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/model/ExecutionModel.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/model/ExecutionModel.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/model/ExecutionModel.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/model/ExecutionModel.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,294 @@
+package org.apache.airavata.core.gfac.model;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.ogce.schemas.gfac.documents.ApplicationDescriptionType;
+import org.ogce.schemas.gfac.documents.GlobusGatekeeperType;
+import org.ogce.schemas.gfac.documents.HostDescriptionType;
+
+public class ExecutionModel {
+
+	private String jobID;
+	
+	private String userDN;
+
+	private String workingDir;
+
+	private String tmpDir;
+
+	private String stdOut;
+
+	private String stderr;
+
+	private String host;
+
+	private String executable;
+
+	private Map<String, String> env;
+
+	private String inputDataDir;
+
+	private String outputDataDir;
+
+	private String stdIn;
+
+	private String stdoutStr;
+
+	private String stderrStr;
+
+	private ArrayList<String> inputParameters;
+
+	private ArrayList<String> outputParameters;
+
+	private HostDescriptionType hostDesc;
+
+	private ApplicationDescriptionType aplicationDesc;
+
+	private GlobusGatekeeperType gatekeeper;
+
+	/**
+	 * @return the userDN
+	 */
+	public String getUserDN() {
+		return userDN;
+	}
+
+	/**
+	 * @param userDN
+	 *            the userDN to set
+	 */
+	public void setUserDN(String userDN) {
+		this.userDN = userDN;
+	}
+
+	/**
+	 * @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 Map<String, String> getEnv() {
+		return env;
+	}
+
+	/**
+	 * @param env
+	 *            the env to set
+	 */
+	public void setEnv(Map<String, 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 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 setInputParameters(ArrayList<String> inputParameters) {
+		this.inputParameters = inputParameters;
+	}
+
+	public ArrayList<String> getInputParameters() {
+		return inputParameters;
+	}
+
+	public void setOutputParameters(ArrayList<String> outputParameters) {
+		this.outputParameters = outputParameters;
+	}
+
+	public ArrayList<String> getOutputParameters() {
+		return outputParameters;
+	}
+
+	public void setHostDesc(HostDescriptionType hostDesc) {
+		this.hostDesc = hostDesc;
+	}
+
+	public HostDescriptionType getHostDesc() {
+		return hostDesc;
+	}
+
+	public void setGatekeeper(GlobusGatekeeperType gatekeeper) {
+		this.gatekeeper = gatekeeper;
+	}
+
+	public GlobusGatekeeperType getGatekeeper() {
+		return gatekeeper;
+	}
+
+	public void setAplicationDesc(ApplicationDescriptionType aplicationDesc) {
+		this.aplicationDesc = aplicationDesc;
+	}
+
+	public ApplicationDescriptionType getAplicationDesc() {
+		return aplicationDesc;
+	}
+
+	public void setJobID(String jobID) {
+		this.jobID = jobID;
+	}
+
+	public String getJobID() {
+		return jobID;
+	}
+
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/notification/DummyNotification.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/notification/DummyNotification.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/notification/DummyNotification.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/notification/DummyNotification.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,114 @@
+package org.apache.airavata.core.gfac.notification;
+
+import java.net.URI;
+
+import org.apache.airavata.core.gfac.context.MessageContext;
+import org.apache.airavata.core.gfac.exception.GfacException;
+
+import edu.indiana.extreme.lead.workflow_tracking.common.DataDurationObj;
+import edu.indiana.extreme.lead.workflow_tracking.common.DataObj;
+import edu.indiana.extreme.lead.workflow_tracking.common.DurationObj;
+
+public class DummyNotification implements NotificationService {
+
+	public DataDurationObj dataReceiveFinished(DataDurationObj dataObj, String... descriptionAndAnnotation) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public DataDurationObj dataReceiveStarted(URI dataID, URI remoteLocation, URI localLocation) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public DataDurationObj dataSendFinished(DataDurationObj dataObj, String... descriptionAndAnnotation) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public DataDurationObj dataSendStarted(DataObj dataObj, URI remoteLocation) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public void dataConsumed(URI dataID, URI replica, String type, String soapElementName) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void dataProduced(URI dataID, URI replica, String type, String soapElementName) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public DurationObj computationDuration(long durationMillis) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public DurationObj computationFinished(DurationObj compObj) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public DurationObj computationStarted() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	public void exception(String... descriptionAndAnnotation) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void flush() {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void info(String... descriptionAndAnnotation) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void sendingResponseFailed(Throwable trace, String... descriptionAndAnnotation) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void sendingResponseSucceeded(String... descriptionAndAnnotation) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void sendingResult(MessageContext messageContext) throws GfacException {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void warning(String... descriptionAndAnnotation) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void sendingFault(String... descriptionAndAnnotation) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void publishURL(String title, String url, String... descriptionAndAnnotation) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void appAudit(String name, URI jobHandle, String host, String queueName, String jobId, String dName, String projectId, String rsl, String... descriptionAndAnnotation) {
+		// TODO Auto-generated method stub
+
+	}
+
+	public void sendResourceMappingNotifications(String hostName, String... descriptionAndAnnotation) {
+		// TODO Auto-generated method stub
+
+	}
+
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/notification/NotificationService.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/notification/NotificationService.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/notification/NotificationService.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/notification/NotificationService.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,56 @@
+package org.apache.airavata.core.gfac.notification;
+
+import java.net.URI;
+
+import org.apache.airavata.core.gfac.context.MessageContext;
+import org.apache.airavata.core.gfac.exception.GfacException;
+
+import edu.indiana.extreme.lead.workflow_tracking.common.DataDurationObj;
+import edu.indiana.extreme.lead.workflow_tracking.common.DataObj;
+import edu.indiana.extreme.lead.workflow_tracking.common.DurationObj;
+
+public interface NotificationService {
+
+    DataDurationObj dataReceiveFinished(DataDurationObj dataObj,
+            String... descriptionAndAnnotation);
+
+    DataDurationObj dataReceiveStarted(URI dataID, URI remoteLocation,
+            URI localLocation);
+
+    DataDurationObj dataSendFinished(DataDurationObj dataObj,
+            String... descriptionAndAnnotation);
+
+    DataDurationObj dataSendStarted(DataObj dataObj, URI remoteLocation);
+
+    void dataConsumed(URI dataID,URI replica,String type,String soapElementName);
+
+    void dataProduced(URI dataID,URI replica,String type,String soapElementName);
+
+    DurationObj computationDuration(long durationMillis);
+
+    DurationObj computationFinished(DurationObj compObj);
+
+    DurationObj computationStarted();
+
+    void exception(String... descriptionAndAnnotation);
+
+    void flush();
+
+    void info(String... descriptionAndAnnotation);
+
+    void sendingResponseFailed(Throwable trace, String... descriptionAndAnnotation);
+
+    void sendingResponseSucceeded(String... descriptionAndAnnotation);
+
+    void sendingResult(MessageContext messageContext) throws GfacException;
+
+    void warning(String... descriptionAndAnnotation);
+    
+    void sendingFault(String... descriptionAndAnnotation);
+    void publishURL(String title, String url, String... descriptionAndAnnotation);
+    
+    void appAudit(String name, URI jobHandle, String host, String queueName, String jobId, String dName, String projectId, String rsl, String... descriptionAndAnnotation);
+
+    void sendResourceMappingNotifications(String hostName, String ...descriptionAndAnnotation );
+
+}

Added: incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/provider/AbstractProvider.java
URL: http://svn.apache.org/viewvc/incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/provider/AbstractProvider.java?rev=1139241&view=auto
==============================================================================
--- incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/provider/AbstractProvider.java (added)
+++ incubator/airavata/core/trunk/gfac/src/main/java/org/apache/airavata/core/gfac/provider/AbstractProvider.java Fri Jun 24 11:01:15 2011
@@ -0,0 +1,10 @@
+package org.apache.airavata.core.gfac.provider;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+public abstract class AbstractProvider implements Provider{
+	protected final Logger log = LoggerFactory.getLogger(this.getClass());
+	
+}