[jbpm-commits] JBoss JBPM SVN: r3392 - jbpm3/trunk/modules/core/src/main/java/org/jbpm/command.
do-not-reply at jboss.org
do-not-reply at jboss.org
Mon Dec 15 11:00:48 EST 2008
Author: camunda
Date: 2008-12-15 11:00:47 -0500 (Mon, 15 Dec 2008)
New Revision: 3392
Modified:
jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/AbstractCancelCommand.java
jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelProcessInstanceCommand.java
jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelTokenCommand.java
Log:
JBPM-1904/JBPM-1905
- Added cancel indicator variable to CancelTokenCommand as well
- Added correct toString to AbstractCancelCommand
Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/AbstractCancelCommand.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/AbstractCancelCommand.java 2008-12-15 13:45:46 UTC (rev 3391)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/AbstractCancelCommand.java 2008-12-15 16:00:47 UTC (rev 3392)
@@ -1,6 +1,5 @@
package org.jbpm.command;
-import java.io.Serializable;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@@ -12,11 +11,18 @@
import org.jbpm.graph.exe.Token;
import org.jbpm.taskmgmt.exe.TaskInstance;
-public class AbstractCancelCommand implements Serializable
+public abstract class AbstractCancelCommand extends AbstractBaseCommand
{
private static final long serialVersionUID = 1L;
+ /**
+ * Name of a standardized process variable which is written during cancellation
+ * in order to indicate that this process has been 'canceled' and not just ended.
+ * Value of the variable is the timestamp of cancellation.
+ */
+ public static String CANCELLATION_INDICATOR_VARIABLE_NAME = "canceled";
+
protected transient JbpmContext jbpmContext = null;
protected static final Log log = LogFactory.getLog(AbstractCancelCommand.class);
Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelProcessInstanceCommand.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelProcessInstanceCommand.java 2008-12-15 13:45:46 UTC (rev 3391)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelProcessInstanceCommand.java 2008-12-15 16:00:47 UTC (rev 3392)
@@ -5,19 +5,20 @@
import org.jbpm.JbpmContext;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
+import org.jbpm.util.Clock;
/**
- * Cancel the given {@link ProcessInstance} with all {@link Token}s.
+ * Cancel the given {@link ProcessInstance} with all {@link Token}s.
*
* <b>Maybe running sub process instances are currently not canceled.</b>
*
* @author Bernd Ruecker (bernd.ruecker at camunda.com)
*/
-public class CancelProcessInstanceCommand extends AbstractCancelCommand implements Command
+public class CancelProcessInstanceCommand extends AbstractCancelCommand
{
private static final long serialVersionUID = 7145293049356621597L;
-
+
private long processInstanceId;
public CancelProcessInstanceCommand()
@@ -45,7 +46,7 @@
// Record a standardized variable that we can use to determine that this
// process has been 'canceled' and not just ended.
- pi.getContextInstance().createVariable("canceled", new Date());
+ pi.getContextInstance().createVariable(CANCELLATION_INDICATOR_VARIABLE_NAME, Clock.getCurrentTime());
try
{
@@ -91,6 +92,12 @@
this.processInstanceId = processId;
}
+ @Override
+ public String getAdditionalToStringInformation()
+ {
+ return "processInstanceId=" + processInstanceId;
+ }
+
// methods for fluent programming
public CancelProcessInstanceCommand processInstanceId(long processInstanceId)
Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelTokenCommand.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelTokenCommand.java 2008-12-15 13:45:46 UTC (rev 3391)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/command/CancelTokenCommand.java 2008-12-15 16:00:47 UTC (rev 3392)
@@ -2,13 +2,14 @@
import org.jbpm.JbpmContext;
import org.jbpm.graph.exe.Token;
+import org.jbpm.util.Clock;
/**
* Cancel a {@link Token}
*
* @author Bernd Ruecker (bernd.ruecker at camunda.com)
*/
-public class CancelTokenCommand extends AbstractCancelCommand implements Command
+public class CancelTokenCommand extends AbstractCancelCommand
{
private static final long serialVersionUID = 7145293049356621597L;
@@ -27,7 +28,13 @@
public Object execute(JbpmContext jbpmContext) throws Exception
{
this.jbpmContext = jbpmContext;
- cancelToken(jbpmContext.getGraphSession().loadToken(tokenId));
+ Token token = jbpmContext.getGraphSession().loadToken(tokenId);
+
+ // create a token local process variable to indicate this token was canceled
+ token.getProcessInstance().getContextInstance().createVariable(
+ CANCELLATION_INDICATOR_VARIABLE_NAME, Clock.getCurrentTime(), token);
+
+ cancelToken(token);
this.jbpmContext = null;
return null;
}
@@ -41,6 +48,12 @@
{
this.tokenId = tokenId;
}
+
+ @Override
+ public String getAdditionalToStringInformation()
+ {
+ return "tokenId=" + tokenId;
+ }
// methods for fluent programming
More information about the jbpm-commits
mailing list