[jboss-cvs] JBossAS SVN: r97036 - in projects/jboss-classpool/trunk: src/test/java/org/jboss/test/classpool/jbosscl/test and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Nov 26 11:12:30 EST 2009
Author: flavia.rainone at jboss.com
Date: 2009-11-26 11:12:29 -0500 (Thu, 26 Nov 2009)
New Revision: 97036
Modified:
projects/jboss-classpool/trunk/pom.xml
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
projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SupportClasses.java
Log:
[JBREFLECT-72] Fixed testIsolatedJars and ported testHierarchyJarsChildFirst and testDomainHierarchy tests.
Modified: projects/jboss-classpool/trunk/pom.xml
===================================================================
--- projects/jboss-classpool/trunk/pom.xml 2009-11-26 16:10:11 UTC (rev 97035)
+++ projects/jboss-classpool/trunk/pom.xml 2009-11-26 16:12:29 UTC (rev 97036)
@@ -156,16 +156,11 @@
<include name="org/jboss/test/classpool/support/excluded/jar/**"/>
</fileset>
</jar>
- <jar destfile="${project.build.directory}/j1.jar">
+ <jar destfile="${project.build.directory}/servlet.jar">
<fileset dir="${project.build.testOutputDirectory}">
- <include name="org/jboss/test/classpool/support/excluded/jar/**"/>
+ <include name="org/jboss/test/classpool/support/excluded/web/**"/>
</fileset>
</jar>
- <jar destfile="${project.build.directory}/j2.jar">
- <fileset dir="${project.build.testOutputDirectory}">
- <include name="org/jboss/test/classpool/support/excluded/jar/**"/>
- </fileset>
- </jar>
<jar destfile="${project.build.directory}/ui.jar">
<fileset dir="${project.build.testOutputDirectory}">
<include name="org/jboss/test/classpool/support/excluded/ui/**"/>
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-26 16:10:11 UTC (rev 97035)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/ArchiveClassPoolTestCase.java 2009-11-26 16:12:29 UTC (rev 97036)
@@ -44,6 +44,8 @@
import junit.framework.Test;
import junit.framework.TestSuite;
+import org.jboss.classloader.plugins.ClassLoaderUtils;
+import org.jboss.deployers.client.spi.Deployment;
import org.jboss.test.classpool.support.Result;
import org.jboss.test.classpool.support.SupportClasses;
@@ -78,6 +80,7 @@
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);
final static String STRING = String.class.getName();
@@ -96,14 +99,19 @@
public void testJar() throws Exception
{
ClassPool classPool = null;
+ Result result = new Result();
try
{
- classPool = createClassPool("simple.jar", true, SIMPLE_JAR);
+ classPool = createClassPool(result, "simple.jar", true, SIMPLE_JAR);
assertClassPool(classPool, CLASS_PLAIN);
}
finally
{
- unregisterClassPool(classPool);
+ if (classPool != null)
+ {
+ unregisterClassPool(classPool);
+ assertNoClassPool(result);
+ }
}
}
@@ -118,22 +126,30 @@
}
finally
{
- unregisterClassPool(classPool);
- assertNoClassPool(result);
+ if (classPool != null)
+ {
+ unregisterClassPool(classPool);
+ assertNoClassPool(result);
+ }
}
}
public void testEjbJar() throws Exception
{
ClassPool classPool = null;
+ Result result = new Result();
try
{
- classPool = createClassPool("ejbs.jar", true, EJB_JAR);
+ classPool = createClassPool(result, "ejbs.jar", true, EJB_JAR);
assertClassPool(classPool, CLASS_SLS_BEAN, CLASS_SLS_INTERFACE);
}
finally
{
- unregisterClassPool(classPool);
+ if (classPool != null)
+ {
+ unregisterClassPool(classPool);
+ assertNoClassPool(result);
+ }
}
}
@@ -149,8 +165,11 @@
}
finally
{
- unregisterClassPool(classPool);
- assertNoClassPool(result);
+ if (classPool != null)
+ {
+ unregisterClassPool(classPool);
+ assertNoClassPool(result);
+ }
}
}
@@ -189,12 +208,21 @@
}
finally
{
- unregisterClassPool(war1ClassPool);
- assertNoClassPool(war1Result);
- unregisterClassPool(war2ClassPool);
- assertNoClassPool(war2Result);
- unregisterClassPool(earClassPool);
- assertNoClassPool(earResult);
+ if (war1ClassPool != null)
+ {
+ unregisterClassPool(war1ClassPool);
+ assertNoClassPool(war1Result);
+ }
+ if (war2ClassPool != null)
+ {
+ unregisterClassPool(war2ClassPool);
+ assertNoClassPool(war2Result);
+ }
+ if (earClassPool != null)
+ {
+ unregisterClassPool(earClassPool);
+ assertNoClassPool(earResult);
+ }
}
}
@@ -209,8 +237,11 @@
}
finally
{
- unregisterClassPool(earClassPool);
- assertNoClassPool(earResult);
+ if (earClassPool != null)
+ {
+ unregisterClassPool(earClassPool);
+ assertNoClassPool(earResult);
+ }
}
}
@@ -232,10 +263,16 @@
}
finally
{
- unregisterClassPool(warClassPool);
- assertNoClassPool(warResult);
- unregisterClassPool(earClassPool);
- assertNoClassPool(earResult);
+ if (warClassPool != null)
+ {
+ unregisterClassPool(warClassPool);
+ assertNoClassPool(warResult);
+ }
+ if (earClassPool != null)
+ {
+ unregisterClassPool(earClassPool);
+ assertNoClassPool(earResult);
+ }
}
}
@@ -250,8 +287,11 @@
}
finally
{
- unregisterClassPool(earClassPool);
- assertNoClassPool(earResult);
+ if (earClassPool != null)
+ {
+ unregisterClassPool(earClassPool);
+ assertNoClassPool(earResult);
+ }
}
}
@@ -263,19 +303,88 @@
Result result2 = new Result();
try
{
- classPool1 = createClassPool(result1, "j1.jar", true, JAR_A_1);
- classPool2 = createClassPool(result2, "j2.jar", true, JAR_A_2);
+ 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
{
- unregisterClassPool(classPool1);
- assertNoClassPool(result1);
- unregisterClassPool(classPool2);
- assertNoClassPool(result2);
+ 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);
+ }
+ }
+ }
+
protected void assertClassPool(ClassPool parentClassPool, String... classNames) throws Exception
{
Map<String, ClassPool> map = new HashMap<String, ClassPool>();
@@ -325,8 +434,8 @@
assertFalse(classLoader1.equals(classLoader2));
Class<?> class1 = assertLoadClass(CLASS_A, classLoader1, classLoader1);
- // FIXME
- /*Class<?> class2 = assertLoadClass(CLASS_A, classLoader2, classLoader2);
+
+ Class<?> class2 = assertLoadClass(CLASS_A, classLoader2, classLoader2);
assertNotSame("Should NOT be the same " + ClassLoaderUtils.classToString(class1) +" and "
+ ClassLoaderUtils.classToString(class2), class1, class2);
@@ -342,6 +451,30 @@
CtClass ctClass4 = classPool4.getCtClass(class2.getName());
assertEquals(ctClass2, ctClass4);
- assertNotSame(ctClass3, 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);
+
+ }
}
\ No newline at end of file
Modified: projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java
===================================================================
--- projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java 2009-11-26 16:10:11 UTC (rev 97035)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/jbosscl/test/JBossClClassPoolTest.java 2009-11-26 16:12:29 UTC (rev 97036)
@@ -421,7 +421,7 @@
return createChildDomainParentFirstClassPool(null, name, domainName, parentDomainName, importAll, urls);
}
- private ClassPool createChildDomainParentFirstClassPool(Result result, String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
+ protected ClassPool createChildDomainParentFirstClassPool(Result result, String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
{
ClassLoader loader = createChildDomainParentFirstClassLoader(result, name, domainName, parentDomainName, importAll, urls);
return assertRegisterClassLoader(loader);
@@ -454,7 +454,7 @@
return createChildDomainParentLastClassPool(null, name, domainName, parentDomainName, importAll, urls);
}
- private ClassPool createChildDomainParentLastClassPool(Result result, String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
+ protected ClassPool createChildDomainParentLastClassPool(Result result, String name, String domainName, String parentDomainName, boolean importAll, URL... urls) throws Exception
{
ClassLoader loader = createChildDomainParentLastClassLoader(result, name, domainName, parentDomainName, importAll, urls);
return assertRegisterClassLoader(loader);
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-11-26 16:10:11 UTC (rev 97035)
+++ projects/jboss-classpool/trunk/src/test/java/org/jboss/test/classpool/support/SupportClasses.java 2009-11-26 16:12:29 UTC (rev 97036)
@@ -57,6 +57,7 @@
public final static String EAR_WAR = "war-in-ear.ear/simple.war";
public final static String EAR_WAR_CP = "war-in-ear.ear/simple.war/WEB-INF/classes";
public final static String EAR_JAR = "jar-in-ear.ear/simple.jar";
+ public final static String SERVLET_JAR = "servlet.jar";
// TODO map the url to the corresponding package
// TODO automatically replace .war by .war/WEB-INF/classes e lib???
More information about the jboss-cvs-commits
mailing list