You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ad...@apache.org on 2012/08/05 00:40:58 UTC

svn commit: r1369503 - in /ofbiz/trunk/specialpurpose/workflow/src/org/ofbiz/workflow: WorkflowEngine.java client/StartActivityJob.java

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



Re: svn commit: r1369503 - in /ofbiz/trunk/specialpurpose/workflow/src/org/ofbiz/workflow: WorkflowEngine.java client/StartActivityJob.java

Posted by Jacques Le Roux <ja...@les7arts.com>.
I will move it to Attic "soon" though. I guess Shark will stay as it was (in Attic now)

Jacques

From: <ad...@apache.org>
> 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;
>     }
> }
>
>