geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dain Sundstrom <d...@iq80.com>
Subject Re: 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 Thu, 24 Nov 2005 17:56:00 GMT
Sorry.  I didn't even know how to run packing build, but I'm working  
on it.

-dain

On Nov 23, 2005, at 5:10 PM, David Jencks wrote:

>
> 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