After a successful conference last year, Amsterdam was again hosting the european ApacheCon. Karl and I hooked up with Richard Hall and we travelled together to this year’s edition. The sessions started on wednesday and lasted until friday. As always, it was interesting to hook up with committers and users of various projects and exchange ideas.
From the various sessions we visited, there were some that were particularly interesting and worth mentioning here.
For everybody who has ever built protocols, Apache Mina is a great framework. It abstracts away most of the complication of the NIO API and contains many building blocks for creating scalable servers and clients that use a custom protocol.
If you need to do enterprise integration, and you’re familiar with the Enterprise Integration Patterns book, then Apache Camel will help you write these integrations. Camel itself is packaged as a set of Spring components that can be integrated into any application easily. Configurations are either done using XML or with a fluent Java API. The latter looks really great and allows you to express complicated rules in a very easy way. Another interesting thing you can do with Camel is implement Business Activity Monitors (BAM). These are rules that trigger exceptions if some condition is not met. For example, you can specify that whenever a message A comes in, you would expect a response message B within 3 seconds. You can furthermore say what should be done if that is not the case, for example post an alert message C.
One of the Apache projects that has really adopted OSGi and Apache Felix is the ServiceMix project. They managed to implement JBI on top of OSGi and are working with the spec leads to make JBI fit more naturally with OSGi (which currently is not really the case). This is really one of the projects that will help move OSGi into the enterprise.
The Apache Sling project had an interesting BOF. They are close to doing their first release and are trying to grow their community. One of the nice aspects of Sling is that it packages Apache JackRabbit in OSGi bundles. Of course this should really happen within JackRabbit but it’s a great initiative. Sling itself is a web application development platform that uses REST principles to build content repositories.
Apart from the sessions, we also had several talks with people about Apache Felix. During the BOF about Apache Sling we discovered they had a very nice web based management console for OSGi. Since this was not in any way Sling specific, we agreed to donate it to Felix, as it would be a nice addition to our text and Swing based shells. You can follow that process on either the Sling or the Felix mailing list.
Furthermore, we discussed the possibility of a simple, pluggable installer that combines efforts from Peter Kriens, ServiceMix and Sling to create an easy to use, convenient installer that will speed up development.
A third interesting topic was the issue of testing OSGi bundles on multiple frameworks and rebranding. Even though we at Felix ensure we only use standard OSGi features that are part of the spec, some people think that bundles that are part of the Felix project only work on Felix. That’s of course not true, but we don’t explicitly test and guarantee the working of these bundles on other frameworks either. So, like with many hardware components that often get rebranded, we discussed the value of doing this for OSGi bundles. That way, companies like JayWay and luminis could provide branded bundles to their customers and make sure they comply with their quality and testing standards.
As a general trend, a lot of projects are now moving towards Java 5 as their minimum version, mostly stating generics and the concurrency API’s as their prime reasons. This poses an interesting question for OSGi development, since not all embedded JVM’s are Java 5 compliant yet. Should some kind of new Foundation profile be defined that includes the most important features of Java 5?
Finally, we showed some people our software component provisioning server and got positive reactions and some good feedback. In general we had a great time and learned some new things. Next year, we will try to organize more events around OSGi and Apache Felix in a further attempt to grow our community.
