Apache Camel 2.8 released

Its been a while since we released Apache Camel 2.7.0, on march 22nd 2011.
In between we have done three patch releases 2.7.1, 2.7.2 and 2.7.3.

So I am glad to say that Apache Camel 2.8.0 has been released. The binaries is synchronized to Apache central maven. And the Camel website will be updated in the near future with download links and release notes.

This release has a ton of great new features and improvements (as usual). A few things to point out. I have previously blogged about how we managed to speedup unit testing with Camel.

Two weeks ago James Strachan and I looked into improving how Camel discover type converters on startup. So we identified an improvement to avoid package scanning if not needed, which further optimizes Camel startup. This also helps run Camel on Java web start, and JBoss without the need for a special adapter.

David Valeri a new Camel committer (welcome onboard David), worked hard to make it much easier to setup TLS security in the various Camel components. Now you can configure SSLContext in the DSL.

We also improved testing using mocks, as you can replace a component directly with a MockComponent, and the uri of the endpoints will no longer complain about unknown parameters, as they previously did.

The restlet component has been upgraded to restlet 2.x and it supports the asynchronous routing engine.

Internal caches in Camel uses a soft reference cache which ensures the JVM can claim the memory if its running low on memory.

We have added two new maven archetypes for creating a new Camel project with Spring-DM or OSGi blueprint.

We have added more features to the AdviceWith feature you can use when unit testing Camel routes. Its now easier to add / remove / manipulate routes for testing. For example to tweak production like routes a tad before unit testing.

We added the option shareUnitOfWork to the Splitter EIP. This allows you to treat the entire split operation as a single unit of work, so in case of a rollback, the entire Exchange will rollback.

Exceptions thrown while handling other exceptions in OnException will now caught by a fallback error handler logging to 2nd exception and propagating the 2nd exception on the Exchange and causing that Exchange to break out processing and fail immediately. This avoids complications, what to do if a exceptions occur while handling a previous exception. For example you could end up going in circles. Now its predictable (Log the 2nd and fail).

And we optimized the internal routing engine in Camel to reduce the memory footprint used during routing.

Jean Baptiste a new Camel rider (welcome onboard Jean) added Camel shell commands to Apache Karaf, so you can view details about your Camel applications running in Karaf.

All the HTTP related components now support multi value HTTP headers.

And we have added 6 new components, and 2 new examples.

And for the Scala lovers we upgraded to latest Scala release, and adjusted the DSL slightly to use camel case naming, in the DSL.

The release notes has a ton more details about fixes, improvements and new features etc. As always make sure to read the notes before upgrading, as they contain information about API changes, and other changes that is important to know when upgrading.


Happy birthday Camel

This month the Apache Camel project turned 4 years old.

I wrote up a nice short summary of the lifetime of the project posted on the Camel front page (scroll a bit down), with some of the highlights. You can read much more about the birthday celebration at Apache.

Happy birthday Camel.