Author: mattmann
Date: Sat Oct 6 21:38:29 2012
New Revision: 1395176
URL: http://svn.apache.org/viewvc?rev=1395176&view=rev
Log:
- fix for OODT-516: Add WorkflowLifecycle tests that check pctComplete for
wengine and w1 style lifecycles
Modified:
oodt/trunk/CHANGES.txt
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycle.java
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycleManager.java
oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/lifecycle/TestWorkflowLifecycleManager.java
Modified: oodt/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/oodt/trunk/CHANGES.txt?rev=1395176&r1=1395175&r2=1395176&view=diff
==============================================================================
--- oodt/trunk/CHANGES.txt (original)
+++ oodt/trunk/CHANGES.txt Sat Oct 6 21:38:29 2012
@@ -4,6 +4,9 @@ Apache OODT Change Log
Release 0.5
--------------------------------------------
+* OODT-516: Add WorkflowLifecycle tests that check pctComplete for
+ wengine and w1 style lifecycles (mattmann)
+
* OODT-501: Method to create Processor from Instance should be based on
Graph structure (mattmann)
Modified:
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycle.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycle.java?rev=1395176&r1=1395175&r2=1395176&view=diff
==============================================================================
---
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycle.java
(original)
+++
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycle.java
Sat Oct 6 21:38:29 2012
@@ -175,8 +175,10 @@ public class WorkflowLifecycle {
if (this.stages != null && this.stages.size() > 0) {
for (Iterator i = this.stages.iterator(); i.hasNext();) {
WorkflowLifecycleStage stage = (WorkflowLifecycleStage) i.next();
- if (stage.getStates().contains(status)) {
- return stage;
+ for(WorkflowState state: stage.getStates()){
+ if(state.getName().equals(status)){
+ return stage;
+ }
}
}
Modified:
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycleManager.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycleManager.java?rev=1395176&r1=1395175&r2=1395176&view=diff
==============================================================================
---
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycleManager.java
(original)
+++
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/lifecycle/WorkflowLifecycleManager.java
Sat Oct 6 21:38:29 2012
@@ -212,7 +212,9 @@ public class WorkflowLifecycleManager {
*/
public int getLastCompletedStageNum(WorkflowInstance inst) {
int currStageNum = getStageNum(inst);
- if (inst.getStatus().equals(WorkflowStatus.FINISHED)
+ if ((inst.getStatus().equals(WorkflowStatus.FINISHED) ||
+ (inst.getState().getCategory() != null &&
+ inst.getState().getCategory().getName().equals("done")))
&& currStageNum == getNumStages(inst.getWorkflow())) {
return currStageNum;
} else
Modified:
oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/lifecycle/TestWorkflowLifecycleManager.java
URL:
http://svn.apache.org/viewvc/oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/lifecycle/TestWorkflowLifecycleManager.java?rev=1395176&r1=1395175&r2=1395176&view=diff
==============================================================================
---
oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/lifecycle/TestWorkflowLifecycleManager.java
(original)
+++
oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/lifecycle/TestWorkflowLifecycleManager.java
Sat Oct 6 21:38:29 2012
@@ -21,6 +21,10 @@ package org.apache.oodt.cas.workflow.lif
import java.io.File;
import java.util.List;
+import org.apache.oodt.cas.workflow.structs.Graph;
+import org.apache.oodt.cas.workflow.structs.ParentChildWorkflow;
+import org.apache.oodt.cas.workflow.structs.WorkflowInstance;
+
//Junit imports
import junit.framework.TestCase;
@@ -36,6 +40,36 @@ public class TestWorkflowLifecycleManage
private WorkflowLifecycleManager lifecycle;
+ public void testPctCompleteWengineStages(){
+ ParentChildWorkflow workflow = new ParentChildWorkflow(new Graph());
+ WorkflowState successState =
lifecycle.getDefaultLifecycle().createState("Success", "done", "All done.");
+ WorkflowInstance instance = new WorkflowInstance();
+ instance.setState(successState);
+ instance.setParentChildWorkflow(workflow);
+ double pct = lifecycle.getPercentageComplete(instance);
+ assertNotNull(pct);
+ assertEquals(1.0, pct);
+ }
+
+ public void testPctCompleteWorkflow1Stages() throws InstantiationException{
+ this.lifecycle = new WorkflowLifecycleManager("./src/main/resources"
+ + "/examples/workflow-lifecycle.xml");
+ assertNotNull(this.lifecycle);
+ assertNotNull(this.lifecycle.getDefaultLifecycle());
+ assertNotNull(this.lifecycle.getDefaultLifecycle().getStages());
+ ParentChildWorkflow workflow = new ParentChildWorkflow(new Graph());
+ WorkflowState successState =
lifecycle.getDefaultLifecycle().createState("FINISHED", "done", "All done.");
+ WorkflowInstance instance = new WorkflowInstance();
+ instance.setState(successState);
+ instance.setParentChildWorkflow(workflow);
+ double pct = lifecycle.getPercentageComplete(instance);
+ assertNotNull(pct);
+ assertEquals(1.0, pct);
+
+
+ }
+
+
public void testStages() {
assertNotNull(this.lifecycle.getDefaultLifecycle());
assertNotNull(this.lifecycle.getDefaultLifecycle().getStages());