[jboss-cvs] JBossAS SVN: r97633 - in projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool: jbosscl and 7 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Dec 9 14:21:46 EST 2009
Author: flavia.rainone at jboss.com
Date: 2009-12-09 14:21:45 -0500 (Wed, 09 Dec 2009)
New Revision: 97633
Added:
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/DelegatingClassPoolTestSuite.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/JBossClClassPoolFullTestSuite.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/JBossClClassPoolTestSuite.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/JBossClClassSanityTestSuite.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/CtClassCreationTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/UclClassPoolTestSuite.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ChildUCLInfo.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/GlobalUCLInfo.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/RepositoryClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/RepositorySanityTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/RepositoryTest.java
Removed:
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolDelegatingTestSuite.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolSanityTestSuite.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTestSuite.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/DelegatingClassPoolTestSuite.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ChildCLInfo.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/GlobalCLInfo.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UCLLoaderClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UCLLoaderSanityTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclClassPoolTestSuite.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclLoaderTest.java
Modified:
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/CLDeploymentBuilder.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/JBossCLFactory.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/TestVFSClassLoaderPolicyModule.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveSanityTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainSanityTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderSanityTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTestDelegate.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencyClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencySanityTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencyClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencySanityTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleSanityTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageSanityTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReplaceReferencesClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositoryClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositorySanityTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageSanityTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassFactory.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderFactory.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderInfo.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassPoolTestScenario.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SanityTestScenario.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SupportArchives.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SupportClasses.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/test/ClassPoolTest.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ClassPoolTestDelegate.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/IsLocalResourcePluginFactoryTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/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/test/ScopedSiblingDelegatingClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/SimpleDelegatingClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ParentLastURLClassLoader.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ParentLastURLClassLoaderInfo.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/UCLFactory.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/UCLInfo.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/URLClassLoaderInfo.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/CtClassCreationTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclClassPoolTest.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclClassPoolTestDelegate.java
Log:
[JBREFLECT-74] Cleanup of tests completed.
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/DelegatingClassPoolTestSuite.java (from rev 97574, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/DelegatingClassPoolTestSuite.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/DelegatingClassPoolTestSuite.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/DelegatingClassPoolTestSuite.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -0,0 +1,59 @@
+/*
+ * 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;
+
+import org.jboss.test.classpool.test.IsLocalResourcePluginFactoryTestCase;
+import org.jboss.test.classpool.test.ParentFirstDelegatingClassPoolTestCase;
+import org.jboss.test.classpool.test.ParentLastDelegatingClassPoolTestCase;
+import org.jboss.test.classpool.test.ScopedSiblingDelegatingClassPoolTestCase;
+import org.jboss.test.classpool.test.SimpleDelegatingClassPoolTestCase;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+/**
+ * Test Suite for DelegatingClassPool test cases.
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision$
+ */
+public class DelegatingClassPoolTestSuite extends TestSuite
+{
+ public static void main(String[] args)
+ {
+ TestRunner.run(suite());
+ }
+
+ public static Test suite()
+ {
+ TestSuite suite = new TestSuite("DelegatingClassPool All Tests");
+
+ suite.addTestSuite(IsLocalResourcePluginFactoryTestCase.class);
+ suite.addTestSuite(ParentFirstDelegatingClassPoolTestCase.class);
+ suite.addTestSuite(ParentLastDelegatingClassPoolTestCase.class);
+ suite.addTestSuite(ScopedSiblingDelegatingClassPoolTestCase.class);
+ suite.addTestSuite(SimpleDelegatingClassPoolTestCase.class);
+
+ return suite;
+ }
+}
\ No newline at end of file
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/JBossClClassPoolFullTestSuite.java (from rev 97574, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTestSuite.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/JBossClClassPoolFullTestSuite.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/JBossClClassPoolFullTestSuite.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -0,0 +1,49 @@
+/*
+ * 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;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+/**
+ * Contains all JBoss CL test cases.
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision$
+ */
+public class JBossClClassPoolFullTestSuite extends TestSuite
+{
+ public static void main(String[] args)
+ {
+ TestRunner.run(suite());
+ }
+
+ public static Test suite()
+ {
+ TestSuite suite = new TestSuite("JBoss-cl All Tests");
+
+ suite.addTest(JBossClClassSanityTestSuite.suite());
+ suite.addTest(JBossClClassPoolTestSuite.suite());
+ return suite;
+ }
+}
\ No newline at end of file
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/JBossClClassPoolTestSuite.java (from rev 97574, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolDelegatingTestSuite.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/JBossClClassPoolTestSuite.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/JBossClClassPoolTestSuite.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -0,0 +1,71 @@
+/*
+ * 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;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+import org.jboss.test.classpool.jbosscl.test.ArchiveClassPoolTestCase;
+import org.jboss.test.classpool.jbosscl.test.CtClassCreationTestCase;
+import org.jboss.test.classpool.jbosscl.test.HierarchicalDomainClassPoolTestCase;
+import org.jboss.test.classpool.jbosscl.test.HierarchicalParentLoaderClassPoolTestCase;
+import org.jboss.test.classpool.jbosscl.test.ModuleDependencyClassPoolTestCase;
+import org.jboss.test.classpool.jbosscl.test.PackageDependencyClassPoolTestCase;
+import org.jboss.test.classpool.jbosscl.test.ReExportModuleClassPoolTestCase;
+import org.jboss.test.classpool.jbosscl.test.ReExportPackageClassPoolTestCase;
+import org.jboss.test.classpool.jbosscl.test.ReplaceReferencesClassPoolTestCase;
+import org.jboss.test.classpool.jbosscl.test.RepositoryClassPoolTestCase;
+import org.jboss.test.classpool.jbosscl.test.UsesPackageClassPoolTestCase;
+
+/**
+ * TestSuite for all JBossClClassPool test cases.
+ *
+ * @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 JBossClClassPoolTestSuite extends TestSuite
+{
+ public static void main(String[] args)
+ {
+ TestRunner.run(suite());
+ }
+
+ public static Test suite()
+ {
+ TestSuite suite = new TestSuite("JBoss-cl Pool Tests");
+
+ suite.addTestSuite(ArchiveClassPoolTestCase.class);
+ suite.addTestSuite(CtClassCreationTestCase.class);
+ suite.addTestSuite(HierarchicalDomainClassPoolTestCase.class);
+ suite.addTestSuite(HierarchicalParentLoaderClassPoolTestCase.class);
+ suite.addTestSuite(ModuleDependencyClassPoolTestCase.class);
+ suite.addTestSuite(PackageDependencyClassPoolTestCase.class);
+ suite.addTestSuite(ReExportModuleClassPoolTestCase.class);
+ suite.addTestSuite(ReExportPackageClassPoolTestCase.class);
+ suite.addTestSuite(ReplaceReferencesClassPoolTestCase.class);
+ suite.addTestSuite(RepositoryClassPoolTestCase.class);
+ suite.addTestSuite(UsesPackageClassPoolTestCase.class);
+ return suite;
+ }
+}
\ No newline at end of file
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/JBossClClassSanityTestSuite.java (from rev 97574, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolSanityTestSuite.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/JBossClClassSanityTestSuite.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/JBossClClassSanityTestSuite.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -0,0 +1,68 @@
+/*
+ * 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;
+
+import org.jboss.test.classpool.jbosscl.test.ArchiveSanityTestCase;
+import org.jboss.test.classpool.jbosscl.test.HierarchicalDomainSanityTestCase;
+import org.jboss.test.classpool.jbosscl.test.HierarchicalParentLoaderSanityTestCase;
+import org.jboss.test.classpool.jbosscl.test.ModuleDependencySanityTestCase;
+import org.jboss.test.classpool.jbosscl.test.PackageDependencySanityTestCase;
+import org.jboss.test.classpool.jbosscl.test.ReExportModuleSanityTestCase;
+import org.jboss.test.classpool.jbosscl.test.ReExportPackageSanityTestCase;
+import org.jboss.test.classpool.jbosscl.test.RepositorySanityTestCase;
+import org.jboss.test.classpool.jbosscl.test.UsesPackageSanityTestCase;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+/**
+ * TestSuite for all JBossCl Sanity test cases.
+ *
+ * @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 JBossClClassSanityTestSuite extends TestSuite
+{
+ public static void main(String[] args)
+ {
+ TestRunner.run(suite());
+ }
+
+ public static Test suite()
+ {
+ TestSuite suite = new TestSuite("JBoss-cl Sanity Tests");
+
+ suite.addTestSuite(ArchiveSanityTestCase.class);
+ suite.addTestSuite(HierarchicalDomainSanityTestCase.class);
+ suite.addTestSuite(HierarchicalParentLoaderSanityTestCase.class);
+ suite.addTestSuite(ModuleDependencySanityTestCase.class);
+ suite.addTestSuite(PackageDependencySanityTestCase.class);
+ suite.addTestSuite(ReExportModuleSanityTestCase.class);
+ suite.addTestSuite(ReExportPackageSanityTestCase.class);
+ suite.addTestSuite(RepositorySanityTestCase.class);
+ suite.addTestSuite(UsesPackageSanityTestCase.class);
+
+ return suite;
+ }
+}
\ No newline at end of file
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/CLDeploymentBuilder.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/CLDeploymentBuilder.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/CLDeploymentBuilder.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -42,6 +42,7 @@
import org.jboss.test.classpool.support.ClassLoaderInfo;
/**
+ * Builds a CLDeployment that will result in the creation of a ClassLoader.
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision$
@@ -92,7 +93,6 @@
this.importAll = importAll;
}
- // TODO set synchronized on all methods
public void createDomain(String domain, String parentDomain, boolean parentFirst)
{
if (DomainRegistry.contains(domain))
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/JBossCLFactory.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/JBossCLFactory.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/JBossCLFactory.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -39,11 +39,11 @@
import org.jboss.test.classpool.support.SupportClasses;
/**
+ * Creates JBoss Class Loaders (AS5 and newer).
+ *
* @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
- *
* @version $Revision$
*/
-
public class JBossCLFactory implements ClassLoaderFactory<CLDeploymentBuilder>
{
/** The classloader helper */
@@ -69,19 +69,32 @@
this.loaderRegistry = new LoaderRegistry(mc);
}
- public ClassLoader create(CLDeploymentBuilder classLoaderBuilder) throws Exception
+ public synchronized ClassLoader create(CLDeploymentBuilder classLoaderBuilder) throws Exception
{
KernelDeployment deployment = classLoaderBuilder.createDeployment();
microcontainer.deploy(deployment);
VFSClassLoaderFactory factory = classLoaderBuilder.getMetaDataFactory();
factory.setContextName(getContextName(factory));
loaderRegistry.registerDeployment(classLoaderBuilder);
- return getClassLoader(classLoaderBuilder);
+ return retrieve(classLoaderBuilder);
}
+
+ public synchronized void destroy(CLDeploymentBuilder classLoaderBuilder) throws Exception
+ {
+ loaderRegistry.unregisterDeployment(classLoaderBuilder);
+ microcontainer.undeploy(classLoaderBuilder.undeploy());
+ isAvailable(classLoaderBuilder);
+ }
- public ClassLoader getClassLoader(CLDeploymentBuilder classLoaderBuilder)
- throws Exception
+ public synchronized void destroyAll()
{
+ destroyClassLoaders();
+ unregisterDomains();
+ assertCannotLoadSupportClasses();
+ }
+
+ public synchronized ClassLoader retrieve(CLDeploymentBuilder classLoaderBuilder) throws Exception
+ {
VFSClassLoaderFactory factory = classLoaderBuilder.getMetaDataFactory();
try
{
@@ -96,49 +109,27 @@
throw new NoSuchClassLoaderException(e);
}
}
+
+ public synchronized Collection<ClassLoader> retrieveAll()
+ {
+ return loaderRegistry.getClassLoaders();
+ }
- /**
- * 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
+ public synchronized boolean isAvailable(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);
+ return bean != null;
}
catch (Throwable t)
{
AbstractTestCase.checkThrowable(IllegalStateException.class, t);
+ return false;
}
}
-
- public void destroyLoader(CLDeploymentBuilder classLoaderBuilder)
- throws Exception
- {
- loaderRegistry.unregisterDeployment(classLoaderBuilder);
- microcontainer.undeploy(classLoaderBuilder.undeploy());
- cannotGetLoader(classLoaderBuilder);
- }
- public Collection<ClassLoader> getCreatedClassLoaders()
- {
- return loaderRegistry.getClassLoaders();
- }
-
- public void destroyLoaders()
- {
- destroyClassLoaders();
- unregisterDomains();
- assertCannotLoadSupportClasses();
- }
-
/************* HELPER METHODS **********************************************************/
private void assertCannotLoadSupportClasses()
@@ -205,7 +196,6 @@
}
}
-
protected void destroy(ClassLoader classLoader)
{
KernelDeployment deployment = loaderRegistry.unregisterDeployment(classLoader);
Modified: 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/LoaderRegistry.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/LoaderRegistry.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -70,7 +70,11 @@
/** Deployments */
private Map<String, KernelDeployment> deploymentsByName = new HashMap<String, KernelDeployment>();
-
+ /**
+ * Constructor.
+ *
+ * @param microcontainer necessary for retrieval of mc beans
+ */
public LoaderRegistry(MicrocontainerFacade microcontainer)
{
this.microcontainer = microcontainer;
@@ -79,7 +83,7 @@
"ClassLoaderScopingPolicy");
}
- public void registerDeployment(CLDeploymentBuilder clDeploymentBuilder)
+ public synchronized void registerDeployment(CLDeploymentBuilder clDeploymentBuilder)
{
KernelDeployment deployment = clDeploymentBuilder.getDeployment();
VFSClassLoaderFactory factory = clDeploymentBuilder.getMetaDataFactory();
@@ -106,7 +110,7 @@
}
}
- public void registerClassLoader(ClassLoader classLoader, CLDeploymentBuilder clDeploymentBuilder)
+ public synchronized void registerClassLoader(ClassLoader classLoader, CLDeploymentBuilder clDeploymentBuilder)
{
VFSClassLoaderFactory factory = clDeploymentBuilder.getMetaDataFactory();
String name = factory.getContextName() + "$MODULE";
@@ -135,23 +139,23 @@
}
}
- public KernelDeployment unregisterDeployment(ClassLoader classLoader)
+ public synchronized KernelDeployment unregisterDeployment(ClassLoader classLoader)
{
String name = ((BaseClassLoader) classLoader).getName();
classLoaders.remove(name);
return deploymentsByName.remove(name);
}
- public Collection<ClassLoader> getClassLoaders()
+ public synchronized Collection<ClassLoader> getClassLoaders()
{
return new ArrayList<ClassLoader>(classLoaders.values());
}
- public ClassLoaderDomain getDomainForClassLoader(ClassLoader loader)
+ public synchronized 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);
}
-}
+}
\ No newline at end of file
Modified: 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/jbosscl/support/TestVFSClassLoaderPolicyModule.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/support/TestVFSClassLoaderPolicyModule.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,24 +1,24 @@
/*
-* 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.
-*/
+ * 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;
@@ -56,7 +56,7 @@
public TestVFSClassLoaderPolicyModule(VFSClassLoaderFactory classLoadingMetaData, String contextName)
{
- // FIXME TesetMockClassLoaderPolicyModule constructor
+ // FIXME TestMockClassLoaderPolicyModule constructor
super(classLoadingMetaData, contextName);
}
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -23,8 +23,6 @@
import javassist.ClassPool;
import javassist.CtClass;
-import junit.framework.Test;
-import junit.framework.TestSuite;
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.ClassPoolTestScenario;
@@ -38,11 +36,6 @@
*/
public class ArchiveClassPoolTestCase extends ArchiveTest<CtClass, ClassPool>
{
- public static Test suite()
- {
- return new TestSuite(ArchiveClassPoolTestCase.class);
- }
-
public ArchiveClassPoolTestCase(String name)
{
super(name);
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveSanityTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -21,9 +21,6 @@
*/
package org.jboss.test.classpool.jbosscl.test;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.SanityTestScenario;
import org.jboss.test.classpool.support.TestScenario;
@@ -37,11 +34,6 @@
*/
public class ArchiveSanityTestCase extends ArchiveTest<Class<?>, ClassLoader>
{
- public static Test suite()
- {
- return new TestSuite(ArchiveSanityTestCase.class);
- }
-
public ArchiveSanityTestCase(String name)
{
super(name);
Added: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/CtClassCreationTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/CtClassCreationTestCase.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/CtClassCreationTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -0,0 +1,241 @@
+/*
+ * 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.test;
+
+import static org.jboss.test.classpool.support.SupportArchives.JAR_A_1_URL;
+import static org.jboss.test.classpool.support.SupportArchives.JAR_B_1_URL;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_A;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_B;
+import static org.jboss.test.classpool.support.SupportClasses.PACKAGE_A;
+import static org.jboss.test.classpool.support.SupportClasses.PACKAGE_B;
+
+import java.util.ArrayList;
+
+import javassist.ClassPool;
+import javassist.CtClass;
+
+import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
+import org.jboss.test.classpool.support.ClassFactory;
+import org.jboss.test.classpool.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
+
+/**
+ * Tests creation of CtClasses using ClassPools for JBoss ClassLoaders.
+ *
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
+ * @version $Revision$
+ */
+public class CtClassCreationTestCase extends RepositoryTest<CtClass, ClassPool>
+{
+ public CtClassCreationTestCase(String name)
+ {
+ super(name);
+ }
+
+ @Override
+ protected TestScenario<CtClass, ClassPool, CLDeploymentBuilder> getTestScenario()
+ {
+ return new ClassPoolTestScenario<CLDeploymentBuilder>(getClassLoaderFactory());
+ }
+
+ public void testCreatedClassInSamePackage() throws Exception
+ {
+ ClassPool poolA = testScenario.createLoader(new CLDeploymentBuilder("A", JAR_A_1_URL));
+ ClassPool poolB = testScenario.createLoader(new CLDeploymentBuilder("B", JAR_B_1_URL));
+
+ ClassLoader loaderA = poolA.getClassLoader();
+ ClassLoader loaderB = poolB.getClassLoader();
+
+ Class<?> classA = loaderA.loadClass(CLASS_A);
+ Class<?> classB = loaderB.loadClass(CLASS_B);
+
+ Object createdA = ClassFactory.create(classA, loaderA);
+ Object createdB = ClassFactory.create(classB, loaderB);
+
+ Class<?> createdClassA = createdA.getClass();
+ Class<?> createdClassB = createdB.getClass();
+
+ assertTrue(classA.isAssignableFrom(createdClassA));
+ assertTrue(classB.isAssignableFrom(createdClassB));
+ assertTrue(createdClassA.getName().startsWith(PACKAGE_A));
+ assertTrue(createdClassB.getName().startsWith(PACKAGE_B));
+
+ assertSame(createdClassA, loaderA.loadClass(createdClassA.getName()));
+ assertSame(createdClassB, loaderA.loadClass(createdClassB.getName()));
+ assertSame(createdClassA, loaderB.loadClass(createdClassA.getName()));
+ assertSame(createdClassB, loaderB.loadClass(createdClassB.getName()));
+ }
+
+ // TODO check commented out tests. They should be deleted after JBAOP-742 being merged to
+ // JBoss AOP trunk
+ /*public void testMakeContainerProxyInSamePackage() throws Exception
+ {
+ ClassPool globalPoolA = null;
+ ClassPool globalPoolB = null;
+ try
+ {
+ globalPoolA = createClassPool("A", true, JAR_A_1);
+ globalPoolB = createClassPool("B", true, JAR_B_1);
+
+ ClassLoader loaderA = globalPoolA.getClassLoader();
+ ClassLoader loaderB = globalPoolB.getClassLoader();
+
+ loaderA.loadClass(ProxyTemplate.class.getName());
+
+ Object proxyA = assertMakeContainerProxy(loaderA.loadClass(CLASS_A), loaderA);
+ Object proxyB = assertMakeContainerProxy(loaderB.loadClass(CLASS_B), loaderB);
+
+ Class<?> clazzA = proxyA.getClass();
+ Class<?> clazzB = proxyB.getClass();
+
+ assertTrue(AspectManaged.class.isAssignableFrom(clazzA));
+ assertTrue(AspectManaged.class.isAssignableFrom(clazzB));
+ assertTrue(clazzA.getName().startsWith(PACKAGE_A));
+ assertTrue(clazzB.getName().startsWith(PACKAGE_B));
+
+ assertSame(clazzA, loaderA.loadClass(clazzA.getName()));
+ assertSame(clazzB, loaderA.loadClass(clazzB.getName()));
+ assertSame(clazzA, loaderB.loadClass(clazzA.getName()));
+ assertSame(clazzB, loaderB.loadClass(clazzB.getName()));
+ }
+ finally
+ {
+ unregisterClassPool(globalPoolA);
+ unregisterClassPool(globalPoolB);
+ }
+ }*/
+
+ /*public void testMakeContainerProxyForSystemClass() throws Exception
+ {
+ ClassPool globalPoolA = null;
+ ClassPool globalPoolB = null;
+ try
+ {
+ BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
+ createModule("ModuleA").
+ createPackage(PACKAGE_A).
+ createPackage(ContainerProxyFactory.PROXY_CLASSES_DEFAULT_PACKAGE);
+ globalPoolA = createClassPool("A", true, builderA, JAR_A_1);
+
+ BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
+ createModule("ModuleB").
+ createPackage(PACKAGE_B).
+ createPackage(ContainerProxyFactory.PROXY_CLASSES_DEFAULT_PACKAGE);
+ globalPoolB = createClassPool("B", true, builderB, JAR_B_1);
+
+ ClassLoader loaderA = globalPoolA.getClassLoader();
+ ClassLoader loaderB = globalPoolB.getClassLoader();
+
+ loaderA.loadClass(ProxyTemplate.class.getName());
+
+ Object proxyA = assertMakeContainerProxy(ArrayList.class, loaderA);
+ Object proxyB = assertMakeContainerProxy(ArrayList.class, loaderB);
+
+ Class<?> clazzA = proxyA.getClass();
+ Class<?> clazzB = proxyB.getClass();
+
+ assertTrue(AspectManaged.class.isAssignableFrom(clazzA));
+ assertTrue(AspectManaged.class.isAssignableFrom(clazzB));
+ assertTrue(clazzA.getName().startsWith(ContainerProxyFactory.PROXY_CLASSES_DEFAULT_PACKAGE));
+ assertTrue(clazzB.getName().startsWith(ContainerProxyFactory.PROXY_CLASSES_DEFAULT_PACKAGE));
+
+ assertSame(clazzA, loaderA.loadClass(clazzA.getName()));
+ assertSame(clazzB, loaderA.loadClass(clazzB.getName()));
+ assertSame(clazzA, loaderB.loadClass(clazzA.getName()));
+ assertSame(clazzB, loaderB.loadClass(clazzB.getName()));
+ }
+ finally
+ {
+ unregisterClassPool(globalPoolA);
+ unregisterClassPool(globalPoolB);
+ }
+ }*/
+
+ public void testCreateClassForSystemClass() throws Exception
+ {
+ CLDeploymentBuilder clBuilderA = new CLDeploymentBuilder("A", JAR_A_1_URL);
+ clBuilderA.createModule("ModuleA").createPackage(PACKAGE_A);
+ clBuilderA.createPackage(ClassFactory.PACKAGE).setImportAll(true);
+ ClassPool poolA = testScenario.createLoader(clBuilderA);
+
+ CLDeploymentBuilder clBuilderB = new CLDeploymentBuilder("B", JAR_B_1_URL);
+ clBuilderB.createModule("ModuleB").createPackage(PACKAGE_B);
+ clBuilderB.createPackage(ClassFactory.PACKAGE).setImportAll(true);
+ ClassPool poolB = testScenario.createLoader(clBuilderB);
+
+ ClassLoader loaderA = poolA.getClassLoader();
+ ClassLoader loaderB = poolB.getClassLoader();
+
+ Object createdA = ClassFactory.create(ArrayList.class, loaderA);
+ Object createdB = ClassFactory.create(ArrayList.class, loaderB);
+
+ Class<?> createdClassA = createdA.getClass();
+ Class<?> createdClassB = createdB.getClass();
+
+ assertTrue(ArrayList.class.isAssignableFrom(createdClassA));
+ assertTrue(ArrayList.class.isAssignableFrom(createdClassB));
+ assertTrue(createdClassA.getName().startsWith(ClassFactory.PACKAGE));
+ assertTrue(createdClassB.getName().startsWith(ClassFactory.PACKAGE));
+
+ assertSame(createdClassA, loaderA.loadClass(createdClassA.getName()));
+ assertSame(createdClassB, loaderA.loadClass(createdClassB.getName()));
+ assertSame(createdClassA, loaderB.loadClass(createdClassA.getName()));
+ assertSame(createdClassB, loaderB.loadClass(createdClassB.getName()));
+ }
+
+ /*private Object assertMakeContainerProxy(Class<?> parent, ClassLoader loader) throws Exception
+ {
+ AOPProxyFactoryParameters params = new AOPProxyFactoryParameters();
+ params.setProxiedClass(parent);
+ params.setTarget(parent.newInstance());
+ params.setClassLoader(loader);
+ params.setInterfaces(new Class<?>[] {java.io.Serializable.class});
+ GeneratedAOPProxyFactory factory = new GeneratedAOPProxyFactory();
+ Object proxy = factory.createAdvisedProxy(params);
+ assertFalse(parent.getName() == proxy.getClass().getName());
+ assertSame(loader, proxy.getClass().getClassLoader());
+ return proxy;
+ }*/
+
+ /*private static final String PROXY_PACKAGE = "org.test.classpool.proxy";
+ private static final String PROXY_CLASS = PROXY_PACKAGE + ".Proxy";
+ private static int counter = 0;
+
+ private Object assertMakeSimpleProxy(Class<?> parent, ClassLoader loader) throws Exception
+ {
+ //AOPProxyFactoryParameters params = new AOPProxyFactoryParameters();
+ //params.setProxiedClass(parent);
+ //params.setTarget(parent.newInstance());
+ //params.setClassLoader(loader);
+ ClassPool pool = ClassPoolRepository.getInstance().getRegisteredCLs().get(loader);
+ CtClass ctClazz = pool.makeClass(PROXY_CLASS + counter++);
+ ctClazz.setSuperclass(pool.get(parent.getName()));
+ Class<?> clazz = pool.toClass(ctClazz);
+ //params.setInterfaces(new Class<?>[] {java.io.Serializable.class});
+ //GeneratedAOPProxyFactory factory = new GeneratedAOPProxyFactory();
+ //Object proxy = factory.createAdvisedProxy(params);
+ //assertFalse(parent.getName() == proxy.getClass().getName());
+ assertSame(loader, clazz.getClassLoader());
+ //return proxy;
+ return clazz.newInstance();
+ }*/
+}
\ No newline at end of file
Property changes on: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/CtClassCreationTestCase.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -23,8 +23,6 @@
import javassist.ClassPool;
import javassist.CtClass;
-import junit.framework.Test;
-import junit.framework.TestSuite;
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.ClassPoolTestScenario;
@@ -37,14 +35,8 @@
* @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
* @version $Revision$
*/
-public class HierarchicalDomainClassPoolTestCase extends
- HierarchicalDomainTest<CtClass, ClassPool>
+public class HierarchicalDomainClassPoolTestCase extends HierarchicalDomainTest<CtClass, ClassPool>
{
- public static Test suite()
- {
- return new TestSuite(HierarchicalDomainClassPoolTestCase.class);
- }
-
public HierarchicalDomainClassPoolTestCase(String name)
{
super(name);
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalDomainSanityTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -21,9 +21,6 @@
*/
package org.jboss.test.classpool.jbosscl.test;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.SanityTestScenario;
import org.jboss.test.classpool.support.TestScenario;
@@ -39,11 +36,6 @@
public class HierarchicalDomainSanityTestCase extends
HierarchicalDomainTest<Class<?>, ClassLoader>
{
- public static Test suite()
- {
- return new TestSuite(HierarchicalDomainSanityTestCase.class);
- }
-
public HierarchicalDomainSanityTestCase(String name)
{
super(name);
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -23,8 +23,6 @@
import javassist.ClassPool;
import javassist.CtClass;
-import junit.framework.Test;
-import junit.framework.TestSuite;
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.ClassPoolTestScenario;
@@ -40,11 +38,6 @@
public class HierarchicalParentLoaderClassPoolTestCase extends
HierarchicalParentLoaderTest<CtClass, ClassPool>
{
- public static Test suite()
- {
- return new TestSuite(HierarchicalParentLoaderClassPoolTestCase.class);
- }
-
public HierarchicalParentLoaderClassPoolTestCase(String name)
{
super(name);
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/HierarchicalParentLoaderSanityTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -21,9 +21,6 @@
*/
package org.jboss.test.classpool.jbosscl.test;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.SanityTestScenario;
import org.jboss.test.classpool.support.TestScenario;
@@ -40,11 +37,6 @@
public class HierarchicalParentLoaderSanityTestCase extends
HierarchicalParentLoaderTest<Class<?>, ClassLoader>
{
- public static Test suite()
- {
- return new TestSuite(HierarchicalParentLoaderSanityTestCase.class);
- }
-
public HierarchicalParentLoaderSanityTestCase(String name)
{
super(name);
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolDelegatingTestSuite.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolDelegatingTestSuite.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolDelegatingTestSuite.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,57 +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.jbosscl.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import junit.textui.TestRunner;
-
-/**
- *
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision$
- */
-public class JBossClClassPoolDelegatingTestSuite extends TestSuite
-{
- public static void main(String[] args)
- {
- TestRunner.run(suite());
- }
-
- public static Test suite()
- {
- TestSuite suite = new TestSuite("JBoss-cl Pool Tests");
-
- suite.addTest(ArchiveClassPoolTestCase.suite());
- suite.addTest(RepositoryClassPoolTestCase.suite());
- suite.addTest(ModuleDependencyClassPoolTestCase.suite());
- suite.addTest(PackageDependencyClassPoolTestCase.suite());
- suite.addTest(ReExportModuleClassPoolTestCase.suite());
- suite.addTest(ReExportPackageClassPoolTestCase.suite());
- suite.addTest(UsesPackageClassPoolTestCase.suite());
- suite.addTest(HierarchicalDomainClassPoolTestCase.suite());
- suite.addTest(HierarchicalParentLoaderClassPoolTestCase.suite());
- suite.addTest(ReplaceReferencesClassPoolTestCase.suite());
- return suite;
- }
-
-}
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolSanityTestSuite.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolSanityTestSuite.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolSanityTestSuite.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,57 +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.jbosscl.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import junit.textui.TestRunner;
-
-/**
- *
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision$
- */
-public class JBossClClassPoolSanityTestSuite extends TestSuite
-{
- public static void main(String[] args)
- {
- TestRunner.run(suite());
- }
-
- public static Test suite()
- {
- TestSuite suite = new TestSuite("JBoss-cl Sanity Tests");
-
- suite.addTest(ArchiveSanityTestCase.suite());
- suite.addTest(RepositorySanityTestCase.suite());
- suite.addTest(ModuleDependencySanityTestCase.suite());
- suite.addTest(PackageDependencySanityTestCase.suite());
- suite.addTest(ReExportModuleSanityTestCase.suite());
- suite.addTest(ReExportPackageSanityTestCase.suite());
- suite.addTest(UsesPackageSanityTestCase.suite());
- suite.addTest(HierarchicalDomainSanityTestCase.suite());
- suite.addTest(HierarchicalParentLoaderSanityTestCase.suite());
-
- return suite;
- }
-
-}
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -34,7 +34,6 @@
import org.jboss.test.classpool.jbosscl.support.JBossCLFactory;
import org.jboss.test.classpool.support.ClassLoaderFactory;
import org.jboss.test.classpool.support.MicrocontainerFacade;
-import org.jboss.test.classpool.support.SupportClasses;
import org.jboss.test.classpool.support.TestScenario;
import org.jboss.test.kernel.junit.MicrocontainerTest;
import org.jboss.virtual.VFS;
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTestDelegate.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTestDelegate.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTestDelegate.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -45,6 +45,7 @@
*/
public class JBossClClassPoolTestDelegate extends MicrocontainerTestDelegate
{
+ @SuppressWarnings("unused")
private static ParentPolicy parentPolicy;
private MainDeployerImpl mainDeployer;
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTestSuite.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTestSuite.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTestSuite.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,49 +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.jbosscl.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import junit.textui.TestRunner;
-
-/**
- *
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision$
- */
-public class JBossClClassPoolTestSuite extends TestSuite
-{
- public static void main(String[] args)
- {
- TestRunner.run(suite());
- }
-
- public static Test suite()
- {
- TestSuite suite = new TestSuite("JBoss-cl All Tests");
-
- suite.addTest(JBossClClassPoolSanityTestSuite.suite());
- suite.addTest(JBossClClassPoolDelegatingTestSuite.suite());
- return suite;
- }
-
-}
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencyClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -23,8 +23,6 @@
import javassist.ClassPool;
import javassist.CtClass;
-import junit.framework.Test;
-import junit.framework.TestSuite;
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.ClassPoolTestScenario;
@@ -39,11 +37,6 @@
*/
public class ModuleDependencyClassPoolTestCase extends ModuleDependencyTest<CtClass, ClassPool>
{
- public static Test suite()
- {
- return new TestSuite(ModuleDependencyClassPoolTestCase.class);
- }
-
public ModuleDependencyClassPoolTestCase(String name)
{
super(name);
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ModuleDependencySanityTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -21,9 +21,6 @@
*/
package org.jboss.test.classpool.jbosscl.test;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.SanityTestScenario;
import org.jboss.test.classpool.support.TestScenario;
@@ -37,11 +34,6 @@
*/
public class ModuleDependencySanityTestCase extends ModuleDependencyTest<Class<?>, ClassLoader>
{
- public static Test suite()
- {
- return new TestSuite(ModuleDependencySanityTestCase.class);
- }
-
public ModuleDependencySanityTestCase(String name)
{
super(name);
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencyClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -23,8 +23,6 @@
import javassist.ClassPool;
import javassist.CtClass;
-import junit.framework.Test;
-import junit.framework.TestSuite;
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.ClassPoolTestScenario;
@@ -38,11 +36,6 @@
*/
public class PackageDependencyClassPoolTestCase extends PackageDependencyTest<CtClass, ClassPool>
{
- public static Test suite()
- {
- return new TestSuite(PackageDependencyClassPoolTestCase.class);
- }
-
public PackageDependencyClassPoolTestCase(String name)
{
super(name);
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/PackageDependencySanityTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -21,9 +21,6 @@
*/
package org.jboss.test.classpool.jbosscl.test;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.SanityTestScenario;
import org.jboss.test.classpool.support.TestScenario;
@@ -37,11 +34,6 @@
*/
public class PackageDependencySanityTestCase extends PackageDependencyTest<Class<?>, ClassLoader>
{
- public static Test suite()
- {
- return new TestSuite(PackageDependencySanityTestCase.class);
- }
-
public PackageDependencySanityTestCase(String name)
{
super(name);
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -23,8 +23,6 @@
import javassist.ClassPool;
import javassist.CtClass;
-import junit.framework.Test;
-import junit.framework.TestSuite;
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.ClassPoolTestScenario;
@@ -40,11 +38,6 @@
public class ReExportModuleClassPoolTestCase extends
ReExportModuleTest<CtClass, ClassPool>
{
- public static Test suite()
- {
- return new TestSuite(ReExportModuleClassPoolTestCase.class);
- }
-
public ReExportModuleClassPoolTestCase(String name)
{
super(name);
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportModuleSanityTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -21,9 +21,6 @@
*/
package org.jboss.test.classpool.jbosscl.test;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.SanityTestScenario;
import org.jboss.test.classpool.support.TestScenario;
@@ -38,11 +35,6 @@
*/
public class ReExportModuleSanityTestCase extends ReExportModuleTest<Class<?>, ClassLoader>
{
- public static Test suite()
- {
- return new TestSuite(ReExportModuleSanityTestCase.class);
- }
-
public ReExportModuleSanityTestCase(String name)
{
super(name);
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -23,8 +23,6 @@
import javassist.ClassPool;
import javassist.CtClass;
-import junit.framework.Test;
-import junit.framework.TestSuite;
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.ClassPoolTestScenario;
@@ -36,14 +34,8 @@
* @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
* @version $Revision$
*/
-public class ReExportPackageClassPoolTestCase extends
- ReExportPackageTest<CtClass, ClassPool>
+public class ReExportPackageClassPoolTestCase extends ReExportPackageTest<CtClass, ClassPool>
{
- public static Test suite()
- {
- return new TestSuite(ReExportPackageClassPoolTestCase.class);
- }
-
public ReExportPackageClassPoolTestCase(String name)
{
super(name);
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReExportPackageSanityTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -21,9 +21,6 @@
*/
package org.jboss.test.classpool.jbosscl.test;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.SanityTestScenario;
import org.jboss.test.classpool.support.TestScenario;
@@ -38,11 +35,6 @@
*/
public class ReExportPackageSanityTestCase extends ReExportPackageTest<Class<?>, ClassLoader>
{
- public static Test suite()
- {
- return new TestSuite(ReExportPackageSanityTestCase.class);
- }
-
public ReExportPackageSanityTestCase(String name)
{
super(name);
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ReplaceReferencesClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -40,7 +40,6 @@
import javassist.CtNewMethod;
import javassist.Modifier;
import javassist.scopedpool.ScopedClassPool;
-import junit.framework.Test;
import org.jboss.classloading.spi.DomainClassLoader;
import org.jboss.classpool.spi.ClassPoolRepository;
@@ -70,11 +69,6 @@
super(name);
}
- public static Test suite()
- {
- return suite(ReplaceReferencesClassPoolTestCase.class);
- }
-
@Override
protected TestScenario<CtClass, ClassPool, CLDeploymentBuilder> getTestScenario()
{
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositoryClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -25,18 +25,10 @@
import static org.jboss.test.classpool.support.SupportArchives.JAR_B_1_URL;
import static org.jboss.test.classpool.support.SupportClasses.CLASS_A;
import static org.jboss.test.classpool.support.SupportClasses.CLASS_B;
-import static org.jboss.test.classpool.support.SupportClasses.PACKAGE_A;
-import static org.jboss.test.classpool.support.SupportClasses.PACKAGE_B;
-
-import java.util.ArrayList;
-
import javassist.ClassPool;
import javassist.CtClass;
-import junit.framework.Test;
-import junit.framework.TestSuite;
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
-import org.jboss.test.classpool.support.ClassFactory;
import org.jboss.test.classpool.support.ClassPoolTestScenario;
import org.jboss.test.classpool.support.TestScenario;
@@ -49,11 +41,6 @@
*/
public class RepositoryClassPoolTestCase extends RepositoryTest<CtClass, ClassPool>
{
- public static Test suite()
- {
- return new TestSuite(RepositoryClassPoolTestCase.class);
- }
-
public RepositoryClassPoolTestCase(String name)
{
super(name);
@@ -91,8 +78,6 @@
assertSame(intClass, intArrayClass.getComponentType());
assertSame(byteClassA.getClassPool(), intClass.getClassPool());
-
-
assertTrue(aArray.isArray());
assertSame(a, aArray.getComponentType());
assertTrue(bArray.isArray());
@@ -104,184 +89,4 @@
assertSame(a.getClassPool(), aArray.getClassPool());
assertSame(b.getClassPool(), bArray.getClassPool());
}
-
- public void testCreatedClassInSamePackage() throws Exception
- {
- ClassPool poolA = testScenario.createLoader(new CLDeploymentBuilder("A", JAR_A_1_URL));
- ClassPool poolB = testScenario.createLoader(new CLDeploymentBuilder("B", JAR_B_1_URL));
-
- ClassLoader loaderA = poolA.getClassLoader();
- ClassLoader loaderB = poolB.getClassLoader();
-
- Class<?> classA = loaderA.loadClass(CLASS_A);
- Class<?> classB = loaderB.loadClass(CLASS_B);
-
- Object createdA = ClassFactory.create(classA, loaderA);
- Object createdB = ClassFactory.create(classB, loaderB);
-
- Class<?> createdClassA = createdA.getClass();
- Class<?> createdClassB = createdB.getClass();
-
- assertTrue(classA.isAssignableFrom(createdClassA));
- assertTrue(classB.isAssignableFrom(createdClassB));
- assertTrue(createdClassA.getName().startsWith(PACKAGE_A));
- assertTrue(createdClassB.getName().startsWith(PACKAGE_B));
-
- assertSame(createdClassA, loaderA.loadClass(createdClassA.getName()));
- assertSame(createdClassB, loaderA.loadClass(createdClassB.getName()));
- assertSame(createdClassA, loaderB.loadClass(createdClassA.getName()));
- assertSame(createdClassB, loaderB.loadClass(createdClassB.getName()));
- }
-
- /*public void testMakeContainerProxyInSamePackage() throws Exception
- {
- ClassPool globalPoolA = null;
- ClassPool globalPoolB = null;
- try
- {
- globalPoolA = createClassPool("A", true, JAR_A_1);
- globalPoolB = createClassPool("B", true, JAR_B_1);
-
- ClassLoader loaderA = globalPoolA.getClassLoader();
- ClassLoader loaderB = globalPoolB.getClassLoader();
-
- loaderA.loadClass(ProxyTemplate.class.getName());
-
- Object proxyA = assertMakeContainerProxy(loaderA.loadClass(CLASS_A), loaderA);
- Object proxyB = assertMakeContainerProxy(loaderB.loadClass(CLASS_B), loaderB);
-
- Class<?> clazzA = proxyA.getClass();
- Class<?> clazzB = proxyB.getClass();
-
- assertTrue(AspectManaged.class.isAssignableFrom(clazzA));
- assertTrue(AspectManaged.class.isAssignableFrom(clazzB));
- assertTrue(clazzA.getName().startsWith(PACKAGE_A));
- assertTrue(clazzB.getName().startsWith(PACKAGE_B));
-
- assertSame(clazzA, loaderA.loadClass(clazzA.getName()));
- assertSame(clazzB, loaderA.loadClass(clazzB.getName()));
- assertSame(clazzA, loaderB.loadClass(clazzA.getName()));
- assertSame(clazzB, loaderB.loadClass(clazzB.getName()));
- }
- finally
- {
- unregisterClassPool(globalPoolA);
- unregisterClassPool(globalPoolB);
- }
- }*/
-
- /*public void testMakeContainerProxyForSystemClass() throws Exception
- {
- ClassPool globalPoolA = null;
- ClassPool globalPoolB = null;
- try
- {
- BundleInfoBuilder builderA = BundleInfoBuilder.getBuilder().
- createModule("ModuleA").
- createPackage(PACKAGE_A).
- createPackage(ContainerProxyFactory.PROXY_CLASSES_DEFAULT_PACKAGE);
- globalPoolA = createClassPool("A", true, builderA, JAR_A_1);
-
- BundleInfoBuilder builderB = BundleInfoBuilder.getBuilder().
- createModule("ModuleB").
- createPackage(PACKAGE_B).
- createPackage(ContainerProxyFactory.PROXY_CLASSES_DEFAULT_PACKAGE);
- globalPoolB = createClassPool("B", true, builderB, JAR_B_1);
-
- ClassLoader loaderA = globalPoolA.getClassLoader();
- ClassLoader loaderB = globalPoolB.getClassLoader();
-
- loaderA.loadClass(ProxyTemplate.class.getName());
-
- Object proxyA = assertMakeContainerProxy(ArrayList.class, loaderA);
- Object proxyB = assertMakeContainerProxy(ArrayList.class, loaderB);
-
- Class<?> clazzA = proxyA.getClass();
- Class<?> clazzB = proxyB.getClass();
-
- assertTrue(AspectManaged.class.isAssignableFrom(clazzA));
- assertTrue(AspectManaged.class.isAssignableFrom(clazzB));
- assertTrue(clazzA.getName().startsWith(ContainerProxyFactory.PROXY_CLASSES_DEFAULT_PACKAGE));
- assertTrue(clazzB.getName().startsWith(ContainerProxyFactory.PROXY_CLASSES_DEFAULT_PACKAGE));
-
- assertSame(clazzA, loaderA.loadClass(clazzA.getName()));
- assertSame(clazzB, loaderA.loadClass(clazzB.getName()));
- assertSame(clazzA, loaderB.loadClass(clazzA.getName()));
- assertSame(clazzB, loaderB.loadClass(clazzB.getName()));
- }
- finally
- {
- unregisterClassPool(globalPoolA);
- unregisterClassPool(globalPoolB);
- }
- }*/
-
- public void testCreateClassForSystemClass() throws Exception
- {
- CLDeploymentBuilder clBuilderA = new CLDeploymentBuilder("A", JAR_A_1_URL);
- clBuilderA.createModule("ModuleA").createPackage(PACKAGE_A);
- clBuilderA.createPackage(ClassFactory.PACKAGE).setImportAll(true);
- ClassPool poolA = testScenario.createLoader(clBuilderA);
-
- CLDeploymentBuilder clBuilderB = new CLDeploymentBuilder("B", JAR_B_1_URL);
- clBuilderB.createModule("ModuleB").createPackage(PACKAGE_B);
- clBuilderB.createPackage(ClassFactory.PACKAGE).setImportAll(true);
- ClassPool poolB = testScenario.createLoader(clBuilderB);
-
- ClassLoader loaderA = poolA.getClassLoader();
- ClassLoader loaderB = poolB.getClassLoader();
-
- Object createdA = ClassFactory.create(ArrayList.class, loaderA);
- Object createdB = ClassFactory.create(ArrayList.class, loaderB);
-
- Class<?> createdClassA = createdA.getClass();
- Class<?> createdClassB = createdB.getClass();
-
- assertTrue(ArrayList.class.isAssignableFrom(createdClassA));
- assertTrue(ArrayList.class.isAssignableFrom(createdClassB));
- assertTrue(createdClassA.getName().startsWith(ClassFactory.PACKAGE));
- assertTrue(createdClassB.getName().startsWith(ClassFactory.PACKAGE));
-
- assertSame(createdClassA, loaderA.loadClass(createdClassA.getName()));
- assertSame(createdClassB, loaderA.loadClass(createdClassB.getName()));
- assertSame(createdClassA, loaderB.loadClass(createdClassA.getName()));
- assertSame(createdClassB, loaderB.loadClass(createdClassB.getName()));
- }
-
- /*private Object assertMakeContainerProxy(Class<?> parent, ClassLoader loader) throws Exception
- {
- AOPProxyFactoryParameters params = new AOPProxyFactoryParameters();
- params.setProxiedClass(parent);
- params.setTarget(parent.newInstance());
- params.setClassLoader(loader);
- params.setInterfaces(new Class<?>[] {java.io.Serializable.class});
- GeneratedAOPProxyFactory factory = new GeneratedAOPProxyFactory();
- Object proxy = factory.createAdvisedProxy(params);
- assertFalse(parent.getName() == proxy.getClass().getName());
- assertSame(loader, proxy.getClass().getClassLoader());
- return proxy;
- }*/
-
- /*private static final String PROXY_PACKAGE = "org.test.classpool.proxy";
- private static final String PROXY_CLASS = PROXY_PACKAGE + ".Proxy";
- private static int counter = 0;
-
- private Object assertMakeSimpleProxy(Class<?> parent, ClassLoader loader) throws Exception
- {
- //AOPProxyFactoryParameters params = new AOPProxyFactoryParameters();
- //params.setProxiedClass(parent);
- //params.setTarget(parent.newInstance());
- //params.setClassLoader(loader);
- ClassPool pool = ClassPoolRepository.getInstance().getRegisteredCLs().get(loader);
- CtClass ctClazz = pool.makeClass(PROXY_CLASS + counter++);
- ctClazz.setSuperclass(pool.get(parent.getName()));
- Class<?> clazz = pool.toClass(ctClazz);
- //params.setInterfaces(new Class<?>[] {java.io.Serializable.class});
- //GeneratedAOPProxyFactory factory = new GeneratedAOPProxyFactory();
- //Object proxy = factory.createAdvisedProxy(params);
- //assertFalse(parent.getName() == proxy.getClass().getName());
- assertSame(loader, clazz.getClassLoader());
- //return proxy;
- return clazz.newInstance();
- }*/
}
\ No newline at end of file
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/RepositorySanityTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -21,9 +21,6 @@
*/
package org.jboss.test.classpool.jbosscl.test;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.SanityTestScenario;
import org.jboss.test.classpool.support.TestScenario;
@@ -37,11 +34,6 @@
*/
public class RepositorySanityTestCase extends RepositoryTest<Class<?>, ClassLoader>
{
- public static Test suite()
- {
- return new TestSuite(RepositorySanityTestCase.class);
- }
-
public RepositorySanityTestCase(String name)
{
super(name);
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -23,8 +23,6 @@
import javassist.ClassPool;
import javassist.CtClass;
-import junit.framework.Test;
-import junit.framework.TestSuite;
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.ClassPoolTestScenario;
@@ -39,11 +37,6 @@
*/
public class UsesPackageClassPoolTestCase extends UsesPackageTest<CtClass, ClassPool>
{
- public static Test suite()
- {
- return new TestSuite(UsesPackageClassPoolTestCase.class);
- }
-
public UsesPackageClassPoolTestCase(String name)
{
super(name);
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/UsesPackageSanityTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -21,9 +21,6 @@
*/
package org.jboss.test.classpool.jbosscl.test;
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
import org.jboss.test.classpool.jbosscl.support.CLDeploymentBuilder;
import org.jboss.test.classpool.support.SanityTestScenario;
import org.jboss.test.classpool.support.TestScenario;
@@ -38,11 +35,6 @@
*/
public class UsesPackageSanityTestCase extends UsesPackageTest<Class<?>, ClassLoader>
{
- public static Test suite()
- {
- return new TestSuite(UsesPackageSanityTestCase.class);
- }
-
public UsesPackageSanityTestCase(String name)
{
super(name);
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassFactory.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassFactory.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassFactory.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -30,6 +30,8 @@
import org.jboss.classpool.spi.ClassPoolRepository;
/**
+ * Creates classes using ClassPools.
+ *
* @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
* @version $Revision$
*/
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderFactory.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderFactory.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderFactory.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -25,25 +25,61 @@
/**
+ * Creates class loaders for {@link TestScenario}.
+ *
* @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
- *
* @version $Revision$
*/
public interface ClassLoaderFactory<I extends ClassLoaderInfo>
{
+ /**
+ * Creates a class loader.
+ *
+ * @param classLoaderInfo information necessary for the creation of the class loader
+ * @return the created class loader
+ * @throws Exception if an unexpected error occurs
+ */
public ClassLoader create(I classLoaderInfo) throws Exception;
- public ClassLoader getClassLoader(I classLoaderInfo) throws Exception;
- public void destroyLoader(I classLoaderInfo) throws Exception;
- public void destroyLoaders();
- public Collection<ClassLoader> getCreatedClassLoaders();
/**
- * Checks that this the loader corresponding to {@code classLoaderBuilder} is no longer
- * available on the test scenario.
+ * Destroys the created class loader.
*
- * @param classLoaderBuilder identifies the loader that is going to be verified
- * @throws Exception
+ * @param classLoaderInfo identifies the class loader to be destroyed
+ * @throws Exception if an unexpected error occurs
*/
- public void cannotGetLoader(I classLoaderInfo) throws Exception;
+ public void destroy(I classLoaderInfo) throws Exception;
+
+ /**
+ * Destroys all class loaders that have been created by this factory so far.
+ */
+ public void destroyAll();
+
+ /**
+ * Retrieves a class loader that has been previously created.
+ *
+ * @param classLoaderInfo identifies the class loader to be retrieved
+ * @return the class loader corresponding to {@code classLoaderInfo}
+ * @throws Exception if an unexpected error occurs
+ */
+ public ClassLoader retrieve(I classLoaderInfo) throws Exception;
+
+ /**
+ * Retrieves all class loaders that have been created so far.
+ *
+ * @return a collection with all class loaders that have been created (excluding the ones
+ * that have been destroyed)
+ */
+ public Collection<ClassLoader> retrieveAll();
+
+ /**
+ * Checks whether the class loader corresponding to {@code classLoaderInfo} is available
+ * (i.e. whether is has been created but is not destroyed yet).
+ *
+ * @param classLoaderBuilder identifies the loader whose availability is going to be checked
+ * @return {@code true} only if a class loader has been created for {@code classLoaderInfo}
+ * and has not been destroyed
+ * @throws Exception if an unexpected error occurs
+ */
+ public boolean isAvailable(I classLoaderInfo) throws Exception;
}
\ No newline at end of file
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderInfo.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderInfo.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassLoaderInfo.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -22,12 +22,10 @@
package org.jboss.test.classpool.support;
/**
+ * Contains information necessary for the ClassLoaderFactory that will be used to
+ * create the ClassLoaders.
+ *
* @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
- *
* @version $Revision$
*/
-
-public interface ClassLoaderInfo
-{
-
-}
+public interface ClassLoaderInfo {}
\ No newline at end of file
Modified: 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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/ClassPoolTestScenario.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -37,6 +37,8 @@
* This scenario is used by class pool test cases. All the operations performed using this
* scenario are executed over CtClasses and ClassPools.
*
+ * @param <I> the ClassLoaderInfo that will be used to create class loaders for this scenario
+ *
* @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
* @version $Revision$
*/
@@ -45,7 +47,12 @@
/** The ClassPool repository */
protected ClassPoolRepository repository;
-
+ /**
+ * Constructor.
+ *
+ * @param classLoaderFactory creates class loaders for the loader scenario.
+ * @param <I> the info that {@code classLoaderFactory} uses to create a class loader
+ */
public ClassPoolTestScenario(ClassLoaderFactory<I> classLoaderFactory)
{
super(classLoaderFactory);
@@ -74,7 +81,7 @@
public CtClass loadClass(ClassPool classPool, ClassPool expectedClassPool, String className)
throws Exception
{
- Class<?> clazz = assertLoadClass(className, classPool.getClassLoader(), expectedClassPool.getClassLoader());
+ Class<?> clazz = assertLoadClass(classPool.getClassLoader(), expectedClassPool.getClassLoader(), className);
CtClass ctClass = assertLoadCtClass(className, classPool, expectedClassPool);
Assert.assertEquals(className, ctClass.getName());
Assert.assertEquals("Class has been loaded by the wrong class loader: " + className,
Modified: 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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SanityTestScenario.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -28,12 +28,19 @@
* This scenario is used by sanity tests, i.e., tests that check whether the class loaders
* represented by class pools actually behave as expected.
*
+ * @param <I> the ClassLoaderInfo that will be used to create class loaders for this scenario
+ *
* @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
* @version $Revision$
*/
public class SanityTestScenario<I extends ClassLoaderInfo> extends TestScenario<Class<?>, ClassLoader, I>
{
-
+ /**
+ * Constructor.
+ *
+ * @param classLoaderFactory creates class loaders for the loader scenario.
+ * @param <I> the info that {@code classLoaderFactory} uses to create a class loader
+ */
public SanityTestScenario(ClassLoaderFactory<I> classLoaderFactory)
{
super(classLoaderFactory);
@@ -60,7 +67,7 @@
@Override
public Class<?> loadClass(ClassLoader loader, ClassLoader expected, String className) throws Exception
{
- return assertLoadClass(className, loader, expected);
+ return assertLoadClass(loader, expected, className);
}
@Override
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SupportArchives.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SupportArchives.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SupportArchives.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -26,8 +26,8 @@
/**
+ * Contains the name of the support archives.
*
- *
* @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
* @version $Revision$
*/
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SupportClasses.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SupportClasses.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SupportClasses.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -24,8 +24,8 @@
/**
+ * Contains the name of all support classes.
*
- *
* @author <a href="flavia.rainone at jboss.com">Flavia Rainone</a>
* @version $Revision$
*/
Modified: 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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/TestScenario.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -32,13 +32,15 @@
* 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.
+ * @param <C> represents a class
+ * @param <L> responsbile for loading a class
+ * @param <I> the ClassLoaderInfo that will be used to create class loaders for this scenario
*
* @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
* @version $Revision$
* @see SanityTestScenario
* @see ClassPoolTestScenario
*/
-
public abstract class TestScenario<C,L,I extends ClassLoaderInfo>
{
/** The classloader factory */
@@ -47,7 +49,8 @@
/**
* Constructor.
*
- * @param mc used by this test to perform deploy/undeploy operations
+ * @param classLoaderFactory creates class loaders for the loader scenario.
+ * @param <I> the info that {@code classLoaderFactory} uses to create a class loader
*/
public TestScenario(ClassLoaderFactory<I> classLoaderFactory)
{
@@ -61,7 +64,7 @@
* @return the created loader
* @throws NoSuchClassLoaderException indicates that the deployment is not successful. The
* class loader is not created at this moment
- * @throws Exception any erros that should not be treated
+ * @throws Exception if an unexpected error occurs
*/
public L createLoader(I classLoaderInfo) throws NoSuchClassLoaderException, Exception
{
@@ -75,12 +78,12 @@
* {@link #createLoader(I) created}.
*
* @param classLoaderInfo contains information regarding the loader to be destroyed.
- * @throws Exception
+ * @throws Exception if an unexpected error occurs
* @see #createLoader(I)
*/
public void destroyLoader(I classLoaderInfo) throws Exception
{
- classLoaderFactory.destroyLoader(classLoaderInfo);
+ classLoaderFactory.destroy(classLoaderInfo);
}
/**
@@ -89,8 +92,8 @@
*/
public void destroyLoaders()
{
- preDestroy(classLoaderFactory.getCreatedClassLoaders());
- classLoaderFactory.destroyLoaders();
+ preDestroy(classLoaderFactory.retrieveAll());
+ classLoaderFactory.destroyAll();
}
/**
@@ -99,25 +102,26 @@
*
* @param classLoaderInfo contains all the info related to the loader to be retrieved
* @return the loader equivalent to {@code classLoaderBuilder}
- * @throws Exception
+ * @throws Exception if an unexpected error occurs
* @see {@link #createLoader(I)}
*/
public L getLoader(I classLoaderInfo) throws Exception
{
- ClassLoader classLoader = classLoaderFactory.getClassLoader(classLoaderInfo);
+ ClassLoader classLoader = classLoaderFactory.retrieve(classLoaderInfo);
return getLoader(classLoader);
}
/**
- * Checks that this the loader corresponding to {@code classLoaderBuilder} is no longer
+ * Checks that the loader corresponding to {@code classLoaderBuilder} is no longer
* available on the test scenario.
*
* @param classLoaderInfo identifies the loader that is going to be verified
- * @throws Exception
+ * @throws Exception if an unexpected error occurs
*/
public void cannotGetLoader(I classLoaderInfo) throws Exception
{
- classLoaderFactory.cannotGetLoader(classLoaderInfo);
+ Assert.assertFalse("Class loader should not be available",
+ classLoaderFactory.isAvailable(classLoaderInfo));
}
/**
@@ -151,7 +155,7 @@
* @param loader a loader
* @param className the name of the class to be loaded
* @return the class loaded by {@code loader}
- * @throws Exception
+ * @throws Exception if an unexpected error occurs
*/
public C loadClass(L loader, String className) throws Exception
{
@@ -166,7 +170,7 @@
* @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
+ * @throws Exception if an unexpected error occurs
*/
public abstract C loadClass(L initiating, L expected, String className) throws Exception;
@@ -184,11 +188,21 @@
* @param clazz the class that contains the method
* @param methodName the name of the method
* @return the return type of the method
- * @throws Exception
+ * @throws Exception if an unexpected error occurs
*/
public abstract C getMethodReturnType(C clazz, String methodName) throws Exception;
- protected Class<?> assertLoadClass(String className, ClassLoader initiating, ClassLoader expected) throws Exception
+ /**
+ * Asserts that {@code initiating} class loader can load {@code classname}.
+ * Also verifies that the class loader associated with the loaded class is {@code expected}
+ *
+ * @param initiating the class loader that will be used for loading {@code className}
+ * @param expected the actual class loader that is associated with the loaded class
+ * @param className the name of the class to be loaded
+ * @return the loaded class
+ * @throws Exception if an unexpected error occurs
+ */
+ protected Class<?> assertLoadClass(ClassLoader initiating, ClassLoader expected, String className) throws Exception
{
Class<?> clazz = initiating.loadClass(className);
if (expected != null)
@@ -198,6 +212,11 @@
return clazz;
}
+ /**
+ * Is called prior to destroy the class loaders in {@code classLoaders} collection.
+ *
+ * @param classLoaders the class loaders that will be destroyed
+ */
protected void preDestroy(Collection<ClassLoader> classLoaders)
{
}
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ClassPoolTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ClassPoolTest.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ClassPoolTest.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -41,6 +41,10 @@
import org.jboss.test.classpool.support.SupportClasses;
/**
+ * Super class of all ClassPool Tests. The tests in this package don't test any repositories or
+ * class pool factories. They have their own rules for ClassPool creation and are tailored for
+ * testing the DelegatingClassPool functionalities exclusively. In other words, these tests
+ * don't emulate real scenarios and can't be used for Sanity Test cases).
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision$
@@ -57,11 +61,7 @@
public static AbstractTestDelegate getDelegate(Class<?> clazz) throws Exception
{
- AbstractTestDelegate delegate = new ClassPoolTestDelegate(clazz);
- String property = "false"; // System.getProperty("jboss.aop.secure", "false"); // TODO fix this
- boolean enableSecurity = Boolean.valueOf(property).booleanValue();
- delegate.enableSecurity = enableSecurity;
- return delegate;
+ return new ClassPoolTestDelegate(clazz);
}
protected static AbstractClassPoolDomain createClassPoolDomain(String name, ClassPoolDomain parent, boolean parentFirst)
@@ -97,7 +97,7 @@
protected void setUp() throws Exception
{
super.setUp();
-// enableTrace("org.jboss.aop.classpool");
+ // enableTrace("org.jboss.aop.classpool");
}
protected void assertCannotLoadClass(ClassLoader loader, String classname)
@@ -119,4 +119,5 @@
{
assertCannotLoadClass(this.getClass().getClassLoader(), SupportClasses.CLASS_A);
assertCannotLoadClass(this.getClass().getClassLoader(), SupportClasses.CLASS_B);
- }}
+ }
+}
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ClassPoolTestDelegate.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ClassPoolTestDelegate.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ClassPoolTestDelegate.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -34,5 +34,4 @@
{
super(clazz);
}
-
-}
+}
\ No newline at end of file
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/DelegatingClassPoolTestSuite.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/DelegatingClassPoolTestSuite.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/DelegatingClassPoolTestSuite.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,54 +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.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import junit.textui.TestRunner;
-
-/**
- *
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision$
- */
-public class DelegatingClassPoolTestSuite extends TestSuite
-{
- public static void main(String[] args)
- {
- TestRunner.run(suite());
- }
-
- public static Test suite()
- {
- TestSuite suite = new TestSuite("DelegatingClassPool All Tests");
-
- suite.addTest(IsLocalResourcePluginFactoryTestCase.suite());
- suite.addTest(SimpleDelegatingClassPoolTestCase.suite());
- suite.addTest(ScopedSiblingDelegatingClassPoolTestCase.suite());
- suite.addTest(ParentFirstDelegatingClassPoolTestCase.suite());
- suite.addTest(ParentLastDelegatingClassPoolTestCase.suite());
-
-
- return suite;
- }
-
-}
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/IsLocalResourcePluginFactoryTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/IsLocalResourcePluginFactoryTestCase.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/IsLocalResourcePluginFactoryTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,24 +1,24 @@
/*
-* 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.
-*/
+ * 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.test;
import java.net.MalformedURLException;
@@ -26,9 +26,7 @@
import java.net.URLClassLoader;
import javassist.ClassPool;
-import junit.framework.Test;
import junit.framework.TestCase;
-import junit.framework.TestSuite;
import org.jboss.classpool.base.BaseClassPoolDomain;
import org.jboss.classpool.base.DefaultClassLoaderIsLocalResourcePlugin;
@@ -46,6 +44,7 @@
import org.jboss.util.loading.Translatable;
/**
+ * Tests for IsLocalResourcePluginFactory implementations.
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision$
@@ -66,11 +65,6 @@
}
}
- public static Test suite()
- {
- return new TestSuite(IsLocalResourcePluginFactoryTestCase.class);
- }
-
public IsLocalResourcePluginFactoryTestCase(String name)
{
super(name);
@@ -177,6 +171,4 @@
return null;
}
}
-
-
-}
+}
\ No newline at end of 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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ParentFirstDelegatingClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,3 +1,24 @@
+/*
+ * 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.test;
import static org.jboss.test.classpool.support.SupportArchives.JAR_A_1_URL;
@@ -7,47 +28,18 @@
import javassist.ClassPool;
import javassist.CtClass;
import javassist.NotFoundException;
-import junit.framework.Test;
-import junit.framework.TestSuite;
import org.jboss.classpool.domain.ClassPoolDomain;
import org.jboss.test.classpool.support.ClassFactory;
-
-/*
-* 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.
-*/
-
/**
+ * Tests ClassPools with parent first delegation.
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision$
*/
public class ParentFirstDelegatingClassPoolTestCase extends ClassPoolTest
{
- public static Test suite()
- {
- return new TestSuite(ParentFirstDelegatingClassPoolTestCase.class);
- }
-
public ParentFirstDelegatingClassPoolTestCase(String name)
{
super(name);
@@ -295,4 +287,4 @@
assertSame(parentA, childA);
assertSame(parentClazz, childPool.get(CLASS_A + "$Test"));
}
-}
+}
\ No newline at end of file
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-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ParentLastDelegatingClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,3 +1,24 @@
+/*
+ * 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.test;
@@ -6,47 +27,19 @@
import static org.jboss.test.classpool.support.SupportClasses.CLASS_A;
import javassist.ClassPool;
import javassist.CtClass;
-import junit.framework.Test;
-import junit.framework.TestSuite;
import org.jboss.classpool.domain.AbstractClassPoolDomain;
import org.jboss.test.classpool.support.ClassFactory;
-/*
-* 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.
-*/
-
/**
- *
+ * Tests ClassPools with parent first delegation.
+ *
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision$
*/
public class ParentLastDelegatingClassPoolTestCase extends ClassPoolTest
{
- public static Test suite()
- {
- return new TestSuite(ParentLastDelegatingClassPoolTestCase.class);
- }
-
public ParentLastDelegatingClassPoolTestCase(String name)
{
super(name);
@@ -265,4 +258,4 @@
Class<?> childAClass = childA.toClass();
assertSame(childPool.getClassLoader(), childAClass.getClassLoader());
}
-}
+}
\ No newline at end of file
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ScopedSiblingDelegatingClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ScopedSiblingDelegatingClassPoolTestCase.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/ScopedSiblingDelegatingClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,3 +1,24 @@
+/*
+ * 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.test;
import static org.jboss.test.classpool.support.SupportArchives.JAR_A_1_URL;
@@ -6,46 +27,17 @@
import static org.jboss.test.classpool.support.SupportClasses.CLASS_B;
import javassist.ClassPool;
import javassist.CtClass;
-import junit.framework.Test;
-import junit.framework.TestSuite;
import org.jboss.classpool.domain.ClassPoolDomain;
-
-/*
-* 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.
-*/
-
/**
+ * Tests DelegatingClassPools belonging to sibling domains.
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision$
*/
public class ScopedSiblingDelegatingClassPoolTestCase extends ClassPoolTest
{
- public static Test suite()
- {
- return new TestSuite(ScopedSiblingDelegatingClassPoolTestCase.class);
- }
-
public ScopedSiblingDelegatingClassPoolTestCase(String name)
{
super(name);
@@ -114,4 +106,4 @@
CtClass bb = poolB.get(CLASS_B);
assertEquals(poolB, bb.getClassPool());
}
-}
+}
\ No newline at end of file
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/SimpleDelegatingClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/SimpleDelegatingClassPoolTestCase.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/test/SimpleDelegatingClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,3 +1,24 @@
+/*
+ * 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.test;
import static org.jboss.test.classpool.support.SupportArchives.JAR_A_1_URL;
@@ -6,45 +27,17 @@
import static org.jboss.test.classpool.support.SupportClasses.CLASS_B;
import javassist.ClassPool;
import javassist.CtClass;
-import junit.framework.Test;
-import junit.framework.TestSuite;
import org.jboss.classpool.domain.ClassPoolDomain;
-/*
-* 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.
-*/
-
/**
+ * Basic tests for DelegatingClassPool
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision$
*/
public class SimpleDelegatingClassPoolTestCase extends ClassPoolTest
{
- public static Test suite()
- {
- return new TestSuite(SimpleDelegatingClassPoolTestCase.class);
- }
-
public SimpleDelegatingClassPoolTestCase(String name)
{
super(name);
@@ -141,8 +134,6 @@
assertSame(intClass, intArrayClass.getComponentType());
assertSame(byteClassA.getClassPool(), intClass.getClassPool());
-
-
assertTrue(aArray.isArray());
assertSame(a, aArray.getComponentType());
assertTrue(bArray.isArray());
@@ -154,4 +145,4 @@
assertSame(a.getClassPool(), aArray.getClassPool());
assertSame(b.getClassPool(), bArray.getClassPool());
}
-}
+}
\ No newline at end of file
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/UclClassPoolTestSuite.java (from rev 97574, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclClassPoolTestSuite.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/UclClassPoolTestSuite.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/UclClassPoolTestSuite.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -0,0 +1,55 @@
+/*
+ * 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.ucl;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+import org.jboss.test.classpool.ucl.test.CtClassCreationTestCase;
+import org.jboss.test.classpool.ucl.test.RepositoryClassPoolTestCase;
+import org.jboss.test.classpool.ucl.test.RepositorySanityTestCase;
+
+/**
+ * Test suite containing all UCL tests.
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision$
+ */
+public class UclClassPoolTestSuite extends TestSuite
+{
+ public static void main(String[] args)
+ {
+ TestRunner.run(suite());
+ }
+
+ public static Test suite()
+ {
+ TestSuite suite = new TestSuite("UclClassPool All Tests");
+
+ suite.addTestSuite(RepositorySanityTestCase.class);
+ suite.addTestSuite(RepositoryClassPoolTestCase.class);
+ suite.addTestSuite(CtClassCreationTestCase.class);
+
+ return suite;
+ }
+}
\ No newline at end of file
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ChildCLInfo.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ChildCLInfo.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ChildCLInfo.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,58 +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.ucl.support;
-
-import static org.jboss.test.classpool.ucl.support.UCLFactory.MAIN_LOADER_REPOSITORY_OBJECT_NAME;
-
-import java.net.URL;
-
-import org.jboss.mx.loading.HeirarchicalLoaderRepository3;
-import org.jboss.mx.loading.LoaderRepository;
-import org.jboss.mx.util.MBeanServerLocator;
-
-/**
- * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
- *
- * @version $Revision$
- */
-
-public class ChildCLInfo extends UCLInfo
-{
- private boolean parentFirst;
-
- public ChildCLInfo(URL url, boolean parentFirst)
- {
- super(url);
- this.parentFirst = parentFirst;
- }
-
- @Override
- protected ClassLoader internalCreate(LoaderRepository globalRepository) throws Exception
- {
- HeirarchicalLoaderRepository3 repository = new HeirarchicalLoaderRepository3(
- MBeanServerLocator.locateJBoss(), MAIN_LOADER_REPOSITORY_OBJECT_NAME);
- repository.setUseParentFirst(parentFirst);
- ClassLoader cl = repository.newClassLoader(url, true);
- return cl;
- }
-
-}
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ChildUCLInfo.java (from rev 97574, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ChildCLInfo.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ChildUCLInfo.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ChildUCLInfo.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.classpool.ucl.support;
+
+import static org.jboss.test.classpool.ucl.support.UCLFactory.MAIN_LOADER_REPOSITORY_OBJECT_NAME;
+
+import java.net.URL;
+
+import org.jboss.mx.loading.HeirarchicalLoaderRepository3;
+import org.jboss.mx.loading.LoaderRepository;
+import org.jboss.mx.util.MBeanServerLocator;
+
+/**
+ * Creates a UCL in new loader repository. This loader repository will be registered as a child
+ * to the global repository.
+ *
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
+ * @version $Revision$
+ */
+public class ChildUCLInfo extends UCLInfo
+{
+ private boolean parentFirst;
+
+ /**
+ * Constructor.
+ *
+ * @param url the classpath of the class loader
+ * @param parentFirst indicates the policy that will be used by the child loader repository
+ * for delegation to its parent (the global repository)
+ */
+ public ChildUCLInfo(URL url, boolean parentFirst)
+ {
+ super(url);
+ this.parentFirst = parentFirst;
+ }
+
+ @Override
+ protected ClassLoader internalCreate(LoaderRepository globalRepository) throws Exception
+ {
+ HeirarchicalLoaderRepository3 repository = new HeirarchicalLoaderRepository3(
+ MBeanServerLocator.locateJBoss(), MAIN_LOADER_REPOSITORY_OBJECT_NAME);
+ repository.setUseParentFirst(parentFirst);
+ ClassLoader cl = repository.newClassLoader(url, true);
+ return cl;
+ }
+}
\ No newline at end of file
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/GlobalCLInfo.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/GlobalCLInfo.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/GlobalCLInfo.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -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.ucl.support;
-
-import java.net.URL;
-
-import org.jboss.mx.loading.LoaderRepository;
-import org.jboss.mx.loading.UnifiedClassLoader3;
-
-/**
- * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
- *
- * @version $Revision$
- */
-
-public class GlobalCLInfo extends UCLInfo
-{
- private ClassLoader parent;
-
- public GlobalCLInfo(URL url)
- {
- super(url);
- }
-
- public GlobalCLInfo(URL url, ClassLoader parent)
- {
- this(url);
- this.parent = parent;
- }
-
- @Override
- protected ClassLoader internalCreate(LoaderRepository repository) throws Exception
- {
- if (parent == null)
- {
- return repository.newClassLoader(url, true);
- }
- else
- {
- ClassLoader classLoader = new UnifiedClassLoader3(url, null, parent, repository);
- repository.addClassLoader(classLoader);
- return classLoader;
- }
- }
-}
\ No newline at end of file
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/GlobalUCLInfo.java (from rev 97574, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/GlobalCLInfo.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/GlobalUCLInfo.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/GlobalUCLInfo.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -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.ucl.support;
+
+import java.net.URL;
+
+import org.jboss.mx.loading.LoaderRepository;
+import org.jboss.mx.loading.UnifiedClassLoader3;
+
+/**
+ * Creates an UnifiedClassLoader registered to the global repository.
+ *
+ * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
+ * @version $Revision$
+ */
+public class GlobalUCLInfo extends UCLInfo
+{
+ private ClassLoader parent;
+
+ public GlobalUCLInfo(URL url)
+ {
+ super(url);
+ }
+
+ public GlobalUCLInfo(URL url, ClassLoader parent)
+ {
+ this(url);
+ this.parent = parent;
+ }
+
+ @Override
+ protected ClassLoader internalCreate(LoaderRepository repository) throws Exception
+ {
+ if (parent == null)
+ {
+ return repository.newClassLoader(url, true);
+ }
+ else
+ {
+ ClassLoader classLoader = new UnifiedClassLoader3(url, null, parent, repository);
+ repository.addClassLoader(classLoader);
+ return classLoader;
+ }
+ }
+}
\ No newline at end of file
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ParentLastURLClassLoader.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ParentLastURLClassLoader.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ParentLastURLClassLoader.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -25,7 +25,9 @@
import java.net.URLClassLoader;
/**
- * An attempt to emulate the web classloader with parent last search order in AS
+ * An attempt to emulate the web classloader with parent last search order in AS.
+ * This class cannot be used for Sanity tests, because of its delegation structure, if you call
+ * Class<?>.getClassLoader() on a class loaded by it, it will never return this class loader.
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision$
@@ -76,7 +78,4 @@
}
return parent.loadClass(name);
}
-
-
-
-}
+}
\ No newline at end of file
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ParentLastURLClassLoaderInfo.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ParentLastURLClassLoaderInfo.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/ParentLastURLClassLoaderInfo.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -26,15 +26,21 @@
import org.jboss.mx.loading.LoaderRepository;
/**
- * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
- *
+ * Contains information for the creation of a {@link ParentLastURLClassLoader}.
+ *
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
* @version $Revision$
*/
-
public class ParentLastURLClassLoaderInfo extends UCLInfo
{
private ClassLoader parent;
+ /**
+ * Constructor.
+ *
+ * @param url the classpath of the classloader
+ * @param parent the parent of the class loader
+ */
public ParentLastURLClassLoaderInfo(URL url, ClassLoader parent)
{
super(url);
@@ -46,5 +52,4 @@
{
return new ParentLastURLClassLoader(new URL[] {url}, parent);
}
-
-}
+}
\ No newline at end of file
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/UCLFactory.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/UCLFactory.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/UCLFactory.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -44,11 +44,9 @@
/**
* A factory of Unified Class Loaders.
*
- * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
- *
+ * @author <a href="mailto:flavia.rainone at jboss.com">Flavia Rainone</a>
* @version $Revision$
*/
-
public class UCLFactory implements ClassLoaderFactory<UCLInfo>
{
final static ObjectName MAIN_LOADER_REPOSITORY_OBJECT_NAME;
@@ -57,7 +55,7 @@
try
{
MAIN_LOADER_REPOSITORY_OBJECT_NAME = new ObjectName(
- "JMImplementation:name=Default,service=LoaderRepository");
+ "JMImplementation:name=Default,service=LoaderRepository");
}
catch (Exception e)
{
@@ -68,7 +66,10 @@
private LoaderRepository globalRepository;
//Keep a strong reference to the classloaders so that they are not garbage collected
final static Set<ClassLoader> registeredClassLoaders = new HashSet<ClassLoader>();
-
+
+ /**
+ * Constructor.
+ */
public UCLFactory()
{
try
@@ -82,11 +83,6 @@
throw new RuntimeException("Unexpected exception", e);
}
}
-
- public void cannotGetLoader(UCLInfo uclInfo) throws Exception
- {
- throw new NotImplementedException("Functionality unavailable");
- }
public ClassLoader create(UCLInfo uclInfo) throws Exception
{
@@ -95,30 +91,15 @@
return classLoader;
}
- public void destroyLoader(UCLInfo uclInfo) throws Exception
+ public void destroy(UCLInfo uclInfo) throws Exception
{
ClassLoader classLoader = uclInfo.getCreatedClassLoader();
destroyClassLoader(classLoader);
registeredClassLoaders.remove(classLoader);
}
- private LoaderRepository destroyClassLoader(ClassLoader classLoader)
+ public void destroyAll()
{
- if (classLoader != null && classLoader instanceof RepositoryClassLoader)
- {
- RepositoryClassLoader repoClassLoader = (RepositoryClassLoader) classLoader;
- LoaderRepository repository = repoClassLoader.getLoaderRepository();
- repository.removeClassLoader(repoClassLoader);
- //Delete the temporary directory since running in Eclipse does not do this automatically
- deleteTempDir();
- ClassPoolRepository.getInstance().unregisterClassLoader(classLoader);
- return repository;
- }
- return null;
- }
-
- public void destroyLoaders()
- {
Set<UnifiedLoaderRepository3> repositories = new HashSet<UnifiedLoaderRepository3>();
for (ClassLoader registeredClassLoader :registeredClassLoaders)
{
@@ -145,16 +126,38 @@
}
}
- public ClassLoader getClassLoader(UCLInfo uclInfo) throws Exception
+ public ClassLoader retrieve(UCLInfo uclInfo) throws Exception
{
return uclInfo.getCreatedClassLoader();
}
- public Collection<ClassLoader> getCreatedClassLoaders()
+ public Collection<ClassLoader> retrieveAll()
{
return registeredClassLoaders;
}
-
+
+ /************* HELPER METHODS **********************************************************/
+
+ public boolean isAvailable(UCLInfo uclInfo) throws Exception
+ {
+ throw new NotImplementedException("Functionality unavailable");
+ }
+
+ private LoaderRepository destroyClassLoader(ClassLoader classLoader)
+ {
+ if (classLoader != null && classLoader instanceof RepositoryClassLoader)
+ {
+ RepositoryClassLoader repoClassLoader = (RepositoryClassLoader) classLoader;
+ LoaderRepository repository = repoClassLoader.getLoaderRepository();
+ repository.removeClassLoader(repoClassLoader);
+ //Delete the temporary directory since running in Eclipse does not do this automatically
+ deleteTempDir();
+ ClassPoolRepository.getInstance().unregisterClassLoader(classLoader);
+ return repository;
+ }
+ return null;
+ }
+
private void deleteTempDir()
{
File dir = new File(".");
@@ -164,7 +167,7 @@
public boolean accept(File dir, String name)
{
return name.startsWith("ucl");
-
+
}
});
for (String uclFile : uclFiles)
@@ -172,7 +175,7 @@
deleteRecursively(dir, uclFile);
}
}
-
+
private void deleteRecursively(File dir, String name)
{
File file = new File(dir, name);
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/UCLInfo.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/UCLInfo.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/UCLInfo.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -29,21 +29,35 @@
import org.jboss.test.classpool.support.ClassLoaderInfo;
/**
+ * Contains information necessary for the creation of a class loader that will be added to
+ * a UCL structure.
+ *
* @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
- *
* @version $Revision$
*/
-
public abstract class UCLInfo implements ClassLoaderInfo
{
protected URL url;
private ClassLoader createdClassLoader;
+ /**
+ * Constructor.
+ *
+ * @param url the classpath of the class loader to be created
+ */
public UCLInfo(URL url)
{
this.url = url;
}
+ /**
+ * Creates a class loader and adds it to {@code globalRepository}.
+ * Can be called only once.
+ *
+ * @param globalRepository the global loader repository
+ * @return the created class loader
+ * @throws Exception if an unexpected error occurs
+ */
ClassLoader create(LoaderRepository globalRepository) throws Exception
{
Assert.assertNull("Double creation of class loader", createdClassLoader);
@@ -51,10 +65,25 @@
return this.createdClassLoader;
}
+ /**
+ * Returns the class loader that has been created by {@link #create(LoaderRepository)}.
+ * Can only be called after {@link #createdClassLoader} has been invoked.
+ *
+ * @return the created class loader
+ */
ClassLoader getCreatedClassLoader()
{
return this.createdClassLoader;
}
+
+ /**
+ * Creates a class loader and adds it to {@code globalRepository}.
+ * Will be called only once.
+ *
+ * @param globalRepository the global loader repository
+ * @return the created class loader
+ * @throws Exception if an unexpected error occurs
+ */
protected abstract ClassLoader internalCreate(LoaderRepository repository) throws Exception;
}
\ No newline at end of file
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/URLClassLoaderInfo.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/URLClassLoaderInfo.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/support/URLClassLoaderInfo.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -27,20 +27,31 @@
import org.jboss.mx.loading.LoaderRepository;
/**
+ * Creates a URLClassLoader.
+ *
* @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
- *
* @version $Revision$
*/
-
public class URLClassLoaderInfo extends UCLInfo
{
private ClassLoader parent;
+ /**
+ * Constructor.
+ *
+ * @param url the classpath of the classloader
+ */
public URLClassLoaderInfo(URL url)
{
this(url, null);
}
+ /**
+ * Constructor.
+ *
+ * @param url the classpath of the classloader
+ * @param parent the parent of the classloader
+ */
public URLClassLoaderInfo(URL url, ClassLoader parent)
{
super(url);
@@ -52,5 +63,4 @@
{
return new URLClassLoader(new URL[] {url}, parent);
}
-
-}
+}
\ No newline at end of file
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/CtClassCreationTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/CtClassCreationTestCase.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/CtClassCreationTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -33,13 +33,11 @@
import javassist.ClassPool;
import javassist.CtClass;
-import junit.framework.Test;
-import junit.framework.TestSuite;
import org.jboss.test.classpool.support.ClassFactory;
import org.jboss.test.classpool.support.ClassPoolTestScenario;
import org.jboss.test.classpool.support.TestScenario;
-import org.jboss.test.classpool.ucl.support.GlobalCLInfo;
+import org.jboss.test.classpool.ucl.support.GlobalUCLInfo;
import org.jboss.test.classpool.ucl.support.UCLFactory;
import org.jboss.test.classpool.ucl.support.UCLInfo;
import org.jboss.test.classpool.ucl.support.URLClassLoaderInfo;
@@ -50,14 +48,8 @@
* @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
* @version $Revision$
*/
-
public class CtClassCreationTestCase extends UclClassPoolTest<CtClass, ClassPool>
{
- public static Test suite()
- {
- return new TestSuite(UCLLoaderClassPoolTestCase.class);
- }
-
public CtClassCreationTestCase(String name)
{
super(name);
@@ -74,7 +66,7 @@
final String PARENT = "parent.Parent";
final String CHILD = "child.Child";
ClassPool parent = testScenario.createLoader(new URLClassLoaderInfo(JAR_B_1_URL));
- ClassPool global = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL,
+ ClassPool global = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL,
testScenario.getClassLoader(parent)));
ClassPool child = testScenario.createLoader(new URLClassLoaderInfo(JAR_C_1_URL,
testScenario.getClassLoader(global)));
@@ -124,8 +116,8 @@
public void testGeneratingClassInDelegatingPool() throws Exception
{
- ClassPool globalA = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL));
- ClassPool globalB = testScenario.createLoader(new GlobalCLInfo(JAR_B_1_URL));
+ ClassPool globalA = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL));
+ ClassPool globalB = testScenario.createLoader(new GlobalUCLInfo(JAR_B_1_URL));
ClassPool child = testScenario.createLoader(new URLClassLoaderInfo(JAR_C_1_URL,
testScenario.getClassLoader(globalA)));
final String A_CLASS = "a.Clazz";
@@ -188,8 +180,8 @@
public void testCreateClassInSamePackage() throws Exception
{
- ClassPool globalPoolA = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL));
- ClassPool globalPoolB = testScenario.createLoader(new GlobalCLInfo(JAR_B_1_URL));
+ ClassPool globalPoolA = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL));
+ ClassPool globalPoolB = testScenario.createLoader(new GlobalUCLInfo(JAR_B_1_URL));
ClassLoader loaderA = globalPoolA.getClassLoader();
ClassLoader loaderB = globalPoolB.getClassLoader();
@@ -216,8 +208,8 @@
public void testCreatedClassForSystemClass() throws Exception
{
- ClassPool globalPoolA = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL));
- ClassPool globalPoolB = testScenario.createLoader(new GlobalCLInfo(JAR_B_1_URL));
+ ClassPool globalPoolA = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL));
+ ClassPool globalPoolB = testScenario.createLoader(new GlobalUCLInfo(JAR_B_1_URL));
ClassLoader loaderA = globalPoolA.getClassLoader();
ClassLoader loaderB = globalPoolB.getClassLoader();
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/RepositoryClassPoolTestCase.java (from rev 97574, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UCLLoaderClassPoolTestCase.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/RepositoryClassPoolTestCase.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/RepositoryClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -0,0 +1,101 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.classpool.ucl.test;
+
+import static org.jboss.test.classpool.support.SupportArchives.JAR_A_1_URL;
+import static org.jboss.test.classpool.support.SupportArchives.JAR_A_2_URL;
+import static org.jboss.test.classpool.support.SupportArchives.JAR_B_1_URL;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_A;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_B;
+
+import java.net.URL;
+
+import javassist.ClassPool;
+import javassist.CtClass;
+
+import org.jboss.test.classpool.support.ClassPoolTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.ucl.support.GlobalUCLInfo;
+import org.jboss.test.classpool.ucl.support.ParentLastURLClassLoaderInfo;
+import org.jboss.test.classpool.ucl.support.UCLFactory;
+import org.jboss.test.classpool.ucl.support.UCLInfo;
+
+/**
+ * Executes the UCL Loader tests against a class pool test scenario.
+ *
+ * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
+ * @version $Revision$
+ */
+public class RepositoryClassPoolTestCase extends RepositoryTest<CtClass, ClassPool>
+{
+ public RepositoryClassPoolTestCase(String name)
+ {
+ super(name);
+ }
+
+ @Override
+ protected TestScenario<CtClass, ClassPool, UCLInfo> getTestScenario()
+ {
+ return new ClassPoolTestScenario<UCLInfo>(new UCLFactory());
+ }
+
+ // FIXME JBREFLECT-83
+ @Override
+ public void testUclWithParentClassLoaderAndSameClassInDomain() {}
+
+ // FIXME JBREFLECT-83
+ @Override
+ public void testUclLoaderOrdering() {}
+
+ // parent last class loaders only work for class pools, but not for sanity test cases
+ public void testURLChildOfGlobalUcParentLast() throws Exception
+ {
+ ClassPool globalPool = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL));
+ ClassLoader globalClassLoader = testScenario.getClassLoader(globalPool);
+ ClassPool childPoolA = createParentLastURLClassPool(JAR_B_1_URL, globalClassLoader);
+
+ //Try loading A from child first
+ CtClass aFromA = testScenario.loadClass(childPoolA, globalPool, CLASS_A);/*childPoolA.get(CLASS_A);
+ assertSame(globalPool, aFromA.getClassPool());*/
+
+ //Try loading A from global
+ CtClass aFromGlobal = testScenario.loadClass(globalPool, CLASS_A);/*globalPool.get(CLASS_A);*/
+ assertSame(aFromA, aFromGlobal);
+
+ //Try loading B from A
+ CtClass bFromA = childPoolA.get(CLASS_B);
+ assertSame(childPoolA, bFromA.getClassPool());
+
+ //Should get the child copy
+ /* TODO why can't I use JAR_A1_URL instead?*/
+ ClassPool childPoolB = createParentLastURLClassPool(JAR_A_2_URL, globalClassLoader);
+ CtClass aFromB = childPoolB.get(CLASS_A);
+ assertSame(childPoolB, aFromB.getClassPool());
+ }
+
+ private ClassPool createParentLastURLClassPool(URL url, ClassLoader parent) throws Exception
+ {
+ ClassPool pool = testScenario.createLoader(new ParentLastURLClassLoaderInfo(url, parent));
+ pool.childFirstLookup = true;
+ return pool;
+ }
+}
\ No newline at end of file
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/RepositorySanityTestCase.java (from rev 97574, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UCLLoaderSanityTestCase.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/RepositorySanityTestCase.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/RepositorySanityTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.classpool.ucl.test;
+
+import org.jboss.test.classpool.support.SanityTestScenario;
+import org.jboss.test.classpool.support.TestScenario;
+import org.jboss.test.classpool.ucl.support.UCLFactory;
+import org.jboss.test.classpool.ucl.support.UCLInfo;
+
+/**
+ * Executes the UCL Loader tests against a sanity test scenario (for class loader behavior
+ * sanity checking).
+ *
+ * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
+ * @version $Revision$
+ */
+public class RepositorySanityTestCase extends RepositoryTest<Class<?>, ClassLoader>
+{
+ public RepositorySanityTestCase(String name)
+ {
+ super(name);
+ }
+
+ @Override
+ protected TestScenario<Class<?>, ClassLoader, UCLInfo> getTestScenario()
+ {
+ return new SanityTestScenario<UCLInfo>(new UCLFactory());
+ }
+}
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/RepositoryTest.java (from rev 97574, projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclLoaderTest.java)
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/RepositoryTest.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/RepositoryTest.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -0,0 +1,259 @@
+/*
+ * 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.ucl.test;
+
+import static org.jboss.test.classpool.support.SupportArchives.JAR_A_1_URL;
+import static org.jboss.test.classpool.support.SupportArchives.JAR_A_2_URL;
+import static org.jboss.test.classpool.support.SupportArchives.JAR_B_1_URL;
+import static org.jboss.test.classpool.support.SupportArchives.JAR_B_2_URL;
+import static org.jboss.test.classpool.support.SupportArchives.JAR_C_1_URL;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_A;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_B;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_C;
+
+import org.jboss.test.classpool.ucl.support.ChildUCLInfo;
+import org.jboss.test.classpool.ucl.support.GlobalUCLInfo;
+import org.jboss.test.classpool.ucl.support.UCLInfo;
+import org.jboss.test.classpool.ucl.support.URLClassLoaderInfo;
+
+/**
+ * Test that asserts UnifiedClassLoaders behaviour.
+ *
+ * @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 abstract class RepositoryTest<C, L> extends UclClassPoolTest< C, L>
+{
+ public RepositoryTest(String name)
+ {
+ super(name);
+ }
+
+ public void testGlobalScope() throws Exception
+ {
+ UCLInfo uclInfoA = new GlobalUCLInfo(JAR_A_1_URL);
+ L loaderA = testScenario.createLoader(uclInfoA);
+ UCLInfo uclInfoB = new GlobalUCLInfo(JAR_B_1_URL);
+ L loaderB = testScenario.createLoader(uclInfoB);
+ //Call twice to ensure that we hit the cache
+ accessGlobalScope(loaderA, loaderB);
+ accessGlobalScope(loaderA, loaderB);
+
+ testScenario.destroyLoader(uclInfoB);
+ testScenario.loadClass(loaderA, CLASS_A);
+ testScenario.cannotLoadClass(loaderA, CLASS_B);
+ }
+
+
+ public void testChildDomain() throws Exception
+ {
+ L loaderA = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL));
+ L loaderB = testScenario.createLoader(new GlobalUCLInfo(JAR_B_1_URL));
+ L loaderC = testScenario.createLoader(new ChildUCLInfo(JAR_C_1_URL, false));
+ //Call twice to ensure that we hit the cache
+ accessChildDomain(loaderA, loaderB, loaderC);
+ accessChildDomain(loaderA, loaderB, loaderC);
+ }
+
+ public void testSiblingDomains() throws Exception
+ {
+ L loaderA = testScenario.createLoader(new ChildUCLInfo(JAR_A_1_URL, true));
+ L loaderB = testScenario.createLoader(new ChildUCLInfo(JAR_B_1_URL, false));
+
+ testScenario.loadClass(loaderA, CLASS_A);
+ testScenario.loadClass(loaderB, CLASS_B);
+ testScenario.cannotLoadClass(loaderA, CLASS_B);
+ testScenario.cannotLoadClass(loaderB, CLASS_A);
+ }
+
+ public void testChildWithNewClassesInParent() throws Exception
+ {
+ L scopedLoader = testScenario.createLoader(new ChildUCLInfo(JAR_B_1_URL, true));
+ testScenario.cannotLoadClass(scopedLoader, CLASS_A);
+ L globalLoader = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL));
+ C aFromChild = testScenario.loadClass(scopedLoader, globalLoader, CLASS_A);
+ C aFromParent = testScenario.loadClass(globalLoader, CLASS_A);
+ assertSame(aFromChild, aFromParent);
+
+ C aFromChild2 = testScenario.loadClass(scopedLoader, globalLoader, CLASS_A);
+ assertSame(aFromChild, aFromChild2);
+ }
+
+ public void testChildOverrideWithParentDelegation() throws Exception
+ {
+ L globalLoader = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL));
+ L scopedLoader = testScenario.createLoader(new ChildUCLInfo(JAR_A_2_URL, true));
+
+ C aFromParent = testScenario.loadClass(globalLoader, CLASS_A);
+ C aFromChild = testScenario.loadClass(scopedLoader, globalLoader, CLASS_A);
+ assertSame(aFromParent, aFromChild);
+ }
+
+ public void testChildOverrideWithNoParentDelegation() throws Exception
+ {
+ L globalLoader = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL));
+ L scopedLoader = testScenario.createLoader(new ChildUCLInfo(JAR_A_2_URL, false));
+
+ C aFromParent = testScenario.loadClass(globalLoader, CLASS_A);
+ C aFromChild = testScenario.loadClass(scopedLoader, CLASS_A);
+ assertNotSame(aFromParent, aFromChild);
+ }
+
+ public void testURLChildOfGlobalUclParentFirst() throws Exception
+ {
+ L globalLoader = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL));
+ ClassLoader globalClassLoader = testScenario.getClassLoader(globalLoader);
+ L childLoaderA = testScenario.createLoader(new URLClassLoaderInfo(JAR_B_1_URL, globalClassLoader));
+
+ //Try loading A from child first
+ C aFromA = testScenario.loadClass(childLoaderA, globalLoader, CLASS_A);
+
+ //Try loading A from global
+ C aFromGlobal = testScenario.loadClass(globalLoader, CLASS_A);
+ assertSame(aFromA, aFromGlobal);
+
+ //Try loading B from A
+ testScenario.loadClass(childLoaderA, CLASS_B);
+
+ L childLoaderB = testScenario.createLoader(new URLClassLoaderInfo(JAR_A_2_URL, globalClassLoader));
+
+ //Should get the cached copy from the parent
+ C aFromB = testScenario.loadClass(childLoaderB, globalLoader, CLASS_A);
+ assertSame(aFromA, aFromB);
+ }
+
+ public void testUndeploySibling() throws Exception
+ {
+ L loaderA = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL));
+ testScenario.cannotLoadClass(loaderA, CLASS_B);
+
+ UCLInfo uclInfoB = new GlobalUCLInfo(JAR_B_1_URL);
+ L loaderB = testScenario.createLoader(uclInfoB);
+
+ testScenario.loadClass(loaderA, loaderB, CLASS_B);
+ testScenario.destroyLoader(uclInfoB);
+ testScenario.cannotLoadClass(loaderA, CLASS_B);
+ }
+
+ /* FIXME test doesn't work
+ public void testUndeployParentDomainClassLoader() throws Exception
+ {
+ L loaderA = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL));
+ testScenario.cannotLoadClass(loaderA, CLASS_B);
+
+ L childLoader = testScenario.createLoader(new ChildCLInfo(JAR_C_1_URL, true));
+ testScenario.cannotLoadClass(childLoader, CLASS_B);
+
+ UCLInfo uclInfoB = new GlobalCLInfo(JAR_B_1_URL);
+ L loaderB = testScenario.createLoader(uclInfoB);
+
+ C bFromChild = testScenario.loadClass(childLoader, loaderB, CLASS_B);
+ C bFromA = testScenario.loadClass(loaderA, loaderB, CLASS_B);
+ assertSame(bFromA, bFromChild);
+
+ testScenario.destroyLoader(uclInfoB);
+ testScenario.cannotLoadClass(loaderA, CLASS_B);
+ testScenario.cannotLoadClass(childLoader, CLASS_B);
+ }*/
+
+ public void testUclWithParentClassLoader() throws Exception
+ {
+ L parentLoader = testScenario.createLoader(new URLClassLoaderInfo(JAR_B_1_URL));
+ L globalLoader = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL,
+ testScenario.getClassLoader(parentLoader)));
+
+ C aFromGlobal = testScenario.loadClass(globalLoader, CLASS_A);
+ C aFromGlobal2 = testScenario.loadClass(globalLoader, CLASS_A);
+ assertSame(aFromGlobal, aFromGlobal2);
+
+ C bFromGlobal = testScenario.loadClass(globalLoader, parentLoader, CLASS_B);
+ C bFromGlobal2 = testScenario.loadClass(globalLoader, parentLoader, CLASS_B);
+ assertSame(bFromGlobal, bFromGlobal2);
+
+ C bFromParent = testScenario.loadClass(parentLoader, CLASS_B);
+ C bFromParent2 = testScenario.loadClass(parentLoader, CLASS_B);
+ assertSame(bFromParent, bFromParent2);
+ assertSame(bFromGlobal, bFromParent);
+ }
+
+
+ public void testUclWithParentClassLoaderAndSameClassInDomain() throws Exception
+ {
+ L parentLoader = testScenario.createLoader(new URLClassLoaderInfo(JAR_B_1_URL));
+ L globalLoaderA = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL,
+ testScenario.getClassLoader(parentLoader)));
+
+ C aFromGlobal = testScenario.loadClass(globalLoaderA, CLASS_A);
+ C aFromGlobal2 = testScenario.loadClass(globalLoaderA, CLASS_A);
+ assertSame(aFromGlobal, aFromGlobal2);
+
+ L globalLoaderB = testScenario.createLoader(new GlobalUCLInfo(JAR_B_2_URL));
+ C bFromGlobal = testScenario.loadClass(globalLoaderA, globalLoaderB, CLASS_B);
+ C bFromGlobal2 = testScenario.loadClass(globalLoaderA, globalLoaderB, CLASS_B);
+ assertSame(bFromGlobal, bFromGlobal2);
+
+ C bFromParent = testScenario.loadClass(parentLoader, CLASS_B);
+ C bFromParent2 = testScenario.loadClass(parentLoader, CLASS_B);
+ assertSame(bFromParent, bFromParent2);
+
+ assertNotSame(bFromGlobal, bFromParent);
+ }
+
+ public void testUclLoaderOrdering() throws Exception
+ {
+ L globalLoaderA = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL));
+ L globalLoaderB = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL));
+ L globalLoaderC = testScenario.createLoader(new GlobalUCLInfo(JAR_A_1_URL));
+
+ C aFromA = testScenario.loadClass(globalLoaderA, CLASS_A);
+ C aFromB = testScenario.loadClass(globalLoaderB, globalLoaderA, CLASS_A);
+ C aFromC = testScenario.loadClass(globalLoaderC, globalLoaderA, CLASS_A);
+ assertSame(aFromA, aFromB);
+ assertSame(aFromA, aFromC);
+ }
+
+ private void accessGlobalScope(L loaderA, L loaderB) throws Exception
+ {
+ C aFromA = testScenario.loadClass(loaderA, CLASS_A);
+ C bFromA = testScenario.loadClass(loaderA, loaderB, CLASS_B);
+ C aFromB = testScenario.loadClass(loaderB, loaderA, CLASS_A);
+ C bFromB = testScenario.loadClass(loaderB, CLASS_B);
+ assertSame(aFromA, aFromB);
+ assertSame(bFromA, bFromB);
+ }
+
+ private void accessChildDomain(L loaderA, L loaderB, L loaderC)
+ throws Exception
+ {
+ C aFromA = testScenario.loadClass(loaderA, CLASS_A);
+ C bFromB = testScenario.loadClass(loaderB, CLASS_B);
+ C aFromC = testScenario.loadClass(loaderC, loaderA, CLASS_A);
+ C bFromC = testScenario.loadClass(loaderC, loaderB, CLASS_B);
+ assertSame(aFromA, aFromC);
+ assertSame(bFromB, bFromC);
+
+ testScenario.loadClass(loaderC, CLASS_C);
+ testScenario.cannotLoadClass(loaderA, CLASS_C);
+ testScenario.cannotLoadClass(loaderB, CLASS_C);
+ }
+}
\ No newline at end of file
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UCLLoaderClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UCLLoaderClassPoolTestCase.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UCLLoaderClassPoolTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,108 +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.ucl.test;
-
-import static org.jboss.test.classpool.support.SupportArchives.JAR_A_1_URL;
-import static org.jboss.test.classpool.support.SupportArchives.JAR_A_2_URL;
-import static org.jboss.test.classpool.support.SupportArchives.JAR_B_1_URL;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_A;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_B;
-
-import java.net.URL;
-
-import javassist.ClassPool;
-import javassist.CtClass;
-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.ucl.support.GlobalCLInfo;
-import org.jboss.test.classpool.ucl.support.ParentLastURLClassLoaderInfo;
-import org.jboss.test.classpool.ucl.support.UCLFactory;
-import org.jboss.test.classpool.ucl.support.UCLInfo;
-
-/**
- * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
- *
- * @version $Revision$
- */
-
-public class UCLLoaderClassPoolTestCase extends
- UclLoaderTest<CtClass, ClassPool>
-{
- public static Test suite()
- {
- return new TestSuite(UCLLoaderClassPoolTestCase.class);
- }
-
- public UCLLoaderClassPoolTestCase(String name)
- {
- super(name);
- }
-
- @Override
- protected TestScenario<CtClass, ClassPool, UCLInfo> getTestScenario()
- {
- return new ClassPoolTestScenario<UCLInfo>(new UCLFactory());
- }
-
- // FIXME JBREFLECT-83
- @Override
- public void testUclWithParentClassLoaderAndSameClassInDomain() {}
-
- // FIXME JBREFLECT-83
- @Override
- public void testUclLoaderOrdering() {}
-
- public void testURLChildOfGlobalUcParentLast() throws Exception
- {
- ClassPool globalPool = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL));
- ClassLoader globalClassLoader = testScenario.getClassLoader(globalPool);
- ClassPool childPoolA = createParentLastURLClassPool(JAR_B_1_URL, globalClassLoader);
-
- //Try loading A from child first
- CtClass aFromA = testScenario.loadClass(childPoolA, globalPool, CLASS_A);/*childPoolA.get(CLASS_A);
- assertSame(globalPool, aFromA.getClassPool());*/
-
- //Try loading A from global
- CtClass aFromGlobal = testScenario.loadClass(globalPool, CLASS_A);/*globalPool.get(CLASS_A);*/
- assertSame(aFromA, aFromGlobal);
-
- //Try loading B from A
- CtClass bFromA = childPoolA.get(CLASS_B);
- assertSame(childPoolA, bFromA.getClassPool());
-
- //Should get the child copy
- /* TODO why can't I use JAR_A1_URL instead?*/
- ClassPool childPoolB = createParentLastURLClassPool(JAR_A_2_URL, globalClassLoader);
- CtClass aFromB = childPoolB.get(CLASS_A);
- assertSame(childPoolB, aFromB.getClassPool());
- }
-
- private ClassPool createParentLastURLClassPool(URL url, ClassLoader parent) throws Exception
- {
- ClassPool pool = testScenario.createLoader(new ParentLastURLClassLoaderInfo(url, parent));
- pool.childFirstLookup = true;
- return pool;
- }
-}
\ No newline at end of file
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UCLLoaderSanityTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UCLLoaderSanityTestCase.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UCLLoaderSanityTestCase.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,56 +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.ucl.test;
-
-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.ucl.support.UCLFactory;
-import org.jboss.test.classpool.ucl.support.UCLInfo;
-
-/**
- * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
- *
- * @version $Revision$
- */
-
-public class UCLLoaderSanityTestCase extends UclLoaderTest<Class<?>, ClassLoader>
-{
- public static Test suite()
- {
- return new TestSuite(UCLLoaderSanityTestCase.class);
- }
-
- public UCLLoaderSanityTestCase(String name)
- {
- super(name);
- }
-
- @Override
- protected TestScenario<Class<?>, ClassLoader, UCLInfo> getTestScenario()
- {
- return new SanityTestScenario<UCLInfo>(new UCLFactory());
- }
-
-}
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclClassPoolTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclClassPoolTest.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclClassPoolTest.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,24 +1,24 @@
/*
-* 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.
-*/
+ * 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.ucl.test;
import java.io.File;
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclClassPoolTestDelegate.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclClassPoolTestDelegate.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclClassPoolTestDelegate.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,39 +1,38 @@
/*
-* 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.
-*/
+ * 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.ucl.test;
import org.jboss.test.AbstractTestDelegate;
/**
+ * Delegate of UclClassPoolTest.
*
* @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
* @version $Revision$
*/
public class UclClassPoolTestDelegate extends AbstractTestDelegate
{
-
public UclClassPoolTestDelegate(Class<?> clazz)
{
super(clazz);
}
-
-}
+}
\ No newline at end of file
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclClassPoolTestSuite.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclClassPoolTestSuite.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclClassPoolTestSuite.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,50 +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.ucl.test;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import junit.textui.TestRunner;
-
-/**
- *
- * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
- * @version $Revision$
- */
-public class UclClassPoolTestSuite extends TestSuite
-{
- public static void main(String[] args)
- {
- TestRunner.run(suite());
- }
-
- public static Test suite()
- {
- TestSuite suite = new TestSuite("UclClassPool All Tests");
-
- suite.addTest(UCLLoaderSanityTestCase.suite());
- suite.addTest(UCLLoaderClassPoolTestCase.suite());
-
- return suite;
- }
-
-}
Deleted: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclLoaderTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclLoaderTest.java 2009-12-09 18:09:49 UTC (rev 97632)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/ucl/test/UclLoaderTest.java 2009-12-09 19:21:45 UTC (rev 97633)
@@ -1,260 +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.ucl.test;
-
-import static org.jboss.test.classpool.support.SupportArchives.JAR_A_1_URL;
-import static org.jboss.test.classpool.support.SupportArchives.JAR_A_2_URL;
-import static org.jboss.test.classpool.support.SupportArchives.JAR_B_1_URL;
-import static org.jboss.test.classpool.support.SupportArchives.JAR_B_2_URL;
-import static org.jboss.test.classpool.support.SupportArchives.JAR_C_1_URL;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_A;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_B;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_C;
-
-import org.jboss.test.classpool.ucl.support.ChildCLInfo;
-import org.jboss.test.classpool.ucl.support.GlobalCLInfo;
-import org.jboss.test.classpool.ucl.support.UCLInfo;
-import org.jboss.test.classpool.ucl.support.URLClassLoaderInfo;
-
-/**
- * This is here to figure out how the UCLs work, and we will duplicate this
- * in the classpool test
- *
- * @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 abstract class UclLoaderTest< C, L> extends UclClassPoolTest< C, L>
-{
- public UclLoaderTest(String name)
- {
- super(name);
- }
-
- public void testGlobalScope() throws Exception
- {
- UCLInfo uclInfoA = new GlobalCLInfo(JAR_A_1_URL);
- L loaderA = testScenario.createLoader(uclInfoA);
- UCLInfo uclInfoB = new GlobalCLInfo(JAR_B_1_URL);
- L loaderB = testScenario.createLoader(uclInfoB);
- //Call twice to ensure that we hit the cache
- accessGlobalScope(loaderA, loaderB);
- accessGlobalScope(loaderA, loaderB);
-
- testScenario.destroyLoader(uclInfoB);
- testScenario.loadClass(loaderA, CLASS_A);
- testScenario.cannotLoadClass(loaderA, CLASS_B);
- }
-
-
- public void testChildDomain() throws Exception
- {
- L loaderA = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL));
- L loaderB = testScenario.createLoader(new GlobalCLInfo(JAR_B_1_URL));
- L loaderC = testScenario.createLoader(new ChildCLInfo(JAR_C_1_URL, false));
- //Call twice to ensure that we hit the cache
- accessChildDomain(loaderA, loaderB, loaderC);
- accessChildDomain(loaderA, loaderB, loaderC);
- }
-
- public void testSiblingDomains() throws Exception
- {
- L loaderA = testScenario.createLoader(new ChildCLInfo(JAR_A_1_URL, true));
- L loaderB = testScenario.createLoader(new ChildCLInfo(JAR_B_1_URL, false));
-
- testScenario.loadClass(loaderA, CLASS_A);
- testScenario.loadClass(loaderB, CLASS_B);
- testScenario.cannotLoadClass(loaderA, CLASS_B);
- testScenario.cannotLoadClass(loaderB, CLASS_A);
- }
-
- public void testChildWithNewClassesInParent() throws Exception
- {
- L scopedLoader = testScenario.createLoader(new ChildCLInfo(JAR_B_1_URL, true));
- testScenario.cannotLoadClass(scopedLoader, CLASS_A);
- L globalLoader = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL));
- C aFromChild = testScenario.loadClass(scopedLoader, globalLoader, CLASS_A);
- C aFromParent = testScenario.loadClass(globalLoader, CLASS_A);
- assertSame(aFromChild, aFromParent);
-
- C aFromChild2 = testScenario.loadClass(scopedLoader, globalLoader, CLASS_A);
- assertSame(aFromChild, aFromChild2);
- }
-
- public void testChildOverrideWithParentDelegation() throws Exception
- {
- L globalLoader = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL));
- L scopedLoader = testScenario.createLoader(new ChildCLInfo(JAR_A_2_URL, true));
-
- C aFromParent = testScenario.loadClass(globalLoader, CLASS_A);
- C aFromChild = testScenario.loadClass(scopedLoader, globalLoader, CLASS_A);
- assertSame(aFromParent, aFromChild);
- }
-
- public void testChildOverrideWithNoParentDelegation() throws Exception
- {
- L globalLoader = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL));
- L scopedLoader = testScenario.createLoader(new ChildCLInfo(JAR_A_2_URL, false));
-
- C aFromParent = testScenario.loadClass(globalLoader, CLASS_A);
- C aFromChild = testScenario.loadClass(scopedLoader, CLASS_A);
- assertNotSame(aFromParent, aFromChild);
- }
-
- public void testURLChildOfGlobalUclParentFirst() throws Exception
- {
- L globalLoader = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL));
- ClassLoader globalClassLoader = testScenario.getClassLoader(globalLoader);
- L childLoaderA = testScenario.createLoader(new URLClassLoaderInfo(JAR_B_1_URL, globalClassLoader));
-
- //Try loading A from child first
- C aFromA = testScenario.loadClass(childLoaderA, globalLoader, CLASS_A);
-
- //Try loading A from global
- C aFromGlobal = testScenario.loadClass(globalLoader, CLASS_A);
- assertSame(aFromA, aFromGlobal);
-
- //Try loading B from A
- testScenario.loadClass(childLoaderA, CLASS_B);
-
- L childLoaderB = testScenario.createLoader(new URLClassLoaderInfo(JAR_A_2_URL, globalClassLoader));
-
- //Should get the cached copy from the parent
- C aFromB = testScenario.loadClass(childLoaderB, globalLoader, CLASS_A);
- assertSame(aFromA, aFromB);
- }
-
- public void testUndeploySibling() throws Exception
- {
- L loaderA = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL));
- testScenario.cannotLoadClass(loaderA, CLASS_B);
-
- UCLInfo uclInfoB = new GlobalCLInfo(JAR_B_1_URL);
- L loaderB = testScenario.createLoader(uclInfoB);
-
- testScenario.loadClass(loaderA, loaderB, CLASS_B);
- testScenario.destroyLoader(uclInfoB);
- testScenario.cannotLoadClass(loaderA, CLASS_B);
- }
-
- /* FIXME test doesn't work
- public void testUndeployParentDomainClassLoader() throws Exception
- {
- L loaderA = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL));
- testScenario.cannotLoadClass(loaderA, CLASS_B);
-
- L childLoader = testScenario.createLoader(new ChildCLInfo(JAR_C_1_URL, true));
- testScenario.cannotLoadClass(childLoader, CLASS_B);
-
- UCLInfo uclInfoB = new GlobalCLInfo(JAR_B_1_URL);
- L loaderB = testScenario.createLoader(uclInfoB);
-
- C bFromChild = testScenario.loadClass(childLoader, loaderB, CLASS_B);
- C bFromA = testScenario.loadClass(loaderA, loaderB, CLASS_B);
- assertSame(bFromA, bFromChild);
-
- testScenario.destroyLoader(uclInfoB);
- testScenario.cannotLoadClass(loaderA, CLASS_B);
- testScenario.cannotLoadClass(childLoader, CLASS_B);
- }*/
-
- public void testUclWithParentClassLoader() throws Exception
- {
- L parentLoader = testScenario.createLoader(new URLClassLoaderInfo(JAR_B_1_URL));
- L globalLoader = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL,
- testScenario.getClassLoader(parentLoader)));
-
- C aFromGlobal = testScenario.loadClass(globalLoader, CLASS_A);
- C aFromGlobal2 = testScenario.loadClass(globalLoader, CLASS_A);
- assertSame(aFromGlobal, aFromGlobal2);
-
- C bFromGlobal = testScenario.loadClass(globalLoader, parentLoader, CLASS_B);
- C bFromGlobal2 = testScenario.loadClass(globalLoader, parentLoader, CLASS_B);
- assertSame(bFromGlobal, bFromGlobal2);
-
- C bFromParent = testScenario.loadClass(parentLoader, CLASS_B);
- C bFromParent2 = testScenario.loadClass(parentLoader, CLASS_B);
- assertSame(bFromParent, bFromParent2);
- assertSame(bFromGlobal, bFromParent);
- }
-
-
- public void testUclWithParentClassLoaderAndSameClassInDomain() throws Exception
- {
- L parentLoader = testScenario.createLoader(new URLClassLoaderInfo(JAR_B_1_URL));
- L globalLoaderA = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL,
- testScenario.getClassLoader(parentLoader)));
-
- C aFromGlobal = testScenario.loadClass(globalLoaderA, CLASS_A);
- C aFromGlobal2 = testScenario.loadClass(globalLoaderA, CLASS_A);
- assertSame(aFromGlobal, aFromGlobal2);
-
- L globalLoaderB = testScenario.createLoader(new GlobalCLInfo(JAR_B_2_URL));
- C bFromGlobal = testScenario.loadClass(globalLoaderA, globalLoaderB, CLASS_B);
- C bFromGlobal2 = testScenario.loadClass(globalLoaderA, globalLoaderB, CLASS_B);
- assertSame(bFromGlobal, bFromGlobal2);
-
- C bFromParent = testScenario.loadClass(parentLoader, CLASS_B);
- C bFromParent2 = testScenario.loadClass(parentLoader, CLASS_B);
- assertSame(bFromParent, bFromParent2);
-
- assertNotSame(bFromGlobal, bFromParent);
- }
-
- public void testUclLoaderOrdering() throws Exception
- {
- L globalLoaderA = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL));
- L globalLoaderB = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL));
- L globalLoaderC = testScenario.createLoader(new GlobalCLInfo(JAR_A_1_URL));
-
- C aFromA = testScenario.loadClass(globalLoaderA, CLASS_A);
- C aFromB = testScenario.loadClass(globalLoaderB, globalLoaderA, CLASS_A);
- C aFromC = testScenario.loadClass(globalLoaderC, globalLoaderA, CLASS_A);
- assertSame(aFromA, aFromB);
- assertSame(aFromA, aFromC);
- }
-
- private void accessGlobalScope(L loaderA, L loaderB) throws Exception
- {
- C aFromA = testScenario.loadClass(loaderA, CLASS_A);
- C bFromA = testScenario.loadClass(loaderA, loaderB, CLASS_B);
- C aFromB = testScenario.loadClass(loaderB, loaderA, CLASS_A);
- C bFromB = testScenario.loadClass(loaderB, CLASS_B);
- assertSame(aFromA, aFromB);
- assertSame(bFromA, bFromB);
- }
-
- private void accessChildDomain(L loaderA, L loaderB, L loaderC)
- throws Exception
- {
- C aFromA = testScenario.loadClass(loaderA, CLASS_A);
- C bFromB = testScenario.loadClass(loaderB, CLASS_B);
- C aFromC = testScenario.loadClass(loaderC, loaderA, CLASS_A);
- C bFromC = testScenario.loadClass(loaderC, loaderB, CLASS_B);
- assertSame(aFromA, aFromC);
- assertSame(bFromB, bFromC);
-
- testScenario.loadClass(loaderC, CLASS_C);
- testScenario.cannotLoadClass(loaderA, CLASS_C);
- testScenario.cannotLoadClass(loaderB, CLASS_C);
- }
-}
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list