]> source.dussan.org Git - javassist.git/commitdiff
Allow a ClassPool to override the "guess" at the classloader to use.
authoradrian <adrian@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Wed, 15 Mar 2006 17:46:52 +0000 (17:46 +0000)
committeradrian <adrian@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Wed, 15 Mar 2006 17:46:52 +0000 (17:46 +0000)
The default is still the thread context classloader.

git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@259 30ef5769-5b8d-40dd-aea6-55b5d6557bb3

src/main/javassist/ClassPool.java
src/main/javassist/CtClassType.java

index 25332d76c885c94178a69539b48d9a02070bcf28..cd869285ceaa7e0f9130e7ab2a5c0fc96bb5ef9e 100644 (file)
@@ -754,7 +754,10 @@ public class ClassPool {
      * To load the class, this method uses the context class loader
      * of the current thread.  If the program is running on some application
      * server, the context class loader might be inappropriate to load the
-     * class.
+     * class.<p>
+     * 
+     * This can be changed by subclassing the pool and changing
+     * the getClassLoader() method.
      *
      * <p>This method is provided for convenience.  If you need more
      * complex functionality, you should write your own class loader.
@@ -762,9 +765,20 @@ public class ClassPool {
      * @see #toClass(CtClass, java.lang.ClassLoader)
      */
     public Class toClass(CtClass clazz) throws CannotCompileException {
-        return toClass(clazz, getContextClassLoader()); 
+        return toClass(clazz, getClassLoader()); 
     }
 
+    /**
+     * Get the classloader for this pool.<p>
+     * 
+     * The default is the context class loader.
+     * 
+     * @return the classloader for the pool
+     */
+    public ClassLoader getClassLoader() {
+        return getContextClassLoader();
+    }
+    
     /**
      * Obtains a class loader that seems appropriate to look up a class
      * by name. 
index 86dbf3b27955f2f29dd123882afc0928d6957cf7..ed3d9051a4338f89b07159f3088d9356f0a31b64 100644 (file)
@@ -496,7 +496,7 @@ class CtClassType extends CtClass {
         throws ClassNotFoundException
     {
         try {
-            ClassLoader cl = ClassPool.getContextClassLoader();
+            ClassLoader cl = cp.getClassLoader();
             return anno.toAnnotationType(cl, cp);
         }
         catch (ClassNotFoundException e) {