You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2011/10/20 21:42:29 UTC

svn commit: r1187014 - in /incubator/airavata/trunk/modules/commons/workflow-execution-context: ./ schemas/ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apaceh/ src/main/java/org/apaceh/airavata/ src/main/java/org/apaceh/airavata/...

Author: lahiru
Date: Thu Oct 20 19:42:28 2011
New Revision: 1187014

URL: http://svn.apache.org/viewvc?rev=1187014&view=rev
Log:
adding new code.

Added:
    incubator/airavata/trunk/modules/commons/workflow-execution-context/pom.xml
    incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/
    incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsd   (with props)
    incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsdconfig   (with props)
    incubator/airavata/trunk/modules/commons/workflow-execution-context/src/
    incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/
    incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/
    incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/
    incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/
    incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/
    incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/
    incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/
    incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/execution/
    incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/execution/context/
    incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/execution/context/WorkflowContextHeaderBuilder.java
    incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/resources/
    incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/resources/workflow_execution_context.xsdconfig   (with props)

Added: incubator/airavata/trunk/modules/commons/workflow-execution-context/pom.xml
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/workflow-execution-context/pom.xml?rev=1187014&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/commons/workflow-execution-context/pom.xml (added)
+++ incubator/airavata/trunk/modules/commons/workflow-execution-context/pom.xml Thu Oct 20 19:42:28 2011
@@ -0,0 +1,103 @@
+<?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">
+   <parent>
+		<artifactId>airavata-commons</artifactId>
+		<groupId>airavata</groupId>
+		<version>0.0.1-SNAPSHOT</version>
+		<relativePath>../pom.xml</relativePath>
+	</parent>
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>airavata</groupId>
+	<artifactId>airavata-workflow-execution-context</artifactId>
+	<packaging>jar</packaging>
+	<name>Airavata Workflow Execution Context</name>
+	<url>http://incubator.apache.org/airavata/</url>
+
+	<dependencies>
+        <dependency>
+            <groupId>org.apache.xmlbeans</groupId>
+            <artifactId>xmlbeans</artifactId>
+            <version>2.4.0</version>
+        </dependency>
+        <dependency>
+            <groupId>xpp3</groupId>
+            <artifactId>xpp3</artifactId>
+            <version>1.1.4c</version>
+        </dependency>
+        <dependency>
+            <groupId>airavata</groupId>
+            <artifactId>airavata-common-utils</artifactId>
+            <version>${airavata.version}</version>
+        </dependency>
+    </dependencies>
+	<build>
+		<pluginManagement>
+			<plugins>
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-compiler-plugin</artifactId>
+					<version>2.3.2</version>
+					<configuration>
+						<source>1.5</source>
+						<target>1.5</target>
+					</configuration>
+				</plugin>			
+
+			</plugins>
+		</pluginManagement>
+		<plugins>
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>xmlbeans-maven-plugin</artifactId>
+				<version>2.3.3</version>
+				<executions>
+					<execution>
+						<goals>
+							<goal>xmlbeans</goal>
+						</goals>
+					</execution>
+				</executions>
+				<inherited>true</inherited>
+				<configuration>
+					<schemaDirectory>schemas</schemaDirectory>
+					<xmlConfigs>
+						<xmlConfig implementation="java.io.File">schemas/workflow_execution_context.xsdconfig</xmlConfig>
+					</xmlConfigs>
+					<outputJar>target/generated/${artifactId}-${version}.jar</outputJar>
+				</configuration>
+			</plugin>
+
+			<plugin>
+				<groupId>org.codehaus.mojo</groupId>
+				<artifactId>build-helper-maven-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>add-source</id>
+						<phase>generate-sources</phase>
+						<goals>
+							<goal>add-source</goal>
+						</goals>
+						<configuration>
+							<sources>
+								<source>${basedir}/target/generated-sources/xmlbeans</source>
+							</sources>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+</project>

Added: incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsd
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsd?rev=1187014&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsd (added)
+++ incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsd Thu Oct 20 19:42:28 2011
@@ -0,0 +1,516 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema targetNamespace="http://schemas.airavata.apache.org/workflow-execution-context"
+	xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wec="http://schemas.airavata.apache.org/workflow-execution-context"
+	attributeFormDefault="qualified" elementFormDefault="qualified">
+
+	<element name='context-header'>
+		<annotation>
+			<documentation xml:lang='en'>
+				Element that contains Airavata
+				specific context information sent as a SOAP
+				header in a SOAP message.
+			</documentation>
+		</annotation>
+		<complexType>
+			<sequence>
+				<element minOccurs='0' maxOccurs='1' ref='wec:user-identifier' />
+				<element minOccurs='1' maxOccurs='1' ref='wec:soa-service-eprs' />
+				<element minOccurs='1' maxOccurs='1'
+					ref='wec:workflow-monitoring-context' />
+				<element minOccurs='0' maxOccurs='1'
+					ref='wec:workflow-scheduling-context' />
+				<element minOccurs='0' maxOccurs='1'
+					ref='wec:workflow-output-data-handling' />
+				<element minOccurs='0' maxOccurs='1' ref='wec:security-context' />
+			</sequence>
+		</complexType>
+	</element>
+
+	<element name="user-identifier" type="string">
+		<annotation>
+			<documentation xml:lang="en"> User that the workflow is
+				executed on behalf of,
+				user id is used to catalog data and for
+				monitoring purposes
+			</documentation>
+		</annotation>
+	</element>
+
+	<element name="soa-service-eprs">
+		<annotation>
+			<documentation xml:lang="en">
+				Element that contains
+				persistant service end points within the system.
+			</documentation>
+		</annotation>
+		<complexType>
+			<sequence>
+				<element name="gfac-url" type="anyURI" minOccurs='1'
+					maxOccurs='1'>
+					<annotation>
+						<documentation xml:lang="en"> Location of GFac factory
+							service to use. (optional)
+						</documentation>
+					</annotation>
+				</element>
+				<element name="registry-url" type="anyURI" minOccurs='1'
+					maxOccurs='1'>
+					<annotation>
+						<documentation xml:lang="en"> Location of Registry
+							service
+							to use. (optional)
+						</documentation>
+					</annotation>
+				</element>
+
+				<element name="resource-scheduler-url" type="string"
+					minOccurs='0' maxOccurs='1'>
+					<annotation>
+						<documentation xml:lang="en"> Resource Scheduler to use
+						</documentation>
+					</annotation>
+				</element>
+			</sequence>
+		</complexType>
+	</element>
+
+	<element name="workflow-monitoring-context">
+		<annotation>
+			<documentation xml:lang="en">Workflow context for execution
+				of a instance used to
+				relate the specific activity in the context of
+				workflow and used for
+				monitoring
+				and illustarting the workflow
+				progress.
+			</documentation>
+		</annotation>
+		<complexType>
+			<sequence>
+				<element name="experiment-id" type="string" minOccurs="1"
+					maxOccurs="1">
+					<annotation>
+						<documentation xml:lang="en"> Experiment ID (REQUIRED in
+							context), Defines
+							the context of the workflow.
+						</documentation>
+					</annotation>
+				</element>
+				<element name="workflow-instance-id" type="anyURI"
+					minOccurs="1" maxOccurs="1">
+					<annotation>
+						<documentation xml:lang="en"> URI that identifies
+							workflow instance that
+							originated the message. (optional)
+						</documentation>
+					</annotation>
+				</element>
+				<element name="workflow-template-id" type="anyURI">
+					<annotation>
+						<documentation xml:lang="en"> URI that identifies
+							workflow template that was
+							used to create the workflow instance.
+							(optional)
+						</documentation>
+					</annotation>
+				</element>
+				<element name="workflow-node-id" type="string">
+					<annotation>
+						<documentation xml:lang="en"> String that identifies
+							uniqueley a node in
+							workflow graph that originated that message.
+							(optional)
+						</documentation>
+					</annotation>
+				</element>
+				<element name="workflow-time-step" type="int">
+					<annotation>
+						<documentation xml:lang="en"> Increasing integer
+							representing time in the
+							workflow execution when the message
+							originated. (optional)
+						</documentation>
+					</annotation>
+				</element>
+
+				<element name="service-instance-id" type="anyURI">
+					<annotation>
+						<documentation xml:lang="en"> URI that identifies service
+							instance that
+							originated that message. (optional)
+						</documentation>
+					</annotation>
+				</element>
+
+				<element name="service-replica-id" type="anyURI">
+					<annotation>
+						<documentation xml:lang="en"> URI that identifies the
+							replica of service
+							instance that originated that message, primarly
+							used by Fault Tolerance
+							service to overprovision. (optional)
+						</documentation>
+					</annotation>
+				</element>
+
+				<element name="event-publish-epr" type="anyURI" minOccurs="1"
+					maxOccurs="1">
+					<annotation>
+						<documentation xml:lang="en"> EPR for WS-Eventing sink
+							where to send event. (optional)
+							NOTE: currently any XML is
+							accepted as there are many versions of
+							WS-Addressing.
+						</documentation>
+					</annotation>
+				</element>
+
+				<element name="notification-topic" type="string" minOccurs="0"
+					maxOccurs="1">
+					<annotation>
+						<documentation xml:lang="en"> A Unique String to set as
+							the topic for
+							events sent on an experiment. The topic may be
+							embedded with the
+							event-publish-epr. An experiment id being unique
+							may be chosen as
+							topic.
+						</documentation>
+					</annotation>
+				</element>
+
+				<element name="error-publish-epr" type="anyURI">
+					<annotation>
+						<documentation xml:lang="en"> EPR for WS-Eventing sink
+							where to send errors (optional)
+							NOTE: designed good for debugging
+							and system level warnings, errors,
+							etc
+						</documentation>
+					</annotation>
+				</element>
+			</sequence>
+		</complexType>
+	</element>
+
+	<element name="workflow-scheduling-context">
+		<annotation>
+			<documentation xml:lang="en">
+				Element that contains service
+				specific resource scheduling information sent
+				inside workflow
+				context. The purpose of this context is to schedule
+				individual
+				activities on a different resource.
+			</documentation>
+		</annotation>
+		<complexType>
+			<sequence>
+				<element minOccurs="1" maxOccurs="unbounded"
+					ref="wec:application-scheduling-context" />
+			</sequence>
+		</complexType>
+	</element>
+
+	<element name="application-scheduling-context">
+		<complexType>
+			<simpleContent>
+				<extension base="string">
+					<annotation>
+						<documentation xml:lang="en">
+							Element text contains host
+							name for the resource.
+						</documentation>
+					</annotation>
+
+					<attribute name="workflow-node-id" type="string">
+						<annotation>
+							<documentation xml:lang="en">
+								This is workflow node ID
+								that is mapped to a resource.
+							</documentation>
+						</annotation>
+					</attribute>
+
+					<attribute name="service-id" type="anyURI" use="optional">
+						<annotation>
+							<documentation xml:lang="en">
+								This is service ID.
+							</documentation>
+						</annotation>
+					</attribute>
+
+					<attribute name="host-name" type="anyURI" use="optional">
+						<annotation>
+							<documentation xml:lang="en">
+								head node of the resource
+							</documentation>
+						</annotation>
+					</attribute>
+
+					<attribute name="wsgram-preferred" type="boolean" use="optional">
+						<annotation>
+							<documentation xml:lang="en">
+								If true then wsgram will be
+								used, false pre-wsgram will be used.
+							</documentation>
+						</annotation>
+					</attribute>
+
+					<attribute name="gatekeeper-epr" type="anyURI" use="optional">
+						<annotation>
+							<documentation xml:lang="en">
+								GRAM EPR of the resource
+							</documentation>
+						</annotation>
+					</attribute>
+
+					<attribute name="job-manager" type="string">
+						<annotation>
+							<documentation xml:lang="en">
+								LRM job manager on the
+								resource, ex: PBS, LSF.
+							</documentation>
+						</annotation>
+					</attribute>
+
+					<attribute name="cpu-count" type="int" use="optional">
+						<annotation>
+							<documentation xml:lang="en">
+								number of CPU's allocated
+								on the compute cluster
+							</documentation>
+						</annotation>
+					</attribute>
+
+					<attribute name="node-count" type="int" use="optional">
+						<annotation>
+							<documentation xml:lang="en">
+								number of nodes allocated
+								on the compute cluster
+							</documentation>
+						</annotation>
+					</attribute>
+
+					<attribute name="queue-name" type="string">
+						<annotation>
+							<documentation xml:lang="en">
+								Job queue name if any.
+							</documentation>
+						</annotation>
+					</attribute>
+
+					<attribute name="max-wall-time" type="int" use="optional">
+						<annotation>
+							<documentation xml:lang="en">
+								number of CPU's allocated
+								on the compute cluster
+							</documentation>
+						</annotation>
+					</attribute>
+				</extension>
+			</simpleContent>
+		</complexType>
+	</element>
+
+	<element name="workflow-output-data-handling">
+		<annotation>
+			<documentation xml:lang="en">
+				Element that contains
+				application specific resource scheduling information sent
+				inside
+				workflow context. The purpose of this context is to handle
+				individual
+				activities with different needs like intermediate data
+				need not be persisted.
+			</documentation>
+		</annotation>
+		<complexType>
+			<sequence>
+				<element minOccurs="1" maxOccurs="unbounded"
+					ref="wec:application-output-data-handling" />
+			</sequence>
+		</complexType>
+	</element>
+
+	<element name="application-output-data-handling">
+		<complexType>
+			<sequence>
+				<element name="data-registry-url" type="anyURI">
+					<annotation>
+						<documentation xml:lang="en"> (Optional) If a seperate
+							Data
+							Registry is used for catlogging data, the associated location
+							of the
+							Data registry
+						</documentation>
+					</annotation>
+				</element>
+
+				<element name="output-data-directory" type="anyURI">
+					<annotation>
+						<documentation xml:lang="en">(Optional) If the workflow
+							outputs are to be staged to a pre-specified location, then the
+							output data staging directory should be provided.
+						</documentation>
+					</annotation>
+				</element>
+
+				<element name="data-persistance" type="boolean">
+					<annotation>
+						<documentation xml:lang="en">(Optional) If the
+							intermediate workflow
+							outputs are to be discarded after execution,
+							this flag should be set to
+							false. By defualt this flag should be
+							true assuming all data will
+							be persisted.
+						</documentation>
+					</annotation>
+				</element>
+
+			</sequence>
+		</complexType>
+	</element>
+
+	<element name="security-context">
+		<annotation>
+			<documentation xml:lang="en"> Security context for execution
+				of the workflow
+			</documentation>
+		</annotation>
+		<complexType>
+			<sequence>
+				<element name="grid-proxy" type="base64Binary">
+					<annotation>
+						<documentation xml:lang="en"> Security context for Grid
+							Security
+							Infrastructure X509 Proxy with trusted chain.
+						</documentation>
+					</annotation>
+				</element>
+				<element name="grid-myproxy-repository">
+					<annotation>
+						<documentation xml:lang="en"> Security context for Grid
+							Security MyProxy
+							Service
+						</documentation>
+					</annotation>
+					<complexType>
+						<sequence>
+							<element name="myproxy-server" type="string">
+								<annotation>
+									<documentation xml:lang="en"> MyProxy Server.
+									</documentation>
+								</annotation>
+							</element>
+							<element name="username" type="string">
+								<annotation>
+									<documentation xml:lang="en"> MyProxy User Name.
+									</documentation>
+								</annotation>
+							</element>
+							<element name="password" type="string">
+								<annotation>
+									<documentation xml:lang="en"> MyProxy Password.
+									</documentation>
+								</annotation>
+							</element>
+							<element name="life-time-inhours" type="int">
+								<annotation>
+									<documentation xml:lang="en"> MyProxy Proxy Life time.
+									</documentation>
+								</annotation>
+							</element>
+						</sequence>
+					</complexType>
+				</element>
+				<element name="ssh-authentication">
+					<annotation>
+						<documentation xml:lang="en"> Security context for
+							execution of the workflow
+							on SSH accessed resources.
+						</documentation>
+					</annotation>
+					<complexType>
+						<sequence>
+							<element name="access-key-id" type="string">
+								<annotation>
+									<documentation xml:lang="en"> Amazon Web Services
+										Public Access
+										Key ID used to contact the AWS API's.
+									</documentation>
+								</annotation>
+							</element>
+							<element name="secret-access-key" type="string">
+								<annotation>
+									<documentation xml:lang="en"> Amazon Web Services AWS
+										Private
+										Secret Access Key.
+									</documentation>
+								</annotation>
+							</element>
+						</sequence>
+					</complexType>
+				</element>
+				<element name="credential-management-service">
+					<annotation>
+						<documentation xml:lang="en"> Security context for
+							execution of the workflow
+						</documentation>
+					</annotation>
+					<complexType>
+						<sequence>
+							<element name="scms-url" type="anyURI">
+								<annotation>
+									<documentation xml:lang="en"> Location of the SCMS
+										(Session
+										Credential Management Service).
+									</documentation>
+								</annotation>
+							</element>
+							<element name="execution-session-id" type="string">
+								<annotation>
+									<documentation xml:lang="en"> The ID of the session
+										credential
+										to be used for executing grid operations as needed
+										by the
+										workflow.
+									</documentation>
+								</annotation>
+							</element>
+						</sequence>
+					</complexType>
+				</element>
+				<element name="amazon-webservices">
+					<annotation>
+						<documentation xml:lang="en"> Security context for
+							execution of the workflow
+						</documentation>
+					</annotation>
+					<complexType>
+						<sequence>
+							<element name="access-key-id" type="string">
+								<annotation>
+									<documentation xml:lang="en"> Amazon Web Services
+										Public Access
+										Key ID used to contact the AWS API's.
+									</documentation>
+								</annotation>
+							</element>
+							<element name="secret-access-key" type="string">
+								<annotation>
+									<documentation xml:lang="en"> Amazon Web Services AWS
+										Private
+										Secret Access Key.
+									</documentation>
+								</annotation>
+							</element>
+						</sequence>
+					</complexType>
+				</element>
+			</sequence>
+		</complexType>
+	</element>
+
+</schema>

