[jbpm-commits] JBoss JBPM SVN: r2629 - in jbpm3/trunk/modules/core: src/main/java/org/jbpm/instantiation and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Oct 27 12:03:09 EDT 2008


Author: tom.baeyens at jboss.com
Date: 2008-10-27 12:03:08 -0400 (Mon, 27 Oct 2008)
New Revision: 2629

Added:
   jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/InstantiateAction.java
   jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/InstantiateClass.java
   jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/archiveresource.txt
   jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/classresource.txt
   jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/instantiateprocess.xml
Removed:
   jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/NotInParAction.java
   jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessLoadedActionHandler.java
   jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/archiveresource.txt
   jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/classloadingprocess.xml
   jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/classresource.txt
Modified:
   jbpm3/trunk/modules/core/pom.xml
   jbpm3/trunk/modules/core/src/main/java/org/jbpm/instantiation/ProcessClassLoader.java
   jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java
   jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessClassLoaderTest.java
Log:
[JBPM-1448] reworked classloading tests, re-added package information

Modified: jbpm3/trunk/modules/core/pom.xml
===================================================================
--- jbpm3/trunk/modules/core/pom.xml	2008-10-27 15:53:40 UTC (rev 2628)
+++ jbpm3/trunk/modules/core/pom.xml	2008-10-27 16:03:08 UTC (rev 2629)
@@ -222,8 +222,9 @@
                 <exclude>org/jbpm/perf/StateUpdateTest.java</exclude>
                 <!-- https://jira.jboss.org/jira/browse/JBPM-1724 -->
                 <exclude>org/jbpm/seam/SeamPageFlowTest.java</exclude>
-                <!-- https://jira.jboss.org/jira/browse/JBPM-1448 -->
-                <exclude>org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java</exclude>
+                <!-- https://jira.jboss.org/jira/browse/JBPM-1709 -->
+                <exclude>org/jbpm/scheduler/exe/TimerDbTest.java</exclude>
+                <exclude>org/jbpm/taskmgmt/exe/TaskTimerExecutionDbTest.java</exclude>
               </excludes>
             </configuration>
           </plugin>
@@ -257,8 +258,9 @@
                 <exclude>org/jbpm/perf/StateUpdateTest.java</exclude>
                 <!-- https://jira.jboss.org/jira/browse/JBPM-1724 -->
                 <exclude>org/jbpm/seam/SeamPageFlowTest.java</exclude>
-                <!-- https://jira.jboss.org/jira/browse/JBPM-1448 -->
-                <exclude>org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java</exclude>
+                <!-- https://jira.jboss.org/jira/browse/JBPM-1709 -->
+                <exclude>org/jbpm/scheduler/exe/TimerDbTest.java</exclude>
+                <exclude>org/jbpm/taskmgmt/exe/TaskTimerExecutionDbTest.java</exclude>
               </excludes>
             </configuration>
           </plugin>
@@ -294,8 +296,9 @@
                 <exclude>org/jbpm/seam/SeamPageFlowTest.java</exclude>
                 <!-- https://jira.jboss.org/jira/browse/JBPM-1735 -->
                 <exclude>org/jbpm/graph/node/ProcessStateDbTest.java</exclude>
-                <!-- https://jira.jboss.org/jira/browse/JBPM-1448 -->
-                <exclude>org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java</exclude>
+                <!-- https://jira.jboss.org/jira/browse/JBPM-1709 -->
+                <exclude>org/jbpm/scheduler/exe/TimerDbTest.java</exclude>
+                <exclude>org/jbpm/taskmgmt/exe/TaskTimerExecutionDbTest.java</exclude>
               </excludes>
             </configuration>
           </plugin>
@@ -334,8 +337,9 @@
                 <exclude>org/jbpm/graph/exe/SubProcessPlusConcurrencyDbTest.java</exclude>
                 <!-- https://jira.jboss.org/jira/browse/JBPM-1782 -->
                 <exclude>org/jbpm/jpdl/exe/JoinExecutionDbTest.java</exclude>
-                <!-- https://jira.jboss.org/jira/browse/JBPM-1448 -->
-                <exclude>org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java</exclude>
+                <!-- https://jira.jboss.org/jira/browse/JBPM-1709 -->
+                <exclude>org/jbpm/scheduler/exe/TimerDbTest.java</exclude>
+                <exclude>org/jbpm/taskmgmt/exe/TaskTimerExecutionDbTest.java</exclude>
               </excludes>
             </configuration>
           </plugin>
