Camel 2.10.0 release (currently in progress)

New and Noteworthy

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

  • Internal code cleanup to reduce warnings reported by Eclipse
  • Moved Spring Testing from camel-test to camel-test-spring component.
  • Camel Property Placeholders is now supported in embedded Expressions in the Camel routes.
  • Added missing options in the XML DSL for the XPath language to control and set XPath Engine to use, etc.
  • Added option logNamespaces to XPath language to have INFO logging of detected namespaces from message. Can be used to aid during issues with having XPath expression works as expected (as often its a namespace conflict).
  • Added replyToCacheLevelName option to JMS component, to allow to configure cache levels for persistent reply consumer, when doing request/reply over JMS. Some message brokers do not work well with caching, so users may need to configure this option to CACHE_NONE.
  • Added antInclude and antExclude options to File and FTP components, to make it easier to specify include/exclude using ANT style.
  • The Camel archetypes for java and scala, no longer generates project with Spring dependency.
  • Improved JdbcMessageIdRepository in SQL to use custom sql statements/queries.
  • Added option to Properties to allow silently ignoring property locations not found, such as a .properties file.
  • Added managementNamePattern attribute to <camelContext> to make it very easy to customize and control the JMX naming of the Camel application. See details at Camel JMX. For example in OSGi environments you can explicit configure a managementNamePattern in case you do not want the bundleId as part of the MBean names.
  • Added streaming update support to Solr as well as support for SolrInputDocuments
  • Improved Camel Mail to support the replyTo option
  • Added traceEnabled option to Jetty component so you have control over whether to allow HTTP TRACE calls against your Jetty endpoints.
  • Polished the Camel Maven Archetypes to let the projects be prepared for Testing and fixed any WARNs from Maven.
  • Added dumpRouteStatsAsXml methods to JMX to make it easier to get the total performance stats as XML, and in one JMX call.
  • Graceful Shutdown is now more aggressive if timeout occurred during shutdown, now rejecting continue processing messages or redeliveries.
  • Add ShutdownPrepared SPI to allow custom Services (also EIPs) in routes to do custom code preparing for shutdown.
  • The camel-archetype-java Camel Maven Archetypes is now a pure Java DSL based project (no longer Spring)
  • JMS consumer is less verbose when logging uncaught exceptions occurred during process a message. Added errorHandlerLoggingLevel, and errorHandlerLogStackTrace options to tweak the logging verbosity.
  • Added messageId as MDC logging key.
  • Improved Camel's Transaction Error Handler logging to better pinpoint and correlate redelivered messages (from eg a JMS broker), making reading the logs much easier.
  • Added the timeout option to Spring Web Services for specifying the read timeout while invoking a webservice.
  • Optimized Type Converter registry for possible concurrency contention when looking up a type converter.
  • Improved Simple language to work better with floating point numbers in Predicates
  • Camel is now less verbose when starting and stopping, whats being logged at INFO level.
  • Add support for keyed data queues to JT400 component.
  • Idempotent Consumer gets now enlisted into the JMX which allows to both detect the duplicate message count as well as the operation to reset them.
  • Thread pools is now unregistered from JMX (if the thread pool was registered in JMX) when the thread pool is being shutdown by Camel. Notice that all mbeans will be unregistered from JMX when Camel shutdown itself. This improvement is to unregister thread pools more eagerly, such as when routes is being removed at runtime.
  • Camel will now also copy the message headers for a JmsMessage if you use useOriginalMessage in a onException definition.
  • Added mockEndpointsAndSkip to AdviceWith and the Test Kit
  • The filter on File and FTP components now supports filtering directories. There is a isDirectory method on the GenericFile class. This can be used to skip unwanted directories, and thus speedup consuming files.
  • SMPP connections can now be tunneld through a HTTP proxy, by configuring HTTP proxy settings.
  • Camel now also checks when starting a route dynamically, whether there would be any violations on multiple consumers from the same Endpoint. Beforehand this check was only occurring during startup of Camel, now its happening always.

Fixed issues

  • Fixed memory leak issue when dynamic adding and removing a lot of routes at runtime.
  • Fixed potential NPE in FTP consumer when using double slashes as starting directory.
  • Fixed InterceptSendToEndpoint with a when and skipSendToEndpoint=true should only skip sending if the predicate was true.
  • Fixed issue with Bean Binding directly in method name not working properly with method call expressions.
  • Fixed issue with using custom namespaces in XPath expressions when using OSGi Blueprint
  • Fixed Validation to support xs:import in the schema files.
  • Fixed Poll Enrich where timeout was not explicit configured to use the blocking mode. Was wrongly using the non blocking mode.
  • Fixed Threads EIP to handle rejected policies to ensure the Exchange will done the UnitOfWork, to ensure the Exchange will get de-registered from the inflight registry.
  • Fixed Delayer not working with a Bean expression to define the delay when using XML DSL
  • Fixed JMS consumer will no longer complain by default about no errorHandler configured, if uncaught exception was thrown during processing a message.
  • Fixed the String trim issue of the Simple expression.
  • Fixed issue with Recipient List not triggering Error Handler for endpoints with non existing Components.
  • Fixed Load Balancer now updating statistics in JMX
  • Fixed SEDA producer configured with waitForTaskToComplete=Always to not handover on-completion tasks, which otherwise could be processed too early.
  • Fixed potential issue with configuring custom start and end tokens for Simple language when using Spring XML.
  • Fixed issue with Type Converter with NaN numbers being converter to integers.
  • Fixed HTTP, HTTP4, and Jetty producers to send empty HTTP headers, if a header has an empty value.
  • Fixed memory leaks when adding and removing a lot of routes at runtime. See this FAQ as well.
  • Fixed issue with configuring a custom thread pool profile on some EIPs.

