Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Camel

...

2.5.0 release

release (currently in progress) {div:style=} !http://camel.apache.org/download.data/camel-box-v1.0-150x200.png! {div} {div:style=min-height:200px} {div} h2. New and Noteworthy Welcome to the 2.5.0 release which approx XXX issues resolved (new features, improvements and bug fixes such as...) * Added {{suspend/resume}} operations to [CamelContext] for _warm_ restarts, or as the preferred way to temporary stop a running Camel application, and then later resume it. Those operations is also available in [JMX|Camel JMX]. * Improved management of routes in [JMX|Camel JMX]. You can now suspend/resume routes which support suspension. There is a new {{removeRoute}} to remove a route from [JMX|Camel JMX]. Routes with {{autoStartup=false}} is now also listed in [JMX|Camel JMX], to allow you to start the routes manually. * The [Asynchronous Routing Engine] allows to be forced into synchronous mode for certain components, by specifying {{synchronous=true}} in the endpoint uri. * [FTP|FTP2] now supports MSV file systems. The ftp consumer will now traverse the directory structure using a {{cd <dir>, list files in cur dir}} pattern, as opposed to a {{list files <dir>}} style. * [FTP|FTP2] improved support for consuming using absolute paths. * Fixed issue with using multiple [HTTP] endpoints with the only difference being {{httpClient}} parameters. * Fixed issue with [Stream Caching] and deleting temporary files on Windows. * Server thread pool settings can be configured on [Jetty] component. * Easier to configure general HTTP/SSL socket connector properties on [Jetty] component. * Fixed issue with sending an {{InOut}} message to [Dead Letter Channel] would cause Camel to expect a reply. Now the message will always be send to the DLQ as {{InOnly}}. * Fixed issue when sending to a [JMS] destination, the option {{disableReplyTo}} was not used. * Added two new functions to [XPath] to leverage [Properties] component and [Simple] language. * Fixed issue when running [Jetty] server under heavy load throwing {{IllegalStateException}} * [JMS] uses [Asynchronous Routing Engine] for [Request Reply] messaging over JMS. * Fixed issue with a route could mistakenly pick up a route scoped [OnException|Exception Clause] from another route. * Fixed an issue with starting {{CamelContext}} after it had been shutdown, leading to routes not properly being re-initialized and started. * The [File|File2] and [FTP|FTP2] consumers now support using {{preMove}} together with either {{noop}} or {{delete}} options. * Added support for {{timeout}} in [Recipient List], [Splitter] and [Multicast] EIPs when running in parallel mode. * Added support for 3rd part [UuidGenerator]. * Reverted back to use ActiveMQ [UuidGenerator] as default generator. Its faster than the previous {{JavaUuidGenerator}}, especially in high concurrent systems. * [Velocity] can now find template files from filesystem/classpath when referring to them from other templates. * Fixed issue with multiple [CamelContext] using same id being mixed as single [CamelContext] in [JMX|Camel JMX]. Camel now fails to start if existing [CamelContext] already have been registered in the MBeanServer. * The [Message Filter] EIP now stores a property on the [Exchange] to indicate if it was filtered or not. * [FTP|FTP2] supports sending site commands after successful login. * [Simple] language can now compare numeric values which was entered as String types. * Fixed limitation where [PollEnrich|Content Enricher] could not poll from a file endpoint if the route started from a file endpoint as well. * Fixed limitation with [Simple] language, before you could only use one {{and}} or {{or}} operator. Now you can use multiple operators in the same expression. * [Restlet] component now supports using \{ \} placeholders in uri, which gets replaced with headers from [Exchange]. * Added {{dynamicRouter}} to the DSL to make it easier to do dynamic routing using a [Bean] to evaluate _on-the-fly_ the next destination(s). * When sending a [JMS] message using InOnly but having a {{JMSReplyTo}} header configured, then the {{JmsProducer}} will lookup/create the JMS Destination to ensure its a valid {{JMSReplyTo}} from the header. * Endpoint uris containing password is not logged in plaintext, but is now masked. * [Properties] can now leverage [Jasypt] allowing you to use encrypted values in your properties files. * Trimmed down the size of the [Web Console] reducing the number of jars and removing the groovy experimental editor. It now requires JDK 1.6 to run as well. We will in the future improve the [Web Console] to contain more features and information. * Added new [Language] component to execute [Languages] scripts when sending a message to a {{language}} endpoint. This makes it easier to support [Dynamic Router] where small pieces of logic must be executed as well. * Added {{charset}} option on the [File|File2], [FTP|FTP2] endpoint which dictates the encoding to use. * [CXF|CXF] consumer and [CXFRS|cxfrs] consumer will try to leverage CXF continuation API to call the camel process asynchronous API if it is possible, and you can turn it off by setting the {{synchronous}} option to {{true}}. * [CXF Bean Component] now supports using customer providers configured by the {{providers}} option on the [CXFRS] endpoint. * Fixed {{ConsumerTemplate}} using {{receiveBody}} methods to complete [OnCompletion] beforehand. For example when using a [File|File2] endpoint and having set {{delete=true}}, which now causes the file to be deleted. * Fixed [HawtDB] not working in OSGi * Fixed dependency injection between {{<bean>}} and {{<camelContext>}}, making it work as it did with Spring 2.5 when using Spring 3.0 instead. The {{<bean>}} will be dependency injected before the {{<camelContext>}}. * Optimized [Type Converter] when using [Jetty] routing and/or conversions to {{String}} types which will fallback and lookup {{PropertyEditor}} editors. * Added {{LimitedPollingConsumerPollStrategy}} for [Polling Consumer]s as a limited strategy which suspends consumers which causes consecutive failures. For example to avoid a faulty consumer to spam logs etc. Uses a limit of 3. * Fixed [Jetty] sending back HTTP headers using keys is lower-case. Not it preserves the case of the keys, so it can be mixed case. * Added $simple{ } as alternative syntax for tokens in the [Simple] language to avoid clashing when using Springs {{PropertyPlaceholderConfigurer}}. See example at the [File|File2] language page. * Added {{discardOnCompletionTimeout}} option to [Aggregator|Aggregator2] * Introduced [ScheduledRoutePolicy] to allow you to schedule when routes should be active. * Fixed concurrency issue when using predicates using binary operators such as {{isEqualTo}}. * Total overhaul of the [QuickFix] component. Thanks to the [QuickFix|http://www.quickfixengine.org/] community for help. * [CXFRS] producer now leverages fallback type converter which means its much easier for end users to grab the response body in a type they want. * [Mail] component now supports specifying emails using {{"Ibsen, Claus" <davsclaus@apache.org>}} style. * The [EIP] now supports [property placeholders|Properties] in the {{String}} based options (a few spots in Java DSL where its not possible). For example: {code:xml}<convertBodyTo type="String" charset="{{foo.myCharset}}"/>{code} * Fixed issue with [FTP|FTP2] which could cause the polling to stop without any hint in the logs why. * Added {{publishedEndpointUrl}} option into the [CXF|CXF] component. * {{DefaultPackageScanClassResolver}} supports to configure the url schemes by using Spring configuration. To cater for Server's using custom classloader schemes in URLs. * Added option {{lazyLoadTypeConverters}} to [CamelContext] to configure if type converters should be loaded lazy or on startup (default). h3. New [Enterprise Integration Patterns] * [Dynamic Router] is now available in the [DSL] as well. h3. New [Components] * [Db4o] * [Language] * [Jasypt] * [Shiro Security] * [Sip] * [QuickFix] (total overhauled) h3. New DSL * [Dynamic Router] h3. New Annotations * {{@DynamicRouter}} h3. New [Data Formats|Data Format] h3. New [Languages] h3. New [Examples] * {{camel-example-reportincident-ws-security-osgi}} * [CXF Proxy Example] * [CXF Tomcat Example] h3. New [Tutorials] h2. API breaking * Some methods on the [File|File2] and [FTP|FTP2] endpoint/producer has been promoted from {{protected}} to {{public}} to make it easy from Java code to re-use the functionally of those methods, without using it as a Camel component. Such as when you want to communicate with a FTP server using the API from the {{RemoteFileOperations}}. * Added {{changeToParentDirectory}} method to {{GenericFileOperations}}. h2. 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. * 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" h2. Important changes to consider when upgrading * Support for [JMS] API 1.0.2 has been removed. * The {{stopRoute}} method on {{CamelContext}} now leverages [Graceful shutdown] when stopping. This is more intuitive to stop routes in a graceful and safe manner. You can the stop method with a timeout if you want to force stopping, which was the old behavior. * The [Web Console] now requires JDK 1.6 as minimum to run. * The artifacts {{camel-core-tests.jar}} and {{camel-spring-tests.jar}} has been *deprecated* and will be removed in a future release. You should always only use the {{camel-test.jar}} if you want to use the Camel Test Kit. * Camel will now fail to startup if an existing CamelContext has been registered in JMX with the same id. * If you did not set a id on {{<camelContext>}} it would have defaulted to {{camelContext}}. This has been changed to be the auto assigned name it's given by Camel, such as {{camel-1}}, {{camel-2}} etc. * Maven version 2.2.1 or better is now required to build Camel from source. * If using [Quartz] with jobs persisted in a database, then mind that Camel now resolves job names based on endpoint uri, _without_ parameters. This allows you to change cron parameters on the same job (reschedule jobs). * The {{timeout}} option on [Netty] has been removed as it was flawed. * Durable topic subscribers with [JMS] must now provide {{clientId}}, otherwise Camel will fail fast on startup. * The default [UUidGenerator] has been changed back to be ActiveMQ based. If you run in the cloud you may have to configure to use the old default {{JavaUuidGenerator}} as the ActiveMQ may use JDK API which is not accessible in the cloud. * If you use the [FTP|FTP2] component (consumers) make sure to test it throughly as it has changed how it traverse the file structure. * Upgraded to Spring 3.0.4 * Upgraded to CXF 2.2.11 h2. Getting the Distributions h3. Binary Distributions || Description || Download Link || PGP Signature file of download || | Windows Distribution | [apache-camel-2.5.0.zip|http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.5.0/apache-camel-2.5.0.zip] | [apache-camel-2.5.0.zip.asc|http://www.apache.org/dist/camel/apache-camel/2.5.0/apache-camel-2.5.0.zip.asc] | | Unix/Linux/Cygwin Distribution | [apache-camel-2.5.0.tar.gz|http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.5.0/apache-camel-2.5.0.tar.gz] | [apache-camel-2.5.0.tar.gz.asc|http://www.apache.org/dist/camel/apache-camel/2.5.0/apache-camel-2.5.0.tar.gz.asc] | {info:title=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|http://www.mozilla.com/en-US/firefox/] {info} h3. Source Distributions || Description || Download Link || PGP Signature file of download || | Source for Windows | [apache-camel-2.5.0-src.zip|http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.5.0/apache-camel-2.5.0-src.zip] | [apache-camel-2.5.0-src.zip.asc|http://www.apache.org/dist/camel/apache-camel/2.5.0/apache-camel-2.5.0-src.zip.asc] | | Source for Unix/Linux/Cygwin | [apache-camel-2.5.0-src.tar.gz|http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.5.0/
Div
style
padding-right:20px;float:left;margin-left:-20px;

Image Added

Div
stylemin-height:200px

New and Noteworthy

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

  • Added suspend/resume operations to CamelContext for warm restarts, or as the preferred way to temporary stop a running Camel application, and then later resume it. Those operations is also available in JMX.
  • Improved management of routes in JMX. You can now suspend/resume routes which support suspension. There is a new removeRoute to remove a route from JMX. Routes with autoStartup=false is now also listed in JMX, to allow you to start the routes manually.
  • The Asynchronous Routing Engine allows to be forced into synchronous mode for certain components, by specifying synchronous=true in the endpoint uri.
  • FTP now supports MSV file systems. The ftp consumer will now traverse the directory structure using a cd <dir>, list files in cur dir pattern, as opposed to a list files <dir> style.
  • FTP improved support for consuming using absolute paths.
  • Fixed issue with using multiple HTTP endpoints with the only difference being httpClient parameters.
  • Fixed issue with Stream caching and deleting temporary files on Windows.
  • Server thread pool settings can be configured on Jetty component.
  • Easier to configure general HTTP/SSL socket connector properties on Jetty component.
  • Fixed issue with sending an InOut message to Dead Letter Channel would cause Camel to expect a reply. Now the message will always be send to the DLQ as InOnly.
  • Fixed issue when sending to a JMS destination, the option disableReplyTo was not used.
  • Added two new functions to XPath to leverage Properties component and Simple language.
  • Fixed issue when running Jetty server under heavy load throwing IllegalStateException
  • JMS uses Asynchronous Routing Engine for Request Reply messaging over JMS.
  • Fixed issue with a route could mistakenly pick up a route scoped OnException from another route.
  • Fixed an issue with starting CamelContext after it had been shutdown, leading to routes not properly being re-initialized and started.
  • The File and FTP consumers now support using preMove together with either noop or delete options.
  • Added support for timeout in Recipient List, Splitter and Multicast EIPs when running in parallel mode.
  • Added support for 3rd part UuidGenerator.
  • Reverted back to use ActiveMQ UuidGenerator as default generator. Its faster than the previous JavaUuidGenerator, especially in high concurrent systems.
  • Velocity can now find template files from filesystem/classpath when referring to them from other templates.
  • Fixed issue with multiple CamelContext using same id being mixed as single CamelContext in JMX. Camel now fails to start if existing CamelContext already have been registered in the MBeanServer.
  • The Message Filter EIP now stores a property on the Exchange to indicate if it was filtered or not.
  • FTP supports sending site commands after successful login.
  • Simple language can now compare numeric values which was entered as String types.
  • Fixed limitation where PollEnrich could not poll from a file endpoint if the route started from a file endpoint as well.
  • Fixed limitation with Simple language, before you could only use one and or or operator. Now you can use multiple operators in the same expression.
  • Restlet component now supports using { } placeholders in uri, which gets replaced with headers from Exchange.
  • Added dynamicRouter to the DSL to make it easier to do dynamic routing using a Bean to evaluate on-the-fly the next destination(s).
  • When sending a JMS message using InOnly but having a JMSReplyTo header configured, then the JmsProducer will lookup/create the JMS Destination to ensure its a valid JMSReplyTo from the header.
  • Endpoint uris containing password is not logged in plaintext, but is now masked.
  • Properties can now leverage Jasypt allowing you to use encrypted values in your properties files.
  • Trimmed down the size of the Web Console reducing the number of jars and removing the groovy experimental editor. It now requires JDK 1.6 to run as well. We will in the future improve the Web Console to contain more features and information.
  • Added new Language component to execute Languages scripts when sending a message to a language endpoint. This makes it easier to support Dynamic Router where small pieces of logic must be executed as well.
  • Added charset option on the File, FTP endpoint which dictates the encoding to use.
  • CXF consumer and CXFRS consumer will try to leverage CXF continuation API to call the camel process asynchronous API if it is possible, and you can turn it off by setting the synchronous option to true.
  • CXF Bean Component now supports using customer providers configured by the providers option on the CXFRS endpoint.
  • Fixed ConsumerTemplate using receiveBody methods to complete OnCompletion beforehand. For example when using a File endpoint and having set delete=true, which now causes the file to be deleted.
  • Fixed HawtDB not working in OSGi
  • Fixed dependency injection between <bean> and <camelContext>, making it work as it did with Spring 2.5 when using Spring 3.0 instead. The <bean> will be dependency injected before the <camelContext>.
  • Optimized Type Converter when using Jetty routing and/or conversions to String types which will fallback and lookup PropertyEditor editors.
  • Added LimitedPollingConsumerPollStrategy for Polling Consumers as a limited strategy which suspends consumers which causes consecutive failures. For example to avoid a faulty consumer to spam logs etc. Uses a limit of 3.
  • Fixed Jetty sending back HTTP headers using keys is lower-case. Not it preserves the case of the keys, so it can be mixed case.
  • Added $simple{ } as alternative syntax for tokens in the Simple language to avoid clashing when using Springs PropertyPlaceholderConfigurer. See example at the File language page.
  • Added discardOnCompletionTimeout option to Aggregator
  • Fixed concurrency issue when using predicates using binary operators such as isEqualTo.
  • Total overhaul of the Quickfix component. Thanks to the QuickFIX/J community for help.
  • CXFRS producer now leverages fallback type converter which means its much easier for end users to grab the response body in a type they want.
  • Mail component now supports specifying emails using "Ibsen, Claus" <davsclaus@apache.org> style.
  • Fixed issue with FTP which could cause the polling to stop without any hint in the logs why.
  • Added publishedEndpointUrl option into the CXF component.
  • DefaultPackageScanClassResolver supports to configure the url schemes by using Spring configuration. To cater for Server's using custom classloader schemes in URLs.
  • Added option lazyLoadTypeConverters to CamelContext to configure if type converters should be loaded lazy or on startup (default).

