dev@glassfish.java.net

Re: [v3] exporting all Metro packages for OSGi

From: Sahoo <sahoo_at_sun.com>
Date: Wed, 27 Aug 2008 19:10:04 +0530

Fabian Ritzmann wrote:
> On 27. Aug 2008, at 13:49, Sahoo wrote:
>
>> No, I still don't understand why we are seeing failures. My
>> understanding is that Metro is a OSGi bundle and some code in that
>> OSGi bundle is attempting to load another non-exported class from the
>> same OSGi bundle using a variant of Class.forName() that does not
>> take any classloader as argument. In such a case, Class.forName()
>> uses caller's classloader, which is the classloader of the Metro
>> bundle. Such a class loader should be able to load any class that's
>> part of Metro bundle.
>>
>> There are two assumptions here:
>> 1. Class being loaded is part of Metro OSGi bundle.
>> 2. No classloader is passed to Class.forName().
>>
>> Is any of them wrong?
>
> Both assumptions are correct.
Looking at your recent emails, I don't understand how you concluded both
the assumptions were correct. I do think the code passes Thread's
context class loader while calling Class.forName(). Otherwise, how is
the WebappClassLoader coming into picture? Clarify this please.

Thanks,
Sahoo