New Enterprise Integration Patterns

New Components

  • camel-avro
  • camel-aws - AWS-DDB - Amazon DynamoDB
  • camel-beanio
  • camel-cdi
  • camel-gson - For JSON data format using Google GSon project
  • camel-mina2
  • camel-mongodb - for MongoDB integration
  • camel-ssh - For executing commands on a SSH Server
  • Stub - For stubbing endpoints, for development and testing purposes
  • camel-test-blueprint - For Blueprint Testing
  • camel-test-spring - For Spring Testing
  • camel-twitter - For integrating with Twitter
  • camel-websocket - For using web socket

DSL Changes

New Annotations

New Data Formats

  • camel-avro
  • camel-beanio
  • camel-gson - For JSON data format using Google GSon project

New Languages

New Examples

  • There is a camel-example-ssh

New Tutorials

API changes/breaking

  • Added shutdownForced, and forceShutdown methods to org.apache.camel.spi.ShutdownStrategy
  • Add boolean parameter to prepareShutdown on ShutdownAware
  • The errorHandler method in RouteBuilder now returns void, as its used for only configuring context scoped error handlers.
  • Removed the constructor which takes custom start and end tokens from SimpleLanguage. Instead use the change methods to set custom tokens.
  • Added onThreadPoolRemove, and onErrorHandlerRemove methods to LifecycleStrategy

Internal/Non API refactorings that may affect users

  • Removed method setManagementName from CamelContext as it should not be used by Camel end users
  • Added isTransactedRedelivered method to Exchange
  • Added isDirectory method to GenericFile

Known Issues

  • The Tracer may not output all details for some situations such as when using onCompletion or intercept etc.
  • 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 source code cannot fully build with JDK 7
  • JBoss 7 may report a WARN logging when running Camel as a WAR file.

Dependency Upgrades

  • AHC 1.6.5 to 1.7.1
  • AWS 1.2.2 to 1.3.0
  • Commons-codec 1.4 to 1.6
  • Commons-net 2.2 to 3.0.1
  • CXF 2.5.1 to 2.5.2
  • Groovy 1.8.5 to 1.8.6
  • Hadoop 0.20.203.0 to 1.0.0
  • Hazelcast 1.9.4.4 to 1.9.4.8
  • Jasypt 1.7 to 1.9.0
  • Jetty 7.5.3 to 7.5.4
  • JRuby 1.6.6 to 1.6.7
  • Kratti 0.4.1 to 0.4.3
  • Netty 3.2.6 to 3.3.1
  • Shiro 1.1.0 to 1.2.0
  • Spring 3.0.6 to 3.0.7
  • Spring Integration 2.0.5 to 2.1.0
  • Spring Security 3.0.7 to 3.1.0
  • Tagsoup 1.2 to 1.2.1

Important changes to consider when upgrading

  • Moved Spring Testing from camel-test to camel-test-spring component.
  • Combination of skipSendToEndpoint=true and when predicate now triggers conditional skipping (you may be relying on unconditional skipping up until now)
  • The thread name pattern has changed tokens to avoid clashing with Using PropertyPlaceholder, see Threading Model for more details.
  • The Poll Enrich will now block if no messages is available, if no explicit timeout value has been configured.
  • Setting the option lazyLoadTypeConverter=true has been deprecated, and will be removed in a future release. Best practice is type converters is loaded as part of bootstrapping Camel.
  • The Camel Test kit do no longer load type converters lazy.
  • Keys for MDC logging has been prefixed with "camel.".

Notice

  • If you want to deploy Apache Camel 2.9.0 into Apache Karaf, we highly recommend to use the 'jre.properties.cxf' configuration, which is part of Apache Karaf 2.2.5.

Getting the Distributions

Binary Distributions

Description Download Link PGP Signature file of download
Windows Distribution apache-camel-2.10.0.zip apache-camel-2.10.0.zip.asc
Unix/Linux/Cygwin Distribution apache-camel-2.10.0.tar.gz apache-camel-2.10.0.tar.gz.asc
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 Distribution apache-camel-2.10.0-src.zip apache-camel-2.10.0-src.zip.asc

Getting the

© 2004-2011 The Apache Software Foundation.
Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
Graphic Design By Hiram