geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Jencks <david_jen...@yahoo.com>
Subject Re: shared lib in Geronimo 3.0
Date Wed, 24 Mar 2010 21:30:09 GMT

On Mar 24, 2010, at 2:10 PM, Kevan Miller wrote:

> 
> On Mar 24, 2010, at 4:57 PM, David Jencks wrote:
> 
>> 
>> On Mar 24, 2010, at 12:58 PM, Sangjin Lee wrote:
>> 
>>> Thanks. So it sounds like it will be pretty much a *requirement* that applications
on 3.0 need to be fully OSGi bundles,
>> 
>> Well, the idea is that the geronimo deployment process will turn your javaee app
into one or more bundles.  We set up defaults for the osgi manifest headers but you can modify
them in your geronimo plans.
> 
> Right. So traditional EE apps need not change. You can continue to deploy EE defined
artifacts (e.g. WAR/EAR/JAR). Users don't need to turn them into bundles. Applications that
used Geronimo deployment plan dependencies are likely to require some changes...
> 
>> 
>>> and if you were using the shared lib as part of your classloading scheme you
will have to convert them all to OSGi bundles.
>> 
>> Jars that aren't part of a javaee application need to be converted to bundles before
installing them.   I guess we could provide a default conversion but usually this doesn't
seem to be adequate in practice.  Do you think this is going to be a problem for users?
> 
> David never really liked shared-lib, to begin with... ;-)
> 
> If you have compelling use cases, now is definitely a good time to speak up... There's
certainly a set of users that have found shared lib to be convenient.

While I always thought shared lib was a bad idea, at least pre-osgi the concept of a classloader
that you could just toss things in made sense.  I don't think it makes any sense in osgi.
 There is no dynamic-export header so whatever implementation you came up with would have
to know exactly what packages to export... making the idea of adding more stuff to it useless.
 If you just make sure your jar is bundleized so the packages you want to use are exported,
and install the bundle in the osgi framework, the osgi wiring mechanism will take care of
making it available to your app, in a simpler, uniform way that is much more flexible than
shared lib was.

In other words, plain vanilla osgi all by itself does what shared lib was for much much better.
 The only inconvenience is that you have to make your libraries into bundles somehow.  We
can certainly talk about how to help people do that, but that will be generally useful and/or
impossible to do well.

thanks
david jencks

> 
> --kevan


Mime
View raw message