Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup
h1. Camel 2.11.0 release (currently in progress)

{div:style=padding-right:20px;float:left;margin-left:-20px;}
!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.11.0 release with approximately XXX issues resolved - including new features, improvements, and bug fixes, such as: 

* Added support for SOAP 1.2 in [SOAP] data format.
* [Cache] operation for add/update now supports expiry headers to control time to live/idle/eternal.
* Added {{allowNullBody}} option to [JMS] to configure whether sending messages with no body is allowed.
* Added {{connectOnStartup}} option to [HDFS] to allow to connect on demand, to avoid having Hadoop block for long time connecting to the HDFS cluster, as it has a hardcoded 15 minute retry mechanism. 
* Added support for daily and weekly trends to [Twitter] component.
* The [Camel Maven Archetypes] now generates projects without any license headers.
* Added 'rejectOld' option to the [Resequencer] to prevent out of order messages from being delivered after capacity/timeout events occur
* Further optimized [XPath] under concurrent load, and as well ensured resources are cleaned up eagerly
* Added options {{allowNullBody}} and {{readLockMinLength}} to the [File|File2] and [FTP|FTP2] components.
* Made {{changed}} read lock strategy on [FTP|FTP2] go faster (eg when the FTP server has a lot of files in the directory) if you enable the {{fastExistsCheck=true}} option as well. Notice that some FTP server may not support this.
* [HL7] moves to HAPI 2.0 and supports using a dedicated Parser instance in the [HL7] MLLP codec and DataFormat. Added "Terser" language and expression to be able to extract fields from a parsed message. [HL7] now uses Apache Mina 2.x.
* Add an option {{HttpMethodRestrict}} to restrict HTTP method in [Jetty] and [Servlet]
* Add support for selection of [direct-vm] consumers by using ant-like path expression.
* The [POJO Producing], and [POJO Consuming] with @Consume, @Produce, @EndpointInject now supports a new {{property} attribute to get the endpoint configuration from a bean property (eg using a getter method); this allows you to configure this on the bean using conventional bean configuration.
* Testing with {{camel-test-blueprint}} on Windows no longer tries to cleanup after testing taking up 5 seconds and logging WARNs.
* The [File|File2], and [FTP|FTP2] components now support {{fileExist=Move}} option to move any existing files before writing a file.
* Added option {{loadStatisticsEnabled}} on [Camel JMX] to allow to disable load statistics if not needed (avoids a background thread being in use, to calculate the load stats).
* Enabled "lazy connections" for [XMPP] providers via the {{testConnectionOnStartup}} option
* Added a connection monitor to detect and fix dropped [XMPP] consumer connections at configurable {{connectionPollDelay}} intervals
* Added an {{org.apache.camel.builder.ExchangeBuilder}} to build the [Exchange] using a builder pattern.
* The [Camel Run Maven Goal] can now run [CDI] applications.
* The Camel [CDI] component has improved a lot.
* Added option {{allowRedeliveryWhileStopping}} to [error handlers|Dead Letter Channel] to control if redelivery is allowed during stopping/shutting down Camel or the route(s). Turning this option {{false}} allows to stop quicker by rejecting redelivery attempts.
* Added support for specifying user info in Camel [Endpoint] urls, which contains the @ sign; now the @ sign can be given as is; without being encoded to %40.
* Added robust connection support for [JMX]. Optional {{testConnectionOnStartup}} allows a JMX consumer to attach to a JMX server that becomes available _after_ the JMX endpoint starts; {{reconnectOnConnectionFailure}} enables re-connection of failed JMX connections.
* [JAXB] and [SOAP] data format now supports controlling namespace prefix mappings when marshalling (eg to avoid prefixes such as ns2, ns3, ns4 etc.)
* Added support for using raw uris when [Component]s create [Endpoint]s. This gives component writers full power in case their component has special syntax/notation for endpoint uri configurations.
* [EIP]s configured with custom {{AggregationStrategy}} will now strict check the custom strategy exists in the [Registry] and no longer fallback and use a default strategy if not.
* Camel now logs on shutdown if any thread pools hasn't been properly shutdown, and will shutdown them as fail safe (can only be done for the thread pools Camel manages).

h3. Fixed issues

* Fixed [RoutePolicy] used from Spring XML with {{routePolicyRef}} may not invoke all callbacks on the policy.
* Fixed [Mina] consumer to force disconnect upon timeout when doing request/reply, as late replies may cause side effects otherwise.
* Fixed [simple] language with empty quoted literals in predicates, so you can compare against empty strings.
* Fixed [SOAP] data format to set SOAP 1.1 namespace when marhsalling faults.
* Fixed [SEDA] producer to send to the right BlockingQueue being attached on the [SEDA] endpoint so that the sent messages don't get lost.
* Fixed using {{sendEmptyMessageWhenIdle=true}} on a batch consumer such as [File|File2] now working with [Aggregate|Aggregator2] EIP when using {{completionFromBatchConsumer}}
* Fixed {{MockEndpoint.expectedBodiesReceivedInAnyOrder}} to allow asserting on multiple arrival of the same/equal bodies.
* Fixed [MyBatis] to demarcate the running transactions properly while reading/writing from/to database.
* Fixed [Jetty], [HTTP], [HTTP4], and [AHC] http components not working in bridge mode if content path have spaces
* Fixed the [CXF] fallback convertor issue which camel will unregister it when the converter return null.
* Fixed the issue that [File2] endpoints on windows without volume name in the path url. 
* Fixed the issue of unmarshaling pgp messages encrypted with ElGamal.
* Fixed random [Load Balancer] to be even spread (before was a little less likely to pick the 1st)
* Fixed [Timer] to not fire during starting [CamelContext]
* Fixed [XMLSecurity DataFormat] to enable retrieval of password-protected private keys for asymmetric decryption
* Fixed [Exception Clause] using {{maximumRedeliveries(-1)}} may be wrongly inherited by another {{onException}} during a redelivery process.
* Fixed logging [Error Handler] to use configured logging level.
* Fixed issue when using multiple {{RouteBuilder}} with the Java DSL should have the [Exception Clause] being scoped per {{RouteBuilder}} instance.

h3. New [Enterprise Integration Patterns]

h3. New Camel Karaf Command

h3. New [Components]

* {{[camel-cmis|cmis]}} - for integration of CMIS compliant content repositories
* {{[camel-couchdb|CouchDB]}} - for integration with [Apache CouchDB|http://couchdb.apache.org/]
* {{[camel-elasticsearch|ElasticSearch]}} - for [ElasticSearch|http://elasticsearch.org] integration
* {{[camel-sjms|sjms]}} - for "Springless" JMS integration
* {{[camel-neo4j|neo4j]}} - for talking to neo4j server from Camel.

h3. DSL Changes

* Added LoggingErrorHandler fluent builder to Scala DSL.

h3. New Annotations

h3. New [Data Formats|Data Format]

h3. New [Languages]

* [VTD-XML] - for fast and efficient XPath evaluation/splitting using the VTD-XML Library. {{camel-vtdxml}} hosted at [Camel Extra|http://camel-extra.googlecode.com/]

h3. New [Examples]

* [ActiveMQ Camel Tomcat] example shows how to embed Apache ActiveMQ and Camel in a web application running on Apache Tomcat.

h3. New [Tutorials]

h2. API changes/breaking

* [HL7] upgraded to now use Apache Mina 2.x.
* Renamed {{org.apache.camel.component.hbase.HBaseContats}} to {{org.apache.camel.component.hbase.HBaseConstants}}
* Added getter/setter methods for loadStatisticsEnabled on {{org.apache.camel.spi.ManagementStrategy}}
* Added {{shutdownGraceful}}, and {{awaitTermination}} methods to {{ExecutorServiceManager}} to make it easier to shutdown a thread pool gracefully waiting for its tasks to complete.
* Added method {{useRawUri()}} to {{org.apache.camel.Component}} to allow [Component]s to use raw uri when creating endpoints. (by default the uri has been encoded prior to creation).
* Added method {{newThread}} to {{org.apache.camel.spi.ExecutorServiceManager}} to create a new thread without using a thread pool.

h2. Internal/Non API refactorings that may affect users

* The [Camel Test Kit|Testing] provides a default [Properties] component out of the box; which mean using {{addComponent("properties", ...)}} is no longer needed; instead get the component using {{getComponent("properties")}} and configure the component instead.
* Minor adjustments to {{org.apache.camel.builder.ErrorHandlerBuilder}}.

h2. 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.

h2. Dependency Upgrades

* Async Http Client 1.7.5 to 1.7.6
* Axiom 1.2.10 to 1.2.12
* AWS 1.3.10 to 1.3.14
* BeanIO 2.0.0 to 2.0.1
* Commons Exec 1.0.1 to 1.1
* ConcurrentLinkedHashMap 1.2 to 1.3.1
* Ehcache bundle 2.5.1 to 2.6.0
* Groovy 1.8.6 to 2.0.4
* GSon 2.1 to 2.2.2
* Hazelcast 2.0.2 to 2.3
* HTTP Client 4.1.3 to 4.2.1
* Icu4j 4.0.1 to 4.8.1.1
* Jackson 1.9.7 to 1.9.9
* Jaxen 1.1.3 to 1.1.4
* JClouds 1.4.0 to 1.5.0
* Jettison 1.3.1 to 1.3.2
* Jetty 7.5.4 to 7.6.7
* JRuby 1.6.7 to 1.6.7.2
* JT400 6.0 to 6.7
* Krati 0.4.5 to 0.4.6
* Lucene 3.6.0 to 3.6.1
* Netty 3.5.1 to 3.5.78
* Ognl bundle 3.0.4_1 to 3.0.5_1
* Pax Logging 1.5.3 to 1.6.10
* QPid 0.16 to 0.18
* Quartz 1.8.5 to 1.8.6
* Restlet 2.0.14 to 2.0.15
* Scala 2.9.1 to 2.9.2
* Saxon 9.3.0.11 to 9.4.0.1
* Shiro 1.2.0 to 1.2.1
* Solr 3.6.0 to 3.6.1
* Spring Framework 3.1.1 to 3.1.2
* Spring Integration 2.1.2 to 2.1.3
* SSHD 0.6.0 to 0.7.0
* TestNG 6.0.1 to 6.7
* Woodstox 4.1.2 to 4.1.3
* XStream 1.4.2 to 1.4.3

h2. Important changes to consider when upgrading

* {{camel-mina2}} now uses {{OrderedThreadPoolExecutor}} by default. There is a new option {{orderedThreadPoolExecutor}} you can configure it to {{false}} to revert back to unordered if needed. Mina that using SSL etc. requires ordered.
* The default value of the {{delay}} option on [Timer] has been changed from {{0}} to {{1000}}
* The default value of the {{convertLFtoCR}} option of the [HL7] MLLP codec has been changed from {{true}} to {{false}}. Likewise, the [HL7] DataFormat and TypeConverter do not perform this conversion anymore.
* The [Simple] language has limited its support for the escape character to only new line, carriage return and tab characters. This makes it easier to use back-slash characters in the [Simple] language without double escaping etc. 

h2. Notice

* Maven 3.0.2 or better is required to build the [Source]
* If you want to deploy Apache Camel 2.11.0 into Apache Karaf, we highly recommend to use the 'jre.properties.cxf' configuration, which is part of Apache Karaf 2.2.5 onwards. For example {{camel-cxf}}, {{camel-mail}}, and {{camel-spring-ws}} requires this to be installable; as well other features may as well.

h2. Getting the Distributions

h3. Binary Distributions

|| Description || Download Link || PGP Signature file of download ||
| Windows Distribution | [apache-camel-2.11.0.zip|http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.11.0/apache-camel-2.11.0.zip] | [apache-camel-2.11.0.zip.asc|http://www.apache.org/dist/camel/apache-camel/2.11.0/apache-camel-2.11.0.zip.asc] |
| Unix/Linux/Cygwin Distribution | [apache-camel-2.11.0.tar.gz|http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.11.0/apache-camel-2.11.0.tar.gz] | [apache-camel-2.11.0.tar.gz.asc|http://www.apache.org/dist/camel/apache-camel/2.11.0/apache-camel-2.11.0.tar.gz.asc] |

{info}

h3. Source Distributions

|| Description || Download Link || PGP Signature file of download ||
| Source Distribution | [apache-camel-2.11.0-src.zip|http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.11.0/apache-camel-2.11.0-src.zip] | [apache-camel-2.11.0-src.zip.asc|http://www.apache.org/dist/camel/apache-camel/2.11.0/apache-camel-2.11.0-src.zip.asc] |