[jboss-cvs] JBossAS SVN: r85562 - projects/aop/trunk/asintegration-mc/src/main/java/org/jboss/aop/classpool/jbosscl.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Mar 6 12:40:19 EST 2009
Author: kabir.khan at jboss.com
Date: 2009-03-06 12:40:18 -0500 (Fri, 06 Mar 2009)
New Revision: 85562
Modified:
projects/aop/trunk/asintegration-mc/src/main/java/org/jboss/aop/classpool/jbosscl/JBossClClassPoolDomain.java
Log:
[JBAOP-709] Get rid of reflection hack since jbcl-78 has been released
Modified: projects/aop/trunk/asintegration-mc/src/main/java/org/jboss/aop/classpool/jbosscl/JBossClClassPoolDomain.java
===================================================================
--- projects/aop/trunk/asintegration-mc/src/main/java/org/jboss/aop/classpool/jbosscl/JBossClClassPoolDomain.java 2009-03-06 17:39:27 UTC (rev 85561)
+++ projects/aop/trunk/asintegration-mc/src/main/java/org/jboss/aop/classpool/jbosscl/JBossClClassPoolDomain.java 2009-03-06 17:40:18 UTC (rev 85562)
@@ -21,7 +21,6 @@
*/
package org.jboss.aop.classpool.jbosscl;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -41,7 +40,6 @@
import org.jboss.aop.classpool.ClassPoolDomain;
import org.jboss.aop.classpool.DelegatingClassPool;
import org.jboss.aop.util.ClassLoaderUtils;
-import org.jboss.classloader.spi.DelegateLoader;
import org.jboss.classloader.spi.ParentPolicy;
import org.jboss.classloading.spi.dependency.Module;
@@ -207,29 +205,18 @@
private CtClass getCtClassFromModule(Module module, String classname, boolean trace)
{
- //FIXME Hack to work with both snapshot fix for JBCL-78 and what currently exists in the API
- //Remove once JBCL-78 is released
- CtClass clazz = getCtClassFromModuleHack(module, classname, trace);
- if (clazz != null)
- {
- return clazz;
- }
- return getCtClassFromDelegates(module, classname, trace);
- }
-
- //TODO This should not use reflection once JBCL-78 has been released
- private CtClass getCtClassFromModuleHack(Module module, String classname, boolean trace)
- {
- Module found = null;
+ Module found;
try
{
- Method m = Module.class.getMethod("getModuleForClass", String.class);
- found = (Module)m.invoke(module, ClassLoaderUtils.stripArrayFromClassName(classname));
- if (trace) logger.trace(this + " module for " + classname + " " + found);
+ found = module.getModuleForClass(ClassLoaderUtils.stripArrayFromClassName(classname));
}
- catch (Exception e1)
+ catch (ClassNotFoundException e1)
{
+ throw new RuntimeException(e1);
}
+
+ if (trace) logger.trace(this + " module for " + classname + " " + found);
+
if (found == null || found == module)
{
return null;
@@ -249,63 +236,4 @@
}
return null;
}
-
- //TODO Delete this once JBCL-78 has been released
- private CtClass getCtClassFromDelegates(Module module, String classname, boolean trace)
- {
- List<? extends DelegateLoader> delegates = module.getDelegates();
- if (delegates != null && delegates.size() > 0)
- {
- for (DelegateLoader delegate : delegates)
- {
- //TODO This is a hack, need a proper API in jboss-cl
- System.err.println("HACK in JBossClClassPoolDomain");
- ClassLoader loader = getBaseClassLoaderFromDelegateHack(delegate);
-
- //TODO Should be a nicer way to do this
- ClassPool pool = manager.findClassPool(loader);
- try
- {
- return pool.get(classname);
- }
- catch(NotFoundException e)
- {
- }
- }
- }
- return null;
- }
-
- //TODO Delete this once JBCL-78 has been released
- private static ClassLoader getBaseClassLoaderFromDelegateHack(DelegateLoader loader)
- {
- Class<?> clazz = loader.getClass();
- Method m = null;
- while (clazz != Object.class)
- {
- try
- {
- m = clazz.getDeclaredMethod("getBaseClassLoader", String.class, String.class);
- m.setAccessible(true);
- break;
- }
- catch(Exception e)
- {
- clazz = clazz.getSuperclass();
- }
- }
- if (m == null)
- {
- return null;
- }
- try
- {
- return (ClassLoader)m.invoke(loader, "a BaseClassLoader", "");
- }
- catch(Exception e)
- {
- return null;
- }
- }
-
}
More information about the jboss-cvs-commits
mailing list