[jboss-cvs] JBossAS SVN: r97265 - in projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool: jbosscl and 5 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Dec 1 18:18:07 EST 2009
Author: flavia.rainone at jboss.com
Date: 2009-12-01 18:18:06 -0500 (Tue, 01 Dec 2009)
New Revision: 97265
Added:
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/
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/ClassPoolTestScenario.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/support/LoaderRegistry.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/NoMatchClassFilter.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/NoSuchClassLoaderException.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
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/TestVFSClassLoaderFactory.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/TestVFSClassLoaderPolicyModule.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassFactory.java
Removed:
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/common/
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/CLDeploymentBuilder.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/DomainRegistry.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/LoaderRegistry.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/NoMatchClassFilter.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/NoSuchClassLoaderException.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/support/TestVFSClassLoaderFactory.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestVFSClassLoaderPolicyModule.java
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/ArchiveSanityTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveTest.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/DependencyTest.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/HierarchicalDomainTest.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/HierarchicalParentLoaderTest.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/ModuleDependencyTest.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/PackageDependencyTest.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/ReExportModuleTest.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/ReExportPackageTest.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportTest.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/RepositoryTest.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
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageTest.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ParentFirstDelegatingClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ParentLastDelegatingClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclDelegatingClassPoolTestCase.java
Log:
[JBREFLECT-74] Placed support classes in the appropriate packages.
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/CLDeploymentBuilder.java (from rev 97186, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/CLDeploymentBuilder.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/CLDeploymentBuilder.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/CLDeploymentBuilder.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -0,0 +1,392 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file 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.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import junit.framework.Assert;
+
+import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
+import org.jboss.classloader.spi.ClassLoaderSystem;
+import org.jboss.classloading.spi.metadata.Capability;
+import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;
+import org.jboss.classloading.spi.metadata.ClassLoadingMetaDataFactory;
+import org.jboss.classloading.spi.metadata.ExportAll;
+import org.jboss.classloading.spi.metadata.Requirement;
+import org.jboss.classloading.spi.version.VersionRange;
+import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
+import org.jboss.kernel.plugins.deployment.AbstractKernelDeployment;
+import org.jboss.kernel.spi.deployment.KernelDeployment;
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision$
+ */
+public class CLDeploymentBuilder
+{
+ private static ClassLoadingMetaDataFactory clmdf = ClassLoadingMetaDataFactory.getInstance();
+
+ List<Capability> capabilities = new ArrayList<Capability>();
+ List<Requirement> requirements = new ArrayList<Requirement>();
+
+ private String name;
+ private URL[] urls;
+ private URL[] excludes;
+ private boolean importAll;
+ private String domainName;
+ private String parentDomainName;
+ private boolean parentFirst;
+ private ClassLoader parent;
+ boolean domainDefined = false;
+ boolean domainCreated = false;
+
+ boolean deploymentCreated = false;
+ private KernelDeployment kernelDeployment = null;
+
+ private VFSClassLoaderFactory metaDataFactory;
+
+ public CLDeploymentBuilder(String name, URL... urls)
+ {
+ this.name = name;
+ this.urls = urls;
+ this.importAll = true;
+ }
+
+ private CLDeploymentBuilder() {
+
+ }
+
+ public static CLDeploymentBuilder getBuilder()
+ {
+ return new CLDeploymentBuilder();
+ }
+
+ public String getName()
+ {
+ return this.name;
+ }
+
+ public void setExcludes(URL... urls)
+ {
+ this.excludes = urls;
+ }
+
+ // TODO automatically call this after a createModule/createanything?
+ public void setImportAll(boolean importAll)
+ {
+ this.importAll = importAll;
+ }
+
+ // TODO set synchronized on all methods
+ public void createDomain(String domain, String parentDomain, boolean parentFirst)
+ {
+ if (DomainRegistry.contains(domain))
+ {
+ throw new IllegalStateException("Domain " + domain + " already exists");
+ }
+ DomainRegistry.registerDomain(domain);
+ domainCreated = true;
+ this.setDomain(domain, parentDomain, parentFirst);
+ }
+
+ public void createDomain(String domain, boolean parentFirst)
+ {
+ this.createDomain(domain, (String) null, parentFirst);
+ }
+
+ public boolean isDomainCreated()
+ {
+ 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);
+ this.setParent(parent);
+ }
+
+ public void setDomain(String domainName)
+ {
+ setDomain(domainName, null, false);
+ }
+
+ private void setDomain(String domain, String parentDomain, boolean parentFirst)
+ {
+ if (domainDefined)
+ {
+ throw new IllegalStateException("Duplicate definition of domain for CLDeployment " +
+ this.getName());
+ }
+ this.domainName = domain;
+ this.parentDomainName = parentDomain;
+ this.parentFirst = parentFirst;
+ domainDefined = true;
+ }
+
+ public String getDomain()
+ {
+ return this.domainName;
+ }
+
+ public void setParent(ClassLoader parent)
+ {
+ this.parent = parent;
+ }
+
+ public CLDeploymentBuilder createModule(String name)
+ {
+ capabilities.add(clmdf.createModule(name));
+ return this;
+ }
+
+ public CLDeploymentBuilder createModule(String name, Object version)
+ {
+ capabilities.add(clmdf.createModule(name, version));
+ return this;
+ }
+
+ public CLDeploymentBuilder createRequireModule(String name)
+ {
+ requirements.add(clmdf.createRequireModule(name, null));
+ return this;
+ }
+
+ public CLDeploymentBuilder createRequireModule(String name, VersionRange versionRange)
+ {
+ requirements.add(clmdf.createRequireModule(name, versionRange));
+ return this;
+ }
+
+ public CLDeploymentBuilder createRequireModule(String name, VersionRange versionRange, boolean optional, boolean reExport, boolean dynamic)
+ {
+ requirements.add(clmdf.createRequireModule(name, versionRange, optional, reExport, dynamic));
+ return this;
+ }
+
+ public CLDeploymentBuilder createPackage(String name)
+ {
+ capabilities.add(clmdf.createPackage(name));
+ return this;
+ }
+
+ public CLDeploymentBuilder createPackage(String name, Object version)
+ {
+ capabilities.add(clmdf.createPackage(name, version));
+ return this;
+ }
+
+ public CLDeploymentBuilder createRequirePackage(String name)
+ {
+ requirements.add(clmdf.createRequirePackage(name));
+ return this;
+ }
+
+ public CLDeploymentBuilder createRequirePackage(String name, VersionRange versionRange)
+ {
+ requirements.add(clmdf.createRequirePackage(name, versionRange));
+ return this;
+ }
+
+ public CLDeploymentBuilder createRequirePackage(String name, VersionRange versionRange, boolean optional, boolean reExport, boolean dynamic)
+ {
+ requirements.add(clmdf.createRequirePackage(name, versionRange, optional, reExport, dynamic));
+ return this;
+ }
+
+ public CLDeploymentBuilder createReExportModule(String name)
+ {
+ requirements.add(clmdf.createReExportModule(name));
+ return this;
+ }
+
+ public CLDeploymentBuilder createReExportModule(String name, VersionRange versionRange)
+ {
+ requirements.add(clmdf.createReExportModule(name, versionRange));
+ return this;
+ }
+
+ public CLDeploymentBuilder createReExportModule(String name, VersionRange versionRange, boolean optional)
+ {
+ requirements.add(clmdf.createReExportModule(name, versionRange, optional));
+ return this;
+ }
+
+ public CLDeploymentBuilder createReExportPackage(String name)
+ {
+ requirements.add(clmdf.createReExportPackage(name));
+ return this;
+ }
+
+ public CLDeploymentBuilder createReExportPackage(String name, VersionRange versionRange)
+ {
+ requirements.add(clmdf.createReExportPackage(name, versionRange));
+ return this;
+ }
+
+ public CLDeploymentBuilder createReExportPackage(String name, VersionRange versionRange, boolean optional)
+ {
+ requirements.add(clmdf.createReExportPackage(name, versionRange, optional));
+ return this;
+ }
+
+ public CLDeploymentBuilder createUsesPackage(String name)
+ {
+ requirements.add(clmdf.createUsesPackage(name));
+ return this;
+ }
+
+ public CLDeploymentBuilder createUsesPackage(String name, VersionRange versionRange)
+ {
+ requirements.add(clmdf.createUsesPackage(name, versionRange));
+ return this;
+ }
+
+ public CLDeploymentBuilder createUsesPackage(String name, VersionRange versionRange, boolean reExport)
+ {
+ requirements.add(clmdf.createUsesPackage(name, versionRange, reExport));
+ return this;
+ }
+
+ public synchronized KernelDeployment createDeployment()
+ {
+ Assert.assertFalse("Duplicate deployment created", deploymentCreated);
+ if (metaDataFactory == null)
+ {
+ metaDataFactory = createMetaDataFactory();
+ }
+ AbstractKernelDeployment deployment = new AbstractKernelDeployment();
+ deployment.setName(metaDataFactory.getName() + ":" + metaDataFactory.getVersion());
+ deployment.setBeanFactories(Collections.singletonList((BeanMetaDataFactory) metaDataFactory));
+ deploymentCreated = true;
+ this.kernelDeployment = deployment;
+ return deployment;
+ }
+
+ public synchronized KernelDeployment getDeployment()
+ {
+ return this.kernelDeployment;
+ }
+
+ public synchronized KernelDeployment undeploy()
+ {
+ this.deploymentCreated = false;
+ return this.kernelDeployment;
+ }
+
+ public VFSClassLoaderFactory getMetaDataFactory()
+ {
+ Assert.assertNotNull("MetaDataFactory can be retrieved only after deployment creation.",
+ metaDataFactory);
+ return metaDataFactory;
+ }
+
+ private VFSClassLoaderFactory createMetaDataFactory()
+ {
+
+ TestVFSClassLoaderFactory factory = new TestVFSClassLoaderFactory();
+ factory.setName(name);
+ factory.setImportAll(importAll);
+ if (importAll)
+ {
+ factory.setExportAll(ExportAll.NON_EMPTY);
+ }
+ factory.setRoots(urlsToStringList(urls));
+ factory.setExcludedRoots(urlsToStringList(excludes));
+
+ if (capabilities != null && !capabilities.isEmpty())
+ {
+ factory.getCapabilities().setCapabilities(capabilities);
+ }
+ if (requirements != null && !requirements.isEmpty())
+ {
+ factory.getRequirements().setRequirements(requirements);
+ }
+ setupDomain(factory, domainName, parentDomainName, parentFirst);
+ if (parent != null)
+ {
+ factory.setParent(parent);
+ }
+ return factory;
+ }
+
+
+ public ClassLoader getParent()
+ {
+ return this.parent;
+ }
+
+ private static void setupDomain(ClassLoadingMetaData md, String domainName, String parentDomainName, boolean parentFirst)
+ {
+ if (domainName != null)
+ {
+ md.setDomain(domainName);
+ md.setJ2seClassLoadingCompliance(parentFirst);
+ if (parentDomainName != null)
+ {
+ md.setParentDomain(parentDomainName);
+ }
+ else
+ {
+ md.setParentDomain(ClassLoaderSystem.DEFAULT_DOMAIN_NAME);
+ }
+ }
+ else
+ {
+ md.setDomain(ClassLoaderSystem.DEFAULT_DOMAIN_NAME);
+ }
+ }
+
+ public List<Capability> getCapabilities()
+ {
+ return capabilities;
+ }
+
+ public List<Requirement> getRequirements()
+ {
+ return requirements;
+ }
+
+ private static List<String> urlsToStringList(URL... urls)
+ {
+ if (urls == null)
+ {
+ return null;
+ }
+ List<String> urlList = new ArrayList<String>(urls.length);
+ if (urls.length > 0)
+ {
+ for (URL url : urls)
+ {
+ if (url != null)
+ {
+ urlList.add(url.toString());
+ }
+ }
+ }
+ return urlList;
+ }
+}
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/ClassPoolTestScenario.java (from rev 97186, 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/jbosscl/support/ClassPoolTestScenario.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/ClassPoolTestScenario.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -0,0 +1,196 @@
+/*
+ * 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);
+ }
+}
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/DomainRegistry.java (from rev 97186, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/DomainRegistry.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/DomainRegistry.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/DomainRegistry.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -0,0 +1,64 @@
+/*
+ * 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.HashMap;
+import java.util.Map;
+
+import org.jboss.classloader.spi.ClassLoaderDomain;
+
+/**
+ * All domains to be cleaned up should be registered here.
+ * This registry is automatically populated by
+ * {@link TestScenario#createLoader(CLDeploymentBuilder)}.
+ * However, if a test creates a domain manually, the domain must be registered here for
+ * proper clean up.
+ *
+ * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
+ * @version $Revision$
+ */
+public class DomainRegistry
+{
+ private static final Map<String, ClassLoaderDomain> domains = new HashMap<String, ClassLoaderDomain>();
+
+ public static synchronized boolean contains(String domainName)
+ {
+ return domains.containsKey(domainName);
+ }
+
+ public static synchronized void registerDomain(String domain)
+ {
+ domains.put(domain, null);
+ }
+
+ public static synchronized void registerDomain(ClassLoaderDomain domain)
+ {
+ domains.put(domain.getName(), domain);
+ }
+
+ public static synchronized Map<String, ClassLoaderDomain> clear()
+ {
+ Map<String, ClassLoaderDomain> registeredDomains = new HashMap<String, ClassLoaderDomain>(domains);
+ domains.clear();
+ return registeredDomains;
+ }
+}
\ No newline at end of file
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/LoaderRegistry.java (from rev 97187, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/LoaderRegistry.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/LoaderRegistry.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/LoaderRegistry.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -0,0 +1,157 @@
+/*
+ * 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.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+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.dependency.Module;
+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;
+
+/**
+ * Registry used by TestScenario to keep track of created class loaders and to perform
+ * proper cleanup.
+ *
+ * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
+ * @version $Revision$
+ */
+class LoaderRegistry
+{
+ /** The classloader helper */
+ protected ClassLoaderSystem system;
+
+ /** The domain registry */
+ protected VFSClassLoaderDomainRegistry domainRegistry;
+
+ /** The microcontainer facade */
+ private MicrocontainerFacade microcontainer;
+
+ /**
+ * Contains the same domains contained in domainRegistry. The difference is that
+ * this map is cleaned up later than domainRegistry.
+ */
+ private Map<ClassLoader, ClassLoaderDomain> scopedChildDomainsByLoader = new WeakHashMap<ClassLoader, ClassLoaderDomain>();
+
+ /** List of classLoaders */
+ private Map<String, ClassLoader> classLoaders = new HashMap<String, ClassLoader>();
+
+ /** Deployments */
+ private Map<String, KernelDeployment> deploymentsByName = new HashMap<String, KernelDeployment>();
+
+
+ public LoaderRegistry(MicrocontainerFacade microcontainer)
+ {
+ this.microcontainer = microcontainer;
+ this.system = (ClassLoaderSystem) microcontainer.getBean("ClassLoaderSystem");
+ this.domainRegistry = (VFSClassLoaderDomainRegistry) microcontainer.getBean(
+ "ClassLoaderScopingPolicy");
+ }
+
+ public void registerDeployment(CLDeploymentBuilder clDeploymentBuilder)
+ {
+ KernelDeployment deployment = clDeploymentBuilder.getDeployment();
+ VFSClassLoaderFactory factory = clDeploymentBuilder.getMetaDataFactory();
+ deploymentsByName.put(factory.getContextName() + "$MODULE", deployment);
+ String domainName = factory.getDomain();
+ if (clDeploymentBuilder.isDomainCreated())
+ {
+ ClassLoaderDomain domain = system.getDomain(domainName);
+ if (domain != null)
+ {
+ Logger.getLogger(AbstractTestCase.class).debug("Registering domain " + domain);
+ DomainRegistry.registerDomain(domain);
+ if (factory.getParentDomain() == null ||
+ factory.getParentDomain().equals(ClassLoaderSystem.DEFAULT_DOMAIN_NAME))
+ {
+ Assert.assertNull(domain.getParentDomain());
+ }
+ else
+ {
+ Assert.assertNotNull(domain.getParentDomainName());
+ Assert.assertEquals(factory.getParentDomain(), domain.getParentDomainName());
+ }
+ }
+ }
+ }
+
+ public void registerClassLoader(ClassLoader classLoader, CLDeploymentBuilder clDeploymentBuilder)
+ {
+ VFSClassLoaderFactory factory = clDeploymentBuilder.getMetaDataFactory();
+ String name = factory.getContextName() + "$MODULE";
+ Module module = microcontainer.assertBean(name, Module.class);
+ domainRegistry.initMapsForModule(module);
+ scopedChildDomainsByLoader.put(classLoader, system.getDomain(factory.getDomain()));
+ classLoaders.put(name, classLoader);
+ }
+
+ public synchronized void unregisterDeployment(CLDeploymentBuilder clDeploymentBuilder) throws Exception
+ {
+ String contextName = clDeploymentBuilder.getMetaDataFactory().getContextName();
+ String name = contextName + "$MODULE";
+ ClassLoader classLoader = (ClassLoader) microcontainer.getBean(contextName);
+ deploymentsByName.remove(name);
+ scopedChildDomainsByLoader.remove(classLoader);
+ classLoaders.remove(name);
+ if (clDeploymentBuilder.isDomainCreated())
+ {
+ ClassLoaderDomain domain = scopedChildDomainsByLoader.get(classLoader);
+ if (domain != null)
+ {
+ DomainRegistry.registerDomain(domain.getName());
+ system.unregisterDomain(domain);
+ }
+ }
+ }
+
+ public KernelDeployment unregisterDeployment(ClassLoader classLoader)
+ {
+ String name = ((BaseClassLoader) classLoader).getName();
+ classLoaders.remove(name);
+ return deploymentsByName.remove(name);
+ }
+
+ public Collection<ClassLoader> getClassLoaders()
+ {
+ return new ArrayList<ClassLoader>(classLoaders.values());
+ }
+
+ public ClassLoaderDomain getDomainForClassLoader(ClassLoader loader)
+ {
+ //(scopedChildDomainsByLoader.get(loader) != domainRegistry.getClassLoaderDomainForLoader(loader))
+ // this statement is true only when the module has already been cleaned up from domainRegistry
+ // that's why we need another collection here
+ return scopedChildDomainsByLoader.get(loader);
+ }
+}
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/NoMatchClassFilter.java (from rev 94892, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/NoMatchClassFilter.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/NoMatchClassFilter.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/NoMatchClassFilter.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -0,0 +1,70 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2007, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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 org.jboss.classloader.plugins.ClassLoaderUtils;
+import org.jboss.classloader.spi.filter.ClassFilter;
+
+/**
+ * NoMatchClassFilter.
+ *
+ * @author <a href="adrian at jboss.com">Adrian Brock</a>
+ * @version $Revision$
+ */
+public class NoMatchClassFilter implements ClassFilter
+{
+ String className;
+
+ public boolean filtered = false;
+
+ public NoMatchClassFilter(String classname)
+ {
+ this.className = classname;
+ }
+
+ public boolean matchesClassName(String className)
+ {
+ if (this.className.equals(className))
+ {
+ filtered = true;
+ return false;
+ }
+ return true;
+ }
+
+ public boolean matchesResourcePath(String resourcePath)
+ {
+ if (ClassLoaderUtils.classNameToPath(this.className).equals(resourcePath))
+ {
+ filtered = true;
+ return false;
+ }
+ return true;
+ }
+
+ public boolean matchesPackageName(String packageName)
+ {
+ if (ClassLoaderUtils.getClassPackageName(this.className).equals(packageName))
+ return false;
+ return true;
+ }
+}
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/NoSuchClassLoaderException.java (from rev 97186, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/NoSuchClassLoaderException.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/NoSuchClassLoaderException.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/NoSuchClassLoaderException.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -0,0 +1,38 @@
+/*
+ * 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;
+
+/**
+ * Indicates that a class loader is not completely deployed.
+ *
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
+ * @version $Revision$
+ */
+public class NoSuchClassLoaderException extends Exception
+{
+ private static final long serialVersionUID = 1873358454130997423L;
+
+ public NoSuchClassLoaderException(Exception e)
+ {
+ super(e);
+ }
+}
\ No newline at end of file
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/SanityTestScenario.java (from rev 97186, 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/jbosscl/support/SanityTestScenario.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/SanityTestScenario.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -0,0 +1,83 @@
+/*
+ * 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
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/TestScenario.java (from rev 97186, 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/jbosscl/support/TestScenario.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/TestScenario.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -0,0 +1,338 @@
+/*
+ * 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
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/TestVFSClassLoaderFactory.java (from rev 97186, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestVFSClassLoaderFactory.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/TestVFSClassLoaderFactory.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/TestVFSClassLoaderFactory.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -0,0 +1,128 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file 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.Arrays;
+import java.util.List;
+
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.classloader.spi.ClassLoaderSystem;
+import org.jboss.classloading.spi.vfs.dependency.VFSClassLoaderPolicyModule;
+import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
+
+/**
+ * VFSClassLoaderFactory used by the tests
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
+ * @version $Revision$
+ */
+class TestVFSClassLoaderFactory extends VFSClassLoaderFactory
+{
+ private static final long serialVersionUID = 1L;
+
+ private ClassLoader parent;
+ private List<String> excludedRoots;
+
+ @Override
+ protected Class<? extends VFSClassLoaderPolicyModule> getModuleClass()
+ {
+ return TestVFSClassLoaderPolicyModule.class;
+ }
+
+ public void setParent(ClassLoader parent)
+ {
+ this.parent = parent;
+ }
+
+ public void setExcludedRoots(List<String> excludedRoots)
+ {
+ this.excludedRoots = excludedRoots;
+ }
+
+ @Override
+ public List<BeanMetaData> getBeans()
+ {
+
+ List<BeanMetaData> result = super.getBeans();
+ boolean overwriteClassLoader = parent != null;
+ boolean overwriteModule = this.excludedRoots != null && !this.excludedRoots.isEmpty();
+ if (overwriteClassLoader || overwriteModule)
+ {
+ //We need to modify the Module factory method used to create the classloader to pass in the parent
+ if (result.size() != 2)
+ {
+ throw new IllegalStateException("Expected size=2, was " + result.size());
+ }
+
+ BeanMetaData classLoader = null;
+ BeanMetaData module = null;
+ for (BeanMetaData bean : result)
+ {
+ if (bean.getBean().equals(ClassLoader.class.getName()))
+ {
+ classLoader = bean;
+ }
+ else
+ {
+ module = bean;
+ }
+ }
+
+ if (module == null)
+ {
+ throw new IllegalStateException("Could not find module");
+ }
+ if (classLoader == null)
+ {
+ throw new IllegalStateException("Could not find module");
+ }
+ String moduleName = module.getName();
+
+ if (overwriteClassLoader)
+ {
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(classLoader.getName(), ClassLoader.class.getName());
+ builder.setNoClassLoader();
+ builder.setFactory(module.getName());
+ builder.setFactoryMethod("registerClassLoaderPolicy");
+ builder.addConstructorParameter(ClassLoaderSystem.class.getName(), builder.createInject(getClassLoaderSystemName()));
+ builder.addConstructorParameter(ClassLoader.class.getName(), parent);
+ classLoader = builder.getBeanMetaData();
+ }
+ if (overwriteModule)
+ {
+ // Create the module
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(moduleName, getModuleClass().getName());
+ builder.addConstructorParameter(VFSClassLoaderFactory.class.getName(), this);
+ builder.addConstructorParameter(String.class.getName(), moduleName);
+ builder.addPropertyMetaData("roots", getRoots());
+ builder.addPropertyMetaData("excludedRoots", this.excludedRoots);
+ builder.setNoClassLoader();
+ builder.addUninstall("removeClassLoader");
+ module = builder.getBeanMetaData();
+ }
+ result = Arrays.asList(classLoader, module);
+ }
+ return result;
+ }
+}
\ No newline at end of file
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/TestVFSClassLoaderPolicyModule.java (from rev 97186, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestVFSClassLoaderPolicyModule.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/TestVFSClassLoaderPolicyModule.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/TestVFSClassLoaderPolicyModule.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -0,0 +1,248 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file 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.io.IOException;
+import java.net.URI;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.jboss.classloading.spi.vfs.dependency.VFSClassLoaderPolicyModule;
+import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
+import org.jboss.classloading.spi.vfs.policy.VFSClassLoaderPolicy;
+import org.jboss.util.id.GUID;
+import org.jboss.virtual.MemoryFileFactory;
+import org.jboss.virtual.VirtualFile;
+
+/**
+ * VFSClassLoaderPolicyModule used by tests.
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
+ * @version $Revision$
+ */
+public class TestVFSClassLoaderPolicyModule extends VFSClassLoaderPolicyModule
+{
+ private static final long serialVersionUID = 1;
+
+
+ /** In AS we need a URL to create the temporary files */
+ URL dynamicClassRoot;
+ VirtualFile classes;
+ private List<String> excludedRoots;
+
+ public TestVFSClassLoaderPolicyModule(VFSClassLoaderFactory classLoadingMetaData, String contextName)
+ {
+ // FIXME TesetMockClassLoaderPolicyModule constructor
+ super(classLoadingMetaData, contextName);
+ }
+
+ public void setExcludedRoots(List<String> excludedRoots)
+ {
+ this.excludedRoots = excludedRoots;
+ }
+
+ /**
+ * Get/Create the vfs memory file where we will create dynamic classes
+ */
+ @Override
+ public URL getDynamicClassRoot()
+ {
+ initDynamicClassRoot();
+ return dynamicClassRoot;
+ }
+
+ /**
+ * Prepend the dynamic URL location to the classpath
+ */
+ @Override
+ protected VirtualFile[] determineVFSRoots()
+ {
+ initDynamicClassRoot();
+ Map<Integer, String> truncatedRootPaths = truncateArchiveNestedPaths(this.getRoots());
+ VirtualFile[] roots = super.determineVFSRoots();
+ restoreArchiveNestedPaths(truncatedRootPaths, roots);
+ VirtualFile[] newRoots = new VirtualFile[roots.length + 1];
+ newRoots[0] = classes;
+ System.arraycopy(roots, 0, newRoots, 1, roots.length);
+ return newRoots;
+ }
+
+ @Override
+ // FIXME code copied from determinePolicy method in super class
+ protected VFSClassLoaderPolicy determinePolicy()
+ {
+ VirtualFile[] roots = determineVFSRoots();
+
+ // these are the only lines that are different from super class's determinePolicy()
+ VirtualFile[] excludedRoots = determineVFSExcludedRoots();
+ VFSClassLoaderPolicy policy = VFSClassLoaderPolicy.createVFSClassLoaderPolicy(
+ getContextName(), roots, excludedRoots);
+
+ String[] packageNames = getPackageNames();
+ policy.setExportedPackages(packageNames);
+ policy.setIncluded(getIncluded());
+ policy.setExcluded(getExcluded());
+ policy.setExcludedExport(getExcludedExport());
+ policy.setExportAll(getExportAll());
+ policy.setImportAll(isImportAll());
+ policy.setCacheable(isCacheable());
+ policy.setBlackListable(isBlackListable());
+ policy.setDelegates(getDelegates());
+ return policy;
+ }
+
+ protected VirtualFile[] determineVFSExcludedRoots()
+ {
+ if (this.excludedRoots == null || this.excludedRoots.isEmpty())
+ {
+ return new VirtualFile[0];
+ }
+ Map<Integer, String> truncatedRootPaths = truncateArchiveNestedPaths(this.excludedRoots);
+ VirtualFile[] roots = determineVFSRoots(this.excludedRoots);
+ restoreArchiveNestedPaths(truncatedRootPaths, roots);
+ return roots;
+ }
+
+ // FIXME: code copied from determineVFSRoots method in superclass
+ protected VirtualFile[] determineVFSRoots(List<String> roots)
+ {
+ if (roots == null)
+ {
+ return new VirtualFile[0];
+ }
+ VirtualFile[] vfsRoots = new VirtualFile[roots.size()];
+ for (int i = 0; i < roots.size(); ++i)
+ {
+ String root = roots.get(i);
+ try
+ {
+ URI uri = new URI(root);
+ vfsRoots[i] = getVirtualFile(uri);
+ }
+ catch (RuntimeException e)
+ {
+ throw e;
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException("Error creating VFS file for " + root, e);
+ }
+ }
+ return vfsRoots;
+ }
+
+ private synchronized void initDynamicClassRoot()
+ {
+ if (dynamicClassRoot == null)
+ {
+ try
+ {
+ dynamicClassRoot = new URL("vfsmemory", GUID.asString(), "");
+ classes = MemoryFileFactory.createRoot(dynamicClassRoot).getRoot();
+ }
+ catch (Exception e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ /**
+ * This method truncated nested archives classpath.
+ * For example, the "/home/user_name/jboss-classpool/target/mywar.war/META-INF/classes"
+ * is replaced by "/home/user_name/jboss-classpool/target/mywar.war"
+ * The truncation is only performed on paths that involve subdirectories of archive files.
+ *
+ * @param paths a list of paths. After this method is executed, this list will contain the
+ * truncated paths
+ * @return a map that can be used to restore the truncated paths by invoking
+ * {@code #restoreArchiveNestedPaths(Map, VirtualFile[])}
+ */
+ private Map<Integer, String> truncateArchiveNestedPaths(List<String> paths)
+ {
+ Map<Integer, String> truncatedRootPaths = new HashMap<Integer, String>();
+ for (ListIterator<String> listIterator = paths.listIterator(); listIterator.hasNext();)
+ {
+ int rootIndex = listIterator.nextIndex();
+ String root = listIterator.next();
+ int archiveIndex = root.indexOf('.');
+ int lastSlash = archiveIndex > 0? root.indexOf('/', archiveIndex): -1;
+ if (lastSlash > 0)
+ {
+ listIterator.set(root.substring(0, lastSlash));
+ root = root.substring(lastSlash + 1);
+ if (root != null)
+ {
+ truncatedRootPaths.put(rootIndex, root);
+ }
+ }
+ }
+ return truncatedRootPaths;
+ }
+
+ /**
+ * Restores the truncated paths.
+ *
+ * @param truncatedPaths the result of a previous truncation
+ * ({@see #truncateArchiveNestedPaths(List)}).
+ * @param paths a list of virtual files representing the truncated paths. Every virtual file
+ * in this array that corresponds to a previously truncated path will be
+ * replaced the virtual file that represent the original path.
+ */
+ private void restoreArchiveNestedPaths(
+ Map<Integer, String> truncatedPaths, VirtualFile[] paths)
+ {
+ for (Entry<Integer, String> truncatedPath: truncatedPaths.entrySet())
+ {
+ int pathIndex = truncatedPath.getKey();
+ VirtualFile file = paths[pathIndex];
+ String path = truncatedPath.getValue();
+ do
+ {
+ int archiveIndex = path.indexOf('.');
+ int lastSlash = archiveIndex > 0? path.indexOf('/', archiveIndex): -1;
+ try
+ {
+ if (lastSlash > 0)
+ {
+ file = file.getChild(path.substring(0, lastSlash));
+ path = path.substring(lastSlash + 1);
+ }
+ else
+ {
+ file = file.getChild(path);
+ path = null;
+ }
+ } catch (IOException e)
+ {
+ throw new RuntimeException("Can't find path " + path + " on root " + file, e);
+ }
+ } while(path != null);
+ paths[pathIndex] = 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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassPoolTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -26,8 +26,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
* Executes the archive tests against a class pool test scenario.
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveSanityTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -24,8 +24,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.SanityTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
* Executes the archive tests against a sanity test scenario (for class loader behavior sanity
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveTest.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveTest.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -88,7 +88,7 @@
import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
-import org.jboss.test.classpool.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.SupportClasses;
/**
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/DependencyTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/DependencyTest.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/DependencyTest.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -27,8 +27,8 @@
import static org.jboss.test.classpool.support.SupportClasses.CLASS_B;
import org.jboss.classloading.spi.version.VersionRange;
-import org.jboss.test.classpool.support.CLDeploymentBuilder;
-import org.jboss.test.classpool.support.NoSuchClassLoaderException;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.jbosscl.support.NoSuchClassLoaderException;
/**
* Contains tests for dependency test scenarios,such as dependency on modules and on packages.
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainClassPoolTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -26,8 +26,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainSanityTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -24,8 +24,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.SanityTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainTest.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainTest.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -29,8 +29,8 @@
import static org.jboss.test.classpool.support.SupportClasses.CLASS_B;
import static org.jboss.test.classpool.support.SupportClasses.PACKAGE_A;
-import org.jboss.test.classpool.support.CLDeploymentBuilder;
-import org.jboss.test.classpool.support.NoSuchClassLoaderException;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.jbosscl.support.NoSuchClassLoaderException;
/**
* Reproduces org.jboss.test.classloading.dependency.test.HierarchicalDomainUnitTestCase using
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderClassPoolTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -26,8 +26,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderSanityTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -24,8 +24,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.SanityTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderTest.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderTest.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -31,9 +31,9 @@
import org.jboss.classloader.spi.ClassLoaderDomain;
import org.jboss.classloader.spi.ParentPolicy;
import org.jboss.classloader.spi.filter.ClassFilter;
-import org.jboss.test.classpool.support.CLDeploymentBuilder;
-import org.jboss.test.classpool.support.DomainRegistry;
-import org.jboss.test.classpool.support.NoMatchClassFilter;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.jbosscl.support.DomainRegistry;
+import org.jboss.test.classpool.jbosscl.support.NoMatchClassFilter;
/**
* Reproduces org.jboss.test.classloader.domain.test.HierarchicalParentLoaderUnitTestCase using
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -28,9 +28,9 @@
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.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;
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencyClassPoolTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -26,8 +26,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencySanityTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -24,8 +24,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.SanityTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
* Executes the module dependency tests against a sanity test scenario (for class loader
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencyTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencyTest.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencyTest.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -25,7 +25,7 @@
import static org.jboss.test.classpool.support.SupportClasses.PACKAGE_B;
import org.jboss.classloading.spi.version.VersionRange;
-import org.jboss.test.classpool.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
/**
* Reproduces org.jboss.test.classloading.vfs.metadata.test.ModuleDependencyUnitTestCase using
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencyClassPoolTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -26,8 +26,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
* Executes the package dependency tests against a class pool test scenario.
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencySanityTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -24,8 +24,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.SanityTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
* Executes the package dependency tests against a sanity test scenario (for class loader
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencyTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencyTest.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencyTest.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -25,7 +25,7 @@
import static org.jboss.test.classpool.support.SupportClasses.PACKAGE_B;
import org.jboss.classloading.spi.version.VersionRange;
-import org.jboss.test.classpool.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
/**
* Reproduces org.jboss.test.classloading.vfs.metadata.test.PackageDependencyUnitTestCase using
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleClassPoolTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -26,8 +26,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleSanityTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -24,8 +24,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.SanityTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleTest.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleTest.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -21,7 +21,7 @@
*/
package org.jboss.test.classpool.jbosscl.test;
-import org.jboss.test.classpool.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
/**
* Reproduces org.jboss.test.classloading.vfs.metadata.test.ReExportPackageUnitTestCase using
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageClassPoolTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -26,8 +26,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
* Executes the ReExportPackage tests against a class pool test scenario.
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageSanityTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -24,8 +24,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.SanityTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageTest.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageTest.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -23,7 +23,7 @@
import static org.jboss.test.classpool.support.SupportClasses.PACKAGE_A;
-import org.jboss.test.classpool.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
/**
* Reproduces org.jboss.test.classloading.vfs.metadata.test.ReExportPackageUnitTestCase using
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportTest.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportTest.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -30,7 +30,7 @@
import static org.jboss.test.classpool.support.SupportClasses.PACKAGE_A;
import static org.jboss.test.classpool.support.SupportClasses.PACKAGE_B;
-import org.jboss.test.classpool.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
/**
* Contains tests for reExport test scenarios, such as reExportModule and ReExportPackage.
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReplaceReferencesClassPoolTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -44,10 +44,10 @@
import org.jboss.classloading.spi.DomainClassLoader;
import org.jboss.classpool.spi.ClassPoolRepository;
-import org.jboss.test.classpool.support.CLDeploymentBuilder;
-import org.jboss.test.classpool.support.ClassPoolTestScenario;
+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.SupportClasses;
-import org.jboss.test.classpool.support.TestScenario;
import org.jboss.util.loading.Translator;
/**
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositoryClassPoolTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -35,10 +35,10 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.common.ClassFactory;
-import org.jboss.test.classpool.support.CLDeploymentBuilder;
-import org.jboss.test.classpool.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+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;
/**
* Executes the repository tests against a class pool test scenario.
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositorySanityTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -24,8 +24,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.SanityTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
* Executes the repository tests against a sanity test scenario (for class loader behavior
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositoryTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositoryTest.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositoryTest.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -36,7 +36,7 @@
import java.net.URL;
import java.net.URLClassLoader;
-import org.jboss.test.classpool.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
/**
* Tests the behaviour of the new classloaders.
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageClassPoolTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -26,8 +26,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.ClassPoolTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
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 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageSanityTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -24,8 +24,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.support.SanityTestScenario;
-import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.jbosscl.support.SanityTestScenario;
+import org.jboss.test.classpool.jbosscl.support.TestScenario;
/**
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageTest.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageTest.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -25,7 +25,7 @@
import static org.jboss.test.classpool.support.SupportClasses.CLASS_A;
import static org.jboss.test.classpool.support.SupportClasses.PACKAGE_A;
-import org.jboss.test.classpool.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
/**
* Reproduces org.jboss.test.classloading.vfs.metadata.test.UsesPackageUnitTestCase using our
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/CLDeploymentBuilder.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/CLDeploymentBuilder.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/CLDeploymentBuilder.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -1,392 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file 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.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import junit.framework.Assert;
-
-import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
-import org.jboss.classloader.spi.ClassLoaderSystem;
-import org.jboss.classloading.spi.metadata.Capability;
-import org.jboss.classloading.spi.metadata.ClassLoadingMetaData;
-import org.jboss.classloading.spi.metadata.ClassLoadingMetaDataFactory;
-import org.jboss.classloading.spi.metadata.ExportAll;
-import org.jboss.classloading.spi.metadata.Requirement;
-import org.jboss.classloading.spi.version.VersionRange;
-import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
-import org.jboss.kernel.plugins.deployment.AbstractKernelDeployment;
-import org.jboss.kernel.spi.deployment.KernelDeployment;
-
-/**
- *
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision$
- */
-public class CLDeploymentBuilder
-{
- private static ClassLoadingMetaDataFactory clmdf = ClassLoadingMetaDataFactory.getInstance();
-
- List<Capability> capabilities = new ArrayList<Capability>();
- List<Requirement> requirements = new ArrayList<Requirement>();
-
- private String name;
- private URL[] urls;
- private URL[] excludes;
- private boolean importAll;
- private String domainName;
- private String parentDomainName;
- private boolean parentFirst;
- private ClassLoader parent;
- boolean domainDefined = false;
- boolean domainCreated = false;
-
- boolean deploymentCreated = false;
- private KernelDeployment kernelDeployment = null;
-
- private VFSClassLoaderFactory metaDataFactory;
-
- public CLDeploymentBuilder(String name, URL... urls)
- {
- this.name = name;
- this.urls = urls;
- this.importAll = true;
- }
-
- private CLDeploymentBuilder() {
-
- }
-
- public static CLDeploymentBuilder getBuilder()
- {
- return new CLDeploymentBuilder();
- }
-
- public String getName()
- {
- return this.name;
- }
-
- public void setExcludes(URL... urls)
- {
- this.excludes = urls;
- }
-
- // TODO automatically call this after a createModule/createanything?
- public void setImportAll(boolean importAll)
- {
- this.importAll = importAll;
- }
-
- // TODO set synchronized on all methods
- public void createDomain(String domain, String parentDomain, boolean parentFirst)
- {
- if (DomainRegistry.contains(domain))
- {
- throw new IllegalStateException("Domain " + domain + " already exists");
- }
- DomainRegistry.registerDomain(domain);
- domainCreated = true;
- this.setDomain(domain, parentDomain, parentFirst);
- }
-
- public void createDomain(String domain, boolean parentFirst)
- {
- this.createDomain(domain, (String) null, parentFirst);
- }
-
- public boolean isDomainCreated()
- {
- 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);
- this.setParent(parent);
- }
-
- public void setDomain(String domainName)
- {
- setDomain(domainName, null, false);
- }
-
- private void setDomain(String domain, String parentDomain, boolean parentFirst)
- {
- if (domainDefined)
- {
- throw new IllegalStateException("Duplicate definition of domain for CLDeployment " +
- this.getName());
- }
- this.domainName = domain;
- this.parentDomainName = parentDomain;
- this.parentFirst = parentFirst;
- domainDefined = true;
- }
-
- public String getDomain()
- {
- return this.domainName;
- }
-
- public void setParent(ClassLoader parent)
- {
- this.parent = parent;
- }
-
- public CLDeploymentBuilder createModule(String name)
- {
- capabilities.add(clmdf.createModule(name));
- return this;
- }
-
- public CLDeploymentBuilder createModule(String name, Object version)
- {
- capabilities.add(clmdf.createModule(name, version));
- return this;
- }
-
- public CLDeploymentBuilder createRequireModule(String name)
- {
- requirements.add(clmdf.createRequireModule(name, null));
- return this;
- }
-
- public CLDeploymentBuilder createRequireModule(String name, VersionRange versionRange)
- {
- requirements.add(clmdf.createRequireModule(name, versionRange));
- return this;
- }
-
- public CLDeploymentBuilder createRequireModule(String name, VersionRange versionRange, boolean optional, boolean reExport, boolean dynamic)
- {
- requirements.add(clmdf.createRequireModule(name, versionRange, optional, reExport, dynamic));
- return this;
- }
-
- public CLDeploymentBuilder createPackage(String name)
- {
- capabilities.add(clmdf.createPackage(name));
- return this;
- }
-
- public CLDeploymentBuilder createPackage(String name, Object version)
- {
- capabilities.add(clmdf.createPackage(name, version));
- return this;
- }
-
- public CLDeploymentBuilder createRequirePackage(String name)
- {
- requirements.add(clmdf.createRequirePackage(name));
- return this;
- }
-
- public CLDeploymentBuilder createRequirePackage(String name, VersionRange versionRange)
- {
- requirements.add(clmdf.createRequirePackage(name, versionRange));
- return this;
- }
-
- public CLDeploymentBuilder createRequirePackage(String name, VersionRange versionRange, boolean optional, boolean reExport, boolean dynamic)
- {
- requirements.add(clmdf.createRequirePackage(name, versionRange, optional, reExport, dynamic));
- return this;
- }
-
- public CLDeploymentBuilder createReExportModule(String name)
- {
- requirements.add(clmdf.createReExportModule(name));
- return this;
- }
-
- public CLDeploymentBuilder createReExportModule(String name, VersionRange versionRange)
- {
- requirements.add(clmdf.createReExportModule(name, versionRange));
- return this;
- }
-
- public CLDeploymentBuilder createReExportModule(String name, VersionRange versionRange, boolean optional)
- {
- requirements.add(clmdf.createReExportModule(name, versionRange, optional));
- return this;
- }
-
- public CLDeploymentBuilder createReExportPackage(String name)
- {
- requirements.add(clmdf.createReExportPackage(name));
- return this;
- }
-
- public CLDeploymentBuilder createReExportPackage(String name, VersionRange versionRange)
- {
- requirements.add(clmdf.createReExportPackage(name, versionRange));
- return this;
- }
-
- public CLDeploymentBuilder createReExportPackage(String name, VersionRange versionRange, boolean optional)
- {
- requirements.add(clmdf.createReExportPackage(name, versionRange, optional));
- return this;
- }
-
- public CLDeploymentBuilder createUsesPackage(String name)
- {
- requirements.add(clmdf.createUsesPackage(name));
- return this;
- }
-
- public CLDeploymentBuilder createUsesPackage(String name, VersionRange versionRange)
- {
- requirements.add(clmdf.createUsesPackage(name, versionRange));
- return this;
- }
-
- public CLDeploymentBuilder createUsesPackage(String name, VersionRange versionRange, boolean reExport)
- {
- requirements.add(clmdf.createUsesPackage(name, versionRange, reExport));
- return this;
- }
-
- public synchronized KernelDeployment createDeployment()
- {
- Assert.assertFalse("Duplicate deployment created", deploymentCreated);
- if (metaDataFactory == null)
- {
- metaDataFactory = createMetaDataFactory();
- }
- AbstractKernelDeployment deployment = new AbstractKernelDeployment();
- deployment.setName(metaDataFactory.getName() + ":" + metaDataFactory.getVersion());
- deployment.setBeanFactories(Collections.singletonList((BeanMetaDataFactory) metaDataFactory));
- deploymentCreated = true;
- this.kernelDeployment = deployment;
- return deployment;
- }
-
- public synchronized KernelDeployment getDeployment()
- {
- return this.kernelDeployment;
- }
-
- public synchronized KernelDeployment undeploy()
- {
- this.deploymentCreated = false;
- return this.kernelDeployment;
- }
-
- public VFSClassLoaderFactory getMetaDataFactory()
- {
- Assert.assertNotNull("MetaDataFactory can be retrieved only after deployment creation.",
- metaDataFactory);
- return metaDataFactory;
- }
-
- private VFSClassLoaderFactory createMetaDataFactory()
- {
-
- TestVFSClassLoaderFactory factory = new TestVFSClassLoaderFactory();
- factory.setName(name);
- factory.setImportAll(importAll);
- if (importAll)
- {
- factory.setExportAll(ExportAll.NON_EMPTY);
- }
- factory.setRoots(urlsToStringList(urls));
- factory.setExcludedRoots(urlsToStringList(excludes));
-
- if (capabilities != null && !capabilities.isEmpty())
- {
- factory.getCapabilities().setCapabilities(capabilities);
- }
- if (requirements != null && !requirements.isEmpty())
- {
- factory.getRequirements().setRequirements(requirements);
- }
- setupDomain(factory, domainName, parentDomainName, parentFirst);
- if (parent != null)
- {
- factory.setParent(parent);
- }
- return factory;
- }
-
-
- public ClassLoader getParent()
- {
- return this.parent;
- }
-
- private static void setupDomain(ClassLoadingMetaData md, String domainName, String parentDomainName, boolean parentFirst)
- {
- if (domainName != null)
- {
- md.setDomain(domainName);
- md.setJ2seClassLoadingCompliance(parentFirst);
- if (parentDomainName != null)
- {
- md.setParentDomain(parentDomainName);
- }
- else
- {
- md.setParentDomain(ClassLoaderSystem.DEFAULT_DOMAIN_NAME);
- }
- }
- else
- {
- md.setDomain(ClassLoaderSystem.DEFAULT_DOMAIN_NAME);
- }
- }
-
- public List<Capability> getCapabilities()
- {
- return capabilities;
- }
-
- public List<Requirement> getRequirements()
- {
- return requirements;
- }
-
- private static List<String> urlsToStringList(URL... urls)
- {
- if (urls == null)
- {
- return null;
- }
- List<String> urlList = new ArrayList<String>(urls.length);
- if (urls.length > 0)
- {
- for (URL url : urls)
- {
- if (url != null)
- {
- urlList.add(url.toString());
- }
- }
- }
- return urlList;
- }
-}
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassFactory.java (from rev 94892, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/common/ClassFactory.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassFactory.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassFactory.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -0,0 +1,114 @@
+/*
+ * 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 javassist.CannotCompileException;
+import javassist.ClassPool;
+import javassist.CtClass;
+import junit.framework.Assert;
+
+import org.jboss.classpool.spi.AbstractClassPool;
+import org.jboss.classpool.spi.ClassPoolRepository;
+
+/**
+ * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
+ * @version $Revision$
+ */
+public class ClassFactory
+{
+ public static final String PACKAGE = "org.test.classpool.proxy";
+ private static final String CLASS = "Proxy";
+ private static int counter = 0;
+
+ public static Object create(Class<?> parent, ClassLoader loader) throws Exception
+ {
+ String packageName = parent.getPackage().getName();
+ if (!packageName.startsWith("java.") && !packageName.startsWith("sun."))
+ {
+ packageName += ".";
+ }
+ else
+ {
+ packageName = PACKAGE + ".";
+ }
+ String className = packageName + CLASS + counter++;
+ ClassPool pool = ClassPoolRepository.getInstance().getRegisteredCLs().get(loader);
+ try
+ {
+ registerGeneratedClass(pool, className);
+ CtClass ctClazz = pool.makeClass(packageName + CLASS + counter++);
+ ctClazz.setSuperclass(pool.get(parent.getName()));
+ Class<?> clazz = pool.toClass(ctClazz);
+ Assert.assertSame(loader, clazz.getClassLoader());
+ return clazz.newInstance();
+ }
+ catch(RuntimeException re)
+ {
+ unregisterGeneratedClass(pool, className);
+ throw re;
+ }
+ }
+
+ /**
+ * Utility method to make a new class in a pool. It makes sure that the class is registered with the pool, so others can find it.
+ */
+ public static CtClass create(ClassPool pool, String name)
+ {
+ registerGeneratedClass(pool, name);
+ return pool.makeClass(name);
+ }
+
+ /**
+ * Utility method to make a new class in a pool. It makes sure that the class is registered with the pool, so others can find it.
+ */
+ public static CtClass createNested(CtClass outer, String name, boolean isStatic) throws CannotCompileException
+ {
+ final String classname = outer.getName() + "$" + name;
+ try
+ {
+ registerGeneratedClass(outer.getClassPool(), classname);
+ CtClass inner = outer.makeNestedClass(name, true);
+ return inner;
+ }
+ catch (RuntimeException e)
+ {
+ unregisterGeneratedClass(outer.getClassPool(), classname);
+ throw e;
+ }
+ }
+
+ private static void registerGeneratedClass(ClassPool pool, String name)
+ {
+ if (pool != null && pool instanceof AbstractClassPool)
+ {
+ ((AbstractClassPool) pool).registerGeneratedClass(name);
+ }
+ }
+
+ private static void unregisterGeneratedClass(ClassPool pool, String name)
+ {
+ if (pool != null && pool instanceof AbstractClassPool)
+ {
+ ((AbstractClassPool) pool).doneGeneratingClass(name);
+ }
+ }
+}
Deleted: 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 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassPoolTestScenario.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -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.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);
- }
-}
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/DomainRegistry.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/DomainRegistry.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/DomainRegistry.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -1,64 +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.support;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.jboss.classloader.spi.ClassLoaderDomain;
-
-/**
- * All domains to be cleaned up should be registered here.
- * This registry is automatically populated by
- * {@link TestScenario#createLoader(CLDeploymentBuilder)}.
- * However, if a test creates a domain manually, the domain must be registered here for
- * proper clean up.
- *
- * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
- * @version $Revision$
- */
-public class DomainRegistry
-{
- private static final Map<String, ClassLoaderDomain> domains = new HashMap<String, ClassLoaderDomain>();
-
- public static synchronized boolean contains(String domainName)
- {
- return domains.containsKey(domainName);
- }
-
- public static synchronized void registerDomain(String domain)
- {
- domains.put(domain, null);
- }
-
- public static synchronized void registerDomain(ClassLoaderDomain domain)
- {
- domains.put(domain.getName(), domain);
- }
-
- public static synchronized Map<String, ClassLoaderDomain> clear()
- {
- Map<String, ClassLoaderDomain> registeredDomains = new HashMap<String, ClassLoaderDomain>(domains);
- domains.clear();
- return registeredDomains;
- }
-}
\ No newline at end of file
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/LoaderRegistry.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/LoaderRegistry.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/LoaderRegistry.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -1,156 +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.support;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.WeakHashMap;
-
-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.dependency.Module;
-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;
-
-/**
- * Registry used by TestScenario to keep track of created class loaders and to perform
- * proper cleanup.
- *
- * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
- * @version $Revision$
- */
-class LoaderRegistry
-{
- /** The classloader helper */
- protected ClassLoaderSystem system;
-
- /** The domain registry */
- protected VFSClassLoaderDomainRegistry domainRegistry;
-
- /** The microcontainer facade */
- private MicrocontainerFacade microcontainer;
-
- /**
- * Contains the same domains contained in domainRegistry. The difference is that
- * this map is cleaned up later than domainRegistry.
- */
- private Map<ClassLoader, ClassLoaderDomain> scopedChildDomainsByLoader = new WeakHashMap<ClassLoader, ClassLoaderDomain>();
-
- /** List of classLoaders */
- private Map<String, ClassLoader> classLoaders = new HashMap<String, ClassLoader>();
-
- /** Deployments */
- private Map<String, KernelDeployment> deploymentsByName = new HashMap<String, KernelDeployment>();
-
-
- public LoaderRegistry(MicrocontainerFacade microcontainer)
- {
- this.microcontainer = microcontainer;
- this.system = (ClassLoaderSystem) microcontainer.getBean("ClassLoaderSystem");
- this.domainRegistry = (VFSClassLoaderDomainRegistry) microcontainer.getBean(
- "ClassLoaderScopingPolicy");
- }
-
- public void registerDeployment(CLDeploymentBuilder clDeploymentBuilder)
- {
- KernelDeployment deployment = clDeploymentBuilder.getDeployment();
- VFSClassLoaderFactory factory = clDeploymentBuilder.getMetaDataFactory();
- deploymentsByName.put(factory.getContextName() + "$MODULE", deployment);
- String domainName = factory.getDomain();
- if (clDeploymentBuilder.isDomainCreated())
- {
- ClassLoaderDomain domain = system.getDomain(domainName);
- if (domain != null)
- {
- Logger.getLogger(AbstractTestCase.class).debug("Registering domain " + domain);
- DomainRegistry.registerDomain(domain);
- if (factory.getParentDomain() == null ||
- factory.getParentDomain().equals(ClassLoaderSystem.DEFAULT_DOMAIN_NAME))
- {
- Assert.assertNull(domain.getParentDomain());
- }
- else
- {
- Assert.assertNotNull(domain.getParentDomainName());
- Assert.assertEquals(factory.getParentDomain(), domain.getParentDomainName());
- }
- }
- }
- }
-
- public void registerClassLoader(ClassLoader classLoader, CLDeploymentBuilder clDeploymentBuilder)
- {
- VFSClassLoaderFactory factory = clDeploymentBuilder.getMetaDataFactory();
- String name = factory.getContextName() + "$MODULE";
- Module module = microcontainer.assertBean(name, Module.class);
- domainRegistry.initMapsForModule(module);
- scopedChildDomainsByLoader.put(classLoader, system.getDomain(factory.getDomain()));
- classLoaders.put(name, classLoader);
- }
-
- public synchronized void unregisterDeployment(CLDeploymentBuilder clDeploymentBuilder) throws Exception
- {
- String contextName = clDeploymentBuilder.getMetaDataFactory().getContextName();
- String name = contextName + "$MODULE";
- ClassLoader classLoader = (ClassLoader) microcontainer.getBean(contextName);
- deploymentsByName.remove(name);
- scopedChildDomainsByLoader.remove(classLoader);
- classLoaders.remove(name);
- if (clDeploymentBuilder.isDomainCreated())
- {
- ClassLoaderDomain domain = scopedChildDomainsByLoader.get(classLoader);
- if (domain != null)
- {
- DomainRegistry.registerDomain(domain.getName());
- system.unregisterDomain(domain);
- }
- }
- }
-
- public KernelDeployment unregisterDeployment(ClassLoader classLoader)
- {
- String name = ((BaseClassLoader) classLoader).getName();
- classLoaders.remove(name);
- return deploymentsByName.remove(name);
- }
-
- public Collection<ClassLoader> getClassLoaders()
- {
- return new ArrayList<ClassLoader>(classLoaders.values());
- }
-
- public ClassLoaderDomain getDomainForClassLoader(ClassLoader loader)
- {
- //(scopedChildDomainsByLoader.get(loader) != domainRegistry.getClassLoaderDomainForLoader(loader))
- // this statement is true only when the module has already been cleaned up from domainRegistry
- // that's why we need another collection here
- return scopedChildDomainsByLoader.get(loader);
- }
-}
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/NoMatchClassFilter.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/NoMatchClassFilter.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/NoMatchClassFilter.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -1,70 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file 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 org.jboss.classloader.plugins.ClassLoaderUtils;
-import org.jboss.classloader.spi.filter.ClassFilter;
-
-/**
- * NoMatchClassFilter.
- *
- * @author <a href="adrian at jboss.com">Adrian Brock</a>
- * @version $Revision$
- */
-public class NoMatchClassFilter implements ClassFilter
-{
- String className;
-
- public boolean filtered = false;
-
- public NoMatchClassFilter(String classname)
- {
- this.className = classname;
- }
-
- public boolean matchesClassName(String className)
- {
- if (this.className.equals(className))
- {
- filtered = true;
- return false;
- }
- return true;
- }
-
- public boolean matchesResourcePath(String resourcePath)
- {
- if (ClassLoaderUtils.classNameToPath(this.className).equals(resourcePath))
- {
- filtered = true;
- return false;
- }
- return true;
- }
-
- public boolean matchesPackageName(String packageName)
- {
- if (ClassLoaderUtils.getClassPackageName(this.className).equals(packageName))
- return false;
- return true;
- }
-}
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/NoSuchClassLoaderException.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/NoSuchClassLoaderException.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/NoSuchClassLoaderException.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -1,38 +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.support;
-
-/**
- * Indicates that a class loader is not completely deployed.
- *
- * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
- * @version $Revision$
- */
-public class NoSuchClassLoaderException extends Exception
-{
- private static final long serialVersionUID = 1873358454130997423L;
-
- public NoSuchClassLoaderException(Exception e)
- {
- super(e);
- }
-}
\ No newline at end of file
Deleted: 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 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SanityTestScenario.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -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.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/support/TestScenario.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestScenario.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestScenario.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -1,336 +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.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;
-
-/**
- * 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
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestVFSClassLoaderFactory.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestVFSClassLoaderFactory.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestVFSClassLoaderFactory.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -1,128 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file 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.Arrays;
-import java.util.List;
-
-import org.jboss.beans.metadata.spi.BeanMetaData;
-import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
-import org.jboss.classloader.spi.ClassLoaderSystem;
-import org.jboss.classloading.spi.vfs.dependency.VFSClassLoaderPolicyModule;
-import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
-
-/**
- * VFSClassLoaderFactory used by the tests
- *
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
- * @version $Revision$
- */
-class TestVFSClassLoaderFactory extends VFSClassLoaderFactory
-{
- private static final long serialVersionUID = 1L;
-
- private ClassLoader parent;
- private List<String> excludedRoots;
-
- @Override
- protected Class<? extends VFSClassLoaderPolicyModule> getModuleClass()
- {
- return TestVFSClassLoaderPolicyModule.class;
- }
-
- public void setParent(ClassLoader parent)
- {
- this.parent = parent;
- }
-
- public void setExcludedRoots(List<String> excludedRoots)
- {
- this.excludedRoots = excludedRoots;
- }
-
- @Override
- public List<BeanMetaData> getBeans()
- {
-
- List<BeanMetaData> result = super.getBeans();
- boolean overwriteClassLoader = parent != null;
- boolean overwriteModule = this.excludedRoots != null && !this.excludedRoots.isEmpty();
- if (overwriteClassLoader || overwriteModule)
- {
- //We need to modify the Module factory method used to create the classloader to pass in the parent
- if (result.size() != 2)
- {
- throw new IllegalStateException("Expected size=2, was " + result.size());
- }
-
- BeanMetaData classLoader = null;
- BeanMetaData module = null;
- for (BeanMetaData bean : result)
- {
- if (bean.getBean().equals(ClassLoader.class.getName()))
- {
- classLoader = bean;
- }
- else
- {
- module = bean;
- }
- }
-
- if (module == null)
- {
- throw new IllegalStateException("Could not find module");
- }
- if (classLoader == null)
- {
- throw new IllegalStateException("Could not find module");
- }
- String moduleName = module.getName();
-
- if (overwriteClassLoader)
- {
- BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(classLoader.getName(), ClassLoader.class.getName());
- builder.setNoClassLoader();
- builder.setFactory(module.getName());
- builder.setFactoryMethod("registerClassLoaderPolicy");
- builder.addConstructorParameter(ClassLoaderSystem.class.getName(), builder.createInject(getClassLoaderSystemName()));
- builder.addConstructorParameter(ClassLoader.class.getName(), parent);
- classLoader = builder.getBeanMetaData();
- }
- if (overwriteModule)
- {
- // Create the module
- BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(moduleName, getModuleClass().getName());
- builder.addConstructorParameter(VFSClassLoaderFactory.class.getName(), this);
- builder.addConstructorParameter(String.class.getName(), moduleName);
- builder.addPropertyMetaData("roots", getRoots());
- builder.addPropertyMetaData("excludedRoots", this.excludedRoots);
- builder.setNoClassLoader();
- builder.addUninstall("removeClassLoader");
- module = builder.getBeanMetaData();
- }
- result = Arrays.asList(classLoader, module);
- }
- return result;
- }
-}
\ No newline at end of file
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestVFSClassLoaderPolicyModule.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestVFSClassLoaderPolicyModule.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestVFSClassLoaderPolicyModule.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -1,248 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source.
-* Copyright 2006, Red Hat Middleware LLC, and individual contributors
-* as indicated by the @author tags. See the copyright.txt file 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.io.IOException;
-import java.net.URI;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.List;
-import java.util.ListIterator;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.jboss.classloading.spi.vfs.dependency.VFSClassLoaderPolicyModule;
-import org.jboss.classloading.spi.vfs.metadata.VFSClassLoaderFactory;
-import org.jboss.classloading.spi.vfs.policy.VFSClassLoaderPolicy;
-import org.jboss.util.id.GUID;
-import org.jboss.virtual.MemoryFileFactory;
-import org.jboss.virtual.VirtualFile;
-
-/**
- * VFSClassLoaderPolicyModule used by tests.
- *
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
- * @version $Revision$
- */
-public class TestVFSClassLoaderPolicyModule extends VFSClassLoaderPolicyModule
-{
- private static final long serialVersionUID = 1;
-
-
- /** In AS we need a URL to create the temporary files */
- URL dynamicClassRoot;
- VirtualFile classes;
- private List<String> excludedRoots;
-
- public TestVFSClassLoaderPolicyModule(VFSClassLoaderFactory classLoadingMetaData, String contextName)
- {
- // FIXME TesetMockClassLoaderPolicyModule constructor
- super(classLoadingMetaData, contextName);
- }
-
- public void setExcludedRoots(List<String> excludedRoots)
- {
- this.excludedRoots = excludedRoots;
- }
-
- /**
- * Get/Create the vfs memory file where we will create dynamic classes
- */
- @Override
- public URL getDynamicClassRoot()
- {
- initDynamicClassRoot();
- return dynamicClassRoot;
- }
-
- /**
- * Prepend the dynamic URL location to the classpath
- */
- @Override
- protected VirtualFile[] determineVFSRoots()
- {
- initDynamicClassRoot();
- Map<Integer, String> truncatedRootPaths = truncateArchiveNestedPaths(this.getRoots());
- VirtualFile[] roots = super.determineVFSRoots();
- restoreArchiveNestedPaths(truncatedRootPaths, roots);
- VirtualFile[] newRoots = new VirtualFile[roots.length + 1];
- newRoots[0] = classes;
- System.arraycopy(roots, 0, newRoots, 1, roots.length);
- return newRoots;
- }
-
- @Override
- // FIXME code copied from determinePolicy method in super class
- protected VFSClassLoaderPolicy determinePolicy()
- {
- VirtualFile[] roots = determineVFSRoots();
-
- // these are the only lines that are different from super class's determinePolicy()
- VirtualFile[] excludedRoots = determineVFSExcludedRoots();
- VFSClassLoaderPolicy policy = VFSClassLoaderPolicy.createVFSClassLoaderPolicy(
- getContextName(), roots, excludedRoots);
-
- String[] packageNames = getPackageNames();
- policy.setExportedPackages(packageNames);
- policy.setIncluded(getIncluded());
- policy.setExcluded(getExcluded());
- policy.setExcludedExport(getExcludedExport());
- policy.setExportAll(getExportAll());
- policy.setImportAll(isImportAll());
- policy.setCacheable(isCacheable());
- policy.setBlackListable(isBlackListable());
- policy.setDelegates(getDelegates());
- return policy;
- }
-
- protected VirtualFile[] determineVFSExcludedRoots()
- {
- if (this.excludedRoots == null || this.excludedRoots.isEmpty())
- {
- return new VirtualFile[0];
- }
- Map<Integer, String> truncatedRootPaths = truncateArchiveNestedPaths(this.excludedRoots);
- VirtualFile[] roots = determineVFSRoots(this.excludedRoots);
- restoreArchiveNestedPaths(truncatedRootPaths, roots);
- return roots;
- }
-
- // FIXME: code copied from determineVFSRoots method in superclass
- protected VirtualFile[] determineVFSRoots(List<String> roots)
- {
- if (roots == null)
- {
- return new VirtualFile[0];
- }
- VirtualFile[] vfsRoots = new VirtualFile[roots.size()];
- for (int i = 0; i < roots.size(); ++i)
- {
- String root = roots.get(i);
- try
- {
- URI uri = new URI(root);
- vfsRoots[i] = getVirtualFile(uri);
- }
- catch (RuntimeException e)
- {
- throw e;
- }
- catch (Exception e)
- {
- throw new RuntimeException("Error creating VFS file for " + root, e);
- }
- }
- return vfsRoots;
- }
-
- private synchronized void initDynamicClassRoot()
- {
- if (dynamicClassRoot == null)
- {
- try
- {
- dynamicClassRoot = new URL("vfsmemory", GUID.asString(), "");
- classes = MemoryFileFactory.createRoot(dynamicClassRoot).getRoot();
- }
- catch (Exception e)
- {
- throw new RuntimeException(e);
- }
- }
- }
-
- /**
- * This method truncated nested archives classpath.
- * For example, the "/home/user_name/jboss-classpool/target/mywar.war/META-INF/classes"
- * is replaced by "/home/user_name/jboss-classpool/target/mywar.war"
- * The truncation is only performed on paths that involve subdirectories of archive files.
- *
- * @param paths a list of paths. After this method is executed, this list will contain the
- * truncated paths
- * @return a map that can be used to restore the truncated paths by invoking
- * {@code #restoreArchiveNestedPaths(Map, VirtualFile[])}
- */
- private Map<Integer, String> truncateArchiveNestedPaths(List<String> paths)
- {
- Map<Integer, String> truncatedRootPaths = new HashMap<Integer, String>();
- for (ListIterator<String> listIterator = paths.listIterator(); listIterator.hasNext();)
- {
- int rootIndex = listIterator.nextIndex();
- String root = listIterator.next();
- int archiveIndex = root.indexOf('.');
- int lastSlash = archiveIndex > 0? root.indexOf('/', archiveIndex): -1;
- if (lastSlash > 0)
- {
- listIterator.set(root.substring(0, lastSlash));
- root = root.substring(lastSlash + 1);
- if (root != null)
- {
- truncatedRootPaths.put(rootIndex, root);
- }
- }
- }
- return truncatedRootPaths;
- }
-
- /**
- * Restores the truncated paths.
- *
- * @param truncatedPaths the result of a previous truncation
- * ({@see #truncateArchiveNestedPaths(List)}).
- * @param paths a list of virtual files representing the truncated paths. Every virtual file
- * in this array that corresponds to a previously truncated path will be
- * replaced the virtual file that represent the original path.
- */
- private void restoreArchiveNestedPaths(
- Map<Integer, String> truncatedPaths, VirtualFile[] paths)
- {
- for (Entry<Integer, String> truncatedPath: truncatedPaths.entrySet())
- {
- int pathIndex = truncatedPath.getKey();
- VirtualFile file = paths[pathIndex];
- String path = truncatedPath.getValue();
- do
- {
- int archiveIndex = path.indexOf('.');
- int lastSlash = archiveIndex > 0? path.indexOf('/', archiveIndex): -1;
- try
- {
- if (lastSlash > 0)
- {
- file = file.getChild(path.substring(0, lastSlash));
- path = path.substring(lastSlash + 1);
- }
- else
- {
- file = file.getChild(path);
- path = null;
- }
- } catch (IOException e)
- {
- throw new RuntimeException("Can't find path " + path + " on root " + file, e);
- }
- } while(path != null);
- paths[pathIndex] = file;
- }
- }
-}
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ParentFirstDelegatingClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ParentFirstDelegatingClassPoolTestCase.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ParentFirstDelegatingClassPoolTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -11,7 +11,7 @@
import junit.framework.TestSuite;
import org.jboss.classpool.domain.ClassPoolDomain;
-import org.jboss.test.classpool.common.ClassFactory;
+import org.jboss.test.classpool.support.ClassFactory;
/*
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ParentLastDelegatingClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ParentLastDelegatingClassPoolTestCase.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ParentLastDelegatingClassPoolTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -10,7 +10,7 @@
import junit.framework.TestSuite;
import org.jboss.classpool.domain.AbstractClassPoolDomain;
-import org.jboss.test.classpool.common.ClassFactory;
+import org.jboss.test.classpool.support.ClassFactory;
/*
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclDelegatingClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclDelegatingClassPoolTestCase.java 2009-12-01 22:53:47 UTC (rev 97264)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclDelegatingClassPoolTestCase.java 2009-12-01 23:18:06 UTC (rev 97265)
@@ -39,7 +39,7 @@
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.test.classpool.common.ClassFactory;
+import org.jboss.test.classpool.support.ClassFactory;
/**
*
More information about the jboss-cvs-commits
mailing list