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