You are correct about OSGi having more control over classloaders, but in the
case of JCL things are a little different.  Below is a link to the mailing
list thread where we went through all of this pain on the Spring-OSGi
project and decided to replace JCL with the slf4j facade in order to
eliminate the side effects caused by Spring using JCL.  I think Spring-OSGi
uses slf4j natively now because of this and I believe it has been a
consideration for Spring itself to move to it, but I am not sure of the
final outcome of that discussion.

http://tinyurl.com/3axajc

I think the thread was cross posted to Equinox as well and a discussion
occured there...
Just google "commons logging madness" :-)

As you said about OSGi being flexible,  one nice thing about using slf4j in
OSGi is that you can have all implementation bundles (slf4j-log4j,
slf4j-jdk14, etc.) available in the container, and it is up to each bundle
to specify which one it imports, thereby adding it to the classloader
wiring.  I can't remember if that is built in functionality of slf4j or if
it is something that I made work, but it is all done with manifest headers
so it is easy to do if its not shipped like that.

Good luck!
Chris

On 8/27/07, Nodet Guillaume <[EMAIL PROTECTED]> wrote:
>
> I would say the opposite.  The OSGi classloaders are much more
> powerful and you can more easily control the visibility of classes.
> In addition, if JCL is required by a given bundle A, it does not
> mean that it will be visible by a bundle using bundle A.
>
> Obviously, this means to be tested (or maybe OSGi experts could
> help there...)
>
> Cheers,
> Guillaume Nodet
>
> On Aug 27, 2007, at 9:29 PM, Bruce Snyder wrote:
>
> > Also, moving toward an architecture based on OSGi almost guarantees
> > that we will run into classloader issues with JCL.
> >
> > Bruce
>
>

Reply via email to