Tuesday, September 15, 2009

Spring Framework Seminar November 14-15 Boston, MA

The Greater Boston Chapter of the ACM is hosting a SpringFramework professional development seminar on the weekend of November 14-15.

In this two day event, Craig Walls and Ken Sipe will be your guides to Spring. You'll start by learning the principles of Dependency Injection and AOP, the basis of much of Spring's power. Then you'll see how to employ Spring in building enterprise applications that are maintainable, testable, and efficient. The weekend will conclude by giving you an opportunity to openly ask any questions that you may have about Spring.

Whether you're already working with Spring or are just getting started, you'll leave this weekend equipped with greater understanding of Spring and new tricks and techniques that you can begin applying immediately to your projects

Register Now!

We've been planning this even for several months now. It is shaping up to be a great weekend. We have some great speakers and the topic is fantastic. You can see the full agenda here.

If you are in the Greater Boston area and would like to volunteer or speak at our evening meetings contact us here.

Monday, July 20, 2009

Completing the JMX service registration and sorting view contents

I spent a little time using the Bundle and Services views today to see how well they worked. It turns out that I had a little problem with the Karaf data feeds not updating properly. The OSGi JMX MBean interfaces do not seem to support the NotificationEmitter interface so there is no way to asynchronously update the data.

This isn't terrible since I just wrapped the data update in an Eclipse system job that runs every 25 seconds. The down side is that the viewer refresh invalidates your selection because it wipes the source data completely. Some day when I am motivated I'll try and fix it.

Sunday, July 19, 2009

Finished instrumenting the running Karaf platform

I just finished a really cool feature (three really!) for the Eclipse Integration for Karaf.

First, I have nearly finished the JMX integration (pesky connection management!) and have the ability to asynchronously pull out whatever information is available. This is great because I plan on using JMX as the foundation for the management and instrumentation of running Karaf instances in the workbench.

Second and third, I have put this to good use by hooking up two Eclipse Views:

  • Bundles View - This view shows all of the bundles in the Eclipse Workbench as well as any in the Karaf instance(s) being debugged
  • Services View - This view shows all of the services in the Eclipse Workbench as well as any in the Karaf instance(s) being debugged

Friday, July 17, 2009

New EIK Feature: Karaf Target Platform Provisioner

A quick update to the Eclipse Integration for Karaf project.

I just added an Eclipse Target Platform Provisioning wizard. This makes it very easy to add external Karaf installations to your PDE target platform without the aggravation of having to add all of those directories manually.

Pictures are much better than words.

Sunday, July 12, 2009

Eclipse Integration for Karaf now on FUSE Forge!

After a couple weeks of solid progress I am finally able to share several updates on the project. First, I am migrating development to FUSE Forge where I will be maintaining the Eclipse Integration for Karaf project!

This is great because I am going to be developing alongside some great projects in the Karaf and ServiceMix community. FUSE Forge is run by Progress Software as part of their Open Integration strategy.

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.

Saturday, June 27, 2009

Update to Karaf PDE Integration: Now with Java 1.5 support!

I am pleased to release Karaf PDE Integration 3.4.2.20090613232

This update fixes a critical bug in how the target runtime plugin location was resolved as well as adding Java 1.5 support (it now works on my Mac which has been my litmus test for portability).

I am still working on my release engineering skills and have found the pde-maven-plugin. Hopefully I'll be able to fix it up so that a release is as simple as mvn install!

Using Karaf in Eclipse involves two steps:

  1. Set the Eclipse Target Platform to Apache Felix Karaf
  2. Create an Apache Felix Karaf launch configuration

From there you add / remove bundles in your workspace, install features in the Karaf CLI, you can also add more bundles by manipulating the target platform.

Since this is a very early release the workflow is a bit rough. I would like to make things much easier -- I have a very long list of things to do.

Saturday, June 20, 2009

Respin of the Karaf PDE Integration feature

