Re: Classloader problems when creating Factory and Parser objects

2008-07-11 Thread Zeenat Lainwala
Yes, this solution worked for me. I set the context classloader on the 
thread to the osgi classloader and then once I am done getting the Factory 
and 
Parser objects, I reset it back to the original classloader.
Thank you.


Zeenat
IBM Websphere Process Server




"Sergio Bossa" <[EMAIL PROTECTED]> 
07/11/2008 01:34 AM
Please respond to
[email protected]


To
[email protected]
cc

Subject
Re: Classloader problems when creating Factory and Parser objects






On Thu, Jul 10, 2008 at 7:24 PM, Zeenat Lainwala <[EMAIL PROTECTED]> 
wrote:

> In my product, the abdera classes are packaged in an OSGI bundle. This 
is
> version 0.4.0. When abdera creates a Factory, Parser, etc, it uses the
> application classloader and the system class loader
> (org.apache.abdera.util.ServiceUtil.java locateInstance) instead of 
using
> the classloader from
> the bundle. Since the Factory, Parser etc classes are in the bundle, the
> classloading fails.

Hi,

you may try to overwrite the current thread classloader by calling the
following method into your code:
Thread.currentThread().setContextClassLoader(osgiClassloader).
Let us know if it works.
Cheers,

Sergio B.

-- 
Sergio Bossa
Software Passionate, Java Technologies Specialist and Open Source 
Enthusiast.
Blog : http://sbtourist.blogspot.com
Sourcesense - making sense of Open Source : http://www.sourcesense.com
Pro-netics s.p.a. : http://www.pronetics.it



Re: Classloader problems when creating Factory and Parser objects

2008-07-11 Thread Ugo Cei


On Jul 10, 2008, at 7:24 PM, Zeenat Lainwala wrote:

In my product, the abdera classes are packaged in an OSGI bundle.  
This is

version 0.4.0. When abdera creates a Factory, Parser, etc, it uses the
application classloader and the system class loader
(org.apache.abdera.util.ServiceUtil.java locateInstance) instead of  
using

the classloader from
the bundle. Since the Factory, Parser etc classes are in the bundle,  
the

classloading fails.

Does anyone have an idea on how I can circumvent this problem?



I had the same problem, in a different context. See the following  
thread:


http://www.nabble.com/Using-Abdera-in-a-Confluence-plugin-tt17207744.html

In the end I had to manually move all jars to my webapp's WEB-INF/lib  
directory, which sucks, but I don't want to have to fight with too  
many frameworks trying to do too many clever things with class- 
loading: in my case it was Confluence, Commons Logging, Abdera and  
maybe more. Good luck trying to figure out how to introduce OSGi in  
the mix.


Ugo



Re: Classloader problems when creating Factory and Parser objects

2008-07-11 Thread Sergio Bossa
On Thu, Jul 10, 2008 at 7:24 PM, Zeenat Lainwala <[EMAIL PROTECTED]> wrote:

> In my product, the abdera classes are packaged in an OSGI bundle. This is
> version 0.4.0. When abdera creates a Factory, Parser, etc, it uses the
> application classloader and the system class loader
> (org.apache.abdera.util.ServiceUtil.java locateInstance) instead of using
> the classloader from
> the bundle. Since the Factory, Parser etc classes are in the bundle, the
> classloading fails.

Hi,

you may try to overwrite the current thread classloader by calling the
following method into your code:
Thread.currentThread().setContextClassLoader(osgiClassloader).
Let us know if it works.
Cheers,

Sergio B.

-- 
Sergio Bossa
Software Passionate, Java Technologies Specialist and Open Source Enthusiast.
Blog : http://sbtourist.blogspot.com
Sourcesense - making sense of Open Source : http://www.sourcesense.com
Pro-netics s.p.a. : http://www.pronetics.it