[jboss-cvs] JBossAS SVN: r83867 - projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Feb 4 15:25:57 EST 2009


Author: kabir.khan at jboss.com
Date: 2009-02-04 15:25:57 -0500 (Wed, 04 Feb 2009)
New Revision: 83867

Modified:
   projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithRepositoryTestCase.java
Log:
[JBAOP-666] Check that blacklisteded classes can be loaded once they are generated

Modified: projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithRepositoryTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithRepositoryTestCase.java	2009-02-04 20:07:41 UTC (rev 83866)
+++ projects/aop/trunk/asintegration-mc/src/test/java/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithRepositoryTestCase.java	2009-02-04 20:25:57 UTC (rev 83867)
@@ -21,11 +21,17 @@
 */ 
 package org.jboss.test.aop.classpool.jbosscl.test;
 
+import java.util.ArrayList;
+
 import javassist.ClassPool;
 import javassist.CtClass;
 import javassist.NotFoundException;
 import junit.framework.Test;
 
+import org.jboss.aop.proxy.container.AOPProxyFactoryParameters;
+import org.jboss.aop.proxy.container.AspectManaged;
+import org.jboss.aop.proxy.container.ContainerProxyFactory;
+import org.jboss.aop.proxy.container.GeneratedAOPProxyFactory;
 import org.jboss.classloader.spi.ClassLoaderDomain;
 
 /**
@@ -538,6 +544,41 @@
       }
    }
 
+   public void testGeneratingClassAndFindPreviouslyBlacklistedInSameDomain() throws Exception
+   {
+      ClassPool globalA = null;
+      ClassPool globalB = null;
+      try
+      {
+         final String classnameA = PACKAGE_A + ".NewClassA";
+         final String classnameB = PACKAGE_B + ".NewClassB";
+         globalA = createClassPool("A", true, JAR_A_1);
+         globalB = createClassPool("B", true, JAR_B_1);
+
+         assertCannotLoadClass(globalA.getClassLoader(), classnameA);
+         assertCannotLoadClass(globalA.getClassLoader(), classnameB);
+         assertCannotLoadClass(globalB.getClassLoader(), classnameA);
+         assertCannotLoadClass(globalB.getClassLoader(), classnameB);
+         
+         CtClass newCtClassA = globalA.makeClass(classnameA);
+         Class<?> newClassA = newCtClassA.toClass();
+         assertSame(globalA.getClassLoader(), newClassA.getClassLoader());
+         assertSame(newClassA, globalA.getClassLoader().loadClass(classnameA));
+         assertSame(newClassA, globalB.getClassLoader().loadClass(classnameA));
+
+         CtClass newCtClassB = globalB.makeClass(classnameB);
+         Class<?> newClassB = newCtClassB.toClass();
+         assertSame(globalB.getClassLoader(), newClassB.getClassLoader());
+         assertSame(newClassB, globalA.getClassLoader().loadClass(classnameB));
+         assertSame(newClassB, globalB.getClassLoader().loadClass(classnameB));
+      }
+      finally
+      {
+         unregisterClassPool(globalA);
+         unregisterClassPool(globalB);
+      }
+   }
+
    public void testGeneratingCrossDomainClassHierarchy() throws Exception
    {
       ClassPool global = null;




More information about the jboss-cvs-commits mailing list