[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