Camel 2.6.0 release (currently in progress)
New and Noteworthy
Welcome to the 2.6.0 release which approx XXX issues resolved (new features, improvements and bug fixes such as...)
- Fixed issue in OSGi with refreshing Camel bundles causing a race condition when discovering type converters
- Introduced ScheduledRoutePolicy with the Quartz component
- Java DSL RouteBuilder now fails if
onException
and the likes are not configured before routes, which they must. - Easier to debug routes from
camel-test
using the Debugger - Fixed problem installing
camel-cxf
feature on Apache Karaf. - The EIP now supports property placeholders in the
String
based options (a few spots in Java DSL where its not possible). For example:<convertBodyTo type="String" charset="{{foo.myCharset}}"/>
- Introduced ScheduledRoutePolicy to allow you to schedule when routes should be active.
- Introduced
stepwise
option to FTP component to allow end users to control how to traverse directories of the FTP servers. This allows you to setstepwise=false
to return back to the behavior from Camel 2.0 - 2.4. See more at the FTP documentation. - Added
separator
option to FTP component to allow end users to control what path separator to use when uploading files to remote FTP servers. For example if a Windows based FTP server only accept Windows paths, then you can set this option toWindows
. - Thread names now outputs CamelContext name which makes it easier to differentiate when running multiple Camel applications in the same JVM.
- Introduced
contentCache
option to XSLT component to allow easy reloading of stylesheets during development. - Improved Camel JMX to always find next free name when registering in JMX and existing name exists (to remedy name clash). This makes it easier when deploying muliple WARs in the same JVM where the Camel applications may have same CamelContext id. In OSGi the name in JMX now has the bundle id as prefix.
- Fixed BeanShell language
- Quartz now supports using older versions (eg versions 1.6/1.7) of quartz JARs.
- The Aggregator EIP will use a synchronous invocation when processing completed aggregated Exchanges, when not running in parallel mode. This ensures no internal task queue is used, which otherwise could stack up tasks and under certain conditions eat up memory. Enable
parallelProcessing
if you want to use a separate thread for processing completed aggregated Exchanges. - LDAP supports paging.
- CXF and CXFRS use the CXF continuation API when using CXF 2.3.x.
- Fixed a rare situation in which an Exchange could be lost during graceful shutdown on the SEDA endpoints, usually more apparent on high volume systems.
- Improved support for Locale in Bindy for Number and Date formats.
- Fixed Multicast, Splitter, Recipient List to work as the Pipes and Filters would do, breaking to continue routing if a sub exchange failed and was handled by an Exception Clause. Previously you would have to detect this manually in the
AggregationStrategy
. - Constant fields from Exchange can be referred in the DSL from a String attribute using the class type style. This makes the Java DSL and Spring XML more similar. And you got type safe as Camel throws exception if you had a typo.
For example:<setHeader headerName="Exchange.FILE_NAME"><constant>myfile.txt</constant></setHeader>
- Exchange now contains the creation timestamp when it was created as a
java.util.Date
object stores as a property with the keyExchange.CREATION_TIMESTAMP
- Camel fails fast on startup if Load Balancer has been misconfigured, such as configuring two different load balancers in one
- Fixed
markRollbackOnlyLast
when used with inner/outer transactions. InterceptStrategy
is now default ordered in the order they are added to the CamelContext. However you can dictate the order by implementing theorg.apache.camel.util.Ordered
interface.- Made it easier to load routes from XML files using
loadRoutesDefinition
method from CamelContext. - Added support for custom multipart filters in Jetty.
- Using Processor in routes is now also enlisted in JMX for management.
- The ObjectName for
processor
in JMX is now always using the node id it has been assigned in the route. - Using a custom Processor which are
ManagementAware
will be enlisted in JMX having its custom attributes/operations listed. For example just use the Spring JMX annotations to easily expose the attributes/operations.
New Enterprise Integration Patterns
New Components
New DSL
New Annotations
New Data Formats
New Languages
New Examples
New Tutorials
API breaking
camel-test
JAR in theCamelSpringTestSupport
classes now returns a more genericAbstractApplicationContext
type in thecreateApplicationContext
method.- Added
prepareShutdown
method toShutdownAware
SPI interface.
Known Issues
- The Tracer may not output all details for some situations such as when using
onCompletion
orintercept
etc. - Not all Examples have ANT build.xml files to run the example using ANT.
- Project cannot be fully build using Maven 3.0
- One may encounter build errors in camel-ftp with java versions older than "1.5.0_24"
- Dozer does not work in OSGi
camel-blueprint
is not fully feature complete (such as @Producer, @Consume is not supported)camel-blueprint
using <package> scan does not work
Important changes to consider when upgrading
- Upgraded to Spring 3.0.5
- Upgraded to Apache CXF 2.3.0 (although CXF 2.2.11 is still supported)
- Upgraded to Jetty 7.2.0.v20101020
- The Java DSL now enforces
onException
and the likes to be defined before routes, if not Camel will fail starting the route. - The Aggregator EIP will use a synchronous invocation when processing completed aggregated Exchanges, when not running in parallel mode. This ensures no internal task queue is used, which otherwise could stack up tasks and under certain conditions eat up memory. Enable
parallelProcessing
if you want to use a separate thread for processing completed aggregated Exchanges. - Camel now fails fast if staring a
LifecycleStrategy
fails on startup. For example if there is issue with JMX that will now cause Camel to not startup at all. If you have trouble with JMX before you can disable JMX on Camel and allow it to startup.
Getting the Distributions
Binary Distributions
Description |
Download Link |
PGP Signature file of download |
---|---|---|
Windows Distribution |
||
Unix/Linux/Cygwin Distribution |
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
Description |
Download Link |
PGP Signature file of download |
---|---|---|
Source for Windows |
Source for Unix/Linux/Cygwin |
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.6.0</version> </dependency>
SVN Tag Checkout
svn co http://svn.apache.org/repos/asf/camel/tags/camel-2.6.0
Changelog
For a more detailed view of new features and bug fixes, see the: