You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by ma...@apache.org on 2012/04/29 04:58:08 UTC
svn commit: r1331863 - in /oodt/trunk/workflow/src:
main/java/org/apache/oodt/cas/workflow/engine/
main/java/org/apache/oodt/cas/workflow/structs/
test/org/apache/oodt/cas/workflow/repository/
test/org/apache/oodt/cas/workflow/structs/
Author: mattmann
Date: Sun Apr 29 02:58:08 2012
New Revision: 1331863
URL: http://svn.apache.org/viewvc?rev=1331863&view=rev
Log:
- OODT-215 and OODT-310 WIP: down to 2 test failures, 1 of which is in the TestXmlRpcWorkflowManager
Modified:
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/ConditionProcessor.java
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/ParallelProcessor.java
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/SequentialProcessor.java
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/TaskProcessor.java
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/ThreadPoolWorkflowEngine.java
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/WorkflowProcessor.java
oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/structs/WorkflowInstance.java
oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/repository/TestPackagedWorkflowRepository.java
oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/structs/TestFILOPrioritySorter.java
oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/structs/TestHighestFIFOPrioritySorter.java
oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/structs/TestHighestPrioritySorter.java
Modified: oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/ConditionProcessor.java
URL: http://svn.apache.org/viewvc/oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/ConditionProcessor.java?rev=1331863&r1=1331862&r2=1331863&view=diff
==============================================================================
--- oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/ConditionProcessor.java (original)
+++ oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/ConditionProcessor.java Sun Apr 29 02:58:08 2012
@@ -17,6 +17,7 @@
package org.apache.oodt.cas.workflow.engine;
//OODT import
+import org.apache.oodt.cas.workflow.lifecycle.WorkflowLifecycleManager;
import org.apache.oodt.cas.workflow.structs.Priority;
/**
@@ -30,8 +31,8 @@ import org.apache.oodt.cas.workflow.stru
*/
public class ConditionProcessor extends TaskProcessor {
- public ConditionProcessor() {
- super();
+ public ConditionProcessor(WorkflowLifecycleManager lifecycleManager) {
+ super(lifecycleManager);
this.setConditionProcessor(true);
}
Modified: oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/ParallelProcessor.java
URL: http://svn.apache.org/viewvc/oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/ParallelProcessor.java?rev=1331863&r1=1331862&r2=1331863&view=diff
==============================================================================
--- oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/ParallelProcessor.java (original)
+++ oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/ParallelProcessor.java Sun Apr 29 02:58:08 2012
@@ -34,7 +34,8 @@ import org.apache.oodt.cas.workflow.util
*/
public class ParallelProcessor extends WorkflowProcessor {
- public ParallelProcessor() {
+ public ParallelProcessor(WorkflowLifecycleManager lifecycleMgr) {
+ super(lifecycleMgr);
}
public List<WorkflowProcessor> getRunnableSubProcessors() {
@@ -42,7 +43,7 @@ public class ParallelProcessor extends W
}
public void handleSubProcessorMetadata(WorkflowProcessor workflowProcessor) {
- this.setDynamicMetadata(wutils.mergeMetadata(this.getDynamicMetadata(),
+ this.setDynamicMetadata(mergeMetadata(this.getDynamicMetadata(),
workflowProcessor.getPassThroughDynamicMetadata()));
}
Modified: oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/SequentialProcessor.java
URL: http://svn.apache.org/viewvc/oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/SequentialProcessor.java?rev=1331863&r1=1331862&r2=1331863&view=diff
==============================================================================
--- oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/SequentialProcessor.java (original)
+++ oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/SequentialProcessor.java Sun Apr 29 02:58:08 2012
@@ -21,6 +21,8 @@ import java.util.Collections;
import java.util.List;
import java.util.Vector;
+import org.apache.oodt.cas.workflow.lifecycle.WorkflowLifecycleManager;
+
/**
*
* WorkflowProcessor which handles running sub-processors in sequence.
@@ -30,6 +32,10 @@ import java.util.Vector;
* @version $Revision$
*/
public class SequentialProcessor extends WorkflowProcessor {
+
+ public SequentialProcessor(WorkflowLifecycleManager lifecycleManager){
+ super(lifecycleManager);
+ }
@Override
public List<WorkflowProcessor> getRunnableSubProcessors() {
Modified: oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/TaskProcessor.java
URL: http://svn.apache.org/viewvc/oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/TaskProcessor.java?rev=1331863&r1=1331862&r2=1331863&view=diff
==============================================================================
--- oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/TaskProcessor.java (original)
+++ oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/TaskProcessor.java Sun Apr 29 02:58:08 2012
@@ -23,6 +23,7 @@ import java.util.List;
import java.util.Vector;
//OODT imports
+import org.apache.oodt.cas.workflow.lifecycle.WorkflowLifecycleManager;
import org.apache.oodt.cas.workflow.structs.Priority;
import org.apache.oodt.cas.workflow.structs.WorkflowTaskInstance;
@@ -40,8 +41,8 @@ public class TaskProcessor extends Workf
private Class<? extends WorkflowTaskInstance> instanceClass;
private String jobId;
- public TaskProcessor() {
- super();
+ public TaskProcessor(WorkflowLifecycleManager lifecycleManager) {
+ super(lifecycleManager);
}
public Class<? extends WorkflowTaskInstance> getInstanceClass() {
Modified: oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/ThreadPoolWorkflowEngine.java
URL: http://svn.apache.org/viewvc/oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/ThreadPoolWorkflowEngine.java?rev=1331863&r1=1331862&r2=1331863&view=diff
==============================================================================
--- oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/ThreadPoolWorkflowEngine.java (original)
+++ oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/ThreadPoolWorkflowEngine.java Sun Apr 29 02:58:08 2012
@@ -21,9 +21,13 @@ package org.apache.oodt.cas.workflow.eng
import org.apache.oodt.cas.metadata.Metadata;
import org.apache.oodt.cas.resource.structs.Job;
import org.apache.oodt.cas.workflow.instrepo.WorkflowInstanceRepository;
+import org.apache.oodt.cas.workflow.lifecycle.WorkflowLifecycleManager;
import org.apache.oodt.cas.workflow.structs.Workflow;
import org.apache.oodt.cas.workflow.structs.WorkflowInstance;
+import org.apache.oodt.cas.workflow.structs.WorkflowStatus;
+import org.apache.oodt.cas.workflow.structs.WorkflowTask;
import org.apache.oodt.cas.workflow.structs.exceptions.EngineException;
+import org.apache.oodt.cas.workflow.structs.exceptions.InstanceRepositoryException;
import org.apache.oodt.commons.util.DateConvert;
//JDK imports
@@ -39,6 +43,7 @@ import EDU.oswego.cs.dl.util.concurrent.
import EDU.oswego.cs.dl.util.concurrent.Channel;
import EDU.oswego.cs.dl.util.concurrent.LinkedQueue;
import EDU.oswego.cs.dl.util.concurrent.PooledExecutor;
+import EDU.oswego.cs.dl.util.concurrent.ThreadedExecutor;
/**
*
@@ -50,7 +55,7 @@ import EDU.oswego.cs.dl.util.concurrent.
* @author mattmann
*
*/
-public class ThreadPoolWorkflowEngine implements WorkflowEngine {
+public class ThreadPoolWorkflowEngine implements WorkflowEngine, WorkflowStatus {
/* our thread pool */
private PooledExecutor pool = null;
@@ -75,6 +80,8 @@ public class ThreadPoolWorkflowEngine im
private EngineRunner runner;
+ private WorkflowLifecycleManager lifecycleManager;
+
/**
* Default Constructor.
*
@@ -127,48 +134,91 @@ public class ThreadPoolWorkflowEngine im
"org.apache.oodt.cas.workflow.engine.preConditionWaitTime", 10)
.longValue();
- this.condProcessor = new ConditionProcessor();
+ this.condProcessor = new ConditionProcessor(lifecycleManager);
}
- /* (non-Javadoc)
- * @see org.apache.oodt.cas.workflow.engine.WorkflowEngine#startWorkflow(org.apache.oodt.cas.workflow.structs.Workflow, org.apache.oodt.cas.metadata.Metadata)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.apache.oodt.cas.workflow.engine.WorkflowEngine#startWorkflow(org.apache
+ * .oodt.cas.workflow.structs.Workflow, org.apache.oodt.cas.metadata.Metadata)
*/
@Override
public WorkflowInstance startWorkflow(Workflow workflow, Metadata metadata)
throws EngineException {
- // TODO Auto-generated method stub
- return null;
+ // to start the workflow, we create a default workflow instance
+ // populate it
+ // persist it
+ // add it to the worker map
+ // start it
+
+ WorkflowInstance wInst = new WorkflowInstance();
+ wInst.setWorkflow(workflow);
+ wInst.setCurrentTaskId(((WorkflowTask) workflow.getTasks().get(0))
+ .getTaskId());
+ wInst.setSharedContext(metadata);
+ wInst.setStatus(CREATED);
+ persistWorkflowInstance(wInst);
+
+ SequentialProcessor worker = new SequentialProcessor(this.lifecycleManager);
+ workerMap.put(wInst.getId(), worker);
+
+ wInst.setStatus(QUEUED);
+ persistWorkflowInstance(wInst);
+
+ /*
+ * try { pool.execute(new ThreadedExecutor(worker, this.condProcessor)); }
+ * catch (InterruptedException e) { throw new EngineException(e); }
+ */
+
+ return wInst;
}
- /* (non-Javadoc)
- * @see org.apache.oodt.cas.workflow.engine.WorkflowEngine#stopWorkflow(java.lang.String)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.apache.oodt.cas.workflow.engine.WorkflowEngine#stopWorkflow(java.lang
+ * .String)
*/
@Override
public void stopWorkflow(String workflowInstId) {
// TODO Auto-generated method stub
-
+
}
- /* (non-Javadoc)
- * @see org.apache.oodt.cas.workflow.engine.WorkflowEngine#pauseWorkflowInstance(java.lang.String)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.apache.oodt.cas.workflow.engine.WorkflowEngine#pauseWorkflowInstance
+ * (java.lang.String)
*/
@Override
public void pauseWorkflowInstance(String workflowInstId) {
// TODO Auto-generated method stub
-
+
}
- /* (non-Javadoc)
- * @see org.apache.oodt.cas.workflow.engine.WorkflowEngine#resumeWorkflowInstance(java.lang.String)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.apache.oodt.cas.workflow.engine.WorkflowEngine#resumeWorkflowInstance
+ * (java.lang.String)
*/
@Override
public void resumeWorkflowInstance(String workflowInstId) {
// TODO Auto-generated method stub
-
+
}
- /* (non-Javadoc)
- * @see org.apache.oodt.cas.workflow.engine.WorkflowEngine#getInstanceRepository()
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.apache.oodt.cas.workflow.engine.WorkflowEngine#getInstanceRepository()
*/
@Override
public WorkflowInstanceRepository getInstanceRepository() {
@@ -176,8 +226,12 @@ public class ThreadPoolWorkflowEngine im
return null;
}
- /* (non-Javadoc)
- * @see org.apache.oodt.cas.workflow.engine.WorkflowEngine#updateMetadata(java.lang.String, org.apache.oodt.cas.metadata.Metadata)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.apache.oodt.cas.workflow.engine.WorkflowEngine#updateMetadata(java.
+ * lang.String, org.apache.oodt.cas.metadata.Metadata)
*/
@Override
public boolean updateMetadata(String workflowInstId, Metadata met) {
@@ -185,17 +239,25 @@ public class ThreadPoolWorkflowEngine im
return false;
}
- /* (non-Javadoc)
- * @see org.apache.oodt.cas.workflow.engine.WorkflowEngine#setWorkflowManagerUrl(java.net.URL)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.apache.oodt.cas.workflow.engine.WorkflowEngine#setWorkflowManagerUrl
+ * (java.net.URL)
*/
@Override
public void setWorkflowManagerUrl(URL url) {
// TODO Auto-generated method stub
-
+
}
- /* (non-Javadoc)
- * @see org.apache.oodt.cas.workflow.engine.WorkflowEngine#getWallClockMinutes(java.lang.String)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.apache.oodt.cas.workflow.engine.WorkflowEngine#getWallClockMinutes(
+ * java.lang.String)
*/
@Override
public double getWallClockMinutes(String workflowInstId) {
@@ -203,8 +265,11 @@ public class ThreadPoolWorkflowEngine im
return 0;
}
- /* (non-Javadoc)
- * @see org.apache.oodt.cas.workflow.engine.WorkflowEngine#getCurrentTaskWallClockMinutes(java.lang.String)
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.oodt.cas.workflow.engine.WorkflowEngine#
+ * getCurrentTaskWallClockMinutes(java.lang.String)
*/
@Override
public double getCurrentTaskWallClockMinutes(String workflowInstId) {
@@ -212,15 +277,19 @@ public class ThreadPoolWorkflowEngine im
return 0;
}
- /* (non-Javadoc)
- * @see org.apache.oodt.cas.workflow.engine.WorkflowEngine#getWorkflowInstanceMetadata(java.lang.String)
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.apache.oodt.cas.workflow.engine.WorkflowEngine#getWorkflowInstanceMetadata
+ * (java.lang.String)
*/
@Override
public Metadata getWorkflowInstanceMetadata(String workflowInstId) {
// TODO Auto-generated method stub
return null;
}
-
+
protected static double getWallClockMinutes(WorkflowInstance inst) {
if (inst == null) {
return 0.0;
@@ -300,7 +369,7 @@ public class ThreadPoolWorkflowEngine im
double diffMins = diffSecs / 60.0;
return diffMins;
}
-
+
private static Date safeDateConvert(String isoTimeStr) {
try {
return DateConvert.isoParse(isoTimeStr);
@@ -310,11 +379,28 @@ public class ThreadPoolWorkflowEngine im
}
}
-
-
-
- //FIXME: add back in the ThreadPoolWorkflowEngine implementation,
- //after the sub-modules are fixed.
-
+ private synchronized void persistWorkflowInstance(WorkflowInstance wInst)
+ throws EngineException {
+
+ try {
+ if (wInst.getId() == null
+ || (wInst.getId() != null && wInst.getId().equals(""))) {
+ // we have to persist it by adding it
+ // rather than updating it
+ instRep.addWorkflowInstance(wInst);
+
+ } else {
+ // persist by update
+ instRep.updateWorkflowInstance(wInst);
+ }
+ } catch (InstanceRepositoryException e) {
+ e.printStackTrace();
+ throw new EngineException(e.getMessage());
+ }
+
+ }
+
+ // FIXME: add back in the ThreadPoolWorkflowEngine implementation,
+ // after the sub-modules are fixed.
}
Modified: oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/WorkflowProcessor.java
URL: http://svn.apache.org/viewvc/oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/WorkflowProcessor.java?rev=1331863&r1=1331862&r2=1331863&view=diff
==============================================================================
--- oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/WorkflowProcessor.java (original)
+++ oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/engine/WorkflowProcessor.java Sun Apr 29 02:58:08 2012
@@ -17,8 +17,12 @@
package org.apache.oodt.cas.workflow.engine;
//JDK imports
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Vector;
+import java.util.Map.Entry;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -26,7 +30,6 @@ import java.util.logging.Logger;
import org.apache.oodt.cas.metadata.Metadata;
import org.apache.oodt.cas.workflow.lifecycle.WorkflowLifecycleManager;
import org.apache.oodt.cas.workflow.lifecycle.WorkflowState;
-import org.apache.oodt.cas.workflow.util.WorkflowUtils;
import org.apache.oodt.cas.workflow.structs.Priority;
import org.apache.oodt.cas.workflow.structs.WorkflowInstance;
@@ -67,12 +70,9 @@ public abstract class WorkflowProcessor
private Metadata dynamicMetadata;
private boolean isConditionProcessor;
private int timesBlocked;
- protected WorkflowUtils wutils;
- protected WorkflowLifecycleManager lifecycleMgr;
+ protected WorkflowLifecycleManager lifecycleManager;
- public WorkflowProcessor() {
- this.state = lifecycleMgr.getDefaultLifecycle().createState("Null",
- "initial", "");
+ public WorkflowProcessor(WorkflowLifecycleManager lifecycleManager) {
this.listeners = new Vector<WorkflowProcessorListener>();
this.ProcessorDateTimeInfo = new ProcessorDateTimeInfo();
this.staticMetadata = new Metadata();
@@ -82,7 +82,7 @@ public abstract class WorkflowProcessor
this.isConditionProcessor = false;
this.timesBlocked = 0;
this.workflowInstance = new WorkflowInstance();
- this.wutils = new WorkflowUtils(lifecycleMgr);
+ this.lifecycleManager = lifecycleManager;
}
/**
@@ -330,36 +330,22 @@ public abstract class WorkflowProcessor
public void setTimesBlocked(int timesBlocked) {
this.timesBlocked = timesBlocked;
}
-
+
/**
- * @return the wutils
+ * @return the lifecycleManager
*/
- public WorkflowUtils getWutils() {
- return wutils;
+ public WorkflowLifecycleManager getLifecycleManager() {
+ return lifecycleManager;
}
/**
- * @param wutils
- * the wutils to set
+ * @param lifecycleManager the lifecycleManager to set
*/
- public void setWutils(WorkflowUtils wutils) {
- this.wutils = wutils;
- }
+ public void setLifecycleManager(WorkflowLifecycleManager lifecycleManager) {
+ this.lifecycleManager = lifecycleManager;
+ }
- /**
- * @return the lifecycleMgr
- */
- public WorkflowLifecycleManager getLifecycleMgr() {
- return lifecycleMgr;
- }
- /**
- * @param lifecycleMgr
- * the lifecycleMgr to set
- */
- public void setLifecycleMgr(WorkflowLifecycleManager lifecycleMgr) {
- this.lifecycleMgr = lifecycleMgr;
- }
/*
* (non-Javadoc)
@@ -439,6 +425,24 @@ public abstract class WorkflowProcessor
return true;
return false;
}
+
+ protected Metadata mergeMetadata(Metadata m1, Metadata m2) {
+ HashMap<String, LinkedHashSet<String>> merge = new HashMap<String, LinkedHashSet<String>>();
+ List<Metadata> metadatas = Arrays.asList(m1, m2);
+ for (Metadata m : metadatas) {
+ for (String key : m.getAllKeys()) {
+ LinkedHashSet<String> values = merge.get(key);
+ if (values == null)
+ values = new LinkedHashSet<String>();
+ values.addAll(m.getAllMetadata(key));
+ merge.put(key, values);
+ }
+ }
+ Metadata m = new Metadata();
+ for (Entry<String, LinkedHashSet<String>> entry : merge.entrySet())
+ m.addMetadata(entry.getKey(), new Vector<String>(entry.getValue()));
+ return m;
+ }
/**
* First checks to see if any of this Processor's {@link #subProcessors} have
@@ -461,12 +465,12 @@ public abstract class WorkflowProcessor
this.getSubProcessors(), "Failure");
if (this.minReqSuccessfulSubProcessors != -1
&& failedSubProcessors.size() > (this.getSubProcessors().size() - this.minReqSuccessfulSubProcessors))
- return lifecycleMgr.getDefaultLifecycle().createState("ResultsFailure",
+ return lifecycleManager.getDefaultLifecycle().createState("ResultsFailure",
"results", "More than the allowed number of sub-processors failed");
for (WorkflowProcessor subProcessor : failedSubProcessors) {
if (!this.getExcusedSubProcessorIds().contains(
subProcessor.getWorkflowInstance().getId())) {
- return lifecycleMgr.getDefaultLifecycle().createState(
+ return lifecycleManager.getDefaultLifecycle().createState(
"ResultsFailure",
"results",
"Sub processor: [" + subProcessor.getWorkflowInstance().getId()
@@ -474,13 +478,13 @@ public abstract class WorkflowProcessor
}
}
if (allProcessorsSameCategory(this.getSubProcessors(), "done"))
- return lifecycleMgr.getDefaultLifecycle().createState(
+ return lifecycleManager.getDefaultLifecycle().createState(
"ResultsSuccess",
"results",
"Workflow Processor: processing instance id: ["
+ workflowInstance.getId() + "] is Done.");
}
- return lifecycleMgr.getDefaultLifecycle().createState(
+ return lifecycleManager.getDefaultLifecycle().createState(
"ResultsBail",
"results",
"All sub-processors for Workflow Processor handling workflow id: ["
Modified: oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/structs/WorkflowInstance.java
URL: http://svn.apache.org/viewvc/oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/structs/WorkflowInstance.java?rev=1331863&r1=1331862&r2=1331863&view=diff
==============================================================================
--- oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/structs/WorkflowInstance.java (original)
+++ oodt/trunk/workflow/src/main/java/org/apache/oodt/cas/workflow/structs/WorkflowInstance.java Sun Apr 29 02:58:08 2012
@@ -77,8 +77,7 @@ public class WorkflowInstance {
private Metadata sharedContext;
private Priority priority;
-
- private WorkflowLifecycle lifecycle;
+
/**
* Default Constructor.
@@ -86,15 +85,14 @@ public class WorkflowInstance {
*/
public WorkflowInstance() {
this(null, null, null, null, new Date(), null, null, null, new Metadata(),
- Priority.getDefault(), null);
+ Priority.getDefault());
}
public WorkflowInstance(Workflow workflow, String id, WorkflowState state,
String currentTaskId, Date startDate, Date endDate, Date taskStartDate,
- Date taskEndDate, Metadata sharedContext, Priority priority,
- WorkflowLifecycle lifecycle) {
- this.workflow = workflow instanceof ParentChildWorkflow ? (ParentChildWorkflow) workflow
- : new ParentChildWorkflow(workflow);
+ Date taskEndDate, Metadata sharedContext, Priority priority) {
+ this.workflow = workflow != null && workflow instanceof ParentChildWorkflow ? (ParentChildWorkflow) workflow
+ : new ParentChildWorkflow(workflow != null ? workflow:new Workflow());
this.id = id;
this.state = state;
this.currentTaskId = currentTaskId;
@@ -104,7 +102,6 @@ public class WorkflowInstance {
this.taskEndDate = taskEndDate;
this.sharedContext = sharedContext;
this.priority = priority;
- this.lifecycle = lifecycle;
}
/**
@@ -127,7 +124,7 @@ public class WorkflowInstance {
*/
@Deprecated
public String getStatus() {
- return state.getName();
+ return state != null ? state.getName():"Null";
}
/**
@@ -138,7 +135,9 @@ public class WorkflowInstance {
*/
@Deprecated
public void setStatus(String status){
- this.state = this.lifecycle.getStateByName(status);
+ WorkflowState state = new WorkflowState();
+ state.setName(status);
+ this.state = state;
}
/**
@@ -170,10 +169,11 @@ public class WorkflowInstance {
*/
@Deprecated
public void setWorkflow(Workflow workflow) {
- if (workflow instanceof ParentChildWorkflow) {
+ if (workflow != null && workflow instanceof ParentChildWorkflow) {
this.workflow = (ParentChildWorkflow) workflow;
} else {
- this.workflow = new ParentChildWorkflow(workflow);
+ if(workflow == null) workflow = new Workflow();
+ this.workflow = new ParentChildWorkflow(workflow);
}
}
@@ -415,18 +415,4 @@ public class WorkflowInstance {
}
}
- /**
- * @return the lifecycle
- */
- public WorkflowLifecycle getLifecycle() {
- return lifecycle;
- }
-
- /**
- * @param lifecycle the lifecycle to set
- */
- public void setLifecycle(WorkflowLifecycle lifecycle) {
- this.lifecycle = lifecycle;
- }
-
}
Modified: oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/repository/TestPackagedWorkflowRepository.java
URL: http://svn.apache.org/viewvc/oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/repository/TestPackagedWorkflowRepository.java?rev=1331863&r1=1331862&r2=1331863&view=diff
==============================================================================
--- oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/repository/TestPackagedWorkflowRepository.java (original)
+++ oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/repository/TestPackagedWorkflowRepository.java Sun Apr 29 02:58:08 2012
@@ -57,6 +57,7 @@ public class TestPackagedWorkflowReposit
assertNotNull(w);
assertNotNull(w.getConditions());
+ System.out.println("NUM CONDITIONS: "+w.getConditions().size());
assertTrue(w.getConditions().size() > 0);
assertEquals(w.getConditions().size(), 3);
}
Modified: oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/structs/TestFILOPrioritySorter.java
URL: http://svn.apache.org/viewvc/oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/structs/TestFILOPrioritySorter.java?rev=1331863&r1=1331862&r2=1331863&view=diff
==============================================================================
--- oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/structs/TestFILOPrioritySorter.java (original)
+++ oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/structs/TestFILOPrioritySorter.java Sun Apr 29 02:58:08 2012
@@ -26,6 +26,7 @@ import java.util.Vector;
//OODT imports
import org.apache.oodt.cas.workflow.engine.SequentialProcessor;
import org.apache.oodt.cas.workflow.engine.WorkflowProcessor;
+import org.apache.oodt.cas.workflow.lifecycle.WorkflowLifecycleManager;
//Junit imports
import junit.framework.TestCase;
@@ -46,7 +47,7 @@ public class TestFILOPrioritySorter exte
this.dateGen = 0;
}
- public void testSort() {
+ public void testSort() throws InstantiationException {
FILOPrioritySorter sorter = new FILOPrioritySorter();
WorkflowProcessor proc = getProcessor(2.0);
WorkflowProcessor proc2 = getProcessor(7.0);
@@ -67,7 +68,8 @@ public class TestFILOPrioritySorter exte
.getValue());
}
- private WorkflowProcessor getProcessor(double priority) {
+ private WorkflowProcessor getProcessor(double priority) throws InstantiationException {
+ WorkflowLifecycleManager lifecycleManager = new WorkflowLifecycleManager("./src/main/resources/examples/wengine/wengine-lifecycle.xml");
WorkflowInstance inst = new WorkflowInstance();
Date sd = new Date();
sd.setTime(sd.getTime()+(this.dateGen*5000));
@@ -78,7 +80,7 @@ public class TestFILOPrioritySorter exte
workflow.setTasks(Collections.EMPTY_LIST);
inst.setWorkflow(workflow);
inst.setPriority(Priority.getPriority(priority));
- SequentialProcessor processor = new SequentialProcessor();
+ SequentialProcessor processor = new SequentialProcessor(lifecycleManager);
processor.setWorkflowInstance(inst);
return processor;
}
Modified: oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/structs/TestHighestFIFOPrioritySorter.java
URL: http://svn.apache.org/viewvc/oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/structs/TestHighestFIFOPrioritySorter.java?rev=1331863&r1=1331862&r2=1331863&view=diff
==============================================================================
--- oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/structs/TestHighestFIFOPrioritySorter.java (original)
+++ oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/structs/TestHighestFIFOPrioritySorter.java Sun Apr 29 02:58:08 2012
@@ -26,6 +26,7 @@ import java.util.Vector;
//OODT imports
import org.apache.oodt.cas.workflow.engine.SequentialProcessor;
import org.apache.oodt.cas.workflow.engine.WorkflowProcessor;
+import org.apache.oodt.cas.workflow.lifecycle.WorkflowLifecycleManager;
//Junit imports
import junit.framework.TestCase;
@@ -46,7 +47,7 @@ public class TestHighestFIFOPrioritySort
this.dateGen = 0;
}
- public void testSort() {
+ public void testSort() throws InstantiationException {
HighestFIFOPrioritySorter sorter = new HighestFIFOPrioritySorter(1, 15.0, 25.0);
WorkflowProcessor proc = getProcessor(2.0);
WorkflowProcessor proc2 = getProcessor(7.0);
@@ -62,7 +63,8 @@ public class TestHighestFIFOPrioritySort
.getValue());
}
- private WorkflowProcessor getProcessor(double priority) {
+ private WorkflowProcessor getProcessor(double priority) throws InstantiationException {
+ WorkflowLifecycleManager lifecycleManager = new WorkflowLifecycleManager("./src/main/resources/examples/wengine/wengine-lifecycle.xml");
WorkflowInstance inst = new WorkflowInstance();
Date sd = new Date();
sd.setTime(sd.getTime()+(this.dateGen*5000));
@@ -73,7 +75,7 @@ public class TestHighestFIFOPrioritySort
workflow.setTasks(Collections.EMPTY_LIST);
inst.setWorkflow(workflow);
inst.setPriority(Priority.getPriority(priority));
- SequentialProcessor processor = new SequentialProcessor();
+ SequentialProcessor processor = new SequentialProcessor(lifecycleManager);
processor.setWorkflowInstance(inst);
return processor;
}
Modified: oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/structs/TestHighestPrioritySorter.java
URL: http://svn.apache.org/viewvc/oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/structs/TestHighestPrioritySorter.java?rev=1331863&r1=1331862&r2=1331863&view=diff
==============================================================================
--- oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/structs/TestHighestPrioritySorter.java (original)
+++ oodt/trunk/workflow/src/test/org/apache/oodt/cas/workflow/structs/TestHighestPrioritySorter.java Sun Apr 29 02:58:08 2012
@@ -26,6 +26,7 @@ import java.util.Vector;
//OODT imports
import org.apache.oodt.cas.workflow.engine.SequentialProcessor;
import org.apache.oodt.cas.workflow.engine.WorkflowProcessor;
+import org.apache.oodt.cas.workflow.lifecycle.WorkflowLifecycleManager;
//Junit imports
import junit.framework.TestCase;
@@ -47,7 +48,7 @@ public class TestHighestPrioritySorter e
}
- public void testSort() {
+ public void testSort() throws InstantiationException {
HighestPrioritySorter sorter = new HighestPrioritySorter();
WorkflowProcessor proc = getProcessor(2.0);
WorkflowProcessor proc2 = getProcessor(7.0);
@@ -65,7 +66,8 @@ public class TestHighestPrioritySorter e
.getValue());
}
- private WorkflowProcessor getProcessor(double priority) {
+ private WorkflowProcessor getProcessor(double priority) throws InstantiationException {
+ WorkflowLifecycleManager lifecycleManager = new WorkflowLifecycleManager("./src/main/resources/examples/wengine/wengine-lifecycle.xml");
WorkflowInstance inst = new WorkflowInstance();
Date sd = new Date();
sd.setTime(sd.getTime()+(this.dateGen*5000));
@@ -76,7 +78,7 @@ public class TestHighestPrioritySorter e
workflow.setTasks(Collections.EMPTY_LIST);
inst.setWorkflow(workflow);
inst.setPriority(Priority.getPriority(priority));
- SequentialProcessor processor = new SequentialProcessor();
+ SequentialProcessor processor = new SequentialProcessor(lifecycleManager);
processor.setWorkflowInstance(inst);
return processor;
}