|Apache Camel reaches impressive 2.10 release|
The Camel 2.10 release marks a major milestone, not only, its the 10th release on the 2.x baseline, but this release officially supports Java 7. The Camel team have worked hard to ensure this release works well on both Java 6 and 7; which hasn't been a trivial task to ensure. Most noticeably is the fact that Java6 and 7 JRE ships with different versions of JAXB that were not immediately compatible.
Spring 3.1 is also official supported, and we have a dedicate test suite running on the Apache CI servers doing a full test run using Spring 3.1.
The Camel test kit have been improved by moving the Spring support into a new camel-test-spring component, which means camel-test is a pure Java based test kit (for non Spring users). There is great news for OSGi Blueprint users, as we have introduced a new camel-test-blueprint component for easy unit test with OSGi Blueprint. I have previously blogged about this.
We have also empowered the Camel test kit by making it easier to stub endpoints, or use the auto mock functionality, which now makes it even easier to skip sending to the target endpoint, using the new isMockEndpointsAndSkip method from CamelTestSupport.
The Camel Maven Archetypes got some love. We improved the blueprint archetype which now leverages the new camel-test-blueprint for unit testing. Likewise the camel:run plugin supports running Blueprint projects as well. The java archetype now creates a pure java project (without Spring). And for Scala enthusiasts we have new archetypes for creating new Scala based components and data formats. Also the archetypes now generates a sample unit test as well.
For managing Camel applications with JMX we have improved this to make it much easier to control and lock down the JMX namings of your Camel apps. I have previously blogged about this in detail. Likewise we have ensured that all the Camel EIPs is enlisted in JMX and offers utilization statistics. And we now have aggregate route statistics on the CamelContextMBean for all your routes.
For people using the file and/or ftp component, we now allow you to bridge exceptions happening when trying to pickup new files with the regular Camel error handler from your routes. This can now be done easily by enabling the consumer.bridgeErrorHandler option.
We also now allows you to configure a shared thread pool for your file/ftp routes (consumers), using the new scheduledExecutorService option. This can reduce the number of threads used in your JVM, if you have a lot of file based routes.
For people using Spring property placeholders, we can now bridge to that from Camel, using the new BridgePropertyPlaceholderConfigurer bean which means you do not have to explicit setup Camel property placeholder as well. The caveat is that you must define this as a Spring
as Spring Framework is not flexible allowing 3rd parties to integrate more seamless with its property resolver.
So I have saved the best for the last. The Camel community continues to kick-ass, and for this release we have a record high of 18 new components. For example we now support dynamoDB in the AWS components. We also now supports the popular MongoDB database, and you can have fun with the new Twitter and websocket components. There is also a new component for integration with Spring Batch. And if you need CSV / flatfile support then BeanIO is worth a look as well.
And really existing is the new camel-cdi component which we will continue to expand.
The 2.10 release notes have more details whats included, as well a list of all the new components.
The Camel team will continue with Camel 2.11, and keep doing patch releases as well. However with 2.10 being released, then we will slowdown on the 2.8 release, to comply with our statement that we active support the last 2 minor release branches.