[jboss-cvs] JBossAS SVN: r97268 - in projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool: jbosscl/test and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Dec 1 19:16:40 EST 2009


Author: flavia.rainone at jboss.com
Date: 2009-12-01 19:16:39 -0500 (Tue, 01 Dec 2009)
New Revision: 97268

Added:
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/JBossCLFactory.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderFactory.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderInfo.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassPoolTestScenario.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SanityTestScenario.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestScenario.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/UCLFactory.java
Removed:
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/ClassPoolTestScenario.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/SanityTestScenario.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/TestScenario.java
Modified:
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/CLDeploymentBuilder.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/DomainRegistry.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassPoolTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveSanityTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainClassPoolTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainSanityTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderClassPoolTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderSanityTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencyClassPoolTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencySanityTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencyClassPoolTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencySanityTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleClassPoolTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleSanityTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageClassPoolTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageSanityTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReplaceReferencesClassPoolTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositoryClassPoolTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositorySanityTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageClassPoolTestCase.java
   projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageSanityTestCase.java
Log:
[JBREFLECT-74] Created an infrastructure for removing duplicate class test cases from other test packages than jbosscl.

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/CLDeploymentBuilder.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/CLDeploymentBuilder.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/CLDeploymentBuilder.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -39,13 +39,14 @@
 import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
 import org.jboss.kernel.plugins.deployment.AbstractKernelDeployment;
 import org.jboss.kernel.spi.deployment.KernelDeployment;
+import org.jboss.test.classpool.support.ClassLoaderInfo;
 
 /**
  * 
  * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
  * @version $Revision$
  */
-public class CLDeploymentBuilder
+public class CLDeploymentBuilder implements ClassLoaderInfo
 {
    private static ClassLoadingMetaDataFactory clmdf = ClassLoadingMetaDataFactory.getInstance();
    
@@ -75,15 +76,6 @@
       this.importAll = true;
    }
    
-   private CLDeploymentBuilder()   {
-      
-   }
-   
-   public static CLDeploymentBuilder getBuilder()
-   {
-      return new CLDeploymentBuilder();
-   }
-   
    public String getName()
    {
       return this.name;
@@ -122,7 +114,6 @@
       return this.domainCreated;
    }
    
