Author: buildbot
Date: Sun Sep 27 08:19:54 2015
New Revision: 966966

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/camel-2160-release.html

Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/camel/content/camel-2160-release.html
==============================================================================
--- websites/production/camel/content/camel-2160-release.html (original)
+++ websites/production/camel/content/camel-2160-release.html Sun Sep 27 
08:19:54 2015
@@ -84,7 +84,7 @@
        <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h1 
id="Camel2.16.0Release-Camel2.16.0release(currentlyinprogress)">Camel 
2.16.0&#160;release (currently in progress)</h1><div 
style="padding-right:20px;float:left;margin-left:-20px;"><p><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png"; 
data-image-src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png";></span></p></div><div
 style="min-height:200px">&#160;</div><h2 
id="Camel2.16.0Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to 
the 2.16.0 release which approx XXX issues resolved (new features, improvements 
and bug fixes such as...)</p><p>Noteworthy improvements:</p><ul><li>The route 
models (definition classes) preserve property placeholders, which allows round 
trip editing, and also prevents showing potential sensitive 
information</li><li>Added onPrepareFailure option to&#160;<a shape
 ="rect" href="dead-letter-channel.html">Dead Letter Channel</a> to allow a 
custom processor to prepare the Exchange before sending to the dead letter 
queue.</li><li><a shape="rect" href="mongodb.html">MongoDB</a> tailable 
consumers now allow setting the <code>readPreference</code> 
option.</li><li>Using setFaultBody / setFaultHeader behaves similar to setBody 
/ setHeader to preserve existing headers/attachments by setting on existing IN 
or OUT message.</li><li>Java DSL using choice with end vs endChoice now 
validates you use them as intended. Any misconfiguration now throws an 
exception explaining the problem.</li><li><a shape="rect" 
href="pojo-producing.html">POJO Producing</a> and&#160;<a shape="rect" 
href="pojo-consuming.html">POJO Consuming</a> lifecycle is now in sync with <a 
shape="rect" href="camelcontext.html">CamelContext</a>&#160;which ensures it 
works as similar to Camel&#160;<a shape="rect" href="routes.html">Routes</a> 
does. Also the created producer/consumer is stopped 
 when&#160;<a shape="rect" href="camelcontext.html">CamelContext</a>&#160;is 
stopping to cleanup properly.</li><li><a shape="rect" 
href="jms.html">JMS</a>&#160;component now allows configuring 
concurrentConsumers/maxConcurrentConsumers separately between from(jms) vs 
to(jms) using request/reply over JMS</li><li><span><a shape="rect" 
class="external-link" 
href="https://issues.apache.org/jira/browse/CAMEL-8506";>Added SEARCH</a> 
operation to Elasticsearch component</span></li><li><span>The&#160;<a 
shape="rect" href="properties.html">Properties</a> component (property 
placeholder) now supports an encoding option to allow reading the .properties 
files using a specific charset such as UTF-8. By default ISO-8859-1 is used 
(latin1)</span></li><li><span>Added&#160;<code>receviveBufferSize</code> option 
to the <a shape="rect" href="ftp.html">FTP</a>&#160;component to make download 
faster. The size is by default 32kb buffer.</span></li><li><span>The&#160;<a 
shape="rect" href="aggregator2.html">
 Aggregator2</a> EIP now allows an external source using 
a&#160;<code>AggregateController</code> to control the aggregator, such as for 
forcing completing a group or all groups, or query runtime information from the 
aggregator. A default controller is provided out of the box if none has been 
configured.</span></li><li><span>The&#160;<a shape="rect" 
href="aggregator2.html">Aggregator2</a> now enlists in JMX using 
a&#160;<code>ManagedAggregateProcessorMBean</code> which has more information, 
and also allows using the aggregate controller to control 
it.</span></li><li><span>The&#160;<a shape="rect" 
href="aggregator2.html">Aggregator2</a> now includes more runtime statistics 
which can be accessed from Java and JMX about number of incoming and completed 
exchanges, and per different completion 
triggers.</span></li><li><span>The&#160;<a shape="rect" 
href="aggregator2.html">Aggregator2</a> now supports pre-completion mode if the 
aggregation strategy implements&#160;<code>PreCompletionAwareAg
 gregationStrategy</code>. This supports the use-case where an incoming 
Exchange are used to determine if the current aggregated group is completed or 
not. If completed the group is emitted as-is, and the new incoming Exchange is 
used to start a new group from scratch.</span></li><li><span>Added options 
to&#160;<a shape="rect" href="mail.html">Mail</a> consumer so it can skip or 
handle a mail message that cannot be read from the mail server in the batch; 
and then move on to read the next message. This ensures the consumer can deal 
with mail boxes that has problematic mails that otherwise will cause no mails 
to be retrieve by the consumer in the batch.</span></li><li>The runtime route 
processors and their corresponding model definition are now linked by their id 
using <code>HasId</code>, so its easier to obtain the processor or model 
definition from the <code>getProcessor(id)</code>&#160;and 
<code>getProcessorDefintion(id)</code>&#160;api on 
CamelContext.</li><li>CamelContext now also
  includes a getManagedProcessor API to easily get the mbean client api for the 
processor, so you can access the runtime JMX statistics from Java 
code.&#160;</li><li><span><a shape="rect" href="spring-boot.html">Spring 
Boot</a> applications now <a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/CAMEL-8532";>block the main thread 
of the execution</a></span></li><li><span><a shape="rect" 
href="spring-boot.html">Spring Boot</a> automagically <a shape="rect" 
class="external-link" 
href="https://issues.apache.org/jira/browse/CAMEL-8523";>loads XML routes 
definitions</a> from 
classpath</span></li><li><span>Added&#160;<code>MainListener</code> to make it 
easier for Camel Boot / Standalone Camel to implement custom logic to trigger 
during the starting and stopping of the 
application.</span></li><li><span><span>Camel Jackson now provides <a 
shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/CAMEL-8554";><code>Map</code> to 
<code>Object</c
 ode> converter</a></span></span></li><li><span>Ability to refer to existing 
hazelcast instance by id, using&#160;<a shape="rect" 
href="hazelcast-component.html">Hazelcast Component</a></span></li><li><a 
shape="rect" href="direct.html">Direct</a> and&#160;<a shape="rect" 
href="direct-vm.html">Direct-VM</a> now supports 
the&#160;<span>failIfNoConsumers option</span></li><li>Making it easier to add 
custom&#160;<a shape="rect" href="type-converter.html">Type Converter</a> to 
your Camel applications without having to use the META-INF file. In Spring or 
Blueprint just add them as &lt;bean&gt;s. See more details at&#160;<a 
shape="rect" href="type-converter.html">Type Converter</a> 
documentation.</li><li>camel-cxf PAYLOAD supports stream cache out of 
box.</li><li><p><code>BridgePropertyPlaceholderConfigurer</code> supports to 
handle the <span><a shape="rect" href="jasypt.html">jasypt </a>encryption 
inside and outside of the camelContext.</span></p></li><li><p>The camel-aws 
component now sup
 port Amazon DynamoDB version 2<span><br 
clear="none"></span></p></li><li><p>The&#160;<a shape="rect" 
href="wire-tap.html">Wire Tap</a> eip now also emits event notifications when 
sending the Exchange to the wire tap destination</p></li><li><a shape="rect" 
href="camel-test.html">Camel Test</a> has new option isDumpRouteStats that 
dumps all route usage statistics as XML files in target/camel-route-stats 
directory, which can be used to inspect "route coverage" reports.</li><li>Now 
<a shape="rect" href="netty4.html">Camel Netty</a> component doesn't intercept 
consumers with <code>httpMethodRestrict=OPTIONS</code></li><li><span>Now <a 
shape="rect" href="netty4-http.html">Netty HTTP</a> resolves OPTIONS prefix 
matches earlier</span></li><li>Using&#160;<a shape="rect" 
href="load-balancer.html">Load Balancer</a> with Java DSL now builds the route 
model using the specific model types, which renders a more accurate route 
model</li><li>Enhanced the PredicateBuilder to support vargs and list in
  the "or" builder method</li><li>Using custom&#160;<code>HttpBinding</code> 
with&#160;<a shape="rect" href="http.html">HTTP</a> and&#160;<a shape="rect" 
href="http4.html">HTTP4</a> is now easier as they can be instantiated using a 
default no-arg constructor</li><li>Added&#160;<code>readLock=idempotent</code> 
to the&#160;<a shape="rect" href="file2.html">File2</a> consumer which allows 
to reuse an idempotent repository as read-lock which enables Camel to run 
reliable in clustered mode, where each node competes for the same files from a 
shared file system. This requires that the idempotent repository supports 
clustering such as&#160;<a shape="rect" 
href="hazelcast-component.html">Hazelcast Component</a> or&#160;<a shape="rect" 
href="infinispan.html">Infinispan</a> - or using the JDBC for a shared database 
table.</li><li><a shape="rect" href="rx.html">Camel RX</a> now ensures that 
observe and subscribe are done within an unit of work to ensure on completions 
is executed, such as they a
 re done when you use regular Camel routes.</li><li>The&#160;<a shape="rect" 
href="jms.html">JMS</a>&#160;component now includes the 
underlying&#160;<code>javax.jms.Session</code> instance on the Camel message 
which allows end users to easier to use client acknowledge mode, in case the 
client wants to use the session to call recover or rollback.</li><li>Added 
<code>completionEager</code>&#160;option to&#160;<a shape="rect" 
href="idempotent-consumer.html">Idempotent Consumer</a> to whether to complete 
the idempotent consumer eager or when the exchange is done.</li><li>Working 
with the Camel source code in Eclipse with m2eclipse plugin improved to avoid 
endless file changed detection and recompile the source.</li><li>Add 
option&#160;<code>suppressExceptions</code> to&#160;<a shape="rect" 
href="jsonpath.html">JSonPath</a> which allows to ignore exceptions such as 
NoSuchPathException when the json payload does not contain the path defined in 
the json expression.</li><li><a shape="rect" h
 ref="spring-boot.html">Spring Boot</a> now creates <code>CamelContext</code>, 
<code>ProducerTemplate</code> and <code>ConsumerTemplate</code> beans only if 
those are not defined by the 
user.&#160;&#160;</li><li>New&#160;<code>camel-archetype-spring-boot</code> to 
create a new Camel Spring Boot project using 
Maven.</li><li>New&#160;<code>camel-archetype-cdi</code>&#160;to create a new 
Camel CDI project using Maven.</li><li><a shape="rect" 
href="ftp2.html">FTP2</a> doesn't support absolute directories in endpoint 
URIs. In such cases, paths will be treated as relative and WARN message will be 
printed in logs. In future versions, there'll be no such assumption and 
validation exception will be thrown instead.</li><li><a shape="rect" 
href="swagger.html">Swagger</a> module now supports getting api-docs from 
multiple camel contexts in the JVM. The entry point at /api-docs now lists the 
contexts detected, and you need to append the context id in the path, eg 
/api-docs/myCamel</li><li><a shap
 e="rect" href="ftp2.html">FTP2</a> supports&#160;<code>autoCreate=true</code> 
for ftp consumers</li><li><a shape="rect" href="rest-dsl.html">Rest DSL</a> now 
supports to define parameter using fine grained details for the <a shape="rect" 
href="swagger.html">Swagger</a>&#160;api documentation. For an example see 
the&#160;<code>camel-example-servlet-rest-tomcat</code> in the Apache Camel 
distribution.</li><li>The&#160;<a shape="rect" href="simple.html">Simple</a> 
language now has a equals ignore case operator (=~) when comparing with string 
values&#160;</li><li>If using &lt;contextScan&gt; with Spring or Blueprint to 
filter RouteBuilder classes, then Camel will now by default only look for 
singleton beans. You can turn on the old behavior to include prototype scoped 
with the new option&#160;<pre>includeNonSingletons</pre></li><li>The <a 
shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/spi/IdempotentRepository.html";>Idem
 potentRepository</a> now supports clear operation, to clear the repository, 
and expose it over JMX.</li><li><a shape="rect" 
href="netty4.html">Netty4</a>&#160;in clientMode will now automatic re-connect 
if the connection was disconnected to the 
server.</li><li>The&#160;<code>throwException</code>&#160;EIP now supports 
creating a new exception instance from a simple language expressions, which 
allows to make it dynamic based on information from the current 
Exchange.</li><li>When using&#160;<a shape="rect" 
href="expression.html">Expression</a> or&#160;<a shape="rect" 
href="predicate.html">Predicate</a> in the routes, you can refer to the value 
as an external resource by using <strong>resource:classpath:path</strong> or 
<strong>resource:file:path</strong> - for example 
<code>resource:classpath:com/foo/myscript.groovy</code>.</li><li>Added option 
useMessageBodyForSql to the&#160;<a shape="rect" href="sql-component.html">SQL 
Component</a> which allows to use more dynamic SQL queries inst
 ead of the fixed SQL defined in the endpoint uri.</li><li>Added sticky option 
to&#160;failover&#160;<a shape="rect" href="load-balancer.html">Load 
Balancer</a> so the load balancer can start from the last known good 
endpoint.</li><li>Added option&#160;<code>shareUnitOfWork</code> to&#160;<a 
shape="rect" href="content-enricher.html">Content Enricher</a> eip</li><li><a 
shape="rect" href="content-enricher.html">Content Enricher</a> with enrich and 
pollEnrich now supports dynamic endpoint uris computed using an&#160;<a 
shape="rect" href="expression.html">Expression</a> that allows to use values 
from the current&#160;<a shape="rect" href="exchange.html">Exchange</a> so you 
for example can poll a file which name is computed from data from the&#160;<a 
shape="rect" href="exchange.html">Exchange</a> etc. This change breaks the XML 
DSL a little bit and there is an easy migration effort. The Java DSL stays 
backwards compatible.</li><li>The Camel Karaf commands about routes now no 
longer requir
 e the context-id as 2nd parameter that is optional - if none provided then the 
command is a bulk operation for all Camel contexts.</li><li>A simpler version 
of dynamic to with the new &lt;toD&gt; and toD in the DSL, documented at <a 
shape="rect" href="message-endpoint.html">Message Endpoint</a></li><li><a 
shape="rect" href="wire-tap.html">Wire Tap</a> now supports dynamic endpoint 
uris, in similar way the new &lt;toD&gt; and toD does</li><li><a shape="rect" 
href="rest-dsl.html">Rest DSL</a> now supports the new &lt;toD&gt; and toD in 
the rest-dsl.</li><li>The&#160;<a shape="rect" href="eip.html">EIP</a>'s now 
have more specialized processor mbeans in&#160;<a shape="rect" 
href="camel-jmx.html">Camel JMX</a> and you can also dump the processor as xml 
source to represent how it would <em>appear in xml 
dsl</em>&#160;</li><li>Configuring&#160;<a shape="rect" 
href="camel-jmx.html">Camel JMX</a> using JVM system properties now all take 
precedence over any existing configuration (some optio
 n was not doing that)</li><li>Introduced Extended JMX statistics level to 
gather additional metrics during runtime.</li><li>All the <a shape="rect" 
href="aws.html">Camel-AWS</a> components now support the definition (through 
URI options) of Proxy Host and Proxy Port.</li><li>The HTTP based consumers no 
longer include Camel headers in the responses by default (they already did this 
for the producers to not include Camel headers when calling a HTTP 
service).</li><li><a shape="rect" href="bindy.html">Bindy</a> now supports 
having multiple pojos as models in the same java package. Instead of 
configuring using package names, you configure using class names.</li><li>You 
can configure on the&#160;<a shape="rect" href="type-converter.html">Type 
Converter</a> registry what should happen if a duplicate type converter is 
being added (override, ignore or fail) as well configure the logging 
level.</li><li><a shape="rect" href="using-camelproxy.html">Using 
CamelProxy</a> now binds the method para
 meters to the message body/header using Camel annotations to define the 
binding rules. If no annotations is defined the the parameter is assumed the 
message body. You can turn this off to have the old behavior.</li><li><a 
shape="rect" href="camel-jmx.html">Camel JMX</a> using custom JMX 
operations/attributes with&#160;<code>@ManagedResource</code> now also includes 
the default set of JMX from Camel, so you have both 
worlds.</li><li>Added&#160;<code>completeAllOnStop</code> option to&#160;<a 
shape="rect" href="aggregator2.html">Aggregator2</a> to allow to complete all 
pending exchanges from the aggregation repository when stopping. For example 
when using a memory based repository to ensure all of those exchanges are 
processed when stopping.</li><li>Allow to configure the OK status code ranges 
for&#160;<a shape="rect" href="http.html">HTTP</a>,&#160;<a shape="rect" 
href="http4.html">HTTP4</a>,&#160;<a shape="rect" href="netty-http.html">Netty 
HTTP</a>,&#160;<a shape="rect" href="netty
 4-http.html">Netty4 HTTP</a>,&#160;and&#160;<a shape="rect" 
href="jetty.html">Jetty</a> components for their producers. The default range 
is 200-299.</li><li>Now&#160;<a shape="rect" 
href="vertx.html">Vert.x</a>&#160;endpoints support&#160;<a shape="rect" 
class="external-link" 
href="https://issues.apache.org/jira/browse/CAMEL-8987";>multiple 
consumers</a>.&#160;</li><li>Support for TAR files: marshalling and 
unmarshalling via a data format; splitting; aggregating. See <em>Data 
Formats</em> section below.</li><li><a shape="rect" href="sjms.html">SJMS</a> 
component has been aligned to bind between Camel Message and JMS Message in the 
same way as&#160;<a shape="rect" href="jms.html">JMS</a> component does 
that.</li><li>Added failsafe check to ensure&#160;<a shape="rect" 
href="jms.html">JMS</a> consumer will no longer send back a reply message to 
the same destination as itself to avoid endless loop. There is an option to 
turn this off in case you know what you are doing.</li><li>The <a s
 hape="rect" href="hazelcast-component.html">Camel-hazelcast</a> component now 
supports the Ringbuffer data structure.</li><li>New XSLT Aggregation Strategy 
to merge two messages with an XSLT file. See <a shape="rect" 
class="external-link" 
href="https://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/util/toolbox/XsltAggregationStrategy.html";>javadoc</a>
 <em>(link valid once this release is published)</em>. It is also accessible 
from the toolbox: <code>AggregationStrategies.xslt()</code>.</li><li>A pure 
Java based&#160;<a shape="rect" href="swagger.html">Swagger</a> component that 
also supports any JVM (standalone, war, jee, spring boot, et all) as the 
platform for API of the&#160;Camel&#160;<a shape="rect" 
href="rest-dsl.html">Rest DSL</a>. (previously a servlet was 
required).</li><li><a shape="rect" href="data-format.html">Data Format</a>'s is 
now also enlisted in&#160;JMX under the dataformats group (requires the data 
format implementation is a Camel&#160;<code>
 Service)</code></li></ul><p>Fixed the following issues:</p><ul><li>File 
language now properly supports file extensions having double dots, such as 
.tar.gz</li><li>Fixed issue with doTry not stopping routing if a fault message 
was set using setFaultBody within the doTry.</li><li>Fixed&#160;<a shape="rect" 
href="bean.html">Bean</a>&#160;language to support end parenthesis in quoted 
string literals as part of method parameters, and not as end of method 
signature.&#160;</li><li>Fixed&#160;<a shape="rect" href="ftp2.html">FTP2</a> 
using&#160;<code>pollEnrich</code> with disconnect=true and delete=true, would 
disconnect before deleting the file. Now we disconnect last.</li><li>Various 
EIPs such as&#160;<a shape="rect" href="splitter.html">Splitter</a>,&#160;<a 
shape="rect" href="recipient-list.html">Recipient List</a>,&#160;<a 
shape="rect" href="multicast.html">Multicast</a> no longer reuse message id in 
their sub messages, but each sub message has its own unique message id (just as 
the e
 xchange has).</li><li>Fixed an issue with the circuit breaker&#160;<a 
shape="rect" href="load-balancer.html">Load Balancer</a> not honoring the half 
open after period after an error was detected.</li><li>Fixed&#160;<a 
shape="rect" href="ftp2.html">FTP2</a> now calling disconnect if there was no 
messages to poll, even when disconnect=true configured.</li><li>Fixed&#160;<a 
shape="rect" href="throttler.html">Throttler</a> using method call expression 
in XML DSL was not working</li><li>Fixed stopping a route may stop context 
scoped&#160;OnException that would otherwise send message to an endpoint, now 
been stopped and an IllegalStateException was thrown while handling the 
exception.</li><li>Fixed using a&#160;<a shape="rect" 
href="load-balancer.html">Load Balancer</a> from a context 
scoped&#160;onException may double up its processors participating in the 
balancer per route in the 
context.</li><li>Fixed&#160;<code>parallelAggregate</code> on 
multicast/splitter/recipient list to use a th
 read pool for running concurrently.&#160;</li><li>Fixed&#160;<a shape="rect" 
href="stream-caching.html">Stream caching</a> to not delete data that was 
spooled to disk before both exchanges are done routing.</li><li>Fixed&#160;<a 
shape="rect" href="defaulterrorhandler.html">DefaultErrorHandler</a> to use 1 
sec redelivery delay out of the box as the other error handlers 
does.&#160;</li><li>Fixed 
setting&#160;<code>logExhaustedMessageHistory=true</code> on&#160;<a 
shape="rect" href="dead-letter-channel.html">Dead Letter Channel</a> to log the 
message history. This option is by default false on DLC as it would be as 
before (not noisy).</li><li>Fixed double refresh of the parent Spring Boot 
Application Context</li><li>Fixed configuring endpoint uri's with primitive 
types when the value is looked up in the registry using #notation would not 
work.</li><li>Fixed using transacted in the Scala DSL</li><li>camel-swagger now 
filters out older Camel releases that do not support rest-dsl when it 
 discovers Camel's in the JVM</li><li>Fixed&#160;<a shape="rect" 
