You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by bf...@apache.org on 2011/03/02 01:56:35 UTC

svn commit: r1076072 - in /oodt/branches/wengine-branch/wengine/src/main: java/org/apache/oodt/cas/workflow/instance/ resources/policy/workflows/

Author: bfoster
Date: Wed Mar  2 00:56:35 2011
New Revision: 1076072

URL: http://svn.apache.org/viewvc?rev=1076072&view=rev
Log:

- updated WorkflowConnectTaskInstance to update its workflow metadata with the merge of workflow metadata for the spawned workflows

- add test workflow example

Added:
    oodt/branches/wengine-branch/wengine/src/main/java/org/apache/oodt/cas/workflow/instance/SimpleNCalculator.java   (with props)
Modified:
    oodt/branches/wengine-branch/wengine/src/main/java/org/apache/oodt/cas/workflow/instance/WorkflowConnectTaskInstance.java
    oodt/branches/wengine-branch/wengine/src/main/resources/policy/workflows/WorkflowModelTestFile.xml

Added: oodt/branches/wengine-branch/wengine/src/main/java/org/apache/oodt/cas/workflow/instance/SimpleNCalculator.java
URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/wengine/src/main/java/org/apache/oodt/cas/workflow/instance/SimpleNCalculator.java?rev=1076072&view=auto
==============================================================================
--- oodt/branches/wengine-branch/wengine/src/main/java/org/apache/oodt/cas/workflow/instance/SimpleNCalculator.java (added)
+++ oodt/branches/wengine-branch/wengine/src/main/java/org/apache/oodt/cas/workflow/instance/SimpleNCalculator.java Wed Mar  2 00:56:35 2011
@@ -0,0 +1,13 @@
+package org.apache.oodt.cas.workflow.instance;
+
+import org.apache.oodt.cas.workflow.metadata.ControlMetadata;
+
+public class SimpleNCalculator implements WorkflowConnectTaskInstance.NCalculator {
+
+	public static final String N = "SimpleNCalculator/N";
+	
+	public int determineN(ControlMetadata ctrlMetadata) {
+		return Integer.parseInt(ctrlMetadata.getMetadata(N));
+	}
+
+}

Propchange: oodt/branches/wengine-branch/wengine/src/main/java/org/apache/oodt/cas/workflow/instance/SimpleNCalculator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: oodt/branches/wengine-branch/wengine/src/main/java/org/apache/oodt/cas/workflow/instance/WorkflowConnectTaskInstance.java
URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/wengine/src/main/java/org/apache/oodt/cas/workflow/instance/WorkflowConnectTaskInstance.java?rev=1076072&r1=1076071&r2=1076072&view=diff
==============================================================================
--- oodt/branches/wengine-branch/wengine/src/main/java/org/apache/oodt/cas/workflow/instance/WorkflowConnectTaskInstance.java (original)
+++ oodt/branches/wengine-branch/wengine/src/main/java/org/apache/oodt/cas/workflow/instance/WorkflowConnectTaskInstance.java Wed Mar  2 00:56:35 2011
@@ -15,6 +15,7 @@ import org.apache.oodt.cas.workflow.stat
 import org.apache.oodt.cas.workflow.state.results.ResultsFailureState;
 import org.apache.oodt.cas.workflow.state.results.ResultsState;
 import org.apache.oodt.cas.workflow.state.results.ResultsSuccessState;
+import org.apache.oodt.cas.workflow.util.WorkflowUtils;
 
 public class WorkflowConnectTaskInstance extends TaskInstance {
 	
@@ -103,10 +104,21 @@ public class WorkflowConnectTaskInstance
 					return new ResultsFailureState("Failed to get state of spawned workflow [InstanceId='" + spawnedInstanceId + "']");
 				}
 			}
-			if (nDone == spawnedInstanceIds.size())
+			if (nDone == spawnedInstanceIds.size()) {
+				Metadata dynMet = new Metadata();
+				for (String spawnedInstanceId : spawnedInstanceIds) {
+					try {
+						dynMet = WorkflowUtils.mergeMetadata(dynMet, this.weClient.getWorkflowMetadata(spawnedInstanceId));
+					}catch (Exception e) {
+						return new ResultsFailureState("Failed to get metadata of spawned workflow [InstanceId='" + spawnedInstanceId + "']");
+					}
+				}
+				ctrlMetadata.replaceLocalMetadata(dynMet);
+				ctrlMetadata.setAsWorkflowMetadataKey((String[]) dynMet.getAllKeys().toArray());
 				return new ResultsSuccessState("All spawned workflow completed successfully");
-			else
+			}else {
 				return new ResultsBailState("Waiting on " + (spawnedInstanceIds.size() - nDone) + " of " + spawnedInstanceIds.size() + " spawned workflows to finish");
+			}
 		}
 	}
 	

Modified: oodt/branches/wengine-branch/wengine/src/main/resources/policy/workflows/WorkflowModelTestFile.xml
URL: http://svn.apache.org/viewvc/oodt/branches/wengine-branch/wengine/src/main/resources/policy/workflows/WorkflowModelTestFile.xml?rev=1076072&r1=1076071&r2=1076072&view=diff
==============================================================================
--- oodt/branches/wengine-branch/wengine/src/main/resources/policy/workflows/WorkflowModelTestFile.xml (original)
+++ oodt/branches/wengine-branch/wengine/src/main/resources/policy/workflows/WorkflowModelTestFile.xml Wed Mar  2 00:56:35 2011
@@ -4,6 +4,21 @@
 	xmlns:cas="http://oodt.jpl.nasa.gov/2.0/cas"
 	xmlns:p="http://oodt.jpl.nasa.gov/2.0/cas/property">
 	
+	<!-- Connection Workflow Test -->
+	<workflow id="ConnectWorkflowTest" execution="sequential">
+		<configuration extends="test"/>
+		<task id-ref="Orbit"/>
+		<task id="MultiRun" class="org.apache.oodt.cas.workflow.instance.WorkflowConnectTaskInstance">
+			<configuration>
+				<property name="WorkflowConnect/ModelId" value="TestConnectTask"/>
+				<property name="WorkflowConnect/NCalculator/Class" value="org.apache.oodt.cas.workflow.instance.SimpleNCalculator"/>
+				<property name="SimpleNCalculator/N" value="3"/>
+			</configuration>
+		</task>
+	</workflow> 
+	<task id="TestConnectTask" class="org.apache.oodt.cas.workflow.instance.ValidateMetadataInstance"/>
+
+	<!-- Workflow Metadata Flow Test -->
 	<workflow id="TestWorkflow" execution="sequential">
 		<configuration extends="test"/>
 		<task id-ref="Orbit"/>