[jbpm-commits] JBoss JBPM SVN: r5682 - in jbpm4/trunk/modules: bpmn/src/main/java/org/jbpm/bpmn/parser and 12 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Sun Oct 4 11:43:29 EDT 2009
Author: tom.baeyens at jboss.com
Date: 2009-10-04 11:43:28 -0400 (Sun, 04 Oct 2009)
New Revision: 5682
Modified:
jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractTaskBinding.java
jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ServiceTaskBinding.java
jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/StartBinding.java
jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/TaskBinding.java
jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/UserTaskBinding.java
jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/parser/BpmnParser.java
jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbUpgrade.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/GroupBinding.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/activity/StartBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskBinding.java
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java
jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/JpdlSchemaTest.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cfg/ProcessEngineImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/env/JbpmConfigurationParser.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/ProcessDeployer.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/EnvironmentInterceptorBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/MailTemplateBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ProcessEngineRefBinding.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/BindingParser.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/WireParser.java
jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parse.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/DescriptionTest.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/taskactivity/TaskReassignTest.java
Log:
added language version id
Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractTaskBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractTaskBinding.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/AbstractTaskBinding.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -53,7 +53,7 @@
String resourceRef = XmlUtil.attribute(performer, "resourceRef", true, parse);
- BpmnProcessDefinition bpmnProcessDefinition = parse.findObject(BpmnProcessDefinition.class);
+ BpmnProcessDefinition bpmnProcessDefinition = parse.contextStackFind(BpmnProcessDefinition.class);
ActivityResource activityResource = new ActivityResource();
activityResource.setResourceRef(bpmnProcessDefinition.getResource(resourceRef));
Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ServiceTaskBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ServiceTaskBinding.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/ServiceTaskBinding.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -46,7 +46,7 @@
public Object parse(Element element, Parse parse, Parser parser) {
JavaServiceTaskActivity javaActivity = new JavaServiceTaskActivity();
- BpmnProcessDefinition bpmnProcessDefinition = parse.findObject(BpmnProcessDefinition.class);
+ BpmnProcessDefinition bpmnProcessDefinition = parse.contextStackFind(BpmnProcessDefinition.class);
Document dom = element.getOwnerDocument();
String operationRef = XmlUtil.attribute(element, "operationRef", true, parse, null);
Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/StartBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/StartBinding.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/StartBinding.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -36,8 +36,8 @@
}
public Object parse(Element element, Parse parse, Parser parser) {
- ActivityImpl startActivity = parse.findObject(ActivityImpl.class);
- BpmnProcessDefinition processDefinition = parse.findObject(BpmnProcessDefinition.class);
+ ActivityImpl startActivity = parse.contextStackFind(ActivityImpl.class);
+ BpmnProcessDefinition processDefinition = parse.contextStackFind(BpmnProcessDefinition.class);
if (processDefinition.getInitial()==null) {
processDefinition.setInitial(startActivity);
Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/TaskBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/TaskBinding.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/TaskBinding.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -40,7 +40,7 @@
public Object parse(Element element, Parse parse, Parser parser) {
TaskActivity taskActivity = new TaskActivity();
- ScopeElementImpl scopeElement = parse.findObject(ScopeElementImpl.class);
+ ScopeElementImpl scopeElement = parse.contextStackFind(ScopeElementImpl.class);
TaskDefinitionImpl taskDefinition = BpmnParser.parseTaskDefinition(element, parse, scopeElement);
taskActivity.setTaskDefinition(taskDefinition);
Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/UserTaskBinding.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/UserTaskBinding.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/flownodes/UserTaskBinding.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -47,10 +47,10 @@
public Object parse(Element element, Parse parse, Parser parser) {
UserTaskActivity taskActivity = new UserTaskActivity();
- ScopeElementImpl scopeElement = parse.findObject(ScopeElementImpl.class);
+ ScopeElementImpl scopeElement = parse.contextStackFind(ScopeElementImpl.class);
TaskDefinitionImpl taskDefinition = BpmnParser.parseTaskDefinition(element, parse, scopeElement);
- BpmnProcessDefinition bpmnProcessDefinition = parse.findObject(BpmnProcessDefinition.class);
+ BpmnProcessDefinition bpmnProcessDefinition = parse.contextStackFind(BpmnProcessDefinition.class);
//bpmnProcessDefinition.getResource(ref)
addActivityResources(taskDefinition, taskActivity, element, parse);
Modified: jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/parser/BpmnParser.java
===================================================================
--- jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/parser/BpmnParser.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/bpmn/src/main/java/org/jbpm/bpmn/parser/BpmnParser.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -98,7 +98,7 @@
public ProcessDefinitionImpl parseProcess(Element processElement, Parse parse) {
BpmnProcessDefinition processDefinition = new BpmnProcessDefinition();
- parse.pushObject(processDefinition);
+ parse.contextStackPush(processDefinition);
try {
// process attribues
@@ -136,7 +136,7 @@
parseTransitions(processElement, parse, processDefinition);
} finally {
- parse.popObject();
+ parse.contextStackPop();
}
return processDefinition;
@@ -202,7 +202,7 @@
}
ActivityImpl activity = compositeElement.createActivity();
- parse.pushObject(activity);
+ parse.contextStackPush(activity);
try {
activity.setType(activityBinding.getTagName());
activity.setName(id);
@@ -211,7 +211,7 @@
ActivityBehaviour activityBehaviour = (ActivityBehaviour) activityBinding.parse(nestedElement, parse, this);
activity.setBehaviour(activityBehaviour);
} finally {
- parse.popObject();
+ parse.contextStackPop();
}
}
}
@@ -330,7 +330,7 @@
// String form = XmlUtil.attribute(element, "form");
// taskDefinition.setForm(form);
- BpmnProcessDefinition processDefinition = parse.findObject(BpmnProcessDefinition.class);
+ BpmnProcessDefinition processDefinition = parse.contextStackFind(BpmnProcessDefinition.class);
if (processDefinition.getTaskDefinition(taskName) != null) {
parse.addProblem("duplicate task name " + taskName, element);
} else {
Modified: jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbUpgrade.java
===================================================================
--- jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbUpgrade.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/db/src/main/java/org/jbpm/db/DbUpgrade.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -21,7 +21,9 @@
*/
package org.jbpm.db;
+import org.jbpm.api.JbpmException;
+
/**
* @author Tom Baeyens
*/
@@ -35,6 +37,8 @@
}
}
+ throw new JbpmException("TODO initialize langid deployproperties for existing processes");
+
// String dbVersion = getDbVersion();
// String distroVersion = "4.2";
//
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionBinding.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/DecisionBinding.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -74,7 +74,7 @@
boolean hasConditions = false;
List<Element> transitionElements = XmlUtil.elements(element, "transition");
- ActivityImpl activity = parse.findObject(ActivityImpl.class);
+ ActivityImpl activity = parse.contextStackFind(ActivityImpl.class);
List<TransitionImpl> transitions = (List) activity.getOutgoingTransitions();
for (int i=0; i<transitionElements.size(); i++) {
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/GroupBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/GroupBinding.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/GroupBinding.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -40,7 +40,7 @@
public Object parse(Element element, Parse parse, Parser parser) {
GroupActivity groupActivity = new GroupActivity();
- ActivityImpl activity = parse.findObject(ActivityImpl.class);
+ ActivityImpl activity = parse.contextStackFind(ActivityImpl.class);
JpdlParser jpdlParser = (JpdlParser) parser;
jpdlParser.parseActivities(element, parse, activity);
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-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/JpdlBinding.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -45,7 +45,7 @@
protected static final WireParser wireParser = JpdlParser.wireParser;
public JpdlBinding(String tagName) {
- super(tagName, JpdlParser.JPDL_NAMESPACE, null);
+ super(tagName, null, null);
}
public void parseName(Element element, ActivityImpl activity, Parse parse) {
@@ -68,7 +68,7 @@
public void parseTransitions(Element element, ActivityImpl activity, Parse parse, JpdlParser jpdlParser) {
List<Element> transitionElements = XmlUtil.elements(element, "transition");
- UnresolvedTransitions unresolvedTransitions = parse.findObject(UnresolvedTransitions.class);
+ UnresolvedTransitions unresolvedTransitions = parse.contextStackFind(UnresolvedTransitions.class);
for (Element transitionElement: transitionElements) {
String transitionName = XmlUtil.attribute(transitionElement, "name", false, parse);
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartBinding.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/StartBinding.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -39,8 +39,8 @@
}
public Object parse(Element element, Parse parse, Parser parser) {
- ActivityImpl startActivity = parse.findObject(ActivityImpl.class);
- JpdlProcessDefinition processDefinition = parse.findObject(JpdlProcessDefinition.class);
+ ActivityImpl startActivity = parse.contextStackFind(ActivityImpl.class);
+ JpdlProcessDefinition processDefinition = parse.contextStackFind(JpdlProcessDefinition.class);
if (processDefinition.getInitial()==null) {
processDefinition.setInitial(startActivity);
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskBinding.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskBinding.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/TaskBinding.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -42,7 +42,7 @@
public Object parse(Element element, Parse parse, Parser parser) {
TaskActivity taskActivity = new TaskActivity();
- ScopeElementImpl scopeElement = parse.findObject(ScopeElementImpl.class);
+ ScopeElementImpl scopeElement = parse.contextStackFind(ScopeElementImpl.class);
TaskDefinitionImpl taskDefinition = JpdlParser.parseTaskDefinition(element, parse, scopeElement);
taskActivity.setTaskDefinition(taskDefinition);
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-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/JpdlParser.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -59,6 +59,7 @@
import org.jbpm.pvm.internal.model.VariableDefinitionImpl;
import org.jbpm.pvm.internal.model.VariableOutDefinitionImpl;
import org.jbpm.pvm.internal.model.VariableOutDefinitionSet;
+import org.jbpm.pvm.internal.repository.DeploymentImpl;
import org.jbpm.pvm.internal.task.AssignableDefinitionImpl;
import org.jbpm.pvm.internal.task.SwimlaneDefinitionImpl;
import org.jbpm.pvm.internal.task.TaskDefinitionImpl;
@@ -83,8 +84,13 @@
private static final Log log = Log.getLog(JpdlParser.class.getName());
- public static final String JPDL_NAMESPACE = "http://jbpm.org/4.0/jpdl";
+ public static final String NAMESPACE_JPDL_40 = "http://jbpm.org/4.0/jpdl";
+ public static final String NAMESPACE_JPDL_42 = "http://jbpm.org/4.2/jpdl";
+ public static final String CURRENT_VERSION_JBPM = "4.2";
+ public static final String CURRENT_VERSION_NAMESPACE = "http://jbpm.org/"+CURRENT_VERSION_JBPM+"/jpdl";
+ public static final String CURRENT_VERSION_PROCESS_LANGUAGE_ID = "jpdl-"+CURRENT_VERSION_JBPM;
+
public static final WireParser wireParser = WireParser.getInstance();
// array elements are mutable, even when final
@@ -180,12 +186,40 @@
processDefinitions.add(processDefinition);
- parse.pushObject(processDefinition);
+ parse.contextStackPush(processDefinition);
try {
// process attribues
String name = XmlUtil.attribute(documentElement, "name", true, parse);
processDefinition.setName(name);
-
+
+ // make the process language version available for bindings
+ // to allow for specific parsing behaviour per version
+ DeploymentImpl deployment = (DeploymentImpl) parse.contextMapGet(Parse.CONTEXT_KEY_DEPLOYMENT);
+ if (deployment!=null) {
+ String processLanguageId = deployment.getProcessLanguageId(name);
+ if (processLanguageId==null) {
+ String namespaceUri = documentElement.getNamespaceURI();
+ if (namespaceUri!=null) {
+ processLanguageId = "jpdl-"+namespaceUri.substring(16, 19);
+ } else {
+ // specify the jpdltestversion with "mvn -Djpdltestversion=jpdl-4.3 clean install"
+ // that way, the whole test suite will be use the specified parser
+ String jpdlTest = System.getProperty("jpdltestversion");
+ if (jpdlTest!=null) {
+ processLanguageId = jpdlTest;
+ throw new RuntimeException("USING TEST LANGUAGE VERSION "+processLanguageId);
+ } else {
+ processLanguageId = CURRENT_VERSION_PROCESS_LANGUAGE_ID;
+ }
+ }
+ // saving the process language will make sure that
+ // the right parser version is used after an upgrade of jbpm
+ // as the old format xml will still be in the db
+ deployment.setProcessLanguageId(name, processLanguageId);
+ }
+ parse.contextMapPut(Parse.CONTEXT_KEY_PROCESS_LANGUAGE_ID, processLanguageId);
+ }
+
String packageName = XmlUtil.attribute(documentElement, "package");
processDefinition.setPackageName(packageName);
@@ -206,7 +240,7 @@
}
UnresolvedTransitions unresolvedTransitions = new UnresolvedTransitions();
- parse.pushObject(unresolvedTransitions);
+ parse.contextStackPush(unresolvedTransitions);
// swimlanes
List<Element> swimlaneElements = XmlUtil.elements(documentElement, "swimlane");
@@ -229,7 +263,7 @@
resolveTransitionDestinations(parse, processDefinition, unresolvedTransitions);
} finally {
- parse.popObject();
+ parse.contextStackPop();
}
if (processDefinition.getInitial()==null) {
@@ -264,7 +298,7 @@
}
ActivityImpl activity = compositeElement.createActivity();
- parse.pushObject(activity);
+ parse.contextStackPush(activity);
try {
activity.setType(activityBinding.getTagName());
activityBinding.parseName(nestedElement, activity, parse);
@@ -318,7 +352,7 @@
parse.addProblem("invalid coordinates g=\"" + g + "\" in " + activity, nestedElement);
}
} finally {
- parse.popObject();
+ parse.contextStackPop();
}
}
}
@@ -438,7 +472,7 @@
public void parseTransitions(Element element, ActivityImpl activity, Parse parse) {
List<Element> transitionElements = XmlUtil.elements(element, "transition");
- UnresolvedTransitions unresolvedTransitions = parse.findObject(UnresolvedTransitions.class);
+ UnresolvedTransitions unresolvedTransitions = parse.contextStackFind(UnresolvedTransitions.class);
for (Element transitionElement: transitionElements) {
String transitionName = XmlUtil.attribute(transitionElement, "name", false, parse);
@@ -499,7 +533,7 @@
String form = XmlUtil.attribute(element, "form");
taskDefinition.setFormResourceName(form);
- ProcessDefinitionImpl processDefinition = parse.findObject(ProcessDefinitionImpl.class);
+ ProcessDefinitionImpl processDefinition = parse.contextStackFind(ProcessDefinitionImpl.class);
if (processDefinition.getTaskDefinition(taskName)!=null) {
parse.addProblem("duplicate task name "+taskName, element);
} else {
@@ -508,7 +542,7 @@
String swimlaneName = XmlUtil.attribute(element, "swimlane");
if (swimlaneName!=null) {
- JpdlProcessDefinition jpdlProcessDefinition = parse.findObject(JpdlProcessDefinition.class);
+ JpdlProcessDefinition jpdlProcessDefinition = parse.contextStackFind(JpdlProcessDefinition.class);
SwimlaneDefinitionImpl swimlaneDefinition = jpdlProcessDefinition.getSwimlaneDefinition(swimlaneName);
if (swimlaneDefinition!=null) {
taskDefinition.setSwimlaneDefinition(swimlaneDefinition);
Modified: jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/JpdlSchemaTest.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/JpdlSchemaTest.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/jpdl/src/test/java/org/jbpm/jpdl/parsing/JpdlSchemaTest.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -32,10 +32,10 @@
*/
public class JpdlSchemaTest extends JpdlParseTestCase {
- public void testSimplestValidProcess() {
+ public void testSimplestValidProcessWithPrefix() {
List<Problem> problems = jpdlParser.createParse()
.setString(
- "<jpdl:process xmlns:jpdl='"+JpdlParser.JPDL_NAMESPACE+"' " +
+ "<jpdl:process xmlns:jpdl='"+JpdlParser.CURRENT_VERSION_NAMESPACE+"' " +
" name='p' >" +
" <jpdl:start name='n' />" +
"</jpdl:process>"
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cfg/ProcessEngineImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cfg/ProcessEngineImpl.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/cfg/ProcessEngineImpl.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -179,7 +179,7 @@
isConfigured = true;
JbpmConfigurationParser.getInstance()
.createParse()
- .pushObject(this)
+ .contextStackPush(this)
.setStreamSource(streamSource)
.execute()
.checkErrors("jbpm configuration " + streamSource);
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/env/JbpmConfigurationParser.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/env/JbpmConfigurationParser.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/env/JbpmConfigurationParser.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -57,7 +57,7 @@
Element documentElement = document.getDocumentElement();
// if the default environment factory was already set in the parse
- ProcessEngineImpl processEngineImpl = (ProcessEngineImpl) parse.findObject(ProcessEngineImpl.class);
+ ProcessEngineImpl processEngineImpl = (ProcessEngineImpl) parse.contextStackFind(ProcessEngineImpl.class);
if (processEngineImpl==null) {
processEngineImpl = new ProcessEngineImpl();
}
@@ -67,7 +67,7 @@
String resource = importElement.getAttribute("resource");
Parse importParse = createParse()
.setResource(resource)
- .pushObject(processEngineImpl)
+ .contextStackPush(processEngineImpl)
.execute();
parse.addProblems(importParse.getProblems());
@@ -77,22 +77,22 @@
Element processEngineElement = XmlUtil.element(documentElement, "process-engine-context");
if (processEngineElement != null) {
WireDefinition processEngineContextDefinition = processEngineImpl.getProcessEngineWireContext().getWireDefinition();
- parse.pushObject(processEngineContextDefinition);
+ parse.contextStackPush(processEngineContextDefinition);
try {
processEngineContextParser.parseDocumentElement(processEngineElement, parse);
} finally {
- parse.popObject();
+ parse.contextStackPop();
}
}
Element txCtxElement = XmlUtil.element(documentElement, "transaction-context");
if (txCtxElement != null) {
WireDefinition transactionContextDefinition = processEngineImpl.getTransactionWireDefinition();
- parse.pushObject(transactionContextDefinition);
+ parse.contextStackPush(transactionContextDefinition);
try {
transactionContextParser.parseDocumentElement(txCtxElement, parse);
} finally {
- parse.popObject();
+ parse.contextStackPop();
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/DeploymentImpl.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -60,6 +60,7 @@
private static final long serialVersionUID = 1L;
+ public static final String KEY_PROCESS_LANGUAGE_ID = "langid";
public static final String KEY_PROCESS_DEFINITION_ID = "pdid";
public static final String KEY_PROCESS_DEFINITION_KEY = "pdkey";
public static final String KEY_PROCESS_DEFINITION_VERSION = "pdversion";
@@ -197,7 +198,16 @@
public Long getProcessDefinitionVersion(String processDefinitionName) {
return (Long) getObjectProperty(processDefinitionName, KEY_PROCESS_DEFINITION_VERSION);
}
+
+ public String getProcessLanguageId(String processDefinitionName) {
+ return (String) getObjectProperty(processDefinitionName, KEY_PROCESS_LANGUAGE_ID);
+ }
+ public void setProcessLanguageId(String processDefinitionName, String processLanguageId) {
+ setObjectProperty(processDefinitionName, KEY_PROCESS_LANGUAGE_ID, processLanguageId);
+ }
+
+
public void setObjectProperty(String objectName, String key, Object value) {
if (objectProperties==null) {
objectProperties = new HashSet<DeploymentProperty>();
@@ -236,7 +246,9 @@
public boolean hasObjectProperties(String objectName) {
if (objectProperties!=null) {
for (DeploymentProperty deploymentProperty: objectProperties) {
- if (deploymentProperty.getObjectName().equals(objectName)) {
+ if ( deploymentProperty.getObjectName().equals(objectName)
+ && KEY_PROCESS_DEFINITION_ID.equals(deploymentProperty.getKey())
+ ) {
return true;
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/ProcessDeployer.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/ProcessDeployer.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/repository/ProcessDeployer.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -58,6 +58,7 @@
byte[] bytes = deployment.getBytes(resourceName);
InputStream inputStream = new ByteArrayInputStream(bytes);
Parse parse = parser.createParse();
+ parse.contextMapPut(Parse.CONTEXT_KEY_DEPLOYMENT, deployment);
parse.setProblems(deployment.getProblems());
parse.setInputStream(inputStream);
parse.execute();
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/EnvironmentInterceptorBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/EnvironmentInterceptorBinding.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/EnvironmentInterceptorBinding.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -41,7 +41,7 @@
public Object parse(Element element, Parse parse, Parser parser) {
EnvironmentInterceptorDescriptor environmentInterceptorDescriptor = new EnvironmentInterceptorDescriptor();
- EnvironmentFactory environmentFactory = (EnvironmentFactory) parse.findObject(ProcessEngineImpl.class);
+ EnvironmentFactory environmentFactory = (EnvironmentFactory) parse.contextStackFind(ProcessEngineImpl.class);
environmentInterceptorDescriptor.setEnvironmentFactory(environmentFactory);
if ( element.hasAttribute("policy")
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/MailTemplateBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/MailTemplateBinding.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/MailTemplateBinding.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -51,7 +51,7 @@
ProvidedObjectDescriptor templateRegistryDescriptor;
MailTemplateRegistry templateRegistry;
- WireDefinition wireDefinition = parse.findObject(WireDefinition.class);
+ WireDefinition wireDefinition = parse.contextStackFind(WireDefinition.class);
String templateRegistryDescriptorName = (wireDefinition != null ? wireDefinition.getDescriptorName(MailTemplateRegistry.class) : null);
if (templateRegistryDescriptorName != null) {
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ProcessEngineRefBinding.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ProcessEngineRefBinding.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/binding/ProcessEngineRefBinding.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -42,7 +42,7 @@
}
public Object parse(Element element, Parse parse, Parser parser) {
- ProcessEngine processEngine = (ProcessEngine) parse.findObject(ProcessEngine.class);
+ ProcessEngine processEngine = (ProcessEngine) parse.contextStackFind(ProcessEngine.class);
return new ProcessEngineDescriptor(processEngine);
}
}
\ No newline at end of file
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/BindingParser.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/BindingParser.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/BindingParser.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -56,7 +56,7 @@
}
if (binding!=null) {
- Bindings bindings = parse.findObject(Bindings.class);
+ Bindings bindings = parse.contextStackFind(Bindings.class);
bindings.addBinding(binding);
}
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/WireParser.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/WireParser.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/wire/xml/WireParser.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -189,12 +189,12 @@
List<Element> elements = XmlUtil.elements(documentElement);
- WireDefinition wireDefinition = parse.findObject(WireDefinition.class);
+ WireDefinition wireDefinition = parse.contextStackFind(WireDefinition.class);
if (wireDefinition==null) {
wireDefinition = new WireDefinition();
}
- parse.pushObject(wireDefinition);
+ parse.contextStackPush(wireDefinition);
try {
for (Element descriptorElement: elements) {
Descriptor descriptor = (Descriptor) parseElement(descriptorElement, parse, CATEGORY_DESCRIPTOR);
@@ -207,7 +207,7 @@
}
}
} finally {
- parse.popObject();
+ parse.contextStackPop();
}
return wireDefinition;
@@ -283,7 +283,7 @@
log.trace("loading wire bindings from resource: "+resourceUrl);
bindingParser.createParse()
.setUrl(resourceUrl)
- .pushObject(defaultBindings)
+ .contextStackPush(defaultBindings)
.execute()
.checkErrors(resourceUrl.toString());
}
Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parse.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parse.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/xml/Parse.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -25,7 +25,9 @@
import java.io.File;
import java.io.InputStream;
import java.net.URL;
+import java.util.HashMap;
import java.util.ListIterator;
+import java.util.Map;
import java.util.Stack;
import javax.xml.parsers.DocumentBuilder;
@@ -49,6 +51,9 @@
public class Parse extends ProblemList implements ErrorHandler {
private static final long serialVersionUID = 1L;
+
+ public static final String CONTEXT_KEY_DEPLOYMENT = "deployment";
+ public static final String CONTEXT_KEY_PROCESS_LANGUAGE_ID = "proclangid";
protected Parser parser;
@@ -59,7 +64,8 @@
protected DocumentBuilder documentBuilder = null;
protected Document document = null;
- protected Stack<Object> objectStack;
+ protected Map<String, Object> contextMap;
+ protected Stack<Object> contextStack;
protected Object documentObject;
protected Parse(Parser parser) {
@@ -184,39 +190,63 @@
return this;
}
- // contextual objects ///////////////////////////////////////////////////////
+ // context map //////////////////////////////////////////////////////////////
+ public Parse contextMapPut(String key, Object value) {
+ if (contextMap==null) {
+ contextMap = new HashMap<String, Object>();
+ }
+ contextMap.put(key, value);
+ return this;
+ }
+
+ public Object contextMapGet(String key) {
+ if (contextMap!=null) {
+ return contextMap.get(key);
+ }
+ return null;
+ }
+
+ public Parse contextMapRemove(String key) {
+ if (contextMap!=null) {
+ contextMap.remove(key);
+ }
+ return this;
+ }
+
+ // contex stack /////////////////////////////////////////////////////////////
+
/** push a contextual object on the stack of this parse. */
- public Parse pushObject(Object object) {
- if (objectStack==null) {
- objectStack = new Stack<Object>();
+ public Parse contextStackPush(Object object) {
+ if (contextStack==null) {
+ contextStack = new Stack<Object>();
}
- objectStack.push(object);
+ contextStack.push(object);
return this;
}
/** remove a contextual object from the stack. */
- public Object popObject() {
- if (objectStack!=null) {
- return objectStack.pop();
+ public Object contextStackPop() {
+ if (contextStack!=null) {
+ return contextStack.pop();
}
return null;
}
/** look up the top contextual object from the stack. */
- public Object peekObject() {
- if (objectStack!=null) {
- return objectStack.peek();
+ public Object contextStackPeek() {
+ if (contextStack!=null) {
+ return contextStack.peek();
}
return null;
}
/** search a contextual object in the stack by type. */
- public <T> T findObject(Class<T> clazz) {
- if ( (objectStack!=null)
- && (! objectStack.isEmpty())
+ public <T> T contextStackFind(Class<T> clazz) {
+ if ( (contextStack!=null)
+ && (! contextStack.isEmpty())
) {
- ListIterator<Object> listIter = objectStack.listIterator(objectStack.size());
+ ListIterator<Object> listIter = contextStack.listIterator(contextStack.size());
while (listIter.hasPrevious()) {
Object object = listIter.previous();
if (clazz.isInstance(object)) {
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/DescriptionTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/DescriptionTest.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/process/DescriptionTest.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -22,7 +22,6 @@
package org.jbpm.test.process;
import org.jbpm.api.ProcessDefinition;
-import org.jbpm.jpdl.internal.xml.JpdlParser;
import org.jbpm.test.JbpmTestCase;
@@ -33,7 +32,7 @@
public void testProcessDefinitionDescription() {
deployJpdlXmlString(
- "<process name='make print' xmlns='"+JpdlParser.JPDL_NAMESPACE+"' >" +
+ "<process name='make print'>" +
" <description>This process makes a print</description>" +
" <start />" +
"</process>"
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/taskactivity/TaskReassignTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/taskactivity/TaskReassignTest.java 2009-10-04 14:33:48 UTC (rev 5681)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/taskactivity/TaskReassignTest.java 2009-10-04 15:43:28 UTC (rev 5682)
@@ -26,7 +26,6 @@
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.history.HistoryTask;
import org.jbpm.api.task.Task;
-import org.jbpm.jpdl.internal.xml.JpdlParser;
import org.jbpm.test.JbpmTestCase;
/**
@@ -36,7 +35,7 @@
public void testReassignHistory() {
deployJpdlXmlString(
- "<process name='ReassignTest' xmlns='"+JpdlParser.JPDL_NAMESPACE+"'>" +
+ "<process name='ReassignTest'>" +
" <start>" +
" <transition to='write email'/>" +
" </start>" +
More information about the jbpm-commits
mailing list