[jbpm-commits] JBoss JBPM SVN: r5741 - in jbpm4/trunk/modules: jpdl/src/main/java/org/jbpm/jpdl/internal/activity and 5 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Wed Oct 14 06:33:09 EDT 2009
Author: tom.baeyens at jboss.com
Date: 2009-10-14 06:33:08 -0400 (Wed, 14 Oct 2009)
New Revision: 5741
Added:
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/AssignActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/AssignBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/PassthroughActivity.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/PassthroughBinding.java
Modified:
jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/RepositoryService.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/repository/JpdlDeployer.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
jbpm4/trunk/modules/jpdl/src/main/resources/jbpm.jpdl.bindings.xml
jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/test/update/ProcessUpdateTest.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ScopeInstanceImpl.java
Log:
JBPM-2578 adding ability to update a deployment resource for tweaking process behaviour for testing purposes
Modified: jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/RepositoryService.java
===================================================================
--- jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/RepositoryService.java 2009-10-14 06:58:29 UTC (rev 5740)
+++ jbpm4/trunk/modules/api/src/main/java/org/jbpm/api/RepositoryService.java 2009-10-14 10:33:08 UTC (rev 5741)
@@ -91,7 +91,4 @@
/** the coordinates for the activity on
* {@link ProcessDefinition#getImageResourceName() the process image}. */
ActivityCoordinates getActivityCoordinates(String processDefinitionId, String activityName);
-
- /** update an existing deployment resource */
- void updateDeploymentResource(String deploymentId, String string, InputStream inputStream);
}
Added: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/AssignActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/AssignActivity.java (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/AssignActivity.java 2009-10-14 10:33:08 UTC (rev 5741)
@@ -0,0 +1,68 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.jpdl.internal.activity;
+
+import org.jbpm.api.model.OpenExecution;
+import org.jbpm.pvm.internal.script.ScriptManager;
+import org.jbpm.pvm.internal.wire.Descriptor;
+import org.jbpm.pvm.internal.wire.WireContext;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class AssignActivity extends JpdlAutomaticActivity {
+
+ private static final long serialVersionUID = 1L;
+
+ protected String expression;
+ protected String language;
+ protected String variableName;
+ protected Descriptor valueDescriptor;
+
+ void perform(OpenExecution execution) throws Exception {
+ Object value = null;
+
+ if (expression!=null) {
+ ScriptManager scriptManager = ScriptManager.getScriptManager();
+ value = scriptManager.evaluateExpression(expression, language);
+
+ } else if (valueDescriptor!=null) {
+ value = WireContext.create(valueDescriptor);
+ }
+
+ execution.setVariable(variableName, value);
+ }
+
+ public void setExpression(String expression) {
+ this.expression = expression;
+ }
+ public void setLanguage(String language) {
+ this.language = language;
+ }
+ public void setVariableName(String variableName) {
+ this.variableName = variableName;
+ }
+ public void setValueDescriptor(Descriptor valueDescriptor) {
+ this.valueDescriptor = valueDescriptor;
+ }
+}
Property changes on: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/AssignActivity.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/AssignBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/AssignBinding.java (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/AssignBinding.java 2009-10-14 10:33:08 UTC (rev 5741)
@@ -0,0 +1,74 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.jpdl.internal.activity;
+
+import java.util.List;
+import java.util.Set;
+
+import org.jbpm.jpdl.internal.xml.JpdlParser;
+import org.jbpm.pvm.internal.util.XmlUtil;
+import org.jbpm.pvm.internal.wire.Descriptor;
+import org.jbpm.pvm.internal.wire.xml.WireParser;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.w3c.dom.Element;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class AssignBinding extends JpdlBinding {
+
+ public AssignBinding() {
+ super("assign");
+ }
+
+ public Object parseJpdl(Element element, Parse parse, JpdlParser parser) {
+ AssignActivity assignActivity = new AssignActivity();
+
+ String variableName = XmlUtil.attribute(element, "var", true, parse);
+ assignActivity.setVariableName(variableName);
+
+ String expression = XmlUtil.attribute(element, "expr");
+ if (expression!=null) {
+ assignActivity.setExpression(expression);
+ assignActivity.setLanguage(XmlUtil.attribute(element, "lang"));
+
+ } else {
+
+ Set<String> descriptorTagNames = JpdlParser.wireParser.getBindings().getTagNames(WireParser.CATEGORY_DESCRIPTOR);
+ Descriptor valueDescriptor = null;
+ List<Element> assignContentElements = XmlUtil.elements(element);
+
+ for (int i=0; ((i<assignContentElements.size()) && (valueDescriptor==null)); i++) {
+ Element assignContentElement = assignContentElements.get(i);
+ String assignContentElementTagName = XmlUtil.getTagLocalName(assignContentElement);
+ if (descriptorTagNames.contains(assignContentElementTagName)) {
+ valueDescriptor = parser.parseDescriptor(element, parse);
+ }
+ }
+
+ assignActivity.setValueDescriptor(valueDescriptor);
+ }
+
+ return assignActivity;
+ }
+}
Property changes on: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/AssignBinding.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlBinding.java 2009-10-14 06:58:29 UTC (rev 5740)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlBinding.java 2009-10-14 10:33:08 UTC (rev 5741)
@@ -32,7 +32,6 @@
import org.jbpm.pvm.internal.model.TransitionImpl;
import org.jbpm.pvm.internal.util.TagBinding;
import org.jbpm.pvm.internal.util.XmlUtil;
-import org.jbpm.pvm.internal.wire.xml.WireParser;
import org.jbpm.pvm.internal.xml.Parse;
import org.jbpm.pvm.internal.xml.Parser;
import org.w3c.dom.Element;
@@ -43,8 +42,6 @@
*/
public abstract class JpdlBinding extends TagBinding {
- protected static final WireParser wireParser = JpdlParser.wireParser;
-
public JpdlBinding(String tagName) {
super(tagName, null, null);
}
Added: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/PassthroughActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/PassthroughActivity.java (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/PassthroughActivity.java 2009-10-14 10:33:08 UTC (rev 5741)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.jpdl.internal.activity;
+
+import org.jbpm.api.activity.ActivityBehaviour;
+import org.jbpm.api.activity.ActivityExecution;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class PassthroughActivity implements ActivityBehaviour {
+
+ private static final long serialVersionUID = 1L;
+
+ public void execute(ActivityExecution execution) throws Exception {
+ }
+}
Property changes on: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/PassthroughActivity.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/PassthroughBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/PassthroughBinding.java (rev 0)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/PassthroughBinding.java 2009-10-14 10:33:08 UTC (rev 5741)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.jpdl.internal.activity;
+
+import org.jbpm.jpdl.internal.xml.JpdlParser;
+import org.jbpm.pvm.internal.xml.Parse;
+import org.w3c.dom.Element;
+
+
+/**
+ * @author Tom Baeyens
+ */
+public class PassthroughBinding extends JpdlBinding {
+
+ public PassthroughBinding() {
+ super("passthrough");
+ }
+
+ public Object parseJpdl(Element element, Parse parse, JpdlParser parser) {
+ return new PassthroughActivity();
+ }
+
+}
Property changes on: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/PassthroughBinding.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/repository/JpdlDeployer.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/repository/JpdlDeployer.java 2009-10-14 06:58:29 UTC (rev 5740)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/repository/JpdlDeployer.java 2009-10-14 10:33:08 UTC (rev 5741)
@@ -104,7 +104,7 @@
processElement.appendChild(clonedDescriptionElement);
}
- updateActivities(processDocument, processElement, processUpdateDescriptionElement);
+ updateActivities(processDocument, processElement, processUpdateElement);
try {
Transformer transformer = TransformerFactory.newInstance().newTransformer();
@@ -130,61 +130,71 @@
Map<String, Element> updateActivityMap = getActivityMap(updateContainerElement, activityNames);
for (String activityName: updateActivityMap.keySet()) {
+ Element updateActivity = updateActivityMap.get(activityName);
Element processActivity = processActivityMap.get(activityName);
- Element updateActivity = updateActivityMap.get(activityName);
- String updateTagName = XmlUtil.getTagLocalName(updateActivity);
-
- activityContainerElement.removeChild(processActivity);
- Element mergedActivityElement = processDocument.createElement(updateTagName);
- mergeAttributes(mergedActivityElement, processActivity.getAttributes());
- mergeAttributes(mergedActivityElement, updateActivity.getAttributes());
+ if (processActivity==null) {
+ throw new JbpmException("unmatching update activity "+activityName);
+ }
- Map<String, List<Element>> processActivityContents = getElementsByTagName(processActivity);
- Map<String, List<Element>> updateActivityContents = getElementsByTagName(updateActivity);
+ Node clonedUpdateActivity = updateActivity.cloneNode(true);
+ processDocument.adoptNode(clonedUpdateActivity);
+ activityContainerElement.insertBefore(clonedUpdateActivity, processActivity);
+ activityContainerElement.removeChild(processActivity);
- Set<String> allTagNames = new HashSet<String>(processActivityContents.keySet());
- allTagNames.addAll(updateActivityContents.keySet());
-
- for (String tagName: allTagNames) {
- List<Element> contentElements = processActivityContents.get(tagName);
- if (contentElements==null) {
- contentElements = new ArrayList<Element>();
- }
- List<Element> updateElements = updateActivityContents.get(tagName);
- for (int i=0; i<contentElements.size(); i++) {
- Element contentElement = contentElements.get(i);
- Element updateElement = (updateElements!=null && updateElements.size()>i ? updateElements.get(i) : null);
- if (updateElement!=null) {
- mergeAttributes(contentElement, updateElement.getAttributes());
- }
- }
- }
+// String updateTagName = XmlUtil.getTagLocalName(updateActivity);
+//
+// activityContainerElement.removeChild(processActivity);
+// Element mergedActivityElement = processDocument.createElement(updateTagName);
+//
+// mergeAttributes(mergedActivityElement, processActivity.getAttributes());
+// mergeAttributes(mergedActivityElement, updateActivity.getAttributes());
+//
+// Map<String, List<Element>> processActivityContents = getElementsByTagName(processActivity);
+// Map<String, List<Element>> updateActivityContents = getElementsByTagName(updateActivity);
+//
+// Set<String> allTagNames = new HashSet<String>(processActivityContents.keySet());
+// allTagNames.addAll(updateActivityContents.keySet());
+//
+// for (String tagName: allTagNames) {
+// List<Element> contentElements = processActivityContents.get(tagName);
+// if (contentElements==null) {
+// contentElements = new ArrayList<Element>();
+// }
+// List<Element> updateElements = updateActivityContents.get(tagName);
+// for (int i=0; i<contentElements.size(); i++) {
+// Element contentElement = contentElements.get(i);
+// Element updateElement = (updateElements!=null && updateElements.size()>i ? updateElements.get(i) : null);
+// if (updateElement!=null) {
+// mergeAttributes(contentElement, updateElement.getAttributes());
+// }
+// }
+// }
}
}
- public Map<String, List<Element>> getElementsByTagName(Element element) {
- Map<String, List<Element>> elementsByTagName = new HashMap<String, List<Element>>();
- for (Element contentElement: XmlUtil.elements(element)) {
- String tagName = XmlUtil.getTagLocalName(contentElement);
- List<Element> tagElements = elementsByTagName.get(tagName);
- if (tagElements==null) {
- tagElements = new ArrayList<Element>();
- elementsByTagName.put(tagName, tagElements);
- }
- tagElements.add(contentElement);
- }
- return elementsByTagName;
- }
+// public Map<String, List<Element>> getElementsByTagName(Element element) {
+// Map<String, List<Element>> elementsByTagName = new HashMap<String, List<Element>>();
+// for (Element contentElement: XmlUtil.elements(element)) {
+// String tagName = XmlUtil.getTagLocalName(contentElement);
+// List<Element> tagElements = elementsByTagName.get(tagName);
+// if (tagElements==null) {
+// tagElements = new ArrayList<Element>();
+// elementsByTagName.put(tagName, tagElements);
+// }
+// tagElements.add(contentElement);
+// }
+// return elementsByTagName;
+// }
- private void mergeAttributes(Element element, NamedNodeMap attributes) {
- for (int i=0; i<attributes.getLength(); i++) {
- Node attribute = attributes.item(i);
- String attributeName = attribute.getNodeName();
- String attributeValue = attribute.getNodeValue();
- element.setAttribute(attributeName, attributeValue);
- }
- }
+// private void mergeAttributes(Element element, NamedNodeMap attributes) {
+// for (int i=0; i<attributes.getLength(); i++) {
+// Node attribute = attributes.item(i);
+// String attributeName = attribute.getNodeName();
+// String attributeValue = attribute.getNodeValue();
+// element.setAttribute(attributeName, attributeValue);
+// }
+// }
protected Map<String, Element> getActivityMap(Element containerElement, Set<String> activityNames) {
Map<String, Element> activityMap = new HashMap<String, Element>();
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-10-14 06:58:29 UTC (rev 5740)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-10-14 10:33:08 UTC (rev 5741)
@@ -588,39 +588,6 @@
return taskDefinition;
}
- public ObjectDescriptor parseObjectDescriptor(Element element, Parse parse) {
- ObjectDescriptor objectDescriptor = new ObjectDescriptor();
-
- String className = XmlUtil.attribute(element, "class");
- if (className!=null) {
- objectDescriptor.setClassName(className);
-
- // read the operations elements
- List<Operation> operations = null;
- List<Element> elements = XmlUtil.elements(element);
-
- Set<String> operationTagNames = wireParser.getBindings().getTagNames(WireParser.CATEGORY_OPERATION);
- for (Element childElement: elements) {
- if (operationTagNames.contains(childElement.getTagName())) {
- Operation operation = (Operation) wireParser.parseElement(childElement, parse, WireParser.CATEGORY_OPERATION);
- if (operations==null) {
- operations = new ArrayList<Operation>();
- }
- operations.add(operation);
- }
- }
- objectDescriptor.setOperations(operations);
-
- // autowiring
- Boolean isAutoWireEnabled = XmlUtil.attributeBoolean(element, "auto-wire", false, parse);
- if (isAutoWireEnabled!=null) {
- objectDescriptor.setAutoWireEnabled(isAutoWireEnabled.booleanValue());
- }
- }
- return objectDescriptor;
- }
-
-
public List<VariableDefinitionImpl> parseVariableDefinitions(Element element, Parse parse, boolean initRequired) {
List<VariableDefinitionImpl> variableDefinitions = new ArrayList<VariableDefinitionImpl>();
@@ -754,7 +721,7 @@
public UserCodeReference parseUserCodeReference(Element element, Parse parse) {
UserCodeReference userCodeReference = new UserCodeReference();
- ObjectDescriptor objectDescriptor = (ObjectDescriptor) objectBinding.parse(element, parse, wireParser);
+ ObjectDescriptor objectDescriptor = parseObjectDescriptor(element, parse);
userCodeReference.setDescriptor(objectDescriptor);
if (objectDescriptor.getExpr()!=null) {
@@ -769,7 +736,15 @@
return userCodeReference;
}
-
+
+ public ObjectDescriptor parseObjectDescriptor(Element element, Parse parse) {
+ return (ObjectDescriptor) objectBinding.parse(element, parse, wireParser);
+ }
+
+ public Descriptor parseDescriptor(Element element, Parse parse) {
+ return (Descriptor) wireParser.parseElement(element, parse);
+ }
+
public Set<String> getActivityTagNames() {
return getBindings().getTagNames(CATEGORY_ACTIVITY);
}
Modified: jbpm4/trunk/modules/jpdl/src/main/resources/jbpm.jpdl.bindings.xml
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/resources/jbpm.jpdl.bindings.xml 2009-10-14 06:58:29 UTC (rev 5740)
+++ jbpm4/trunk/modules/jpdl/src/main/resources/jbpm.jpdl.bindings.xml 2009-10-14 10:33:08 UTC (rev 5741)
@@ -17,6 +17,8 @@
<activity binding="org.jbpm.jpdl.internal.activity.MailBinding" />
<activity binding="org.jbpm.jpdl.internal.activity.GroupBinding" />
<activity binding="org.jbpm.jpdl.internal.activity.CustomBinding" />
+ <activity binding="org.jbpm.jpdl.internal.activity.AssignBinding" />
+ <activity binding="org.jbpm.jpdl.internal.activity.PassthroughBinding" />
<eventlistener binding="org.jbpm.jpdl.internal.activity.EventListenerBinding" />
<eventlistener binding="org.jbpm.jpdl.internal.activity.JavaBinding" />
@@ -24,5 +26,6 @@
<eventlistener binding="org.jbpm.jpdl.internal.activity.SqlBinding" />
<eventlistener binding="org.jbpm.jpdl.internal.activity.ScriptBinding" />
<eventlistener binding="org.jbpm.jpdl.internal.activity.MailBinding" />
+ <eventlistener binding="org.jbpm.jpdl.internal.activity.AssignBinding" />
</bindings>
Modified: jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/test/update/ProcessUpdateTest.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/test/update/ProcessUpdateTest.java 2009-10-14 06:58:29 UTC (rev 5740)
+++ jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/test/update/ProcessUpdateTest.java 2009-10-14 10:33:08 UTC (rev 5741)
@@ -25,6 +25,7 @@
import java.io.InputStream;
import org.jbpm.api.ProcessInstance;
+import org.jbpm.pvm.internal.repository.RepositoryServiceImpl;
import org.jbpm.pvm.internal.util.XmlUtil;
import org.jbpm.pvm.internal.xml.Parser;
import org.jbpm.test.JbpmTestCase;
@@ -92,18 +93,21 @@
updateJpdlXmlString(
deploymentId,
"<process-update>" +
- " <java name='getDataFromDb' expr='#{541}' />" +
+ " <assign name='getDataFromDb' expr='#{541}' var='nbrOfOrders'>" +
+ " <transition to='wait' />" +
+ " </assign>" +
"</process-update>"
);
ProcessInstance processInstance = executionService.startProcessInstanceByKey("ReplaceActivity");
processInstance.isActive("wait");
- assertEquals(541, executionService.getVariable(processInstance.getId(), "nbrOfOrders"));
+ assertEquals(541L, executionService.getVariable(processInstance.getId(), "nbrOfOrders"));
}
public void updateJpdlXmlString(String deploymentId, String xmlString) {
InputStream inputStream = new ByteArrayInputStream(xmlString.getBytes());
- repositoryService.updateDeploymentResource(deploymentId, "xmlstring.jpdl.xml", inputStream);
+ RepositoryServiceImpl repositoryServiceImpl = (RepositoryServiceImpl) repositoryService;
+ repositoryServiceImpl.updateDeploymentResource(deploymentId, "xmlstring.jpdl.xml", inputStream);
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ScopeInstanceImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ScopeInstanceImpl.java 2009-10-14 06:58:29 UTC (rev 5740)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/model/ScopeInstanceImpl.java 2009-10-14 10:33:08 UTC (rev 5741)
@@ -151,6 +151,10 @@
}
public void setVariable(String key, Object value) {
+ if (key==null) {
+ throw new JbpmException("variableName is null");
+ }
+
Variable variable = getVariableObject(key);
// if there is already a variable instance and it doesn't support the current type...
if ( (variable!=null)
More information about the jbpm-commits
mailing list