@@ -371,8 +375,9 @@
                 <exclude>org/jbpm/seam/SeamPageFlowTest.java</exclude>
                 <!-- https://jira.jboss.org/jira/browse/JBPM-1764 -->
                 <exclude>org/jbpm/job/executor/JobExecutorDbTest</exclude>
-                <!-- https://jira.jboss.org/jira/browse/JBPM-1448 -->
-                <exclude>org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java</exclude>
+                <!-- https://jira.jboss.org/jira/browse/JBPM-1709 -->
+                <exclude>org/jbpm/scheduler/exe/TimerDbTest.java</exclude>
+                <exclude>org/jbpm/taskmgmt/exe/TaskTimerExecutionDbTest.java</exclude>
               </excludes>
             </configuration>
           </plugin>

Modified: jbpm3/trunk/modules/core/src/main/java/org/jbpm/instantiation/ProcessClassLoader.java
===================================================================
--- jbpm3/trunk/modules/core/src/main/java/org/jbpm/instantiation/ProcessClassLoader.java	2008-10-27 15:53:40 UTC (rev 2628)
+++ jbpm3/trunk/modules/core/src/main/java/org/jbpm/instantiation/ProcessClassLoader.java	2008-10-27 16:03:08 UTC (rev 2629)
@@ -115,15 +115,14 @@
       
       // Add the package information
       // see https://jira.jboss.org/jira/browse/JBPM-1404
