Archive for: ‘June 2011’

Camel 2.8.0 new features for Karaf/ServiceMix

June 29, 2011 Posted by jbonofre

Camel provides Karaf features descriptor since quite a long time now. But Camel 2.8.0 will include new Karaf features very useful and turning Karaf and ServiceMix as the main container to run Camel.

Install Camel in Karaf

Installing Camel in Karaf is very simple as a features descriptor is provided. It means that you can register the Camel features descriptor in your running Karaf instance:

karaf@root> features:addurl mvn:org.apache.camel.karaf/apache-camel/2.8.0/xml/features

Now, you have the Camel features available:

karaf@root> features:list|grep -i camel

[uninstalled] [2.8.0 ] camel repo-0

[uninstalled] [2.8.0 ] camel-core repo-0

[uninstalled] [2.8.0 ] camel-spring repo-0

[uninstalled] [2.8.0 ] camel-blueprint repo-0

Deploy Camel features

To start using Camel in Karaf, you have to install at least the camel feature:

root@karaf> features:install camel

Depending of your requirements, you will certainly install others Camel features.

For instance, if you use Blueprint Camel DSL, you have to install the camel-blueprint feature:

root@karaf> features:install camel-blueprint

or, if you use stream component in an endpoint (for instance “stream:out”), you will install the camel-stream feature:

root@karaf> features:install camel-stream

Camel and OSGi

When Camel is used in an OSGi environment, it automatically  exposes CamelContexts as OSGi services. It means that, when you deploy a route, the associated CamelContext is available for OSGi bundles.

You can look up for CamelContext OSGi services with this small code snippet:

ServiceReference[] references = bundleContext.getServiceReferences(CamelContext.class.getName(), null);
if (references != null) {
  for (ServiceReference reference : references) {
    if (reference != null) {
      CamelContext camelContext = (CamelContext) bundleContext.getService(reference);
      if (camelContext != null) {
        // do what you want on the CamelContext

Camel Karaf commands

Camel 2.8.0 provides a set of Karaf commands which allow you to get information, start, stop about Camel contexts and routes.

  • camel:list-contexts displays the list of Camel context currently available in the running Karaf/ServiceMix instance
  • camel:list-routes displays the list of Camel routes currently available in the running Karaf/ServiceMix instance
  • camel:start-context starts a Camel context
  • camel:stop-context stops a Camel context
  • camel:info-context display detailed information about a Camel context
  • camel:start-route starts a Camel route
  • camel:stop-route stops a Camel route
  • camel:show-route displays the XML rendering of a Camel route (whatever your route DSL is)
  • camel:info-route displays detailed information about a Camel route including statistics

Happy birthday Apache Karaf

June 17, 2011 Posted by jbonofre

Yesterday was the first birthday of Apache Karaf.

We made a conference call between all Karaf developer. It was funny to put a voice on a name 🙂

It was very interesting even if unfortunately some key players were not available such as Guillaume or Achim.

Past Year Review

First, we made a review about this past year. Jamie had prepared a very complete review:

We can note that the Karaf downloads increased a lot with the 2.2.0 release. It was a really expected release and it has been included in a lot of projects both open-source (ServiceMix, CXF, Camel, Geronimo, …) and enterprise (Talend, Fuse, …).

We can conclude that the Karaf visibility and adoption have quickly increase and Karaf is now a important container in the OSGi eco-system.

Karaf Future

We also share our vision about the Karaf future.

We identified the following topics:

  1. Our first focus will be the Karaf 3.0.0 release. It means that Karaf 2.1.x branch will turn in EOL (End Of Life), the Karaf 2.2.x branch will be in maintenance mode. This release will be a major release as it includes a lot of new features and enchancements.
  2. Create custom Karaf distribution is not really easy right now and some projects have to change low level configuration files. We are going to work on Karaf dsitributions and profiles, by providing tooling (such as maven plugin).
  3. Add a premium OSGi container, Karaf should provide a complete and “sexy” web console. The current web console (powered by Felix console) will be maintained and suported, but we are going to work on a new one, highly extendible (by a plugin mechanism) and supporting branding. We are going to use a modern component-oriented framework such as Wicket.
  4. We moved forward in the clustering area with Karaf Cellar sub-project. It’s clear that clustering, clouding, and farming are features expected by the enterprises. We are going to work on this topic by extending Cellar.
  5. Related to the previous topic, provisioning is a must have. Apache ACE and Apache Karaf will work together to provide an enterprise provisioning solution.
  6. Cellar was the first Karaf sub-project. Related to provisioning, Karaf Cave OBR could be a new Karaf sub-project. The purpose is to provide an OBR server implementations including advanced features (P2P, REST interface, multi-repositories, etc).

I wrote down the concall minute notes:

It’s clear that we should schedule this kind of concall every two or three months. It allows us to make a kind of checkpoint and drive the Karaf roadmap.

Welcome to my new blog

June 17, 2011 Posted by jbonofre

Previously, I was using a wiki (powered by JSPWiki) as a blog.

It was largely enough for me as I wasn’t a huge blogger 😉

But now, I decided to blog more especially around the Apache projects on which I’m working. That’s why I installed a real blog engine (WordPress). The purpose is to provide standard blog features: RSS feeds, categories, blogroll, etc.

So, I hope that you will be pleased with my new blog, and now, it’s time to append some content 😉

Enjoy !!