href="mail.html">Mail</a>&#160;consumer to use the default value of 60 seconds 
as poll interval again, instead of 0.5 sec.</li><li>Fixed&#160;<a shape="rect" 
href="netty.html">Netty</a> and&#160;<a shape="rect" 
href="netty4.html">Netty4</a> may perform x2 redelivery when attempting to 
redeliver to a netty producer endpoint</li><li>Fixed&#160;<a shape="rect" 
href="recipient-list.html">Recipient List</a> would not work if using RAW() 
syntax in endpoint uri</li><li>Fixed Camel Commands to not show correct route 
status for suspended routes in the routes-list command.</li><li>Fixed 
using&#160;<a shape="rect" href="http.html">HTTP</a> 
and&#160;<code>Exchange.HTTP_QUERY</code>&#160;or 
<code>Exchange.HTTP_URI</code>&#160;may double encode the value.</li><li>Fixed 
starting a route from a file endpoint, and then do 
a&#160;<code>pollEnrich</code> from another file endpoint, and both using the 
same readLock=marker, would only delet
 e one of the marker files when done.</li><li><span style="line-height: 
1.42857;">Fixed&#160;</span><a shape="rect" 
href="jgroups.html">JGroups</a><span style="line-height: 
1.42857;">&#160;managed routes starting too early.</span></li><li><span 
style="line-height: 1.42857;">Fixed&#160;<a shape="rect" 
href="http4.html">HTTP4</a>,&#160;<a shape="rect" href="http.html">HTTP</a>, <a 
shape="rect" href="netty4-http.html">Netty4 HTTP</a>,&#160;<a shape="rect" 
href="netty-http.html">Netty HTTP</a> producers forming URLs badly when using 
Exchange.HTTP_PATH and query parameters inside the endpoint 
URI.</span></li><li><span style="line-height: 1.42857;">Fixed&#160;<a 
shape="rect" href="mqtt.html">MQTT</a> receiving duplicates in some cases when 
the connection to the broker was lost.</span></li><li><span style="line-height: 
1.42857;">Fixed&#160;<a shape="rect" href="routing-slip.html">Routing Slip</a> 
and&#160;<a shape="rect" href="dynamic-router.html">Dynamic Router</a> to not 
evaluate expressi
 on again during each redelivery attempt from&#160;<a shape="rect" 
href="error-handler.html">Error Handler</a> if routing caused an 
exception.</span></li><li><span style="line-height: 1.42857;">Fixed a JMX leak 
where FTP producers was not unregistered from JMX when their routes are 
removed.</span></li><li><span style="line-height: 1.42857;">Fixed 
suspend/resume&#160;<a shape="rect" href="seda.html">SEDA</a>&#160;routes may 
in rare cases not poll new messages from the seda queue when 
resumed.</span></li></ul><h3 id="Camel2.16.0Release-New">New <a shape="rect" 
href="enterprise-integration-patterns.html">Enterprise Integration 
Patterns</a></h3><h3 id="Camel2.16.0Release-New.1">New <a shape="rect" 
href="components.html">Components</a></h3><ul><li><a shape="rect" 
href="paho.html">camel-paho</a>&#160;- For MQTT messaging using Eclipse Paho 
client</li><li><a shape="rect" href="pdf.html">camel-pdf</a> - For creating PDF 
documents</li><li><a shape="rect" href="grape.html">camel-grape</a> -&#1
 60;allows you to fetch, load and manage additional jars when CamelContext is 
running.</li><li><a shape="rect" href="slack.html">camel-slack</a> 
-&#160;allows you to connect to an instance of Slack&#160;and delivers a 
message contained in the message body via a pre established Slack incoming 
webhook.</li><li><a shape="rect" href="aws-ec2.html">camel-aws-ec2</a> - 
Component providing support to Amazon Web Services EC2&#160;</li><li><a 
shape="rect" href="undertow.html">camel-undertow</a> - To use <a shape="rect" 
class="external-link" href="http://undertow.io/index.html"; 
rel="nofollow">Undertow</a> as HTTP server or client.</li><li>camel-git - A 
generic Git component</li><li><a shape="rect" 
href="sjms-batch.html">camel-sjms</a> -&#160;<span style="color: 
rgb(0,0,0);">SJMS Batch is a specialized component for highly performant, 
transactional batch consumption from a JMS queue</span></li><li><span 
style="color: rgb(0,0,0);">camel-http-common - A common base component for 
reuse among all t
 he various HTTP components we have.</span></li><li><span style="color: 
rgb(0,0,0);">camel-swagger-java - A pure Java based&#160;<a shape="rect" 
href="swagger.html">Swagger</a> component.</span></li></ul><h3 
id="Camel2.16.0Release-NewDSL">New DSL</h3><ul><li><a shape="rect" 
href="script.html">Script</a> - to execute a script during routing</li><li><a 
shape="rect" href="message-endpoint.html">Dynamic To </a>- to send a message to 
a dynamic computed endpoint. This is a simpler version than using&#160;<a 
shape="rect" href="recipient-list.html">Recipient List</a></li></ul><h3 
id="Camel2.16.0Release-NewAnnotations">New Annotations</h3><h3 
id="Camel2.16.0Release-NewDataFormats">New <a shape="rect" 
href="data-format.html">Data Formats</a></h3><ul><li><a shape="rect" 
href="boon.html">camel-boon</a> - For mapping POJO to/from 
json.</li><li>camel-tarfile (pending documentation) - For compressing and 
extracting TAR files; also offers a Splitter (for processing TAR entries 
individually) and an A
 ggregation Strategy (for collecting the TAR entries into an 
archive).</li></ul><h3 id="Camel2.16.0Release-New.2">New <a shape="rect" 
href="languages.html">Languages</a></h3><h3 id="Camel2.16.0Release-New.3">New 
<a shape="rect" href="examples.html">Examples</a></h3><h3 
id="Camel2.16.0Release-New.4">New <a shape="rect" 
href="tutorials.html">Tutorials</a></h3><h2 
id="Camel2.16.0Release-APIbreaking">API breaking</h2><ul><li><p 
class="p1">&#160;org.apache.camel.mode.LoadBalancerDefinition no longer 
implements org.apache.camel.processor.loadbalancer.LoadBalancer&#160;which is 
the runtime processor (this was never 
intended).</p></li><li>The&#160;<code>ref</code> attribute 
on&#160;<code>&lt;loadBalance&gt;</code> has been removed, as it has been 
deprecated for a long time, and you should use 
a&#160;<code>&lt;customLoadBalancer&gt;</code> to refer to a custom load 
balancer.</li><li>The&#160;<code>copy</code> method 
on&#160;<code>StreamCache</code> now takes an&#160;<code>Exchange</code> as p
 arameter.</li><li>Various APIs in&#160;<code>camel-jms</code> has been 
adjusted to support including the JMS session parameter - 
<code>javax.jms.Session</code>. Though these API changes are mostly internal 
facing, and we do not expect end users 
problems.</li><li>The&#160;<code>resourceUri</code> 
and&#160;<code>resourceRef</code> attributes 
on&#160;<code>&lt;enrich&gt;</code> and&#160;<code>&lt;pollEnrich&gt;</code> 
has been removed as they now support a dynamic uris computed from an&#160;<a 
shape="rect" href="expression.html">Expression</a>.</li><li>Various APIs from 
camel-http in the package&#160;<code>org.apache.camel.component.http</code> has 
been moved to the camel-http-common module in the 
package&#160;<code>org.apache.camel.http.common</code> which mean you may need 
to change the imports.</li><li>Renamed&#160;<code>All</code>&#160;enum 
on&#160;<code>org.apache.camel.ManagementStatisticsLevel</code> 
to&#160;<code>Default</code>&#160;</li><li>Added new boolean parameter to metho
 d on&#160;<code>org.apache.camel.spi.ShutdownPrepared</code></li><li>Renamed 
<code>org.apache.camel.component.sjms.jms.KeyFormatStrategy</code>&#160;to&#160;<code>org.apache.camel.component.sjms.jms.JmsKeyFormatStrategy</code></li></ul><h2
 id="Camel2.16.0Release-KnownIssues">Known Issues</h2><h2 
id="Camel2.16.0Release-Dependencyupgrades">Dependency 
upgrades</h2><ul><li>Amazon Web Service Java SDK from 1.8.9.1 to 
1.10.12</li><li>Apache Commons Cli from 1.2 to 1.3.1</li><li>Apache Commons 
Compress from 1.5 to 1.10</li><li>Apache Commons Lang from 3.3.2 to 
3.4</li><li>Apache Commons Math3 from 3.3 to 3.5</li><li>Apache Commons Pool 
from 2.3 to 2.4.2</li><li>Apache Deltaspike from 1.3.0 to 1.5.0</li><li>Apache 
DS from 2.0.0-M19 to 2.0.0-M20</li><li>Apache HttpComponents Core from 4.3.3 to 
4.4.1</li><li>Apache HttpComponents Client from 4.3.6 to 4.4.1</li><li>Apache 
JClouds from 1.8.1 to 1.9.1</li><li>Apache Lucene from 4.10.2 to 
4.10.4</li><li>Apache Olingo Odata from 2.0.0 to 2.0.4</li
 ><li>Apache Solr from 4.10.2 to 4.10.4</li><li>Apns from 0.2.3 to 
 >1.0.0.Beta6</li><li>AspectJ from 1.6.2 to 1.8.6</li><li>Async-http-client 
 >from 1.9.8 to 1.9.30</li><li>Atmosphere from 2.2.6 to 
 >2.3.4</li><li><p>Cassandra from 2.1.2 to 2.1.8</p></li><li><p>Cassandra 
 >Datastax Java Driver 2.1.2 to 2.1.7.1</p></li><li>Cglib from 2.2 to 
 >3.1</li><li>Chunk Templates from 2.6.3 to 3.0.1</li><li>Classmate from 1.0.0 
 >to 1.3.0</li><li>CMIS 0.8.0 to 0.13.0</li><li>DNSJava from 2.1.6 to 
 >2.1.7</li><li>Docker-java from 0.10.5 to 1.3.0</li><li>Dropbox core Java SDK 
 >from 1.7.6 to 1.7.7</li><li>Dropwizard Metrics from 3.1.0 to 
 >3.1.2</li><li>Ehcache from 2.9.1 to 2.10.0</li><li>Elasticsearch from 1.4.4 
 >to 1.7.1</li><li>Expression Language from 2.2.4 to 2.2.5</li><li>Facebook4j 
 >from 1.1.12 to 2.3.0</li><li>Felix Config Admin from 1.8.0 to 
 >1.8.8</li><li>Felix SCR annotations from 1.9.8 to 1.9.12</li><li>Freemarker 
 >from 2.3.21 to 2.3.23</li><li>Flapdoodle Embedded MongoDB from 1.46.4 to 
 >1.50.0</li><li>Go
 ogle App Engine from 1.8.3 to 1.9.25</li><li>Gson from 3.2 to 
