[jboss-cvs] JBossAS SVN: r99960 - projects/aop/branches/Branch_2_1/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:02:40 EST 2010
Author: kabir.khan at jboss.com
Date: 2010-01-26 18:02:40 -0500 (Tue, 26 Jan 2010)
New Revision: 99960
Modified:
projects/aop/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ClassPoolTest.java
projects/aop/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentFirstDelegatingClassPoolTestCase.java
projects/aop/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentLastDelegatingClassPoolTestCase.java
projects/aop/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/SimpleDelegatingClassPoolTestCase.java
Log:
More tests
Modified: projects/aop/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ClassPoolTest.java
===================================================================
--- projects/aop/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ClassPoolTest.java 2010-01-26 23:00:42 UTC (rev 99959)
+++ projects/aop/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ClassPoolTest.java 2010-01-26 23:02:40 UTC (rev 99960)
@@ -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/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentFirstDelegatingClassPoolTestCase.java
===================================================================
--- projects/aop/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentFirstDelegatingClassPoolTestCase.java 2010-01-26 23:00:42 UTC (rev 99959)
+++ projects/aop/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentFirstDelegatingClassPoolTestCase.java 2010-01-26 23:02:40 UTC (rev 99960)
@@ -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/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentLastDelegatingClassPoolTestCase.java
===================================================================
--- projects/aop/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentLastDelegatingClassPoolTestCase.java 2010-01-26 23:00:42 UTC (rev 99959)
+++ projects/aop/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/ParentLastDelegatingClassPoolTestCase.java 2010-01-26 23:02:40 UTC (rev 99960)
@@ -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/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/SimpleDelegatingClassPoolTestCase.java
===================================================================
--- projects/aop/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/SimpleDelegatingClassPoolTestCase.java 2010-01-26 23:00:42 UTC (rev 99959)
+++ projects/aop/branches/Branch_2_1/asintegration-core/src/test/java/org/jboss/test/aop/classpool/test/SimpleDelegatingClassPoolTestCase.java 2010-01-26 23:02:40 UTC (rev 99960)
@@ -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