[jbpm-commits] JBoss JBPM SVN: r5781 - in jbpm4/trunk/modules: test-db/src/test/java/org/jbpm/test/migration and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Oct 23 17:20:46 EDT 2009


Author: koen.aers at jboss.com
Date: 2009-10-23 17:20:45 -0400 (Fri, 23 Oct 2009)
New Revision: 5781

Modified:
   jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/MigrationHelper.java
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/migration/InstanceMigratorTest.java
Log:
migration handlers are called after default migration and before ending process instances

Modified: jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/MigrationHelper.java
===================================================================
--- jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/MigrationHelper.java	2009-10-23 19:27:31 UTC (rev 5780)
+++ jbpm4/trunk/modules/jpdl/src/main/java/org/jbpm/jpdl/internal/xml/MigrationHelper.java	2009-10-23 21:20:45 UTC (rev 5781)
@@ -25,11 +25,11 @@
     }
     MigrationDescriptor migrationDescriptor = new MigrationDescriptor();
     String action = migrationElement.getAttribute("action");
-    if ("abort".equals(action)) {
+    if ("end".equals(action)) {
       migrationDescriptor.addMigrationHandlerClassName(AbortMigrationHandler.class.getName());
-    } else if ("custom".equals(action)) {
-      parseMigrationHandlers(migrationElement, migrationDescriptor);
-    } else {
+    }
+    parseMigrationHandlers(migrationElement, migrationDescriptor);
+    if (!"end".equals(action)) {
       migrationDescriptor.addMigrationHandlerClassName(DefaultMigrationHandler.class.getName());
       parseActivityMappings(migrationElement, migrationDescriptor);
     }

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/migration/InstanceMigratorTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/migration/InstanceMigratorTest.java	2009-10-23 19:27:31 UTC (rev 5780)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/migration/InstanceMigratorTest.java	2009-10-23 21:20:45 UTC (rev 5781)
@@ -44,12 +44,12 @@
     "    <transition to='end'/>" +
     "  </state>" +
     "  <end name='end'/>" +
-    "  <migrate-instances action='custom'>" +
+    "  <migrate-instances>" +
     "    <migration-handler class='org.jbpm.test.migration.InstanceMigratorTest$TestHandler'/>" +
     "  </migrate-instances>" +
     "</process>";
   
-  private String versionWithSimpleAbortion = 
+  private String versionWithAbortion = 
     "<process name='foobar'>" +
     "  <start>" +
     "    <transition to='a'/>" +
@@ -64,7 +64,9 @@
     "    <transition to='end'/>" +
     "  </state>" +
     "  <end name='end'/>" +
-    "  <migrate-instances action='abort'/>" +
+    "  <migrate-instances action='end'>" +
+    "    <migration-handler class='org.jbpm.test.migration.InstanceMigratorTest$TestHandler'/>" +
+    "  </migrate-instances>" +
     "</process>";
   
   private String versionWithSimpleMigration = 
@@ -262,6 +264,12 @@
     ProcessDefinition pd2 = deployProcessDefinition("foobar", versionWithMigrationHandler);    
     assertTrue(PROCESS_INSTANCES_SET.contains(pi1.getId()));
     assertTrue(PROCESS_INSTANCES_SET.contains(pi2.getId()));
+    pi1 = executionService.findProcessInstanceById(pi1.getId());
+    pi2 = executionService.findProcessInstanceById(pi2.getId());
+    assertEquals(pd2.getId(), pi1.getProcessDefinitionId());
+    assertEquals(pd2.getId(), pi2.getProcessDefinitionId());
+    assertEquals(pi1, pi1.findActiveExecutionIn("a"));
+    assertEquals(pi2, pi2.findActiveExecutionIn("b"));
     repositoryService.deleteDeploymentCascade(pd1.getDeploymentId());
     repositoryService.deleteDeploymentCascade(pd2.getDeploymentId());   
   }
@@ -270,7 +278,9 @@
     ProcessDefinition pd1 = deployProcessDefinition("foobar", originalVersion);
     ProcessInstance pi1 = startAndSignal(pd1, "a");
     ProcessInstance pi2 = startAndSignal(pd1, "b");
-    ProcessDefinition pd2 = deployProcessDefinition("foobar", versionWithSimpleAbortion);
+    ProcessDefinition pd2 = deployProcessDefinition("foobar", versionWithAbortion);
+    assertTrue(PROCESS_INSTANCES_SET.contains(pi1.getId()));
+    assertTrue(PROCESS_INSTANCES_SET.contains(pi2.getId()));
     pi1 = executionService.findProcessInstanceById(pi1.getId());
     pi2 = executionService.findProcessInstanceById(pi2.getId());
     assertNull(pi1);



More information about the jbpm-commits mailing list