Saturday, April 26, 2014

Integrating Apache Aries blueprint into Glassfish 4

After experimenting with Glassfish 4 lately I would like to let you know what I am up to. It's nothing big (yet) ;-)

A little bit of background

Glassfish comes with integrated OSGi support (Apache Felix) but without Blueprint (as far as I know). So putting a Blueprint container into Glassfish became my task.

The nice thing about Glassfish is that it combines Java EE (especially EJBs) and OSGi and that, in contrast to JBoss, it has a nice OSGi web console.
If you want to get to know more about the OSGi-JEE combination the keyword for your favourite search engine is "fighterfish".

Most of the credit goes to Yong Tang and his blog entry. He describes the integration of Aries Application but also describes the basic parts necessary for my task.

The problem


So, before we start, what is the problem? If you're familiar with Glassfish you certainly know there is an autodeploy/bundles directory. Why don't I just drop the necessary bundles into the autodeploy/bundles directory?
When using the autodeploy directory Glassfish doesn't start the bundles so you'll have to do it by hand every time you empty the osgi-cache directory and, of course, initially.
But there's a more convenient way.

Let's get it on


What's the better way?
Just drop the jars
  • Aries Blueprint Api(v1.0.0)
  • Aries Blueprint(v1.1.0)
  • Aries Proxy (v1.0.0) 
  • Aries Util(v1.0.0)
into glassfish/modules/autostart.
To make sure all dependencies are there add slf4j api (v1.7.2), logback core(v1.0.13) and logback classic (v1.0.13) (or whichever logging framework you prefer). You don't need any additional configuration because we didn't create a subdirectory.

See, piece of cake. The trick is to find the right directory. Now the Blueprint extender will do its job right after start up.
glassfish/modules/autostart
glassfish/modules/autostart
glassfish/modules/autostart
glassfish/modules/autostar
glassfish/modules/autostar

2 comments:

  1. You don't need to put Blueprints API jar there; Aries Blueprint v1.1.0 already has everything (API, Core and CM).

    Besides, you don't have to put all these jars into modules/autostart; only Blueprint jar goes there to be autostarted. Others will be happily resolved by Glassfish from parent (modules) folder.

    ReplyDelete
    Replies
    1. Dear Oleg,

      I am sorry for my late response.
      Thank your for your advice. I wasn't aware of the fact that Aries Blueprint includes those three parts.
      Do you know if it will make a big difference, if all my mentioned bundles are placed inside autostart or one directory up? I guess they all need to be started due to the imports.

      Cheers,
      Ronny

      Delete

 

Copyright @ 2013 Wrong tracks of a developer.

Designed by Templateiy