[jboss-cvs] JBossAS SVN: r97064 - projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Nov 27 01:29:02 EST 2009
Author: flavia.rainone at jboss.com
Date: 2009-11-27 01:29:02 -0500 (Fri, 27 Nov 2009)
New Revision: 97064
Added:
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassLoaderSanityTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveTest.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ClassPoolTestScenario.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/SanityTestScenario.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/TestScenario.java
Modified:
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassPoolTestCase.java
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java
Log:
[JREFLECT-73] ArchiveClassPoolTestCase has been refactored in a way that the same tests can be run against both class loaders and classpools.
Added: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassLoaderSanityTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassLoaderSanityTestCase.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassLoaderSanityTestCase.java 2009-11-27 06:29:02 UTC (rev 97064)
@@ -0,0 +1,51 @@
+/*
+ * 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 junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
+ *
+ * @version $Revision$
+ */
+
+public class ArchiveClassLoaderSanityTestCase extends
+ ArchiveTest<Class<?>, ClassLoader>
+{
+ public static Test suite()
+ {
+ return new TestSuite(ArchiveClassLoaderSanityTestCase.class);
+ }
+
+ public ArchiveClassLoaderSanityTestCase(String name)
+ {
+ super(name);
+ }
+
+ @Override
+ protected TestScenario<Class<?>, ClassLoader> getTestScenario()
+ {
+ return new SanityTestScenario(this);
+ }
+}
\ No newline at end of file
Property changes on: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassLoaderSanityTestCase.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/ArchiveClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassPoolTestCase.java 2009-11-27 05:18:29 UTC (rev 97063)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassPoolTestCase.java 2009-11-27 06:29:02 UTC (rev 97064)
@@ -21,79 +21,19 @@
*/
package org.jboss.test.classpool.jbosscl.test;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_A;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_CRM;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_EXT;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_JSF;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_MBEAN;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_PLAIN;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_SERVLET;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_SLS_BEAN;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_SLS_INTERFACE;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_TIF;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_UI;
-import static org.jboss.test.classpool.support.SupportClasses.CLASS_UTIL;
-
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-
import javassist.ClassPool;
import javassist.CtClass;
-import javassist.CtMethod;
-import javassist.NotFoundException;
import junit.framework.Test;
import junit.framework.TestSuite;
-import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
-import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
-import org.jboss.classloader.plugins.ClassLoaderUtils;
-import org.jboss.test.classpool.support.BundleInfoBuilder;
-import org.jboss.test.classpool.support.Result;
-import org.jboss.test.classpool.support.SupportClasses;
-
-
-
/**
* @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
*
* @version $Revision$
*/
-public class ArchiveClassPoolTestCase extends JBossClClassPoolTest
+public class ArchiveClassPoolTestCase extends ArchiveTest<CtClass, ClassPool>
{
- // TODO refactorate this, extracting this from this class
- // TODO move the jars to a directory of their own (such as target/test-archives)
- public final static URL SIMPLE_JAR = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_JAR);
- public final static URL SIMPLE_SAR = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_SAR);
- public final static URL EJB_JAR = getURLRelativeToProjectRoot(SupportClasses.EJB_JAR);
- public final static URL SIMPLE_WAR = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_WAR);
- public final static URL SIMPLE_EAR_JAR = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_JAR);
- public final static URL SIMPLE_EAR_SAR = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_SAR);
- public final static URL SIMPLE_EAR_EJB = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_EJB);
- public final static URL SIMPLE_EAR_LIB1 = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_LIB1);
- public final static URL SIMPLE_EAR_LIB2 = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_LIB2);
- public final static URL SIMPLE_EAR_WAR1 = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_WAR1);
- public final static URL SIMPLE_EAR_WAR1_CP = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_WAR1_CP);
- public final static URL SIMPLE_EAR_WAR1_LIB = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_WAR1_LIB);
- public final static URL SIMPLE_EAR_WAR2 = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_WAR2);
- public final static URL SIMPLE_EAR_WAR2_CP = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_WAR2_CP);
- public final static URL SIMPLE_EAR_WAR2_LIB = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_WAR2_LIB);
- public final static URL EAR_UTIL1 = getURLRelativeToProjectRoot(SupportClasses.EAR_UTIL1);
- public final static URL EAR_UTIL2 = getURLRelativeToProjectRoot(SupportClasses.EAR_UTIL2);
- public final static URL EAR_WAR = getURLRelativeToProjectRoot(SupportClasses.EAR_WAR);
- public final static URL EAR_WAR_CP = getURLRelativeToProjectRoot(SupportClasses.EAR_WAR_CP);
- public final static URL EAR_JAR = getURLRelativeToProjectRoot(SupportClasses.EAR_JAR);
- public final static URL SERVLET_JAR = getURLRelativeToProjectRoot(SupportClasses.SERVLET_JAR);
- public final static URL PTD_EAR_LIB = getURLRelativeToProjectRoot(SupportClasses.PTD_EAR_LIB);
- public final static URL PTD_JSF_WAR = getURLRelativeToProjectRoot(SupportClasses.PTD_JSF_WAR);
- public final static URL PTD_JSF_WAR_LIB = getURLRelativeToProjectRoot(SupportClasses.PTD_JSF_WAR_LIB);
- public final static URL PTD_WS_WAR = getURLRelativeToProjectRoot(SupportClasses.PTD_WS_WAR);
- public final static URL PTD_WS_WAR_LIB = getURLRelativeToProjectRoot(SupportClasses.PTD_WS_WAR_LIB);
- public final static URL EXCLUDED_CLASSPATH = getURLRelativeToProjectRoot(SupportClasses.EXCLUDED_CLASSPATH);
-
- final static String STRING = String.class.getName();
-
public static Test suite()
{
return new TestSuite(ArchiveClassPoolTestCase.class);
@@ -104,615 +44,9 @@
super(name);
}
- // TODO do an assertNotFound for all classes not included in the package being tested
-
- public void testJar() throws Exception
+ @Override
+ protected TestScenario<CtClass, ClassPool> getTestScenario()
{
- ClassPool classPool = null;
- Result result = new Result();
- try
- {
- classPool = createClassPool(result, "simple.jar", true, SIMPLE_JAR);
- assertClassPool(classPool, CLASS_PLAIN);
- }
- finally
- {
- if (classPool != null)
- {
- unregisterClassPool(classPool);
- assertNoClassPool(result);
- }
- }
+ return new ClassPoolTestScenario(this);
}
-
- public void testSar() throws Exception
- {
- ClassPool classPool = null;
- Result result = new Result();
- try
- {
- classPool = createClassPool(result, "simple.sar", true, SIMPLE_SAR);
- assertClassPool(classPool, CLASS_MBEAN);
- }
- finally
- {
- if (classPool != null)
- {
- unregisterClassPool(classPool);
- assertNoClassPool(result);
- }
- }
- }
-
- public void testEjbJar() throws Exception
- {
- ClassPool classPool = null;
- Result result = new Result();
- try
- {
- classPool = createClassPool(result, "ejbs.jar", true, EJB_JAR);
- assertClassPool(classPool, CLASS_SLS_BEAN, CLASS_SLS_INTERFACE);
- }
- finally
- {
- if (classPool != null)
- {
- unregisterClassPool(classPool);
- assertNoClassPool(result);
- }
- }
- }
-
- public void testWar() throws Exception
- {
- ClassPool classPool = null;
- Result result = new Result();
- try
- {
- classPool = createChildDomainParentLastClassPool(result, "simple.war", "simple.war", true,
- SIMPLE_WAR);
- assertClassPool(classPool, CLASS_SERVLET);
- }
- finally
- {
- if (classPool != null)
- {
- unregisterClassPool(classPool);
- assertNoClassPool(result);
- }
- }
- }
-
- public void testEar() throws Exception
- {
- ClassPool earClassPool = null;
- ClassPool war1ClassPool = null;
- ClassPool war2ClassPool = null;
- Result earResult = new Result();
- Result war1Result = new Result();
- Result war2Result = new Result();
- try
- {
- URL[] excludes = {SIMPLE_EAR_WAR1, SIMPLE_EAR_WAR1_CP, SIMPLE_EAR_WAR1_LIB,
- SIMPLE_EAR_WAR2, SIMPLE_EAR_WAR2_CP, SIMPLE_EAR_WAR2_LIB};
- earClassPool = createClassPool(earResult, "simple.ear", true, excludes, SIMPLE_EAR_JAR,
- SIMPLE_EAR_SAR, SIMPLE_EAR_EJB, SIMPLE_EAR_LIB1, SIMPLE_EAR_LIB2);
- war1ClassPool = createChildDomainParentLastClassPool(war1Result, "simple.ear/simple_ui.war",
- "simple_ui.war", true, earClassPool, SIMPLE_EAR_WAR1_CP, SIMPLE_EAR_WAR1_LIB);
- war2ClassPool = createChildDomainParentLastClassPool(war2Result, "simple.ear/jsfapp.war",
- "simple_ui.war", true, earClassPool, SIMPLE_EAR_WAR2_CP, SIMPLE_EAR_WAR2_LIB);
-
- Map<String, ClassPool> classes = new HashMap<String, ClassPool>();
- classes.put(CLASS_UTIL, earClassPool);
- classes.put(CLASS_EXT, earClassPool);
- classes.put(CLASS_PLAIN, earClassPool);
- classes.put(CLASS_SLS_BEAN, earClassPool);
- classes.put(CLASS_SLS_INTERFACE, earClassPool);
- classes.put(CLASS_SERVLET, war1ClassPool);
- classes.put(CLASS_UI, war1ClassPool);
- classes.put(CLASS_JSF, war2ClassPool);
- classes.put(CLASS_CRM, war2ClassPool);
- classes.put(CLASS_MBEAN, earClassPool);
- assertClassPool(classes);
- assertSimpleHierarchy(earClassPool, war1ClassPool);
- }
- finally
- {
- if (war1ClassPool != null)
- {
- unregisterClassPool(war1ClassPool);
- assertNoClassPool(war1Result);
- }
- if (war2ClassPool != null)
- {
- unregisterClassPool(war2ClassPool);
- assertNoClassPool(war2Result);
- }
- if (earClassPool != null)
- {
- unregisterClassPool(earClassPool);
- assertNoClassPool(earResult);
- }
- }
- }
-
- public void testTopLevelWithUtil() throws Exception
- {
- ClassPool earClassPool = null;
- Result earResult = new Result();
- try
- {
- earClassPool = createClassPool(earResult, "top-level.ear", true, EAR_UTIL1, EAR_UTIL2);
- assertClassPool(earClassPool, CLASS_UTIL, CLASS_EXT);
- }
- finally
- {
- if (earClassPool != null)
- {
- unregisterClassPool(earClassPool);
- assertNoClassPool(earResult);
- }
- }
- }
-
- public void testWarInEar() throws Exception
- {
- ClassPool earClassPool = null;
- ClassPool warClassPool = null;
- Result earResult = new Result();
- Result warResult = new Result();
- try
- {
- URL[] excludes = {EAR_WAR, EAR_WAR_CP};
- earClassPool = createClassPool(earResult, "war-in-ear.ear", true, excludes);
- warClassPool = createChildDomainParentLastClassPool(warResult, "war-in-ear.ear/simple.war",
- "simple.war", true, earClassPool, EAR_WAR_CP);
- Map<String, ClassPool> classes = new HashMap<String, ClassPool>();
- classes.put(CLASS_SERVLET, warClassPool);
- assertClassPool(classes);
- }
- finally
- {
- if (warClassPool != null)
- {
- unregisterClassPool(warClassPool);
- assertNoClassPool(warResult);
- }
- if (earClassPool != null)
- {
- unregisterClassPool(earClassPool);
- assertNoClassPool(earResult);
- }
- }
- }
-
- public void testJarInEar() throws Exception
- {
- ClassPool earClassPool = null;
- Result earResult = new Result();
- try
- {
- earClassPool = createClassPool(earResult, "jar-in-ear.ear", true, EAR_JAR);
- assertClassPool(earClassPool, CLASS_PLAIN);
- }
- finally
- {
- if (earClassPool != null)
- {
- unregisterClassPool(earClassPool);
- assertNoClassPool(earResult);
- }
- }
- }
-
- public void testIsolatedJars() throws Exception
- {
- ClassPool classPool1 = null;
- ClassPool classPool2 = null;
- Result result1 = new Result();
- Result result2 = new Result();
- try
- {
- classPool1 = createChildDomainParentFirstClassPool(result1, "a1.jar", "a1.jar_Domain", true, JAR_A_1);
- classPool2 = createChildDomainParentFirstClassPool(result2, "a2.jar", "a2.jar_Domain", true, JAR_A_2);
- assertIsolated(classPool1, classPool2);
- }
- finally
- {
- if (classPool1 != null)
- {
- unregisterClassPool(classPool1);
- assertNoClassPool(result1);
- }
- if (classPool2 != null)
- {
- unregisterClassPool(classPool2);
- assertNoClassPool(result2);
- }
- }
- }
-
- public void testHierarchyJarsChildFirst() throws Exception
- {
- ClassPool classPool1 = null;
- ClassPool classPool2 = null;
- Result result1 = new Result();
- Result result2 = new Result();
- try
- {
- classPool1 = createChildDomainParentFirstClassPool(result1, "a1.jar", "a1.jar_Domain", true, JAR_A_1);
- classPool2 = createChildDomainParentLastClassPool(result2, "a2.jar", "a2.jar_Domain", "a1.jar_Domain", true, JAR_A_2);
- assertIsolated(classPool1, classPool2);
- }
- finally
- {
- if (classPool2 != null)
- {
- unregisterClassPool(classPool2);
- assertNoClassPool(result2);
- }
- if (classPool1 != null)
- {
- unregisterClassPool(classPool1);
- assertNoClassPool(result1);
- }
- }
- }
-
- public void testDomainHierarchy() throws Exception
- {
- ClassPool topClassPool = null;
- ClassPool leftClassPool = null;
- ClassPool rightClassPool = null;
- Result topResult = new Result();
- Result leftResult = new Result();
- Result rightResult = new Result();
- try
- {
- // TODO replace a1.jar by the SupportClasses equivalent
- topClassPool = createChildDomainParentFirstClassPool(topResult, "simple.jar", "simple.jar_Domain", true, SIMPLE_JAR);
- leftClassPool = createChildDomainParentFirstClassPool(leftResult, "servlet.jarL", "servlet.jar_DomainLeft", "simple.jar_Domain", true, SERVLET_JAR);
- rightClassPool = createChildDomainParentFirstClassPool(rightResult, "servlet.jarR", "servlet.jar_DomainRight", "simple.jar_Domain", true, SERVLET_JAR);
- assertDomainHierarchy(topClassPool, leftClassPool, rightClassPool);
- }
- finally
- {
- if (leftClassPool != null)
- {
- unregisterClassPool(leftClassPool);
- assertNoClassPool(leftResult);
- }
- if (rightClassPool != null)
- {
- unregisterClassPool(rightClassPool);
- assertNoClassPool(rightResult);
- }
- if (topClassPool != null)
- {
- unregisterClassPool(topClassPool);
- assertNoClassPool(topResult);
- }
- }
- }
-
- public void testEar2War() throws Exception
- {
- ClassPool topClassPool = null;
- ClassPool leftClassPool = null;
- ClassPool rightClassPool = null;
- Result topResult = new Result();
- Result leftResult = new Result();
- Result rightResult = new Result();
- try
- {
- URL[] excludes = {PTD_JSF_WAR, PTD_JSF_WAR_LIB, PTD_WS_WAR, PTD_WS_WAR_LIB};
- topClassPool = createChildDomainParentLastClassPool(topResult,
- "ptd-ear-1.0-SNAPSHOT.ear", "ptd-ear-1.0-SNAPSHOT.ear_Domain", true, excludes, PTD_EAR_LIB);
- leftClassPool = createChildDomainParentFirstClassPool(leftResult, SupportClasses.PTD_JSF_WAR,
- "ptd-jsf-1.0-SNAPSHOT.war_Domain", "ptd-ear-1.0-SNAPSHOT.ear_Domain", true,
- PTD_JSF_WAR_LIB);
- rightClassPool = createChildDomainParentFirstClassPool(rightResult, SupportClasses.PTD_WS_WAR,
- "ptd-ws-1.0-SNAPSHOT.war_Domain", "ptd-ear-1.0-SNAPSHOT.ear_Domain", true,
- PTD_WS_WAR_LIB);
- assertDomainHierarchy(topClassPool, leftClassPool, rightClassPool);
- }
- finally
- {
- if (leftClassPool != null)
- {
- unregisterClassPool(leftClassPool);
- assertNoClassPool(leftResult);
- }
- if (rightClassPool != null)
- {
- unregisterClassPool(rightClassPool);
- assertNoClassPool(rightResult);
- }
- if (topClassPool != null)
- {
- unregisterClassPool(topClassPool);
- assertNoClassPool(topResult);
- }
- }
- }
-
- public void testJarAndExcludedClassPath() throws Exception
- {
- ClassPool jarClassPool = null;
- ClassPool anysClassPool = null;
- Result jarResult = new Result();
- Result anysResult = new Result();
- try
- {
- jarClassPool = createClassPool(jarResult, "simple.jar", true, SIMPLE_JAR);
- anysClassPool = createClassPool(anysResult, "anys-classloader", true,
- SupportClasses.PACKAGE_WEB, EXCLUDED_CLASSPATH);
-
- BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder("AnyServlet", CLASS_SERVLET);
- builder.setClassLoader(new AbstractDependencyValueMetaData("anys-classloader:0.0.0"));
- super.deploy(builder.getBeanMetaData());
-
- Object anys = assertBean("AnyServlet", Object.class);
- Class<?> anysClass = anys.getClass();
- ClassLoader anysCL = anysClass.getClassLoader();
- assertSame(anysCL, anysClassPool.getClassLoader());
- assertNotSame(anysCL, jarClassPool.getClassLoader());
- assertNonDeploymentModule(jarClassPool, anysClassPool);
- }
- finally
- {
- if (jarClassPool != null)
- {
- unregisterClassPool(jarClassPool);
- assertNoClassPool(jarResult);
- }
- if (anysClassPool != null)
- {
- unregisterClassPool(anysClassPool);
- assertNoClassPool(anysResult);
- }
- }
- }
-
- public void testTifHierarchy() throws Exception
- {
- ClassPool jarClassPool = null;
- Result jarResult = new Result();
- ClassPool anysClassPool = null;
- ClassPool tifClassPool = null;
- Result anysResult = new Result();
- Result tifResult = new Result();
- try
- {
- jarClassPool = createClassPool(jarResult, "simple.jar", true, SIMPLE_JAR);
- anysClassPool = createChildDomainParentFirstClassPool(anysResult, "anys-classloader",
- "Anys_Domain",true, SupportClasses.PACKAGE_WEB, EXCLUDED_CLASSPATH);
- tifClassPool = createChildDomainParentFirstClassPool(tifResult, "tif-classloader",
- "TIF_Domain", "Anys_Domain",true, SupportClasses.PACKAGE_TIF, EXCLUDED_CLASSPATH);
-
- BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder("AnyServlet", CLASS_SERVLET);
- builder.setClassLoader(new AbstractDependencyValueMetaData("anys-classloader:0.0.0"));
- super.deploy(builder.getBeanMetaData());
-
- builder = BeanMetaDataBuilder.createBuilder("TifTester", CLASS_TIF);
- builder.setClassLoader(new AbstractDependencyValueMetaData("tif-classloader:0.0.0"));
- super.deploy(builder.getBeanMetaData());
-
- Object anys = assertBean("AnyServlet", Object.class);
- Class<?> anysClass = anys.getClass();
- ClassLoader anysCL = anysClass.getClassLoader();
-
- Object tif = assertBean("TifTester", Object.class);
- Class<?> tifClass = tif.getClass();
- ClassLoader tifCL = tifClass.getClassLoader();
-
- ClassLoader jarCL = jarClassPool.getClassLoader();
-
- assertNotSame(jarCL, anysCL);
- assertNotSame(jarCL, tifCL);
- assertNotSame(anysCL, tifCL);
-
- assertNonDeploymentModule(jarClassPool, anysClassPool, tifClassPool);
- }
- finally
- {
- if (jarClassPool != null)
- {
- unregisterClassPool(jarClassPool);
- assertNoClassPool(jarResult);
- }
- if (tifClassPool != null)
- {
- unregisterClassPool(tifClassPool);
- assertNoClassPool(tifResult);
- }
- if (anysClassPool != null)
- {
- unregisterClassPool(anysClassPool);
- assertNoClassPool(anysResult);
- }
- }
- }
-
- public void testTifHierarchyWithRequirements() throws Exception
- {
- ClassPool jarClassPool = null;
- Result jarResult = new Result();
- ClassPool anysClassPool = null;
- ClassPool tifClassPool = null;
- Result anysResult = new Result();
- Result tifResult = new Result();
- try
- {
- jarClassPool = createClassPool(jarResult, "simple.jar", true,
- SupportClasses.PACKAGE_JAR, SIMPLE_JAR);
- BundleInfoBuilder bundleBuilder = BundleInfoBuilder.getBuilder();
- bundleBuilder.createModule("any-classloader:0.0.0$Module").
- createPackage(SupportClasses.PACKAGE_WEB).
- createRequirePackage(SupportClasses.PACKAGE_JAR);
- anysClassPool = createClassPool(anysResult, "anys-classloader",
- bundleBuilder, EXCLUDED_CLASSPATH);
- bundleBuilder = BundleInfoBuilder.getBuilder();
- bundleBuilder.createModule("tif-classloader:0.0.0$Module").
- createPackage(SupportClasses.PACKAGE_TIF).
- createRequirePackage(SupportClasses.PACKAGE_WEB);
- tifClassPool = createClassPool(tifResult, "tif-classloader",
- bundleBuilder, EXCLUDED_CLASSPATH);
-
- BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder("AnyServlet", CLASS_SERVLET);
- builder.setClassLoader(new AbstractDependencyValueMetaData("anys-classloader:0.0.0"));
- super.deploy(builder.getBeanMetaData());
-
- builder = BeanMetaDataBuilder.createBuilder("TifTester", CLASS_TIF);
- builder.setClassLoader(new AbstractDependencyValueMetaData("tif-classloader:0.0.0"));
- super.deploy(builder.getBeanMetaData());
-
- Object anys = assertBean("AnyServlet", Object.class);
- Class<?> anysClass = anys.getClass();
- ClassLoader anysCL = anysClass.getClassLoader();
-
- Object tif = assertBean("TifTester", Object.class);
- Class<?> tifClass = tif.getClass();
- ClassLoader tifCL = tifClass.getClassLoader();
-
- ClassLoader jarCL = jarClassPool.getClassLoader();
-
- assertNotSame(jarCL, anysCL);
- assertNotSame(jarCL, tifCL);
- assertNotSame(anysCL, tifCL);
-
- assertNonDeploymentModule(jarClassPool, anysClassPool, tifClassPool);
- }
- finally
- {
- if (jarClassPool != null)
- {
- unregisterClassPool(jarClassPool);
- assertNoClassPool(jarResult);
- }
- if (tifClassPool != null)
- {
- unregisterClassPool(tifClassPool);
- assertNoClassPool(tifResult);
- }
- if (anysClassPool != null)
- {
- unregisterClassPool(anysClassPool);
- assertNoClassPool(anysResult);
- }
- }
- }
-
- protected void assertClassPool(ClassPool parentClassPool, String... classNames) throws Exception
- {
- Map<String, ClassPool> map = new HashMap<String, ClassPool>();
- for (String className : classNames)
- {
- map.put(className, parentClassPool);
- }
- assertClassPool(map);
- }
-
- protected void assertClassPool(Map<String, ClassPool> classes) throws Exception
- {
- for (Map.Entry<String, ClassPool> entry : classes.entrySet())
- {
- String className = entry.getKey();
- ClassPool classPool = entry.getValue();
- // sanity check
- ClassLoader classLoader = classPool.getClassLoader();
- Class<?> loadedClass = assertLoadClass(className, classLoader);
- CtClass ctClass = classPool.getCtClass(className);
- assertNotNull("Class" + className + " retrieved from classloader " + classLoader + " is null", loadedClass);
- assertNotNull("Class" + className + " retrieved from pool " + classPool + " is null", ctClass);
- assertEquals(className, loadedClass.getName());
- assertEquals(className, ctClass.getName());
- ClassLoader cl = ctClass.getClassPool().getClassLoader();
- assertEquals("Class has been loaded by the wrong class loader: " + className,
- loadedClass.getClassLoader(), cl);
- }
- }
-
- private void assertSimpleHierarchy(ClassPool topClassPool, ClassPool childClassPool) throws
- NotFoundException
- {
- CtClass ctClass = childClassPool.getCtClass(CLASS_SERVLET);
- CtMethod ctMethod = ctClass.getDeclaredMethod("getBean");
- assertNotNull("No such 'getBean' method on " + ctClass, ctMethod);
-
- CtClass returnCtClass = ctMethod.getReturnType();
- CtClass returnCtClass2 = topClassPool.getCtClass(CLASS_PLAIN);
- assertSame(returnCtClass, returnCtClass2);
- }
-
- protected void assertIsolated(ClassPool classPool1, ClassPool classPool2) throws Exception
- {
- ClassLoader classLoader1 = classPool1.getClassLoader();;
- ClassLoader classLoader2 = classPool2.getClassLoader();
-
- assertFalse(classLoader1.equals(classLoader2));
- Class<?> class1 = assertLoadClass(CLASS_A, classLoader1, classLoader1);
-
- Class<?> class2 = assertLoadClass(CLASS_A, classLoader2, classLoader2);
- assertNotSame("Should NOT be the same " + ClassLoaderUtils.classToString(class1) +" and "
- + ClassLoaderUtils.classToString(class2), class1, class2);
-
- CtClass ctClass1 = classPool1.getCtClass(CLASS_A);
- CtClass ctClass2 = classPool2.getCtClass(CLASS_A);
- assertNotSame(ctClass1, ctClass2);
-
- ClassPool classPool3 = repository.registerClassLoader(class1.getClassLoader());
- CtClass ctClass3 = classPool3.getCtClass(CLASS_A);
- assertEquals(ctClass1, ctClass3);
-
- ClassPool classPool4 = repository.registerClassLoader(class2.getClassLoader());
- CtClass ctClass4 = classPool4.getCtClass(class2.getName());
- assertEquals(ctClass2, ctClass4);
-
- assertNotSame(ctClass3, ctClass4);
- }
-
- protected void assertDomainHierarchy(ClassPool topClassPool, ClassPool leftClassPool, ClassPool rightClassPool) throws Exception
- {
- ClassLoader topCL = topClassPool.getClassLoader();
- ClassLoader leftCL = leftClassPool.getClassLoader();
- ClassLoader rightCL = rightClassPool.getClassLoader();
- Class<?> servletClassLeft = assertLoadClass(CLASS_SERVLET, leftCL);
- Class<?> servletClassRight = assertLoadClass(CLASS_SERVLET, rightCL);
- assertFalse(servletClassLeft.equals(servletClassRight));
- Class<?> plainClassLeft = assertLoadClass(CLASS_PLAIN, leftCL, topCL);
- Class<?> plainClassRight = assertLoadClass(CLASS_PLAIN, rightCL, topCL);
- assertEquals(plainClassLeft, plainClassRight);
-
- CtClass plainCtClass = topClassPool.getCtClass(CLASS_PLAIN);
- CtClass servletCtClassLeft = leftClassPool.getCtClass(CLASS_SERVLET);
- CtClass servletCtClassRight = rightClassPool.getCtClass(CLASS_SERVLET);
-
- CtClass returnCtClassLeft = servletCtClassLeft.getDeclaredMethod("getBean").getReturnType();
- assertEquals(plainCtClass, returnCtClassLeft);
-
- CtClass returnCtClassRight = servletCtClassRight.getDeclaredMethod("getBean").getReturnType();
- assertEquals(plainCtClass, returnCtClassRight);
- }
-
- protected void assertNonDeploymentModule(ClassPool jarClassPool, ClassPool anysClassPool) throws Exception
- {
- CtClass anysCtClass = jarClassPool.getCtClass(CLASS_SERVLET);
- CtClass plainCtClass = anysClassPool.getCtClass(CLASS_PLAIN);
- CtClass returnCtClass = anysCtClass.getDeclaredMethod("getBean").getReturnType();
- assertEquals(plainCtClass, returnCtClass);
- }
-
- protected void assertNonDeploymentModule(ClassPool classPool, ClassPool anysClassPool,
- ClassPool tifClassPool) throws Exception
- {
- CtClass tifCtClass = tifClassPool.getCtClass(CLASS_TIF);
- CtClass tifReturn = tifCtClass.getDeclaredMethod("getAnys").getReturnType();
- CtClass asCtClass = anysClassPool.getCtClass(CLASS_SERVLET);
- assertEquals(tifReturn, asCtClass);
-
- CtClass plainCtClass = classPool.getCtClass(CLASS_PLAIN);
- CtClass plainReturn = asCtClass.getDeclaredMethod("getBean").getReturnType();
- assertEquals(plainCtClass, plainReturn);
- }
}
\ No newline at end of file
Copied: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveTest.java (from rev 97058, 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/ArchiveTest.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveTest.java 2009-11-27 06:29:02 UTC (rev 97064)
@@ -0,0 +1,556 @@
+/*
+ * 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.SupportClasses.CLASS_A;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_CRM;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_EXT;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_JSF;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_MBEAN;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_PLAIN;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_SERVLET;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_SLS_BEAN;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_SLS_INTERFACE;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_TIF;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_UI;
+import static org.jboss.test.classpool.support.SupportClasses.CLASS_UTIL;
+
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.jboss.beans.metadata.plugins.AbstractDependencyValueMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.test.classpool.support.BundleInfoBuilder;
+import org.jboss.test.classpool.support.Result;
+import org.jboss.test.classpool.support.SupportClasses;
+
+
+
+/**
+ * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
+ *
+ * @version $Revision$
+ */
+
+public abstract class ArchiveTest<C, L> extends JBossClClassPoolTest
+{
+ // TODO refactorate this, extracting this from this class
+ // TODO move the jars to a directory of their own (such as target/test-archives)
+ public final static URL SIMPLE_JAR = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_JAR);
+ public final static URL SIMPLE_SAR = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_SAR);
+ public final static URL EJB_JAR = getURLRelativeToProjectRoot(SupportClasses.EJB_JAR);
+ public final static URL SIMPLE_WAR = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_WAR);
+ public final static URL SIMPLE_EAR_JAR = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_JAR);
+ public final static URL SIMPLE_EAR_SAR = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_SAR);
+ public final static URL SIMPLE_EAR_EJB = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_EJB);
+ public final static URL SIMPLE_EAR_LIB1 = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_LIB1);
+ public final static URL SIMPLE_EAR_LIB2 = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_LIB2);
+ public final static URL SIMPLE_EAR_WAR1 = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_WAR1);
+ public final static URL SIMPLE_EAR_WAR1_CP = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_WAR1_CP);
+ public final static URL SIMPLE_EAR_WAR1_LIB = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_WAR1_LIB);
+ public final static URL SIMPLE_EAR_WAR2 = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_WAR2);
+ public final static URL SIMPLE_EAR_WAR2_CP = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_WAR2_CP);
+ public final static URL SIMPLE_EAR_WAR2_LIB = getURLRelativeToProjectRoot(SupportClasses.SIMPLE_EAR_WAR2_LIB);
+ public final static URL EAR_UTIL1 = getURLRelativeToProjectRoot(SupportClasses.EAR_UTIL1);
+ public final static URL EAR_UTIL2 = getURLRelativeToProjectRoot(SupportClasses.EAR_UTIL2);
+ public final static URL EAR_WAR = getURLRelativeToProjectRoot(SupportClasses.EAR_WAR);
+ public final static URL EAR_WAR_CP = getURLRelativeToProjectRoot(SupportClasses.EAR_WAR_CP);
+ public final static URL EAR_JAR = getURLRelativeToProjectRoot(SupportClasses.EAR_JAR);
+ public final static URL SERVLET_JAR = getURLRelativeToProjectRoot(SupportClasses.SERVLET_JAR);
+ public final static URL PTD_EAR_LIB = getURLRelativeToProjectRoot(SupportClasses.PTD_EAR_LIB);
+ public final static URL PTD_JSF_WAR = getURLRelativeToProjectRoot(SupportClasses.PTD_JSF_WAR);
+ public final static URL PTD_JSF_WAR_LIB = getURLRelativeToProjectRoot(SupportClasses.PTD_JSF_WAR_LIB);
+ public final static URL PTD_WS_WAR = getURLRelativeToProjectRoot(SupportClasses.PTD_WS_WAR);
+ public final static URL PTD_WS_WAR_LIB = getURLRelativeToProjectRoot(SupportClasses.PTD_WS_WAR_LIB);
+ public final static URL EXCLUDED_CLASSPATH = getURLRelativeToProjectRoot(SupportClasses.EXCLUDED_CLASSPATH);
+
+ final static String STRING = String.class.getName();
+ private TestScenario<C, L> testScenario;
+
+ protected abstract TestScenario<C, L> getTestScenario();
+
+ @Override
+ public void setUp() throws Exception
+ {
+ this.testScenario = getTestScenario();
+ super.setUp();
+ }
+
+
+ public ArchiveTest(String name)
+ {
+ super(name);
+ }
+
+ // TODO do an assertNotFound for all classes not included in the package being tested
+
+ public void testJar() throws Exception
+ {
+ L loader = null;
+ Result result = new Result();
+ try
+ {
+ loader = testScenario.createLoader(result, "simple.jar", true, SIMPLE_JAR);
+ assertCanLoad(loader, CLASS_PLAIN);
+ }
+ finally
+ {
+ testScenario.unregister(loader, result);
+ }
+ }
+
+ public void testSar() throws Exception
+ {
+ L loader = null;
+ Result result = new Result();
+ try
+ {
+ loader = testScenario.createLoader(result, "simple.sar", true, SIMPLE_SAR);
+ assertCanLoad(loader, CLASS_MBEAN);
+ }
+ finally
+ {
+ testScenario.unregister(loader, result);
+ }
+ }
+
+ public void testEjbJar() throws Exception
+ {
+ L loader = null;
+ Result result = new Result();
+ try
+ {
+ loader = testScenario.createLoader(result, "ejbs.jar", true, EJB_JAR);
+ assertCanLoad(loader, CLASS_SLS_BEAN, CLASS_SLS_INTERFACE);
+ }
+ finally
+ {
+ testScenario.unregister(loader, result);
+ }
+ }
+
+ public void testWar() throws Exception
+ {
+ L loader = null;
+ Result result = new Result();
+ try
+ {
+ loader = testScenario.createChildDomainParentLastLoader(result, "simple.war", "simple.war", true,
+ SIMPLE_WAR);
+ assertCanLoad(loader, CLASS_SERVLET);
+ }
+ finally
+ {
+ testScenario.unregister(loader, result);
+ }
+ }
+
+ public void testEar() throws Exception
+ {
+ L earLoader = null;
+ L war1Loader = null;
+ L war2Loader = null;
+ Result earResult = new Result();
+ Result war1Result = new Result();
+ Result war2Result = new Result();
+ try
+ {
+ URL[] excludes = {SIMPLE_EAR_WAR1, SIMPLE_EAR_WAR1_CP, SIMPLE_EAR_WAR1_LIB,
+ SIMPLE_EAR_WAR2, SIMPLE_EAR_WAR2_CP, SIMPLE_EAR_WAR2_LIB};
+ earLoader = testScenario.createLoader(earResult, "simple.ear", true, excludes, SIMPLE_EAR_JAR,
+ SIMPLE_EAR_SAR, SIMPLE_EAR_EJB, SIMPLE_EAR_LIB1, SIMPLE_EAR_LIB2);
+ war1Loader = testScenario.createChildDomainParentLastLoader(war1Result, "simple.ear/simple_ui.war",
+ "simple_ui.war", true, earLoader, SIMPLE_EAR_WAR1_CP, SIMPLE_EAR_WAR1_LIB);
+ war2Loader = testScenario.createChildDomainParentLastLoader(war2Result, "simple.ear/jsfapp.war",
+ "simple_ui.war", true, earLoader, SIMPLE_EAR_WAR2_CP, SIMPLE_EAR_WAR2_LIB);
+
+ Map<String, L> classes = new HashMap<String, L>();
+ classes.put(CLASS_UTIL, earLoader);
+ classes.put(CLASS_EXT, earLoader);
+ classes.put(CLASS_PLAIN, earLoader);
+ classes.put(CLASS_SLS_BEAN, earLoader);
+ classes.put(CLASS_SLS_INTERFACE, earLoader);
+ classes.put(CLASS_SERVLET, war1Loader);
+ classes.put(CLASS_UI, war1Loader);
+ classes.put(CLASS_JSF, war2Loader);
+ classes.put(CLASS_CRM, war2Loader);
+ classes.put(CLASS_MBEAN, earLoader);
+ assertCanLoad(classes);
+ assertSimpleHierarchy(earLoader, war1Loader);
+ }
+ finally
+ {
+ testScenario.unregister(war1Loader, war1Result);
+ testScenario.unregister(war2Loader, war2Result);
+ testScenario.unregister(earLoader, earResult);
+ }
+ }
+
+ public void testTopLevelWithUtil() throws Exception
+ {
+ L earLoader = null;
+ Result earResult = new Result();
+ try
+ {
+ earLoader = testScenario.createLoader(earResult, "top-level.ear", true, EAR_UTIL1, EAR_UTIL2);
+ assertCanLoad(earLoader, CLASS_UTIL, CLASS_EXT);
+ }
+ finally
+ {
+ testScenario.unregister(earLoader, earResult);
+ }
+ }
+
+ public void testWarInEar() throws Exception
+ {
+ L earLoader = null;
+ L warLoader = null;
+ Result earResult = new Result();
+ Result warResult = new Result();
+ try
+ {
+ URL[] excludes = {EAR_WAR, EAR_WAR_CP};
+ earLoader = testScenario.createLoader(earResult, "war-in-ear.ear", true, excludes);
+ warLoader = testScenario.createChildDomainParentLastLoader(warResult, "war-in-ear.ear/simple.war",
+ "simple.war", true, earLoader, EAR_WAR_CP);
+ Map<String, L> classes = new HashMap<String, L>();
+ classes.put(CLASS_SERVLET, warLoader);
+ assertCanLoad(classes);
+ }
+ finally
+ {
+ testScenario.unregister(warLoader, warResult);
+ testScenario.unregister(earLoader, earResult);
+ }
+ }
+
+ public void testJarInEar() throws Exception
+ {
+ L earLoader = null;
+ Result earResult = new Result();
+ try
+ {
+ earLoader = testScenario.createLoader(earResult, "jar-in-ear.ear", true, EAR_JAR);
+ assertCanLoad(earLoader, CLASS_PLAIN);
+ }
+ finally
+ {
+ testScenario.unregister(earLoader, earResult);
+ }
+ }
+
+ public void testIsolatedJars() throws Exception
+ {
+ L loader1 = null;
+ L loader2 = null;
+ Result result1 = new Result();
+ Result result2 = new Result();
+ try
+ {
+ loader1 = testScenario.createChildDomainParentFirstLoader(result1, "a1.jar", "a1.jar_Domain", true, JAR_A_1);
+ loader2 = testScenario.createChildDomainParentFirstLoader(result2, "a2.jar", "a2.jar_Domain", true, JAR_A_2);
+ assertIsolated(loader1, loader2);
+ }
+ finally
+ {
+ testScenario.unregister(loader1, result1);
+ testScenario.unregister(loader2, result2);
+ }
+ }
+
+ public void testHierarchyJarsChildFirst() throws Exception
+ {
+ L loader1 = null;
+ L loader2 = null;
+ Result result1 = new Result();
+ Result result2 = new Result();
+ try
+ {
+ loader1 = testScenario.createChildDomainParentFirstLoader(result1, "a1.jar", "a1.jar_Domain", true, JAR_A_1);
+ loader2 = testScenario.createChildDomainParentLastLoader(result2, "a2.jar", "a2.jar_Domain", "a1.jar_Domain", true, JAR_A_2);
+ assertIsolated(loader1, loader2);
+ }
+ finally
+ {
+ testScenario.unregister(loader1, result1);
+ testScenario.unregister(loader2, result2);
+ }
+ }
+
+ public void testDomainHierarchy() throws Exception
+ {
+ L topLoader = null;
+ L leftLoader = null;
+ L rightLoader = null;
+ Result topResult = new Result();
+ Result leftResult = new Result();
+ Result rightResult = new Result();
+ try
+ {
+ // TODO replace a1.jar by the SupportClasses equivalent
+ topLoader = testScenario.createChildDomainParentFirstLoader(topResult, "simple.jar", "simple.jar_Domain", true, SIMPLE_JAR);
+ leftLoader = testScenario.createChildDomainParentFirstLoader(leftResult, "servlet.jarL", "servlet.jar_DomainLeft", "simple.jar_Domain", true, SERVLET_JAR);
+ rightLoader = testScenario.createChildDomainParentFirstLoader(rightResult, "servlet.jarR", "servlet.jar_DomainRight", "simple.jar_Domain", true, SERVLET_JAR);
+ assertDomainHierarchy(topLoader, leftLoader, rightLoader);
+ }
+ finally
+ {
+ testScenario.unregister(leftLoader, leftResult);
+ testScenario.unregister(rightLoader, rightResult);
+ testScenario.unregister(topLoader, topResult);
+ }
+ }
+
+ public void testEar2War() throws Exception
+ {
+ L topLoader = null;
+ L leftLoader = null;
+ L rightLoader = null;
+ Result topResult = new Result();
+ Result leftResult = new Result();
+ Result rightResult = new Result();
+ try
+ {
+ URL[] excludes = {PTD_JSF_WAR, PTD_JSF_WAR_LIB, PTD_WS_WAR, PTD_WS_WAR_LIB};
+ topLoader = testScenario.createChildDomainParentLastLoader(topResult,
+ "ptd-ear-1.0-SNAPSHOT.ear", "ptd-ear-1.0-SNAPSHOT.ear_Domain", true, excludes, PTD_EAR_LIB);
+ leftLoader = testScenario.createChildDomainParentFirstLoader(leftResult, SupportClasses.PTD_JSF_WAR,
+ "ptd-jsf-1.0-SNAPSHOT.war_Domain", "ptd-ear-1.0-SNAPSHOT.ear_Domain", true,
+ PTD_JSF_WAR_LIB);
+ rightLoader = testScenario.createChildDomainParentFirstLoader(rightResult, SupportClasses.PTD_WS_WAR,
+ "ptd-ws-1.0-SNAPSHOT.war_Domain", "ptd-ear-1.0-SNAPSHOT.ear_Domain", true,
+ PTD_WS_WAR_LIB);
+ assertDomainHierarchy(topLoader, leftLoader, rightLoader);
+ }
+ finally
+ {
+ testScenario.unregister(leftLoader, leftResult);
+ testScenario.unregister(rightLoader, rightResult);
+ testScenario.unregister(topLoader, topResult);
+ }
+ }
+
+ public void testJarAndExcludedClassPath() throws Exception
+ {
+ L jarLoader = null;
+ L anysLoader = null;
+ Result jarResult = new Result();
+ Result anysResult = new Result();
+ try
+ {
+ jarLoader = testScenario.createLoader(jarResult, "simple.jar", true, SIMPLE_JAR);
+ anysLoader = testScenario.createLoader(anysResult, "anys-classloader", true,
+ SupportClasses.PACKAGE_WEB, EXCLUDED_CLASSPATH);
+
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder("AnyServlet", CLASS_SERVLET);
+ builder.setClassLoader(new AbstractDependencyValueMetaData("anys-classloader:0.0.0"));
+ super.deploy(builder.getBeanMetaData());
+
+ Object anys = assertBean("AnyServlet", Object.class);
+ Class<?> anysClass = anys.getClass();
+ ClassLoader anysCL = anysClass.getClassLoader();
+ assertSame(anysCL, testScenario.getClassLoader(anysLoader));
+ assertNotSame(anysCL, testScenario.getClassLoader(jarLoader));
+ assertNonDeploymentModule(jarLoader, anysLoader);
+ }
+ finally
+ {
+ testScenario.unregister(jarLoader, jarResult);
+ testScenario.unregister(anysLoader, anysResult);
+ }
+ }
+
+ public void testTifHierarchy() throws Exception
+ {
+ L jarLoader = null;
+ L anysLoader = null;
+ L tifLoader = null;
+ Result jarResult = new Result();
+ Result anysResult = new Result();
+ Result tifResult = new Result();
+ try
+ {
+ jarLoader = testScenario.createLoader(jarResult, "simple.jar", true, SIMPLE_JAR);
+ anysLoader = testScenario.createChildDomainParentFirstLoader(anysResult, "anys-classloader",
+ "Anys_Domain",true, SupportClasses.PACKAGE_WEB, EXCLUDED_CLASSPATH);
+ tifLoader = testScenario.createChildDomainParentFirstLoader(tifResult, "tif-classloader",
+ "TIF_Domain", "Anys_Domain",true, SupportClasses.PACKAGE_TIF, EXCLUDED_CLASSPATH);
+
+ createHierarchyBeans(jarLoader);
+ assertNonDeploymentModule(jarLoader, anysLoader, tifLoader);
+ }
+ finally
+ {
+ testScenario.unregister(tifLoader, tifResult);
+ testScenario.unregister(anysLoader, anysResult);
+ testScenario.unregister(jarLoader, jarResult);
+ }
+ }
+
+ public void testTifHierarchyWithRequirements() throws Exception
+ {
+ L jarLoader = null;
+ L anysLoader = null;
+ L tifLoader = null;
+ Result jarResult = new Result();
+ Result anysResult = new Result();
+ Result tifResult = new Result();
+ try
+ {
+ jarLoader = testScenario.createLoader(jarResult, "simple.jar", true,
+ SupportClasses.PACKAGE_JAR, SIMPLE_JAR);
+ BundleInfoBuilder bundleBuilder = BundleInfoBuilder.getBuilder();
+ bundleBuilder.createModule("any-classloader:0.0.0$Module").
+ createPackage(SupportClasses.PACKAGE_WEB).
+ createRequirePackage(SupportClasses.PACKAGE_JAR);
+ anysLoader = testScenario.createLoader(anysResult, "anys-classloader",
+ bundleBuilder, EXCLUDED_CLASSPATH);
+ bundleBuilder = BundleInfoBuilder.getBuilder();
+ bundleBuilder.createModule("tif-classloader:0.0.0$Module").
+ createPackage(SupportClasses.PACKAGE_TIF).
+ createRequirePackage(SupportClasses.PACKAGE_WEB);
+ tifLoader = testScenario.createLoader(tifResult, "tif-classloader",
+ bundleBuilder, EXCLUDED_CLASSPATH);
+
+ createHierarchyBeans(jarLoader);
+ assertNonDeploymentModule(jarLoader, anysLoader, tifLoader);
+ }
+ finally
+ {
+ testScenario.unregister(tifLoader, tifResult);
+ testScenario.unregister(anysLoader, anysResult);
+ testScenario.unregister(jarLoader, jarResult);
+ }
+ }
+
+ protected void assertCanLoad(L parentLoader, String... classNames) throws Exception
+ {
+ Map<String, L> map = new HashMap<String, L>();
+ for (String className : classNames)
+ {
+ map.put(className, parentLoader);
+ }
+ assertCanLoad(map);
+ }
+
+ protected void assertCanLoad(Map<String, L> classes) throws Exception
+ {
+ for (Map.Entry<String, L> entry : classes.entrySet())
+ {
+ String className = entry.getKey();
+ L loader = entry.getValue();
+ testScenario.loadClass(loader, className);
+ }
+ }
+
+ private void assertSimpleHierarchy(L topLoader, L childLoader) throws
+ Exception
+ {
+ C clazz = testScenario.loadClass(childLoader, CLASS_SERVLET);
+ C returnClass = testScenario.getMethodReturnType(clazz, "getBean");
+ C returnClass2 = testScenario.loadClass(topLoader, CLASS_PLAIN);
+ assertSame(returnClass, returnClass2);
+ }
+
+ protected void assertIsolated(L loader1, L loader2) throws Exception
+ {
+ assertFalse(loader1.equals(loader2));
+
+ C class1 = testScenario.loadClass(loader1, CLASS_A);
+ C class2 = testScenario.loadClass(loader2, CLASS_A);
+ assertNotSame("Should NOT be the same " + class1 +" and " + class2, class1, class2);
+
+ L loader3 = testScenario.cloneLoader(class1);
+ C class3 = testScenario.loadClass(loader3, CLASS_A);
+ assertEquals(class1, class3);
+
+ L loader4 = testScenario.cloneLoader(class2);
+ C class4 = testScenario.loadClass(loader4, CLASS_A);
+ assertEquals(class2, class4);
+ assertNotSame(class3, class4);
+ }
+
+ protected void assertDomainHierarchy(L topLoader, L leftLoader, L rightLoader) throws Exception
+ {
+ C servletClassLeft = testScenario.loadClass(leftLoader, CLASS_SERVLET);
+ C servletClassRight = testScenario.loadClass(rightLoader, CLASS_SERVLET);
+ assertFalse(servletClassLeft.equals(servletClassRight));
+ C plainClassLeft = testScenario.loadClass(leftLoader, topLoader, CLASS_PLAIN);
+ C plainClassRight = testScenario.loadClass(rightLoader, topLoader, CLASS_PLAIN);
+ assertEquals(plainClassLeft, plainClassRight);
+
+ C plainClass = testScenario.loadClass(topLoader, CLASS_PLAIN);
+
+ C returnClassLeft = testScenario.getMethodReturnType(servletClassLeft, "getBean");
+ assertEquals(plainClass, returnClassLeft);
+
+ C returnClassRight = testScenario.getMethodReturnType(servletClassRight, "getBean");
+ assertEquals(plainClass, returnClassRight);
+ }
+
+ protected void assertNonDeploymentModule(L jarLoader, L anysLoader) throws Exception
+ {
+ C anysClass = testScenario.loadClass(jarLoader, anysLoader, CLASS_SERVLET);
+ C plainClass = testScenario.loadClass(anysLoader, jarLoader, CLASS_PLAIN);
+ C returnC = testScenario.getMethodReturnType(anysClass, "getBean");
+ assertEquals(plainClass, returnC);
+ }
+
+ protected void assertNonDeploymentModule(L loader, L anysLoader,
+ L tifLoader) throws Exception
+ {
+ C tifClass = testScenario.loadClass(tifLoader, CLASS_TIF);
+ C tifReturn = testScenario.getMethodReturnType(tifClass, "getAnys");
+ C servletClass = testScenario.loadClass(anysLoader, CLASS_SERVLET);
+ assertEquals(tifReturn, servletClass);
+
+ C plainClass = testScenario.loadClass(loader, CLASS_PLAIN);
+ C plainReturn = testScenario.getMethodReturnType(servletClass, "getBean");
+ assertEquals(plainClass, plainReturn);
+ }
+
+ private void createHierarchyBeans(L jarLoader) throws Exception
+ {
+ BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder("AnyServlet", CLASS_SERVLET);
+ builder.setClassLoader(new AbstractDependencyValueMetaData("anys-classloader:0.0.0"));
+ super.deploy(builder.getBeanMetaData());
+
+ builder = BeanMetaDataBuilder.createBuilder("TifTester", CLASS_TIF);
+ builder.setClassLoader(new AbstractDependencyValueMetaData("tif-classloader:0.0.0"));
+ super.deploy(builder.getBeanMetaData());
+
+ Object anys = assertBean("AnyServlet", Object.class);
+ Class<?> anysClass = anys.getClass();
+ ClassLoader anysCL = anysClass.getClassLoader();
+
+ Object tif = assertBean("TifTester", Object.class);
+ Class<?> tifClass = tif.getClass();
+ ClassLoader tifCL = tifClass.getClassLoader();
+
+ ClassLoader jarCL = testScenario.getClassLoader(jarLoader);
+
+ assertNotSame(jarCL, anysCL);
+ assertNotSame(jarCL, tifCL);
+ assertNotSame(anysCL, tifCL);
+ }
+}
\ No newline at end of file
Added: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ClassPoolTestScenario.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ClassPoolTestScenario.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ClassPoolTestScenario.java 2009-11-27 06:29:02 UTC (rev 97064)
@@ -0,0 +1,161 @@
+/*
+ * 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 java.net.URL;
+
+import javassist.ClassPool;
+import javassist.CtClass;
+import junit.framework.Assert;
+
+import org.jboss.test.classpool.support.BundleInfoBuilder;
+import org.jboss.test.classpool.support.Result;
+
+/**
+ * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
+ *
+ * @version $Revision$
+ */
+
+public class ClassPoolTestScenario extends TestScenario<CtClass, ClassPool>
+{
+ /*private static final JavassistTestClassLoader instance = new JavassistTestClassLoader();
+ public static final JavassistTestClassLoader getInstance()
+ {
+ return instance;
+ }*/
+ private JBossClClassPoolTest test = null;
+
+ public ClassPoolTestScenario(JBossClClassPoolTest test)
+ {
+ this.test = test;
+ }
+
+ public ClassPool cloneLoader(CtClass clazz)
+ {
+ return test.repository.registerClassLoader(clazz.getClassPool().getClassLoader());
+ }
+
+ public ClassPool getLoader(ClassLoader classLoader)
+ {
+ return test.repository.registerClassLoader(classLoader);
+ }
+
+ public ClassLoader getClassLoader(ClassPool classPool)
+ {
+ return classPool.getClassLoader();
+ }
+
+ public String getClassName(CtClass clazz)
+ {
+ return clazz.getName();
+ }
+
+ public ClassPool createLoader(Result result, String name, boolean importAll, URL... urls) throws Exception
+ {
+ return test.createClassPool(result, name, importAll, urls);
+ }
+
+ public ClassPool createLoader(Result result, String name, boolean importAll, URL[] excludes, URL... urls) throws Exception
+ {
+ return test.createClassPool(result, name, importAll, excludes, urls);
+ }
+
+ public ClassPool createLoader(Result result, String name, boolean importAll, String packageCapability, URL... urls) throws Exception
+ {
+ return test.createClassPool(result, name, importAll, packageCapability, urls);
+ }
+
+ public ClassPool createLoader(Result result, String name, BundleInfoBuilder builder, URL... urls) throws Exception
+ {
+ return test.createClassPool(result, name, builder, urls);
+ }
+
+ public ClassPool createChildDomainParentFirstLoader(Result result, String name, String domainName, boolean importAll, URL... urls) throws Exception
+ {
+ return test.createChildDomainParentFirstClassPool(result, name, domainName, importAll, urls);
+ }
+
+ public ClassPool createChildDomainParentFirstLoader(Result result, String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
+ {
+ return test.createChildDomainParentFirstClassPool(result, name, domainName, parentDomainName, importAll, urls);
+ }
+
+ public ClassPool createChildDomainParentFirstLoader(Result result, String name, String domainName, boolean importAll, String packageCapability, URL... urls) throws Exception
+ {
+ return test.createChildDomainParentFirstClassPool(result, name, domainName, importAll, packageCapability, urls);
+ }
+
+ public ClassPool createChildDomainParentFirstLoader(Result result, String name, String domainName, String parentDomainName, boolean importAll, String packageCapability, URL... urls) throws Exception
+ {
+ return test.createChildDomainParentFirstClassPool(result, name, domainName, parentDomainName, importAll, packageCapability, urls);
+ }
+
+ public ClassPool createChildDomainParentLastLoader(Result result, String name, String domainName, boolean importAll,
+ URL... urls) throws Exception
+ {
+ return test.createChildDomainParentLastClassPool(result, name, domainName, importAll,urls);
+ }
+
+ public ClassPool createChildDomainParentLastLoader(Result result, String name, String domainName, boolean importAll, ClassPool parent, URL... urls) throws Exception
+ {
+ return test.createChildDomainParentLastClassPool(result, name, domainName, importAll, parent, urls);
+ }
+
+ public ClassPool createChildDomainParentLastLoader(Result result, String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
+ {
+ return test.createChildDomainParentLastClassPool(result, name, domainName, parentDomainName, importAll, urls);
+ }
+
+ public ClassPool createChildDomainParentLastLoader(Result result, String name, String domainName, boolean importAll, URL[] excludes, URL... urls) throws Exception
+ {
+ return test.createChildDomainParentLastClassPool(result, name, domainName, importAll, excludes, urls);
+ }
+
+ public CtClass getMethodReturnType(CtClass clazz, String methodName) throws Exception
+ {
+ return clazz.getDeclaredMethod(methodName).getReturnType();
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.test.classpool.support.TestClassLoader#loadClass(java.lang.Object, java.lang.String)
+ */
+ public CtClass loadClass(ClassPool classPool, ClassPool expectedClassPool, String className) throws Exception
+ {
+ Class<?> clazz = test.assertLoadClass(className, classPool.getClassLoader(), expectedClassPool.getClassLoader());
+ CtClass ctClass = test.assertLoadCtClass(className, classPool, expectedClassPool);
+ Assert.assertEquals(className, ctClass.getName());
+ Assert.assertEquals("Class has been loaded by the wrong class loader: " + className,
+ clazz.getClassLoader(), ctClass.getClassPool().getClassLoader());
+ return ctClass;
+ }
+
+ public void unregister(ClassPool classPool, Result result)
+ {
+ if (classPool != null)
+ {
+ test.unregisterClassPool(classPool);
+ test.assertNoClassLoader(result);
+ }
+ }
+
+}
Property changes on: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ClassPoolTestScenario.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/JBossClClassPoolTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java 2009-11-27 05:18:29 UTC (rev 97063)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java 2009-11-27 06:29:02 UTC (rev 97064)
@@ -179,7 +179,7 @@
return this.createClassLoader(result, name, importAll, (String) null, urls);
}
- private ClassLoader createClassLoader(Result result, String name, boolean importAll, String packageCapability, URL... urls) throws Exception
+ protected ClassLoader createClassLoader(Result result, String name, boolean importAll, String packageCapability, URL... urls) throws Exception
{
TestVFSClassLoaderFactory factory = TestVFSClassLoaderFactoryFactory.createClassLoaderFactory(name, importAll, urls);
if (packageCapability != null)
@@ -803,7 +803,7 @@
}
}
- protected void assertNoClassLoader(Result result) throws Exception
+ protected void assertNoClassLoader(Result result)
{
if (result == null)
{
@@ -821,7 +821,7 @@
assertNoClassLoader(getContextName(result.getFactory()));
}
- protected void assertNoClassLoader(String name) throws Exception
+ protected void assertNoClassLoader(String name)
{
try
{
Added: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/SanityTestScenario.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/SanityTestScenario.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/SanityTestScenario.java 2009-11-27 06:29:02 UTC (rev 97064)
@@ -0,0 +1,149 @@
+/*
+ * 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 java.net.URL;
+
+import org.jboss.test.classpool.support.BundleInfoBuilder;
+import org.jboss.test.classpool.support.Result;
+
+/**
+ * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
+ *
+ * @version $Revision$
+ */
+
+public class SanityTestScenario extends TestScenario<Class<?>, ClassLoader>
+{
+ private JBossClClassPoolTest test = null;
+
+ public SanityTestScenario(JBossClClassPoolTest test)
+ {
+ this.test = test;
+ }
+
+ public ClassLoader cloneLoader(Class<?> clazz)
+ {
+ return clazz.getClassLoader();
+ }
+
+ public ClassLoader getLoader(ClassLoader classLoader)
+ {
+ return classLoader;
+ }
+
+ public ClassLoader getClassLoader(ClassLoader loader)
+ {
+ return loader;
+ }
+
+ public String getClassName(Class<?> clazz)
+ {
+ return clazz.getName();
+ }
+
+ public Class<?> loadClass(ClassLoader loader, ClassLoader expected, String className) throws Exception
+ {
+ return test.assertLoadClass(className, loader, expected);
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.test.classpool.support.TestClassLoader#createLoader(org.jboss.test.classpool.support.Result, java.lang.String, boolean, java.net.URL[])
+ */
+ public ClassLoader createLoader(Result result, String name,
+ boolean importAll, URL... urls) throws Exception
+ {
+ return test.createClassLoader(result, name, importAll, urls);
+ }
+
+ public ClassLoader createLoader(Result result, String name, boolean importAll, URL[] excludes, URL... urls) throws Exception
+ {
+ return test.createClassLoader(result, name, importAll, excludes, urls);
+ }
+
+ public ClassLoader createLoader(Result result, String name, boolean importAll, String packageCapability, URL... urls) throws Exception
+ {
+ return test.createClassLoader(result, name, importAll, packageCapability, urls);
+ }
+
+ public ClassLoader createLoader(Result result, String name, BundleInfoBuilder builder, URL... urls) throws Exception
+ {
+ return test.createClassLoader(result, name, builder, urls);
+ }
+
+ public ClassLoader createChildDomainParentFirstLoader(Result result, String name, String domainName, boolean importAll, URL... urls) throws Exception
+ {
+ return test.createChildDomainParentFirstClassLoader(result, name, domainName, importAll, urls);
+ }
+
+ public ClassLoader createChildDomainParentFirstLoader(Result result, String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
+ {
+ return test.createChildDomainParentFirstClassLoader(result, name, domainName, parentDomainName, importAll, null, urls);
+ }
+
+ public ClassLoader createChildDomainParentFirstLoader(Result result, String name, String domainName, boolean importAll, String packageCapability, URL... urls) throws Exception
+ {
+ return test.createChildDomainParentFirstClassLoader(result, name, domainName, importAll, packageCapability, urls);
+ }
+
+ public ClassLoader createChildDomainParentFirstLoader(Result result, String name, String domainName, String parentDomainName, boolean importAll, String packageCapability, URL... urls) throws Exception
+ {
+ return test.createChildDomainParentFirstClassLoader(result, name, domainName, parentDomainName, importAll, packageCapability, urls);
+ }
+
+ public ClassLoader createChildDomainParentLastLoader(Result result, String name, String domainName, boolean importAll,
+ URL... urls) throws Exception
+ {
+ return test.createChildDomainParentLastClassLoader(result, name, domainName, importAll,urls);
+ }
+
+ public ClassLoader createChildDomainParentLastLoader(Result result, String name, String domainName, boolean importAll, ClassLoader parent, URL... urls) throws Exception
+ {
+ return test.createChildDomainParentLastClassLoader(result, name, domainName, importAll, parent, urls);
+ }
+
+ public ClassLoader createChildDomainParentLastLoader(Result result, String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
+ {
+ return test.createChildDomainParentLastClassLoader(result, name, domainName, parentDomainName, importAll, urls);
+ }
+
+ public ClassLoader createChildDomainParentLastLoader(Result result, String name, String domainName, boolean importAll, URL[] excludes, URL... urls) throws Exception
+ {
+ return test.createChildDomainParentLastClassLoader(result, name, domainName, importAll, excludes, urls);
+ }
+ public Class<?> getMethodReturnType(Class<?> clazz, String methodName) throws Exception
+ {
+ return clazz.getDeclaredMethod(methodName).getReturnType();
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.test.classpool.jbosscl.test.TestClassLoader#unregister(java.lang.Object)
+ */
+ public void unregister(ClassLoader classLoader, Result result)
+ {
+ if (classLoader != null)
+ {
+ test.unregisterClassLoader(classLoader);
+ test.assertNoClassLoader(result);
+ }
+ }
+}
\ No newline at end of file
Property changes on: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/SanityTestScenario.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
Added: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/TestScenario.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/TestScenario.java (rev 0)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/TestScenario.java 2009-11-27 06:29:02 UTC (rev 97064)
@@ -0,0 +1,63 @@
+/*
+ * 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 java.net.URL;
+
+import org.jboss.test.classpool.support.BundleInfoBuilder;
+import org.jboss.test.classpool.support.Result;
+
+/**
+ * @author <a href="mailto:flavia.rainone at jboss.org">Flavia Rainone</a>
+ *
+ * @version $Revision$
+ */
+
+public abstract class TestScenario<C,L>
+{
+ public abstract L cloneLoader(C clazz);
+ public abstract L getLoader(ClassLoader classLoader);
+ public abstract ClassLoader getClassLoader(L loader);
+ public abstract String getClassName(C clazz);
+ public abstract L createLoader(Result result, String name, boolean importAll, URL... urls) throws Exception;
+ public abstract L createLoader(Result result, String name, boolean importAll, URL[] excludes, URL... urls) throws Exception;
+ public abstract L createLoader(Result result, String name, boolean importAll, String packageCapability, URL... urls) throws Exception;
+ public abstract L createLoader(Result result, String name, BundleInfoBuilder builder, URL... urls) throws Exception;
+ public abstract L createChildDomainParentFirstLoader(Result result, String name, String domainName, boolean importAll, URL... urls) throws Exception;
+ public abstract L createChildDomainParentFirstLoader(Result result, String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception;
+ public abstract L createChildDomainParentFirstLoader(Result result, String name, String domainName, boolean importAll, String packageCapability, URL... urls) throws Exception;
+ public abstract L createChildDomainParentFirstLoader(Result result, String name, String domainName, String parentDomainName, boolean importAll, String packageCapability, URL... urls) throws Exception;
+ public abstract L createChildDomainParentLastLoader(Result result, String name, String domainName, boolean importAll, L parent, URL... urls) throws Exception;
+ public abstract L createChildDomainParentLastLoader(Result result, String name, String domainName, boolean importAll,
+ URL... urls) throws Exception;
+ public abstract L createChildDomainParentLastLoader(Result result, String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception;
+ public abstract L createChildDomainParentLastLoader(Result result, String name, String domainName, boolean importAll, URL[] excludes, URL... urls) throws Exception;
+
+ public C loadClass(L loader, String className) throws Exception
+ {
+ return loadClass(loader, loader, className);
+ }
+ public abstract C loadClass(L loader, L loader2, String className) throws Exception;
+ public abstract C getMethodReturnType(C clazz, String methodName) throws Exception;
+ public abstract void unregister(L loader, Result result);
+
+}
\ No newline at end of file
Property changes on: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/TestScenario.java
___________________________________________________________________
Name: svn:keywords
+ Author Date Id Revision
Name: svn:eol-style
+ native
More information about the jboss-cvs-commits
mailing list