[jboss-cvs] JBossAS SVN: r103193 - projects/jboss-reflect/trunk/src/test/java/org/jboss/test/beaninfo/test.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Mar 29 14:05:13 EDT 2010


Author: kabir.khan at jboss.com
Date: 2010-03-29 14:05:11 -0400 (Mon, 29 Mar 2010)
New Revision: 103193

Modified:
   projects/jboss-reflect/trunk/src/test/java/org/jboss/test/beaninfo/test/JavassistBeanInfoCacheTestCase.java
Log:
[JBREFLECT-107] Make sure that the class pool factory is reset

Modified: projects/jboss-reflect/trunk/src/test/java/org/jboss/test/beaninfo/test/JavassistBeanInfoCacheTestCase.java
===================================================================
--- projects/jboss-reflect/trunk/src/test/java/org/jboss/test/beaninfo/test/JavassistBeanInfoCacheTestCase.java	2010-03-29 17:50:54 UTC (rev 103192)
+++ projects/jboss-reflect/trunk/src/test/java/org/jboss/test/beaninfo/test/JavassistBeanInfoCacheTestCase.java	2010-03-29 18:05:11 UTC (rev 103193)
@@ -21,6 +21,9 @@
 */ 
 package org.jboss.test.beaninfo.test;
 
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.security.PrivilegedExceptionAction;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -30,6 +33,7 @@
 
 import org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactoryImpl;
 import org.jboss.reflect.plugins.javassist.classpool.ClassPoolFactory;
+import org.jboss.test.AbstractTestDelegate;
 
 /**
  * 
@@ -38,13 +42,10 @@
  */
 public class JavassistBeanInfoCacheTestCase extends BeanInfoCacheTestCase
 {
-   MockClassPoolFactory factory = new MockClassPoolFactory();
-   
    public JavassistBeanInfoCacheTestCase(String name)
    {
       super(name);
       setJavassistConfiguration();
-      JavassistTypeInfoFactoryImpl.setPoolFactory(factory);
    }
 
    public static Test suite()
@@ -52,15 +53,27 @@
       return suite(JavassistBeanInfoCacheTestCase.class);
    }
    
-   
+   /**
+    * Special delegate to set/unset the classpool factory
+    */
+   public static AbstractTestDelegate getDelegate(Class<?> clazz) throws Exception
+   {
+      ClassPoolTestDelegate delegate = new ClassPoolTestDelegate(clazz);
+      delegate.enableSecurity = true;
+      return delegate;
+   }
+
    @Override
    protected void registerClassLoader(ClassLoader cl)
    {
-      factory.registerClassLoader(cl);
+      MockClassPoolFactory.INSTANCE.registerClassLoader(cl);
    }
 
+   
    private static class MockClassPoolFactory implements ClassPoolFactory
    {
+      static final MockClassPoolFactory INSTANCE = new MockClassPoolFactory();
+      
       Map<ClassLoader, ClassPool> pools = new HashMap<ClassLoader, ClassPool>();
       
       void registerClassLoader(ClassLoader cl)
@@ -94,4 +107,29 @@
          return cl;
       }
    }
+   
+   private static class ClassPoolTestDelegate extends AbstractTestDelegate
+   {
+      ClassPoolFactory factory = JavassistTypeInfoFactoryImpl.getPoolFactory();
+      
+      public ClassPoolTestDelegate(Class<?> clazz)
+      {
+         super(clazz);
+      }
+
+      @Override
+      public void setUp() throws Exception
+      {
+         super.setUp();
+         JavassistTypeInfoFactoryImpl.setPoolFactory(MockClassPoolFactory.INSTANCE);
+      }
+
+      @Override
+      public void tearDown() throws Exception
+      {
+         if (factory == null)
+            JavassistTypeInfoFactoryImpl.setPoolFactory(factory);
+      }
+      
+   }
 }




More information about the jboss-cvs-commits mailing list