[jboss-cvs] JBossAS SVN: r82112 - in projects/aop/trunk: asintegration-mc/src/main/org/jboss/aop/classpool/jbosscl and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Dec 8 09:49:04 EST 2008
Author: kabir.khan at jboss.com
Date: 2008-12-08 09:49:03 -0500 (Mon, 08 Dec 2008)
New Revision: 82112
Added:
projects/aop/trunk/asintegration-mc/src/main/org/jboss/aop/classpool/jbosscl/SecurityActions.java
Modified:
projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/ClassPoolDomain.java
projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/URLClassLoaderIsLocalResourcePlugin.java
projects/aop/trunk/asintegration-mc/src/main/org/jboss/aop/classpool/jbosscl/JBossClClassPoolDomain.java
projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithRepositorySanityTestCase.java
projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithRepositoryTestCase.java
projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/JBossClClassPoolTest.java
Log:
[JBAOP-666] Better checks of parent domain and comment out tests that are probably unrealistic
Modified: projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/ClassPoolDomain.java
===================================================================
--- projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/ClassPoolDomain.java 2008-12-08 14:49:00 UTC (rev 82111)
+++ projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/ClassPoolDomain.java 2008-12-08 14:49:03 UTC (rev 82112)
@@ -218,20 +218,33 @@
CtClass getParentCached(String classname);
}
- private class RootClassPoolDomainImpl implements ClassPoolDomainStrategy
+ protected class RootClassPoolDomainImpl implements ClassPoolDomainStrategy
{
- ClassPool defaultPool = ClassPool.getDefault();
+ ClassPool parentPool = null;
+ public RootClassPoolDomainImpl()
+ {
+ initialiseParentClassLoader();
+ if (parentPool == null)
+ {
+ throw new IllegalStateException("Null parent classpool");
+ }
+ }
+ public void initialiseParentClassLoader()
+ {
+ parentPool = ClassPool.getDefault();
+ }
+
public URL findParentResource(String classname)
{
- return defaultPool.find(classname);
+ return parentPool.find(classname);
}
public CtClass createParentCtClass(String classname, boolean useCache)
{
try
{
- return defaultPool.get(classname);
+ return parentPool.get(classname);
}
catch(NotFoundException ignore)
{
@@ -243,7 +256,7 @@
{
try
{
- return defaultPool.get(classname);
+ return parentPool.get(classname);
}
catch (NotFoundException ignore)
{
Modified: projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/URLClassLoaderIsLocalResourcePlugin.java
===================================================================
--- projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/URLClassLoaderIsLocalResourcePlugin.java 2008-12-08 14:49:00 UTC (rev 82111)
+++ projects/aop/trunk/asintegration-core/src/main/org/jboss/aop/classpool/URLClassLoaderIsLocalResourcePlugin.java 2008-12-08 14:49:03 UTC (rev 82112)
@@ -63,6 +63,10 @@
return true;
}
}
+ else
+ {
+ return myURL != null;
+ }
return false;
}
Modified: projects/aop/trunk/asintegration-mc/src/main/org/jboss/aop/classpool/jbosscl/JBossClClassPoolDomain.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/main/org/jboss/aop/classpool/jbosscl/JBossClClassPoolDomain.java 2008-12-08 14:49:00 UTC (rev 82111)
+++ projects/aop/trunk/asintegration-mc/src/main/org/jboss/aop/classpool/jbosscl/JBossClClassPoolDomain.java 2008-12-08 14:49:03 UTC (rev 82112)
@@ -21,7 +21,16 @@
*/
package org.jboss.aop.classpool.jbosscl;
+import java.net.URL;
+
+import javassist.ClassPool;
+import javassist.CtClass;
+import javassist.NotFoundException;
+
+import org.jboss.aop.AspectManager;
import org.jboss.aop.classpool.ClassPoolDomain;
+import org.jboss.classloader.spi.base.BaseClassLoader;
+import org.jboss.classloader.spi.base.BaseClassLoaderDomain;
/**
*
@@ -35,4 +44,15 @@
// FIXME JBossClClassPool constructor
super(domainName, parent);
}
+
+ protected class RootClassPoolDomainImpl extends ClassPoolDomain.RootClassPoolDomainImpl
+ {
+ @Override
+ public void initialiseParentClassLoader()
+ {
+ ClassPool pool = AspectManager.instance().registerClassLoader(BaseClassLoaderDomain.class.getClassLoader());
+ ClassPool parentPool = ClassPool.getDefault();
+ }
+ }
+
}
Added: projects/aop/trunk/asintegration-mc/src/main/org/jboss/aop/classpool/jbosscl/SecurityActions.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/main/org/jboss/aop/classpool/jbosscl/SecurityActions.java (rev 0)
+++ projects/aop/trunk/asintegration-mc/src/main/org/jboss/aop/classpool/jbosscl/SecurityActions.java 2008-12-08 14:49:03 UTC (rev 82112)
@@ -0,0 +1,70 @@
+/*
+* 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.aop.classpool.jbosscl;
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+class SecurityActions
+{
+
+ interface GetClassLoaderAction
+ {
+ ClassLoader getClassLoader(Class<?> clazz);
+
+ GetClassLoaderAction NON_PRIVILEGED = new GetClassLoaderAction() {
+
+ public ClassLoader getClassLoader(Class<?> clazz)
+ {
+ return clazz.getClassLoader();
+ }};
+
+ GetClassLoaderAction PRIVILEGED = new GetClassLoaderAction() {
+
+ public ClassLoader getClassLoader(final Class<?> clazz)
+ {
+ return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>() {
+
+ public ClassLoader run()
+ {
+ return clazz.getClassLoader();
+ }});
+ }};
+ }
+
+ static ClassLoader getClassLoader(Class<?> clazz)
+ {
+ if (System.getSecurityManager() == null)
+ {
+ return GetClassLoaderAction.NON_PRIVILEGED.getClassLoader(clazz);
+ }
+ else
+ {
+ return GetClassLoaderAction.PRIVILEGED.getClassLoader(clazz);
+ }
+ }
+}
Modified: projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithRepositorySanityTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithRepositorySanityTestCase.java 2008-12-08 14:49:00 UTC (rev 82111)
+++ projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassLoaderWithRepositorySanityTestCase.java 2008-12-08 14:49:03 UTC (rev 82112)
@@ -44,15 +44,6 @@
return suite(ClassLoaderWithRepositorySanityTestCase.class);
}
-// public void testNewCreateClassLoader() throws Exception
-// {
-// System.out.println("-------> 2 " + helper);
-// System.out.println("-------> 3 " + JBossClClassPoolTest.helper);
-// ClassLoader cl = createClassLoader("A", true, JAR_A_1);
-// Class<?> clazz = cl.loadClass(CLASS_A);
-// assertSame(cl, clazz.getClassLoader());
-// }
-
public void testGlobalScope() throws Exception
{
ClassLoader clA = null;
@@ -172,8 +163,8 @@
{
unregisterClassLoader(clA);
unregisterClassLoader(clB);
- unregisterDomain(getChildDomainForLoader(clA));
- unregisterDomain(getChildDomainForLoader(clB));
+ unregisterDomain(clA);
+ unregisterDomain(clB);
}
}
@@ -202,7 +193,7 @@
{
unregisterClassLoader(clGlobal);
unregisterClassLoader(clScoped);
- unregisterDomain(getChildDomainForLoader(clScoped));
+ unregisterDomain(clScoped);
}
}
@@ -225,7 +216,7 @@
{
unregisterClassLoader(clGlobal);
unregisterClassLoader(clScoped);
- unregisterDomain(getChildDomainForLoader(clScoped));
+ unregisterDomain(clScoped);
}
}
@@ -249,7 +240,7 @@
{
unregisterClassLoader(clGlobal);
unregisterClassLoader(clScoped);
- unregisterDomain(getChildDomainForLoader(clScoped));
+ unregisterDomain(clScoped);
}
}
@@ -361,7 +352,7 @@
{
unregisterClassLoader(global);
unregisterClassLoader(parent);
- unregisterDomain(getChildDomainForLoader(global));
+ unregisterDomain(global);
}
}
@@ -390,7 +381,7 @@
unregisterClassLoader(globalA);
unregisterClassLoader(globalB);
unregisterClassLoader(parent);
- unregisterDomain(getChildDomainForLoader(globalA));
+ unregisterDomain(globalA);
}
}
Modified: projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithRepositoryTestCase.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithRepositoryTestCase.java 2008-12-08 14:49:00 UTC (rev 82111)
+++ projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/ClassPoolWithRepositoryTestCase.java 2008-12-08 14:49:03 UTC (rev 82112)
@@ -25,6 +25,7 @@
import javassist.ClassPool;
import javassist.CtClass;
+import javassist.NotFoundException;
import junit.framework.Test;
/**
@@ -34,7 +35,8 @@
*/
public class ClassPoolWithRepositoryTestCase extends JBossClClassPoolTest
{
-
+ final static String STRING = String.class.getName();
+
public ClassPoolWithRepositoryTestCase(String name)
{
super(name);
@@ -65,6 +67,8 @@
assertSame(aFromA, aFromB);
assertSame(poolA, aFromA.getClassPool());
assertSame(poolB, bFromB.getClassPool());
+
+ checkCanLoadString(poolA, poolB);
}
finally
{
@@ -116,6 +120,9 @@
assertCannotLoadCtClass(poolA, CLASS_C);
assertCannotLoadCtClass(poolB, CLASS_C);
+
+ checkCanLoadString(poolA, poolB);
+ checkCanLoadString(poolB, poolC);
}
finally
{
@@ -126,6 +133,264 @@
}
}
+ public void testSiblingDomains() throws Exception
+ {
+ ClassPool poolA = null;
+ ClassPool poolB = null;
+ ClassLoaderDomain domainA = null;
+ ClassLoaderDomain domainB = null;
+ try
+ {
+ poolA = createChildDomainParentFirstClassPool("A", "ChildA", true, JAR_A_1);
+ poolB = createChildDomainParentLastClassPool("B", "ChildB", true, JAR_B_1);
-
+ domainA = getChildDomainForPool(poolA);
+ assertNotNull(domainA);
+ assertSame(getSystem().getDefaultDomain(), domainA.getParent());
+ domainB = getChildDomainForPool(poolB);
+ assertNotNull(domainB);
+ assertSame(getSystem().getDefaultDomain(), domainB.getParent());
+ assertNotSame(domainA, domainB);
+
+ CtClass clazzA = poolA.get(CLASS_A);
+ assertSame(poolA, clazzA.getClassPool());
+ CtClass clazzB = poolB.get(CLASS_B);
+ assertSame(poolB, clazzB.getClassPool());
+ assertCannotLoadCtClass(poolA, CLASS_B);
+ assertCannotLoadCtClass(poolB, CLASS_A);
+
+ checkCanLoadString(poolA, poolB);
+ }
+ finally
+ {
+ unregisterClassPool(poolA);
+ unregisterClassPool(poolB);
+ unregisterDomain(poolA);
+ unregisterDomain(poolB);
+ }
+ }
+
+ public void testChildWithNewClassesInParent() throws Exception
+ {
+ ClassPool globalPool = null;
+ ClassPool scopedPool = null;
+ try
+ {
+ scopedPool = createChildDomainParentFirstClassPool("SCOPED", "SCOPED", true, JAR_B_1);
+ assertCannotLoadCtClass(scopedPool, CLASS_A);
+
+ globalPool = createClassPool("GLOBAL", true, JAR_A_1);
+
+ CtClass aFromChild = scopedPool.get(CLASS_A);
+ assertNotNull(aFromChild);
+ CtClass aFromParent = globalPool.get(CLASS_A);
+ assertNotNull(aFromParent);
+ assertSame(aFromChild, aFromParent);
+ assertSame(globalPool, aFromParent.getClassPool());
+ }
+ finally
+ {
+ unregisterClassPool(globalPool);
+ unregisterClassPool(scopedPool);
+ unregisterDomain(scopedPool);
+ }
+ }
+
+ public void testChildOverrideWithParentDelegation() throws Exception
+ {
+ ClassPool globalPool = null;
+ ClassPool scopedPool = null;
+ try
+ {
+ globalPool = createClassPool("GLOBAL", true, JAR_A_1);
+ scopedPool = createChildDomainParentFirstClassPool("SCOPED", "SCOPED", true, JAR_B_1);
+ CtClass aFromParent = globalPool.get(CLASS_A);
+ assertNotNull(aFromParent);
+ CtClass aFromChild = scopedPool.get(CLASS_A);
+ assertNotNull(aFromChild);
+ assertSame(aFromParent, aFromChild);
+ assertSame(globalPool, aFromParent.getClassPool());
+ }
+ finally
+ {
+ unregisterClassPool(globalPool);
+ unregisterClassPool(scopedPool);
+ unregisterDomain(scopedPool);
+ }
+ }
+
+ public void testChildOverrideWithNoParentDelegation() throws Exception
+ {
+ ClassPool globalPool = null;
+ ClassPool scopedPool = null;
+ try
+ {
+ globalPool = createClassPool("GLOBAL", true, JAR_A_1);
+ scopedPool = createChildDomainParentLastClassPool("CHILD", "CHILD", true, JAR_A_1);
+ CtClass aFromParent = globalPool.get(CLASS_A);
+ assertNotNull(aFromParent);
+ CtClass aFromChild = scopedPool.get(CLASS_A);
+ assertNotNull(aFromChild);
+ assertNotSame(aFromParent, aFromChild);
+ assertSame(globalPool, aFromParent.getClassPool());
+ assertSame(scopedPool, aFromChild.getClassPool());
+ }
+ finally
+ {
+ unregisterClassPool(globalPool);
+ unregisterClassPool(scopedPool);
+ unregisterDomain(scopedPool);
+ }
+ }
+
+ public void testURLChildOfGlobalUcl() throws Exception
+ {
+ ClassPool global = null;
+ ClassPool childA = null;
+ ClassPool childB = null;
+ try
+ {
+ global = createClassPool("GLOBAL", true, JAR_A_1);
+ childA = createChildURLClassPool(global, JAR_B_1);
+
+ CtClass aFromA = childA.get(CLASS_A);
+ assertSame(global, aFromA.getClassPool());
+ CtClass bFromA = childA.get(CLASS_B);
+ assertSame(childA, bFromA.getClassPool());
+
+ childB = createChildURLClassPool(global, JAR_A_2);
+ CtClass aFromB = childB.get(CLASS_A);
+ assertSame(global, aFromB.getClassPool());
+ }
+ finally
+ {
+ unregisterClassPool(global);
+ unregisterClassPool(childA);
+ unregisterClassPool(childB);
+ }
+ }
+
+ public void testUndeploySibling() throws Exception
+ {
+ ClassPool poolA = null;
+ ClassPool poolB = null;
+ try
+ {
+ try
+ {
+ poolA = createClassPool("A", true, JAR_A_1);
+ assertCannotLoadCtClass(poolA, CLASS_B);
+
+ poolB = createClassPool("B", true, JAR_B_1);
+ CtClass bFromA = poolA.get(CLASS_B);
+ assertSame(poolB, bFromA.getClassPool());
+ }
+ finally
+ {
+ unregisterClassPool(poolB);
+ }
+ assertCannotLoadCtClass(poolA, CLASS_B);
+ }
+ finally
+ {
+ unregisterClassPool(poolA);
+ }
+ }
+
+
+ public void testUndeployParentDomainClassLoader() throws Exception
+ {
+ ClassPool globalA = null;
+ ClassPool globalB = null;
+ ClassPool child = null;
+ try
+ {
+ try
+ {
+ globalA = createClassPool("A", true, JAR_A_1);
+ assertCannotLoadCtClass(globalA, CLASS_B);
+
+ child = createChildDomainParentLastClassPool("C", "C", true, JAR_C_1);
+ assertCannotLoadCtClass(child, CLASS_B);
+
+ globalB = createClassPool("B", true, JAR_B_1);
+ CtClass bFromChild = child.get(CLASS_B);
+ CtClass bFromA = globalA.get(CLASS_B);
+ assertSame(globalB, bFromA.getClassPool());
+ assertSame(bFromA, bFromChild);
+ }
+ finally
+ {
+ unregisterClassPool(globalB);
+ }
+ assertCannotLoadCtClass(child, CLASS_B);
+ }
+ finally
+ {
+ unregisterClassPool(globalA);
+ unregisterClassPool(child);
+ unregisterDomain(child);
+ }
+ }
+
+/*
+ The folllowing two tests are probably not very realistic http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4195022#4195022
+ public void testClassLoaderlWithParentClassLoader() throws Exception
+ {
+ ClassPool parent = createChildURLClassPool(null, JAR_B_1);
+ ClassPool global = null;
+ try
+ {
+ global = createChildDomainParentFirstClassPool("A", "A", true, parent, JAR_A_1);
+ CtClass aFromGlobal = global.get(CLASS_A);
+ assertSame(global, aFromGlobal.getClassPool());
+ CtClass bFromGlobal = global.get(CLASS_B);
+ assertSame(parent, bFromGlobal.getClassPool());
+ CtClass bFromParent = parent.get(CLASS_B);
+ assertSame(bFromGlobal, bFromParent);
+ }
+ finally
+ {
+ unregisterClassPool(global);
+ unregisterClassPool(parent);
+ unregisterDomain(global);
+ }
+ }
+
+
+ public void testClassLoaderWithParentClassLoaderAndSameClassInDomain() throws Exception
+ {
+ ClassPool parent = createChildURLClassPool(null, JAR_B_1);
+ ClassPool globalA = null;
+ ClassPool globalB = null;
+ try
+ {
+ final String domain = "CHILD";
+ globalA = createChildDomainParentFirstClassPool("A", domain, true, parent, JAR_A_1);
+ CtClass aFromGlobal = globalA.get(CLASS_A);
+ assertSame(globalA, aFromGlobal.getClassPool());
+
+ globalB = createChildDomainParentFirstClassPool("B", domain, true, parent, JAR_B_1);
+ CtClass bFromGlobalA = globalA.get(CLASS_B);
+ assertSame(globalB, bFromGlobalA.getClassPool());
+ CtClass bFromParent = parent.get(CLASS_B);
+ assertSame(parent, bFromParent.getClassPool());
+ assertNotSame(bFromGlobalA, bFromParent);
+ }
+ finally
+ {
+ unregisterClassPool(globalA);
+ unregisterClassPool(globalB);
+ unregisterClassPool(parent);
+ unregisterDomain(globalA);
+ }
+ }
+*/
+ private void checkCanLoadString(ClassPool poolA, ClassPool poolB) throws NotFoundException
+ {
+ CtClass strA = poolA.getCtClass(STRING);
+ CtClass strB = poolB.getCtClass(STRING);
+ assertSame(strA, strB);
+ assertSame(ClassPool.getDefault(), strA.getClassPool());
+ }
}
Modified: projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/JBossClClassPoolTest.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/JBossClClassPoolTest.java 2008-12-08 14:49:00 UTC (rev 82111)
+++ projects/aop/trunk/asintegration-mc/src/tests/org/jboss/test/aop/classpool/jbosscl/test/JBossClClassPoolTest.java 2008-12-08 14:49:03 UTC (rev 82112)
@@ -249,7 +249,7 @@
return getChildDomainForLoader(pool.getClassLoader());
}
- public void unregisterDomain(ClassLoaderDomain domain)
+ protected void unregisterDomain(ClassLoaderDomain domain)
{
if (domain != null)
{
@@ -261,7 +261,25 @@
system.unregisterDomain(domain);
}
}
+
+ protected void unregisterDomain(ClassLoader loader)
+ {
+ if (loader != null)
+ {
+ ClassLoaderDomain domain = getChildDomainForLoader(loader);
+ unregisterDomain(domain);
+ }
+ }
+ protected void unregisterDomain(ClassPool pool)
+ {
+ if (pool != null)
+ {
+ ClassLoaderDomain domain = getChildDomainForPool(pool);
+ unregisterDomain(domain);
+ }
+ }
+
protected void assertCannotLoadClass(ClassLoader cl, String className)
{
try
@@ -313,12 +331,29 @@
return AspectManager.instance().registerClassLoader(loader);
}
+ protected ClassPool createChildDomainParentFirstClassPool(String name, String domainName, boolean importAll, ClassPool parent, URL... urls) throws Exception
+ {
+ ClassLoader loader = createChildDomainParentFirstClassLoader(name, domainName, importAll, parent.getClassLoader(), urls);
+ return AspectManager.instance().registerClassLoader(loader);
+ }
+
protected ClassPool createChildDomainParentLastClassPool(String name, String domainName, boolean importAll, URL... urls) throws Exception
{
ClassLoader loader = createChildDomainParentLastClassLoader(name, domainName, importAll, urls);
return AspectManager.instance().registerClassLoader(loader);
}
+ protected ClassPool createChildURLClassPool(ClassPool parent, URL url)
+ {
+ ClassLoader parentLoader = null;
+ if (parent != null)
+ {
+ parentLoader = parent.getClassLoader();
+ }
+ ClassLoader loader = createChildURLClassLoader(parentLoader, url);
+ return AspectManager.instance().registerClassLoader(loader);
+ }
+
protected void registerModule(ClassLoader loader, ClassLoaderPolicyModule module)
{
if (system != domainRegistry.getSystem())
@@ -392,7 +427,7 @@
*
* @param name the domain name
*/
- public void unregisterDomain(String name)
+ protected void unregisterDomain(String name)
{
if (name != null)
{
@@ -401,4 +436,13 @@
}
}
+ /**
+ * The test classes should not be on the launcher classpath
+ */
+ public void testClassesNotOnClasspath()
+ {
+ assertCannotLoadClass(this.getClass().getClassLoader(), CLASS_A);
+ assertCannotLoadClass(this.getClass().getClassLoader(), CLASS_B);
+ assertCannotLoadClass(this.getClass().getClassLoader(), CLASS_C);
+ }
}
More information about the jboss-cvs-commits
mailing list