[jboss-svn-commits] JBL Code SVN: r22331 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools: base/mvel and 7 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Sep 2 16:58:29 EDT 2008
Author: KrisVerlaenen
Date: 2008-09-02 16:58:29 -0400 (Tue, 02 Sep 2008)
New Revision: 22331
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueEvaluator.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DebugRuleFlowEventListener.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DefaultRuleFlowEventListener.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/RuleFlowEventListener.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/RuleFlowEventSupport.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ProcessContext.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/Constraint.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/impl/ConnectionImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/impl/ConstraintImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/Split.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/ReturnValueConstraintEvaluator.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/RuleConstraintEvaluator.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/EndNodeInstance.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/HumanTaskNodeInstance.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/SubProcessNodeInstance.java
Log:
JBRULES-1756: Add events for leaving nodes
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -421,6 +421,14 @@
event.getProcessInstance().getId()) );
}
+ public void beforeRuleFlowNodeLeft(RuleFlowNodeTriggeredEvent event,
+ WorkingMemory workingMemory) {
+ }
+
+ public void afterRuleFlowNodeLeft(RuleFlowNodeTriggeredEvent event,
+ WorkingMemory workingMemory) {
+ }
+
public void afterPackageAdded(AfterPackageAddedEvent event) {
filterLogEvent( new RuleBaseLogEvent( LogEvent.AFTER_PACKAGE_ADDED,
event.getPackage().getName(),
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELAction.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -5,13 +5,14 @@
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.Serializable;
+import java.util.List;
import org.drools.WorkingMemory;
import org.drools.rule.MVELDialectRuntimeData;
import org.drools.rule.Package;
import org.drools.spi.Action;
+import org.drools.spi.KnowledgeHelper;
import org.drools.spi.ProcessContext;
-import org.drools.spi.KnowledgeHelper;
import org.mvel.MVEL;
import org.mvel.compiler.CompiledExpression;
import org.mvel.debug.DebugTools;
@@ -29,6 +30,7 @@
private Serializable expr;
private DroolsMVELFactory prototype;
+ private List<String> variableNames;
public MVELAction() {
}
@@ -37,11 +39,16 @@
final String id) {
this.unit = unit;
this.id = id;
- }
+ }
+
+ public void setVariableNames(List<String> variableNames) {
+ this.variableNames = variableNames;
+ }
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
id = in.readUTF();
unit = ( MVELCompilationUnit ) in.readObject();
+ variableNames = (List<String>) in.readObject();
// expr = (Serializable)in.readObject();
// prototype = (DroolsMVELFactory)in.readObject();
}
@@ -49,6 +56,7 @@
public void writeExternal(ObjectOutput out) throws IOException {
out.writeUTF( id );
out.writeObject( unit );
+ out.writeObject(variableNames);
// out.writeObject(expr);
// out.writeObject(prototype);
}
@@ -67,6 +75,12 @@
DroolsMVELFactory factory = (DroolsMVELFactory) this.prototype.clone();
factory.addResolver("context", new SimpleValueResolver(context));
+ if (variableNames != null) {
+ for (String variableName: variableNames) {
+ factory.addResolver(
+ variableName, new SimpleValueResolver(context.getVariable(variableName)));
+ }
+ }
factory.setContext( null,
knowledgeHelper,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueEvaluator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueEvaluator.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/mvel/MVELReturnValueEvaluator.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -5,6 +5,7 @@
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.Serializable;
+import java.util.List;
import org.drools.WorkingMemory;
import org.drools.rule.MVELDialectRuntimeData;
@@ -14,6 +15,7 @@
import org.mvel.MVEL;
import org.mvel.compiler.CompiledExpression;
import org.mvel.debug.DebugTools;
+import org.mvel.integration.impl.SimpleValueResolver;
public class MVELReturnValueEvaluator
implements
@@ -27,6 +29,7 @@
private Serializable expr;
private DroolsMVELFactory prototype;
+ private List<String> variableNames;
public MVELReturnValueEvaluator() {
}
@@ -37,10 +40,15 @@
this.id = id;
}
+ public void setVariableNames(List<String> variableNames) {
+ this.variableNames = variableNames;
+ }
+
public void readExternal(ObjectInput in) throws IOException,
ClassNotFoundException {
id = in.readUTF();
unit = (MVELCompilationUnit) in.readObject();
+ variableNames = (List<String>) in.readObject();
// expr = (Serializable)in.readObject();
// prototype = (DroolsMVELFactory)in.readObject();
}
@@ -48,6 +56,7 @@
public void writeExternal(ObjectOutput out) throws IOException {
out.writeUTF( id );
out.writeObject( unit );
+ out.writeObject(variableNames);
// out.writeObject(expr);
// out.writeObject(prototype);
}
@@ -64,12 +73,20 @@
public Object evaluate(final WorkingMemory workingMemory,
ProcessContext context) throws Exception {
DroolsMVELFactory factory = (DroolsMVELFactory) this.prototype.clone();
+
+ if (variableNames != null) {
+ for (String variableName: variableNames) {
+ factory.addResolver(
+ variableName, new SimpleValueResolver(context.getVariable(variableName)));
+ }
+ }
+
factory.setContext( null,
null,
null,
workingMemory,
null );
-
+
// do we have any functions for this namespace?
Package pkg = workingMemory.getRuleBase().getPackage( "MAIN" );
if ( pkg != null ) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DebugRuleFlowEventListener.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DebugRuleFlowEventListener.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DebugRuleFlowEventListener.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -60,4 +60,14 @@
System.err.println(event);
}
+ public void afterRuleFlowNodeLeft(final RuleFlowNodeTriggeredEvent event,
+ final WorkingMemory workingMemory) {
+ System.err.println(event);
+ }
+
+ public void beforeRuleFlowNodeLeft(final RuleFlowNodeTriggeredEvent event,
+ final WorkingMemory workingMemory) {
+ System.err.println(event);
+ }
+
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DefaultRuleFlowEventListener.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DefaultRuleFlowEventListener.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DefaultRuleFlowEventListener.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -56,4 +56,14 @@
// intentionally left blank
}
+ public void afterRuleFlowNodeLeft(final RuleFlowNodeTriggeredEvent event,
+ final WorkingMemory workingMemory) {
+ // intentionally left blank
+ }
+
+ public void beforeRuleFlowNodeLeft(final RuleFlowNodeTriggeredEvent event,
+ final WorkingMemory workingMemory) {
+ // intentionally left blank
+ }
+
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/RuleFlowEventListener.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/RuleFlowEventListener.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/RuleFlowEventListener.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -57,4 +57,10 @@
void afterRuleFlowNodeTriggered(RuleFlowNodeTriggeredEvent event,
WorkingMemory workingMemory);
+ void beforeRuleFlowNodeLeft(RuleFlowNodeTriggeredEvent event,
+ WorkingMemory workingMemory);
+
+ void afterRuleFlowNodeLeft(RuleFlowNodeTriggeredEvent event,
+ WorkingMemory workingMemory);
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/RuleFlowEventSupport.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/RuleFlowEventSupport.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/RuleFlowEventSupport.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -209,6 +209,34 @@
}
}
+ public void fireBeforeRuleFlowNodeLeft(
+ final NodeInstance ruleFlowNodeInstance,
+ final InternalWorkingMemory workingMemory) {
+ if (this.listeners.isEmpty()) {
+ return;
+ }
+
+ final RuleFlowNodeTriggeredEvent event = new RuleFlowNodeTriggeredEvent( ruleFlowNodeInstance );
+
+ for ( RuleFlowEventListener listener: listeners ) {
+ listener.beforeRuleFlowNodeLeft( event, workingMemory );
+ }
+ }
+
+ public void fireAfterRuleFlowNodeLeft(
+ final NodeInstance ruleFlowNodeInstance,
+ final InternalWorkingMemory workingMemory) {
+ if (this.listeners.isEmpty()) {
+ return;
+ }
+
+ final RuleFlowNodeTriggeredEvent event = new RuleFlowNodeTriggeredEvent( ruleFlowNodeInstance );
+
+ for ( RuleFlowEventListener listener: listeners ) {
+ listener.afterRuleFlowNodeLeft( event, workingMemory );
+ }
+ }
+
public void reset() {
this.listeners.clear();
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ProcessContext.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ProcessContext.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ProcessContext.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -19,7 +19,8 @@
public Object getVariable(String variableName) {
VariableScopeInstance variableScope = (VariableScopeInstance) nodeInstance.resolveContextInstance(VariableScope.VARIABLE_SCOPE, variableName);
if (variableScope == null) {
- return null;
+ return ((VariableScopeInstance) nodeInstance.getProcessInstance()
+ .getContextInstance(VariableScope.VARIABLE_SCOPE)).getVariable(variableName);
}
return variableScope.getVariable(variableName);
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/Constraint.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/Constraint.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/Constraint.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -93,5 +93,9 @@
* @param type the dialect of the constraint
*/
void setDialect(String dialect);
+
+ void setMetaData(String name, Object value);
+
+ Object getMetaData(String name);
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/impl/ConnectionImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/impl/ConnectionImpl.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/impl/ConnectionImpl.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -38,7 +38,7 @@
private String toType;
private Map<String, Object> metaData = new HashMap<String, Object>();
- ConnectionImpl() {
+ public ConnectionImpl() {
}
/**
@@ -67,6 +67,10 @@
this.fromType = fromType;
this.to = to;
this.toType = toType;
+ connect();
+ }
+
+ public void connect() {
this.from.addOutgoingConnection(fromType, this);
this.to.addIncomingConnection(toType, this);
}
@@ -96,7 +100,23 @@
return this.toType;
}
- public void setMetaData(String name, Object value) {
+ public void setFrom(Node from) {
+ this.from = from;
+ }
+
+ public void setTo(Node to) {
+ this.to = to;
+ }
+
+ public void setFromType(String fromType) {
+ this.fromType = fromType;
+ }
+
+ public void setToType(String toType) {
+ this.toType = toType;
+ }
+
+ public void setMetaData(String name, Object value) {
this.metaData.put(name, value);
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/impl/ConstraintImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/impl/ConstraintImpl.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/impl/ConstraintImpl.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -17,6 +17,8 @@
*/
import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
import org.drools.workflow.core.Constraint;
@@ -29,6 +31,8 @@
private static final long serialVersionUID = 400L;
+ private Map<String, Object> metaData = new HashMap<String, Object>();
+
private String name;
private String constraint;
private int priority;
@@ -79,4 +83,12 @@
this.type = type;
}
+ public void setMetaData(String name, Object value) {
+ this.metaData.put(name, value);
+ }
+
+ public Object getMetaData(String name) {
+ return this.metaData.get(name);
+ }
+
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/Split.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/Split.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/Split.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -16,9 +16,6 @@
* limitations under the License.
*/
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Collections;
import java.util.HashMap;
@@ -157,13 +154,23 @@
public void removeOutgoingConnection(final String type, final Connection connection) {
super.removeOutgoingConnection(type, connection);
- ConnectionRef ref = new ConnectionRef(connection.getTo().getId(), connection.getToType());
- this.constraints.remove(ref);
+ removeConstraint(connection);
}
+ public void removeConstraint(Connection connection) {
+ ConnectionRef ref = new ConnectionRef(connection.getTo().getId(), connection.getToType());
+ internalRemoveConstraint(ref);
+ }
+
+ public void internalRemoveConstraint(ConnectionRef ref) {
+ this.constraints.remove(ref);
+ }
+
public static class ConnectionRef implements Serializable {
- private String toType;
+ private static final long serialVersionUID = 4L;
+
+ private String toType;
private long nodeId;
public ConnectionRef(long nodeId, String toType) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceImpl.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceImpl.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -116,8 +116,18 @@
}
protected void triggerConnection(Connection connection) {
+ boolean hidden = false;
+ if (getNode().getMetaData("hidden") != null) {
+ hidden = true;
+ }
+ if (!hidden) {
+ ((EventSupport) getProcessInstance().getWorkingMemory()).getRuleFlowEventSupport().fireBeforeRuleFlowNodeLeft(this, (InternalWorkingMemory) getProcessInstance().getWorkingMemory());
+ }
getNodeInstanceContainer().getNodeInstance(connection.getTo())
- .trigger(this, connection.getToType());
+ .trigger(this, connection.getToType());
+ if (!hidden) {
+ ((EventSupport) getProcessInstance().getWorkingMemory()).getRuleFlowEventSupport().fireAfterRuleFlowNodeLeft(this, (InternalWorkingMemory) getProcessInstance().getWorkingMemory());
+ }
}
public Context resolveContext(String contextId, Object param) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/ReturnValueConstraintEvaluator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/ReturnValueConstraintEvaluator.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/ReturnValueConstraintEvaluator.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -20,7 +20,6 @@
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
-import java.io.Serializable;
import org.drools.spi.CompiledInvoker;
import org.drools.spi.ProcessContext;
@@ -154,4 +153,12 @@
out.writeObject( type );
}
+ public void setMetaData(String name, Object value) {
+ // Do nothing
+ }
+
+ public Object getMetaData(String name) {
+ return null;
+ }
+
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/RuleConstraintEvaluator.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/RuleConstraintEvaluator.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/RuleConstraintEvaluator.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -92,6 +92,14 @@
String rule = "RuleFlow-Split-" + processInstance.getProcess().getId() + "-" + instance.getNode().getId() + "-" + connection.getTo().getId();
return agenda.isRuleActiveInRuleFlowGroup( "DROOLS_SYSTEM", rule );
- }
+ }
+ public Object getMetaData(String name) {
+ return null;
+ }
+
+ public void setMetaData(String name, Object value) {
+ // Do nothing
+ }
+
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/EndNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/EndNodeInstance.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/EndNodeInstance.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -16,6 +16,8 @@
* limitations under the License.
*/
+import org.drools.common.EventSupport;
+import org.drools.common.InternalWorkingMemory;
import org.drools.process.instance.ProcessInstance;
import org.drools.workflow.core.Node;
import org.drools.workflow.core.node.EndNode;
@@ -42,7 +44,17 @@
}
getNodeInstanceContainer().removeNodeInstance(this);
if (getEndNode().isTerminate()) {
+ boolean hidden = false;
+ if (getNode().getMetaData("hidden") != null) {
+ hidden = true;
+ }
+ if (!hidden) {
+ ((EventSupport) getProcessInstance().getWorkingMemory()).getRuleFlowEventSupport().fireBeforeRuleFlowNodeLeft(this, (InternalWorkingMemory) getProcessInstance().getWorkingMemory());
+ }
getProcessInstance().setState( ProcessInstance.STATE_COMPLETED );
+ if (!hidden) {
+ ((EventSupport) getProcessInstance().getWorkingMemory()).getRuleFlowEventSupport().fireAfterRuleFlowNodeLeft(this, (InternalWorkingMemory) getProcessInstance().getWorkingMemory());
+ }
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/HumanTaskNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/HumanTaskNodeInstance.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/HumanTaskNodeInstance.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -39,7 +39,7 @@
// actor is specified for this human task
if (actorId == null) {
actorId = (String) workItem.getParameter("ActorId");
- if (actorId != null) {
+ if (actorId != null && swimlaneContextInstance != null) {
swimlaneContextInstance.setActorId(swimlaneName, actorId);
}
}
@@ -67,13 +67,9 @@
String swimlaneName = getHumanTaskNode().getSwimlane();
SwimlaneContextInstance swimlaneContextInstance = getSwimlaneContextInstance(swimlaneName);
if (swimlaneContextInstance != null) {
- String oldActorId = swimlaneContextInstance.getActorId(swimlaneName);
- // only assign if swimlane has not already been assigned to an actor
- if (oldActorId == null) {
- String newActorId = (String) workItem.getResult("ActorId");
- if (newActorId != null) {
- swimlaneContextInstance.setActorId(swimlaneName, newActorId);
- }
+ String newActorId = (String) workItem.getResult("ActorId");
+ if (newActorId != null) {
+ swimlaneContextInstance.setActorId(swimlaneName, newActorId);
}
}
super.triggerCompleted(workItem);
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/SubProcessNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/SubProcessNodeInstance.java 2008-09-02 20:56:30 UTC (rev 22330)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/SubProcessNodeInstance.java 2008-09-02 20:58:29 UTC (rev 22331)
@@ -171,4 +171,14 @@
// Do nothing
}
+ public void afterRuleFlowNodeLeft(RuleFlowNodeTriggeredEvent event,
+ WorkingMemory workingMemory) {
+ // Do nothing
+ }
+
+ public void beforeRuleFlowNodeLeft(RuleFlowNodeTriggeredEvent event,
+ WorkingMemory workingMemory) {
+ // Do nothing
+ }
+
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list