Propchange: incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsd
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsdconfig
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsdconfig?rev=1187014&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsdconfig (added)
+++ incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsdconfig Thu Oct 20 19:42:28 2011
@@ -0,0 +1,7 @@
+<xb:config  xmlns:xb="http://www.bea.com/2002/09/xbean/config">
+
+    <xb:namespace uri="http://schemas.airavata.apache.org/workflow-execution-context">
+        <xb:package>org.apache.airavata.schemas.wec</xb:package>
+    </xb:namespace>
+    
+</xb:config>

Propchange: incubator/airavata/trunk/modules/commons/workflow-execution-context/schemas/workflow_execution_context.xsdconfig
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/execution/context/WorkflowContextHeaderBuilder.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/execution/context/WorkflowContextHeaderBuilder.java?rev=1187014&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/execution/context/WorkflowContextHeaderBuilder.java (added)
+++ incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/java/org/apaceh/airavata/common/workflow/execution/context/WorkflowContextHeaderBuilder.java Thu Oct 20 19:42:28 2011
@@ -0,0 +1,258 @@
+/*
+ *
+ * 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.apaceh.airavata.common.workflow.execution.context;
+
+import org.apache.airavata.common.utils.XMLUtil;
+import org.apache.airavata.schemas.wec.*;
+import org.xmlpull.v1.builder.XmlElement;
+
+public class WorkflowContextHeaderBuilder {
+
+    private WorkflowMonitoringContextDocument.WorkflowMonitoringContext workflowMonitoringContext = null;
+
+    private SecurityContextDocument.SecurityContext securityContext = null;
+
+    private SoaServiceEprsDocument.SoaServiceEprs soaServiceEprs = null;
+
+    private String userIdentifier = null;
+
+    private WorkflowOutputDataHandlingDocument.WorkflowOutputDataHandling workflowOutputDataHandling = null;
+
+    private ContextHeaderDocument.ContextHeader contextHeader = null;
+
+    private WorkflowSchedulingContextDocument.WorkflowSchedulingContext workflowSchedulingContext = null;
+
+
+    public WorkflowContextHeaderBuilder(String brokerUrl, String gfacUrl, String registryUrl, String experimentId, String workflowId) {
+        this.contextHeader = ContextHeaderDocument.ContextHeader.Factory.newInstance();
+
+        this.soaServiceEprs = SoaServiceEprsDocument.SoaServiceEprs.Factory.newInstance();
+        this.soaServiceEprs.setGfacUrl(gfacUrl);
+        this.soaServiceEprs.setRegistryUrl(registryUrl);
+
+        this.workflowMonitoringContext = WorkflowMonitoringContextDocument.WorkflowMonitoringContext.Factory.newInstance();
+        this.workflowMonitoringContext.setEventPublishEpr(brokerUrl);
+        this.workflowMonitoringContext.setWorkflowInstanceId(workflowId);
+        this.workflowMonitoringContext.setExperimentId(experimentId);
+
+        this.contextHeader.setWorkflowMonitoringContext(this.workflowMonitoringContext);
+        this.contextHeader.setSoaServiceEprs(this.soaServiceEprs);
+
+        this.contextHeader.setSecurityContext(SecurityContextDocument.SecurityContext.Factory.newInstance());
+        this.contextHeader.setWorkflowSchedulingContext(WorkflowSchedulingContextDocument.WorkflowSchedulingContext.Factory.newInstance());
+    }
+
+    public WorkflowContextHeaderBuilder setWorkflowMonitoringContext(WorkflowMonitoringContextDocument.WorkflowMonitoringContext workflowMonitoringContext) {
+        this.workflowMonitoringContext = workflowMonitoringContext;
+        return this;
+    }
+
+
+    public WorkflowContextHeaderBuilder setSecurityContext(SecurityContextDocument.SecurityContext securityContext) {
+        this.securityContext = securityContext;
+        return this;
+    }
+
+
+    public WorkflowContextHeaderBuilder setWorkflowOutputDataHandling(WorkflowOutputDataHandlingDocument.WorkflowOutputDataHandling workflowOutputDataHandling) {
+        this.workflowOutputDataHandling = workflowOutputDataHandling;
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setUserIdentifier(String userIdentifier) {
+        this.userIdentifier = userIdentifier;
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setContextHeader(ContextHeaderDocument.ContextHeader contextHeader) {
+        this.contextHeader = contextHeader;
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setWorkflowSchedulingContext(WorkflowSchedulingContextDocument.WorkflowSchedulingContext workflowSchedulingContext) {
+        this.workflowSchedulingContext = workflowSchedulingContext;
+        return this;
+    }
+
+    public ContextHeaderDocument.ContextHeader getContextHeader() {
+        return contextHeader;
+    }
+
+    public WorkflowSchedulingContextDocument.WorkflowSchedulingContext getWorkflowSchedulingContext() {
+        return workflowSchedulingContext;
+    }
+
+    public SecurityContextDocument.SecurityContext getSecurityContext() {
+        return securityContext;
+    }
+
+    public WorkflowOutputDataHandlingDocument.WorkflowOutputDataHandling getWorkflowOutputDataHandling() {
+        return workflowOutputDataHandling;
+    }
+
+    public SoaServiceEprsDocument.SoaServiceEprs getSoaServiceEprs() {
+        return soaServiceEprs;
+    }
+
+    public String getUserIdentifier() {
+        return userIdentifier;
+    }
+
+
+    public WorkflowMonitoringContextDocument.WorkflowMonitoringContext getWorkflowMonitoringContext() {
+        return workflowMonitoringContext;
+    }
+
+    public XmlElement getXml() {
+        this.contextHeader.setWorkflowMonitoringContext(this.workflowMonitoringContext);
+        this.contextHeader.setSoaServiceEprs(this.soaServiceEprs);
+        this.contextHeader.setSecurityContext(this.securityContext);
+        this.contextHeader.setWorkflowSchedulingContext(this.workflowSchedulingContext);
+        this.contextHeader.setUserIdentifier(this.userIdentifier);
+        this.contextHeader.setWorkflowOutputDataHandling(this.workflowOutputDataHandling);
+        return XMLUtil.stringToXmlElement3(this.contextHeader.toString());
+    }
+
+    public WorkflowContextHeaderBuilder setResourceSchedularUrl(String resourceSchedular) {
+        this.soaServiceEprs.setResourceSchedulerUrl(resourceSchedular);
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setWorkflowTemplateId(String template) {
+        this.workflowMonitoringContext.setWorkflowTemplateId(template);
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setWorkflowNodeId(String node) {
+        this.workflowMonitoringContext.setWorkflowNodeId(node);
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setWorkflowTimeStep(int timestep) {
+        this.workflowMonitoringContext.setWorkflowTimeStep(timestep);
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setServiceInstanceId(String node) {
+        this.workflowMonitoringContext.setServiceInstanceId(node);
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setServiceReplicaId(String node) {
+        this.workflowMonitoringContext.setServiceReplicaId(node);
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setEventPublishEpr(String node) {
+        this.workflowMonitoringContext.setEventPublishEpr(node);
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setErrorPublishEpr(String node) {
+        this.workflowMonitoringContext.setErrorPublishEpr(node);
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setNotificationTopic(String node) {
+        this.workflowMonitoringContext.setNotificationTopic(node);
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setGridProxy(byte[] gridProxy) {
+        if (this.securityContext == null) {
+            this.securityContext = SecurityContextDocument.SecurityContext.Factory.newInstance();
+        }
+        this.securityContext.setGridProxy(gridProxy);
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setGridMyProxyRepository(String myProxyServer, String userName, String password, int lifeTimeInHours) {
+        if (this.securityContext == null) {
+            this.securityContext = SecurityContextDocument.SecurityContext.Factory.newInstance();
+        }
+        SecurityContextDocument.SecurityContext.GridMyproxyRepository gridMyproxyRepository = this.securityContext.addNewGridMyproxyRepository();
+        gridMyproxyRepository.setMyproxyServer(myProxyServer);
+        gridMyproxyRepository.setUsername(userName);
+        gridMyproxyRepository.setPassword(password);
+        gridMyproxyRepository.setLifeTimeInhours(lifeTimeInHours);
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setSSHAuthentication(String accessKeyId, String secretKeyId) {
+        if (this.securityContext == null) {
+            this.securityContext = SecurityContextDocument.SecurityContext.Factory.newInstance();
+        }
+        SecurityContextDocument.SecurityContext.SshAuthentication sshAuthentication = this.securityContext.addNewSshAuthentication();
+        sshAuthentication.setAccessKeyId(accessKeyId);
+        sshAuthentication.setSecretAccessKey(secretKeyId);
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setCredentialManagementService(String scmUrl, String securitySessionId) {
+        if (this.securityContext == null) {
+            this.securityContext = SecurityContextDocument.SecurityContext.Factory.newInstance();
+        }
+        SecurityContextDocument.SecurityContext.CredentialManagementService credentialManagementService = this.securityContext.addNewCredentialManagementService();
+        credentialManagementService.setScmsUrl(scmUrl);
+        credentialManagementService.setExecutionSessionId(securitySessionId);
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder setAmazonWebServices(String accessKeyId, String secretAccesKey) {
+        if (this.securityContext == null) {
+            this.securityContext = SecurityContextDocument.SecurityContext.Factory.newInstance();
+        }
+        SecurityContextDocument.SecurityContext.AmazonWebservices amazonWebservices = this.securityContext.addNewAmazonWebservices();
+        amazonWebservices.setSecretAccessKey(accessKeyId);
+        amazonWebservices.setSecretAccessKey(secretAccesKey);
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder addApplicationOutputDataHandling(String outputDir, String outputDataRegistry, boolean dataPersistence) {
+        if (this.workflowOutputDataHandling == null) {
+            this.workflowOutputDataHandling = WorkflowOutputDataHandlingDocument.WorkflowOutputDataHandling.Factory.newInstance();
+        }
+        ApplicationOutputDataHandlingDocument.ApplicationOutputDataHandling applicationOutputDataHandling = this.workflowOutputDataHandling.addNewApplicationOutputDataHandling();
+        applicationOutputDataHandling.setOutputDataDirectory(outputDir);
+        applicationOutputDataHandling.setDataRegistryUrl(outputDataRegistry);
+        applicationOutputDataHandling.setDataPersistance(dataPersistence);
+        return this;
+    }
+
+    public WorkflowContextHeaderBuilder addApplicationSchedulingContext
+            (String workflowNodeId, String serviceId, String hostName, boolean wsGramPreffered, String gateKeepersEpr, String jobManager, int cpuCount, int nodeCount, String qName, int maxWalTime) {
+        if (this.workflowSchedulingContext == null) {
+            this.workflowSchedulingContext = WorkflowSchedulingContextDocument.WorkflowSchedulingContext.Factory.newInstance();
+        }
+        ApplicationSchedulingContextDocument.ApplicationSchedulingContext applicationSchedulingContext = this.workflowSchedulingContext.addNewApplicationSchedulingContext();
+        applicationSchedulingContext.setWorkflowNodeId(workflowNodeId);
+        applicationSchedulingContext.setCpuCount(cpuCount);
+        applicationSchedulingContext.setGatekeeperEpr(gateKeepersEpr);
+        applicationSchedulingContext.setHostName(hostName);
+        applicationSchedulingContext.setJobManager(jobManager);
+        applicationSchedulingContext.setMaxWallTime(maxWalTime);
+        applicationSchedulingContext.setServiceId(serviceId);
+        applicationSchedulingContext.setNodeCount(nodeCount);
+        applicationSchedulingContext.setQueueName(qName);
+        applicationSchedulingContext.setWsgramPreferred(wsGramPreffered);
+        return this;
+    }
+}

Added: incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/resources/workflow_execution_context.xsdconfig
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/resources/workflow_execution_context.xsdconfig?rev=1187014&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/resources/workflow_execution_context.xsdconfig (added)
+++ incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/resources/workflow_execution_context.xsdconfig Thu Oct 20 19:42:28 2011
@@ -0,0 +1,505 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema targetNamespace="http://schemas.airavata.apache.org/workflow-execution-context"
+        xmlns="http://www.w3.org/2001/XMLSchema"
+        xmlns:wec="http://schemas.airavata.apache.org/workflow-execution-context">
+
+    <element name='context-header'>
+        <annotation>
+            <documentation xml:lang='en'>
+                Element that contains Airavata
+                specific context information sent as a SOAP
+                header in a SOAP message.
+            </documentation>
+        </annotation>
+        <complexType>
+            <sequence>
+                <element minOccurs='0' maxOccurs='1' ref='wec:user-identifier'/>
+                <element minOccurs='1' maxOccurs='1' ref='wec:soa-service-eprs'/>
+                <element minOccurs='1' maxOccurs='1' ref='wec:workflow-monitoring-context'/>
+                <element minOccurs='0' maxOccurs='1' ref='wec:workflow-scheduling-context'/>
+                <element minOccurs='0' maxOccurs='1' ref='wec:workflow-output-data-handling'/>
+                <element minOccurs='0' maxOccurs='1' ref='wec:security-context'/>
+            </sequence>
+        </complexType>
+    </element>
+
+    <element name="user-identifier" type="string">
+        <annotation>
+            <documentation xml:lang="en">User that the workflow is
+                executed on behalf of,
+                user id is used to catalog data and for
+                monitoring purposes
+            </documentation>
+        </annotation>
+    </element>
+
+    <element name="soa-service-eprs">
+        <annotation>
+            <documentation xml:lang="en">
+                Element that contains
+                persistant service end points within the system.
+            </documentation>
+        </annotation>
+        <complexType>
+            <sequence>
+                <element name="gfac-url" type="anyURI" minOccurs='1'
+                         maxOccurs='1'>
+                    <annotation>
+                        <documentation xml:lang="en">Location of GFac factory
+                            service to use. (optional)
+                        </documentation>
+                    </annotation>
+                </element>
+                <element name="registry-url" type="anyURI" minOccurs='1'
+                         maxOccurs='1'>
+                    <annotation>
+                        <documentation xml:lang="en">Location of Registry
+                            service
+                            to use. (optional)
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="resource-scheduler-url" type="string"
+                         minOccurs='0' maxOccurs='1'>
+                    <annotation>
+                        <documentation xml:lang="en">Resource Scheduler to use
+                        </documentation>
+                    </annotation>
+                </element>
+            </sequence>
+        </complexType>
+    </element>
+
+    <element name="workflow-monitoring-context">
+        <annotation>
+            <documentation xml:lang="en">Workflow context for execution
+                of a instance used to
+                relate the specific activity in the context of
+                workflow and used for
+                monitoring
+                and illustarting the workflow
+                progress.
+            </documentation>
+        </annotation>
+        <complexType>
+            <sequence>
+                <element name="experiment-id" type="string" minOccurs="1"
+                         maxOccurs="1">
+                    <annotation>
+                        <documentation xml:lang="en">Experiment ID (REQUIRED in
+                            context), Defines
+                            the context of the workflow.
+                        </documentation>
+                    </annotation>
+                </element>
+                <element name="workflow-instance-id" type="anyURI"
+                         minOccurs="1" maxOccurs="1">
+                    <annotation>
+                        <documentation xml:lang="en">URI that identifies
+                            workflow instance that
+                            originated the message. (optional)
+                        </documentation>
+                    </annotation>
+                </element>
+                <element name="workflow-template-id" type="anyURI">
+                    <annotation>
+                        <documentation xml:lang="en">URI that identifies
+                            workflow template that was
+                            used to create the workflow instance.
+                            (optional)
+                        </documentation>
+                    </annotation>
+                </element>
+                <element name="workflow-node-id" type="string">
+                    <annotation>
+                        <documentation xml:lang="en">String that identifies
+                            uniqueley a node in
+                            workflow graph that originated that message.
+                            (optional)
+                        </documentation>
+                    </annotation>
+                </element>
+                <element name="workflow-time-step" type="int">
+                    <annotation>
+                        <documentation xml:lang="en">Increasing integer
+                            representing time in the
+                            workflow execution when the message
+                            originated. (optional)
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="service-instance-id" type="anyURI">
+                    <annotation>
+                        <documentation xml:lang="en">URI that identifies service
+                            instance that
+                            originated that message. (optional)
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="service-replica-id" type="anyURI">
+                    <annotation>
+                        <documentation xml:lang="en">URI that identifies the
+                            replica of service
+                            instance that originated that message, primarly
+                            used by Fault Tolerance
+                            service to overprovision. (optional)
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="event-publish-epr" type="anyURI" minOccurs="1"
+                         maxOccurs="1">
+                    <annotation>
+                        <documentation xml:lang="en">EPR for WS-Eventing sink
+                            where to send event. (optional)
+                            NOTE: currently any XML is
+                            accepted as there are many versions of
+                            WS-Addressing.
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="notification-topic" type="string" minOccurs="0"
+                         maxOccurs="1">
+                    <annotation>
+                        <documentation xml:lang="en">A Unique String to set as
+                            the topic for
+                            events sent on an experiment. The topic may be
+                            embedded with the
+                            event-publish-epr. An experiment id being unique
+                            may be chosen as
+                            topic.
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="error-publish-epr" type="anyURI">
+                    <annotation>
+                        <documentation xml:lang="en">EPR for WS-Eventing sink
+                            where to send errors (optional)
+                            NOTE: designed good for debugging
+                            and system level warnings, errors,
+                            etc
+                        </documentation>
+                    </annotation>
+                </element>
+            </sequence>
+        </complexType>
+    </element>
+
+    <element name="workflow-scheduling-context">
+        <annotation>
+            <documentation xml:lang="en">
+                Element that contains service
+                specific resource scheduling information sent
+                inside workflow
+                context. The purpose of this context is to schedule
+                individual
+                activities on a different resource.
+            </documentation>
+        </annotation>
+        <complexType>
+            <sequence>
+                <element minOccurs="1" maxOccurs="unbounded"
+                         ref="wec:application-scheduling-context"/>
+            </sequence>
+        </complexType>
+    </element>
+
+    <element name="application-scheduling-context">
+        <complexType>
+            <sequence>
+
+                <element name="workflow-node-id" type="string" minOccurs="0">
+                    <annotation>
+                        <documentation xml:lang="en">
+                            This is workflow node ID
+                            that is mapped to a resource.
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="service-id" type="anyURI" minOccurs="0">
+                    <annotation>
+                        <documentation xml:lang="en">
+                            This is service ID.
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="host-name" type="anyURI" minOccurs="0">
+                    <annotation>
+                        <documentation xml:lang="en">
+                            head node of the resource
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="wsgram-preferred" type="boolean" minOccurs="0">
+                    <annotation>
+                        <documentation xml:lang="en">
+                            If true then wsgram will be
+                            used, false pre-wsgram will be used.
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="gatekeeper-epr" type="anyURI" minOccurs="0">
+                    <annotation>
+                        <documentation xml:lang="en">
+                            GRAM EPR of the resource
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="job-manager" type="string" minOccurs="0">
+                    <annotation>
+                        <documentation xml:lang="en">
+                            LRM job manager on the
+                            resource, ex: PBS, LSF.
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="cpu-count" type="int" minOccurs="0">
+                    <annotation>
+                        <documentation xml:lang="en">
+                            number of CPU's allocated
+                            on the compute cluster
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="node-count" type="int" minOccurs="0">
+                    <annotation>
+                        <documentation xml:lang="en">
+                            number of nodes allocated
+                            on the compute cluster
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="queue-name" type="string" minOccurs="0">
+                    <annotation>
+                        <documentation xml:lang="en">
+                            Job queue name if any.
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="max-wall-time" type="int" minOccurs="0">
+                    <annotation>
+                        <documentation xml:lang="en">
+                            number of CPU's allocated
+                            on the compute cluster
+                        </documentation>
+                    </annotation>
+                </element>
+            </sequence>
+        </complexType>
+    </element>
+
+    <element name="workflow-output-data-handling">
+        <annotation>
+            <documentation xml:lang="en">
+                Element that contains
+                application specific resource scheduling information sent
+                inside
+                workflow context. The purpose of this context is to handle
+                individual
+                activities with different needs like intermediate data
+                need not be persisted.
+            </documentation>
+        </annotation>
+        <complexType>
+            <sequence>
+                <element minOccurs="1" maxOccurs="unbounded"
+                         ref="wec:application-output-data-handling"/>
+            </sequence>
+        </complexType>
+    </element>
+
+    <element name="application-output-data-handling">
+        <complexType>
+            <sequence>
+                <element name="data-registry-url" type="anyURI">
+                    <annotation>
+                        <documentation xml:lang="en">(Optional) If a seperate
+                            Data
+                            Registry is used for catlogging data, the associated location
+                            of the
+                            Data registry
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="output-data-directory" type="anyURI">
+                    <annotation>
+                        <documentation xml:lang="en">(Optional) If the workflow
+                            outputs are to be staged to a pre-specified location, then the
+                            output data staging directory should be provided.
+                        </documentation>
+                    </annotation>
+                </element>
+
+                <element name="data-persistance" type="boolean">
+                    <annotation>
+                        <documentation xml:lang="en">(Optional) If the
+                            intermediate workflow
+                            outputs are to be discarded after execution,
+                            this flag should be set to
+                            false. By defualt this flag should be
+                            true assuming all data will
+                            be persisted.
+                        </documentation>
+                    </annotation>
+                </element>
+
+            </sequence>
+        </complexType>
+    </element>
+
+    <element name="security-context">
+        <annotation>
+            <documentation xml:lang="en">Security context for execution
+                of the workflow
+            </documentation>
+        </annotation>
+        <complexType>
+            <sequence>
+                <element name="grid-proxy" type="base64Binary">
+                    <annotation>
+                        <documentation xml:lang="en">Security context for Grid
+                            Security
+                            Infrastructure X509 Proxy with trusted chain.
+                        </documentation>
+                    </annotation>
+                </element>
+                <element name="grid-myproxy-repository">
+                    <annotation>
+                        <documentation xml:lang="en">Security context for Grid
+                            Security MyProxy
+                            Service
+                        </documentation>
+                    </annotation>
+                    <complexType>
+                        <sequence>
+                            <element name="myproxy-server" type="string">
+                                <annotation>
+                                    <documentation xml:lang="en">MyProxy Server.
+                                    </documentation>
+                                </annotation>
+                            </element>
+                            <element name="username" type="string">
+                                <annotation>
+                                    <documentation xml:lang="en">MyProxy User Name.
+                                    </documentation>
+                                </annotation>
+                            </element>
+                            <element name="password" type="string">
+                                <annotation>
+                                    <documentation xml:lang="en">MyProxy Password.
+                                    </documentation>
+                                </annotation>
+                            </element>
+                            <element name="life-time-inhours" type="int">
+                                <annotation>
+                                    <documentation xml:lang="en">MyProxy Proxy Life time.
+                                    </documentation>
+                                </annotation>
+                            </element>
+                        </sequence>
+                    </complexType>
+                </element>
+                <element name="ssh-authentication">
+                    <annotation>
+                        <documentation xml:lang="en">Security context for
+                            execution of the workflow
+                            on SSH accessed resources.
+                        </documentation>
+                    </annotation>
+                    <complexType>
+                        <sequence>
+                            <element name="access-key-id" type="string">
+                                <annotation>
+                                    <documentation xml:lang="en">Amazon Web Services
+                                        Public Access
+                                        Key ID used to contact the AWS API's.
+                                    </documentation>
+                                </annotation>
+                            </element>
+                            <element name="secret-access-key" type="string">
+                                <annotation>
+                                    <documentation xml:lang="en">Amazon Web Services AWS
+                                        Private
+                                        Secret Access Key.
+                                    </documentation>
+                                </annotation>
+                            </element>
+                        </sequence>
+                    </complexType>
+                </element>
+                <element name="credential-management-service">
+                    <annotation>
+                        <documentation xml:lang="en">Security context for
+                            execution of the workflow
+                        </documentation>
+                    </annotation>
+                    <complexType>
+                        <sequence>
+                            <element name="scms-url" type="anyURI">
+                                <annotation>
+                                    <documentation xml:lang="en">Location of the SCMS
+                                        (Session
+                                        Credential Management Service).
+                                    </documentation>
+                                </annotation>
+                            </element>
+                            <element name="execution-session-id" type="string">
+                                <annotation>
+                                    <documentation xml:lang="en">The ID of the session
+                                        credential
+                                        to be used for executing grid operations as needed
+                                        by the
+                                        workflow.
+                                    </documentation>
+                                </annotation>
+                            </element>
+                        </sequence>
+                    </complexType>
+                </element>
+                <element name="amazon-webservices">
+                    <annotation>
+                        <documentation xml:lang="en">Security context for
+                            execution of the workflow
+                        </documentation>
+                    </annotation>
+                    <complexType>
+                        <sequence>
+                            <element name="access-key-id" type="string">
+                                <annotation>
+                                    <documentation xml:lang="en">Amazon Web Services
+                                        Public Access
+                                        Key ID used to contact the AWS API's.
+                                    </documentation>
+                                </annotation>
+                            </element>
+                            <element name="secret-access-key" type="string">
+                                <annotation>
+                                    <documentation xml:lang="en">Amazon Web Services AWS
+                                        Private
+                                        Secret Access Key.
+                                    </documentation>
+                                </annotation>
+                            </element>
+                        </sequence>
+                    </complexType>
+                </element>
+            </sequence>
+        </complexType>
+    </element>
+
+</schema>

Propchange: incubator/airavata/trunk/modules/commons/workflow-execution-context/src/main/resources/workflow_execution_context.xsdconfig
------------------------------------------------------------------------------
    svn:executable = *