-      // not necessary! Test passes without it?
-//      final int packageIndex = name.lastIndexOf('.');
-//      if (packageIndex != -1) {
-//        final String packageName = name.substring(0, packageIndex);
-//        final Package classPackage = getPackage(packageName);
-//        if (classPackage == null) {
-//          definePackage(packageName, null, null, null, null, null, null, null);
-//        }
-//      }
+      final int packageIndex = name.lastIndexOf('.');
+      if (packageIndex != -1) {
+        final String packageName = name.substring(0, packageIndex);
+        final Package classPackage = getPackage(packageName);
+        if (classPackage == null) {
+          definePackage(packageName, null, null, null, null, null, null, null);
+        }
+      }
     }
 
     if (clazz==null) {

Added: jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/InstantiateAction.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/InstantiateAction.java	                        (rev 0)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/InstantiateAction.java	2008-10-27 16:03:08 UTC (rev 2629)
@@ -0,0 +1,14 @@
+package org.jbpm.jpdl.par;
+
+import org.jbpm.graph.def.ActionHandler;
+import org.jbpm.graph.exe.ExecutionContext;
+
+public class InstantiateAction implements ActionHandler {
+
+  private static final long serialVersionUID = 1L;
+
+  public void execute(ExecutionContext executionContext) throws Exception {
+    new InstantiateClass();    
+  }
+
+}

Added: jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/InstantiateClass.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/InstantiateClass.java	                        (rev 0)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/InstantiateClass.java	2008-10-27 16:03:08 UTC (rev 2629)
@@ -0,0 +1,4 @@
+package org.jbpm.jpdl.par;
+
+public class InstantiateClass {
+}

Deleted: jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/NotInParAction.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/NotInParAction.java	2008-10-27 15:53:40 UTC (rev 2628)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/NotInParAction.java	2008-10-27 16:03:08 UTC (rev 2629)
@@ -1,20 +0,0 @@
-package org.jbpm.jpdl.par;
-
-import org.jbpm.graph.def.ActionHandler;
-import org.jbpm.graph.exe.ExecutionContext;
-
-public class NotInParAction implements ActionHandler {
-
-  public void execute(ExecutionContext executionContext) throws Exception {
-    // create new action without specifying classloader
-    // should use the ProcessClassLoader specified as ContextClassLoader
-    // this can be verified later on
-    ProcessArchiveDeploymentDbTest.resourceActionInstance = 
-      Thread.currentThread().getContextClassLoader().loadClass("org.jbpm.jpdl.par.ResourceAction").newInstance();
-
-    // TODO: why doesn't the following work? I thought it is delegated to 
-    // the context class loader? But it seems not that easy?
-    // ProcessArchiveDeploymentDbTest.resourceActionInstance = new ResourceAction();
-  }
-
-}

Modified: jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java	2008-10-27 15:53:40 UTC (rev 2628)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.java	2008-10-27 16:03:08 UTC (rev 2629)
@@ -21,6 +21,8 @@
  */
 package org.jbpm.jpdl.par;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
@@ -52,26 +54,26 @@
 
   public void testDeployProcess() throws Exception
   {
-    // create a process archive file and save it to disk
-    String fileName = getTestClassesDir() + "/testarchive.process";
-    FileOutputStream fileOutputStream = new FileOutputStream(fileName);
-    ZipOutputStream zipOutputStream = new ZipOutputStream(fileOutputStream);
+    // create a process archive
+    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+    ZipOutputStream zipOutputStream = new ZipOutputStream(baos);
     addEntry(zipOutputStream, "processdefinition.xml", "org/jbpm/jpdl/par/deployableprocess.xml");
     zipOutputStream.close();
+    byte[] zipBytes = baos.toByteArray();
 
-    // deploy the saved process file
-    ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(fileName));
+    // deploy the process archive
+    ZipInputStream zipInputStream = new ZipInputStream(new ByteArrayInputStream(zipBytes));
     ProcessDefinition processDefinition = ProcessDefinition.parseParZipInputStream(zipInputStream);
     jbpmContext.deployProcessDefinition(processDefinition);
-
-    newTransaction();
-
-    List allProcessDefinitions = graphSession.findAllProcessDefinitions();
-    assertEquals(1, allProcessDefinitions.size());
     
-    processDefinition = (ProcessDefinition)allProcessDefinitions.get(0);
     try
     {
+      newTransaction();
+
+      List allProcessDefinitions = graphSession.findAllProcessDefinitions();
+      assertEquals(1, allProcessDefinitions.size());
+      
+      processDefinition = (ProcessDefinition)allProcessDefinitions.get(0);
       assertEquals("the deployable process", processDefinition.getName());
     }
     finally
@@ -82,19 +84,18 @@
 
   public void testDeployProcessWithFile() throws Exception
   {
-    // create a process archive file and save it to disk
-    String fileName = getTestClassesDir() + "/testarchive.process";
-    FileOutputStream fileOutputStream = new FileOutputStream(fileName);
-    ZipOutputStream zipOutputStream = new ZipOutputStream(fileOutputStream);
+    // create a process archive
+    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+    ZipOutputStream zipOutputStream = new ZipOutputStream(baos);
     addEntry(zipOutputStream, "processdefinition.xml", "org/jbpm/jpdl/par/deployableprocess.xml");
     addEntry(zipOutputStream, "classes/org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.class", "org/jbpm/jpdl/par/ProcessArchiveDeploymentDbTest.class");
     zipOutputStream.close();
+    byte[] zipBytes = baos.toByteArray();
 
-    // deploy the saved process file
-    ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(fileName));
-    
+    ZipInputStream zipInputStream = new ZipInputStream(new ByteArrayInputStream(zipBytes));
     ProcessDefinition processDefinition = ProcessDefinition.parseParZipInputStream(zipInputStream);
     jbpmContext.deployProcessDefinition(processDefinition);
+    
     try
     {
       newTransaction();
@@ -115,21 +116,22 @@
 
   public void testDeployTwoVersionOfProcess() throws Exception
   {
-    // create a process archive file and save it to disk
-    String fileName = getTestClassesDir() + "/testarchive.process";
-    FileOutputStream fileOutputStream = new FileOutputStream(fileName);
-    ZipOutputStream zipOutputStream = new ZipOutputStream(fileOutputStream);
+    // create a process archive
+    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+    ZipOutputStream zipOutputStream = new ZipOutputStream(baos);
     addEntry(zipOutputStream, "processdefinition.xml", "org/jbpm/jpdl/par/deployableprocess.xml");
     zipOutputStream.close();
+    byte[] zipBytes = baos.toByteArray();
 
-    // deploy the saved process file
-    ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(fileName));
+    // deploy the saved process archive
+    ZipInputStream zipInputStream = new ZipInputStream(new ByteArrayInputStream(zipBytes));
     ProcessDefinition processDefinitionOne = ProcessDefinition.parseParZipInputStream(zipInputStream);
     jbpmContext.deployProcessDefinition(processDefinitionOne);
+
     newTransaction();
 
     // deploy the saved process file again
-    zipInputStream = new ZipInputStream(new FileInputStream(fileName));
+    zipInputStream = new ZipInputStream(new ByteArrayInputStream(zipBytes));
     ProcessDefinition processDefinitionTwo = ProcessDefinition.parseParZipInputStream(zipInputStream);
     jbpmContext.deployProcessDefinition(processDefinitionTwo);
 
@@ -147,165 +149,6 @@
     }
   }
 
