[jbpm-commits] JBoss JBPM SVN: r6767 - in jbpm4/trunk/modules: test-db/src/test/java/org/jbpm/test/activity/subprocess and 1 other directory.
do-not-reply at jboss.org
do-not-reply at jboss.org
Sun Oct 17 11:44:46 EDT 2010
Author: rebody
Date: 2010-10-17 11:44:46 -0400 (Sun, 17 Oct 2010)
New Revision: 6767
Modified:
jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SubProcessActivity.java
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/subprocess/SubProcessTest.java
Log:
JBPM-2772 get business key for sub process.
Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SubProcessActivity.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SubProcessActivity.java 2010-10-17 15:31:46 UTC (rev 6766)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/activity/SubProcessActivity.java 2010-10-17 15:44:46 UTC (rev 6767)
@@ -77,10 +77,10 @@
Expression subProcessKeyExpression = Expression.create(subProcessKey, Expression.LANGUAGE_UEL_VALUE);
subProcessKeyEval = (String) subProcessKeyExpression.evaluate(execution);
if (subProcessKeyEval == null) {
- throw new JbpmException("Subprocess key '" + subProcessKey +"' resolved to null.");
+ throw new JbpmException("Subprocess key '" + subProcessKey + "' resolved to null.");
}
} catch (PropertyNotFoundException e) {
- throw new JbpmException("Subprocess key '" + subProcessKey +"' could not be resolved.");
+ throw new JbpmException("Subprocess key '" + subProcessKey + "' could not be resolved.");
}
processDefinition = repositorySession.findProcessDefinitionByKey(subProcessKeyEval);
@@ -100,7 +100,7 @@
String subSwimlaneName = swimlaneMappings.get(swimlaneName);
SwimlaneImpl subSwimlane = subProcessInstance.createSwimlane(subSwimlaneName);
SwimlaneImpl swimlane = executionImpl.getSwimlane(swimlaneName);
- if (swimlane!=null) {
+ if (swimlane != null) {
subSwimlane.initialize(swimlane);
}
}
@@ -111,6 +111,7 @@
executionImpl.historyActivityStart();
+ subProcessInstance.setKey(execution.getProcessInstance().getKey());
subProcessInstance.start();
execution.waitForSignal();
@@ -146,7 +147,7 @@
Activity activity = execution.getActivity();
String subProcessActivityName = subProcessInstance.getActivityName();
- if (outcomeExpression!=null) {
+ if (outcomeExpression != null) {
Object value = outcomeExpression.evaluate(execution);
// if the value is a String and matches the name of an outgoing transition
if ( (value instanceof String)
@@ -164,17 +165,17 @@
}
} finally {
- if (subProcessExecutionContext!=null) {
+ if (subProcessExecutionContext != null) {
environment.removeContext(subProcessExecutionContext);
}
- if (originalExecutionContext!=null) {
+ if (originalExecutionContext != null) {
environment.setContext(originalExecutionContext);
}
}
execution.historyActivityEnd();
- if (transitionName!=null) {
+ if (transitionName != null) {
execution.take(transitionName);
} else {
execution.takeDefaultTransition();
Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/subprocess/SubProcessTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/subprocess/SubProcessTest.java 2010-10-17 15:31:46 UTC (rev 6766)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activity/subprocess/SubProcessTest.java 2010-10-17 15:44:46 UTC (rev 6767)
@@ -26,10 +26,12 @@
import java.util.List;
+import org.jbpm.api.Execution;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.QueryOperator;
import org.jbpm.api.history.HistoryProcessInstance;
import org.jbpm.api.task.Task;
+import org.jbpm.pvm.internal.model.ExecutionImpl;
import org.jbpm.test.JbpmTestCase;
@@ -135,7 +137,7 @@
assertEquals(0, executionService.createProcessInstanceQuery().list().size());
}
-
+
public void testSubProcessHistoryIds() {
deployJpdlXmlString(SUB_PROCESS);
deployJpdlXmlString(MAIN_PROCESS);
@@ -152,17 +154,30 @@
assertProcessInstanceEnded(processInstance);
assertEquals(0, executionService.createProcessInstanceQuery().list().size());
-
-
+
+
List<HistoryProcessInstance> history = historyService.createHistoryProcessInstanceQuery().processInstanceId(QueryOperator.LIKE, "SubProcessReview%").list();
assertNotNull(history);
assertNotNull(history.get(0).getSuperProcessInstanceId());
assertEquals(processInstance.getId(), history.get(0).getSuperProcessInstanceId());
-
+
history = historyService.createHistoryProcessInstanceQuery().superProcessInstanceId(processInstance.getId()).list();
assertNotNull(history);
assertNotNull(history.get(0).getSuperProcessInstanceId());
assertEquals(processInstance.getId(), history.get(0).getSuperProcessInstanceId());
}
+ // Test for JBPM-2772
+ public void testSubProcessWithKey() {
+ deployJpdlXmlString(SUB_PROCESS);
+ deployJpdlXmlString(MAIN_PROCESS);
+
+ ProcessInstance processInstance = executionService.startProcessInstanceByKey("mainProcess", "business key");
+ Execution subProcessInstance = processInstance.getSubProcessInstance();
+ assertEquals("business key", ((ExecutionImpl)subProcessInstance).getKey());
+
+ Task task = taskService.findPersonalTasks("johndoe").get(0);
+ taskService.completeTask(task.getId(), "nok");
+ }
+
}
More information about the jbpm-commits
mailing list