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)
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
You don't need to put Blueprints API jar there; Aries Blueprint v1.1.0 already has everything (API, Core and CM).
ReplyDeleteBesides, 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.
Dear Oleg,
DeleteI 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