[jboss-cvs] JBossAS SVN: r103346 - in projects/kernel/trunk: kernel/src/test/java/org/jboss/test/kernel/dependency/support and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Mar 31 11:36:39 EDT 2010
Author: kabir.khan at jboss.com
Date: 2010-03-31 11:36:38 -0400 (Wed, 31 Mar 2010)
New Revision: 103346
Modified:
projects/kernel/trunk/aop-mc-int/src/test/java/org/jboss/test/microcontainer/test/OverriddenClassLoaderTestCase.java
projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/support/ClassPoolFactoryImpl.java
Log:
[JBKERNEL-114] Rework test to set up a jboss reflect class pool factory understanding the classloaders for the javassist type infos.
Modified: projects/kernel/trunk/aop-mc-int/src/test/java/org/jboss/test/microcontainer/test/OverriddenClassLoaderTestCase.java
===================================================================
--- projects/kernel/trunk/aop-mc-int/src/test/java/org/jboss/test/microcontainer/test/OverriddenClassLoaderTestCase.java 2010-03-31 15:18:26 UTC (rev 103345)
+++ projects/kernel/trunk/aop-mc-int/src/test/java/org/jboss/test/microcontainer/test/OverriddenClassLoaderTestCase.java 2010-03-31 15:36:38 UTC (rev 103346)
@@ -28,17 +28,24 @@
import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
+import java.util.HashMap;
+import java.util.Map;
import java.util.jar.JarEntry;
import java.util.jar.JarOutputStream;
import java.util.jar.Manifest;
+import javassist.ClassPool;
+
import junit.framework.Test;
import org.jboss.aop.advice.AspectDefinition;
import org.jboss.aop.advice.AspectFactory;
import org.jboss.aop.advice.AspectFactoryWithClassLoader;
import org.jboss.aop.microcontainer.beans.Aspect;
+import org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactoryImpl;
+import org.jboss.reflect.plugins.javassist.classpool.ClassPoolFactory;
import org.jboss.test.aop.junit.AOPMicrocontainerTest;
+import org.jboss.test.kernel.dependency.support.ClassPoolFactoryImpl;
import org.jboss.test.microcontainer.support.ParentLastURLClassLoader;
import org.jboss.test.microcontainer.support.TestAspect;
@@ -93,7 +100,11 @@
File jarFile = createJar();
URL jarUrl = jarFile.toURL();
- return new ParentLastURLClassLoader(new URL[] {jarUrl}, getClass().getClassLoader());
+ ClassLoader loader = new ParentLastURLClassLoader(new URL[] {jarUrl}, getClass().getClassLoader());
+
+ ClassPoolFactoryInstaller.INSTANCE.registerLoader(loader);
+
+ return loader;
}
private File createJar() throws Exception
@@ -167,4 +178,45 @@
}
}
}
+
+ @Override
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+ ClassPoolFactoryInstaller.INSTANCE.setUp();
+ }
+
+ @Override
+ protected void tearDown() throws Exception
+ {
+ super.tearDown();
+ ClassPoolFactoryInstaller.INSTANCE.tearDown();
+ }
+
+ private static class ClassPoolFactoryInstaller
+ {
+ final static ClassPoolFactoryInstaller INSTANCE = new ClassPoolFactoryInstaller();
+
+ ClassPoolFactoryImpl classPoolFactory = new ClassPoolFactoryImpl();
+
+ ClassPoolFactory factory;
+
+ void registerLoader(ClassLoader loader)
+ {
+ classPoolFactory.addClassLoader(loader);
+ }
+
+ void setUp()
+ {
+ factory = JavassistTypeInfoFactoryImpl.getPoolFactory();
+ JavassistTypeInfoFactoryImpl.setPoolFactory(classPoolFactory);
+ }
+
+ void tearDown()
+ {
+ if (factory != null)
+ JavassistTypeInfoFactoryImpl.setPoolFactory(factory);
+ classPoolFactory.clearAllLoaders();
+ }
+ }
}
Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/support/ClassPoolFactoryImpl.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/support/ClassPoolFactoryImpl.java 2010-03-31 15:18:26 UTC (rev 103345)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/dependency/support/ClassPoolFactoryImpl.java 2010-03-31 15:36:38 UTC (rev 103346)
@@ -59,6 +59,11 @@
pools.remove(loader);
}
+ public void clearAllLoaders()
+ {
+ pools.clear();
+ }
+
public ClassPool getPoolForLoader(ClassLoader classLoader)
{
ClassPool pool = pools.get(classLoader);
More information about the jboss-cvs-commits
mailing list