There were some problems with the plugin's installation -- I'm not sure what was going on but I have created a new version and packaged it as a feature instead of a full update site. I also recompiled in using Java 1.5 bytecode in the hopes that I can get it running on my Mac.

In any case, I was able to install this plugin successfully on a fresh download of Eclipse 3.4 with no additional plugins.

Get Karaf PDE Integration 3.4.2.1 here

Friday, June 19, 2009

Eclipse plugin release tooling is not as easy as it looks!

Wow! I am surprised at the number of people that are interested in the Karaf PDE plugin. Unfortunately my understanding of how the Eclipse feature and update site tooling works is lacking so there are some gotchas with installation.

I am downloading a fresh copy of Eclipse (I can't find my original tarball) and will install my plugin to see what is going on.

Thursday, June 18, 2009

Eclipse Update site for Apache Felix Karaf PDE integration

I've been having some trouble building my Eclipse Update site for the Karaf PDE Integration feature. The tooling is not exactly efficient or easy to use. In any case, here is the update site for the feature:

http://stephen.evanchik.com/software/karaf-pde-integration-site/

Monday, June 15, 2009

Announcing Eclipse PDE Integration for Apache Felix Karaf

I am pleased to announce that the Eclipse PDE integration for Apache Felix Karaf is finally ready for others to use.

Notable features include:

  • A Target Platform Definition that allows developers to target only the bundles found in Karaf distributions.
  • An Eclipse Run/Debug launcher configuration that configures Karaf to run inside the workbench transparently to the developer
  • A context menu item "Run on Apache Felix Karaf"
  • Automatic deployment of workspace projects to running Karaf instances without copying files

There is still work to be done but at this point the integration is very functional and saves time developing applications that run on Karaf.

Friday, June 12, 2009

Karaf running with Workspace projects

Tonight is very exciting! I just finished off the initial work to get my Eclipse Karaf Launcher loading bundles from the workspace. This means that a developer can use PDE to write bundles and deploy them seamlessly to the Karaf/ServiceMix/NMR targets.

I still have some tasks left to do: the first is locating a suitable place to host the code! But it is getting late so I'm off to bed!

Screenshots below.

Wednesday, May 27, 2009

Updates to Karaf in Eclipse PDE

Just a quick update to running Apache Felix Karaf in Eclipse PDE: I now have it launching Karaf with proper configuration synchronization. This means that there are no longer any exceptions during startup due to missing configuration files and the files are only synchronized if they are missing.

Developers can freely modify the default configuration files or provide their own entirely and the launcher will preserve those changes between executions.

I am one step closer to having this working well enough to develop against. The remaining tasks:

  • Synchronize workspace and additional Target Platform bundles to the configuration
  • Add a proper source bundle to the Target Platform definition for Karaf
  • Create the Karaf specific property pages to make configuring things easier

Here's a screenshot:


Tuesday, May 26, 2009

Apache Felix Karaf in Eclipse PDE

Apache Felix Karaf is an OSGi based application framework that is the core for the Apache ServiceMix projects. I use Eclipse for my Java developement and wanted to have the benefits of development in the Eclipse PDE with the Karaf platform features (hot deploy, GShell based console among other things). This little project service two purposes: I get to learn about Eclipse plugin development and I get Apache Felix Karaf running in PDE! I have a first version working with the following features:

  • My Eclipse plugin builds are based on the Karaf Maven artifacts and require no changes to Karaf
  • An Eclipse Target Platform definition plugin is created with the exact system bundles as in Karaf (including both Felix and Equinox OSGi frameworks)
  • Configuration is done using native Karaf configuration files -- no special magic is used
  • Launching is done via the org.apache.felix.karaf.main.Main class
  • The boot classpath is the same during the Eclipse launch as is the set of packages exported by the system which keeps the development and deployment environments in sync. You'll appreciate this if you have done any significant OSGi development.