[jboss-svn-commits] JBL Code SVN: r19905 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools: process/command and 10 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu May 8 08:06:33 EDT 2008
Author: KrisVerlaenen
Date: 2008-05-08 08:06:33 -0400 (Thu, 08 May 2008)
New Revision: 19905
Added:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/Command.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/CommandService.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/StartProcessCommand.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/AsynchronousCommandService.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/DefaultCommandService.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/swimlane/
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/swimlane/Swimlane.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/swimlane/SwimlaneContext.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/swimlane/
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/swimlane/SwimlaneContextInstance.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/swimlane/SwimlaneInstance.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/FaultNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/FaultNodeInstance.java
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/exception/ExceptionHandlerInstance.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/exception/ExceptionScopeInstance.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/impl/ContextInstanceFactoryRegistry.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/impl/WorkItemImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceFactoryRegistry.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/WorkItemNodeInstance.java
Log:
JBRULES-1549: Workflow Context
- swimlanes and exception scope as context
JBRULES-1550: Workflow timer
- timer node
JBRULES-1465: RuleFlow work items should allow plugging in custom editors
- Work items palette customizable by user
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/Command.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/Command.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/Command.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -0,0 +1,9 @@
+package org.drools.process.command;
+
+import org.drools.WorkingMemory;
+
+public interface Command {
+
+ Object execute(WorkingMemory workingMemory);
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/CommandService.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/CommandService.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/CommandService.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -0,0 +1,7 @@
+package org.drools.process.command;
+
+public interface CommandService {
+
+ Object execute(Command command);
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/StartProcessCommand.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/StartProcessCommand.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/StartProcessCommand.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -0,0 +1,51 @@
+package org.drools.process.command;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.drools.WorkingMemory;
+import org.drools.process.instance.ProcessInstance;
+
+public class StartProcessCommand implements Command {
+
+ private String processId;
+ private Map<String, Object> parameters = new HashMap<String, Object>();
+ private List<Object> data = null;
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public Map<String, Object> getParameters() {
+ return parameters;
+ }
+
+ public void setParameters(Map<String, Object> parameters) {
+ this.parameters = parameters;
+ }
+
+ public List<Object> getData() {
+ return data;
+ }
+
+ public void setData(List<Object> data) {
+ this.data = data;
+ }
+
+ public Object execute(WorkingMemory workingMemory) {
+ if (data != null) {
+ for (Object o: data) {
+ workingMemory.insert(o);
+ }
+ }
+ ProcessInstance processInstance = workingMemory.startProcess(processId, parameters);
+ workingMemory.fireAllRules();
+ return processInstance;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/AsynchronousCommandService.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/AsynchronousCommandService.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/AsynchronousCommandService.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -0,0 +1,24 @@
+package org.drools.process.command.impl;
+
+import org.drools.WorkingMemory;
+import org.drools.process.command.Command;
+import org.drools.process.command.CommandService;
+
+public class AsynchronousCommandService implements CommandService {
+
+ private WorkingMemory workingMemory;
+
+ public AsynchronousCommandService(WorkingMemory workingMemory) {
+ this.workingMemory = workingMemory;
+ }
+
+ public Object execute(final Command command) {
+ new Thread(new Runnable() {
+ public void run() {
+ command.execute(workingMemory);
+ }
+ }).start();
+ return null;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/DefaultCommandService.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/DefaultCommandService.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/command/impl/DefaultCommandService.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -0,0 +1,19 @@
+package org.drools.process.command.impl;
+
+import org.drools.WorkingMemory;
+import org.drools.process.command.Command;
+import org.drools.process.command.CommandService;
+
+public class DefaultCommandService implements CommandService {
+
+ private WorkingMemory workingMemory;
+
+ public DefaultCommandService(WorkingMemory workingMemory) {
+ this.workingMemory = workingMemory;
+ }
+
+ public Object execute(Command command) {
+ return command.execute(workingMemory);
+ }
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/swimlane/Swimlane.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/swimlane/Swimlane.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/swimlane/Swimlane.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -0,0 +1,28 @@
+package org.drools.process.core.context.swimlane;
+
+import java.io.Serializable;
+
+public class Swimlane implements Serializable {
+
+ private static final long serialVersionUID = 400L;
+
+ private String name;
+ private String actorId;
+
+ public Swimlane(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setActorId(String actorId) {
+ this.actorId = actorId;
+ }
+
+ public String getActorId() {
+ return this.actorId;
+ }
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/swimlane/SwimlaneContext.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/swimlane/SwimlaneContext.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/core/context/swimlane/SwimlaneContext.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -0,0 +1,41 @@
+package org.drools.process.core.context.swimlane;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.drools.process.core.Context;
+import org.drools.process.core.context.AbstractContext;
+
+public class SwimlaneContext extends AbstractContext {
+
+ private static final long serialVersionUID = 400L;
+
+ public static final String SWIMLANE_SCOPE = "SwimlaneScope";
+
+ private Map<String, Swimlane> swimlanes = new HashMap();
+
+ public String getType() {
+ return SWIMLANE_SCOPE;
+ }
+
+ public void addSwimlane(Swimlane swimlane) {
+ this.swimlanes.put(swimlane.getName(), swimlane);
+ }
+
+ public Swimlane getSwimlane(String name) {
+ return this.swimlanes.get(name);
+ }
+
+ public void removeSwimlane(String name) {
+ this.swimlanes.remove(name);
+ }
+
+ public Context resolveContext(Object param) {
+ if (param instanceof String) {
+ return getSwimlane((String) param) == null ? null : this;
+ }
+ throw new IllegalArgumentException(
+ "ExceptionScopes can only resolve exception names: " + param);
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/exception/ExceptionHandlerInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/exception/ExceptionHandlerInstance.java 2008-05-08 12:06:21 UTC (rev 19904)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/exception/ExceptionHandlerInstance.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -1,7 +1,11 @@
package org.drools.process.instance.context.exception;
+import org.drools.process.core.context.exception.ExceptionHandler;
+
public interface ExceptionHandlerInstance {
-
+
void handleException(String exception, Object param);
+ void setExceptionHandler(ExceptionHandler exceptionHandler);
+
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/exception/ExceptionScopeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/exception/ExceptionScopeInstance.java 2008-05-08 12:06:21 UTC (rev 19904)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/exception/ExceptionScopeInstance.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -16,20 +16,15 @@
return (ExceptionScope) getContext();
}
- protected abstract ExceptionHandlerInstance getExceptionHandlerInstance(ExceptionHandler exceptionHandler);
-
public void handleException(String exception, Object params) {
ExceptionHandler handler = getExceptionScope().getExceptionHandler(exception);
if (handler == null) {
throw new IllegalArgumentException(
"Could not find ExceptionHandler for " + exception);
}
- ExceptionHandlerInstance handlerInstance = getExceptionHandlerInstance(handler);
- if (handlerInstance == null) {
- throw new IllegalArgumentException(
- "Could not find ExceptionHandler instance for " + exception);
- }
- handlerInstance.handleException(exception, params);
+ handleException(handler, exception, params);
}
+
+ public abstract void handleException(ExceptionHandler handler, String exception, Object params);
}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/swimlane/SwimlaneContextInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/swimlane/SwimlaneContextInstance.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/swimlane/SwimlaneContextInstance.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -0,0 +1,18 @@
+package org.drools.process.instance.context.swimlane;
+
+import org.drools.process.core.context.swimlane.SwimlaneContext;
+import org.drools.process.instance.context.AbstractContextInstance;
+
+public abstract class SwimlaneContextInstance extends AbstractContextInstance {
+
+ private static final long serialVersionUID = 400L;
+
+ public String getContextType() {
+ return SwimlaneContext.SWIMLANE_SCOPE;
+ }
+
+ public SwimlaneContext getSwimlaneContext() {
+ return (SwimlaneContext) getContext();
+ }
+
+}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/swimlane/SwimlaneInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/swimlane/SwimlaneInstance.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/context/swimlane/SwimlaneInstance.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -0,0 +1,15 @@
+package org.drools.process.instance.context.swimlane;
+
+public class SwimlaneInstance {
+
+ private String actorId;
+
+ public void setActorId(String actorId) {
+ this.actorId = actorId;
+ }
+
+ public String getActorId() {
+ return this.actorId;
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/impl/ContextInstanceFactoryRegistry.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/impl/ContextInstanceFactoryRegistry.java 2008-05-08 12:06:21 UTC (rev 19904)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/impl/ContextInstanceFactoryRegistry.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -4,7 +4,11 @@
import java.util.Map;
import org.drools.process.core.Context;
+import org.drools.process.core.context.exception.ExceptionScope;
+import org.drools.process.core.context.swimlane.SwimlaneContext;
import org.drools.process.core.context.variable.VariableScope;
+import org.drools.process.instance.context.exception.ExceptionScopeInstance;
+import org.drools.process.instance.context.swimlane.SwimlaneContextInstance;
import org.drools.process.instance.context.variable.VariableScopeInstance;
import org.drools.process.instance.impl.factory.ReuseContextInstanceFactory;
@@ -21,6 +25,10 @@
// hard wired contexts:
register(VariableScope.class, new ReuseContextInstanceFactory(
VariableScopeInstance.class));
+ register(ExceptionScope.class, new ReuseContextInstanceFactory(
+ ExceptionScopeInstance.class));
+ register(SwimlaneContext.class, new ReuseContextInstanceFactory(
+ SwimlaneContextInstance.class));
}
public void register(Class<? extends Context> cls,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/impl/WorkItemImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/impl/WorkItemImpl.java 2008-05-08 12:06:21 UTC (rev 19904)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/process/instance/impl/WorkItemImpl.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -47,10 +47,7 @@
}
public void setParameters(Map<String, Object> parameters) {
- for (Iterator<Map.Entry<String, Object>> iterator = parameters.entrySet().iterator(); iterator.hasNext(); ) {
- Map.Entry<String, Object> entry = iterator.next();
- setParameter(entry.getKey(), entry.getValue());
- }
+ this.parameters = parameters;
}
public void setParameter(String name, Object value) {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeNode.java 2008-05-08 12:06:21 UTC (rev 19904)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeNode.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -37,6 +37,13 @@
}
public void addNode(Node node) {
+ long id = 0;
+ for (Node n: nodeContainer.getNodes()) {
+ if (n.getId() > id) {
+ id = n.getId();
+ }
+ }
+ node.setId(++id);
nodeContainer.addNode(node);
node.setNodeContainer(this);
}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/FaultNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/FaultNode.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/FaultNode.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -0,0 +1,41 @@
+package org.drools.workflow.core.node;
+
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+/**
+ * Default implementation of a fault node.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">Kris Verlaenen</a>
+ */
+public class FaultNode extends SequenceNode {
+
+ private static final long serialVersionUID = 400L;
+
+ private String faultName;
+ private String faultData;
+
+ public String getFaultName() {
+ return faultName;
+ }
+
+ public void setFaultName(String faultName) {
+ this.faultName = faultName;
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceFactoryRegistry.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceFactoryRegistry.java 2008-05-08 12:06:21 UTC (rev 19904)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceFactoryRegistry.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -6,6 +6,7 @@
import org.drools.workflow.core.Node;
import org.drools.workflow.core.node.ActionNode;
import org.drools.workflow.core.node.EndNode;
+import org.drools.workflow.core.node.FaultNode;
import org.drools.workflow.core.node.Join;
import org.drools.workflow.core.node.MilestoneNode;
import org.drools.workflow.core.node.RuleSetNode;
@@ -18,6 +19,7 @@
import org.drools.workflow.instance.impl.factory.ReuseNodeFactory;
import org.drools.workflow.instance.node.ActionNodeInstance;
import org.drools.workflow.instance.node.EndNodeInstance;
+import org.drools.workflow.instance.node.FaultNodeInstance;
import org.drools.workflow.instance.node.JoinInstance;
import org.drools.workflow.instance.node.MilestoneNodeInstance;
import org.drools.workflow.instance.node.RuleSetNodeInstance;
@@ -56,6 +58,8 @@
new CreateNewNodeFactory( WorkItemNodeInstance.class ) );
register( TimerNode.class,
new CreateNewNodeFactory( TimerNodeInstance.class ) );
+ register( FaultNode.class,
+ new CreateNewNodeFactory( FaultNodeInstance.class ) );
}
public void register(Class< ? extends Node> cls,
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/FaultNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/FaultNodeInstance.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/FaultNodeInstance.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -0,0 +1,55 @@
+package org.drools.workflow.instance.node;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.drools.process.core.context.exception.ExceptionScope;
+import org.drools.process.instance.ProcessInstance;
+import org.drools.process.instance.context.exception.ExceptionScopeInstance;
+import org.drools.workflow.core.Node;
+import org.drools.workflow.core.node.FaultNode;
+import org.drools.workflow.instance.NodeInstance;
+import org.drools.workflow.instance.impl.NodeInstanceImpl;
+
+/**
+ * Runtime counterpart of a fault node.
+ *
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">Kris Verlaenen</a>
+ */
+public class FaultNodeInstance extends NodeInstanceImpl {
+
+ private static final long serialVersionUID = 400L;
+
+ protected FaultNode getFaultNode() {
+ return (FaultNode) getNode();
+ }
+
+ public void internalTrigger(final NodeInstance from, String type) {
+ if (!Node.CONNECTION_DEFAULT_TYPE.equals(type)) {
+ throw new IllegalArgumentException(
+ "A FaultNode only accepts default incoming connections!");
+ }
+ FaultNode faultNode = getFaultNode();
+ ExceptionScopeInstance exceptionScopeInstance = (ExceptionScopeInstance)
+ resolveContextInstance(ExceptionScope.EXCEPTION_SCOPE, faultNode.getFaultName());
+ if (exceptionScopeInstance != null) {
+ exceptionScopeInstance.handleException(faultNode.getFaultName(), null);
+ } else {
+ getProcessInstance().setState(ProcessInstance.STATE_ABORTED);
+ }
+ }
+
+}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/WorkItemNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/WorkItemNodeInstance.java 2008-05-08 12:06:21 UTC (rev 19904)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/WorkItemNodeInstance.java 2008-05-08 12:06:33 UTC (rev 19905)
@@ -16,6 +16,7 @@
* limitations under the License.
*/
+import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -58,7 +59,7 @@
workItem = new WorkItemImpl();
workItem.setName(work.getName());
workItem.setProcessInstanceId(getProcessInstance().getId());
- workItem.setParameters(work.getParameters());
+ workItem.setParameters(new HashMap<String, Object>(work.getParameters()));
for (Iterator<Map.Entry<String, String>> iterator = workItemNode.getInMappings().entrySet().iterator(); iterator.hasNext(); ) {
Map.Entry<String, String> mapping = iterator.next();
VariableScopeInstance variableScopeInstance = (VariableScopeInstance)
More information about the jboss-svn-commits
mailing list