Camel 2.4.0 release (currently in progress)
New and Noteworthy
Welcome to the 2.4.0 release which approx XXX issues resolved (new features, improvements and bug fixes such as...)
- Fully non blocking asynchronous routing engine which various EIP and Camel Components supports.
- Fixed a potential dead-lock when using Aggregator with timeout completion set.
- The camel-spring module now supports OSGi out of box, which renders camel-osgi as @deprecated.
- Added new <contextScan> to scan the Registry for RouteBuilder instances, just as scanning the classpath etc.
- Manually started routes is now also Graceful Shutdown by Camel
- Fixed issue using RouteContextRef with multiple CamelContext from the same Spring ApplicationContext.
- Bindy now supports Fixed-Length format message with padding, alignment (Left or Right)
- Improved and fixes some issues with the FTP component.
- Improved and fixed some issues using MultiPartForm with Jetty.
- Add ability to configure Bindy to remove whitespace when binding Numeric positions
- Added option useOriginalBody to OnCompletion
- Fixed issue when using mockito for testing when it uses CGLib proxies
- Fixed issue with @Consume not running in an unit of work to ensure callbacks is invoked when its done
- Routing Slip now uses _expression_ to define the slip. This is similar to the Recipient List pattern
- The security context can be passed from CXF to other camel Components.
- ManagementAgent settings can now be set using setters from Java, instead of having to use JVM system properties. See tip in Camel JMX wiki page.
- Resequencer in batch mode has two new options allowDuplicates and reverse which allows you to use it for re-ordering messages from JMS queues based on JMSPriority
- Tighten up the ProducerTemplate API a bit, see more details in the section Important changes to consider when upgrading.
- HTTP now better supports sending binary files.
- Fixed problem with using Quartz in OSGi and having Camel applications being hot-deployed which potentially could cause Quartz to stop scheduling in applications which haven't been stopped.
- Fixed issue with pausing and resuming jobs when running Quartz in clustered mode
- Added options on Quartz component to specify location of custom quartz.properties file to load from classpath.
- Upgraded to latest Quartz release 1.8.3.
- Introduced StartupListener to allow components/endpoints/producers/consumers etc. as a listener to be notified when CamelContext have just been started. This allows any custom logic to be executed as a late starter. This ensures Quartz scheduler is only started when all the routes and so forth is started and running.
- Fixed issue with FTP not sending absolute paths in the starting directory when logging into FTP server.
- EJB to access EJB beans in a similar way as with the Bean component
- Class to invoke beans defined using the fully qualified class name
New DSL
New Annotations
API breaking
The ToAsync has been removed and replaced with a better asynchronous routing engine.
Routing Slip now requires using _expression_ to specify the routing slip header, the XML DSL of Routing Slip is broken.
<route>
<from uri="direct:a"/>
<routingSlip ignoreInvalidEndpoints="true">
<header>myHeader</header>
</routingSlip>
</route>
Known Issues
The Tracer may not output all details for some situations such as when using onCompletion or intercept etc.
Not all Examples have ANT build.xml files to run the example using ANT.
Important changes to consider when upgrading
IntrospectionSupport has been improved to be consistent for getProperty and getProperties. Also getProperties now find all relevant properties. This will often only be relevant for Camel end users who build their own components any may use IntrospectionSupport.
The ProducerTemplate have been tighten up a bit. All send/request -body methods will now throw a CamelExecutionException with the cause wrapped. This ensures its consistent.
The ftps is now using secure data channel also when transferring files. There has been added some options which you can use to control the behavior and turn it off if you want the old behavior (only secure login).
The FTP does not strip leading / in the starting directory, which means it now can send absolute starting paths which is expected by most FTP servers.
The default port from ftps has been changed from 2222 to 21.
Getting the Distributions
Binary Distributions
![]() | The above URLs use redirection The above URLs use the Apache Mirror system to redirect you to a suitable mirror for your download. Some users have experienced issues with some versions of browsers (e.g. some Safari browsers). If the download doesn't seem to work for you from the above URL then try using FireFox |
Source Distributions
Getting the Binaries using Maven 2
To use this release in your maven project, the proper dependency configuration that you should use in your Maven POM is:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-core</artifactId>
<version>2.4.0</version>
</dependency>
SVN Tag Checkout
Changelog
For a more detailed view of new features and bug fixes, see the:
TODO: Fix for 2.4.0