You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 111 Next »

Camel 2.10.0 release (currently in progress)

Unknown macro: {div}

Unknown macro: {div}

New and Noteworthy

Welcome to the 2.10.0 release with approximately XXX issues resolved - including 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 are now supported in embedded Expressions within Camel routes.
  • Added missing options in the XML DSL for the XPath language to control and set which XPath Engine to use, etc.
  • Added option logNamespaces to the XPath language to have INFO logging of detected namespaces from message. This can be used to troubleshoot issues where an XPath expression doesn't work as expected (as it's often a namespace conflict).
  • Added replyToCacheLevelName option to the JMS component, allowing configuration of cache levels for persistent reply consumers when doing request/reply over JMS. Some message brokers do not work well with caching, so users may need to set this option to CACHE_NONE.
  • Added antInclude and antExclude options to File and FTP components to make it easier to specify include/exclude filters using ANT syntax.
  • The Camel archetypes for Java and Scala no longer generate projects with Spring dependencies.
  • Improved JdbcMessageIdRepository in the 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 explicitly configure a managementNamePattern in case you do not want the bundleId as part of MBean names.
  • Added streaming update support to Solr as well as support for SolrInputDocuments
  • Added SolrJ DirectXMLRequest support to Solr to support XML based index updates
  • 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, rejecting continued processing of messages or redeliveries.
  • Add ShutdownPrepared SPI to allow custom Services (also EIPs) in routes to do custom code in preparation 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 thrown while processing a message. Added errorHandlerLoggingLevel, and errorHandlerLogStackTrace options to tweak the logging verbosity.
  • Added messageId as an MDC logging key.
  • Improved Camel's Transaction Error Handler logging to better pinpoint and correlate redelivered messages (from, e.g., a JMS broker), making the logs much easier to read.
  • Added a 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, with less being logged at INFO level.
  • Add support for keyed data queues to JT400 component.
  • Idempotent Consumer is now enlisted in JMX, which allows monitoring the duplicate message count as well as the operation to reset it.
  • Thread pools registered in JMX are now unregistered when Camel shuts them down. Note that all MBeans will be unregistered from JMX when Camel shuts itself down. This improvement is to unregister thread pools more eagerly, such as when routes are removed at runtime.
  • Camel will now also copy the message headers for a JmsMessage if you leverage useOriginalMessage in an onException definition.
  • Added mockEndpointsAndSkip to AdviceWith and the Test Kit
  • The File and FTP components now support filtering directories. The isDirectory method on the GenericFile class can be used to skip unwanted directories, accelerating file consumption.
  • SMPP connections can now be tunneled through an 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. Previously this check only occurred during Camel startup - now it always happens.
  • Stopping a ConsumerTemplate or a ProducerTemplate will now stop and shutdown its cache to cleanup any resources which otherwise may not have been reclaimed until shutdown.
  • ScheduledPollConsumer will now shutdown thread pools more eagerly, such as when stopping a ConsumerTemplate.
  • Added option asyncStartListener to JMS to allow starting JMS consumers (e.g. routes) asynchronously. This can be used to avoid blocking in case the JMS consumer takes long time to establish a connection to the JMS broker.
  • Wire Tap now supports Error Handling when sending a tapped message to an Endpoint.
  • Added the autogenColumns, configRef and strategyRef options to the CSV dataformat in XML DSL.
  • Validator component will now fail with a better error message if resource schema refers to element which cannot be resolved.
  • Added support for retrieving generated keys from JDBC component.
  • Added support for Spring 3.1.x.
  • Added retainFirst, and retainLast options to Mock component.

