users@glassfish.java.net

Re: GlassFish 3.1 embedded + OSGi = ???

From: Michael Hollatz <michael.hollatz_at_profitbricks.com>
Date: Wed, 09 Feb 2011 16:20:05 +0100

Hi Sahoo,

Nice one with the file://... approach. I'll test that.

Really sad for the embedded jar part, but I guess it'll be even better
if we stay as close as possible to a real environment, just to be sure.


Thanks a lot and I'll report back,

Kane


On 02/09/2011 04:12 PM, Sahoo wrote:
> Hi Kane,
>
> Well, I failed to convince our embedded engineers to add support for
> OSGi in the all-in-one uber jar. In 3.1, they started with the goal of
> having a single bundle distribution that could be activated inside an
> OSGi framework which would then install and activate the rest of the
> bundles, but they had to drop that because of lack of time/motivation(?).
>
> The only extra step needed now is to have a glassfish installation. Does
> it truly make it so much worse? I didn't mention one more thing in my
> last email. If you install glassfish.jar with a location URL like
> file:/<full path to glassfish.jar>, then there is no need to set those
> two properties, as the bundle activator can deduce the installRoot and
> instanceRoot from the location URL itself.
>
> Secondly, when you embed using the technique I mentioned in my previous
> email, what you get is close to what happens when GlassFish runs in
> non-embedded mode, so I would be very surprised if the runtime behaves
> any differently.
>
> Once you have embedded, you can actually get hold of the GlassFish
> service using ServiceTracker or BundleContext.getService(), which
> implements org.glassfish.embeddable.GlassFish interface [1] and from
> there on use that object. glassfish.jar bundle exports the embeddable
> api package as well.
>
> Sahoo
>
> [1]
> http://embedded-glassfish.java.net/nonav/apidocs/org/glassfish/embeddable/GlassFish.html
>
>
>
> On Wednesday 09 February 2011 08:09 PM, Michael Hollatz wrote:
>> Hi Sahoo,
>>
>> thanx for that info. I'll give it a try.
>>
>> However, I think for most developers it would be even easier to use
>> the embedded version but as it doesn't come as an OSGi bundle itslef I
>> wondered if that is even supported?
>>
>> Thanx,
>>
>> Kane
>>
>> On 02/09/2011 03:24 PM, Sahoo wrote:
>>> Hi Kane,
>>>
>>> Yes, that blog is indeed dated. It is even simpler to embed GlassFish in
>>> an OSGi runtime. No need to write any code. You just have to install and
>>> start glassfish/modules/glassfish.jar bundle. Just set the following
>>> properties in your OSGi environment:
>>> com.sun.aas.installRoot=<full path to your glassfish3/glassfish/>
>>> com.sun.ass.instanceRoot=<full path to your domain directory>
>>>
>>> Let us know your experience.
>>>
>>> Thanks,
>>> Sahoo
>>>
>>> On Wednesday 09 February 2011 05:55 PM, Michael Hollatz wrote:
>>>> Hi *,
>>>>
>>>> I know you all are busy with the RC's and bug fixing but I have a
>>>> "simple" question:
>>>>
>>>> How are we supposed to use the embedded GF within an OSGi environment?
>>>>
>>>> So we have some applications composed of OSGi Bundles and they also
>>>> use the JavaEE/OSGi integration provided by GlassFish 3.1. In order to
>>>> implement component/module tests I was thinking about using the
>>>> glassfish-embedded-all to accomplish that but I want to make sure if
>>>> it is confirmed (or proposed) to work or, if not, what other options
>>>> you would recommend me to try.
>>>>
>>>> Thanx for any hint/information/links.
>>>>
>>>> Kane
>>>>
>>>> P.S.: I've already tried the approach that Sahoo described once here:
>>>> http://weblogs.java.net/blog/ss141213/archive/2010/02/14/how-embed-glassfish-existing-osgi-runtime
>>>>
>>>>
>>>>
>>>> This one is a bit dated and trying that one with a recent promoted
>>>> build lets the main glassfish-core bundle fail to start.
>>>
>>
>