geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject This appears to have broken configs build: Re: svn commit: r348552 - in /geronimo/trunk/modules/kernel/src: java/org/apache/geronimo/kernel/basic/ java/org/apache/geronimo/kernel/proxy/ test/org/apache/geronimo/kernel/
Date Wed, 23 Nov 2005 23:10:32 GMT

On Nov 23, 2005, at 12:34 PM, dain@apache.org wrote:

> Author: dain
> Date: Wed Nov 23 12:33:58 2005
> New Revision: 348552
>
> URL: http://svn.apache.org/viewcvs?rev=348552&view=rev
> Log:
> GERONIMO-1064 change proxy generation to always use an explicit class  
> loader
>
> Added:
>      
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/ 
> proxy/ProxyCreationException.java   (with props)
> Modified:
>      
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/ 
> basic/BasicProxyManager.java
>      
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/ 
> basic/BasicProxyMap.java
>      
> geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/ 
> proxy/ProxyManager.java
>      
> geronimo/trunk/modules/kernel/src/test/org/apache/geronimo/kernel/ 
> GBeanTest.java
> +    /**
> +     * Creates a proxy factory for GBeans of the specified type.  The  
> proxy class will be created within the class
> +     * loader from which the specified type was loaded, or from the  
> system class loader if the specified type has
> +     * a null class loader.
> +     *
> +     * @param type the type of the proxies this factory should create
> +     * @return the proxy factory
> +     */
> +    public ProxyFactory createProxyFactory(Class type) {
> +        if (type == null) throw new NullPointerException("type is  
> null");
> +
> +        ClassLoader classLoader = type.getClassLoader();
> +        if(classLoader == null) {
> +            classLoader = ClassLoader.getSystemClassLoader();
> +        }
> +
> +        return createProxyFactory(new Class[] {type}, classLoader);
> +    }
> +
>
I don't think the system classloader can ever be correct, at least it  
seems to break the configs-based build.  The enhancer needs to be able  
to load cglib classes from the classloader you use, and it can't from  
the system classloader (or whatever was being returned from  
ClassLoader.getSystemClassLoader()).  If I change this to

classLoader = this.getClass().getClassLoader();

my build works.  Do you see any problem with this?

thanks
david jencks


Mime
View raw message