[jboss-cvs] JBossAS SVN: r99962 - projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jan 26 18:07:57 EST 2010


Author: kabir.khan at jboss.com
Date: 2010-01-26 18:07:56 -0500 (Tue, 26 Jan 2010)
New Revision: 99962

Modified:
   projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ClassPoolTest.java
   projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentFirstDelegatingClassPoolTestCase.java
   projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentLastDelegatingClassPoolTestCase.java
   projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/SimpleDelegatingClassPoolTestCase.java
Log:
More tests

Modified: projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ClassPoolTest.java
===================================================================
--- projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ClassPoolTest.java	2010-01-26 23:06:00 UTC (rev 99961)
+++ projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ClassPoolTest.java	2010-01-26 23:07:56 UTC (rev 99962)
@@ -32,7 +32,9 @@
 import org.jboss.aop.classpool.AOPClassPoolRepository;
 import org.jboss.aop.classpool.BaseClassPoolDomain;
 import org.jboss.aop.classpool.ClassPoolDomain;
+import org.jboss.aop.classpool.ClassPoolToClassPoolDomainAdapter;
 import org.jboss.aop.classpool.DelegatingClassPool;
+import org.jboss.aop.classpool.NonDelegatingClassPool;
 import org.jboss.test.AbstractTestCaseWithSetup;
 import org.jboss.test.AbstractTestDelegate;
 
@@ -92,6 +94,17 @@
    
    protected static DelegatingClassPool createDelegatingClassPool(ClassPoolDomain domain, URL...urls) throws ClassNotFoundException
    {
+      return new DelegatingClassPool(domain, createClassLoader(urls), ClassPool.getDefault(), AOPClassPoolRepository.getInstance());
+   }
+
+   protected static ClassPoolDomain createNonDelegatingClassPoolDomain(URL...urls) throws ClassNotFoundException
+   {
+      NonDelegatingClassPool pool = new NonDelegatingClassPool(createClassLoader(urls), ClassPool.getDefault(), AOPClassPoolRepository.getInstance(), true);
+      return new ClassPoolToClassPoolDomainAdapter(pool);
+   }
+   
+   protected static ClassLoader createClassLoader(URL...urls) throws ClassNotFoundException
+   {
       ClassLoader loader = new URLClassLoader(urls);
       for (URL url : urls)
       {
@@ -110,9 +123,9 @@
       loader = new URLClassLoader(urls);
       //Add hard reference to loader
       loaders.add(loader);
-      return new DelegatingClassPool(domain, loader, ClassPool.getDefault(), AOPClassPoolRepository.getInstance());
+      return loader;
    }
-
+   
    @Override
    protected void setUp() throws Exception
    {

Modified: projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentFirstDelegatingClassPoolTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentFirstDelegatingClassPoolTestCase.java	2010-01-26 23:06:00 UTC (rev 99961)
+++ projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentFirstDelegatingClassPoolTestCase.java	2010-01-26 23:07:56 UTC (rev 99962)
@@ -6,6 +6,7 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
+import org.jboss.aop.classpool.BaseClassPool;
 import org.jboss.aop.classpool.ClassPoolDomain;
 import org.jboss.aop.instrument.TransformerCommon;
 
@@ -291,4 +292,26 @@
       assertSame(parentA, childA);
       assertSame(parentClazz, childPool.get(CLASS_A + "$Test"));
    }
+   
+   public void testNonDelegatingClassPoolAsParent() throws Exception
+   {
+      ClassPoolDomain root = createNonDelegatingClassPoolDomain(JAR_A);
+      ClassPoolDomain child = createClassPoolDomain("CHILD", root, true);
+      ClassPool childPoolB = createDelegatingClassPool(child, JAR_B);
+      
+      CtClass b = childPoolB.get(CLASS_B);
+      assertSame(childPoolB, b.getClassPool());
+      assertSame(b, childPoolB.get(CLASS_B));
+      
+      CtClass a = childPoolB.get(CLASS_A);
+      assertNotSame(childPoolB, a.getClassPool());
+      assertSame(a, childPoolB.get(CLASS_A));
+      
+      ClassPool childPoolA = createDelegatingClassPool(child, JAR_A);
+      assertSame(a, childPoolA.get(CLASS_A));
+      assertSame(a, childPoolB.get(CLASS_A));
+      
+      ((BaseClassPool)childPoolA).close();
+      assertSame(a, childPoolB.get(CLASS_A));
+   }
 }

Modified: projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentLastDelegatingClassPoolTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentLastDelegatingClassPoolTestCase.java	2010-01-26 23:06:00 UTC (rev 99961)
+++ projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentLastDelegatingClassPoolTestCase.java	2010-01-26 23:07:56 UTC (rev 99962)
@@ -3,6 +3,7 @@
 import javassist.ClassPool;
 import javassist.CtClass;
 
+import org.jboss.aop.classpool.BaseClassPool;
 import org.jboss.aop.classpool.ClassPoolDomain;
 import org.jboss.aop.instrument.TransformerCommon;
 
@@ -262,4 +263,27 @@
       Class<?> childAClass = childA.toClass();
       assertSame(childPool.getClassLoader(), childAClass.getClassLoader());
    }
+
+   public void testNonDelegatingClassPoolAsParent() throws Exception
+   {
+      ClassPoolDomain root = createNonDelegatingClassPoolDomain(JAR_A);
+      ClassPoolDomain child = createClassPoolDomain("CHILD", root, false);
+      ClassPool childPoolB = createDelegatingClassPool(child, JAR_B);
+      
+      CtClass b = childPoolB.get(CLASS_B);
+      assertSame(childPoolB, b.getClassPool());
+      assertSame(b, childPoolB.get(CLASS_B));
+      
+      CtClass a = childPoolB.get(CLASS_A);
+      assertNotSame(childPoolB, a.getClassPool());
+      assertSame(a, childPoolB.get(CLASS_A));
+      
+      ClassPool childPoolA = createDelegatingClassPool(child, JAR_A);
+      CtClass a1 = childPoolA.get(CLASS_A);
+      assertNotSame(a, a1);
+      assertSame(a1, childPoolA.get(CLASS_A));
+      
+      ((BaseClassPool)childPoolA).close();
+      assertSame(a, childPoolB.get(CLASS_A));
+   }
 }

Modified: projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/SimpleDelegatingClassPoolTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/SimpleDelegatingClassPoolTestCase.java	2010-01-26 23:06:00 UTC (rev 99961)
+++ projects/aop/trunk/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/SimpleDelegatingClassPoolTestCase.java	2010-01-26 23:07:56 UTC (rev 99962)
@@ -6,6 +6,7 @@
 import junit.framework.TestSuite;
 
 import org.jboss.aop.classpool.ClassPoolDomain;
+import org.jboss.aop.classpool.NonDelegatingClassPool;
 
 
 /*




More information about the jboss-cvs-commits mailing list