Camel 2.8.0 release (currently in progress)
New and Noteworthy
Welcome to the 2.8.0 release which approx XXX issues resolved (new features, improvements and bug fixes such as...)
- Fixed the OGNL support of Simple language to support dots in key for map access.
- You can now specify type parameters in Bean to exact select method to be used when having overloaded methods (overloaded methods have same name, but vary in parameter types).
- The SFTP component now allows you to customize keep alive settings.
- Fixed issue if explict setting
JmsMessage
body tonull
would cause Camel to re-initialize the body from the underlyingjavax.jms.Message
on access again. - Mock endpoints is now lenient, which means its easier to replace components with Mock for testing purposes. Using uri parameters which the Mock endpoint wont no longer complain about being unknown parameters.
- Camel places a breadcrumb header in the Camel Message which allow us to keep track of messages across transports such as JMS, HTTP and many others. See more details at MDC logging.
- Improved XPath to allow GC to kick-in a bit earlier to free memory as Camel will clear references to used Exchanges used during XPath evaluations.
- Fixed an issue using FTP endpoints with the interceptSendToEndpoint
- Camel Proxy supports asynchronous invocations using
Future
handles. - The endpoint cache can be configured on CamelContext.
- Cometd supports custom security policy and extensions as documented here
- Caches such as
ProducerCache
andEndpointRegistry
can now be purged from JMX. - Added stats for number of redeliveries and handled failures to JMX.
- Added support for JBoss 6.
- JMS consumer uses
CACHE_AUTO
for default cache level. This ensure that it will automatic detect if its transacted and useCACHE_NONE
which must be used for transacted. AndCACHE_CONSUMER
for non transacted. - Improved Splitter in parallel mode to be more responsive when aggregating on-the-fly under high load, and reducing number of threads in-use.
- Added
onPrepare
to Multicast, Splitter, Recipient List, and Wire Tap to execute custom logic when preparing messages. For example you can use that to deep clone message bodies, or enrich messages before they are processed. - Added
CamelSqlQuery
header to SQL Component to specify (per exchange) SQL query. camel-cache
now works in OSGi.- Fixed an issue with HawtDB file store growing to large.
- Added
repeatCount
option to Timer so you can limit the number of times it fires. - Consuming from JMS will now uses default exchange ids, instead of overring and uses ids based on
JMSMessageID
. This makes exchange ids consistent with all components in Camel. - The
camel-script
component now works in OSGi and being able to discover and useScriptEngineFactory
from bundles. - Restlet producer now supports the Asynchronous Routing Engine
- Throttler now uses an Expression for the maximum messages per period, which means it can be adjusted dynamic at runtime.
- Cache now supports replicating cache across nodes using listeners.
- Cache headers are now prefixed with 'CamelCache' and use mixed case, also they are removed from the exchange after a cache operation is performed
- Fixed issue with XMPP being redeployed (hot-deploy) in Apache ServiceMix may fail.
- CXF uses case-insensitive keys for CXF protocol headers, which Apache CXF itself also uses.
- Fixed issue with stopping context scoped Error Handler if a route was stopped, for example using JMX.
- Updated documentation of each EIP to include a table with the options they support.
- Improved the AWS-SQS, AWS-SNS and AWS-S3 components to be able to configure the region with which the Amazon client wants to work with.
- The
testConnectionOnStartup
option on JMS now also checks JMS producers as well. - Upgraded Cometd from 1.0.1 to 2.1.0
- Message Filter EIP now fail on startup if it was mis-configured in XML DSL
- Fixed issue with Content Based Router in Scala DSL not evaluating as Predicates.
- Improved the JDBC component to not leave the database in an inconsistent state if one of multiple updates fails.
- Fixed issue with JMS consumer may report a class cast exception at WARN level during processing a message.
- Removed not needed type conversion attempts by
camel-jaxb
, when routing messages to Beans, for JAXB annotated payloads - Optimized routing with Bean slightly
- Fixed an issue when restarting routes with scheduled polling consumers having
consumer.xxx
properties configured. Theconsumer.xxx
properties would be lost on restart. - Added fallback to File component, to do a copy/delete if a native file rename fails. This may happen if you rename files between different file systems such as linux -> shared windows directory.
- Minor improvements to Scala DSL
New Enterprise Integration Patterns
New Components
DSL Changes
- Wire Tap has now fluent builders in Java DSL to make it easier to configure.
- Wire Tap can now set headers directly in the DSL when using the send new message mode.
- Added
skipDuplicate
option to Idempotent Consumer EIP to allow end users to handle duplicate messages more easily in Camel routes. - Throttler now uses an Expression to set the maximum requests per period, allow that to be dynamic evaluated at runtime. This means you need to migrate if you use XML DSL.
New Annotations
New Data Formats
New Languages
New Examples
New Tutorials
API breaking
- Added
purge
method toServicePool
- If you use Wire Tap from within a Content Based Router in Java DSL, then you need to use
end()
to indicate the end of the Wire Tap. See this test WireTapDefinition
no longer extends fromSendDefinition
- Removed
maximumRequestsPerPeriod
attribute on <throttle> in XML DSL. You should use an Expression instead, such as<constant>10</constant>
- Cache headers are now prefixed with 'CamelCache' (see CacheConstants) and are removed from the exchange after the cache operation is performed
- Scala DSL uses 'Camel case names' for its DSL to be consistent and aligned with the Java DSL
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.
- The project cannot fully build the site using Maven (eg running
"mvn site"
. There is no plan to make this work as the project do not use the maven site. - The
camel-spring-ws
feature does not work in Apache ServiceMix or Apache Karaf.
Important changes to consider when upgrading
- Upgraded to slf4j 1.6.1
- Upgraded to Apache CXF 2.4.0 (CXF 2.3.x or older is no longer supported)
- The
testConnectionOnStartup
option on JMS now also checks JMS producers as well.
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.8.0</version> </dependency>
SVN Tag Checkout
svn co http://svn.apache.org/repos/asf/camel/tags/camel-2.8.0
Changelog
For a more detailed view of new features and bug fixes, see the: