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: 

* [Camel RX|RX] provides a typesafe and composable API for working with asynchronous events from camel endpoints using [Reactive Extensions|https://rx.codeplex.com/] using the [RxJava library|https://github.com/Netflix/RxJava/wiki]
* Added [Binding] support, so it is easy to combine things like a [Data Format] to an [Endpoint] for easier composition of routes.
* 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).
* The buffer size of [Stream caching] is now configurable.
* Improved startup performance.
* Added [JMS] URI option {{messageListenerContainerFactoryRef}} which allows you to specify a {{MessageListenerContainerFactory}} to determine what {{org.springframework.jms.listener.AbstractMessageListenerContainer}} to use to consume messages.
* [MQTT] producer now leverages the [Asynchronous Routing Engine]
* The [Netty] producer scales up and down much better by leveraging a channel pool.
* Added new [Camel Maven Archetypes] for creating Camel and Groovy applications.
* Camel now injects {{CamelContext}} on {{Language}} and {{DataFormat}} that implements {{CamelContextAware}}
* Thread pools in Camel with {{maximumQueueSize}} of 0 or negative will now not use a worker queue but do direct hand-over to thread instead.
* [Simple] unary operators for inc and dec must now have function on left hand side, to be parsed as unary function. Otherwise its now regarded as literal.
* Custom assigned id's on Camel [Routes] is now validated on starting the routes, that they must be unique within the same CamelContext.
* Added {{AbstractListAggregationStrategy}} abstract class to make it easier to [aggregate|Aggregator2] into a List<V> using a custom {{AggregationStrategy}}.
* [EIP]s which support using {{AggregationStrategy}} now control the lifecycle of the strategy; allowing end users to do custom logic in the start/stop methods of their strategy implementation.
* Added option {{includeSentJMSMessageID}} to [JMS] to allow to enrich Camel Message with the actual JMSMessageID for the sent message. Can be used by end users for logging purpose etc.
* Added option {{allowShortLines}} and {{ignoreExtraColumns}} to [Flatpack data format|Flatpack DataFormat].
* [Mail] consumer now supports using search terms to filter mails by terms such as subject, from, body, sent date etc.
* The cached script file in the [Language] component can now be cleared via JMX.
* improved the karaf context-info command by adding a verbose mode to view endpoints list (now hidden by default) and adding stats on the number of active/inactive routes
* Added support for {{UpdateList}}, {{DeleteList}} and {{ExecutorType}} to [MyBatis] component.
* Added support for easier configuration of using concurrent message listener consumer when doing request/reply over [JMS], by leveraging the existing {{concurrentConsumers}} and {{maxConcurrentConsumers}} options.
* Improved the [SMPP] consumer to expose more data by receiving a {{DeliverSM}} message, including the optional parameters.
* Camels [property placeholders|Using PropertyPlaceholder] can now be used in route id / node id's in the routes in XML and Java DSLs, eg <route id="{{coolName}}">
* The thread name pattern can easily be configured on <camelContext> with the new threadNamePattern attribute
* Camel now validates [Seda] and [Vm] endpoints using same queue name, that if any queue size is in use, that size must match. As well Camel logs at INFO level when starting up the queues and the sizes. This allows end users to easily spot any issues if mistakenly using different queue sizes for the same queue names.
* Added [JMX|Camel JMX] operations to [throughput logger|Log] so you can get stats and also reset the stats at runtime.
* Added ACL support on the [AWS-S3] component.
* Allow to configure [Jetty] http client thread pool settings in uri to make it easier to have different settings per endpoint.
* Added support for implied decimal formats to [Bindy]
* Added option {{backlog}} to [Netty] which can be used to allow more concurrent clients to connect to a [Netty] consumer.
* Added support for parsing CSV if a field has a ' (single quote) at it's beging
* Added support for using custom url rewrite plugins in [HTTP], [HTTP4], and [Jetty] producers, which gives more control of url mappings, such as when bridging/proxying http based routes. Provided {{[camel-urlrewrite|UrlRewrite]}} as out of the box implementation.
* Improved the [Spring-Integration|SpringIntegration] consumer to also send back the message headers.
* The Camel [Guice] component has been upgraded to latest Guice 3.0, and no longer dependent on Guice extension project {{guiceyfruit}}.
* ReplyTo Temporary Queue now refreshed when the underlying [JMS] Connection fails.
* When processing an [Exchange] fails, the failed route id is available for end users. See details at [Dead Letter Channel].
* When using [XSLT] includes will use same file or classpath loading as endpoint configuration, if not explicit configured.
* Now [camel transport for cxf] supports to configure with blueprint.
* [SQL Component] now supports named parameters in the queries.
* [SQL Component] now supports [Batch Consumer] to consume data; for example to pickup new rows being inserted into a table. As well having queries being execute after each row has been processed, such as deleting/marking the row as processed.
* JDBC based [aggregation repository |SQL Component] now allows to store message body and headers as text in individual columns. This makes the data human readable, as by default the data is stored as binary.
* [File|File2] consumer will on first poll run the check to delete old orphaned lock files. As opposed to before where this happened during startup of Camel itself; which could delay starting Camel if the delete process takes a long time.
* [File|File2] and [FTP|FTP2] can now use a custom idempotent key with the built-in idempotent consumer. For example you can now use both the file name and size as key.
* [File|File2] and [FTP|FTP2] producers support the {{CamelOverruleFileName}} header as a use once and discard header to overrule and use as filename for writing; while preserving the original filename in the {{CamelFileName}} header.
* The [Languages] and [Language] component can now load the script from external resource using {{"resource:scheme:location"}} syntax. 
* [HDFS] producer without a split strategy will now close file stream after writing. You can use the {{CamelHdfsClose}} header to explicit to control if to close file stream or not.
* [Simple] language now has {{type}} function to refer to a type, enum or constant field.
* Using {{allowRedeliveryWhileStopping=false}} on [Dead Letter Channel] now moves the message to the DLC (when stopping) instead of rejecting the message.
* Unit testing with [Blueprint Testing] is now easier to override Blueprint property placeholder values from both external .cfg files, as well from placeholders defined directly in the XML file. See further details at [Using PropertyPlaceholder] page.
* [Bindy] FixedLengthRecord is improved with support for header and footer records, delimited fields, and field lengths defined within a record.
* Added {{transacted}} option to [Hazelcast SEDA consumer|Hazelcast Component] to use Hazelcast transaction.
* Improved performance of [Simple] and [Bean] language when using OGNL expression, by leveraging an internal cache to avoid introspecting the same types over and over again.
* Camel now validates better when using [Try Catch Finally] in the routes has been configured properly.


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.
* Fixed issue with restarting a [SEDA] consumer would not stop previous used thread pool.
* Fixed issue when running low on memory and doing request/reply over [JMS] may GC producer, causing a new producer to be created, and leaving a message listener running from the previous producer.
* Fixed issue with [Try Catch Finally] should clear redelivery exhaust state when catching exception in doCatch.
* Fixed potential NPE in [MQTT] producer, if a connection has been disconnected, and sending fails.
* Unhandled exceptions occurred during routing from [SMPP] routes is now propagated back to the SMPP library to deal with.
* Fixed [Restlet] parsing of last modification date header to use RFC-2822 date pattern.
* Fixed [Aggregator|Aggregator2] EIP when using completion size expression and fixed size together not working as expected.
* Fixed [Crypto] to close streams after usage, which otherwise could prevent deleting files on Windows, which tend to lock files if a stream is open.
* Fixed issue with [Groovy] language in OSGi
* Fixed issue with localWorkDirectory option on [FTP|FTP2] not using the optimization to try to rename the work file when routing to a [File|File2] endpoint.
* Fixed [SMPP] to use the right data coding by using Octet unspecified (8-bit binary) and using the specified alphabet from the exchange, if provided.
* Fixed issue with configuring [Jetty] component using a name other than {{"jetty"}}.
* Fixed issue with request/reply over [JMS] where a route is used on "the other end" to process the request and send back the correlated reply message; where a Camel route is used which has only 1 output, which can lead to no reply message being sent.
* Fixed regression in [AWS-SQS] by updating the existing queue without any attributes.
* Fixed issue with [Using PropertyPlaceholder] in [Expression]s in routes which are using <transacted> or <policy>.
* Fixed issue with [Splitter] which swallow the IOException catched by the underlying Scanner.
* Fixed issue with [Splitter] where tokenizeXML would not split XML messages containing nodes with namespace prefixes.
* Fixed issue when using [Jetty] component would create a http client having a live thread pool, which is only needed if using producers of [Jetty]. Also improved handling lifecycle of clients to be per producer by default instead of shared, which otherwise can cause issues.
* Fixed issue with [File|File2] and [FTP|FTP2] consumers when using {{doneFileName}} then avoid picking up files in middle of group if done file is written during scanning.
* Fixed issue with [File|File2] and [FTP|FTP2] consumers when using {{doneFileName}} may produce too many WARN logs about cannot delete doneFileName.
* Fixed issue with Temporary Queue ReplyTo destination being recreated every time a new multiple concurrent consumer was initialised ([JMS] component).
* Fixed issue with [XSLT] was not using custom assigned {{UriResolver}} to load the initial xslt resource, but only for other included resources.
* Fixed issue when [Using PropertyPlaceholder] with OSGi blueprint and using [Jasypt] for decrypting placeholders at the same time.
* Fixed [JMX] component to work in OSGi if output is XML.
* Fixed [Aggregator|Aggregator2] to not check for timeout if completion size expression was in use, and not completed yet.
* Fixed issue with possible to have negative in-flight counts when using [Content Enricher], [Bean] or annotation [DSL] under certain conditions.
* Fixed issue with [Quartz] consumer may not work if being configured to trigger with days apart causing its endpoint to be evicted from Camel's endpoint cache.
* Fixed issue with [Karaf] then Camel applications will not properly restart, if using blueprint-cm to reload bundle due .cfg file change.
* Fixed a race condition in [Aggregate|Aggregator2] eip when recovery is enabled and a in progress exchange was completed after the recovery scan was executed, and before the recover task kicks in.
* Fixed using endpoint reference options in [URIs] (eg #beanName) to use the class type of the setter method to support looking up beans from the OSGI Service Registry.

h3. New [Enterprise Integration Patterns]

* [ControlBus] EIP

h3. New Camel Karaf Command

h3. New [Components]

* [ControlBus Component] - for easy management using a component supporting the [ControlBus] EIP
* {{[camel-aws|aws-cw]}} - New component to [AWS] for sending metrics to Amazon CloudWatch from Camel.
* {{[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-neo4j|neo4j]}} - for talking to neo4j server from Camel.
* {{[camel-redis|Redis]}} - for talking to Redis key-value store. 
* {{[camel-rx|RX]}} - provides a typesafe and composable API for working with asynchronous events from camel endpoints using [Reactive Extensions|https://rx.codeplex.com/] using the [RxJava library|https://github.com/Netflix/RxJava/wiki]
* {{[camel-servletlistener|ServletListener Component]}} - for bootstrapping Camel in web applications, without the need for Spring Framework etc.
* {{[camel-sjms|sjms]}} - for "Springless" JMS integration
* {{[camel-spring-ldap|Spring LDAP]}} - for LDAP integration using the Spring LDAP template offering more functionality than existing [LDAP] component.
* {{[camel-urlrewrite|UrlRewrite]}} - for bridging http endpoints and using the [UrlRewriteFilter|http://code.google.com/p/urlrewritefilter/] project to control url mappings.
* {{[camel-xmlrpc|xmlrpc]}} - for talking to xmlrpc server from Camel.

h3. DSL Changes

* Added LoggingErrorHandler fluent builder to Scala DSL.

h3. New Annotations

h3. New [Data Formats|Data Format]
* {{[camel-base64|Base64]}} - support base64 encoding and decoding. 
* {{[camel-xmlrpc|xmlrpc]}} - support to marshal and unmarshal the request and response of xmlrpc.
* {{[camel-zipfile|Zip File DataFormat]}} - support to Zip files containing a single entry.


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.
* [Hibernate Example] shows how to work with [Hibernate] to exchange data using a shared database table.
* [Servlet Tomcat No Spring Example] example shows how to run Camel as a web application in any web container such as Apache Tomcat, without the need for Spring Framework.
* [SQL Example] shows how to work with [SQL|SQL Component] to exchange data using a shared database table.

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.
* Added support to parse CSV if a field has a ' (single quote) at it's beging, this made camel-csv doesn't support the field which is quoted with ' (single quote) or "(double quote) at the same time.

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}}.
* {{LRUCache}} will attempt to stop service on eviction of entry.
* Removed {{org.apache.camel.model.NodeFactory}} as its no longer applicable.
* Added {{getCamelContext()}} methods to {{ProducerTemplate}}, and {{ConsumerTemplate}}
* The method {{isMatched}} on {{GenericFileConsumer}} is now abstract and has an extra parameter.
* The [Camel Test Kit|Testing] removed the support of JUnit3, please use JUnit4 version instead.
* The method {{prepareOnStartup}} on {{org.apache.camel.component.file.GenericFileProcessStrategy}} is now executed on first poll instead of starting the route; as if the job takes a long time, it will block Camel from starting other routes. If the job takes more than 1 second to run then its logged at INFO level so people can easier spot if the task takes a longer time, than usual.
* [HDFS] producer without a split strategy will now close file stream after writing. You can use the {{CamelHdfsClose}} header to explicit to control if to close file stream or not.
* The type for file last modified header is changed from {{java.util.Date}} to {{long}}
* Removed class {{org.apache.camel.component.gae.context.GaeSpringCamelContext}} from {{camel-gae}}
* Using {{allowRedeliveryWhileStopping=false}} on [Dead Letter Channel] now moves the message to the DLC (when stopping) instead of rejecting the message.
* When using [Spring] with Camel, then Camel will now lookup in Spring's ancestor application contexts as well, when using the [Registry]
* The JMX MBean name for the [Tracer] has removed the identity hash code, eg {{org.apache.camel:context=localhost/camel-1,type=tracer,name=Tracer(0x548bb8b2)}} is now named {{org.apache.camel:context=localhost/camel-1,type=tracer,name=Tracer}}.

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

* Aries Blueprint 0.3 to 1.0.1
* Async Http Client 1.7.5 to 1.7.11
* Avro 1.6.2 to 1.7.3
* AWS 1.3.10 to 1.3.27
* BeanIO 2.0.0 to 2.0.3
* Bouncycastle 1.46 to 1.47
* Commons CSV 1.0-r706900_3 to 1.0-r706899_5
* Commons Exec 1.0.1 to 1.1
* Commons Net 3.1 to 3.2
* ConcurrentLinkedHashMap 1.2 to 1.3.2
* Castor 1.3.1 to 1.3.2
* CXF 2.6.5 to 2.7.3
* Dozer 5.3.2 to 5.4.0
* Ehcache 2.5.1 to 2.5.2
* Google App Engine 1.6.6 to 1.7.4
* Groovy 1.8.6 to 2.1.1
* GSon 2.1 to 2.2.2
* Guice 2.0 to 3.0
* Hadoop 1.0.4 to 1.1.1
* Hazelcast 2.0.2 to 2.5
* HBase 0.90.5 to 0.94.3
* HTTP Client 4.1.3 to 4.2.3
* HTTP Core 4.1.4 to 4.2.3
* Icu4j 4.0.1 to 4.8.1.1
* Jackson 1.9.7 to 2.1.14
* Jaxen 1.1.3 to 1.1.4
* JClouds 1.4.0 to 1.5.5
* Jettison 1.3.1 to 1.3.3
* Jetty 7.5.4 to 7.6.8
* JRuby 1.6.7 to 1.7.2
* JT400 6.0 to 6.7
* Jython 2.2.1 to 2.5.3
* Krati 0.4.5 to 0.4.8
* LevelDBJNI 1.2 to 1.6
* Lucene 3.6.0 to 3.6.1
* Mina 2.0.4 to 2.0.7
* MongoDB Java Driver 2.7.3 to 2.9.1
* MQTTClient 1.2 to 1.4
* Netty 3.5.1 to 3.6.3
* Ognl bundle 3.0.4_1 to 3.0.5_1
* OSGi 4.2.0 to 4.3.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
* Saxon 9.3.0.11 to 9.4.0.1
* ServiceMix Specs 1.9.0 to 2.2.0
* Shiro 1.2.0 to 1.2.1
* SLF4J 1.6.6 to 1.7.2
* Solr 3.6.0 to 3.6.1
* Spring Batch 2.1.8 to 2.1.9
* Spring Framework 3.1.1 to 3.1.4
* Spring Integration 2.1.2 to 2.2.2
* Spring Security 3.1.0 to 3.1.3
* SSHD 0.6.0 to 0.8.0
* StringTemplate 3.2.1 to 4.0.2
* TestNG 6.0.1 to 6.8
* Twitter4j 2.2.5 to 3.0.3
* Woodstox 4.1.2 to 4.1.3
* Xerces 2.9.1 to 2.10.0
* XStream 1.4.2 to 1.4.3
* Zookeeper 3.3.5 to 3.4.5

h2. Important changes to consider when upgrading

* Spring 3.0.x support is @deprecated and some of the camel-spring components require Spring 3.1 onwards.
* Apache Camel Karaf features now uses Spring version range "[3.1,4)" as Spring 3.1 is now required as minimum Spring version.
* {{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. If using SSL etc. then ordered is required to be used.
* {{camel-netty}} now uses {{OrderedMemoryAwareThreadPoolExecutor}} by default. There is a new option {{orderedThreadPoolExecutor}} you can configure it to false to revert back to unordered if needed. If using SSL etc. then ordered is required to be used.
* 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. 
* {{camel-netty}} now requires {{commons-pool}} as dependency.
* The {{maximumQueueSize}} of [Thread Pools|http://camel.apache.org/threading-model.html] and [Thread Pool Profiles|http://camel.apache.org/threading-model.html] with values 0 or negative now means disable the worker queue, and use direct-handover. If you want an unbounded queue size, then set the {{maximumQueueSize}} to {{Integer.MAX_VALUE}} which was what the previous code did.
* Custom assigned id's on Camel [Routes] is now validated on starting the routes, that they must be unique within the same CamelContext. 
* {{camel-blueprint}} now requires Apache Aries 1.0, and OSGi 4.3.0.
* Removed @deprecated classes form {{camel-spring}} in the {{org.apache.camel.component}} package which was causing split-package issue with OSGi. Component authors who are using these @deprecated classes, should migrate to use equivalent classes from {{camel-core}} in the same package.
* The default Spring version is upgraded from 3.0.7 to 3.1.3 out of the box.
* Camel now validates [Seda] and [Vm] endpoints using same queue name, that if any queue size is in use, that size must match. As well Camel logs at INFO level when starting up the queues and the sizes. This allows end users to easily spot any issues if mistakenly using different queue sizes for the same queue names.
* The [Zookeeper endpoint|Zookeeper] {{awaitExistence}} option has been marked as @deprecated and is removed from it's documentation as it's usage would have no effect in the current codebase.
* Marked the 2 classes in the {{junit4}} package from {{camel-test-spring}} component as @deprecated, and refer to use the classes from the {{spring}} package instead. 
* If using [XSLT] with includes, then mind that if not explicit defined file: or classpath: as prefix in xsl:include, then Camel will now use the same as configured on the endpoint. Before "classpath:" was always used as fallback, despite endpoint could have been configured with "file:".
* {{camel-scala}} has been upgraded to Scala 2.10.0, there is a {{camel-scala_2.9}} module that is built against Scala 2.9.2. Though {{camel-scala_2.9}} is deprecated and expected to be removed in the next bigger release (eg Camel 2.12/3.0).
* {{camel-gae}} now longer has Spring dependency, and we removed class {{org.apache.camel.component.gae.context.GaeSpringCamelContext}}.
* {{camel-jackson}} has upgraded from Jackson 1.x to 2.x.

h2. Notice

* Maven 3.0.4 or better is required to build the [Source]
* Apache Karaf 2.3.1 or better is required for deploying Camel 2.11 onwards, when using Apache Karaf.
* Spring 3.1 is now required as minimum Spring version. Spring 3.0 is @deprecated and only partially supported with this Camel release.

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] |

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] |