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"/>