|
Author: adrianc
Date: Sat Aug 4 22:40:58 2012 New Revision: 1369503 URL: http://svn.apache.org/viewvc?rev=1369503&view=rev Log: Updated Workflow component to compile with Job Scheduler changes. Modified: ofbiz/trunk/specialpurpose/workflow/src/org/ofbiz/workflow/WorkflowEngine.java ofbiz/trunk/specialpurpose/workflow/src/org/ofbiz/workflow/client/StartActivityJob.java Modified: ofbiz/trunk/specialpurpose/workflow/src/org/ofbiz/workflow/WorkflowEngine.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/workflow/src/org/ofbiz/workflow/WorkflowEngine.java?rev=1369503&r1=1369502&r2=1369503&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/workflow/src/org/ofbiz/workflow/WorkflowEngine.java (original) +++ ofbiz/trunk/specialpurpose/workflow/src/org/ofbiz/workflow/WorkflowEngine.java Sat Aug 4 22:40:58 2012 @@ -18,12 +18,12 @@ *******************************************************************************/ package org.ofbiz.workflow; -import java.util.Date; import java.util.List; import java.util.Locale; import java.util.Map; import javax.transaction.Transaction; + import org.ofbiz.base.util.Debug; import org.ofbiz.base.util.StringUtil; import org.ofbiz.base.util.UtilDateTime; @@ -39,6 +39,7 @@ import org.ofbiz.service.ModelService; import org.ofbiz.service.ServiceDispatcher; import org.ofbiz.service.engine.AbstractEngine; import org.ofbiz.service.job.AbstractJob; +import org.ofbiz.service.job.InvalidJobException; import org.ofbiz.service.job.Job; import org.ofbiz.service.job.JobManagerException; @@ -283,27 +284,28 @@ public class WorkflowEngine extends Abst } /** Workflow Runner class runs inside its own thread using the Scheduler API */ -@SuppressWarnings("serial") class WorkflowRunner extends AbstractJob { + public static final String module = WorkflowRunner.class.getName(); + GenericRequester requester; WfProcess process; String startActivityId; + private final long runtime = System.currentTimeMillis(); WorkflowRunner(WfProcess process, GenericRequester requester, String startActivityId) { super(process.toString() + "." + System.currentTimeMillis(), process.toString()); this.process = process; this.requester = requester; this.startActivityId = startActivityId; - runtime = new Date().getTime(); - } - - protected void finish() { - runtime = -1; } @Override - public void exec() { + public void exec() throws InvalidJobException { + if (currentState != State.QUEUED) { + throw new InvalidJobException("Illegal state change"); + } + currentState = State.RUNNING; try { if (startActivityId != null) process.start(startActivityId); @@ -314,7 +316,17 @@ class WorkflowRunner extends AbstractJob if (requester != null) requester.receiveResult(null); } - finish(); + currentState = State.FINISHED; + } + + @Override + public long getRuntime() { + return runtime; + } + + @Override + public boolean isValid() { + return currentState == State.CREATED; } } Modified: ofbiz/trunk/specialpurpose/workflow/src/org/ofbiz/workflow/client/StartActivityJob.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/workflow/src/org/ofbiz/workflow/client/StartActivityJob.java?rev=1369503&r1=1369502&r2=1369503&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/workflow/src/org/ofbiz/workflow/client/StartActivityJob.java (original) +++ ofbiz/trunk/specialpurpose/workflow/src/org/ofbiz/workflow/client/StartActivityJob.java Sat Aug 4 22:40:58 2012 @@ -18,24 +18,24 @@ *******************************************************************************/ package org.ofbiz.workflow.client; -import java.util.Date; import java.util.HashMap; import org.ofbiz.base.util.Debug; import org.ofbiz.service.GenericRequester; import org.ofbiz.service.job.AbstractJob; +import org.ofbiz.service.job.InvalidJobException; import org.ofbiz.workflow.WfActivity; /** * Workflow Client API - Start Activity Async-Job */ -@SuppressWarnings("serial") public class StartActivityJob extends AbstractJob { public static final String module = StartActivityJob.class.getName(); protected WfActivity activity = null; protected GenericRequester requester = null; + private final long runtime = System.currentTimeMillis(); public StartActivityJob(WfActivity activity) { this(activity, null); @@ -45,19 +45,15 @@ public class StartActivityJob extends Ab super(activity.toString() + "." + System.currentTimeMillis(), activity.toString()); this.activity = activity; this.requester = requester; - runtime = new Date().getTime(); if (Debug.verboseOn()) Debug.logVerbose("Created new StartActivityJob : " + activity, module); } - protected void finish() { - runtime = -1; - } - - /** - * @see org.ofbiz.service.job.Job#exec() - */ @Override - public void exec() { + public void exec() throws InvalidJobException { + if (currentState != State.QUEUED) { + throw new InvalidJobException("Illegal state change"); + } + currentState = State.RUNNING; try { Debug.logVerbose("Executing job now : " + activity, module); activity.activate(); @@ -68,6 +64,16 @@ public class StartActivityJob extends Ab if (requester != null) requester.receiveThrowable(e); } - finish(); + currentState = State.FINISHED; + } + + @Override + public long getRuntime() { + return runtime; + } + + @Override + public boolean isValid() { + return currentState == State.CREATED; } } |
| Free forum by Nabble | Edit this page |
