[jboss-cvs] JBossAS SVN: r82634 - in projects/aop/trunk: asintegration-mc/src/main/org/jboss/aop/classpool/jbosscl and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jan 6 12:46:50 EST 2009


Author: kabir.khan at jboss.com
Date: 2009-01-06 12:46:49 -0500 (Tue, 06 Jan 2009)
New Revision: 82634

Added:
   projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/support/Result.java
Modified:
   projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/BasicClassPoolDomain.java
   projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/DelegatingClassPool.java
   projects/aop/trunk/asintegration-mc/src/main/org/jboss/aop/classpool/jbosscl/JBossClClassPoolDomain.java
   projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithModuleDependencySanityTestCase.java
   projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithPackageDependencySanityTestCase.java
   projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithReExportModuleSanityTestCase.java
   projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithReExportPackageSanityTestCase.java
   projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithUsesPackageSanityTestCase.java
   projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithModuleDependencyTestCase.java
   projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithPackageDependencyTestCase.java
   projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithReExportModuleTestCase.java
   projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithReExportPackageTestCase.java
   projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithUsesPackageTestCase.java
   projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/JBossClClassPoolTest.java
Log:
[JBAOP-666] Check if classloader is undeployed as is done in the original tests


