Webinar - Building superior integrated applications with open source Apache Camel

I am scheduled to host a free webinar on building integrated applications using Apache Camel.

Date: November 6th, 2012 (moved due Sandy hurricane)
Time: 3:00 PM (Central European Time) - 10:00 AM (EDT)
Duration: 1h15m

This webinar will show you how to build integrated applications with open source Apache Camel. Camel is one of the most frequently downloaded projects, and it is changing the way teams approach integration. The webinar will start with the basics, continue with examples and how to get started, and conclude with live demo. We will cover
  • Enterprise Integration Patterns
  • Domain Specific Languages
  • Maven and Eclipse tooling
  • Java, Spring, OSGi Blueprint, Scala and Groovy
  • Deployment options
  • Extending Camel by building custom Components
  • Q and A
Before we open for QA at the end of the session, we will share links where you can go and read and learn more about Camel. Don’t miss this informative session!

You can register for the webinar at this link.


Apache Camel 2.11 - Neo4j and more new components

As usual the Camel community continues to be very active. For the upcoming Camel 2.11 release we have already five new components in the works

All five components started by members of the community, and not by people from the Camel team. For example the camel-neo4j, and camel-couchdb components is kindly donated to ASF by Stephen Samuel. Bilgin Ibryam contributed the camel-cmis component. And Cedric Vidal donated the camel-elastichsearch component. And lastly Scott Sullivan donated the camel-sjms component. 

Since then Scott and Bilgin has been invited into the Camel team, and both are Camel committers today. Scott will continue improved and work on camel-sjms. At this time we are looking for people who wanna give the current code a test-spin. It does take some time to harden this component to become as stable and good as the current camel-jms component. We anticipate this is ongoing work over the next couple of Camel releases.

You can click on the links in the bulleted list to get to the Camel documentation for each of these components, which has some sample code as well.

Also expect much improved CDI support from Camel in 2.11.

The current in-progress release notes of changes in Camel 2.11 can be seen here.

Thanks a lot to the very active Camel community and for people taking up the time to write components that benefit all of us. Keep up the great work.

And in case you did not know, Apache Camel comes with a lot of components out of the box. The screenshot below is a directory listing from my laptop with the trunk code.

Camel Components Galore

PS: There is 133 components.


When did Apache Camel have retry?

Ansgar Konermann asked me on twitter when Apache Camel had retry functionality (eg a common use-case is to retry in case of a failure).
@davsclaus since when/which version does Camel support retry processing? Spring Integration added it recently.
So I had a peak in the source code and the commits logs reveals the following

commit d0cba2ad2abda2a4e6a18b29a43f86405452f031
Author: James Strachan
Date:   Wed Mar 21 09:56:11 2007 +0000
    added an initial implementation of Dead Letter Channel
    git-svn-id: https://svn.apache.org/repos/asf/activemq/camel/trunk@520823 13f79535-47bb-0310-9956-ffa450edef68
James added support for redelivery on the initial Dead Letter Channel in Camel 1.0. So the answer to this question is that Apache Camel came with this functionality out of the box from the very first release. This just makes the first release even more impressive, than I have previously blogged about.

In Camel 1.1 James improved the error handler to add support for exception clauses (eg the onException) so you have fine grained redelivery policies. For example to instruct IOException to have longer and more redelivery attempts, and have your MyBusinessException to not redeliver at all.

That came as early as Camel 1.1. Impressive.

We have since of course further improved error handling and retry/redeliver functionality in Camel. For example you can configure whether Camel should block or use non-blocking while waiting until next redelivery attempt is being triggered.

Another functionality that I remember we (the Camel team) have discussed for a long time how to implement and provide in Camel is graceful shutdown. It turns out its much easier to startup an application than it is to stop/shutdown the application in a reliable manner.

So I took a stab at implementing this and it was provided in the Camel 2.2 release. That is nearly 3 years ago.

Author: Claus Ibsen
Date:   Sun Dec 20 12:27:04 2009 +0000
    CAMEL-1483: Camel now uses graceful shutdown when shutting down.
    git-svn-id: https://svn.apache.org/repos/asf/camel/trunk@892587 13f79535-47bb-0310-9956-ffa450edef68
Oh and if you want you can alter the redelivery settings at runtime using JMX. For example to adjust intervals etc. It can all be adjusted.


Apache ActiveMQ 5.7.0 Released

Today the Apache ActiveMQ team announced the immediate release of Apache ActiveMQ 5.7.0.

In this release I had a more active role than I usually has. So its with great please to see a release come out.

Dejan has posted some highlights of the 5.7.0 release at his blog. Among others is the official support for Java 7, and inclusion of the latest Camel 2.10.x release.

I will continue to help work on ActiveMQ and take on some of the things we have learned over the years from Camel to ActiveMQ. For example I plan to work on enlisting all the threads pool that are in use in the JMX registry, so you can gain better runtime insights into the threading usages.
In the 5.7.0 release I helped improved the thread names to be consistent and start with ActiveMQ. This should help people to quicker identify threads by its name.

There is much more work planned for ActiveMQ 5.8.0, for example we would like to reduce the dependencies on activemq-core, and move code into new separate modules. This allows people to better slice and dice how they want their ActiveMQ deployments.

And I plan to take a look at the ActiveMQ JIRA tracker, there is some low-hanging fruits in there, as well some older tickets which needs a bit attention.