[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