Monday, June 29, 2009

Karaf PDE Integration AND Web Tools Platform Integration

Little by little I chip away at the workflow problems while developing OSGi applications. This evening I put the finishing touches on some refactoring and feature enhancements:

  • Refactored core, non-UI, code in to its own plugin
  • Finished the definition of my KarafTargetPlatformModel concept (more on this later).
  • Added a new OSGi Framework definition in Eclipse for Karaf on Equinox
  • Created an Eclipse Web Tools Platform Server Runtime for Karaf

All in all it was a very productive session. I will add the necessary code for the WTP Server Type soon.



The Karaf PDE integration now has preliminary integration for the Eclipse Web Tools Platform. The first step is to create a new runtime type which allows users download compatible installations of Karaf and have Eclipse WTP make them useable deployment targets. I believe I have completed much of that work this evening (you can see the screenshots below).

It turns out my refactoring to a core non-UI plugin had the added benefit of creating a very flexible framework for integrating in to the various components of Eclipse (PDE and WTP). The core of which is my Karaf Target Platform Model which understands the configuration and binary layout of the various bundles that comprise a Karaf installation.

This target platform model serves as an input in to the Eclipse PDE Target definition manager as well as the Debug Launch configurations and the WTP Server Runtime definition. This model provides convenient access to the configuration properties files, the bundles, the startup configuration resolved as a series OSGi metadata elements and knows how to determine if a candidate model is valid.

Next on my list:

  • Connecting to a running Karaf instance via JMX
  • Defining the necessary Server Type so that I can see the Karaf server in the Servers view
  • A Karaf Log viewer (this should be relatively easy)

Once I can connect to a Karaf JMX instance and have the Server infrastructure the next thing I'll do is hot publish a bundle to the Karaf Server. From there I plan on adding a number of pages that will display bundles installed, services registered and whatever other information I can dig out of the running instance.