New Enterprise Integration Patterns

New Components

New DSL

New Annotations

  • @DynamicRouter

New Data Formats

New Languages

New Examples

New Tutorials

API breaking

  • Some methods on the File and FTP endpoint/producer has been promoted from protected to public to make it easy from Java code to re-use the functionally of those methods, without using it as a Camel component. Such as when you want to communicate with a FTP server using the API from the RemoteFileOperations.
  • Added changeToParentDirectory method to GenericFileOperations.

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.
  • 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
  • Setting a custom TaskExecutor on JMS component using Spring 2.5 does not work as camel-jms is compiled against Spring 3.0. See more at CAMEL-3286
  • markRollbackOnlyLast doesn't remove caused exception, which may affect outer transaction to rollback as well. Likewise the logging of TransactionErrorHandler may log the inner transaction as being committed, when it was in fact rolled back.
  • Splitter using parallelProcessing may use a lot of memory during processing, see CAMEL-3497

Important changes to consider when upgrading

  • Support for JMS API 1.0.2 has been removed.
  • The stopRoute method on CamelContext now leverages Graceful Shutdown when stopping. This is more intuitive to stop routes in a graceful and safe manner. You can the stop method with a timeout if you want to force stopping, which was the old behavior.
  • The Web Console now requires JDK 1.6 as minimum to run.
  • The artifacts camel-core-tests.jar and camel-spring-tests.jar has been deprecated and will be removed in a future release. You should always only use the camel-test.jar if you want to use the Camel Test Kit.
  • Camel will now fail to startup if an existing CamelContext has been registered in JMX with the same id.
  • If you did not set a id on <camelContext> it would have defaulted to camelContext. This has been changed to be the auto assigned name it's given by Camel, such as camel-1, camel-2 etc.
  • Maven version 2.2.1 or better is now required to build Camel from source.
  • If using Quartz with jobs persisted in a database, then mind that Camel now resolves job names based on endpoint uri, without parameters. This allows you to change cron parameters on the same job (reschedule jobs).
  • The timeout option on Netty has been removed as it was flawed.
  • Durable topic subscribers with JMS must now provide clientId, otherwise Camel will fail fast on startup.
  • The default UuidGenerator has been changed back to be ActiveMQ based. If you run in the cloud you may have to configure to use the old default JavaUuidGenerator as the ActiveMQ may use JDK API which is not accessible in the cloud.
  • If you use the FTP component (consumers) make sure to test it throughly as it has changed how it traverse the file structure.
  • Upgraded to Spring 3.0.4
  • Upgraded to CXF 2.2.11

Getting the Distributions

Binary Distributions

Description

Download Link

PGP Signature file of download

Windows Distribution

apache-camel-2.5.0.zip

apache-camel-2.5.0.zip.asc

Unix/Linux/Cygwin Distribution

apache-camel-2.5.0.tar.gz

apache-camel-2.5.0.tar.gz.asc

Info
titleThe 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

apache-camel-2.5.0-src.zip

apache-camel-2.5.0-src.

...

Source for Unix/Linux/Cygwin

apache-camel-2.5.0-src.tar.gz

...

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:

Code Block
xml
xml
] |

h3. 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|http://maven.apache.org/guides/introduction/introduction-to-the-pom.html] is:
{code:xml}
<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-core</artifactId>
  <version>2.5.0</version>
</dependency>

SVN Tag Checkout

Code Block
{code}

h3. SVN Tag Checkout

{code}
svn co http://svn.apache.org/repos/asf/camel/tags/camel-2.5.0
{code}

h2. Changelog

For a more detailed view of new features and bug fixes, see the:
* [release notes for 2.5.0|http://issues.apache.org/activemq/secure/ReleaseNote.jspa?projectId=11020&styleName=Html&version=12320]

Changelog

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