-   // TODO is parent related to parent domain for real?
    public void createDomain(String domain, ClassLoader parent, boolean parentFirst)
    {
       this.createDomain(domain, (String) null, parentFirst);

Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/ClassPoolTestScenario.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/ClassPoolTestScenario.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/ClassPoolTestScenario.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -1,196 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.test.classpool.jbosscl.support;
-
-import java.net.URL;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-import javassist.ClassPool;
-import javassist.CtClass;
-import javassist.NotFoundException;
-import junit.framework.Assert;
-
-import org.jboss.classpool.spi.ClassPoolRepository;
-import org.jboss.test.classpool.support.MicrocontainerFacade;
-
-/**
- * This scenario is used by class pool test cases. All the operations performed using this
- * scenario are executed over CtClasses and ClassPools.
- * 
- * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
- * @version $Revision$
- */
-public class ClassPoolTestScenario extends TestScenario<CtClass, ClassPool>
-{
-   /** The ClassPool repository */
-   protected ClassPoolRepository repository;
-   
-   
-   public ClassPoolTestScenario(MicrocontainerFacade microcontainer)
-   {
-      super(microcontainer);
-      repository = (ClassPoolRepository) microcontainer.getBean("ClassPoolRepository");
-   }
-   
-   @Override
-   public ClassPool getLoader(CtClass clazz)
-   {
-      return assertRegisterClassLoader(clazz.getClassPool().getClassLoader());
-   }
-   
-   @Override
-   public ClassPool getLoader(ClassLoader classLoader)
-   {
-      return assertRegisterClassLoader(classLoader);
-   }
-   
-   @Override
-   public ClassLoader getClassLoader(ClassPool classPool)
-   {
-      return classPool.getClassLoader();
-   }
-   
-   @Override
-   public CtClass loadClass(ClassPool classPool, ClassPool expectedClassPool, String className)
-      throws Exception
-   {
-      Class<?> clazz = assertLoadClass(className, classPool.getClassLoader(), expectedClassPool.getClassLoader());
-      CtClass ctClass = assertLoadCtClass(className, classPool, expectedClassPool);
-      Assert.assertEquals(className, ctClass.getName());
-      Assert.assertEquals("Class has been loaded by the wrong class loader: " + className,
-            clazz.getClassLoader(), ctClass.getClassPool().getClassLoader());
-      return ctClass;
-   }
-   
-   @Override
-   public void cannotLoadClass(ClassPool classPool, String className)
-   {
-      try
-      {
-         classPool.getCtClass(className);
-         Assert.fail("Should not have been able to load " + className);
-      }
-      catch(NotFoundException expected){}
-   }
-   
-   @Override
-   public CtClass getMethodReturnType(CtClass clazz, String methodName) throws Exception
-   {
-      return clazz.getDeclaredMethod(methodName).getReturnType();
-   }
-   
-   /********* HELPER METHODS ***************************************************************/
-   
-   private ClassPool assertRegisterClassLoader(ClassLoader loader)
-   {
-      ClassPool classPool = repository.registerClassLoader(loader);
-      Assert.assertNotNull(classPool);
-      assertBootstrap(classPool, String.class, Class.class, ClassLoader.class, Object.class,
-            Collection.class, List.class, Map.class, URL.class);
-      return classPool;
-   }
-   
-   private void assertBootstrap(ClassPool classPool, Class<?>... classes)
-   {
-      assertSameClassPool(null, classPool, int.class, boolean.class, byte.class, short.class,
-            long.class, float.class, double.class, char.class, void.class);
-      assertSameClassPool(ClassPool.getDefault(), classPool, classes);
-      
-   }
-   
-   private void assertSameClassPool(ClassPool expectedClassPool, ClassPool classPool,
-         Class<?>... classes)
-   {
-      for (Class<?> clazz: classes)
-      {
-         CtClass ctClass = null;
-         try
-         {
-            ctClass = classPool.getCtClass(clazz.getName());
-         } catch (NotFoundException e)
-         {
-            e.printStackTrace();
-            Assert.fail(e.getMessage());
-         }
-         Assert.assertSame("Class " + clazz.getName() + " loaded by unexpected class pool ",
-               expectedClassPool, ctClass.getClassPool());
-      }
-   }
-   
-   protected CtClass assertLoadCtClass(String name, ClassPool initiating, ClassPool expected) throws Exception
-   {
-      CtClass clazz = initiating.get(name);
-      if (expected != null)
-      {
-         Assert.assertSame(expected, clazz.getClassPool());
-      }
-      //Load twice to test both create and cache
-      clazz = initiating.get(name);
-      if (expected != null)
-      {
-         Assert.assertSame(expected, clazz.getClassPool());
-      }
-      
-      assertLoadCtClassArray(name, clazz, initiating, expected);
-      
-      return clazz;
-   }
-   
-   private void assertLoadCtClassArray(String name, CtClass clazz, ClassPool initiating, ClassPool expected) throws Exception
-   {
-      assertLoadCtClassArray(name, clazz, 1, initiating, expected);
-      assertLoadCtClassArray(name, clazz, 2, initiating, expected);
-   }
-   
-   private void assertLoadCtClassArray(String name, CtClass clazz, int dimensions, ClassPool initiating, ClassPool expected) throws Exception
-   {
-      String arrayName = name;
-      for (int i = 0 ; i < dimensions ; i++)
-      {
-         arrayName = arrayName + "[]";
-      }
-      CtClass array = initiating.get(arrayName);
-      
-      if (expected != null)
-      {
-         Assert.assertSame(expected, array.getClassPool());
-      }
-      
-      Assert.assertSame(clazz.getClassPool(), array.getClassPool());
-      
-      CtClass type = array;
-      for (int i = 0 ; i < dimensions ; i++)
-      {
-         type = type.getComponentType();
-      }
-      Assert.assertSame(type, clazz);
-   }
-   
-   @Override
-   protected void destroy(ClassLoader classLoader)
-   {
-      repository.unregisterClassLoader(classLoader);
-      super.destroy(classLoader);
-   }
-}

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/DomainRegistry.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/DomainRegistry.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/DomainRegistry.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -25,6 +25,7 @@
 import java.util.Map;
 
 import org.jboss.classloader.spi.ClassLoaderDomain;
+import org.jboss.test.classpool.support.TestScenario;
 
 /**
  * All domains to be cleaned up should be registered here.

Added: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/JBossCLFactory.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/JBossCLFactory.java	                        (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/JBossCLFactory.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -0,0 +1,222 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.classpool.jbosscl.support;
+
+import java.util.Collection;
+import java.util.Map;
+
+import junit.framework.Assert;
+
+import org.jboss.classloader.spi.ClassLoaderDomain;
+import org.jboss.classloader.spi.ClassLoaderSystem;
+import org.jboss.classloader.spi.base.BaseClassLoader;
+import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
+import org.jboss.classpool.plugins.as5.VFSClassLoaderDomainRegistry;
+import org.jboss.kernel.spi.deployment.KernelDeployment;
+import org.jboss.logging.Logger;
+import org.jboss.test.AbstractTestCase;
+import org.jboss.test.classpool.support.ClassLoaderFactory;
+import org.jboss.test.classpool.support.MicrocontainerFacade;
+import org.jboss.test.classpool.support.SupportClasses;
+
+/**
+ * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
+ *
+ * @version $Revision$
+ */
+
+public class JBossCLFactory implements ClassLoaderFactory<CLDeploymentBuilder>
+{
+   /** The classloader helper */
+   protected ClassLoaderSystem system;
+   /** The domain registry */
+   protected VFSClassLoaderDomainRegistry domainRegistry;
+   /** The Microcontanier Facade */
+   private MicrocontainerFacade microcontainer;
+   /** The loader registry */
+   private LoaderRegistry loaderRegistry;
+   
+   
+   /**
+    * Constructor.
+    * 
+    * @param mc used by this test to perform deploy/undeploy operations
+    */
+   public JBossCLFactory(MicrocontainerFacade mc)
+   {
+      this.microcontainer = mc;
+      this.system = (ClassLoaderSystem) mc.getBean("ClassLoaderSystem");
+      domainRegistry = (VFSClassLoaderDomainRegistry) mc.getBean("ClassLoaderScopingPolicy");
+      this.loaderRegistry = new LoaderRegistry(mc);
+   }
+   
+   public ClassLoader create(CLDeploymentBuilder classLoaderBuilder) throws Exception
+   {
+      KernelDeployment deployment = classLoaderBuilder.createDeployment();
+      microcontainer.deploy(deployment);
+      VFSClassLoaderFactory factory = classLoaderBuilder.getMetaDataFactory();
+      factory.setContextName(getContextName(factory));
+      loaderRegistry.registerDeployment(classLoaderBuilder);
+      return getClassLoader(classLoaderBuilder);
+   }
+   
+   public ClassLoader getClassLoader(CLDeploymentBuilder classLoaderBuilder)
+   throws Exception
+   {
+      VFSClassLoaderFactory factory = classLoaderBuilder.getMetaDataFactory();
+      try
+      {
+         Object obj = microcontainer.getBean(factory.getContextName());
+         Assert.assertTrue(obj instanceof ClassLoader);
+         ClassLoader classLoader = (ClassLoader) obj;
+         loaderRegistry.registerClassLoader(classLoader, classLoaderBuilder);
+         return classLoader;
+      }
+      catch (IllegalStateException e)
+      {
+         throw new NoSuchClassLoaderException(e);
+      }
+   }
+
+   /**
+    * Checks that this the loader corresponding to {@code classLoaderBuilder} is no longer
+    * available on the test scenario.
+    * 
+    * @param classLoaderBuilder identifies the loader that is going to be verified
+    * @throws Exception
+    */
+   public void cannotGetLoader(CLDeploymentBuilder classLoaderBuilder) throws Exception
+   {
+      String name = getContextName(classLoaderBuilder.getMetaDataFactory());
+      try
+      {
+         Object bean = microcontainer.getBean(name, null);
+         if (bean != null)
+            Assert.fail("Should not be here: " + bean);
+      }
+      catch (Throwable t)
+      {
+         AbstractTestCase.checkThrowable(IllegalStateException.class, t);
+      }
+   }
+   
+   public void destroyLoader(CLDeploymentBuilder classLoaderBuilder)
+         throws Exception
+   {
+      loaderRegistry.unregisterDeployment(classLoaderBuilder);
+      microcontainer.undeploy(classLoaderBuilder.undeploy());
+      cannotGetLoader(classLoaderBuilder);
+   }
+
+   public Collection<ClassLoader> getCreatedClassLoaders()
+   {
+      return loaderRegistry.getClassLoaders();
+   }
+   
+   public void destroyLoaders()
+   {
+      destroyClassLoaders();
+      unregisterDomains();
+      assertCannotLoadSupportClasses();
+   }
+   
+   /************* HELPER METHODS **********************************************************/
+   
+   private void assertCannotLoadSupportClasses()
+   {
+      ClassLoaderDomain domain = system.getDefaultDomain();
+      for (String className: SupportClasses.getAllSupportClasses())
+      {
+         try
+         {
+            Class<?> clazz = domain.loadClass(className);
+            if (clazz == null)
+            {
+               continue;
+            }
+            Assert.fail("Should not have been able to load " + className);
+         }
+         catch(Exception expected)
+         {
+         }
+      }
+   }
+
+   private void unregisterDomains()
+   {
+      for(Map.Entry<String, ClassLoaderDomain> entry: DomainRegistry.clear().entrySet())
+      {
+         ClassLoaderDomain domain = entry.getValue();
+         if (domain != null)
+         {
+            Logger.getLogger(AbstractTestCase.class).debug("Unregistering domain " + domain);
+            ClassLoaderDomain registeredDomain = system.getDomain(domain.getName());
+            if (registeredDomain == null)
+               throw new IllegalStateException("Domain is not registered: " + domain.getName());
+            if (registeredDomain != domain)
+               throw new IllegalStateException(domain + " is not the same as " + registeredDomain);
+         }
+         else
+         {
+            domain = system.getDomain(entry.getKey());
+            if (domain == null)
+            {
+               continue;
+            }
+         }
+         system.unregisterDomain(domain);
+      }
+   }
+
+   private void destroyClassLoaders()
+   {
+      for (ClassLoader classLoader: loaderRegistry.getClassLoaders())
+      {
+         destroy(classLoader);
+         try
+         {
+            Object bean = microcontainer.getBean(((BaseClassLoader) classLoader).getName(), null);
+            if (bean != null)
+               Assert.fail("Should not be here: " + bean);
+         }
+         catch (Throwable t)
+         {
+            AbstractTestCase.checkThrowable(IllegalStateException.class, t);
+         }
+      }
+   }
+
+   
+   protected void destroy(ClassLoader classLoader)
+   {
+      KernelDeployment deployment = loaderRegistry.unregisterDeployment(classLoader);
+      microcontainer.undeploy(deployment);
+   }
+   
+   private String getContextName(VFSClassLoaderFactory factory)
+   {
+      String contextName = factory.getContextName();
+      if (contextName == null)
+         contextName = factory.getName() + ":" + factory.getVersion();
+      return contextName;
+   }
+}


Property changes on: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/JBossCLFactory.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/SanityTestScenario.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/SanityTestScenario.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/SanityTestScenario.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -1,83 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.test.classpool.jbosscl.support;
-
-import junit.framework.Assert;
-
-import org.jboss.test.classpool.support.MicrocontainerFacade;
-
-/**
- * This scenario is used by sanity tests, i.e., tests that check whether the class loaders
- * represented by class pools actually behave as expected.
- * 
- * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
- * @version $Revision$
- */
-public class SanityTestScenario extends TestScenario<Class<?>, ClassLoader>
-{
-   
-   public SanityTestScenario(MicrocontainerFacade microcontainer)
-   {
-      super(microcontainer);
-   }
-   
-   @Override
-   public ClassLoader getLoader(Class<?> clazz)
-   {
-      return clazz.getClassLoader();
-   }
-   
-   @Override
-   public ClassLoader getLoader(ClassLoader classLoader)
-   {
-      return classLoader;
-   }
-   
-   @Override
-   public ClassLoader getClassLoader(ClassLoader loader)
-   {
-      return loader;
-   }
-   
-   @Override
-   public Class<?> loadClass(ClassLoader loader, ClassLoader expected, String className) throws Exception
-   {
-      return assertLoadClass(className, loader, expected);
-   }
-   
-   @Override
-   public void cannotLoadClass(ClassLoader classLoader, String className)
-   {
-      try
-      {
-         classLoader.loadClass(className);
-         Assert.fail("Should not have been able to load " + className);
-      }
-      catch(ClassNotFoundException expected){}
-   }
-
-   @Override
-   public Class<?> getMethodReturnType(Class<?> clazz, String methodName) throws Exception
-   {
-      return clazz.getDeclaredMethod(methodName).getReturnType();
-   }
-}
\ No newline at end of file

Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/TestScenario.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/TestScenario.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/TestScenario.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -1,338 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.test.classpool.jbosscl.support;
-
-import java.util.Map;
-
-import junit.framework.Assert;
-
-import org.jboss.classloader.spi.ClassLoaderDomain;
-import org.jboss.classloader.spi.ClassLoaderSystem;
-import org.jboss.classloader.spi.base.BaseClassLoader;
-import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
-import org.jboss.classpool.plugins.as5.VFSClassLoaderDomainRegistry;
-import org.jboss.kernel.spi.deployment.KernelDeployment;
-import org.jboss.logging.Logger;
-import org.jboss.test.AbstractTestCase;
-import org.jboss.test.classpool.support.MicrocontainerFacade;
-import org.jboss.test.classpool.support.SupportClasses;
-
-/**
- * Abstracts the concept of loader (L) and classes (C).
- * This class allows the implementation of tests that don't rely on the actual type of
- * L and C.
- * 
- * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
- * @version $Revision$
- * @see SanityTestScenario
- * @see ClassPoolTestScenario
- */
-
-public abstract class TestScenario<C,L>
-{
-   /** The classloader helper */
-   protected ClassLoaderSystem system;
-   /** The domain registry */
-   protected VFSClassLoaderDomainRegistry domainRegistry;
-   /** The Microcontanier Facade */
-   private MicrocontainerFacade microcontainer;
-   /** The loader registry */
-   private LoaderRegistry loaderRegistry;
-   
-   /**
-    * Constructor.
-    * 
-    * @param mc used by this test to perform deploy/undeploy operations
-    */
-   public TestScenario(MicrocontainerFacade mc)
-   {
-      this.microcontainer = mc;
-      this.system = (ClassLoaderSystem) mc.getBean("ClassLoaderSystem");
-      domainRegistry = (VFSClassLoaderDomainRegistry) mc.getBean("ClassLoaderScopingPolicy");
-      this.loaderRegistry = new LoaderRegistry(mc);
-   }
-   
-   /**
-    * Creates a loader.
-    * 
-    * @param classLoaderBuilder the class loader deployment builder that contains all
-    *                           the info necessary for the creation of a loader
-    * @return                   the created loader
-    * @throws NoSuchClassLoaderException indicates that the deployment is not sucessfull. The
-    *                                    class loader is not created at this moment
-    * @throws Exception any erros that should not be treated
-    */
-   public L createLoader(CLDeploymentBuilder classLoaderBuilder) throws NoSuchClassLoaderException, Exception
-   {
-      KernelDeployment deployment = classLoaderBuilder.createDeployment();
-      microcontainer.deploy(deployment);
-      VFSClassLoaderFactory factory = classLoaderBuilder.getMetaDataFactory();
-      factory.setContextName(getContextName(factory));
-      loaderRegistry.registerDeployment(classLoaderBuilder);
-      ClassLoader classLoader = getClassLoader(classLoaderBuilder);
-      return getLoader(classLoader);
-   }
-   
-   /**
-    * Destroys the loader corresponding to classLoaderBuilder.
-    * This method can be invoked only after the loader has been
-    * {@link #createLoader(CLDeploymentBuilder) created}.
-    * 
-    * @param classLoaderBuilder           contains information regarding the loader to be
-    *                                     destroyed.
-    * @throws Exception
-    * @see #createLoader(CLDeploymentBuilder)
-    */
-   public void destroyLoader(CLDeploymentBuilder classLoaderBuilder) throws Exception
-   {
-      loaderRegistry.unregisterDeployment(classLoaderBuilder);
-      microcontainer.undeploy(classLoaderBuilder.undeploy());
-      cannotGetLoader(classLoaderBuilder);
-   }
-   
-   /**
-    * Destroy all loaders that have been created so far (except for loaders that have already
-    * been {@link #destroyLoader(CLDeploymentBuilder) destroyed}).
-    */
-   public void destroyLoaders()
-   {
-      destroyClassLoaders();
-      unregisterDomains();
-      assertCannotLoaderSupportClasses();
-   }
-
-   /**
-    * Returns the loader corresponding to {@code classLoaderBuilder}. This method can be
-    * invoked only after {@code #createLoader(CLDeploymentBuilder)}.
-    * 
-    * @param classLoaderBuilder   contains all the info related to the loader to be retrieved
-    * @return                     the loader equivalent to {@code classLoaderBuilder}
-    * @throws Exception
-    * @see {@link #createLoader(CLDeploymentBuilder)}
-    */
-   public L getLoader(CLDeploymentBuilder classLoaderBuilder) throws Exception
-   {
-      ClassLoader classLoader = getClassLoader(classLoaderBuilder);
-      return getLoader(classLoader);
-   }
-   
-   /**
-    * Checks that this the loader corresponding to {@code classLoaderBuilder} is no longer
-    * available on the test scenario.
-    * 
-    * @param classLoaderBuilder identifies the loader that is going to be verified
-    * @throws Exception
-    */
-   public void cannotGetLoader(CLDeploymentBuilder classLoaderBuilder) throws Exception
-   {
-      String name = getContextName(classLoaderBuilder.getMetaDataFactory());
-      try
-      {
-         Object bean = microcontainer.getBean(name, null);
-         if (bean != null)
-            Assert.fail("Should not be here: " + bean);
-      }
-      catch (Throwable t)
-      {
-         AbstractTestCase.checkThrowable(IllegalStateException.class, t);
-      }
-   }
-   
-   /**
-    * Returns the loader that loaded {@code clazz}.
-    * 
-    * @param clazz a class that has been previously loaded
-    * @return the loader that loaded {@code clazz}
-    */
-   public abstract L getLoader(C clazz);
-   
-   /**
-    * Returns the loader corresponding to {@code classLoader}.
-    * 
-    * @param classLoader a class loader
-    * @return the loader that represents {code classLoader}
-    */
-   public abstract L getLoader(ClassLoader classLoader);
-   
-   /**
-    * Returns the class loader corresponding to {@code loader}.
-    * 
-    * @param loader a loader
-    * @return  the class loader that is represented by loader
-    */
-   public abstract ClassLoader getClassLoader(L loader);
-   
-   /**
-    * Checks that {@code loader} can load {@code className} and returns the loaded class.
-    * Also verifies that the loader associated with the loaded class is {@code loader}.
-    * 
-    * @param loader     a loader
-    * @param className  the name of the class to be loaded
-    * @return           the class loaded by {@code loader}
-    * @throws Exception
-    */
-   public C loadClass(L loader, String className) throws Exception
-   {
-      return loadClass(loader, loader, className);
-   }
-   
-   /**
-    * Checks that {@code loader} can load {@code className} and returns the loaded class.
-    * Also verifies that the loader associated with the loaded class is {@code expected}.
-    * 
-    * @param initiating    the loader that will be used for loading {@code className}
-    * @param expected      the actual loader that is associated with the loaded class
-    * @param className  the name of the class to be loaded
-    * @return           the loaded class
-    * @throws Exception
-    */
-   public abstract C loadClass(L initiating, L expected, String className) throws Exception;
-   
-   /**
-    * Checks that {@code loader} cannot load class {@code className}.
-    * 
-    * @param loader    a loader
-    * @param className the name of the class that can't be loaded by {@code loader}
-    */
-   public abstract void cannotLoadClass(L loader, String className);
-   
-   /**
-    * Returns the return type of a method declared in {@code clazz}.
-    * 
-    * @param clazz      the class that contains the method
-    * @param methodName the name of the method
-    * @return           the return type of the method
-    * @throws Exception
-    */
-   public abstract C getMethodReturnType(C clazz, String methodName) throws Exception;
-   
-   
-   
-   /************* HELPER METHODS **********************************************************/
-   
-   protected ClassLoader getClassLoader(CLDeploymentBuilder classLoaderBuilder)
-   throws Exception
-   {
-      VFSClassLoaderFactory factory = classLoaderBuilder.getMetaDataFactory();
-      try
-      {
-         Object obj = microcontainer.getBean(factory.getContextName());
-         Assert.assertTrue(obj instanceof ClassLoader);
-         ClassLoader classLoader = (ClassLoader) obj;
-         loaderRegistry.registerClassLoader(classLoader, classLoaderBuilder);
-         return classLoader;
-      }
-      catch (IllegalStateException e)
-      {
-         throw new NoSuchClassLoaderException(e);
-      }
-   }
-   
-   private void assertCannotLoaderSupportClasses()
-   {
-      ClassLoaderDomain domain = system.getDefaultDomain();
-      for (String className: SupportClasses.getAllSupportClasses())
-      {
-         try
-         {
-            Class<?> clazz = domain.loadClass(className);
-            if (clazz == null)
-            {
-               continue;
-            }
-            Assert.fail("Should not have been able to load " + className);
-         }
-         catch(Exception expected)
-         {
-         }
-      }
-   }
-
-   private void unregisterDomains()
-   {
-      for(Map.Entry<String, ClassLoaderDomain> entry: DomainRegistry.clear().entrySet())
-      {
-         ClassLoaderDomain domain = entry.getValue();
-         if (domain != null)
-         {
-            Logger.getLogger(AbstractTestCase.class).debug("Unregistering domain " + domain);
-            ClassLoaderDomain registeredDomain = system.getDomain(domain.getName());
-            if (registeredDomain == null)
-               throw new IllegalStateException("Domain is not registered: " + domain.getName());
-            if (registeredDomain != domain)
-               throw new IllegalStateException(domain + " is not the same as " + registeredDomain);
-         }
-         else
-         {
-            domain = system.getDomain(entry.getKey());
-            if (domain == null)
-            {
-               continue;
-            }
-         }
-         system.unregisterDomain(domain);
-      }
-   }
-
-   private void destroyClassLoaders()
-   {
-      for (ClassLoader classLoader: loaderRegistry.getClassLoaders())
-      {
-         destroy(classLoader);
-         try
-         {
-            Object bean = microcontainer.getBean(((BaseClassLoader) classLoader).getName(), null);
-            if (bean != null)
-               Assert.fail("Should not be here: " + bean);
-         }
-         catch (Throwable t)
-         {
-            AbstractTestCase.checkThrowable(IllegalStateException.class, t);
-         }
-      }
-   }
-
-   
-   protected Class<?> assertLoadClass(String className, ClassLoader initiating, ClassLoader expected) throws Exception
-   {
-      Class<?> clazz = initiating.loadClass(className);
-      if (expected != null)
-      {
-         Assert.assertSame(expected, clazz.getClassLoader());
-      }
-      return clazz;
-   }
-   
-   protected void destroy(ClassLoader classLoader)
-   {
-      KernelDeployment deployment = loaderRegistry.unregisterDeployment(classLoader);
-      microcontainer.undeploy(deployment);
-   }
-   
-   private String getContextName(VFSClassLoaderFactory factory)
-   {
-      String contextName = factory.getContextName();
-      if (contextName == null)
-         contextName = factory.getName() + ":" + factory.getVersion();
-      return contextName;
-   }
-}
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassPoolTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassPoolTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -26,8 +26,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 /**
  * Executes the archive tests against a class pool test scenario.
@@ -48,8 +49,8 @@
    }
    
    @Override
-   protected TestScenario<CtClass, ClassPool> getTestScenario()
+   protected TestScenario<CtClass, ClassPool, CLDeploymentBuilder> getTestScenario()
    {
-      return new ClassPoolTestScenario(getMicrocontainerFacade());
+      return new ClassPoolTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveSanityTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveSanityTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveSanityTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -24,8 +24,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.SanityTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 /**
  * Executes the archive tests against a sanity test scenario (for class loader behavior sanity
@@ -47,8 +48,8 @@
    }
 
    @Override
-   protected TestScenario<Class<?>, ClassLoader> getTestScenario()
+   protected TestScenario<Class<?>, ClassLoader, CLDeploymentBuilder> getTestScenario()
    {
-      return new SanityTestScenario(getMicrocontainerFacade());
+      return new SanityTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainClassPoolTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainClassPoolTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -26,8 +26,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 
 /**
@@ -37,7 +38,7 @@
  * @version $Revision$
  */
 public class HierarchicalDomainClassPoolTestCase extends
-      HierarchicalDomainTest<CtClass, ClassPool>
+   HierarchicalDomainTest<CtClass, ClassPool>
 {
    public static Test suite()
    {
@@ -50,8 +51,8 @@
    }
    
    @Override
-   protected TestScenario<CtClass, ClassPool> getTestScenario()
+   protected TestScenario<CtClass, ClassPool, CLDeploymentBuilder> getTestScenario()
    {
-      return new ClassPoolTestScenario(getMicrocontainerFacade());
+      return new ClassPoolTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainSanityTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainSanityTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainSanityTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -24,8 +24,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.SanityTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 
 /**
@@ -49,8 +50,8 @@
    }
    
    @Override
-   protected TestScenario<Class<?>, ClassLoader> getTestScenario()
+   protected TestScenario<Class<?>, ClassLoader, CLDeploymentBuilder> getTestScenario()
    {
-      return new SanityTestScenario(getMicrocontainerFacade());
+      return new SanityTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderClassPoolTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderClassPoolTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -26,8 +26,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 
 /**
@@ -48,12 +49,10 @@
    {
       super(name);
    }
-   /* (non-Javadoc)
-    * @see org.jboss.test.classpool.jbosscl.test.HierarchicalParentLoaderTest#getTestScenario()
-    */
+
    @Override
-   protected TestScenario<CtClass, ClassPool> getTestScenario()
+   protected TestScenario<CtClass, ClassPool, CLDeploymentBuilder> getTestScenario()
    {
-      return new ClassPoolTestScenario(getMicrocontainerFacade());
+      return new ClassPoolTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderSanityTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderSanityTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderSanityTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -24,8 +24,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.SanityTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 
 
@@ -50,8 +51,8 @@
    }
    
    @Override
-   protected TestScenario<Class<?>, ClassLoader> getTestScenario()
+   protected TestScenario<Class<?>, ClassLoader, CLDeploymentBuilder> getTestScenario()
    {
-      return new SanityTestScenario(getMicrocontainerFacade());
+      return new SanityTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -28,9 +28,12 @@
 import org.jboss.dependency.spi.ControllerState;
 import org.jboss.kernel.spi.deployment.KernelDeployment;
 import org.jboss.test.AbstractTestCaseWithSetup;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.jbosscl.support.JBossCLFactory;
+import org.jboss.test.classpool.support.ClassLoaderFactory;
 import org.jboss.test.classpool.support.MicrocontainerFacade;
 import org.jboss.test.classpool.support.SupportClasses;
+import org.jboss.test.classpool.support.TestScenario;
 import org.jboss.test.kernel.junit.MicrocontainerTest;
 import org.jboss.virtual.VFS;
 
@@ -76,9 +79,9 @@
    
    /****** OVERRIDDEN METHODS ***************************************************************/
 
-   protected TestScenario<C, L> testScenario; 
+   protected TestScenario<C, L, CLDeploymentBuilder> testScenario; 
    
-   protected abstract TestScenario<C, L> getTestScenario();
+   protected abstract TestScenario<C, L, CLDeploymentBuilder> getTestScenario();
    
    @Override
    protected void setUp() throws Exception
@@ -133,8 +136,13 @@
    
    /****** AUXILIARY INTERNAL CLASS *****************************************************/
    
-   protected MicrocontainerFacade getMicrocontainerFacade()
+   protected ClassLoaderFactory<CLDeploymentBuilder> getClassLoaderFactory()
    {
+      return new JBossCLFactory(getMicrocontainerFacade());
+   }
+   
+   private MicrocontainerFacade getMicrocontainerFacade()
+   {
       return new MicrocontainerFacadeImpl();
    }
    

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencyClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencyClassPoolTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencyClassPoolTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -26,8 +26,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 
 /**
@@ -49,8 +50,8 @@
    }
    
    @Override
-   protected TestScenario<CtClass, ClassPool> getTestScenario()
+   protected TestScenario<CtClass, ClassPool, CLDeploymentBuilder> getTestScenario()
    {
-      return new ClassPoolTestScenario(getMicrocontainerFacade());
+      return new ClassPoolTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencySanityTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencySanityTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencySanityTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -24,8 +24,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.SanityTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 /**
  * Executes the module dependency tests against a sanity test scenario (for class loader
@@ -47,8 +48,8 @@
    }
    
    @Override
-   protected TestScenario<Class<?>, ClassLoader> getTestScenario()
+   protected TestScenario<Class<?>, ClassLoader, CLDeploymentBuilder> getTestScenario()
    {
-      return new SanityTestScenario(getMicrocontainerFacade());
+      return new SanityTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencyClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencyClassPoolTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencyClassPoolTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -26,8 +26,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 /**
  * Executes the package dependency tests against a class pool test scenario.
@@ -35,8 +36,7 @@
  * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
  * @version $Revision$
  */
-public class PackageDependencyClassPoolTestCase extends
-   PackageDependencyTest<CtClass, ClassPool>
+public class PackageDependencyClassPoolTestCase extends PackageDependencyTest<CtClass, ClassPool>
 {
    public static Test suite()
    {
@@ -49,8 +49,8 @@
    }
 
    @Override
-   protected TestScenario<CtClass, ClassPool> getTestScenario()
+   protected TestScenario<CtClass, ClassPool, CLDeploymentBuilder> getTestScenario()
    {
-      return new ClassPoolTestScenario(getMicrocontainerFacade());
+      return new ClassPoolTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencySanityTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencySanityTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencySanityTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -24,8 +24,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.SanityTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 /**
  * Executes the package dependency tests against a sanity test scenario (for class loader
@@ -34,8 +35,7 @@
  * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
  * @version $Revision$
  */
-public class PackageDependencySanityTestCase extends
-   PackageDependencyTest<Class<?>, ClassLoader>
+public class PackageDependencySanityTestCase extends PackageDependencyTest<Class<?>, ClassLoader>
 {
    public static Test suite()
    {
@@ -49,8 +49,8 @@
    
    
    @Override
-   protected TestScenario<Class<?>, ClassLoader> getTestScenario()
+   protected TestScenario<Class<?>, ClassLoader, CLDeploymentBuilder> getTestScenario()
    {
-      return new SanityTestScenario(getMicrocontainerFacade());
+      return new SanityTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleClassPoolTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleClassPoolTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -26,8 +26,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 
 /**
@@ -50,8 +51,8 @@
    }
 
    @Override
-   protected TestScenario<CtClass, ClassPool> getTestScenario()
+   protected TestScenario<CtClass, ClassPool, CLDeploymentBuilder> getTestScenario()
    {
-      return new ClassPoolTestScenario(getMicrocontainerFacade());
+      return new ClassPoolTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleSanityTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleSanityTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleSanityTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -24,8 +24,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.SanityTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 
 /**
@@ -35,8 +36,7 @@
  * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
  * @version $Revision$
  */
-public class ReExportModuleSanityTestCase extends
-      ReExportModuleTest<Class<?>, ClassLoader>
+public class ReExportModuleSanityTestCase extends ReExportModuleTest<Class<?>, ClassLoader>
 {
    public static Test suite()
    {
@@ -49,8 +49,8 @@
    }
 
    @Override
-   protected TestScenario<Class<?>, ClassLoader> getTestScenario()
+   protected TestScenario<Class<?>, ClassLoader, CLDeploymentBuilder> getTestScenario()
    {
-      return new SanityTestScenario(getMicrocontainerFacade());
+      return new SanityTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageClassPoolTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageClassPoolTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -26,8 +26,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 /**
  * Executes the ReExportPackage tests against a class pool test scenario.
@@ -49,8 +50,8 @@
    }
 
    @Override
-   protected TestScenario<CtClass, ClassPool> getTestScenario()
+   protected TestScenario<CtClass, ClassPool, CLDeploymentBuilder> getTestScenario()
    {
-      return new ClassPoolTestScenario(getMicrocontainerFacade());
+      return new ClassPoolTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageSanityTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageSanityTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageSanityTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -24,8 +24,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.SanityTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 
 /**
@@ -35,8 +36,7 @@
  * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
  * @version $Revision$
  */
-public class ReExportPackageSanityTestCase extends
-      ReExportPackageTest<Class<?>, ClassLoader>
+public class ReExportPackageSanityTestCase extends ReExportPackageTest<Class<?>, ClassLoader>
 {
    public static Test suite()
    {
@@ -49,8 +49,8 @@
    }
 
    @Override
-   protected TestScenario<Class<?>, ClassLoader> getTestScenario()
+   protected TestScenario<Class<?>, ClassLoader, CLDeploymentBuilder> getTestScenario()
    {
-      return new SanityTestScenario(getMicrocontainerFacade());
+      return new SanityTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReplaceReferencesClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReplaceReferencesClassPoolTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReplaceReferencesClassPoolTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -45,9 +45,9 @@
 import org.jboss.classloading.spi.DomainClassLoader;
 import org.jboss.classpool.spi.ClassPoolRepository;
 import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
-import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.support.ClassPoolTestScenario;
 import org.jboss.test.classpool.support.SupportClasses;
+import org.jboss.test.classpool.support.TestScenario;
 import org.jboss.util.loading.Translator;
 
 /**
@@ -76,9 +76,9 @@
    }
    
    @Override
-   protected TestScenario<CtClass, ClassPool> getTestScenario()
+   protected TestScenario<CtClass, ClassPool, CLDeploymentBuilder> getTestScenario()
    {
-      return new ClassPoolTestScenario(getMicrocontainerFacade());
+      return new ClassPoolTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
    
    @Override

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositoryClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositoryClassPoolTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositoryClassPoolTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -36,9 +36,9 @@
 import junit.framework.TestSuite;
 
 import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
-import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
 import org.jboss.test.classpool.support.ClassFactory;
+import org.jboss.test.classpool.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 /**
  * Executes the repository tests against a class pool test scenario.
@@ -60,9 +60,9 @@
    }
    
    @Override
-   protected TestScenario<CtClass, ClassPool> getTestScenario()
+   protected TestScenario<CtClass, ClassPool, CLDeploymentBuilder> getTestScenario()
    {
-      return new ClassPoolTestScenario(getMicrocontainerFacade());
+      return new ClassPoolTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
    
    public void testCanLoadArrayCtClass() throws Exception

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositorySanityTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositorySanityTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositorySanityTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -24,8 +24,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.SanityTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 /**
  * Executes the repository tests against a sanity test scenario (for class loader behavior
@@ -47,8 +48,8 @@
    }
 
    @Override
-   protected TestScenario<Class<?>, ClassLoader> getTestScenario()
+   protected TestScenario<Class<?>, ClassLoader, CLDeploymentBuilder> getTestScenario()
    {
-      return new SanityTestScenario(getMicrocontainerFacade());
+      return new SanityTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageClassPoolTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageClassPoolTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -26,8 +26,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 
 /**
@@ -49,8 +50,8 @@
    }
 
    @Override
-   protected TestScenario<CtClass, ClassPool> getTestScenario()
+   protected TestScenario<CtClass, ClassPool, CLDeploymentBuilder> getTestScenario()
    {
-      return new ClassPoolTestScenario(getMicrocontainerFacade());
+      return new ClassPoolTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageSanityTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageSanityTestCase.java	2009-12-01 23:44:03 UTC (rev 97267)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageSanityTestCase.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -24,8 +24,9 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
-import org.jboss.test.classpool.jbosscl.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.SanityTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
 
 
 /**
@@ -48,8 +49,8 @@
    }
 
    @Override
-   protected TestScenario<Class<?>, ClassLoader> getTestScenario()
+   protected TestScenario<Class<?>, ClassLoader, CLDeploymentBuilder> getTestScenario()
    {
-      return new SanityTestScenario(getMicrocontainerFacade());
+      return new SanityTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
    }
 }
\ No newline at end of file

Added: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderFactory.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderFactory.java	                        (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderFactory.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.classpool.support;
+
+import java.util.Collection;
+
+
+/**
+ * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
+ *
+ * @version $Revision$
+ */
+
+public interface ClassLoaderFactory<I extends ClassLoaderInfo>
+{
+   public ClassLoader create(I classLoaderInfo) throws Exception;
+   public ClassLoader getClassLoader(I classLoaderInfo) throws Exception;
+   public void destroyLoader(I classLoaderInfo) throws Exception;
+   public void destroyLoaders();
+   public Collection<ClassLoader> getCreatedClassLoaders();
+   
+   /**
+    * Checks that this the loader corresponding to {@code classLoaderBuilder} is no longer
+    * available on the test scenario.
+    * 
+    * @param classLoaderBuilder identifies the loader that is going to be verified
+    * @throws Exception
+    */
+   public void cannotGetLoader(I classLoaderInfo) throws Exception;
+}
\ No newline at end of file


Property changes on: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderFactory.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Added: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderInfo.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderInfo.java	                        (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderInfo.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.classpool.support;
+
+/**
+ * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
+ *
+ * @version $Revision$
+ */
+
+public interface ClassLoaderInfo
+{
+   
+}


Property changes on: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderInfo.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Added: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassPoolTestScenario.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassPoolTestScenario.java	                        (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassPoolTestScenario.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -0,0 +1,197 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.classpool.support;
+
+import java.net.URL;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import javassist.ClassPool;
+import javassist.CtClass;
+import javassist.NotFoundException;
+import junit.framework.Assert;
+
+import org.jboss.classpool.spi.ClassPoolRepository;
+
+/**
+ * This scenario is used by class pool test cases. All the operations performed using this
+ * scenario are executed over CtClasses and ClassPools.
+ * 
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
+ * @version $Revision$
+ */
+public class ClassPoolTestScenario<I extends ClassLoaderInfo> extends TestScenario<CtClass, ClassPool, I>
+{
+   /** The ClassPool repository */
+   protected ClassPoolRepository repository;
+   
+   
+   public ClassPoolTestScenario(ClassLoaderFactory<I> classLoaderFactory)
+   {
+      super(classLoaderFactory);
+      repository = ClassPoolRepository.getInstance();
+   }
+   
+   @Override
+   public ClassPool getLoader(CtClass clazz)
+   {
+      return assertRegisterClassLoader(clazz.getClassPool().getClassLoader());
+   }
+   
+   @Override
+   public ClassPool getLoader(ClassLoader classLoader)
+   {
+      return assertRegisterClassLoader(classLoader);
+   }
+   
+   @Override
+   public ClassLoader getClassLoader(ClassPool classPool)
+   {
+      return classPool.getClassLoader();
+   }
+   
+   @Override
+   public CtClass loadClass(ClassPool classPool, ClassPool expectedClassPool, String className)
+      throws Exception
+   {
+      Class<?> clazz = assertLoadClass(className, classPool.getClassLoader(), expectedClassPool.getClassLoader());
+      CtClass ctClass = assertLoadCtClass(className, classPool, expectedClassPool);
+      Assert.assertEquals(className, ctClass.getName());
+      Assert.assertEquals("Class has been loaded by the wrong class loader: " + className,
+            clazz.getClassLoader(), ctClass.getClassPool().getClassLoader());
+      return ctClass;
+   }
+   
+   @Override
+   public void cannotLoadClass(ClassPool classPool, String className)
+   {
+      try
+      {
+         classPool.getCtClass(className);
+         Assert.fail("Should not have been able to load " + className);
+      }
+      catch(NotFoundException expected){}
+   }
+   
+   @Override
+   public CtClass getMethodReturnType(CtClass clazz, String methodName) throws Exception
+   {
+      return clazz.getDeclaredMethod(methodName).getReturnType();
+   }
+   
+   /********* HELPER METHODS ***************************************************************/
+   
+   private ClassPool assertRegisterClassLoader(ClassLoader loader)
+   {
+      ClassPool classPool = repository.registerClassLoader(loader);
+      Assert.assertNotNull(classPool);
+      assertBootstrap(classPool, String.class, Class.class, ClassLoader.class, Object.class,
+            Collection.class, List.class, Map.class, URL.class);
+      return classPool;
+   }
+   
+   private void assertBootstrap(ClassPool classPool, Class<?>... classes)
+   {
+      assertSameClassPool(null, classPool, int.class, boolean.class, byte.class, short.class,
+            long.class, float.class, double.class, char.class, void.class);
+      assertSameClassPool(ClassPool.getDefault(), classPool, classes);
+      
+   }
+   
+   private void assertSameClassPool(ClassPool expectedClassPool, ClassPool classPool,
+         Class<?>... classes)
+   {
+      for (Class<?> clazz: classes)
+      {
+         CtClass ctClass = null;
+         try
+         {
+            ctClass = classPool.getCtClass(clazz.getName());
+         } catch (NotFoundException e)
+         {
+            e.printStackTrace();
+            Assert.fail(e.getMessage());
+         }
+         Assert.assertSame("Class " + clazz.getName() + " loaded by unexpected class pool ",
+               expectedClassPool, ctClass.getClassPool());
+      }
+   }
+   
+   protected CtClass assertLoadCtClass(String name, ClassPool initiating, ClassPool expected) throws Exception
+   {
+      CtClass clazz = initiating.get(name);
+      if (expected != null)
+      {
+         Assert.assertSame(expected, clazz.getClassPool());
+      }
+      //Load twice to test both create and cache
+      clazz = initiating.get(name);
+      if (expected != null)
+      {
+         Assert.assertSame(expected, clazz.getClassPool());
+      }
+      
+      assertLoadCtClassArray(name, clazz, initiating, expected);
+      
+      return clazz;
+   }
+   
+   private void assertLoadCtClassArray(String name, CtClass clazz, ClassPool initiating, ClassPool expected) throws Exception
+   {
+      assertLoadCtClassArray(name, clazz, 1, initiating, expected);
+      assertLoadCtClassArray(name, clazz, 2, initiating, expected);
+   }
+   
+   private void assertLoadCtClassArray(String name, CtClass clazz, int dimensions, ClassPool initiating, ClassPool expected) throws Exception
+   {
+      String arrayName = name;
+      for (int i = 0 ; i < dimensions ; i++)
+      {
+         arrayName = arrayName + "[]";
+      }
+      CtClass array = initiating.get(arrayName);
+      
+      if (expected != null)
+      {
+         Assert.assertSame(expected, array.getClassPool());
+      }
+      
+      Assert.assertSame(clazz.getClassPool(), array.getClassPool());
+      
+      CtClass type = array;
+      for (int i = 0 ; i < dimensions ; i++)
+      {
+         type = type.getComponentType();
+      }
+      Assert.assertSame(type, clazz);
+   }
+   
+   @Override
+   protected void preDestroy(Collection<ClassLoader> classLoaders)
+   {
+      for (ClassLoader classLoader: classLoaders)
+      {
+         repository.unregisterClassLoader(classLoader);
+      }
+   }
+}


Property changes on: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassPoolTestScenario.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Added: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SanityTestScenario.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SanityTestScenario.java	                        (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SanityTestScenario.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -0,0 +1,82 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.classpool.support;
+
+
+import junit.framework.Assert;
+
+/**
+ * This scenario is used by sanity tests, i.e., tests that check whether the class loaders
+ * represented by class pools actually behave as expected.
+ * 
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
+ * @version $Revision$
+ */
+public class SanityTestScenario<I extends ClassLoaderInfo> extends TestScenario<Class<?>, ClassLoader, I>
+{
+   
+   public SanityTestScenario(ClassLoaderFactory<I> classLoaderFactory)
+   {
+      super(classLoaderFactory);
+   }
+   
+   @Override
+   public ClassLoader getLoader(Class<?> clazz)
+   {
+      return clazz.getClassLoader();
+   }
+   
+   @Override
+   public ClassLoader getLoader(ClassLoader classLoader)
+   {
+      return classLoader;
+   }
+   
+   @Override
+   public ClassLoader getClassLoader(ClassLoader loader)
+   {
+      return loader;
+   }
+   
+   @Override
+   public Class<?> loadClass(ClassLoader loader, ClassLoader expected, String className) throws Exception
+   {
+      return assertLoadClass(className, loader, expected);
+   }
+   
+   @Override
+   public void cannotLoadClass(ClassLoader classLoader, String className)
+   {
+      try
+      {
+         classLoader.loadClass(className);
+         Assert.fail("Should not have been able to load " + className);
+      }
+      catch(ClassNotFoundException expected){}
+   }
+
+   @Override
+   public Class<?> getMethodReturnType(Class<?> clazz, String methodName) throws Exception
+   {
+      return clazz.getDeclaredMethod(methodName).getReturnType();
+   }
+}
\ No newline at end of file


Property changes on: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SanityTestScenario.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Added: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestScenario.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestScenario.java	                        (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestScenario.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -0,0 +1,204 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.classpool.support;
+
+import java.util.Collection;
+
+import org.jboss.test.classpool.jbosscl.support.NoSuchClassLoaderException;
+
+import junit.framework.Assert;
+
+
+/**
+ * Abstracts the concept of loader (L) and classes (C).
+ * This class allows the implementation of tests that don't rely on the actual type of
+ * L and C.
+ * 
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
+ * @version $Revision$
+ * @see SanityTestScenario
+ * @see ClassPoolTestScenario
+ */
+
+public abstract class TestScenario<C,L,I extends ClassLoaderInfo>
+{
+   /** The classloader factory */
+   private ClassLoaderFactory<I> classLoaderFactory;
+   
+   /**
+    * Constructor.
+    * 
+    * @param mc used by this test to perform deploy/undeploy operations
+    */
+   public TestScenario(ClassLoaderFactory<I> classLoaderFactory)
+   {
+      this.classLoaderFactory = classLoaderFactory;
+   }
+   
+   /**
+    * Creates a loader.
+    * 
+    * @param classLoaderBuilder contains all the info necessary for the creation of a loader
+    * @return                   the created loader
+    * @throws NoSuchClassLoaderException indicates that the deployment is not successful. The
+    *                                    class loader is not created at this moment
+    * @throws Exception any erros that should not be treated
+    */
+   public L createLoader(I classLoaderInfo) throws NoSuchClassLoaderException, Exception
+   {
+      ClassLoader classLoader = classLoaderFactory.create(classLoaderInfo);
+      return getLoader(classLoader);
+   }
+   
+   /**
+    * Destroys the loader corresponding to classLoaderBuilder.
+    * This method can be invoked only after the loader has been
+    * {@link #createLoader(I) created}.
+    * 
+    * @param classLoaderInfo contains information regarding the loader to be destroyed.
+    * @throws Exception
+    * @see #createLoader(I)
+    */
+   public void destroyLoader(I classLoaderInfo) throws Exception
+   {
+      classLoaderFactory.destroyLoader(classLoaderInfo);
+   }
+   
+   /**
+    * Destroy all loaders that have been created so far (except for loaders that have already
+    * been {@link #destroyLoader(I) destroyed}).
+    */
+   public void destroyLoaders()
+   {
+      preDestroy(classLoaderFactory.getCreatedClassLoaders());
+      classLoaderFactory.destroyLoaders();
+   }
+
+   /**
+    * Returns the loader corresponding to {@code classLoaderBuilder}. This method can be
+    * invoked only after {@code #createLoader(I)}.
+    * 
+    * @param classLoaderInfo   contains all the info related to the loader to be retrieved
+    * @return                  the loader equivalent to {@code classLoaderBuilder}
+    * @throws Exception
+    * @see {@link #createLoader(I)}
+    */
+   public L getLoader(I classLoaderInfo) throws Exception
+   {
+      ClassLoader classLoader = classLoaderFactory.getClassLoader(classLoaderInfo);
+      return getLoader(classLoader);
+   }
+   
+   /**
+    * Checks that this the loader corresponding to {@code classLoaderBuilder} is no longer
+    * available on the test scenario.
+    * 
+    * @param classLoaderInfo identifies the loader that is going to be verified
+    * @throws Exception
+    */
+   public void cannotGetLoader(I classLoaderInfo) throws Exception
+   {
+      classLoaderFactory.cannotGetLoader(classLoaderInfo);
+   }
+   
+   /**
+    * Returns the loader that loaded {@code clazz}.
+    * 
+    * @param clazz a class that has been previously loaded
+    * @return the loader that loaded {@code clazz}
+    */
+   public abstract L getLoader(C clazz);
+   
+   /**
+    * Returns the loader corresponding to {@code classLoader}.
+    * 
+    * @param classLoader a class loader
+    * @return the loader that represents {code classLoader}
+    */
+   public abstract L getLoader(ClassLoader classLoader);
+   
+   /**
+    * Returns the class loader corresponding to {@code loader}.
+    * 
+    * @param loader a loader
+    * @return  the class loader that is represented by loader
+    */
+   public abstract ClassLoader getClassLoader(L loader);
+   
+   /**
+    * Checks that {@code loader} can load {@code className} and returns the loaded class.
+    * Also verifies that the loader associated with the loaded class is {@code loader}.
+    * 
+    * @param loader     a loader
+    * @param className  the name of the class to be loaded
+    * @return           the class loaded by {@code loader}
+    * @throws Exception
+    */
+   public C loadClass(L loader, String className) throws Exception
+   {
+      return loadClass(loader, loader, className);
+   }
+   
+   /**
+    * Checks that {@code loader} can load {@code className} and returns the loaded class.
+    * Also verifies that the loader associated with the loaded class is {@code expected}.
+    * 
+    * @param initiating    the loader that will be used for loading {@code className}
+    * @param expected      the actual loader that is associated with the loaded class
+    * @param className  the name of the class to be loaded
+    * @return           the loaded class
+    * @throws Exception
+    */
+   public abstract C loadClass(L initiating, L expected, String className) throws Exception;
+   
+   /**
+    * Checks that {@code loader} cannot load class {@code className}.
+    * 
+    * @param loader    a loader
+    * @param className the name of the class that can't be loaded by {@code loader}
+    */
+   public abstract void cannotLoadClass(L loader, String className);
+   
+   /**
+    * Returns the return type of a method declared in {@code clazz}.
+    * 
+    * @param clazz      the class that contains the method
+    * @param methodName the name of the method
+    * @return           the return type of the method
+    * @throws Exception
+    */
+   public abstract C getMethodReturnType(C clazz, String methodName) throws Exception;
+   
+   protected Class<?> assertLoadClass(String className, ClassLoader initiating, ClassLoader expected) throws Exception
+   {
+      Class<?> clazz = initiating.loadClass(className);
+      if (expected != null)
+      {
+         Assert.assertSame(expected, clazz.getClassLoader());
+      }
+      return clazz;
+   }
+   
+   protected void preDestroy(Collection<ClassLoader> classLoaders)
+   {
+   }
+}
\ No newline at end of file


Property changes on: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestScenario.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

Added: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/UCLFactory.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/UCLFactory.java	                        (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/UCLFactory.java	2009-12-02 00:16:39 UTC (rev 97268)
@@ -0,0 +1,92 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.classpool.ucl.support;
+
+import java.util.Collection;
+
+import org.jboss.test.classpool.support.ClassLoaderFactory;
+import org.jboss.test.classpool.support.ClassLoaderInfo;
+
+/**
+ * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
+ *
+ * @version $Revision$
+ */
+
+public class UCLFactory<I extends ClassLoaderInfo> implements ClassLoaderFactory<I>
+{
+
+   /* (non-Javadoc)
+    * @see org.jboss.test.classpool.support.ClassLoaderFactory#cannotGetLoader(org.jboss.test.classpool.support.ClassLoaderInfo)
+    */
+   public void cannotGetLoader(I classLoaderInfo) throws Exception
+   {
+      // TODO Auto-generated method stub
+      
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.test.classpool.support.ClassLoaderFactory#create(org.jboss.test.classpool.support.ClassLoaderInfo)
+    */
+   public ClassLoader create(I classLoaderInfo) throws Exception
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.test.classpool.support.ClassLoaderFactory#destroyLoader(org.jboss.test.classpool.support.ClassLoaderInfo)
+    */
+   public void destroyLoader(I classLoaderInfo) throws Exception
+   {
+      // TODO Auto-generated method stub
+      
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.test.classpool.support.ClassLoaderFactory#destroyLoaders()
+    */
+   public void destroyLoaders()
+   {
+      // TODO Auto-generated method stub
+      
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.test.classpool.support.ClassLoaderFactory#getClassLoader(org.jboss.test.classpool.support.ClassLoaderInfo)
+    */
+   public ClassLoader getClassLoader(I classLoaderInfo) throws Exception
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see org.jboss.test.classpool.support.ClassLoaderFactory#getCreatedClassLoaders()
+    */
+   public Collection<ClassLoader> getCreatedClassLoaders()
+   {
+      // TODO Auto-generated method stub
+      return null;
+   }
+
+}


Property changes on: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/UCLFactory.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native




More information about the jboss-cvs-commits mailing list