Fixed issues

  • Fixed memory leak when dynamically adding and removing many routes at runtime. See this FAQ for more information.
  • Fixed potential NPE in FTP consumer when using double slashes as starting directory.
  • Fixed InterceptSendToEndpoint when using skipSendToEndpoint=true with a when predicate to only skip sending if the predicate was true.
  • Fixed an issue with Bean Binding directly in a 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 the timeout was not explicitly configured to use blocking mode (was wrongly using non-blocking mode).
  • Fixed Threads EIP to handle rejected policies, ensuring the Exchange will finish the UnitOfWork and will be 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 to no longer complain by default if no errorHandler is configured when an uncaught exception was thrown while processing a message.
  • Fixed the String trim issue in Simple expressions.
  • Fixed the issue with Recipient List not triggering Error Handler for endpoints with non existing Components.
  • Fixed Load Balancer to update statistics in JMX
  • Fixed SEDA producer configured with waitForTaskToComplete=Always to not hand over on-completion tasks, which otherwise could be processed prematurely.
  • Fixed a potential issue with configuring custom start and end tokens for the Simple language when using Spring XML.
  • Fixed an issue with Type Converter where NaN values were converted to integers.
  • Fixed HTTP, HTTP4, and Jetty producers to send empty HTTP headers for Exchange headers with an empty value.
  • Fixed an issue with configuring a custom thread pool profile on some EIPs.
  • Fixed an issue with Intercept causing processors to not update their performance statistics in JMX
  • Fixed using <errorHandler> with embedded <redeliveryPolicy> to support Using PropertyPlaceholder
  • Fixed issue with using <redeliveryPolicy>, and <redeliveryPolicyProfile> with OSGi Blueprint.
  • Fixed failover Load Balancer to perform defensive copy of the message before attempting failover, to ensure previous attempts do not propagate back into succeeding attempts.
  • Fixed issue when restarting application using Quartz with a persistent (non clustered) job store, where the app was not shutdown cleanly (such as crashed)

New Enterprise Integration Patterns

New Components

  • camel-avro
  • camel-aws - AWS-DDB - Amazon DynamoDB
  • camel-beanio - Data Format to map objects to flat structured format
  • camel-cdi
  • camel-fop
  • camel-gson - For JSON data format using the Google GSon project
  • camel-mina2
  • camel-mongodb - for MongoDB integration
  • camel-ssh - For executing commands on a SSH Server
  • camel-core - 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 Websocket

DSL Changes

New Annotations

New Data Formats

  • camel-avro
  • camel-beanio - Data Format to map objects to flat structured format
  • camel-gson - For JSON data format using the Google GSon project

New Languages

New Examples

  • camel-example-ssh
  • camel-example-twitter-websocket

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 it's only used for configuring context-scoped error handlers.
  • Removed the SimpleLanguage constructor that takes custom start and end tokens. 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 method isTransactedRedelivered to Exchange
  • Added method isDirectory 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 (e.g. running "mvn site"). There is no plan to fix this, as the project does not use maven site.
  • JBoss 7 may log a WARNing 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
  • Freemarker 2.3.18 to 2.3.19
  • Groovy 1.8.5 to 1.8.6
  • Hadoop 0.20.203.0 to 1.0.0
  • HTTP4 core 4.1.2 to 4.1.4
  • HTTP4 client 4.1.2 to 4.1.3
  • Hazelcast 1.9.4.4 to 2.0.1
  • Hawtbuf 1.7 to 1.9
  • Jackson 1.9.2 to 1.9.5
  • Jackrabbit 2.2.4 to 2.2.11
  • Jasypt 1.7 to 1.9.0
  • Jetty 1.10 to 1.12
  • JClouds 1.3.1 to 1.3.2
  • Jettison 1.3 to 1.3.1
  • Jetty 7.5.3 to 7.5.4
  • JRuby 1.6.6 to 1.6.7
  • JSCH 0.1.44 to 0.1.46
  • JuEL 2.1.3 to 2.1.4
  • Kratti 0.4.1 to 0.4.4
  • Logback 1.0.0 to 1.0.1
  • Lucene 3.0.3 to 3.5.0
  • MyBatis 3.0.6 to 3.1.0
  • Netty 3.2.6 to 3.3.1
  • OGNL 3.0.2 to 3.0.4
  • Resetlet 2.0.10 to 2.0.11
  • SNMP 1.8.1 to 1.10.1
  • Shiro 1.1.0 to 1.2.0
  • Stringtemplate 3.0 to 3.2.1
  • Spring 3.0.6 to 3.0.7/3.1.1
  • Spring Integration 2.0.5 to 2.1.0
  • Spring Security 3.0.7 to 3.1.0
  • Spymemcached 2.5 to 2.8.0
  • Tagsoup 1.2 to 1.2.1
  • Woodstox 4.1.1 to 4.1.2
  • XStream 1.4.1 to 1.4.2
  • XML Security 1.4.5 to 1.5.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 have been 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).
  • Poll Enrich will now block if no messages are available and no explicit timeout has been configured.
  • The option lazyLoadTypeConverter=true has been deprecated, and will be removed in a future release. The best practice is to load type converters while bootstrapping Camel.
  • The Camel Test kit no longer lazily loads type converters.
  • Keys for MDC logging have been prefixed with "camel.".
  • Wire Tap can no longer change destination from JMX

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

  • No labels