-  public static String classResourceUrl = null;
-  public static String classResourceStream = null;
-  public static String classLoaderResourceUrl = null;
-  public static String classLoaderResourceStream = null;
-  public static String archiveResourceUrl = null;
-  public static String archiveResourceStream = null;
-  public static String archiveClassLoaderResourceUrl = null;
-  public static String archiveClassLoaderResourceStream = null;
-  public static InputStream unexistingClassResourceStream = null;
-  public static InputStream unexistingClassLoaderResourceStream = null;
-  public static InputStream unexistingArchiveResourceStream = null;
-  public static InputStream unexistingArchiveLoaderResourceStream = null;
-
-  public static Object resourceActionInstance = null;
-
-  public void testExecuteResourceUsingProcess() throws Exception
-  {
-    // create a process archive file and save it to disk
-    String fileName = getTestClassesDir() + "/resource.process";
-    FileOutputStream fileOutputStream = new FileOutputStream(fileName);
-    ZipOutputStream zipOutputStream = new ZipOutputStream(fileOutputStream);
-    addEntry(zipOutputStream, "processdefinition.xml", "org/jbpm/jpdl/par/resourceprocess.xml");
-    addEntry(zipOutputStream, "classes/org/jbpm/jpdl/par/ResourceAction.class", "org/jbpm/jpdl/par/ResourceAction.class");
-    addEntry(zipOutputStream, "classes/org/jbpm/jpdl/par/classresource.txt", "org/jbpm/jpdl/par/classresource.txt");
-    addEntry(zipOutputStream, "archiveresource.txt", "org/jbpm/jpdl/par/archiveresource.txt");
-    zipOutputStream.close();
-
-    // rename the resources to force usage of the process classloader by preventing that they will be found in the test classpath
-    String classOriginalName = getTestClassesDir() + "org/jbpm/jpdl/par/ResourceAction.class";
-    String classTmpName = classOriginalName + ".hiddenFromTestClasspath";
-    String resourceOriginalName = getTestClassesDir() + "org/jbpm/jpdl/par/classresource.txt";
-    String resourceTmpName = resourceOriginalName + ".hiddenFromTestClasspath";
-    // move the files
-    assertTrue(new File(classOriginalName).renameTo(new File(classTmpName)));
-    assertTrue(new File(resourceOriginalName).renameTo(new File(resourceTmpName)));
-
-    try
-    {
-      // deploy the saved process file
-      ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(fileName));
-      ProcessDefinition processDefinition = ProcessDefinition.parseParZipInputStream(zipInputStream);
-      jbpmContext.deployProcessDefinition(processDefinition);
-      try
-      {
-        newTransaction();
-
-        ProcessInstance processInstance = jbpmContext.newProcessInstance("resourceprocess");
-
-        classResourceUrl = null;
-        classResourceStream = null;
-        classLoaderResourceUrl = null;
-        classLoaderResourceStream = null;
-
-        archiveResourceUrl = null;
-        archiveResourceStream = null;
-        archiveClassLoaderResourceUrl = null;
-        archiveClassLoaderResourceStream = null;
-
-        unexistingClassResourceStream = null;
-        unexistingClassLoaderResourceStream = null;
-        unexistingArchiveResourceStream = null;
-        unexistingArchiveLoaderResourceStream = null;
-        
-        resourceActionInstance = null;
-
-        processInstance.signal();
-      }
-      finally
-      {
-        jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
-      }
-    }
-    finally
-    {
-      // put the files back into original position
-      new File(classTmpName).renameTo(new File(classOriginalName));
-      new File(resourceTmpName).renameTo(new File(resourceOriginalName));
-    }
-
-    assertEquals("the class resource content", classResourceUrl);
-    assertEquals("the class resource content", classResourceStream);
-    assertEquals("the class resource content", classLoaderResourceUrl);
-    assertEquals("the class resource content", classLoaderResourceStream);
-
-    assertEquals("the archive resource content", archiveResourceUrl);
-    assertEquals("the archive resource content", archiveResourceStream);
-    assertEquals("the archive resource content", archiveClassLoaderResourceUrl);
-    assertEquals("the archive resource content", archiveClassLoaderResourceStream);
-
-    assertNull(unexistingClassResourceStream);
-    assertNull(unexistingClassLoaderResourceStream);
-    assertNull(unexistingArchiveResourceStream);
-    assertNull(unexistingArchiveLoaderResourceStream);
-    
-    // test if package information are set correctly
-    // see https://jira.jboss.org/jira/browse/JBPM-1404
-    assertEquals("org.jbpm.jpdl.par", resourceActionInstance.getClass().getPackage().getName());
-    resourceActionInstance = null;
-  }
-
-  /**
-   * start process with action, which itselfs loads an action via "new ResourceAction()".
-   * This action is checked if it gets loaded by the ProcessClassLoader
-   * correctly (which should be set as ContextClassLoader)
-   * 
-   * TODO: doesn't yet test the right thing, looks like the Action
-   * first tries its own classloader (which is a ProcessClassLoader)
-   * and thus it works even without the ContextClassLoader set.
-   */
-  public void testProcessClassLoaderAsContextClassLoader() throws Exception {
-    // create a process archive file and save it to disk
-    String fileName = getTestClassesDir() + "/resource.process";
-    FileOutputStream fileOutputStream = new FileOutputStream(fileName);
-    ZipOutputStream zipOutputStream = new ZipOutputStream(fileOutputStream);
-    addEntry(zipOutputStream, "processdefinition.xml", "org/jbpm/jpdl/par/classloadingprocess.xml");
-    addEntry(zipOutputStream, "classes/org/jbpm/jpdl/par/ResourceAction.class", "org/jbpm/jpdl/par/ResourceAction.class");
-    addEntry(zipOutputStream, "classes/org/jbpm/jpdl/par/ProcessLoadedActionHandler.class", "org/jbpm/jpdl/par/ProcessLoadedActionHandler.class");
-    zipOutputStream.close();
-
-    // deploy the saved process file
-    ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(fileName));
-    ProcessDefinition processDefinition = ProcessDefinition.parseParZipInputStream(zipInputStream);
-  
-    // rename the resources to force usage of the process classloader by preventing that they will be found in the test classpath
-    String classOriginalName1 = getTestClassesDir() + "org/jbpm/jpdl/par/ResourceAction.class";
-    String classTmpName1 = classOriginalName1 + ".hiddenFromTestClasspath";
-    String classOriginalName2 = getTestClassesDir() + "org/jbpm/jpdl/par/ProcessLoadedActionHandler.class";
-    String classTmpName2 = classOriginalName2 + ".hiddenFromTestClasspath";
-
-    // move the files
-    assertTrue(new File(classOriginalName1).renameTo(new File(classTmpName1)));
-    assertTrue(new File(classOriginalName2).renameTo(new File(classTmpName2)));
-
-    try {
-      jbpmContext.deployProcessDefinition(processDefinition);
-      try {
-        newTransaction();
-
-        ProcessInstance processInstance = jbpmContext.newProcessInstance("the deployable process");
-        processInstance.signal();
-      } finally {
-        jbpmContext.getGraphSession().deleteProcessDefinition(processDefinition.getId());
-      }
-    } finally {
-      // put the files back into original position
-      new File(classTmpName1).renameTo(new File(classOriginalName1));
-      new File(classTmpName2).renameTo(new File(classOriginalName2));
-    }
-    
-    assertEquals(ProcessClassLoader.class, resourceActionInstance.getClass().getClassLoader().getClass());
-    resourceActionInstance = null;
-  }
-  
-  // TODO: do the same thing when using the context class loader
-  // and check, that the hierarchy is correct ProcessClassLoader -> ContextClassLoader
-  // and not ProcessClassLoader -> ProcessClassLoader -> ContextClassLoader
-  // assertEquals(Thread.currentThread().getContextClassLoader(), resourceActionInstance.getClass().getClassLoader().getParent());
-
-
   private static void addEntry(ZipOutputStream zipOutputStream, String entryName, String resource) throws IOException
   {
     InputStream inputStream = ClassLoaderUtil.getStream(resource);

Modified: jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessClassLoaderTest.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessClassLoaderTest.java	2008-10-27 15:53:40 UTC (rev 2628)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessClassLoaderTest.java	2008-10-27 16:03:08 UTC (rev 2629)
@@ -9,6 +9,7 @@
 import org.jbpm.graph.exe.ProcessInstance;
 import org.jbpm.instantiation.ConfigurableClassloadersTest;
 import org.jbpm.instantiation.ProcessClassLoader;
+import org.jbpm.util.ClassLoaderUtil;
 
 /**
  * Test case for ProcessClassLoader hierarchy and setting the ContextClassLoader correctly.
@@ -29,8 +30,8 @@
         return getParent().loadClass(ContextLoadedAction.class.getName());
       }
       else if ("TestContextClassLoader-knows-where-to-find-ContextLoadedExceptionAction".equals(name)) {
-          return getParent().loadClass(ContextLoadedExceptionAction.class.getName());
-        }
+        return getParent().loadClass(ContextLoadedExceptionAction.class.getName());
+      }
       return null;
     }
   }
@@ -44,28 +45,64 @@
     originalClassLoader = Thread.currentThread().getContextClassLoader();
   }
 
-  /**
-   * test using the context class loader for jbpm. Setting an own context class loader,
-   * so we know if it was used.
-   * 
-   * Classloading hierarchy should be
-   * ProcessClassloader -> TestContextClassLoader -> Thread.currentContextClassLoader
-   */
+  public static class DefaultLoadedAction implements ActionHandler {
+
+    public void execute(ExecutionContext executionContext) throws Exception {
+      ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
+      assertSame(ProcessClassLoader.class, contextClassLoader.getClass());
+
+      // verify that the default uses the jbpm-lib-classloader
+      assertSame(ClassLoaderUtil.class.getClassLoader(), contextClassLoader.getParent());
+
+      contextLoadedActionInvocations++;
+    }
+  }
+  
+  /** DOES NOT configure usage of the context classloader.  So this tests the default (backwards compatible) behaviour.    
+   * so the classloading hierarchy of DefaultLoadedAction should be
+   * ProcessClassloader -> jbpm-lib classloader */
+  public void testDefaultClassLoader() {
+    ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
+      "<process-definition>" +
+      "  <start-state name='start'>" +
+      "    <transition to='state'>" +
+      "      <action class='org.jbpm.jpdl.par.ProcessClassLoaderTest$DefaultLoadedAction' />" +
+      "    </transition>" +
+      "  </start-state>" +
+      "  <state name='state'>" +
+      "    <transition to='end'/>" +
+      "  </state>" +
+      "</process-definition>"
+    );
+
+    // create the process instance
+    ProcessInstance processInstance = new ProcessInstance(processDefinition);
+    processInstance.signal();
+            
+    assertEquals(1, contextLoadedActionInvocations);        
+  }
+  
+
   public static class ContextLoadedAction implements ActionHandler {
-	  public void execute(ExecutionContext executionContext) throws Exception {
-		  ClassLoader processClassLoader = Thread.currentThread().getContextClassLoader();
-		  assertSame(ProcessClassLoader.class, processClassLoader.getClass());
-		  
-		  ClassLoader testContextClassLoader = processClassLoader.getParent();
-		  assertSame(TestContextClassLoader.class, testContextClassLoader.getClass());
-		  
-		  assertSame(originalClassLoader, testContextClassLoader.getParent());
-		  
-		  contextLoadedActionInvocations++;
-	  }
+
+    public void execute(ExecutionContext executionContext) throws Exception {
+      ClassLoader processClassLoader = Thread.currentThread().getContextClassLoader();
+      assertSame(ProcessClassLoader.class, processClassLoader.getClass());
+
+      ClassLoader testContextClassLoader = processClassLoader.getParent();
+      assertSame(TestContextClassLoader.class, testContextClassLoader.getClass());
+
+      assertSame(originalClassLoader, testContextClassLoader.getParent());
+
+      contextLoadedActionInvocations++;
+    }
   }