3.2.1</li><li>Guice from 3.0 to 4.0</li><li>iCal4j from 1.5.0.2 to 
1.6.0</li><li>Hazelcast from 3.4.2 to 3.5.1</li><li>Hibernate Validator from 
5.0.3.Final to 5.2.1.Final</li><li>Hsqldb from 2.3.2 to 
2.3.3</li><li>Infinispan from 6.0.2.Final to 7.2.5.Final</li><li><span>Jackson2 
from 2.4.3 to 2.6.2</span></li><li><span>Jackrabbit from 2.10.0 to 
2.11.0</span></li><li>Jboss AS Maven Plugin from 7.4.Final to 
7.7.Final<span><br clear="none"></span></li><li>Jboss Logging from 3.1.4.GA to 
3.3.0.Final</li><li><span>Jboss Marshalling from 1.4.4.Final to 
1.4.10.Final</span></li><li><span>Jboss Weld from 2.2.4.Final to 
2.3.0.Final</span><span><br clear="none"></span></li><li><span>Jgroups from 
3.6.1.Final to 3.6.4.Final</span></li><li><span>Jibx from 1.2.5 to 
1.2.6</span></li><li><span>Joda-time from 2.5 to 
2.8.1</span></li><li><span>Jruby from 1.7.18 to 
1.7.21</span></li><li><span>Jsch from 0.1.51 to 0.1.53</span></li><li>Jsonpath
  from 1.2.0 to 2.0.0</li><li>Jt400 from 6.7 to 8.6</li><li>Kafka from 0.8.1.1 
to 0.8.2.0</li><li>LightCouch from 0.1.3 to 0.1.8</li><li>Minimal JSON from 
0.9.1 to 0.9.3</li><li>MongoDB Java Driver from 2.12.4 to 3.0.4</li><li>Mvel2 
from 2.2.1.Final to 2.2.6.Final</li><li>OGNL from 3.0.8 to 
3.0.11</li><li>OpenEJB from 4.6.0.2 to 4.7.2</li><li>OpenJPA from 2.3.0 to 
2.4.0</li><li>Openshift Java Client 2.5.0.Final to 2.7.0.Final</li><li>Pax Exam 
from 4.3.0 to 4.6.0</li><li>Pax Logging from 1.8.1 to 1.8.3</li><li>Pax 
Swissbox Tinybundles from 1.3.1 to 1.3.2</li><li>PDFBox from 1.6.0 to 
1.8.10</li><li>Rabbitmq Amqp client from 3.3.4 to 3.5.4</li><li>Restlet from 
2.2.x to 2.3.1<span><br clear="none"></span></li><li>Scala from 2.11.5 to 
2.11.7</li><li>Scala Maven Plugin from 3.2.0 to 3.2.2</li><li>Scalatest from 
2.2.0 to 2.2.5</li><li>Shade Maven Plugin from 2.1 to 2.4</li><li>SLF4J from 
1.7.10 to 1.7.12</li><li>Snappy from&#160;<span>1.1.</span><span class="x 
x-first x-last">0.1 to 1.1.2</
 span></li><li>Snakeyaml from 1.14 to 1.16</li><li>Spring upgrades</li><li>Sshd 
from 0.13.0 to 0.14.0</li><li>TestNG from 6.8.8 to 6.8.21</li><li>Twitter4J 
from 4.0.2 to 4.0.4</li><li>Univocity Parsers from 1.2.1 to 1.5.6</li><li>VertX 
from 2.2.5 to 3.0.0</li><li>Xmlunit from 1.5 to 1.6</li><li>XStream from 1.4.7 
to 1.4.8</li><li>ZXing from 3.0.1 to 3.2.1</li></ul><h2 
id="Camel2.16.0Release-Importantchangestoconsiderwhenupgrading">Important 
changes to consider when upgrading</h2><ul><li>The dumpRoutesAsXml operation 
now preserve property placeholder used in the route models.&#160;</li><li>Using 
setFaultBody / setFaultHeader behaves similar to setBody / setHeader to 
preserve existing headers/attachments by setting on existing IN or OUT 
message.</li><li>If using concurrent consumer on&#160;<a shape="rect" 
href="jms.html">JMS</a>&#160;endpoints for request/reply over JMS then you must 
use the new replyToConcurrentConsumers, replyToMaxConcurrentConsumers options 
to configure the values.&
 #160;</li><li>When the&#160;<a shape="rect" 
href="aggregator2.html">Aggregator2</a> is forced completed the exchange 
property&#160;<code>Exchange.AGGREGATED_COMPLETED_BY</code> value has been 
changed from "forceCompletion" to "force" so its named like the other 
completion triggers.</li><li>Removed unsupported modules camel-web and 
camel-web-standalone.</li><li>Removed unsupported camel:dot functionality from 
camel:run plugin.</li><li>Removed unsupported camel-archetype-scala-component 
from maven archetypes.</li><li>The Maven coordinate for linkedin and olingo2 
components changed to be aligned like all the others having groupId as just 
org.apache.camel.</li><li>If using MongoDB component, the option<em> 
invokeGetLastError</em> doesn't exist anymore. The option invokeGetLastError 
instructs the MongoDB Java driver to invoke <em>getLastError()</em> after every 
call. In the 3.0.0 MongoDB driver implementation, the <em>getLastError()</em> 
method in WriteResult has been removed. So, if nee
 ded, use an acknowledged WriteConcern when executing the write operation and 
then verify the correctness of the operation with the method 
<em>wasAcknowledged()</em> of WriteResult.</li><li>The&#160;<a shape="rect" 
href="jing.html">Jing</a> component now uses&#160;<code>jing</code> as schema 
name in uris, instead of&#160;<code>rng</code> or&#160;<code>rnc</code>. Those 
names has been removed.</li><li><a shape="rect" href="swagger.html">Swagger</a> 
module now supports getting api-docs from multiple camel contexts in the JVM. 
The entry point at /api-docs now lists the contexts detected, and you need to 
append the context id in the path, eg /api-docs/myCamel</li><li>If using 
&lt;contextScan&gt; with Spring or Blueprint to filter RouteBuilder classes, 
then Camel will now by default only look for singleton beans. You can turn on 
the old behavior to include prototype scoped with the new 
option&#160;<pre>includeNonSingletons</pre></li><li>camel-vertx&#160;has been 
upgraded to vertx 3.0 whic
 h requires Java 8 at runtime.</li><li><code>camel-cdi</code> is now using CDI 
1.1 api - support for 1.0 has been dropped.</li><li><a shape="rect" 
href="content-enricher.html">Content Enricher</a> with enrich and pollEnrich 
now supports dynamic endpoint uris computed using an&#160;<a shape="rect" 
href="expression.html">Expression</a> that allows to use values from the 
current&#160;<a shape="rect" href="exchange.html">Exchange</a> so you for 
example can poll a file which name is computed from data from the&#160;<a 
shape="rect" href="exchange.html">Exchange</a> etc. This change breaks the XML 
DSL a little bit and there is an easy migration effort. The Java DSL stays 
backwards compatible.</li><li>Support for CXF 2.7 is 
dropped.</li><li>camel-jetty8 is being considered deprecated and we would like 
to drop this in a nearby future release as Jetty 8.x is EOL.&#160;</li><li>If 
you have explicit configured the JMX statistics level to All then that option 
is now called Default.&#160;</li><li>
 The HTTP based consumers no longer include Camel headers in the responses by 
default (they already did this for the producers to not include Camel headers 
when calling a HTTP service).</li><li><a shape="rect" 
href="bindy.html">Bindy</a> requires to be configured using class names instead 
of package names, as it now supports having multiple model classes in the same 
java packages now.</li><li><a shape="rect" href="using-camelproxy.html">Using 
CamelProxy</a> now binds the method parameters to the message body/header using 
Camel annotations to define the binding rules. If no annotations is defined the 
the parameter is assumed the message body. You can turn this off to have the 
old behavior.</li><li><a shape="rect" href="sjms.html">SJMS</a> component has 
been aligned to bind between Camel Message and JMS Message in the same way 
as&#160;<a shape="rect" href="jms.html">JMS</a> component does that, in the 
process a few APIs and behavior has been 
changed.</li><li><code>DefaultExchangeHolder
 </code>&#160;now only keep primitive / String type headers / exchange 
properties (like JMS component) and filter out other types such as java 
instances (caught exception on exchange property is kept as well).</li><li>The 
Scala based&#160;<a shape="rect" href="swagger.html">Swagger</a> 
(camel-swagger) is deprecated in favor of the new camel-swagger-java 
component.</li><li>The camel-ruby feature has been removed, use 
camel-script-jruby instead.</li></ul><h2 
id="Camel2.16.0Release-GettingtheDistributions">Getting the 
Distributions</h2><h3 id="Camel2.16.0Release-BinaryDistributions">Binary 
Distributions</h3><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Download Link</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>PGP Signature file of download</p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Windows Distribution</
 p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.16.0/apache-camel-2.16.0.zip";>apache-camel-2.16.0.zip</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/2.16.0/apache-camel-2.16.0.zip.asc";>apache-camel-2.16.0.zip.asc</a></p></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Unix/Linux/Cygwin 
Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.16.0/apache-camel-2.16.0.tar.gz";>apache-camel-2.16.0.tar.gz</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/2.16.0/apache-camel-2.16.0.tar.gz.asc";>apache-camel-2.16.0.tar.gz.asc</a></p></td></
 tr></tbody></table></div><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">The above URLs use 
redirection</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>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 <a shape="rect" class="external-link" 
href="http://www.mozilla.com/en-US/firefox/"; 
rel="nofollow">FireFox</a></p></div></div><h3 
id="Camel2.16.0Release-SourceDistributions">Source Distributions</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Download Link</p></th><th col
 span="1" rowspan="1" class="confluenceTh"><p>PGP Signature file of 
download</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Source for Windows</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.zip";>apache-camel-x.y.x-src.zip</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.zip.asc";>apache-camel-x.y.x-src.zip.asc</a></p></td></tr></tbody></table></div><div
 class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Source for Unix/Linux/Cygwin</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.tar.gz";>apache
 -camel-x.y.x-src.tar.gz</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.tar.gz.asc";>apache-camel-x.y.x-src.tar.gz.asc</a></p></td></tr></tbody></table></div><h3
 id="Camel2.16.0Release-GettingtheBinariesusingMaven2">Getting the Binaries 
using Maven 2</h3><p>To use this release in your maven project, the proper 
dependency configuration that you should use in your <a shape="rect" 
class="external-link" 
href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html";>Maven
 POM</a> is:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<div class="wiki-content maincontent"><h1 
