[jboss-cvs] JBossAS SVN: r97703 - in projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool: test and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Dec 10 13:28:01 EST 2009


Author: flavia.rainone at jboss.com
Date: 2009-12-10 13:28:00 -0500 (Thu, 10 Dec 2009)
New Revision: 97703

Modified:
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositoryTest.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/IsLocalResourcePluginFactoryTestCase.java
Log:
[JBREFLECT-81] The two tests that were creating class loaders without adding them to a hard collection are now fixed.

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositoryTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositoryTest.java	2009-12-10 18:01:03 UTC (rev 97702)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositoryTest.java	2009-12-10 18:28:00 UTC (rev 97703)
@@ -35,6 +35,8 @@
 
 import java.net.URL;
 import java.net.URLClassLoader;
+import java.util.Collection;
+import java.util.HashSet;
 
 import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
 
@@ -47,13 +49,28 @@
  */
 public abstract class RepositoryTest<C, L> extends JBossClClassPoolTest<C, L>
 {
-   final static String STRING = String.class.getName();
+   // keep a hard reference to created class loaders to avoid garbage collection during
+   // test execution
+   private Collection<ClassLoader> createdURLClassLoaders = new HashSet<ClassLoader>();
    
+   
    public RepositoryTest(String name)
    {
       super(name);
    }
 
+   @Override
+   public void tearDown() throws Exception
+   {
+      try
+      {
+         super.tearDown();
+      }
+      finally
+      {
+         createdURLClassLoaders.clear();
+      }
+   }
    
    public void testGlobalScope() throws Exception
    {
@@ -390,6 +407,8 @@
    protected L createChildURLLoader(L parentLoader, URL url)
    {
       ClassLoader parentClassLoader = parentLoader == null? null: testScenario.getClassLoader(parentLoader);
-      return testScenario.getLoader(new URLClassLoader(new URL[] {url}, parentClassLoader));
+      URLClassLoader classLoader = new URLClassLoader(new URL[] {url}, parentClassLoader);
+      createdURLClassLoaders.add(classLoader);
+      return testScenario.getLoader(classLoader);
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/IsLocalResourcePluginFactoryTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/IsLocalResourcePluginFactoryTestCase.java	2009-12-10 18:01:03 UTC (rev 97702)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/IsLocalResourcePluginFactoryTestCase.java	2009-12-10 18:28:00 UTC (rev 97703)
@@ -24,6 +24,8 @@
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;
+import java.util.Collection;
+import java.util.HashSet;
 
 import javassist.ClassPool;
 import junit.framework.TestCase;
@@ -47,6 +49,7 @@
  * Tests for IsLocalResourcePluginFactory implementations.
  * 
  * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
  * @version $Revision$
  */
 public class IsLocalResourcePluginFactoryTestCase extends TestCase
@@ -65,50 +68,75 @@
       }
    }
    
+   private Collection<ClassLoader> createdClassLoaders = new HashSet<ClassLoader>();
+   
    public IsLocalResourcePluginFactoryTestCase(String name)
    {
       super(name);
    }
+   
+   public void tearDown() throws Exception
+   {
+      try
+      {
+         super.tearDown();
+      }
+      finally
+      {
+         createdClassLoaders.clear();
+      }
+   }
 
    public void testDefaultClassLoader() 
    {
-      DelegatingClassPool pool = new DelegatingClassPool(DOMAIN, new DefaultClassLoader(), ClassPool.getDefault(), ClassPoolRepository.getInstance());
-      assertFactoryAndPlugin(pool, DefaultClassLoaderIsLocalResourcePluginFactory.class, DefaultClassLoaderIsLocalResourcePlugin.class);
+      ClassLoader classLoader = new DefaultClassLoader();
+      assertFactoryAndPlugin(classLoader, DefaultClassLoaderIsLocalResourcePluginFactory.class,
+            DefaultClassLoaderIsLocalResourcePlugin.class);
    }
    
    public void testURLClassLoaderDirect()
    {
-      DelegatingClassPool pool = new DelegatingClassPool(DOMAIN, new URLClassLoader(URLS), ClassPool.getDefault(), ClassPoolRepository.getInstance());
-      assertFactoryAndPlugin(pool, URLClassLoaderIsLocalResourcePluginFactory.class, URLClassLoaderIsLocalResourcePlugin.class);
+      ClassLoader classLoader = new URLClassLoader(URLS);
+      assertFactoryAndPlugin(classLoader, URLClassLoaderIsLocalResourcePluginFactory.class,
+            URLClassLoaderIsLocalResourcePlugin.class);
    }
 
    public void testURLClassLoaderSubClass()
    {
-      DelegatingClassPool pool = new DelegatingClassPool(DOMAIN, new URLCLassLoaderSubClass(URLS), ClassPool.getDefault(), ClassPoolRepository.getInstance());
-      assertFactoryAndPlugin(pool, URLClassLoaderIsLocalResourcePluginFactory.class, URLClassLoaderIsLocalResourcePlugin.class);
+      ClassLoader classLoader = new URLCLassLoaderSubClass(URLS);
+      assertFactoryAndPlugin(classLoader, URLClassLoaderIsLocalResourcePluginFactory.class,
+            URLClassLoaderIsLocalResourcePlugin.class);
    }
 
    public void testTranslatableClassLoaderImplementation()
    {
-      DelegatingClassPool pool = new DelegatingClassPool(DOMAIN, new TranslatableImplementation(), ClassPool.getDefault(), ClassPoolRepository.getInstance());
-      assertFactoryAndPlugin(pool, TranslatableClassLoaderIsLocalResourcePluginFactory.class, TranslatableClassLoaderIsLocalResourcePlugin.class);
+      ClassLoader classLoader = new TranslatableImplementation();
+      assertFactoryAndPlugin(classLoader,
+            TranslatableClassLoaderIsLocalResourcePluginFactory.class,
+            TranslatableClassLoaderIsLocalResourcePlugin.class);
    }
    
    public void testTranslatableClassLoaderImplementationAndURLClassLoaderSubClass()
    {
-      DelegatingClassPool pool = new DelegatingClassPool(DOMAIN, new TranslatableImplementationAndURLClassLoaderSubClass(URLS), ClassPool.getDefault(), ClassPoolRepository.getInstance());
-      assertFactoryAndPlugin(pool, TranslatableClassLoaderIsLocalResourcePluginFactory.class, TranslatableClassLoaderIsLocalResourcePlugin.class);
+      ClassLoader classLoader = new TranslatableImplementationAndURLClassLoaderSubClass(URLS);
+      assertFactoryAndPlugin(classLoader,
+            TranslatableClassLoaderIsLocalResourcePluginFactory.class,
+            TranslatableClassLoaderIsLocalResourcePlugin.class);
    }
    
    public void testTranslatable2ClassLoaderImplementationAndURLClassLoaderSubClass()
    {
-      DelegatingClassPool pool = new DelegatingClassPool(DOMAIN, new Translatable2ImplementationAndURLClassLoaderSubClass(URLS), ClassPool.getDefault(), ClassPoolRepository.getInstance());
-      assertFactoryAndPlugin(pool, TranslatableClassLoaderIsLocalResourcePluginFactory.class, TranslatableClassLoaderIsLocalResourcePlugin.class);
+      ClassLoader classLoader = new Translatable2ImplementationAndURLClassLoaderSubClass(URLS);
+      assertFactoryAndPlugin(classLoader,
+            TranslatableClassLoaderIsLocalResourcePluginFactory.class,
+            TranslatableClassLoaderIsLocalResourcePlugin.class);
    }
    
    
-   private void assertFactoryAndPlugin(DelegatingClassPool pool, Class<?> factoryClass, Class<?> pluginClass)
+   private void assertFactoryAndPlugin(ClassLoader classLoader, Class<?> factoryClass, Class<?> pluginClass)
    {
+      createdClassLoaders.add(classLoader);
+      DelegatingClassPool pool = new DelegatingClassPool(DOMAIN, classLoader, ClassPool.getDefault(), ClassPoolRepository.getInstance()); 
       IsLocalResourcePluginFactory factory = IsLocalResourcePluginFactoryRegistry.getPluginFactory(pool.getClassLoader());
       assertNotNull(factory);
       assertEquals(factoryClass, factory.getClass());




More information about the jboss-cvs-commits mailing list