+
+  /** configures usage of the context classloader   
+   * so the classloading hierarchy of ContextLoadedAction should be
+   * ProcessClassloader -> TestContextClassLoader -> Thread.currentContextClassLoader */
   public void testContextClassLoader() {
-		  
+      
     JbpmConfiguration jbpmConfiguration = JbpmConfiguration.parseXmlString(
       "<jbpm-configuration>" +
       "  <string name='jbpm.classLoader' value='context' />" +
@@ -87,7 +124,6 @@
         "  <state name='state'>" +
         "    <transition to='end'/>" +
         "  </state>" +
-        "  <end-state name='end'/>" +
         "</process-definition>"
       );
   
@@ -103,60 +139,7 @@
       jbpmContext.close();
     }
   }
-  
-  /**
-   * a second test use the default configuration and verify the 
-   * classloader hierarchy inside of the action.  The action class should 
-   * be referenced properly.  No test context classloader should be installed.
-   * The hierarchy in the action should be:
-   *   ProcessClassLoader ---> ClassLoader.getSystemClassLoader()
-   */
-  public static class DefaultLoadedAction implements ActionHandler {
-		public void execute(ExecutionContext executionContext) throws Exception {
-			ClassLoader processClassLoader = Thread.currentThread()
-					.getContextClassLoader();
-			assertSame(ProcessClassLoader.class, processClassLoader.getClass());
 
-			assertSame(originalClassLoader, processClassLoader.getParent());
-			assertSame(ClassLoader.getSystemClassLoader(), processClassLoader.getParent());
-
-			contextLoadedActionInvocations++;
-		}
-	}  
-  public void testDefaultClassLoader() {
-	    JbpmConfiguration jbpmConfiguration = JbpmConfiguration.parseXmlString(
-	      "<jbpm-configuration>" +
-	      "  <string name='jbpm.classLoader' value='jbpm' />" +
-	      "</jbpm-configuration>"
-	    );
-	    
-	    JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
-	    try {
-	      ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
-	        "<process-definition>" +
-	        "  <start-state name='start'>" +
-	        "    <transition to='state'>" +
-	        "      <action class='org.jbpm.jpdl.par.ProcessClassLoaderTest$DefaultLoadedAction' />" +
-	        "    </transition>" +
-	        "  </start-state>" +
-	        "  <state name='state'>" +
-	        "    <transition to='end'/>" +
-	        "  </state>" +
-	        "  <end-state name='end'/>" +
-	        "</process-definition>"
-	      );
-	  
-	      // create the process instance
-	      ProcessInstance processInstance = new ProcessInstance(processDefinition);
-	      processInstance.signal();
-	      	      
-	      assertEquals(1, contextLoadedActionInvocations);	      
-	    } finally {
-	      Thread.currentThread().setContextClassLoader(originalClassLoader);
-	      jbpmContext.close();
-	    }
-	  }
-
   /**
    * a third test should set the testcontextClassLoader in the test and then 
    * let the action throw an exception. Then it should be verified that the 
@@ -164,58 +147,57 @@
    * from a copy of the testContextClassLoader
    */
   public static class ContextLoadedExceptionAction implements ActionHandler {
-	  public void execute(ExecutionContext executionContext) throws Exception {
-		  ClassLoader processClassLoader = Thread.currentThread().getContextClassLoader();
-		  assertSame(ProcessClassLoader.class, processClassLoader.getClass());
-		  
-		  ClassLoader testContextClassLoader = processClassLoader.getParent();
-		  assertSame(TestContextClassLoader.class, testContextClassLoader.getClass());
-		  
-		  assertSame(originalClassLoader, testContextClassLoader.getParent());
-		  
-		  contextLoadedActionInvocations++;
-		  
-		  throw new Exception("simulate exception");
-	  }
+    public void execute(ExecutionContext executionContext) throws Exception {
+      ClassLoader processClassLoader = Thread.currentThread().getContextClassLoader();
+      assertSame(ProcessClassLoader.class, processClassLoader.getClass());
+      
+      ClassLoader testContextClassLoader = processClassLoader.getParent();
+      assertSame(TestContextClassLoader.class, testContextClassLoader.getClass());
+      
+      assertSame(originalClassLoader, testContextClassLoader.getParent());
+      
+      contextLoadedActionInvocations++;
+      
+      throw new Exception("simulate exception");
+    }
   }
   public void testContextClassLoaderException() {
-	    JbpmConfiguration jbpmConfiguration = JbpmConfiguration.parseXmlString(
-	      "<jbpm-configuration>" +
-	      "  <string name='jbpm.classLoader' value='context' />" +
-	      "</jbpm-configuration>"
-	    );
-	    
-	    JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
-	    TestContextClassLoader testContextClassLoader = new TestContextClassLoader(originalClassLoader);
-	    try {
-	      Thread.currentThread().setContextClassLoader(testContextClassLoader);
-	    
-	      ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
-	        "<process-definition>" +
-	        "  <start-state name='start'>" +
-	        "    <transition to='state'>" +
-	        "      <action class='TestContextClassLoader-knows-where-to-find-ContextLoadedExceptionAction' />" +
-	        "    </transition>" +
-	        "  </start-state>" +
-	        "  <state name='state'>" +
-	        "    <transition to='end'/>" +
-	        "  </state>" +
-	        "  <end-state name='end'/>" +
-	        "</process-definition>"
-	      );
-	  
-	      // create the process instance
-	      ProcessInstance processInstance = new ProcessInstance(processDefinition);
-	      processInstance.signal();
-	      
-	    } catch(Exception ex) {
-	    	assertEquals(1, contextLoadedActionInvocations);
-	    	assertEquals("simulate exception", ex.getMessage());
-	    	assertSame(testContextClassLoader, Thread.currentThread().getContextClassLoader());
-	    	
-	    } finally {
-	      Thread.currentThread().setContextClassLoader(originalClassLoader);
-	      jbpmContext.close();
-	    }
-	  }  
+    JbpmConfiguration jbpmConfiguration = JbpmConfiguration.parseXmlString(
+      "<jbpm-configuration>" +
+      "  <string name='jbpm.classLoader' value='context' />" +
+      "</jbpm-configuration>"
+    );
+    
+    JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
+    TestContextClassLoader testContextClassLoader = new TestContextClassLoader(originalClassLoader);
+    try {
+      Thread.currentThread().setContextClassLoader(testContextClassLoader);
+    
+      ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
+        "<process-definition>" +
+        "  <start-state name='start'>" +
+        "    <transition to='state'>" +
+        "      <action class='TestContextClassLoader-knows-where-to-find-ContextLoadedExceptionAction' />" +
+        "    </transition>" +
+        "  </start-state>" +
+        "  <state name='state'>" +
+        "    <transition to='end'/>" +
+        "  </state>" +
+        "</process-definition>"
+      );
+  
+      // create the process instance
+      ProcessInstance processInstance = new ProcessInstance(processDefinition);
+      processInstance.signal();
+      
+    } catch(Exception ex) {
+      assertEquals(1, contextLoadedActionInvocations);
+      assertEquals("simulate exception", ex.getMessage());
+      assertSame(testContextClassLoader, Thread.currentThread().getContextClassLoader());
+      
+    } finally {
+      Thread.currentThread().setContextClassLoader(originalClassLoader);
+      jbpmContext.close();
+    }
+  }  
 }

