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;
   }