Modified: projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/BasicClassPoolDomain.java
===================================================================
--- projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/BasicClassPoolDomain.java	2009-01-06 15:27:29 UTC (rev 82633)
+++ projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/BasicClassPoolDomain.java	2009-01-06 17:46:49 UTC (rev 82634)
@@ -120,7 +120,7 @@
          String packageName = ClassLoaderUtils.getPackageName(classname);
          for (DelegatingClassPool pool : getPoolsForPackage(packageName))
          {
-            clazz = attemptLoadFromPool(pool, classname, resourceName, create);
+            clazz = pool.loadLocally(classname, resourceName, create);
             if (clazz != null)
             {
                break;
@@ -134,20 +134,6 @@
       return clazz;
    }
 
-   protected CtClass attemptLoadFromPool(DelegatingClassPool pool, String classname, String resourceName, boolean create)
-   {
-      CtClass clazz = null;
-      if (pool.isLocalResource(resourceName))
-      {
-         clazz = pool.getCachedLocally(classname);
-         if (clazz == null && create)
-         {
-            return pool.createCtClass(classname, true);
-         }
-      }
-      return clazz;
-   }
-   
    public CtClass getCachedOrCreateInternalFromParent(DelegatingClassPool initiatingPool, String classname, String resourceName, boolean create)
    {
       return parent.getCachedOrCreateInternal(initiatingPool, classname, resourceName, create);

Modified: projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/DelegatingClassPool.java
===================================================================
--- projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/DelegatingClassPool.java	2009-01-06 15:27:29 UTC (rev 82633)
+++ projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/DelegatingClassPool.java	2009-01-06 17:46:49 UTC (rev 82634)
@@ -76,6 +76,19 @@
       return super.get(classname);
    }
 
+   public CtClass loadLocally(String classname, String resourceName, boolean create)
+   {
+      CtClass clazz = null;
+      if (isLocalResource(resourceName))
+      {
+         clazz = getCachedLocally(classname);
+         if (clazz == null && create)
+         {
+            return createCtClass(classname, true);
+         }
+      }
+      return clazz;
+   }
    
    /**
     * Overrides ClassPool.get0() so that we can look up classes without caching them in the initiating pool.

Modified: projects/aop/trunk/asintegration-mc/src/main/org/jboss/aop/classpool/jbosscl/JBossClClassPoolDomain.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/main/org/jboss/aop/classpool/jbosscl/JBossClClassPoolDomain.java	2009-01-06 15:27:29 UTC (rev 82633)
+++ projects/aop/trunk/asintegration-mc/src/main/org/jboss/aop/classpool/jbosscl/JBossClClassPoolDomain.java	2009-01-06 17:46:49 UTC (rev 82634)
@@ -126,7 +126,7 @@
          for (DelegateLoader delegate : delegates)
          {
             //TODO This is a hack, need a proper API in jboss-cl
-            System.out.println("Commented out loader from delegate in JBossClClassPoolDomain");
+            System.err.println("Commented out loader from delegate in JBossClClassPoolDomain");
             ClassLoader loader = null;//delegate.getBaseClassLoader("a BaseClassLoader", "");
             
             //TODO Should be a nicer way to do this
@@ -144,7 +144,7 @@
       //Try to check the initiating pool itself
       if (clazz == null && initiatingPool != null)
       {
-         clazz = attemptLoadFromPool(initiatingPool, classname, resourceName, create);
+         clazz = initiatingPool.loadLocally(classname, resourceName, create);
       }
       
       if (clazz == null && isParentAfter())

Added: projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/support/Result.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/support/Result.java	                        (rev 0)
+++ projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/support/Result.java	2009-01-06 17:46:49 UTC (rev 82634)
@@ -0,0 +1,42 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file 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.jboss.test.aop.classpool.jbosscl.support;
+
+/**
+ * 
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class Result
+{
+   private TestVFSClassLoaderFactory factory;
+
+   public TestVFSClassLoaderFactory getFactory()
+   {
+      return factory;
+   }
+
+   public void setFactory(TestVFSClassLoaderFactory factory)
+   {
+      this.factory = factory;
+   }
+}

Modified: projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithModuleDependencySanityTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithModuleDependencySanityTestCase.java	2009-01-06 15:27:29 UTC (rev 82633)
+++ projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithModuleDependencySanityTestCase.java	2009-01-06 17:46:49 UTC (rev 82634)
@@ -25,6 +25,7 @@
 
 import org.jboss.classloading.spi.version.VersionRange;
 import org.jboss.test.aop.classpool.jbosscl.support.BundleInfoBuilder;
+import org.jboss.test.aop.classpool.jbosscl.support.Result;
 
 /**
  * Tests the behaviour of the new classloaders so that we can get the same in the new classpools
@@ -51,23 +52,25 @@
    public void testImportNoVersionCheck() throws Exception
    {
       ClassLoader clA = null;
+      Result resultA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("ModuleA").
             createPackage(PACKAGE_A);
-         clA = createClassLoader("A", builderA, JAR_A_1);
+         clA = createClassLoader(resultA, "A", builderA, JAR_A_1);
          
          Class<?> aFromA = assertLoadClass(CLASS_A, clA, clA);
          assertCannotLoadClass(clA, CLASS_B);
          
          ClassLoader clB = null;
+         Result resultB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createModule("ModuleB").
                createRequireModule("ModuleA");
-            clB = createClassLoader("B", builderB, JAR_B_1);
+            clB = createClassLoader(resultB, "B", builderB, JAR_B_1);
 
             Class<?> aFromA1 = assertLoadClass(CLASS_A, clA, clA);
             assertSame(aFromA, aFromA1);
@@ -83,33 +86,36 @@
          Class<?> aFromA1 = assertLoadClass(CLASS_A, clA);
          assertSame(aFromA, aFromA1);
          assertCannotLoadClass(clA, CLASS_B);
-         //TODO assertNoClassLoader(b);
+         assertNoClassLoader(resultB);
       }
       finally
       {
          unregisterClassLoader(clA);
       }
+      assertNoClassLoader(resultA);
    }
    
    public void testImportVersionCheck() throws Exception
    {
       ClassLoader clA = null;
+      Result resultA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("ModuleA", "1.0.0").
             createPackage(PACKAGE_A);
-         clA = createClassLoader("A", builderA, JAR_A_1);
+         clA = createClassLoader(resultA, "A", builderA, JAR_A_1);
          Class<?> classA = assertLoadClass(CLASS_A, clA);
          assertCannotLoadClass(clA, CLASS_B);
 
          ClassLoader clB = null;
+         Result resultB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createRequireModule("ModuleA", new VersionRange("1.0.0", "2.0.0")).
                createPackage(PACKAGE_B);
-            clB = createClassLoader("B", builderB, JAR_B_1);
+            clB = createClassLoader(resultB, "B", builderB, JAR_B_1);
             Class<?> classA1 = assertLoadClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadClass(clA, CLASS_B);
@@ -121,6 +127,8 @@
          {
             unregisterClassLoader(clB);
          }
+         assertNoClassLoader(resultB);
+
          Class<?> classA1 = assertLoadClass(CLASS_A, clA);
          assertSame(classA, classA1);
          assertCannotLoadClass(clA, CLASS_B);
@@ -129,19 +137,22 @@
       {
          unregisterClassLoader(clA);
       }
+      assertNoClassLoader(resultA);
    }   
 
    public void testImportVersionCheckFailed() throws Exception
    {
       ClassLoader clA = null;
+      Result resultA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("ModuleA", "3.0.0").
             createPackage(PACKAGE_A);
-         clA = createClassLoader("A", builderA, JAR_A_1);
+         clA = createClassLoader(resultA, "A", builderA, JAR_A_1);
          Class<?> classA = assertLoadClass(CLASS_A, clA);
          assertCannotLoadClass(clA, CLASS_B);
+         Result resultB = new Result(); 
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
@@ -149,7 +160,7 @@
                createPackage(PACKAGE_B);
             try
             {
-               createClassLoader("B", builderB, JAR_B_1);
+               createClassLoader(resultB, "B", builderB, JAR_B_1);
                fail("Should not have been able to create loader");
             }
             catch(NoSuchClassLoaderException expected)
@@ -158,11 +169,14 @@
             Class<?> classA1 = assertLoadClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadClass(clA, CLASS_B);
+            assertNoClassLoader(resultB);
          }
          finally
          {
             unregisterClassLoader("B");
          }
+         assertNoClassLoader(resultB);
+
          Class<?> classA1 = assertLoadClass(CLASS_A, clA);
          assertSame(classA, classA1);
          assertCannotLoadClass(clA, CLASS_B);
@@ -171,6 +185,7 @@
       {
          unregisterClassLoader(clA);
       }
+      assertNoClassLoader(resultA);
    }
    
    //These are my extra tests
@@ -179,23 +194,25 @@
       ClassLoader clAModuleX = null;
       ClassLoader clAModuleA = null;
       ClassLoader clAModuleY = null;
-
+      Result rAX = new Result();
+      Result rAA = new Result();
+      Result rAY = new Result();
       try
       {
          BundleInfoBuilder builderAX = BundleInfoBuilder.getBuilder().
             createModule("ModuleX").
             createPackage(PACKAGE_A);
-         clAModuleX = createClassLoader("X", builderAX, JAR_A_1);
+         clAModuleX = createClassLoader(rAX, "X", builderAX, JAR_A_1);
       
          BundleInfoBuilder builderAA = BundleInfoBuilder.getBuilder().
             createModule("ModuleA").
             createPackage(PACKAGE_A);
-         clAModuleA = createClassLoader("A", builderAA, JAR_A_1);
+         clAModuleA = createClassLoader(rAA, "A", builderAA, JAR_A_1);
          
          BundleInfoBuilder builderAY = BundleInfoBuilder.getBuilder().
             createModule("ModuleY").
             createPackage(PACKAGE_A);
-         clAModuleY = createClassLoader("Y", builderAY, JAR_A_1);
+         clAModuleY = createClassLoader(rAY, "Y", builderAY, JAR_A_1);
       
          Class<?> classAX = assertLoadClass(CLASS_A, clAModuleX);
          Class<?> classAA = assertLoadClass(CLASS_A, clAModuleA);
@@ -205,12 +222,13 @@
          assertCannotLoadClass(clAModuleY, CLASS_B);
          
          ClassLoader clB = null;
+         Result resultB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createRequireModule("ModuleA").
                createPackage(PACKAGE_B);
-            clB = createClassLoader("B", builderB, JAR_B_1);
+            clB = createClassLoader(resultB, "B", builderB, JAR_B_1);
             Class<?> classAX1 = assertLoadClass(CLASS_A, clAModuleX);
             assertSame(classAX, classAX1);
             Class<?> classAA1 = assertLoadClass(CLASS_A, clAModuleA);
@@ -229,6 +247,8 @@
          {
             unregisterClassLoader(clB);
          }
+         assertNoClassLoader(resultB);
+         
          Class<?> classAX1 = assertLoadClass(CLASS_A, clAModuleX);
          assertSame(classAX, classAX1);
          Class<?> classAA1 = assertLoadClass(CLASS_A, clAModuleA);
@@ -245,6 +265,9 @@
          unregisterClassLoader(clAModuleA);
          unregisterClassLoader(clAModuleX);
       }
+      assertNoClassLoader(rAY);
+      assertNoClassLoader(rAA);
+      assertNoClassLoader(rAX);
    }
    
    public void testSeveralModulesWithSameNamesDifferentVersions() throws Exception
@@ -252,23 +275,25 @@
       ClassLoader clAModuleA1 = null;
       ClassLoader clAModuleA2 = null;
       ClassLoader clAModuleA3 = null;
-
+      Result rA1 = new Result();
+      Result rA2 = new Result();
+      Result rA3 = new Result();
       try
       {
          BundleInfoBuilder builderA1 = BundleInfoBuilder.getBuilder().
             createModule("ModuleA", "1.0.0").
             createPackage(PACKAGE_A);
-         clAModuleA1 = createClassLoader("X", builderA1, JAR_A_1);
+         clAModuleA1 = createClassLoader(rA1, "X", builderA1, JAR_A_1);
       
          BundleInfoBuilder builderA2 = BundleInfoBuilder.getBuilder().
             createModule("ModuleA", "2.0.0").
             createPackage(PACKAGE_A);
-         clAModuleA2 = createClassLoader("A", builderA2, JAR_A_1);
+         clAModuleA2 = createClassLoader(rA2, "A", builderA2, JAR_A_1);
          
          BundleInfoBuilder builderA3 = BundleInfoBuilder.getBuilder().
             createModule("ModuleA", "3.0.0").
             createPackage(PACKAGE_A);
-         clAModuleA3 = createClassLoader("Y", builderA3, JAR_A_1);
+         clAModuleA3 = createClassLoader(rA3, "Y", builderA3, JAR_A_1);
       
          Class<?> classAX = assertLoadClass(CLASS_A, clAModuleA1);
          Class<?> classAA = assertLoadClass(CLASS_A, clAModuleA2);
@@ -278,12 +303,13 @@
          assertCannotLoadClass(clAModuleA3, CLASS_B);
          
          ClassLoader clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createRequireModule("ModuleA", new VersionRange("2.0.0", true, "3.0.0", false)).
                createPackage(PACKAGE_B);
-            clB = createClassLoader("B", builderB, JAR_B_1);
+            clB = createClassLoader(rB, "B", builderB, JAR_B_1);
             Class<?> classAX1 = assertLoadClass(CLASS_A, clAModuleA1);
             assertSame(classAX, classAX1);
             Class<?> classAA1 = assertLoadClass(CLASS_A, clAModuleA2);
@@ -302,6 +328,8 @@
          {
             unregisterClassLoader(clB);
          }
+         assertNoClassLoader(rB);
+
          Class<?> classAX1 = assertLoadClass(CLASS_A, clAModuleA1);
          assertSame(classAX, classAX1);
          Class<?> classAA1 = assertLoadClass(CLASS_A, clAModuleA2);
@@ -318,6 +346,8 @@
          unregisterClassLoader(clAModuleA2);
          unregisterClassLoader(clAModuleA1);
       }
-      
+      assertNoClassLoader(rA1);
+      assertNoClassLoader(rA2);
+      assertNoClassLoader(rA3);
    }
 }

Modified: projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithPackageDependencySanityTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithPackageDependencySanityTestCase.java	2009-01-06 15:27:29 UTC (rev 82633)
+++ projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithPackageDependencySanityTestCase.java	2009-01-06 17:46:49 UTC (rev 82634)
@@ -25,6 +25,7 @@
 
 import org.jboss.classloading.spi.version.VersionRange;
 import org.jboss.test.aop.classpool.jbosscl.support.BundleInfoBuilder;
+import org.jboss.test.aop.classpool.jbosscl.support.Result;
 
 /**
  * Tests the behaviour of the new classloaders so that we can get the same in the new classpools
@@ -51,22 +52,24 @@
    public void testImportNoVersionCheck() throws Exception
    {
       ClassLoader clA = null;
+      Result rA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("ModuleA").
             createPackage(PACKAGE_A);
-         clA = createClassLoader("A", builderA, JAR_A_1);
+         clA = createClassLoader(rA, "A", builderA, JAR_A_1);
          Class<?> classA = assertLoadClass(CLASS_A, clA);
          assertCannotLoadClass(clA, CLASS_B);
          
          ClassLoader clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createPackage(PACKAGE_B).
                createRequirePackage(PACKAGE_A);
-            clB = createClassLoader("B", builderB, JAR_B_1);
+            clB = createClassLoader(rB, "B", builderB, JAR_B_1);
             Class<?> classA1 = assertLoadClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadClass(clA, CLASS_B);
@@ -78,6 +81,8 @@
          {
             unregisterClassLoader(clB);
          }
+         assertNoClassLoader(rB);
+         
          Class<?> classA1 = assertLoadClass(CLASS_A, clA);
          assertSame(classA, classA1);
          assertCannotLoadClass(clA, CLASS_B);
@@ -86,27 +91,30 @@
       {
          unregisterClassLoader(clA);
       }
+      assertNoClassLoader(rA);
    }
    
    public void testImportVersionCheck() throws Exception
    {
       ClassLoader clA = null;
+      Result rA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("ModuleA").
             createPackage(PACKAGE_A, "1.0.0");
-         clA = createClassLoader("A", builderA, JAR_A_1);
+         clA = createClassLoader(rA, "A", builderA, JAR_A_1);
          Class<?> classA = assertLoadClass(CLASS_A, clA);
          assertCannotLoadClass(clA, CLASS_B);
          
          ClassLoader clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createPackage(PACKAGE_B).
                createRequirePackage(PACKAGE_A, new VersionRange("1.0.0", "2.0.0"));
-            clB = createClassLoader("B", builderB, JAR_B_1);
+            clB = createClassLoader(rB, "B", builderB, JAR_B_1);
             Class<?> classA1 = assertLoadClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadClass(clA, CLASS_B);
@@ -118,6 +126,8 @@
          {
             unregisterClassLoader(clB);
          }
+         assertNoClassLoader(rB);
+         
          assertLoadClass(CLASS_A, clA);
          assertCannotLoadClass(clA, CLASS_B);
       }
@@ -125,20 +135,23 @@
       {
          unregisterClassLoader(clA);
       }
+      assertNoClassLoader(rA);
    }
    
    public void testImportVersionCheckFailed() throws Exception
    {
       ClassLoader clA = null;
+      Result rA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("ModuleA").
             createPackage(PACKAGE_A, "3.0.0");
-         clA = createClassLoader("A", builderA, JAR_A_1);
+         clA = createClassLoader(rA, "A", builderA, JAR_A_1);
          Class<?> classA = assertLoadClass(CLASS_A, clA);
          assertCannotLoadClass(clA, CLASS_B);
          
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
@@ -146,7 +159,7 @@
                createRequirePackage(PACKAGE_A, new VersionRange("1.0.0", "2.0.0"));
             try
             {
-               createClassLoader("B", builderB, JAR_B_1);
+               createClassLoader(rB, "B", builderB, JAR_B_1);
                fail("Should not have been able to create loader");
             }
             catch(NoSuchClassLoaderException expected)
@@ -177,22 +190,25 @@
       ClassLoader clA1 = null;
       ClassLoader clA2 = null;
       ClassLoader clA3 = null;
+      Result rA1 = new Result();
+      Result rA2 = new Result();
+      Result rA3 = new Result();
       try
       {
          BundleInfoBuilder builderA1 = BundleInfoBuilder.getBuilder().
             createModule("PackageA").
             createPackage(PACKAGE_A, "1.0.0");
-         clA1 = createClassLoader("A1", builderA1, JAR_A_1);
+         clA1 = createClassLoader(rA1, "A1", builderA1, JAR_A_1);
          
          BundleInfoBuilder builderA2 = BundleInfoBuilder.getBuilder().
             createModule("PackageA").
             createPackage(PACKAGE_A, "2.0.0");
-         clA2 = createClassLoader("A2", builderA2, JAR_A_1);
+         clA2 = createClassLoader(rA2, "A2", builderA2, JAR_A_1);
          
          BundleInfoBuilder builderA3 = BundleInfoBuilder.getBuilder().
          createModule("PackageA").
          createPackage(PACKAGE_A, "3.0.0");
-         clA3 = createClassLoader("A3", builderA3, JAR_A_1);
+         clA3 = createClassLoader(rA3, "A3", builderA3, JAR_A_1);
                   
          Class<?> classA1 = assertLoadClass(CLASS_A, clA1);
          Class<?> classA2 = assertLoadClass(CLASS_A, clA2);
@@ -202,12 +218,13 @@
          assertCannotLoadClass(clA3, CLASS_B);
          
          ClassLoader clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createPackage(PACKAGE_B).
                createRequirePackage(PACKAGE_A, new VersionRange("1.0.0", false, "2.0.0", true));
-            clB = createClassLoader("B", builderB, JAR_B_1);
+            clB = createClassLoader(rB, "B", builderB, JAR_B_1);
             Class<?> classA11 = assertLoadClass(CLASS_A, clA1);
             assertSame(classA1, classA11);
             Class<?> classA21 = assertLoadClass(CLASS_A, clA2);
@@ -226,6 +243,7 @@
          {
             unregisterClassLoader(clB);
          }
+         assertNoClassLoader(rB);
          Class<?> classA11 = assertLoadClass(CLASS_A, clA1);
          assertSame(classA1, classA11);
          Class<?> classA21 = assertLoadClass(CLASS_A, clA2);
@@ -242,6 +260,9 @@
          unregisterClassLoader(clA2);
          unregisterClassLoader(clA1);
       }
+      assertNoClassLoader(rA1);
+      assertNoClassLoader(rA2);
+      assertNoClassLoader(rA3);
       
    }
 }

Modified: projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithReExportModuleSanityTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithReExportModuleSanityTestCase.java	2009-01-06 15:27:29 UTC (rev 82633)
+++ projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithReExportModuleSanityTestCase.java	2009-01-06 17:46:49 UTC (rev 82634)
@@ -24,6 +24,7 @@
 import junit.framework.Test;
 
 import org.jboss.test.aop.classpool.jbosscl.support.BundleInfoBuilder;
+import org.jboss.test.aop.classpool.jbosscl.support.Result;
 
 /**
  * Tests the behaviour of the new classloaders so that we can get the same in the new classpools
@@ -49,24 +50,26 @@
    public void testReExport() throws Exception
    {
       ClassLoader clA = null;
+      Result rA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("a").
             createPackage(PACKAGE_A);
-         clA = createClassLoader("A", builderA, JAR_A_1);
+         clA = createClassLoader(rA, "A", builderA, JAR_A_1);
          Class<?> classA = assertLoadClass(CLASS_A, clA);
          assertCannotLoadClass(clA, CLASS_B);
          assertCannotLoadClass(clA, CLASS_C);
          
          ClassLoader clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createModule("b").
                createPackage(PACKAGE_B).
                createReExportModule("a");
-            clB = createClassLoader("B", builderB, JAR_B_1);
+            clB = createClassLoader(rB, "B", builderB, JAR_B_1);
             Class<?> classA1 = assertLoadClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadClass(clA, CLASS_B);
@@ -76,11 +79,12 @@
             assertCannotLoadClass(clB, CLASS_C);
             
             ClassLoader clC = null;
+            Result rC = new Result();
             try
             {
                BundleInfoBuilder builderC = BundleInfoBuilder.getBuilder().
                   createRequireModule("b");
-               clC = createClassLoader("C", builderC, JAR_C_1);
+               clC = createClassLoader(rC, "C", builderC, JAR_C_1);
                
                classA1 = assertLoadClass(CLASS_A, clA);
                assertSame(classA, classA1);
@@ -101,6 +105,7 @@
             {
                unregisterClassLoader(clC);
             }
+            assertNoClassLoader(rC);
             classA1 = assertLoadClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadClass(clA, CLASS_B);
@@ -115,6 +120,7 @@
          {
             unregisterClassLoader(clB);
          }
+         assertNoClassLoader(rB);
          Class<?> classA1 = assertLoadClass(CLASS_A, clA);
          assertSame(classA, classA1);
          assertCannotLoadClass(clA, CLASS_B);
@@ -124,29 +130,32 @@
       {
          unregisterClassLoader(clA);
       }
+      assertNoClassLoader(rA);
    }
    
    public void testNoReExport() throws Exception
    {
       ClassLoader clA = null;
+      Result rA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("a").
             createPackage(PACKAGE_A);
-         clA = createClassLoader("A", builderA, JAR_A_1);
+         clA = createClassLoader(rA, "A", builderA, JAR_A_1);
          Class<?> classA = assertLoadClass(CLASS_A, clA);
          assertCannotLoadClass(clA, CLASS_B);
          assertCannotLoadClass(clA, CLASS_C);
          
          ClassLoader clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createModule("b").
                createPackage(PACKAGE_B).
                createReExportModule("a");
-            clB = createClassLoader("B", builderB, JAR_B_1);
+            clB = createClassLoader(rB, "B", builderB, JAR_B_1);
             Class<?> classA1 = assertLoadClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadClass(clA, CLASS_B);
@@ -157,11 +166,12 @@
             assertCannotLoadClass(clB, CLASS_C);
             
             ClassLoader clC = null;
+            Result rC = new Result();
             try
             {
                BundleInfoBuilder builderC = BundleInfoBuilder.getBuilder().
                   createRequirePackage(PACKAGE_B);
-               clC = createClassLoader("C", builderC, JAR_C_1);
+               clC = createClassLoader(rC, "C", builderC, JAR_C_1);
                
                classA1 = assertLoadClass(CLASS_A, clA);
                assertSame(classA, classA1);
@@ -181,6 +191,7 @@
             {
                unregisterClassLoader(clC);
             }
+            assertNoClassLoader(rC);
             classA1 = assertLoadClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadClass(clA, CLASS_B);
@@ -195,6 +206,7 @@
          {
             unregisterClassLoader(clB);
          }
+         assertNoClassLoader(rB);
          Class<?> classA1 = assertLoadClass(CLASS_A, clA);
          assertSame(classA, classA1);
          assertCannotLoadClass(clA, CLASS_B);
@@ -204,5 +216,6 @@
       {
          unregisterClassLoader(clA);
       }
+      assertNoClassLoader(rA);
    }
 }

Modified: projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithReExportPackageSanityTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithReExportPackageSanityTestCase.java	2009-01-06 15:27:29 UTC (rev 82633)
+++ projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithReExportPackageSanityTestCase.java	2009-01-06 17:46:49 UTC (rev 82634)
@@ -24,6 +24,7 @@
 import junit.framework.Test;
 
 import org.jboss.test.aop.classpool.jbosscl.support.BundleInfoBuilder;
+import org.jboss.test.aop.classpool.jbosscl.support.Result;
 
 /**
  * Tests the behaviour of the new classloaders so that we can get the same in the new classpools
@@ -49,17 +50,19 @@
    public void testReExport() throws Exception
    {
       ClassLoader clA = null;
+      Result rA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("a").
             createPackage(PACKAGE_A);
-         clA = createClassLoader("A", builderA, JAR_A_1);
+         clA = createClassLoader(rA, "A", builderA, JAR_A_1);
          Class<?> classA = assertLoadClass(CLASS_A, clA);
          assertCannotLoadClass(clA, CLASS_B);
          assertCannotLoadClass(clA, CLASS_C);
          
          ClassLoader clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
@@ -67,7 +70,7 @@
                createPackage(PACKAGE_B).
                createReExportPackage(PACKAGE_A);
             
-            clB = createClassLoader("B", builderB, JAR_B_1);
+            clB = createClassLoader(rB, "B", builderB, JAR_B_1);
             Class<?> classA1 = assertLoadClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadClass(clA, CLASS_B);
@@ -78,11 +81,12 @@
             assertCannotLoadClass(clB, CLASS_C);
             
             ClassLoader clC = null;
+            Result rC = new Result();
             try
             {
                BundleInfoBuilder builderC = BundleInfoBuilder.getBuilder().
                   createRequireModule("b");
-               clC = createClassLoader("C", builderC, JAR_C_1);
+               clC = createClassLoader(rC, "C", builderC, JAR_C_1);
                
                classA1 = assertLoadClass(CLASS_A, clA);
                assertSame(classA, classA1);
@@ -103,6 +107,7 @@
             {
                unregisterClassLoader(clC);
             }
+            assertNoClassLoader(rC);
             classA1 = assertLoadClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadClass(clA, CLASS_B);
@@ -117,6 +122,7 @@
          {
             unregisterClassLoader(clB);
          }
+         assertNoClassLoader(rB);
          Class<?> classA1 = assertLoadClass(CLASS_A, clA);
          assertSame(classA, classA1);
          assertCannotLoadClass(clA, CLASS_B);
@@ -126,29 +132,32 @@
       {
          unregisterClassLoader(clA);
       }
+      assertNoClassLoader(rA);
    }
    
    public void testNoReExport() throws Exception
    {
       ClassLoader clA = null;
+      Result rA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("a").
             createPackage(PACKAGE_A);
-         clA = createClassLoader("A", builderA, JAR_A_1);
+         clA = createClassLoader(rA, "A", builderA, JAR_A_1);
          Class<?> classA = assertLoadClass(CLASS_A, clA);
          assertCannotLoadClass(clA, CLASS_B);
          assertCannotLoadClass(clA, CLASS_C);
          
          ClassLoader clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createModule("b").
                createPackage(PACKAGE_B).
                createReExportModule("a");
-            clB = createClassLoader("B", builderB, JAR_B_1);
+            clB = createClassLoader(rB, "B", builderB, JAR_B_1);
             Class<?> classA1 = assertLoadClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadClass(clA, CLASS_B);
@@ -159,11 +168,12 @@
             assertCannotLoadClass(clB, CLASS_C);
             
             ClassLoader clC = null;
+            Result rC = new Result();
             try
             {
                BundleInfoBuilder builderC = BundleInfoBuilder.getBuilder().
                   createRequirePackage(PACKAGE_B);
-               clC = createClassLoader("C", builderC, JAR_C_1);
+               clC = createClassLoader(rC, "C", builderC, JAR_C_1);
                
                assertLoadClass(CLASS_A, clA);
                assertSame(classA, classA1);
@@ -183,6 +193,7 @@
             {
                unregisterClassLoader(clC);
             }
+            assertNoClassLoader(rC);
             assertLoadClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadClass(clA, CLASS_B);
@@ -197,6 +208,7 @@
          {
             unregisterClassLoader(clB);
          }
+         assertNoClassLoader(rB);
          Class<?> classA1 = assertLoadClass(CLASS_A, clA);
          assertSame(classA, classA1);
          assertCannotLoadClass(clA, CLASS_B);
@@ -206,5 +218,7 @@
       {
          unregisterClassLoader(clA);
       }
+      assertNoClassLoader(rA);
+
    }
 }

Modified: projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithUsesPackageSanityTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithUsesPackageSanityTestCase.java	2009-01-06 15:27:29 UTC (rev 82633)
+++ projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithUsesPackageSanityTestCase.java	2009-01-06 17:46:49 UTC (rev 82634)
@@ -24,6 +24,7 @@
 import junit.framework.Test;
 
 import org.jboss.test.aop.classpool.jbosscl.support.BundleInfoBuilder;
+import org.jboss.test.aop.classpool.jbosscl.support.Result;
 
 /**
  * Tests the behaviour of the new classloaders so that we can get the same in the new classpools
@@ -49,23 +50,24 @@
    public void testUsesImport() throws Exception
    {
       ClassLoader clA1 = null;
-      
+      Result rA1 = new Result();
       try
       {
          BundleInfoBuilder builderA1 = BundleInfoBuilder.getBuilder().
             createModule("a1").
             createPackage(PACKAGE_A);
-         clA1 = createClassLoader("A1", builderA1, JAR_A_1);
+         clA1 = createClassLoader(rA1, "A1", builderA1, JAR_A_1);
          Class<?> classA = assertLoadClass(CLASS_A, clA1);
 
          ClassLoader clA2 = null;
+         Result rA2 = new Result();
          try
          {
             BundleInfoBuilder builderA2 = BundleInfoBuilder.getBuilder().
             createModule("a2").
             createUsesPackage(PACKAGE_A);
 
-            clA2 = createClassLoader("A2", builderA2, JAR_A_1);
+            clA2 = createClassLoader(rA2, "A2", builderA2, JAR_A_1);
             Class<?> classA1 = assertLoadClass(CLASS_A, clA1);
             assertSame(classA, classA1);
             classA1 = assertLoadClass(CLASS_A, clA2, clA1);
@@ -75,30 +77,33 @@
          {
             unregisterClassLoader(clA2);
          }
+         assertNoClassLoader(rA2);
          assertLoadClass(CLASS_A, clA1);
       }
       finally
       {
          unregisterClassLoader(clA1);
       }
+      assertNoClassLoader(rA1);
    }
    
    public void testUsesNoImport() throws Exception
    {
       ClassLoader clA1 = null;
-      
+      Result rA1 = new Result();
       try
       {
          BundleInfoBuilder builderA1 = BundleInfoBuilder.getBuilder().
             createModule("a1").
             createUsesPackage(PACKAGE_A);
-         clA1 = createClassLoader("A1", builderA1, JAR_A_1);
+         clA1 = createClassLoader(rA1, "A1", builderA1, JAR_A_1);
          assertLoadClass(CLASS_A, clA1);
       }
       finally
       {
          unregisterClassLoader(clA1);
       }
+      assertNoClassLoader(rA1);
    }
 
 }

Modified: projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithModuleDependencyTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithModuleDependencyTestCase.java	2009-01-06 15:27:29 UTC (rev 82633)
+++ projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithModuleDependencyTestCase.java	2009-01-06 17:46:49 UTC (rev 82634)
@@ -27,6 +27,7 @@
 
 import org.jboss.classloading.spi.version.VersionRange;
 import org.jboss.test.aop.classpool.jbosscl.support.BundleInfoBuilder;
+import org.jboss.test.aop.classpool.jbosscl.support.Result;
 
 /**
  * Reproduces the behavior found in ClassLoaderWithModuleDependencySanityTestCase
@@ -52,23 +53,25 @@
    public void testImportNoVersionCheck() throws Exception
    {
       ClassPool clA = null;
+      Result resultA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("ModuleA").
             createPackage(PACKAGE_A);
-         clA = createClassPool("A", builderA, JAR_A_1);
+         clA = createClassPool(resultA, "A", builderA, JAR_A_1);
          
          CtClass aFromA = assertLoadCtClass(CLASS_A, clA);
          assertCannotLoadCtClass(clA, CLASS_B);
          
          ClassPool clB = null;
+         Result resultB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createModule("ModuleB").
                createRequireModule("ModuleA");
-            clB = createClassPool("B", builderB, JAR_B_1);
+            clB = createClassPool(resultB, "B", builderB, JAR_B_1);
 
             CtClass aFromA1 = assertLoadCtClass(CLASS_A, clA, clA);
             assertSame(aFromA, aFromA1);
@@ -84,33 +87,37 @@
          CtClass aFromA1 = assertLoadCtClass(CLASS_A, clA);
          assertSame(aFromA, aFromA1);
          assertCannotLoadCtClass(clA, CLASS_B);
-         //TODO assertNoClassLoader(b);
+         
+         assertNoClassLoader(resultB);
       }
       finally
       {
          unregisterClassPool(clA);
       }
+      assertNoClassLoader(resultA);
    }
    
    public void testImportVersionCheck() throws Exception
    {
       ClassPool clA = null;
+      Result resultA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("ModuleA", "1.0.0").
             createPackage(PACKAGE_A);
-         clA = createClassPool("A", builderA, JAR_A_1);
+         clA = createClassPool(resultA, "A", builderA, JAR_A_1);
          CtClass classA = assertLoadCtClass(CLASS_A, clA);
          assertCannotLoadCtClass(clA, CLASS_B);
 
          ClassPool clB = null;
+         Result resultB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createRequireModule("ModuleA", new VersionRange("1.0.0", "2.0.0")).
                createPackage(PACKAGE_B);
-            clB = createClassPool("B", builderB, JAR_B_1);
+            clB = createClassPool(resultB, "B", builderB, JAR_B_1);
             CtClass classA1 = assertLoadCtClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadCtClass(clA, CLASS_B);
@@ -122,6 +129,7 @@
          {
             unregisterClassPool(clB);
          }
+         assertNoClassLoader(resultB);
          CtClass classA1 = assertLoadCtClass(CLASS_A, clA);
          assertSame(classA, classA1);
          assertCannotLoadCtClass(clA, CLASS_B);
@@ -130,11 +138,13 @@
       {
          unregisterClassPool(clA);
       }
+      assertNoClassLoader(resultA);
    }   
 
    public void testImportVersionCheckFailed() throws Exception
    {
       ClassPool clA = null;
+      Result resultA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
@@ -143,6 +153,7 @@
          clA = createClassPool("A", builderA, JAR_A_1);
          CtClass classA = assertLoadCtClass(CLASS_A, clA);
          assertCannotLoadCtClass(clA, CLASS_B);
+         Result resultB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
@@ -150,7 +161,7 @@
                createPackage(PACKAGE_B);
             try
             {
-               createClassPool("B", builderB, JAR_B_1);
+               createClassPool(resultB, "B", builderB, JAR_B_1);
                fail("Should not have been able to create loader");
             }
             catch(NoSuchClassLoaderException expected)
@@ -159,11 +170,14 @@
             CtClass classA1 = assertLoadCtClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadCtClass(clA, CLASS_B);
+            assertNoClassLoader(resultB);
          }
          finally
          {
             unregisterClassLoader("B");
          }
+         assertNoClassLoader(resultB);
+
          CtClass classA1 = assertLoadCtClass(CLASS_A, clA);
          assertSame(classA, classA1);
          assertCannotLoadCtClass(clA, CLASS_B);
@@ -180,23 +194,26 @@
       ClassPool clAModuleX = null;
       ClassPool clAModuleA = null;
       ClassPool clAModuleY = null;
+      Result rAX = new Result();
+      Result rAA = new Result();
+      Result rAY = new Result();
 
       try
       {
          BundleInfoBuilder builderAX = BundleInfoBuilder.getBuilder().
             createModule("ModuleX").
             createPackage(PACKAGE_A);
-         clAModuleX = createClassPool("X", builderAX, JAR_A_1);
+         clAModuleX = createClassPool(rAX, "X", builderAX, JAR_A_1);
       
          BundleInfoBuilder builderAA = BundleInfoBuilder.getBuilder().
             createModule("ModuleA").
             createPackage(PACKAGE_A);
-         clAModuleA = createClassPool("A", builderAA, JAR_A_1);
+         clAModuleA = createClassPool(rAA, "A", builderAA, JAR_A_1);
          
          BundleInfoBuilder builderAY = BundleInfoBuilder.getBuilder().
             createModule("ModuleY").
             createPackage(PACKAGE_A);
-         clAModuleY = createClassPool("Y", builderAY, JAR_A_1);
+         clAModuleY = createClassPool(rAY, "Y", builderAY, JAR_A_1);
       
          CtClass classAX = assertLoadCtClass(CLASS_A, clAModuleX);
          CtClass classAA = assertLoadCtClass(CLASS_A, clAModuleA);
@@ -206,12 +223,13 @@
          assertCannotLoadCtClass(clAModuleY, CLASS_B);
          
          ClassPool clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createRequireModule("ModuleA").
                createPackage(PACKAGE_B);
-            clB = createClassPool("B", builderB, JAR_B_1);
+            clB = createClassPool(rB, "B", builderB, JAR_B_1);
             CtClass classAX1 = assertLoadCtClass(CLASS_A, clAModuleX);
             assertSame(classAX, classAX1);
             CtClass classAA1 = assertLoadCtClass(CLASS_A, clAModuleA);
@@ -230,6 +248,8 @@
          {
             unregisterClassPool(clB);
          }
+         assertNoClassLoader(rB);
+
          CtClass classAX1 = assertLoadCtClass(CLASS_A, clAModuleX);
          assertSame(classAX, classAX1);
          CtClass classAA1 = assertLoadCtClass(CLASS_A, clAModuleA);
@@ -246,6 +266,9 @@
          unregisterClassPool(clAModuleA);
          unregisterClassPool(clAModuleX);
       }
+      assertNoClassLoader(rAY);
+      assertNoClassLoader(rAA);
+      assertNoClassLoader(rAX);
    }
    
    public void testSeveralModulesWithSameNamesDifferentVersions() throws Exception
@@ -253,23 +276,26 @@
       ClassPool clAModuleA1 = null;
       ClassPool clAModuleA2 = null;
       ClassPool clAModuleA3 = null;
+      Result rA1 = new Result();
+      Result rA2 = new Result();
+      Result rA3 = new Result();
 
       try
       {
          BundleInfoBuilder builderA1 = BundleInfoBuilder.getBuilder().
             createModule("ModuleA", "1.0.0").
             createPackage(PACKAGE_A);
-         clAModuleA1 = createClassPool("X", builderA1, JAR_A_1);
+         clAModuleA1 = createClassPool(rA1, "X", builderA1, JAR_A_1);
       
          BundleInfoBuilder builderA2 = BundleInfoBuilder.getBuilder().
             createModule("ModuleA", "2.0.0").
             createPackage(PACKAGE_A);
-         clAModuleA2 = createClassPool("A", builderA2, JAR_A_1);
+         clAModuleA2 = createClassPool(rA2, "A", builderA2, JAR_A_1);
          
          BundleInfoBuilder builderA3 = BundleInfoBuilder.getBuilder().
             createModule("ModuleA", "3.0.0").
             createPackage(PACKAGE_A);
-         clAModuleA3 = createClassPool("Y", builderA3, JAR_A_1);
+         clAModuleA3 = createClassPool(rA3, "Y", builderA3, JAR_A_1);
       
          CtClass classAX = assertLoadCtClass(CLASS_A, clAModuleA1);
          CtClass classAA = assertLoadCtClass(CLASS_A, clAModuleA2);
@@ -279,12 +305,13 @@
          assertCannotLoadCtClass(clAModuleA3, CLASS_B);
          
          ClassPool clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createRequireModule("ModuleA", new VersionRange("2.0.0", true, "3.0.0", false)).
                createPackage(PACKAGE_B);
-            clB = createClassPool("B", builderB, JAR_B_1);
+            clB = createClassPool(rB, "B", builderB, JAR_B_1);
             CtClass classAX1 = assertLoadCtClass(CLASS_A, clAModuleA1);
             assertSame(classAX, classAX1);
             CtClass classAA1 = assertLoadCtClass(CLASS_A, clAModuleA2);
@@ -303,6 +330,8 @@
          {
             unregisterClassPool(clB);
          }
+         assertNoClassLoader(rB);
+
          CtClass classAX1 = assertLoadCtClass(CLASS_A, clAModuleA1);
          assertSame(classAX, classAX1);
          CtClass classAA1 = assertLoadCtClass(CLASS_A, clAModuleA2);
@@ -319,7 +348,9 @@
          unregisterClassPool(clAModuleA2);
          unregisterClassPool(clAModuleA1);
       }
-      
+      assertNoClassLoader(rA1);
+      assertNoClassLoader(rA2);
+      assertNoClassLoader(rA3);
    }
 
 }

Modified: projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithPackageDependencyTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithPackageDependencyTestCase.java	2009-01-06 15:27:29 UTC (rev 82633)
+++ projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithPackageDependencyTestCase.java	2009-01-06 17:46:49 UTC (rev 82634)
@@ -27,6 +27,7 @@
 
 import org.jboss.classloading.spi.version.VersionRange;
 import org.jboss.test.aop.classpool.jbosscl.support.BundleInfoBuilder;
+import org.jboss.test.aop.classpool.jbosscl.support.Result;
 
 /**
  * Reproduces the behaviour found in ClassLoaderWithPackageDependencySanityTestCase 
@@ -50,22 +51,24 @@
    public void testImportNoVersionCheck() throws Exception
    {
       ClassPool clA = null;
+      Result rA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("ModuleA").
             createPackage(PACKAGE_A);
-         clA = createClassPool("A", builderA, JAR_A_1);
+         clA = createClassPool(rA, "A", builderA, JAR_A_1);
          CtClass classA = assertLoadCtClass(CLASS_A, clA);
          assertCannotLoadCtClass(clA, CLASS_B);
          
          ClassPool clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createPackage(PACKAGE_B).
                createRequirePackage(PACKAGE_A);
-            clB = createClassPool("B", builderB, JAR_B_1);
+            clB = createClassPool(rB, "B", builderB, JAR_B_1);
             CtClass classA1 = assertLoadCtClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadCtClass(clA, CLASS_B);
@@ -77,6 +80,8 @@
          {
             unregisterClassPool(clB);
          }
+         assertNoClassLoader(rB);
+         
          CtClass classA1 = assertLoadCtClass(CLASS_A, clA);
          assertSame(classA, classA1);
          assertCannotLoadCtClass(clA, CLASS_B);
@@ -85,27 +90,30 @@
       {
          unregisterClassPool(clA);
       }
+      assertNoClassLoader(rA);
    }
    
    public void testImportVersionCheck() throws Exception
    {
       ClassPool clA = null;
+      Result rA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("ModuleA").
             createPackage(PACKAGE_A, "1.0.0");
-         clA = createClassPool("A", builderA, JAR_A_1);
+         clA = createClassPool(rA, "A", builderA, JAR_A_1);
          CtClass classA = assertLoadCtClass(CLASS_A, clA);
          assertCannotLoadCtClass(clA, CLASS_B);
          
          ClassPool clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createPackage(PACKAGE_B).
                createRequirePackage(PACKAGE_A, new VersionRange("1.0.0", "2.0.0"));
-            clB = createClassPool("B", builderB, JAR_B_1);
+            clB = createClassPool(rB, "B", builderB, JAR_B_1);
             CtClass classA1 = assertLoadCtClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadCtClass(clA, CLASS_B);
@@ -117,6 +125,8 @@
          {
             unregisterClassPool(clB);
          }
+         assertNoClassLoader(rB);
+
          assertLoadCtClass(CLASS_A, clA);
          assertCannotLoadCtClass(clA, CLASS_B);
       }
@@ -124,20 +134,23 @@
       {
          unregisterClassPool(clA);
       }
+      assertNoClassLoader(rA);
    }
    
    public void testImportVersionCheckFailed() throws Exception
    {
       ClassPool clA = null;
+      Result rA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("ModuleA").
             createPackage(PACKAGE_A, "3.0.0");
-         clA = createClassPool("A", builderA, JAR_A_1);
+         clA = createClassPool(rA, "A", builderA, JAR_A_1);
          CtClass classA = assertLoadCtClass(CLASS_A, clA);
          assertCannotLoadCtClass(clA, CLASS_B);
          
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
@@ -145,7 +158,7 @@
                createRequirePackage(PACKAGE_A, new VersionRange("1.0.0", "2.0.0"));
             try
             {
-               createClassPool("B", builderB, JAR_B_1);
+               createClassPool(rB, "B", builderB, JAR_B_1);
                fail("Should not have been able to create loader");
             }
             catch(NoSuchClassLoaderException expected)
@@ -176,22 +189,25 @@
       ClassPool clA1 = null;
       ClassPool clA2 = null;
       ClassPool clA3 = null;
+      Result rA1 = new Result();
+      Result rA2 = new Result();
+      Result rA3 = new Result();
       try
       {
          BundleInfoBuilder builderA1 = BundleInfoBuilder.getBuilder().
             createModule("PackageA").
             createPackage(PACKAGE_A, "1.0.0");
-         clA1 = createClassPool("A1", builderA1, JAR_A_1);
+         clA1 = createClassPool(rA1, "A1", builderA1, JAR_A_1);
          
          BundleInfoBuilder builderA2 = BundleInfoBuilder.getBuilder().
             createModule("PackageA").
             createPackage(PACKAGE_A, "2.0.0");
-         clA2 = createClassPool("A2", builderA2, JAR_A_1);
+         clA2 = createClassPool(rA2, "A2", builderA2, JAR_A_1);
          
          BundleInfoBuilder builderA3 = BundleInfoBuilder.getBuilder().
          createModule("PackageA").
          createPackage(PACKAGE_A, "3.0.0");
-         clA3 = createClassPool("A3", builderA3, JAR_A_1);
+         clA3 = createClassPool(rA3, "A3", builderA3, JAR_A_1);
                   
          CtClass classA1 = assertLoadCtClass(CLASS_A, clA1);
          CtClass classA2 = assertLoadCtClass(CLASS_A, clA2);
@@ -201,12 +217,13 @@
          assertCannotLoadCtClass(clA3, CLASS_B);
          
          ClassPool clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createPackage(PACKAGE_B).
                createRequirePackage(PACKAGE_A, new VersionRange("1.0.0", false, "2.0.0", true));
-            clB = createClassPool("B", builderB, JAR_B_1);
+            clB = createClassPool(rB, "B", builderB, JAR_B_1);
             CtClass classA11 = assertLoadCtClass(CLASS_A, clA1);
             assertSame(classA1, classA11);
             CtClass classA21 = assertLoadCtClass(CLASS_A, clA2);
@@ -225,6 +242,7 @@
          {
             unregisterClassPool(clB);
          }
+         assertNoClassLoader(rB);
          CtClass classA11 = assertLoadCtClass(CLASS_A, clA1);
          assertSame(classA1, classA11);
          CtClass classA21 = assertLoadCtClass(CLASS_A, clA2);
@@ -241,6 +259,8 @@
          unregisterClassPool(clA2);
          unregisterClassPool(clA1);
       }
-      
+      assertNoClassLoader(rA1);
+      assertNoClassLoader(rA2);
+      assertNoClassLoader(rA3);
    }
 }

Modified: projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithReExportModuleTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithReExportModuleTestCase.java	2009-01-06 15:27:29 UTC (rev 82633)
+++ projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithReExportModuleTestCase.java	2009-01-06 17:46:49 UTC (rev 82634)
@@ -26,6 +26,7 @@
 import junit.framework.Test;
 
 import org.jboss.test.aop.classpool.jbosscl.support.BundleInfoBuilder;
+import org.jboss.test.aop.classpool.jbosscl.support.Result;
 
 /**
  * Reproduces the behaviour of ClassLoaderWithReExportModuleSanityTestCase
@@ -49,24 +50,26 @@
    public void testReExport() throws Exception
    {
       ClassPool clA = null;
+      Result rA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("a").
             createPackage(PACKAGE_A);
-         clA = createClassPool("A", builderA, JAR_A_1);
+         clA = createClassPool(rA, "A", builderA, JAR_A_1);
          CtClass classA = assertLoadCtClass(CLASS_A, clA);
          assertCannotLoadCtClass(clA, CLASS_B);
          assertCannotLoadCtClass(clA, CLASS_C);
          
          ClassPool clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createModule("b").
                createPackage(PACKAGE_B).
                createReExportModule("a");
-            clB = createClassPool("B", builderB, JAR_B_1);
+            clB = createClassPool(rB, "B", builderB, JAR_B_1);
             CtClass classA1 = assertLoadCtClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadCtClass(clA, CLASS_B);
@@ -77,11 +80,12 @@
             assertCannotLoadCtClass(clB, CLASS_C);
             
             ClassPool clC = null;
+            Result rC = new Result();
             try
             {
                BundleInfoBuilder builderC = BundleInfoBuilder.getBuilder().
                   createRequireModule("b");
-               clC = createClassPool("C", builderC, JAR_C_1);
+               clC = createClassPool(rC, "C", builderC, JAR_C_1);
                
                classA1 = assertLoadCtClass(CLASS_A, clA);
                assertSame(classA, classA1);
@@ -102,6 +106,7 @@
             {
                unregisterClassPool(clC);
             }
+            assertNoClassLoader(rC);
             classA1 = assertLoadCtClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadCtClass(clA, CLASS_B);
@@ -116,6 +121,7 @@
          {
             unregisterClassPool(clB);
          }
+         assertNoClassLoader(rB);
          CtClass classA1 = assertLoadCtClass(CLASS_A, clA);
          assertSame(classA, classA1);
          assertCannotLoadCtClass(clA, CLASS_B);
@@ -125,29 +131,32 @@
       {
          unregisterClassPool(clA);
       }
+      assertNoClassLoader(rA);
    }
    
    public void testNoReExport() throws Exception
    {
       ClassPool clA = null;
+      Result rA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("a").
             createPackage(PACKAGE_A);
-         clA = createClassPool("A", builderA, JAR_A_1);
+         clA = createClassPool(rA, "A", builderA, JAR_A_1);
          CtClass classA = assertLoadCtClass(CLASS_A, clA);
          assertCannotLoadCtClass(clA, CLASS_B);
          assertCannotLoadCtClass(clA, CLASS_C);
          
          ClassPool clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createModule("b").
                createPackage(PACKAGE_B).
                createReExportModule("a");
-            clB = createClassPool("B", builderB, JAR_B_1);
+            clB = createClassPool(rB, "B", builderB, JAR_B_1);
             CtClass classA1 = assertLoadCtClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadCtClass(clA, CLASS_B);
@@ -158,11 +167,12 @@
             assertCannotLoadCtClass(clB, CLASS_C);
             
             ClassPool clC = null;
+            Result rC = new Result();
             try
             {
                BundleInfoBuilder builderC = BundleInfoBuilder.getBuilder().
                   createRequirePackage(PACKAGE_B);
-               clC = createClassPool("C", builderC, JAR_C_1);
+               clC = createClassPool(rC, "C", builderC, JAR_C_1);
                
                classA1 = assertLoadCtClass(CLASS_A, clA);
                assertSame(classA, classA1);
@@ -182,6 +192,7 @@
             {
                unregisterClassPool(clC);
             }
+            assertNoClassLoader(rC);
             classA1 = assertLoadCtClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadCtClass(clA, CLASS_B);
@@ -196,6 +207,7 @@
          {
             unregisterClassPool(clB);
          }
+         assertNoClassLoader(rB);
          CtClass classA1 = assertLoadCtClass(CLASS_A, clA);
          assertSame(classA, classA1);
          assertCannotLoadCtClass(clA, CLASS_B);
@@ -205,5 +217,6 @@
       {
          unregisterClassPool(clA);
       }
+      assertNoClassLoader(rA);
    }
 }

Modified: projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithReExportPackageTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithReExportPackageTestCase.java	2009-01-06 15:27:29 UTC (rev 82633)
+++ projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithReExportPackageTestCase.java	2009-01-06 17:46:49 UTC (rev 82634)
@@ -26,6 +26,7 @@
 import junit.framework.Test;
 
 import org.jboss.test.aop.classpool.jbosscl.support.BundleInfoBuilder;
+import org.jboss.test.aop.classpool.jbosscl.support.Result;
 
 /**
  * Reproduces ClassLoaderWithReExportPackageSanityTestCase 
@@ -49,17 +50,19 @@
    public void testReExport() throws Exception
    {
       ClassPool clA = null;
+      Result rA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("a").
             createPackage(PACKAGE_A);
-         clA = createClassPool("A", builderA, JAR_A_1);
+         clA = createClassPool(rA, "A", builderA, JAR_A_1);
          CtClass classA = assertLoadCtClass(CLASS_A, clA);
          assertCannotLoadCtClass(clA, CLASS_B);
          assertCannotLoadCtClass(clA, CLASS_C);
          
          ClassPool clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
@@ -67,7 +70,7 @@
                createPackage(PACKAGE_B).
                createReExportPackage(PACKAGE_A);
             
-            clB = createClassPool("B", builderB, JAR_B_1);
+            clB = createClassPool(rB, "B", builderB, JAR_B_1);
             CtClass classA1 = assertLoadCtClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadCtClass(clA, CLASS_B);
@@ -78,11 +81,12 @@
             assertCannotLoadCtClass(clB, CLASS_C);
             
             ClassPool clC = null;
+            Result rC = new Result();
             try
             {
                BundleInfoBuilder builderC = BundleInfoBuilder.getBuilder().
                   createRequireModule("b");
-               clC = createClassPool("C", builderC, JAR_C_1);
+               clC = createClassPool(rC, "C", builderC, JAR_C_1);
                
                classA1 = assertLoadCtClass(CLASS_A, clA);
                assertSame(classA, classA1);
@@ -103,6 +107,7 @@
             {
                unregisterClassPool(clC);
             }
+            assertNoClassLoader(rC);
             classA1 = assertLoadCtClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadCtClass(clA, CLASS_B);
@@ -117,6 +122,7 @@
          {
             unregisterClassPool(clB);
          }
+         assertNoClassLoader(rB);
          CtClass classA1 = assertLoadCtClass(CLASS_A, clA);
          assertSame(classA, classA1);
          assertCannotLoadCtClass(clA, CLASS_B);
@@ -126,29 +132,32 @@
       {
          unregisterClassPool(clA);
       }
+      assertNoClassLoader(rA);
    }
    
    public void testNoReExport() throws Exception
    {
       ClassPool clA = null;
+      Result rA = new Result();
       try
       {
          BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
             createModule("a").
             createPackage(PACKAGE_A);
-         clA = createClassPool("A", builderA, JAR_A_1);
+         clA = createClassPool(rA, "A", builderA, JAR_A_1);
          CtClass classA = assertLoadCtClass(CLASS_A, clA);
          assertCannotLoadCtClass(clA, CLASS_B);
          assertCannotLoadCtClass(clA, CLASS_C);
          
          ClassPool clB = null;
+         Result rB = new Result();
          try
          {
             BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
                createModule("b").
                createPackage(PACKAGE_B).
                createReExportModule("a");
-            clB = createClassPool("B", builderB, JAR_B_1);
+            clB = createClassPool(rB, "B", builderB, JAR_B_1);
             CtClass classA1 = assertLoadCtClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadCtClass(clA, CLASS_B);
@@ -159,11 +168,12 @@
             assertCannotLoadCtClass(clB, CLASS_C);
             
             ClassPool clC = null;
+            Result rC = new Result();
             try
             {
                BundleInfoBuilder builderC = BundleInfoBuilder.getBuilder().
                   createRequirePackage(PACKAGE_B);
-               clC = createClassPool("C", builderC, JAR_C_1);
+               clC = createClassPool(rC, "C", builderC, JAR_C_1);
                
                classA1 = assertLoadCtClass(CLASS_A, clA);
                assertSame(classA, classA1);
@@ -183,6 +193,7 @@
             {
                unregisterClassPool(clC);
             }
+            assertNoClassLoader(rC);
             classA1 = assertLoadCtClass(CLASS_A, clA);
             assertSame(classA, classA1);
             assertCannotLoadCtClass(clA, CLASS_B);
@@ -197,6 +208,7 @@
          {
             unregisterClassPool(clB);
          }
+         assertNoClassLoader(rB);
          CtClass classA1 = assertLoadCtClass(CLASS_A, clA);
          assertSame(classA, classA1);
          assertCannotLoadCtClass(clA, CLASS_B);
@@ -206,5 +218,6 @@
       {
          unregisterClassPool(clA);
       }
+      assertNoClassLoader(rA);
    }
 }

Modified: projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithUsesPackageTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithUsesPackageTestCase.java	2009-01-06 15:27:29 UTC (rev 82633)
+++ projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithUsesPackageTestCase.java	2009-01-06 17:46:49 UTC (rev 82634)
@@ -26,6 +26,7 @@
 import junit.framework.Test;
 
 import org.jboss.test.aop.classpool.jbosscl.support.BundleInfoBuilder;
+import org.jboss.test.aop.classpool.jbosscl.support.Result;
 
 /**
  * Reproduces ClassLoaderWithUsesPackageSanityTestCase 
@@ -49,23 +50,24 @@
    public void testUsesImport() throws Exception
    {
       ClassPool clA1 = null;
-      
+      Result rA1 = new Result();
       try
       {
          BundleInfoBuilder builderA1 = BundleInfoBuilder.getBuilder().
             createModule("a1").
             createPackage(PACKAGE_A);
-         clA1 = createClassPool("A1", builderA1, JAR_A_1);
+         clA1 = createClassPool(rA1, "A1", builderA1, JAR_A_1);
          CtClass classA = assertLoadCtClass(CLASS_A, clA1);
 
          ClassPool clA2 = null;
+         Result rA2 = new Result();
          try
          {
             BundleInfoBuilder builderA2 = BundleInfoBuilder.getBuilder().
             createModule("a2").
             createUsesPackage(PACKAGE_A);
 
-            clA2 = createClassPool("A2", builderA2, JAR_A_1);
+            clA2 = createClassPool(rA2, "A2", builderA2, JAR_A_1);
             CtClass classA1 = assertLoadCtClass(CLASS_A, clA1);
             assertSame(classA, classA1);
             classA1 = assertLoadCtClass(CLASS_A, clA2, clA1);
@@ -75,6 +77,7 @@
          {
             unregisterClassPool(clA2);
          }
+         assertNoClassLoader(rA2);
          CtClass classA1 = assertLoadCtClass(CLASS_A, clA1);
          assertSame(classA, classA1);
       }
@@ -82,24 +85,26 @@
       {
          unregisterClassPool(clA1);
       }
+      assertNoClassLoader(rA1);
    }
    
    public void testUsesNoImport() throws Exception
    {
       ClassPool clA1 = null;
-      
+      Result rA1 = new Result();
       try
       {
          BundleInfoBuilder builderA1 = BundleInfoBuilder.getBuilder().
             createModule("a1").
             createUsesPackage(PACKAGE_A);
-         clA1 = createClassPool("A1", builderA1, JAR_A_1);
+         clA1 = createClassPool(rA1, "A1", builderA1, JAR_A_1);
          assertLoadCtClass(CLASS_A, clA1);
       }
       finally
       {
          unregisterClassPool(clA1);
       }
+      assertNoClassLoader(rA1);
    }
 
 }

Modified: projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/JBossClClassPoolTest.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/JBossClClassPoolTest.java	2009-01-06 15:27:29 UTC (rev 82633)
+++ projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/JBossClClassPoolTest.java	2009-01-06 17:46:49 UTC (rev 82634)
@@ -52,6 +52,7 @@
 import org.jboss.test.AbstractTestCaseWithSetup;
 import org.jboss.test.AbstractTestDelegate;
 import org.jboss.test.aop.classpool.jbosscl.support.BundleInfoBuilder;
+import org.jboss.test.aop.classpool.jbosscl.support.Result;
 import org.jboss.test.aop.classpool.jbosscl.support.TestVFSClassLoaderFactory;
 import org.jboss.test.aop.classpool.jbosscl.support.TestVFSClassLoaderFactoryFactory;
 import org.jboss.test.kernel.junit.MicrocontainerTest;
@@ -184,51 +185,96 @@
 
    protected ClassLoader createClassLoader(String name, boolean importAll, URL... urls) throws Exception
    {
+      return createClassLoader(null, name, importAll, urls);
+   }
+   
+   protected ClassLoader createClassLoader(Result result, String name, boolean importAll, URL... urls) throws Exception
+   {
       TestVFSClassLoaderFactory factory = TestVFSClassLoaderFactoryFactory.createClassLoaderFactory(name, importAll, urls);
-      return createClassLoader(factory);
+      return createClassLoader(result, factory);
    }
    
    protected ClassLoader createClassLoader(String name, BundleInfoBuilder builder, URL... urls) throws Exception
    {
+      return createClassLoader(null, name, builder, urls);
+   }
+   
+   protected ClassLoader createClassLoader(Result result, String name, BundleInfoBuilder builder, URL... urls) throws Exception
+   {
       TestVFSClassLoaderFactory factory = TestVFSClassLoaderFactoryFactory.createClassLoaderFactory(name, builder, urls);
-      return createClassLoader(factory);
+      return createClassLoader(result, factory);
    }
       
    protected ClassLoader createChildDomainParentFirstClassLoader(String name, String domainName, boolean importAll, URL... urls) throws Exception
    {
-      return createChildDomainParentFirstClassLoader(name, domainName, importAll, null, urls);
+      return createChildDomainParentFirstClassLoader((Result)null, name, domainName, importAll, urls);
    }
    
+   protected ClassLoader createChildDomainParentFirstClassLoader(Result result, String name, String domainName, boolean importAll, URL... urls) throws Exception
+   {
+      return createChildDomainParentFirstClassLoader(result, name, domainName, importAll, null, urls);
+   }
+   
    protected ClassLoader createChildDomainParentFirstClassLoader(String name, String domainName, boolean importAll, ClassLoader parent, URL... urls) throws Exception
    {
-      return createChildDomainClassLoader(name, domainName, null, true, importAll, parent, urls);
+      return createChildDomainParentFirstClassLoader(null, name, domainName, importAll, parent, urls);
    }
    
+   protected ClassLoader createChildDomainParentFirstClassLoader(Result result, String name, String domainName, boolean importAll, ClassLoader parent, URL... urls) throws Exception
+   {
+      return createChildDomainClassLoader(result, name, domainName, null, true, importAll, parent, urls);
+   }
+   
    protected ClassLoader createChildDomainParentFirstClassLoader(String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
    {
-      return createChildDomainClassLoader(name, domainName, parentDomainName, true, importAll, null, urls);
+      return createChildDomainParentFirstClassLoader(null, name, domainName, parentDomainName, importAll, urls);
    }
    
+   protected ClassLoader createChildDomainParentFirstClassLoader(Result result, String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
+   {
+      return createChildDomainClassLoader(result, name, domainName, parentDomainName, true, importAll, null, urls);
+   }
+   
    protected ClassLoader createChildDomainParentLastClassLoader(String name, String domainName, boolean importAll, URL... urls) throws Exception
    {
-      return createChildDomainParentLastClassLoader(name, domainName, importAll, null, urls);
+      return createChildDomainParentLastClassLoader((Result)null, name, domainName, importAll, urls);
    }
    
+   protected ClassLoader createChildDomainParentLastClassLoader(Result result, String name, String domainName, boolean importAll, URL... urls) throws Exception
+   {
+      return createChildDomainParentLastClassLoader(result, name, domainName, importAll, null, urls);
+   }
+   
    protected ClassLoader createChildDomainParentLastClassLoader(String name, String domainName, boolean importAll, ClassLoader parent, URL... urls) throws Exception
    {
-      return createChildDomainClassLoader(name, domainName, null, false, importAll, parent, urls);
+      return createChildDomainParentLastClassLoader(null, name, domainName, importAll, parent, urls);
    }
+
+   protected ClassLoader createChildDomainParentLastClassLoader(Result result, String name, String domainName, boolean importAll, ClassLoader parent, URL... urls) throws Exception
+   {
+      return createChildDomainClassLoader(result, name, domainName, null, false, importAll, parent, urls);
+   }
    
    protected ClassLoader createChildDomainParentLastClassLoader(String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
    {
-      return createChildDomainClassLoader(name, domainName, parentDomainName, false, importAll, null, urls);
+      return createChildDomainParentLastClassLoader(null, name, domainName, parentDomainName, importAll, urls);
    }
    
+   protected ClassLoader createChildDomainParentLastClassLoader(Result result, String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
+   {
+      return createChildDomainClassLoader(result, name, domainName, parentDomainName, false, importAll, null, urls);
+   }
+
    protected ClassLoader createChildDomainClassLoader(String name, String domainName, String parentDomainName, boolean parentFirst, boolean importAll, ClassLoader parent, URL... urls) throws Exception
    {
+      return createChildDomainClassLoader(null, name, domainName, parentDomainName, parentFirst, importAll, parent, urls);
+   }
+   
+   protected ClassLoader createChildDomainClassLoader(Result result, String name, String domainName, String parentDomainName, boolean parentFirst, boolean importAll, ClassLoader parent, URL... urls) throws Exception
+   {
       TestVFSClassLoaderFactory factory = TestVFSClassLoaderFactoryFactory.createClassLoaderFactory(name, importAll, domainName, parentDomainName, parentFirst, urls);
       
-      ClassLoader classLoader = createClassLoader(factory, parent);
+      ClassLoader classLoader = createClassLoader(result, factory, parent);
       
       ClassLoaderDomain domain = getSystem().getDomain(domainName);
       scopedChildDomainsByLoader.put(classLoader, domain);
@@ -242,12 +288,12 @@
       return cl;
    }
    
-   private ClassLoader createClassLoader(TestVFSClassLoaderFactory factory) throws Exception
+   private ClassLoader createClassLoader(Result result, TestVFSClassLoaderFactory factory) throws Exception
    {
-      return createClassLoader(factory, null);
+      return createClassLoader(result, factory, null);
    }
    
-   private ClassLoader createClassLoader(TestVFSClassLoaderFactory factory, ClassLoader parent) throws Exception
+   private ClassLoader createClassLoader(Result result, TestVFSClassLoaderFactory factory, ClassLoader parent) throws Exception
    {
       if (parent != null)
       {
@@ -256,6 +302,10 @@
       
       KernelDeployment deployment = install(factory);
       loaderNameDeploymentRegistry.registerDeployment(factory.getName(), deployment);
+      if (result != null)
+      {
+         result.setFactory(factory);
+      }
       ClassLoader loader = assertClassLoader(factory);
       Module module = assertModule(getContextName(factory));
       registerModule(loader, module);
@@ -349,43 +399,78 @@
 
    protected ClassPool createClassPool(String name, boolean importAll, URL... urls) throws Exception
    {
-      ClassLoader loader = createClassLoader(name, importAll, urls);
+      return createClassPool(null, name, importAll, urls);
+   }
+   
+   protected ClassPool createClassPool(Result result, String name, boolean importAll, URL... urls) throws Exception
+   {
+      ClassLoader loader = createClassLoader(result, name, importAll, urls);
       return AspectManager.instance().registerClassLoader(loader);
    }
    
    protected ClassPool createClassPool(String name, BundleInfoBuilder builder, URL... urls) throws Exception
    {
-      ClassLoader loader = createClassLoader(name, builder, urls);
+      return createClassPool(null, name, builder, urls);
+   }
+   
+   protected ClassPool createClassPool(Result result, String name, BundleInfoBuilder builder, URL... urls) throws Exception
+   {
+      ClassLoader loader = createClassLoader(result, name, builder, urls);
       return AspectManager.instance().registerClassLoader(loader);
    }
    
    protected ClassPool createChildDomainParentFirstClassPool(String name, String domainName, boolean importAll, URL... urls) throws Exception
    {
-      ClassLoader loader = createChildDomainParentFirstClassLoader(name, domainName, importAll, urls);
+      return createChildDomainParentFirstClassPool((Result)null, name, domainName, importAll, urls);
+   }
+   
+   protected ClassPool createChildDomainParentFirstClassPool(Result result, String name, String domainName, boolean importAll, URL... urls) throws Exception
+   {
+      ClassLoader loader = createChildDomainParentFirstClassLoader(result, name, domainName, importAll, urls);
       return AspectManager.instance().registerClassLoader(loader);
    }
    
    protected ClassPool createChildDomainParentFirstClassPool(String name, String domainName, boolean importAll, ClassPool parent, URL... urls) throws Exception
    {
-      ClassLoader loader = createChildDomainParentFirstClassLoader(name, domainName, importAll, parent.getClassLoader(), urls);
+      return createChildDomainParentFirstClassPool(null, name, domainName, importAll, parent, urls);
+
+   }
+   protected ClassPool createChildDomainParentFirstClassPool(Result result, String name, String domainName, boolean importAll, ClassPool parent, URL... urls) throws Exception
+   {
+      ClassLoader loader = createChildDomainParentFirstClassLoader(result, name, domainName, importAll, parent.getClassLoader(), urls);
       return AspectManager.instance().registerClassLoader(loader);
    }
    
    protected ClassPool createChildDomainParentFirstClassPool(String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
    {
-      ClassLoader loader = createChildDomainParentFirstClassLoader(name, domainName, parentDomainName, importAll, urls);
+      return createChildDomainParentFirstClassPool(null, name, domainName, parentDomainName, importAll, urls);
+   }
+   
+   protected ClassPool createChildDomainParentFirstClassPool(Result result, String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
+   {
+      ClassLoader loader = createChildDomainParentFirstClassLoader(result, name, domainName, parentDomainName, importAll, urls);
       return AspectManager.instance().registerClassLoader(loader);
    }
-   
+
    protected ClassPool createChildDomainParentLastClassPool(String name, String domainName, boolean importAll, URL... urls) throws Exception
    {
-      ClassLoader loader = createChildDomainParentLastClassLoader(name, domainName, importAll, urls);
+      return createChildDomainParentLastClassPool((Result)null, name, domainName, importAll, urls);
+   }
+   
+   protected ClassPool createChildDomainParentLastClassPool(Result result, String name, String domainName, boolean importAll, URL... urls) throws Exception
+   {
+      ClassLoader loader = createChildDomainParentLastClassLoader(result, name, domainName, importAll, urls);
       return AspectManager.instance().registerClassLoader(loader);
    }
 
    protected ClassPool createChildDomainParentLastClassPool(String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
    {
-      ClassLoader loader = createChildDomainParentLastClassLoader(name, domainName, parentDomainName, importAll, urls);
+      return createChildDomainParentLastClassPool(null, name, domainName, parentDomainName, importAll, urls);
+   }
+   
+   protected ClassPool createChildDomainParentLastClassPool(Result result, String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
+   {
+      ClassLoader loader = createChildDomainParentLastClassLoader(result, name, domainName, parentDomainName, importAll, urls);
       return AspectManager.instance().registerClassLoader(loader);
    }
 
@@ -436,6 +521,29 @@
       assertEquals(domainForModule.getName(), module.getDomainName());
       assertEquals(domainForModule.getParentDomainName(), module.getParentDomainName());
    }
+   
+   protected void assertNoClassLoader(Result result) throws Exception
+   {
+      if (result == null)
+      {
+         throw new IllegalStateException("Null result");
+      }
+      assertNoClassLoader(getContextName(result.getFactory()));
+   }
+   
+   protected void assertNoClassLoader(String name) throws Exception
+   {
+      try
+      {
+         Object bean = getBean(name, null);
+         if (bean != null)
+            fail("Should not be here: " + bean);
+      }
+      catch (Throwable t)
+      {
+         checkThrowable(IllegalStateException.class, t);
+      }
+   }
 
    protected void unregisterClassPool(ClassPool pool) throws Exception
    {




More information about the jboss-cvs-commits mailing list