dev@glassfish.java.net

Re: Why we don't use OSGi for embedded GlassFish? [ Was: Re: modularization & OSGi]

From: Jerome Dochez <Jerome.Dochez_at_Sun.COM>
Date: Thu, 28 Aug 2008 14:18:08 -0700

On Aug 28, 2008, at 1:17 PM, Sahoo wrote:

> Jerome,
>
> Jerome Dochez wrote:
>>
>> I have also seen places when people started using OSGi APIs
>> directly, I have said in previous communications, including the
>> engineering meeting that I do not want any OSGi API usage in the V3
>> codebase. The simple reason is that we want to have the flexibility
>> to run V3 without an OSGi runtime (embedded scenario)
> I beg to differ on this point. OSGi is very suitable for embeddable
> case.
of course and I am not saying that when you are embedded, you must not
use an OSGi environment. All I am saying is that when you are
embedded, you should have the flexibility of choice.
> From the very beginning, I have been saying that it is asking for
> trouble to have an alternate runtime for GlassFish. It is too costly
> to have a glassfish with identical behavior on yet another platform
> in addition to OSGi.
it's not identical behaviours. for instance you forgo a lot of the
dynamism you get with OSGi, however you can expect basic
functionalities (deploy, run in all pre-installed containers) to work.
>
>> and we can do that by providing a mock-up implementation of the hk2
>> interfaces which provides us with an isolation layer. So all OSGi
>> direct usage should be wrapped in an hk2 interface so we can ensure
>> that a mockup implementation can be done.
> web-glue uses OSGi API for good reasons,as it has to use OSGi's URL
> handler service. I hope you are not suggesting to even wrap that in
> HK2.
it seems to me that it's a different problem. you have to have this
code in web-glue to work in the OSGi environment, however when running
on top of the JDK directly then the Activator is useless and not used.
So if you use the OSGi APIs to make it work in an OSGi runtime while
your bundle will work correctly (without this activator being loaded)
in the bare JDK classpath then it's ok.

Otherwise yes, we must wrap it.

>
>> We already have external users/companies using V3 in such a
>> scenario, it's important we don't break them.
> Can you elaborate why those users object to us using OSGi as the
> runtime in embedded scenario? During ASARCH review process, I also
> raised this issue and I am yet to get a suitable answer. I have
> heard fast startup as a requirement. How fast do we want? Have we
> exhausted all our options while using OSGi that we have decided to
> use some other runtime to get the desired start up time?

this has nothing to do with startup, which in most cases is not
measured in embedded case.
you got answers at the time, which involved marketing and customer
sensitive information.

Jerome
>
>
> Thanks,
> Sahoo
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: dev-help_at_glassfish.dev.java.net
>