Deleted: jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessLoadedActionHandler.java
===================================================================
--- jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessLoadedActionHandler.java	2008-10-27 15:53:40 UTC (rev 2628)
+++ jbpm3/trunk/modules/core/src/test/java/org/jbpm/jpdl/par/ProcessLoadedActionHandler.java	2008-10-27 16:03:08 UTC (rev 2629)
@@ -1,41 +0,0 @@
-/*
- * 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.par;
-
-import org.jbpm.graph.def.ActionHandler;
-import org.jbpm.graph.exe.ExecutionContext;
-
-public class ProcessLoadedActionHandler implements ActionHandler {
-
-  private static final long serialVersionUID = 1L;
-
-  public void execute(ExecutionContext executionContext) throws Exception {
-    // notify the ProcessArchiveClassLoadingTest that this 
-    // class has been executed
-    ProcessArchiveClassLoadingDbTest.isLoadedActionHandlerExecuted = true;
-    
-    // create new action without specifying classloader
-    // should use the ProcessClassLoader specified as ContextClassLoader
-    // this can be verified later on
-    new NotInParAction().execute(executionContext);
-  }
-}

Deleted: jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/archiveresource.txt
===================================================================
--- jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/archiveresource.txt	2008-10-27 15:53:40 UTC (rev 2628)
+++ jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/archiveresource.txt	2008-10-27 16:03:08 UTC (rev 2629)
@@ -1 +0,0 @@
-the archive resource content

Added: jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/archiveresource.txt
===================================================================
--- jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/archiveresource.txt	                        (rev 0)
+++ jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/archiveresource.txt	2008-10-27 16:03:08 UTC (rev 2629)
@@ -0,0 +1 @@
+the archive resource content


Property changes on: jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/archiveresource.txt
___________________________________________________________________
Name: svn:mergeinfo
   + 

Deleted: jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/classloadingprocess.xml
===================================================================
--- jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/classloadingprocess.xml	2008-10-27 15:53:40 UTC (rev 2628)
+++ jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/classloadingprocess.xml	2008-10-27 16:03:08 UTC (rev 2629)
@@ -1,8 +0,0 @@
-<process-definition name="the deployable process">
-  <start-state>
-    <transition to="end">
-      <action class="org.jbpm.jpdl.par.ProcessLoadedActionHandler" />
-    </transition>
-  </start-state>
-  <end-state name="end" />
-</process-definition>

Deleted: jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/classresource.txt
===================================================================
--- jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/classresource.txt	2008-10-27 15:53:40 UTC (rev 2628)
+++ jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/classresource.txt	2008-10-27 16:03:08 UTC (rev 2629)
@@ -1 +0,0 @@
-the class resource content

Added: jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/classresource.txt
===================================================================
--- jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/classresource.txt	                        (rev 0)
+++ jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/classresource.txt	2008-10-27 16:03:08 UTC (rev 2629)
@@ -0,0 +1 @@
+the class resource content


Property changes on: jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/classresource.txt
___________________________________________________________________
Name: svn:mergeinfo
   + 

Added: jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/instantiateprocess.xml
===================================================================
--- jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/instantiateprocess.xml	                        (rev 0)
+++ jbpm3/trunk/modules/core/src/test/resources/org/jbpm/jpdl/par/instantiateprocess.xml	2008-10-27 16:03:08 UTC (rev 2629)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<process-definition  name="instantiateprocess">
+
+	<start-state name="start">
+		<transition to="end">
+			<action class="org.jbpm.jpdl.par.InstantiateAction" />
+		</transition>
+	</start-state>
+
+	<end-state name="end" />
+
+</process-definition>
\ No newline at end of file




More information about the jbpm-commits mailing list