id="Camel2.16.0Release-Camel2.16.0release(currentlyinprogress)">Camel 
2.16.0&#160;release (currently in progress)</h1><div 
style="padding-right:20px;float:left;margin-left:-20px;"><p><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png"; 
data-image-src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png";></span></p></div><div
 style="min-height:200px">&#160;</div><h2 
id="Camel2.16.0Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to 
the 2.16.0 release which approx XXX issues resolved (new features, improvements 
and bug fixes such as...)</p><p>Noteworthy improvements:</p><ul><li>The route 
models (definition classes) preserve property placeholders, which allows round 
trip editing, and also prevents showing potential sensitive 
information</li><li>Added onPrepareFailure option to&#160;<a shape
 ="rect" href="dead-letter-channel.html">Dead Letter Channel</a> to allow a 
custom processor to prepare the Exchange before sending to the dead letter 
queue.</li><li><a shape="rect" href="mongodb.html">MongoDB</a> tailable 
consumers now allow setting the <code>readPreference</code> 
option.</li><li>Using setFaultBody / setFaultHeader behaves similar to setBody 
/ setHeader to preserve existing headers/attachments by setting on existing IN 
or OUT message.</li><li>Java DSL using choice with end vs endChoice now 
validates you use them as intended. Any misconfiguration now throws an 
exception explaining the problem.</li><li><a shape="rect" 
href="pojo-producing.html">POJO Producing</a> and&#160;<a shape="rect" 
href="pojo-consuming.html">POJO Consuming</a> lifecycle is now in sync with <a 
shape="rect" href="camelcontext.html">CamelContext</a>&#160;which ensures it 
works as similar to Camel&#160;<a shape="rect" href="routes.html">Routes</a> 
does. Also the created producer/consumer is stopped 
 when&#160;<a shape="rect" href="camelcontext.html">CamelContext</a>&#160;is 
stopping to cleanup properly.</li><li><a shape="rect" 
href="jms.html">JMS</a>&#160;component now allows configuring 
concurrentConsumers/maxConcurrentConsumers separately between from(jms) vs 
to(jms) using request/reply over JMS</li><li><span><a shape="rect" 
class="external-link" 
href="https://issues.apache.org/jira/browse/CAMEL-8506";>Added SEARCH</a> 
operation to Elasticsearch component</span></li><li><span>The&#160;<a 
shape="rect" href="properties.html">Properties</a> component (property 
placeholder) now supports an encoding option to allow reading the .properties 
files using a specific charset such as UTF-8. By default ISO-8859-1 is used 
(latin1)</span></li><li><span>Added&#160;<code>receviveBufferSize</code> option 
to the <a shape="rect" href="ftp.html">FTP</a>&#160;component to make download 
faster. The size is by default 32kb buffer.</span></li><li><span>The&#160;<a 
shape="rect" href="aggregator2.html">
 Aggregator2</a> EIP now allows an external source using 
a&#160;<code>AggregateController</code> to control the aggregator, such as for 
forcing completing a group or all groups, or query runtime information from the 
aggregator. A default controller is provided out of the box if none has been 
configured.</span></li><li><span>The&#160;<a shape="rect" 
href="aggregator2.html">Aggregator2</a> now enlists in JMX using 
a&#160;<code>ManagedAggregateProcessorMBean</code> which has more information, 
and also allows using the aggregate controller to control 
it.</span></li><li><span>The&#160;<a shape="rect" 
href="aggregator2.html">Aggregator2</a> now includes more runtime statistics 
which can be accessed from Java and JMX about number of incoming and completed 
exchanges, and per different completion 
triggers.</span></li><li><span>The&#160;<a shape="rect" 
href="aggregator2.html">Aggregator2</a> now supports pre-completion mode if the 
aggregation strategy implements&#160;<code>PreCompletionAwareAg
 gregationStrategy</code>. This supports the use-case where an incoming 
Exchange are used to determine if the current aggregated group is completed or 
not. If completed the group is emitted as-is, and the new incoming Exchange is 
used to start a new group from scratch.</span></li><li><span>Added options 
to&#160;<a shape="rect" href="mail.html">Mail</a> consumer so it can skip or 
handle a mail message that cannot be read from the mail server in the batch; 
and then move on to read the next message. This ensures the consumer can deal 
with mail boxes that has problematic mails that otherwise will cause no mails 
to be retrieve by the consumer in the batch.</span></li><li>The runtime route 
processors and their corresponding model definition are now linked by their id 
using <code>HasId</code>, so its easier to obtain the processor or model 
definition from the <code>getProcessor(id)</code>&#160;and 
<code>getProcessorDefintion(id)</code>&#160;api on 
CamelContext.</li><li>CamelContext now also
  includes a getManagedProcessor API to easily get the mbean client api for the 
processor, so you can access the runtime JMX statistics from Java 
code.&#160;</li><li><span><a shape="rect" href="spring-boot.html">Spring 
Boot</a> applications now <a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/CAMEL-8532";>block the main thread 
of the execution</a></span></li><li><span><a shape="rect" 
href="spring-boot.html">Spring Boot</a> automagically <a shape="rect" 
class="external-link" 
href="https://issues.apache.org/jira/browse/CAMEL-8523";>loads XML routes 
definitions</a> from 
classpath</span></li><li><span>Added&#160;<code>MainListener</code> to make it 
easier for Camel Boot / Standalone Camel to implement custom logic to trigger 
during the starting and stopping of the 
application.</span></li><li><span><span>Camel Jackson now provides <a 
shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/CAMEL-8554";><code>Map</code> to 
<code>Object</c
 ode> converter</a></span></span></li><li><span>Ability to refer to existing 
hazelcast instance by id, using&#160;<a shape="rect" 
href="hazelcast-component.html">Hazelcast Component</a></span></li><li><a 
shape="rect" href="direct.html">Direct</a> and&#160;<a shape="rect" 
href="direct-vm.html">Direct-VM</a> now supports 
the&#160;<span>failIfNoConsumers option</span></li><li>Making it easier to add 
custom&#160;<a shape="rect" href="type-converter.html">Type Converter</a> to 
your Camel applications without having to use the META-INF file. In Spring or 
Blueprint just add them as &lt;bean&gt;s. See more details at&#160;<a 
shape="rect" href="type-converter.html">Type Converter</a> 
documentation.</li><li>camel-cxf PAYLOAD supports stream cache out of 
box.</li><li><p><code>BridgePropertyPlaceholderConfigurer</code> supports to 
handle the <span><a shape="rect" href="jasypt.html">jasypt </a>encryption 
inside and outside of the camelContext.</span></p></li><li><p>The camel-aws 
component now sup
 port Amazon DynamoDB version 2<span><br 
clear="none"></span></p></li><li><p>The&#160;<a shape="rect" 
href="wire-tap.html">Wire Tap</a> eip now also emits event notifications when 
sending the Exchange to the wire tap destination</p></li><li><a shape="rect" 
href="camel-test.html">Camel Test</a> has new option isDumpRouteStats that 
dumps all route usage statistics as XML files in target/camel-route-stats 
directory, which can be used to inspect "route coverage" reports.</li><li>Now 
<a shape="rect" href="netty4.html">Camel Netty</a> component doesn't intercept 
consumers with <code>httpMethodRestrict=OPTIONS</code></li><li><span>Now <a 
shape="rect" href="netty4-http.html">Netty HTTP</a> resolves OPTIONS prefix 
matches earlier</span></li><li>Using&#160;<a shape="rect" 
href="load-balancer.html">Load Balancer</a> with Java DSL now builds the route 
model using the specific model types, which renders a more accurate route 
model</li><li>Enhanced the PredicateBuilder to support vargs and list in
  the "or" builder method</li><li>Using custom&#160;<code>HttpBinding</code> 
with&#160;<a shape="rect" href="http.html">HTTP</a> and&#160;<a shape="rect" 
href="http4.html">HTTP4</a> is now easier as they can be instantiated using a 
default no-arg constructor</li><li>Added&#160;<code>readLock=idempotent</code> 
to the&#160;<a shape="rect" href="file2.html">File2</a> consumer which allows 
to reuse an idempotent repository as read-lock which enables Camel to run 
reliable in clustered mode, where each node competes for the same files from a 
shared file system. This requires that the idempotent repository supports 
clustering such as&#160;<a shape="rect" 
href="hazelcast-component.html">Hazelcast Component</a> or&#160;<a shape="rect" 
href="infinispan.html">Infinispan</a> - or using the JDBC for a shared database 
table.</li><li><a shape="rect" href="rx.html">Camel RX</a> now ensures that 
observe and subscribe are done within an unit of work to ensure on completions 
is executed, such as they a
 re done when you use regular Camel routes.</li><li>The&#160;<a shape="rect" 
href="jms.html">JMS</a>&#160;component now includes the 
underlying&#160;<code>javax.jms.Session</code> instance on the Camel message 
which allows end users to easier to use client acknowledge mode, in case the 
client wants to use the session to call recover or rollback.</li><li>Added 
<code>completionEager</code>&#160;option to&#160;<a shape="rect" 
href="idempotent-consumer.html">Idempotent Consumer</a> to whether to complete 
the idempotent consumer eager or when the exchange is done.</li><li>Working 
with the Camel source code in Eclipse with m2eclipse plugin improved to avoid 
endless file changed detection and recompile the source.</li><li>Add 
option&#160;<code>suppressExceptions</code> to&#160;<a shape="rect" 
href="jsonpath.html">JSonPath</a> which allows to ignore exceptions such as 
NoSuchPathException when the json payload does not contain the path defined in 
the json expression.</li><li><a shape="rect" h
 ref="spring-boot.html">Spring Boot</a> now creates <code>CamelContext</code>, 
<code>ProducerTemplate</code> and <code>ConsumerTemplate</code> beans only if 
those are not defined by the 
user.&#160;&#160;</li><li>New&#160;<code>camel-archetype-spring-boot</code> to 
create a new Camel Spring Boot project using 
Maven.</li><li>New&#160;<code>camel-archetype-cdi</code>&#160;to create a new 
Camel CDI project using Maven.</li><li><a shape="rect" 
href="ftp2.html">FTP2</a> doesn't support absolute directories in endpoint 
URIs. In such cases, paths will be treated as relative and WARN message will be 
printed in logs. In future versions, there'll be no such assumption and 
validation exception will be thrown instead.</li><li><a shape="rect" 
href="swagger.html">Swagger</a> module now supports getting api-docs from 
multiple camel contexts in the JVM. The entry point at /api-docs now lists the 
contexts detected, and you need to append the context id in the path, eg 
/api-docs/myCamel</li><li><a shap
 e="rect" href="ftp2.html">FTP2</a> supports&#160;<code>autoCreate=true</code> 
for ftp consumers</li><li><a shape="rect" href="rest-dsl.html">Rest DSL</a> now 
supports to define parameter using fine grained details for the <a shape="rect" 
href="swagger.html">Swagger</a>&#160;api documentation. For an example see 
the&#160;<code>camel-example-servlet-rest-tomcat</code> in the Apache Camel 
distribution.</li><li>The&#160;<a shape="rect" href="simple.html">Simple</a> 
language now has a equals ignore case operator (=~) when comparing with string 
values&#160;</li><li>If using &lt;contextScan&gt; with Spring or Blueprint to 
filter RouteBuilder classes, then Camel will now by default only look for 
singleton beans. You can turn on the old behavior to include prototype scoped 
with the new option&#160;<pre>includeNonSingletons</pre></li><li>The <a 
shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/spi/IdempotentRepository.html";>Idem
 potentRepository</a> now supports clear operation, to clear the repository, 
and expose it over JMX.</li><li><a shape="rect" 
href="netty4.html">Netty4</a>&#160;in clientMode will now automatic re-connect 
if the connection was disconnected to the 
server.</li><li>The&#160;<code>throwException</code>&#160;EIP now supports 
creating a new exception instance from a simple language expressions, which 
allows to make it dynamic based on information from the current 
Exchange.</li><li>When using&#160;<a shape="rect" 
href="expression.html">Expression</a> or&#160;<a shape="rect" 
href="predicate.html">Predicate</a> in the routes, you can refer to the value 
as an external resource by using <strong>resource:classpath:path</strong> or 
<strong>resource:file:path</strong> - for example 
<code>resource:classpath:com/foo/myscript.groovy</code>.</li><li>Added option 
useMessageBodyForSql to the&#160;<a shape="rect" href="sql-component.html">SQL 
Component</a> which allows to use more dynamic SQL queries inst
 ead of the fixed SQL defined in the endpoint uri.</li><li>Added sticky option 
to&#160;failover&#160;<a shape="rect" href="load-balancer.html">Load 
Balancer</a> so the load balancer can start from the last known good 
endpoint.</li><li>Added option&#160;<code>shareUnitOfWork</code> to&#160;<a 
shape="rect" href="content-enricher.html">Content Enricher</a> eip</li><li><a 
shape="rect" href="content-enricher.html">Content Enricher</a> with enrich and 
pollEnrich now supports dynamic endpoint uris computed using an&#160;<a 
shape="rect" href="expression.html">Expression</a> that allows to use values 
from the current&#160;<a shape="rect" href="exchange.html">Exchange</a> so you 
for example can poll a file which name is computed from data from the&#160;<a 
shape="rect" href="exchange.html">Exchange</a> etc. This change breaks the XML 
DSL a little bit and there is an easy migration effort. The Java DSL stays 
backwards compatible.</li><li>The Camel Karaf commands about routes now no 
longer requir
 e the context-id as 2nd parameter that is optional - if none provided then the 
command is a bulk operation for all Camel contexts.</li><li>A simpler version 
of dynamic to with the new &lt;toD&gt; and toD in the DSL, documented at <a 
shape="rect" href="message-endpoint.html">Message Endpoint</a></li><li><a 
shape="rect" href="wire-tap.html">Wire Tap</a> now supports dynamic endpoint 
uris, in similar way the new &lt;toD&gt; and toD does</li><li><a shape="rect" 
href="rest-dsl.html">Rest DSL</a> now supports the new &lt;toD&gt; and toD in 
the rest-dsl.</li><li>The&#160;<a shape="rect" href="eip.html">EIP</a>'s now 
have more specialized processor mbeans in&#160;<a shape="rect" 
href="camel-jmx.html">Camel JMX</a> and you can also dump the processor as xml 
source to represent how it would <em>appear in xml 
dsl</em>&#160;</li><li>Configuring&#160;<a shape="rect" 
href="camel-jmx.html">Camel JMX</a> using JVM system properties now all take 
precedence over any existing configuration (some optio
 n was not doing that)</li><li>Introduced Extended JMX statistics level to 
gather additional metrics during runtime.</li><li>All the <a shape="rect" 
href="aws.html">Camel-AWS</a> components now support the definition (through 
URI options) of Proxy Host and Proxy Port.</li><li>The HTTP based consumers no 
longer include Camel headers in the responses by default (they already did this 
for the producers to not include Camel headers when calling a HTTP 
service).</li><li><a shape="rect" href="bindy.html">Bindy</a> now supports 
having multiple pojos as models in the same java package. Instead of 
configuring using package names, you configure using class names.</li><li>You 
can configure on the&#160;<a shape="rect" href="type-converter.html">Type 
Converter</a> registry what should happen if a duplicate type converter is 
being added (override, ignore or fail) as well configure the logging 
level.</li><li><a shape="rect" href="using-camelproxy.html">Using 
CamelProxy</a> now binds the method para
 meters to the message body/header using Camel annotations to define the 
binding rules. If no annotations is defined the the parameter is assumed the 
message body. You can turn this off to have the old behavior.</li><li><a 
shape="rect" href="camel-jmx.html">Camel JMX</a> using custom JMX 
operations/attributes with&#160;<code>@ManagedResource</code> now also includes 
the default set of JMX from Camel, so you have both 
worlds.</li><li>Added&#160;<code>completeAllOnStop</code> option to&#160;<a 
shape="rect" href="aggregator2.html">Aggregator2</a> to allow to complete all 
pending exchanges from the aggregation repository when stopping. For example 
when using a memory based repository to ensure all of those exchanges are 
processed when stopping.</li><li>Allow to configure the OK status code ranges 
for&#160;<a shape="rect" href="http.html">HTTP</a>,&#160;<a shape="rect" 
href="http4.html">HTTP4</a>,&#160;<a shape="rect" href="netty-http.html">Netty 
HTTP</a>,&#160;<a shape="rect" href="netty
 4-http.html">Netty4 HTTP</a>,&#160;and&#160;<a shape="rect" 
href="jetty.html">Jetty</a> components for their producers. The default range 
is 200-299.</li><li>Now&#160;<a shape="rect" 
href="vertx.html">Vert.x</a>&#160;endpoints support&#160;<a shape="rect" 
class="external-link" 
href="https://issues.apache.org/jira/browse/CAMEL-8987";>multiple 
consumers</a>.&#160;</li><li>Support for TAR files: marshalling and 
unmarshalling via a data format; splitting; aggregating. See <em>Data 
Formats</em> section below.</li><li><a shape="rect" href="sjms.html">SJMS</a> 
component has been aligned to bind between Camel Message and JMS Message in the 
same way as&#160;<a shape="rect" href="jms.html">JMS</a> component does 
that.</li><li>Added failsafe check to ensure&#160;<a shape="rect" 
href="jms.html">JMS</a> consumer will no longer send back a reply message to 
the same destination as itself to avoid endless loop. There is an option to 
turn this off in case you know what you are doing.</li><li>The <a s
 hape="rect" href="hazelcast-component.html">Camel-hazelcast</a> component now 
supports the Ringbuffer data structure.</li><li>New XSLT Aggregation Strategy 
to merge two messages with an XSLT file. See <a shape="rect" 
class="external-link" 
href="https://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/util/toolbox/XsltAggregationStrategy.html";>javadoc</a>
 <em>(link valid once this release is published)</em>. It is also accessible 
from the toolbox: <code>AggregationStrategies.xslt()</code>.</li><li>A pure 
Java based&#160;<a shape="rect" href="swagger.html">Swagger</a> component that 
also supports any JVM (standalone, war, jee, spring boot, et all) as the 
platform for API of the&#160;Camel&#160;<a shape="rect" 
href="rest-dsl.html">Rest DSL</a>. (previously a servlet was 
required).</li><li><a shape="rect" href="data-format.html">Data Format</a>'s is 
now also enlisted in&#160;JMX under the dataformats group (requires the data 
format implementation is a Camel&#160;<code>
 Service)</code></li></ul><p>Fixed the following issues:</p><ul><li>File 
language now properly supports file extensions having double dots, such as 
.tar.gz</li><li>Fixed issue with doTry not stopping routing if a fault message 
was set using setFaultBody within the doTry.</li><li>Fixed&#160;<a shape="rect" 
href="bean.html">Bean</a>&#160;language to support end parenthesis in quoted 
string literals as part of method parameters, and not as end of method 
signature.&#160;</li><li>Fixed&#160;<a shape="rect" href="ftp2.html">FTP2</a> 
using&#160;<code>pollEnrich</code> with disconnect=true and delete=true, would 
disconnect before deleting the file. Now we disconnect last.</li><li>Various 
EIPs such as&#160;<a shape="rect" href="splitter.html">Splitter</a>,&#160;<a 
shape="rect" href="recipient-list.html">Recipient List</a>,&#160;<a 
shape="rect" href="multicast.html">Multicast</a> no longer reuse message id in 
their sub messages, but each sub message has its own unique message id (just as 
the e
 xchange has).</li><li>Fixed an issue with the circuit breaker&#160;<a 
shape="rect" href="load-balancer.html">Load Balancer</a> not honoring the half 
open after period after an error was detected.</li><li>Fixed&#160;<a 
shape="rect" href="ftp2.html">FTP2</a> now calling disconnect if there was no 
messages to poll, even when disconnect=true configured.</li><li>Fixed&#160;<a 
shape="rect" href="throttler.html">Throttler</a> using method call expression 
in XML DSL was not working</li><li>Fixed stopping a route may stop context 
scoped&#160;OnException that would otherwise send message to an endpoint, now 
been stopped and an IllegalStateException was thrown while handling the 
exception.</li><li>Fixed using a&#160;<a shape="rect" 
href="load-balancer.html">Load Balancer</a> from a context 
scoped&#160;onException may double up its processors participating in the 
balancer per route in the 
context.</li><li>Fixed&#160;<code>parallelAggregate</code> on 
multicast/splitter/recipient list to use a th
 read pool for running concurrently.&#160;</li><li>Fixed&#160;<a shape="rect" 
href="stream-caching.html">Stream caching</a> to not delete data that was 
spooled to disk before both exchanges are done routing.</li><li>Fixed&#160;<a 
shape="rect" href="defaulterrorhandler.html">DefaultErrorHandler</a> to use 1 
sec redelivery delay out of the box as the other error handlers 
does.&#160;</li><li>Fixed 
setting&#160;<code>logExhaustedMessageHistory=true</code> on&#160;<a 
shape="rect" href="dead-letter-channel.html">Dead Letter Channel</a> to log the 
message history. This option is by default false on DLC as it would be as 
before (not noisy).</li><li>Fixed double refresh of the parent Spring Boot 
Application Context</li><li>Fixed configuring endpoint uri's with primitive 
types when the value is looked up in the registry using #notation would not 
work.</li><li>Fixed using transacted in the Scala DSL</li><li>camel-swagger now 
filters out older Camel releases that do not support rest-dsl when it 
 discovers Camel's in the JVM</li><li>Fixed&#160;<a shape="rect" 
href="mail.html">Mail</a>&#160;consumer to use the default value of 60 seconds 
as poll interval again, instead of 0.5 sec.</li><li>Fixed&#160;<a shape="rect" 
href="netty.html">Netty</a> and&#160;<a shape="rect" 
href="netty4.html">Netty4</a> may perform x2 redelivery when attempting to 
redeliver to a netty producer endpoint</li><li>Fixed&#160;<a shape="rect" 
href="recipient-list.html">Recipient List</a> would not work if using RAW() 
syntax in endpoint uri</li><li>Fixed Camel Commands to not show correct route 
status for suspended routes in the routes-list command.</li><li>Fixed 
using&#160;<a shape="rect" href="http.html">HTTP</a> 
and&#160;<code>Exchange.HTTP_QUERY</code>&#160;or 
<code>Exchange.HTTP_URI</code>&#160;may double encode the value.</li><li>Fixed 
starting a route from a file endpoint, and then do 
a&#160;<code>pollEnrich</code> from another file endpoint, and both using the 
same readLock=marker, would only delet
 e one of the marker files when done.</li><li><span style="line-height: 
1.42857;">Fixed&#160;</span><a shape="rect" 
href="jgroups.html">JGroups</a><span style="line-height: 
1.42857;">&#160;managed routes starting too early.</span></li><li><span 
style="line-height: 1.42857;">Fixed&#160;<a shape="rect" 
href="http4.html">HTTP4</a>,&#160;<a shape="rect" href="http.html">HTTP</a>, <a 
shape="rect" href="netty4-http.html">Netty4 HTTP</a>,&#160;<a shape="rect" 
href="netty-http.html">Netty HTTP</a> producers forming URLs badly when using 
Exchange.HTTP_PATH and query parameters inside the endpoint 
URI.</span></li><li><span style="line-height: 1.42857;">Fixed&#160;<a 
shape="rect" href="mqtt.html">MQTT</a> receiving duplicates in some cases when 
the connection to the broker was lost.</span></li><li><span style="line-height: 
1.42857;">Fixed&#160;<a shape="rect" href="routing-slip.html">Routing Slip</a> 
and&#160;<a shape="rect" href="dynamic-router.html">Dynamic Router</a> to not 
evaluate expressi
 on again during each redelivery attempt from&#160;<a shape="rect" 
href="error-handler.html">Error Handler</a> if routing caused an 
exception.</span></li><li><span style="line-height: 1.42857;">Fixed a JMX leak 
where FTP producers was not unregistered from JMX when their routes are 
removed.</span></li><li><span style="line-height: 1.42857;">Fixed 
suspend/resume&#160;<a shape="rect" href="seda.html">SEDA</a>&#160;routes may 
in rare cases not poll new messages from the seda queue when 
resumed.</span></li></ul><h3 id="Camel2.16.0Release-New">New <a shape="rect" 
href="enterprise-integration-patterns.html">Enterprise Integration 
Patterns</a></h3><h3 id="Camel2.16.0Release-New.1">New <a shape="rect" 
href="components.html">Components</a></h3><ul><li><a shape="rect" 
href="paho.html">camel-paho</a>&#160;- For MQTT messaging using Eclipse Paho 
client</li><li><a shape="rect" href="pdf.html">camel-pdf</a> - For creating PDF 
documents</li><li><a shape="rect" href="grape.html">camel-grape</a> -&#1
 60;allows you to fetch, load and manage additional jars when CamelContext is 
running.</li><li><a shape="rect" href="slack.html">camel-slack</a> 
-&#160;allows you to connect to an instance of Slack&#160;and delivers a 
message contained in the message body via a pre established Slack incoming 
webhook.</li><li><a shape="rect" href="jolt.html">camel-jolt</a> - for JSON to 
JSON transformation</li><li><a shape="rect" 
href="aws-ec2.html">camel-aws-ec2</a> - Component providing support to Amazon 
Web Services EC2&#160;</li><li><a shape="rect" 
href="undertow.html">camel-undertow</a> - To use <a shape="rect" 
class="external-link" href="http://undertow.io/index.html"; 
rel="nofollow">Undertow</a> as HTTP server or client.</li><li>camel-git - A 
generic Git component</li><li><a shape="rect" 
href="sjms-batch.html">camel-sjms</a> -&#160;<span style="color: 
rgb(0,0,0);">SJMS Batch is a specialized component for highly performant, 
transactional batch consumption from a JMS queue</span></li><li><span st
 yle="color: rgb(0,0,0);">camel-http-common - A common base component for reuse 
among all the various HTTP components we have.</span></li><li><span 
style="color: rgb(0,0,0);">camel-swagger-java - A pure Java based&#160;<a 
shape="rect" href="swagger.html">Swagger</a> component.</span></li></ul><h3 
id="Camel2.16.0Release-NewDSL">New DSL</h3><ul><li><a shape="rect" 
href="script.html">Script</a> - to execute a script during routing</li><li><a 
shape="rect" href="message-endpoint.html">Dynamic To </a>- to send a message to 
a dynamic computed endpoint. This is a simpler version than using&#160;<a 
shape="rect" href="recipient-list.html">Recipient List</a></li></ul><h3 
id="Camel2.16.0Release-NewAnnotations">New Annotations</h3><h3 
id="Camel2.16.0Release-NewDataFormats">New <a shape="rect" 
href="data-format.html">Data Formats</a></h3><ul><li><a shape="rect" 
href="boon.html">camel-boon</a> - For mapping POJO to/from 
json.</li><li>camel-tarfile (pending documentation) - For compressing and extra
 cting TAR files; also offers a Splitter (for processing TAR entries 
individually) and an Aggregation Strategy (for collecting the TAR entries into 
an archive).</li></ul><h3 id="Camel2.16.0Release-New.2">New <a shape="rect" 
href="languages.html">Languages</a></h3><h3 id="Camel2.16.0Release-New.3">New 
<a shape="rect" href="examples.html">Examples</a></h3><h3 
id="Camel2.16.0Release-New.4">New <a shape="rect" 
href="tutorials.html">Tutorials</a></h3><h2 
id="Camel2.16.0Release-APIbreaking">API breaking</h2><ul><li><p 
class="p1">&#160;org.apache.camel.mode.LoadBalancerDefinition no longer 
implements org.apache.camel.processor.loadbalancer.LoadBalancer&#160;which is 
the runtime processor (this was never 
intended).</p></li><li>The&#160;<code>ref</code> attribute 
on&#160;<code>&lt;loadBalance&gt;</code> has been removed, as it has been 
deprecated for a long time, and you should use 
a&#160;<code>&lt;customLoadBalancer&gt;</code> to refer to a custom load 
balancer.</li><li>The&#160;<code>copy</
 code> method on&#160;<code>StreamCache</code> now takes 
an&#160;<code>Exchange</code> as parameter.</li><li>Various APIs 
in&#160;<code>camel-jms</code> has been adjusted to support including the JMS 
session parameter - <code>javax.jms.Session</code>. Though these API changes 
are mostly internal facing, and we do not expect end users 
problems.</li><li>The&#160;<code>resourceUri</code> 
and&#160;<code>resourceRef</code> attributes 
on&#160;<code>&lt;enrich&gt;</code> and&#160;<code>&lt;pollEnrich&gt;</code> 
has been removed as they now support a dynamic uris computed from an&#160;<a 
shape="rect" href="expression.html">Expression</a>.</li><li>Various APIs from 
camel-http in the package&#160;<code>org.apache.camel.component.http</code> has 
been moved to the camel-http-common module in the 
package&#160;<code>org.apache.camel.http.common</code> which mean you may need 
to change the imports.</li><li>Renamed&#160;<code>All</code>&#160;enum 
on&#160;<code>org.apache.camel.ManagementStatisticsLe
 vel</code> to&#160;<code>Default</code>&#160;</li><li>Added new boolean 
parameter to method 
on&#160;<code>org.apache.camel.spi.ShutdownPrepared</code></li><li>Added 
configure method to allowing configuring CamelContext on 
<code>org.apache.camel.main.MainListener</code></li><li>Renamed 
<code>org.apache.camel.component.sjms.jms.KeyFormatStrategy</code>&#160;to&#160;<code>org.apache.camel.component.sjms.jms.JmsKeyFormatStrategy</code><br
 clear="none"><code><br clear="none"></code></li></ul><h2 
id="Camel2.16.0Release-KnownIssues">Known Issues</h2><h2 
id="Camel2.16.0Release-Dependencyupgrades">Dependency 
upgrades</h2><ul><li>Amazon Web Service Java SDK from 1.8.9.1 to 
1.10.12</li><li>Apache Commons Cli from 1.2 to 1.3.1</li><li>Apache Commons 
Compress from 1.5 to 1.10</li><li>Apache Commons Lang from 3.3.2 to 
3.4</li><li>Apache Commons Math3 from 3.3 to 3.5</li><li>Apache Commons Pool 
from 2.3 to 2.4.2</li><li>Apache Deltaspike from 1.3.0 to 1.5.0</li><li>Apache 
DS from 2.0.0-M19 to 2.0.
 0-M20</li><li>Apache HttpComponents Core from 4.3.3 to 4.4.1</li><li>Apache 
HttpComponents Client from 4.3.6 to 4.4.1</li><li>Apache JClouds from 1.8.1 to 
1.9.1</li><li>Apache Lucene from 4.10.2 to 4.10.4</li><li>Apache Olingo Odata 
from 2.0.0 to 2.0.4</li><li>Apache Solr from 4.10.2 to 4.10.4</li><li>Apns from 
0.2.3 to 1.0.0.Beta6</li><li>AspectJ from 1.6.2 to 
1.8.6</li><li>Async-http-client from 1.9.8 to 1.9.30</li><li>Atmosphere from 
2.2.6 to 2.3.4</li><li><p>Cassandra from 2.1.2 to 
2.1.8</p></li><li><p>Cassandra Datastax Java Driver 2.1.2 to 
2.1.7.1</p></li><li>Cglib from 2.2 to 3.1</li><li>Chunk Templates from 2.6.3 to 
3.0.1</li><li>Classmate from 1.0.0 to 1.3.0</li><li>CMIS 0.8.0 to 
0.13.0</li><li>DNSJava from 2.1.6 to 2.1.7</li><li>Docker-java from 0.10.5 to 
1.3.0</li><li>Dropbox core Java SDK from 1.7.6 to 1.7.7</li><li>Dropwizard 
Metrics from 3.1.0 to 3.1.2</li><li>Ehcache from 2.9.1 to 
2.10.0</li><li>Elasticsearch from 1.4.4 to 1.7.1</li><li>Expression Language 
from 2.2.4 
 to 2.2.5</li><li>Facebook4j from 1.1.12 to 2.3.0</li><li>Felix Config Admin 
from 1.8.0 to 1.8.8</li><li>Felix SCR annotations from 1.9.8 to 
1.9.12</li><li>Freemarker from 2.3.21 to 2.3.23</li><li>Flapdoodle Embedded 
MongoDB from 1.46.4 to 1.50.0</li><li>Google App Engine from 1.8.3 to 
1.9.25</li><li>Gson from 3.2 to 3.2.1</li><li>Guice from 3.0 to 
4.0</li><li>iCal4j from 1.5.0.2 to 1.6.0</li><li>Hazelcast from 3.4.2 to 
3.5.1</li><li>Hibernate Validator from 5.0.3.Final to 
5.2.1.Final</li><li>Hsqldb from 2.3.2 to 2.3.3</li><li>Infinispan from 
6.0.2.Final to 7.2.5.Final</li><li><span>Jackson2 from 2.4.3 to 
2.6.2</span></li><li><span>Jackrabbit from 2.10.0 to 
2.11.0</span></li><li>Jboss AS Maven Plugin from 7.4.Final to 
7.7.Final<span><br clear="none"></span></li><li>Jboss Logging from 3.1.4.GA to 
3.3.0.Final</li><li><span>Jboss Marshalling from 1.4.4.Final to 
1.4.10.Final</span></li><li><span>Jboss Weld from 2.2.4.Final to 
2.3.0.Final</span><span><br clear="none"></span></li><li><span
 >Jgroups from 3.6.1.Final to 3.6.4.Final</span></li><li><span>Jibx from 1.2.5 
 >to 1.2.6</span></li><li><span>Joda-time from 2.5 to 
 >2.8.1</span></li><li><span>Jruby from 1.7.18 to 
 >1.7.21</span></li><li><span>Jsch from 0.1.51 to 
 >0.1.53</span></li><li>Jsonpath from 1.2.0 to 2.0.0</li><li>Jt400 from 6.7 to 
 >8.6</li><li>Kafka from 0.8.1.1 to 0.8.2.0</li><li>LightCouch from 0.1.3 to 
 >0.1.8</li><li>Minimal JSON from 0.9.1 to 0.9.3</li><li>MongoDB Java Driver 
 >from 2.12.4 to 3.0.4</li><li>Mvel2 from 2.2.1.Final to 
 >2.2.6.Final</li><li>OGNL from 3.0.8 to 3.0.11</li><li>OpenEJB from 4.6.0.2 to 
 >4.7.2</li><li>OpenJPA from 2.3.0 to 2.4.0</li><li>Openshift Java Client 
 >2.5.0.Final to 2.7.0.Final</li><li>Pax Exam from 4.3.0 to 4.6.0</li><li>Pax 
 >Logging from 1.8.1 to 1.8.3</li><li>Pax Swissbox Tinybundles from 1.3.1 to 
 >1.3.2</li><li>PDFBox from 1.6.0 to 1.8.10</li><li>Rabbitmq Amqp client from 
 >3.3.4 to 3.5.4</li><li>Restlet from 2.2.x to 2.3.1<span><br 
 >clear="none"></span></li><li>Scala from 2.11.5 to 2.
 11.7</li><li>Scala Maven Plugin from 3.2.0 to 3.2.2</li><li>Scalatest from 
2.2.0 to 2.2.5</li><li>Shade Maven Plugin from 2.1 to 2.4</li><li>SLF4J from 
1.7.10 to 1.7.12</li><li>Snappy from&#160;<span>1.1.</span><span class="x 
x-first x-last">0.1 to 1.1.2</span></li><li>Snakeyaml from 1.14 to 
1.16</li><li>Spring upgrades</li><li>Sshd from 0.13.0 to 0.14.0</li><li>TestNG 
from 6.8.8 to 6.8.21</li><li>Twitter4J from 4.0.2 to 4.0.4</li><li>Univocity 
Parsers from 1.2.1 to 1.5.6</li><li>VertX from 2.2.5 to 3.0.0</li><li>Xmlunit 
from 1.5 to 1.6</li><li>XStream from 1.4.7 to 1.4.8</li><li>ZXing from 3.0.1 to 
3.2.1</li></ul><h2 
id="Camel2.16.0Release-Importantchangestoconsiderwhenupgrading">Important 
changes to consider when upgrading</h2><ul><li>The dumpRoutesAsXml operation 
now preserve property placeholder used in the route models.&#160;</li><li>Using 
setFaultBody / setFaultHeader behaves similar to setBody / setHeader to 
preserve existing headers/attachments by setting on existing IN or O
 UT message.</li><li>If using concurrent consumer on&#160;<a shape="rect" 
href="jms.html">JMS</a>&#160;endpoints for request/reply over JMS then you must 
use the new replyToConcurrentConsumers, replyToMaxConcurrentConsumers options 
to configure the values.&#160;</li><li>When the&#160;<a shape="rect" 
href="aggregator2.html">Aggregator2</a> is forced completed the exchange 
property&#160;<code>Exchange.AGGREGATED_COMPLETED_BY</code> value has been 
changed from "forceCompletion" to "force" so its named like the other 
completion triggers.</li><li>Removed unsupported modules camel-web and 
camel-web-standalone.</li><li>Removed unsupported camel:dot functionality from 
camel:run plugin.</li><li>Removed unsupported camel-archetype-scala-component 
from maven archetypes.</li><li>The Maven coordinate for linkedin and olingo2 
components changed to be aligned like all the others having groupId as just 
org.apache.camel.</li><li>If using MongoDB component, the option<em> 
invokeGetLastError</em> doesn
 't exist anymore. The option invokeGetLastError instructs the MongoDB Java 
driver to invoke <em>getLastError()</em> after every call. In the 3.0.0 MongoDB 
driver implementation, the <em>getLastError()</em> method in WriteResult has 
been removed. So, if needed, use an acknowledged WriteConcern when executing 
the write operation and then verify the correctness of the operation with the 
method <em>wasAcknowledged()</em> of WriteResult.</li><li>The&#160;<a 
shape="rect" href="jing.html">Jing</a> component now 
uses&#160;<code>jing</code> as schema name in uris, instead 
of&#160;<code>rng</code> or&#160;<code>rnc</code>. Those names has been 
removed.</li><li><a shape="rect" href="swagger.html">Swagger</a> module now 
supports getting api-docs from multiple camel contexts in the JVM. The entry 
point at /api-docs now lists the contexts detected, and you need to append the 
context id in the path, eg /api-docs/myCamel</li><li>If using 
&lt;contextScan&gt; with Spring or Blueprint to filter RouteB
 uilder classes, then Camel will now by default only look for singleton beans. 
You can turn on the old behavior to include prototype scoped with the new 
option&#160;<pre>includeNonSingletons</pre></li><li>camel-vertx&#160;has been 
upgraded to vertx 3.0 which requires Java 8 at 
runtime.</li><li><code>camel-cdi</code> is now using CDI 1.1 api - support for 
1.0 has been dropped.</li><li><a shape="rect" 
href="content-enricher.html">Content Enricher</a> with enrich and pollEnrich 
now supports dynamic endpoint uris computed using an&#160;<a shape="rect" 
href="expression.html">Expression</a> that allows to use values from the 
current&#160;<a shape="rect" href="exchange.html">Exchange</a> so you for 
example can poll a file which name is computed from data from the&#160;<a 
shape="rect" href="exchange.html">Exchange</a> etc. This change breaks the XML 
DSL a little bit and there is an easy migration effort. The Java DSL stays 
backwards compatible.</li><li>Support for CXF 2.7 is dropped.</li><li
 >camel-jetty8 is being considered deprecated and we would like to drop this in 
 >a nearby future release as Jetty 8.x is EOL.&#160;</li><li>If you have 
 >explicit configured the JMX statistics level to All then that option is now 
 >called Default.&#160;</li><li>The HTTP based consumers no longer include 
 >Camel headers in the responses by default (they already did this for the 
 >producers to not include Camel headers when calling a HTTP 
 >service).</li><li><a shape="rect" href="bindy.html">Bindy</a> requires to be 
 >configured using class names instead of package names, as it now supports 
 >having multiple model classes in the same java packages now.</li><li><a 
 >shape="rect" href="using-camelproxy.html">Using CamelProxy</a> now binds the 
 >method parameters to the message body/header using Camel annotations to 
 >define the binding rules. If no annotations is defined the the parameter is 
 >assumed the message body. You can turn this off to have the old 
 >behavior.</li><li><a shape="rect" href="sjms.html">SJM
 S</a> component has been aligned to bind between Camel Message and JMS Message 
in the same way as&#160;<a shape="rect" href="jms.html">JMS</a> component does 
that, in the process a few APIs and behavior has been 
changed.</li><li><code>DefaultExchangeHolder</code>&#160;now only keep 
primitive / String type headers / exchange properties (like JMS component) and 
filter out other types such as java instances (caught exception on exchange 
property is kept as well).</li><li>The Scala based&#160;<a shape="rect" 
href="swagger.html">Swagger</a> (camel-swagger) is deprecated in favor of the 
new camel-swagger-java component.</li><li>The camel-ruby feature has been 
removed, use camel-script-jruby instead.</li></ul><h2 
id="Camel2.16.0Release-GettingtheDistributions">Getting the 
Distributions</h2><h3 id="Camel2.16.0Release-BinaryDistributions">Binary 
Distributions</h3><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description<
 /p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Download 
Link</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>PGP Signature 
file of download</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Windows Distribution</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.16.0/apache-camel-2.16.0.zip";>apache-camel-2.16.0.zip</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/2.16.0/apache-camel-2.16.0.zip.asc";>apache-camel-2.16.0.zip.asc</a></p></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Unix/Linux/Cygwin 
Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.16.0/apache-camel-2.16.0.tar.gz";>apache-ca
 mel-2.16.0.tar.gz</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/2.16.0/apache-camel-2.16.0.tar.gz.asc";>apache-camel-2.16.0.tar.gz.asc</a></p></td></tr></tbody></table></div><div
 class="confluence-information-macro 
confluence-information-macro-information"><p class="title">The above URLs use 
redirection</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>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 <a shape="rect" class="external-link" 
href="http://www.mozilla.com/en-US/firefox/"; 
rel="nofollow">FireFox</a></p></div></div><h3 id="Camel2.16.0Release-SourceDis
 tributions">Source Distributions</h3><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Download Link</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>PGP Signature file of download</p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Source for Windows</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.zip";>apache-camel-x.y.x-src.zip</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.zip.asc";>apache-camel-x.y.x-src.zip.asc</a></p></td></tr></tbody></table></div><div
 class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" 
rowspan="1" 
 class="confluenceTd"><p>Source for Unix/Linux/Cygwin</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.tar.gz";>apache-camel-x.y.x-src.tar.gz</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.tar.gz.asc";>apache-camel-x.y.x-src.tar.gz.asc</a></p></td></tr></tbody></table></div><h3
 id="Camel2.16.0Release-GettingtheBinariesusingMaven2">Getting the Binaries 
using Maven 2</h3><p>To use this release in your maven project, the proper 
dependency configuration that you should use in your <a shape="rect" 
class="external-link" 
href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html";>Maven
 POM</a> is:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
   &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
   &lt;artifactId&gt;camel-core&lt;/artifactId&gt;


Reply via email to