Camel 2.0.0 release

New and Noteworthy

Welcome to the 2.0.0 release which approx 760 issues resolved (new features, improvements and bug fixes such as...)

New Enterprise Integration Patterns

New Components

New DSL

New Annotations

New Data Formats

New Languages

New Examples

API breaking

Core API

Specialized Exchange

All specializations of org.apache.camel.Exchange are now removed. You should use org.apache.camel.impl.DefaultExchange. Although it looked like a good idea initially we recognized that the specialized Exchanges were not really necessary and by removing them we can avoid a lot of unnecessary copying and improve throughput.

Fault and Out Consolidation

The get/set Fault apis on the Exchange are now removed. Faults represent application specific errors and are recognized by some protocols. As a result Camel treats faults as out in an exchange. The org.apache.camel.Message interface has not a get/setFault(boolean) api to identify out messages that represent in fact a fault.
Since Faults represent persistent errors (as opposed to exceptions that represent transient errors) Camel does not try (as in previous versions) to recover from them (i.e. the error handler does not trigger) unless handling faults as exceptions is explicitly enabled.

Exchange copy() api

We also consolidated redundant copy related apis in org.apache.camel.Exchange as they were pretty much doing the same thing. The following two apis were removed newInstance(), copyFrom(Exchange). copy(boolean) found a better home at org.apache.camel.util.ExchangeHelper.

Client API

Routes

The org.apache.camel.Routes interface have been renamed to org.apache.camel.RoutesBuilder and having a more precise and simpler interface.
This only affects advanced users that implement their own route builder integration with Camel from a foreign languages such as Ruby etc.

StreamCache

Stream caching is now default disabled. If you use streams and want Camel to cache the stream in case you for instance use Camel to do redeliveries then you must enable stream cache so the stream can be re-read on delivery.

AggregationStrategy

The payload is now always only stored in IN when you do custom aggregation using this strategy interface.
Before the payload could also be in OUT and it could be confusing where to get the real payload you should use.

ProducerTemplate

The sendBody methods now return void for InOnly messaging. Use requestBody if you want InOut messaging.

AggregationStrategy

The aggregate method is now also invoked on the very first exchange. Allowing the end users to be in full power.
At this first invocation the oldExchange parameter is null.

Notable changes to DSL

Components

Known Issues

See known issues from previous releases.

If you have multiple Mail endpoints and defined recipients on these endpoints, Camel could mixup and only use the recipients defined on the last endpoint. See more at CAMEL-2232.

Important changes to consider when upgrading

If you specialized existing components and used specialized org.apache.camel.Exchange classes, your code will need updating to use org.apache.camel.impl.DefaultExchange instead.

The default error handler is no longer Dead Letter Channel but DefaultErrorHandler that by default do not try to redeliver.

Getting the Distributions

Binary Distributions

Description

Download Link

PGP Signature file of download

Windows Distribution

apache-camel-2.0.0.zip

apache-camel-2.0.0.zip.asc

Unix/Linux/Cygwin Distribution

apache-camel-2.0.0.tar.gz

apache-camel-2.0.0.tar.gz.asc

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

apache-camel-2.0.0-src.zip

apache-camel-2.0.0-src.zip.asc

Source for Unix/Linux/Cygwin

apache-camel-2.0.0-src.tar.gz

apache-camel-2.0.0-src.tar.gz.asc

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.0.0</version>
</dependency>

SVN Tag Checkout

svn co http://svn.apache.org/repos/asf/camel/tags/camel-2.0.0

Changelog

For a more detailed view of new features and bug fixes, see: