You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2014/08/12 16:17:56 UTC

svn commit: r919125 - in /websites/production/camel/content: cache/main.pageCache camel-2140-release.html oncompletion.html

Author: buildbot
Date: Tue Aug 12 14:17:56 2014
New Revision: 919125

Log:
Production update by buildbot for camel

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

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

Modified: websites/production/camel/content/camel-2140-release.html
==============================================================================
--- websites/production/camel/content/camel-2140-release.html (original)
+++ websites/production/camel/content/camel-2140-release.html Tue Aug 12 14:17:56 2014
@@ -84,7 +84,7 @@
 	<tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h1 id="Camel2.14.0Release-Camel2.14.0release(currentlyinprogress)">Camel 2.14.0 release (currently in progress)</h1><div style="padding-right:20px;float:left;margin-left:-20px;"><p><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"></p></div><div style="min-height:200px">&#160;</div><h2 id="Camel2.14.0Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to the 2.14.0 release which approx XXX issues resolved (new features, improvements and bug fixes such as...)</p><ul><li>Support for running on Java 1.8 JVMs</li><li>Spring 4.x supported.</li><li><a shape="rect" href="rest-dsl.html">REST DSL</a> to define REST services using a REST style with verbs such as get/post/put/delete etc. The Rest DSL supports Java and XML DSL.</li><li><a shape="rect" href="rest-dsl.html">REST DSL
 </a> integrated with <a shape="rect" href="swagger.html">Swagger</a> to expose the service as swagger apis.</li><li>Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as expression.</li><li>Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic <a shape="rect" href="eip.html">EIP</a>s.</li><li>Added event notification for routes added and removed.</li><li>Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.</li><li><a shape="rect" href="netty-http.html">Netty HTTP</a>&#160;producer now supports the <span>CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server.</span></li><li><span><a shape="rect" href="polling-consumer.html">Polling Consumer</a>&#160;allows to configure initial queue size and whether to block when full when using the default
 &#160;<code>EventDrivenPollingConsumer</code> which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered.</span></li><li><span><a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-7435">Added</a> a generic callback to configure the <a shape="rect" href="apns.html">APNS</a> service builder.</span></li><li><span>Added&#160;<code>StreamList</code> option to the&#160;<a shape="rect" href="jdbc.html">JDBC</a> component</span></li><li>Allow to define Simple expressions for sql parameters of the <a shape="rect" href="sql-component.html">SQL</a> component.<span><br clear="none"></span></li><li>A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)</li><li>Added option&#160;<code>parallelAggregate</code> to <a shape="rect" href="multicast.html">Multicast</a>, <a shape="rect" href="splitter.html">Splitter</a> and <a s
 hape="rect" href="recipient-list.html">Recipient List</a>&#160;EIPs</li><li>Support to set the variable map from message header in <a shape="rect" href="velocity.html">Velocity</a>, <a shape="rect" href="freemarker.html">Freemarker</a>, <a shape="rect" href="stringtemplate.html">StringTemplate</a>.</li><li><span>Added HazelcastInstance option to&#160;<span><a shape="rect" href="hazelcast-component.html">Hazelcast</a> component.</span></span></li><li>Producers from static <a shape="rect" href="eip.html">EIPs</a> such as &lt;to&gt; is is now also enlisted in <a shape="rect" href="camel-jmx.html">JMX</a> when Camel is starting routes.</li><li>Unmarshal json to pojo using&#160;<code>camel-jackson</code> now supports a header to tell Camel what the pojo class name is, to allow more dynamic behavior, as otherwise the class name would be hardcoded.</li><li>Also allow to configure&#160;<code>camel-jackson</code> to skip null values, by setting includes to&#160;<code>NOT_NULL</code>.</li><li
 >And&#160;<code>camel-jackson</code> can now easily be configured to unmarshal to a&#160;<code>List&lt;pojo&gt;</code>&#160;or <code>List&lt;Map&gt;</code>&#160;instead of either a single pojo or&#160;<code>Map</code> type.&#160;</li><li>Introduced&#160;<code>SynchronizationRouteAware</code> allowing to have callbacks before/after an Exchange is being routed. This allows to trigger custom code at these points, for example after a route, but before a Consumer writes any response back to a caller (InOut mode).</li><li><a shape="rect" href="jdbc.html">JDBC</a>&#160;now supports outputClass for SelectList type.</li><li>Routes starting from&#160;<a shape="rect" href="jms.html">JMS</a>&#160;will now shutdown the consumer (MessageListenerContainer) quicker when CamelContext is being stopped. (assuming the&#160;<span style="color: rgb(0,0,0);">acceptMessagesWhileStopping hasn't been set to true). This can also help a cleaner shutdown as otherwise some JMS clients may attempt re-connect/fail
 over during shutdown which isn't desired anyway as we are shutting down.</span></li></ul><h3 id="Camel2.14.0Release-FixedIssues">Fixed Issues</h3><ul><li>Timer consumer is now scheduled after CamelContext has started all routes, to ensure other routes is running when timer routes is triggered to run.</li><li><a shape="rect" href="netty-http.html">Netty HTTP</a> now returns HTTP status 404 if resource not found instead of 503.</li><li>Fixed the <a shape="rect" class="external-link" href="https://camel.apache.org/mongodb.html">MongoDB</a>&#160;<code>readPreference</code>&#160;option which used to cause an <code>IllegalArgumentException</code>&#160;to be thrown.</li><li>Fixed issue with Netty producer may leak HashWhealTimer instances when having many producers that are not reused.</li><li>Fixed issue with Netty consumer should wait for join to complete when joining a multicast group over UDP&#160;</li><li>Improved stability when testing with&#160;<code>camel-test-blueprint</code> comp
 onent.</li><li><a shape="rect" href="netty-http.html">Netty HTTP</a>&#160;now <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-7506">removes</a> <code>headerFilterStrategy</code> option after resolving<span class="overlay-icon aui-icon aui-icon-small aui-iconfont-edit">&#160;</span>it</li><li>Fixed <a shape="rect" href="aggregator2.html">POJO aggregating</a> when the parameter type was referring to a type that was class annotated.</li><li>Fixed&#160;<a shape="rect" href="mybatis.html">MyBatis</a>&#160;to keep the message body as-is when calling stored procedures, if the procedure returns data as OUT parameters.</li><li>Fixed Camel Karaf commands to work with multiple CamelContext from the same bundle.</li><li>Fixed <a shape="rect" href="advicewith.html">Advice-With</a> to work with transacted routes defined in XML DSL</li><li>Fixed <a shape="rect" href="advicewith.html">Advice-With</a> to work with Content Based Router when adding outputs to th
 e when clauses.</li><li>Improved&#160;<span><code>NettyWorkerPoolBuilder#build</code> <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-7583">visibility</a>.</span></li></ul><h3 id="Camel2.14.0Release-New">New <a shape="rect" href="enterprise-integration-patterns.html">Enterprise Integration Patterns</a></h3><ul><li><a shape="rect" href="load-balancer.html">Circuit Breaker</a> pattern implemented as a Load Balancer policy</li></ul><h3 id="Camel2.14.0Release-New.1">New <a shape="rect" href="components.html">Components</a></h3><ul><li>camel-ahc-ws</li><li>camel-atmosphere-websocket</li><li>camel-box</li><li><a shape="rect" href="dropbox.html">camel-dropbox</a></li><li>camel-metrics</li><li>camel-netty4</li><li><a shape="rect" href="openshift.html">camel-openshift</a></li><li><a shape="rect" href="gora.html">camel-gora</a></li><li><a shape="rect" href="rest.html">camel-rest</a> (in camel-core)</li><li><a shape="rect" href="spark-rest.html">camel-sp
 ar</a><a shape="rect" href="spark-rest.html">k-rest</a></li><li><a shape="rect" href="swagger.html">camel-swagger</a>&#160;</li></ul><h3 id="Camel2.14.0Release-New.2">New <a shape="rect" href="camel-maven-archetypes.html">Camel Maven Archetypes</a></h3><h3 id="Camel2.14.0Release-NewDSL">New DSL</h3><h3 id="Camel2.14.0Release-NewAnnotations">New Annotations</h3><h3 id="Camel2.14.0Release-NewDataFormats">New <a shape="rect" href="data-format.html">Data Formats</a></h3><ul><li><a shape="rect" href="gora.html">camel-</a><a shape="rect" href="barcode-data-format.html">barcode</a></li></ul><h3 id="Camel2.14.0Release-New.3">New <a shape="rect" href="languages.html">Languages</a></h3><ul><li>XMLTokenizer</li></ul><h3 id="Camel2.14.0Release-New.4">New <a shape="rect" href="examples.html">Examples</a></h3><h3 id="Camel2.14.0Release-New.5">New <a shape="rect" href="tutorials.html">Tutorials</a></h3><h3 id="Camel2.14.0Release-NewTooling">New Tooling</h3><h2 id="Camel2.14.0Release-APIchanges">AP
 I changes</h2><ul><li><p>Removed duplicate getter <code>getMessageHistory</code> on&#160;<code>ManagedCamelContextMBean</code></p></li><li><p>Added org.apache.camel.spi.SynchronizationRouteAware</p></li><li>Added&#160;beforeRoute and afterRoute methods to UnitOfWork.</li></ul><h2 id="Camel2.14.0Release-KnownIssues">Known Issues</h2><h2 id="Camel2.14.0Release-DependencyUpgrades">Dependency Upgrades</h2><p>You can see any dependency changes using <a shape="rect" class="external-link" href="http://vdiff.notsoclever.cc/" rel="nofollow">Camel Dependencies Version Differences web tool</a> created by Tracy Snell from the Camel <a shape="rect" href="team.html">Team</a>.</p><p>The below list is a best effort, and we may miss some updates, its better to use the <a shape="rect" class="external-link" href="http://vdiff.notsoclever.cc/" rel="nofollow">Camel Dependencies Version Differences web tool</a> which uses the released projects for comparison.</p><ul><li>Atomikos 3.9.2 to 3.9.3</li><li>Co
 mmons-codec 1.8 to 1.9</li><li>CXF 2.7.11 to 3.0.1</li><li>Deltaspike 0.7 to 1.0.1</li><li>Dozer 5.4.0 to 5.5.1</li><li>EhCache 2.8.1 to 2.8.3</li><li>Groovy 2.2.2 to 2.3.4</li><li>Guava 16.0.1 to 17.0</li><li>Hapi 2.1 to 2.2</li><li>Hazelcast 3.0.3 to 3.2.4</li><li>JRuby 1.7.10 to 1.7.12</li><li>MongoDB-Java-Driver 2.11.4 to 2.12.0</li><li>RabbitMQ AMQ Client 3.2.2 to 3.3.0</li><li>Restlet 2.17 to 2.2.1</li><li>RxJava 0.17.5 to 0.19.4</li><li>Scala 2.10.3 to 2.11.2</li><li>Snmp4j 2.2.5 to 2.3.0</li><li>SSHD 0.10.1 to 0.11.0</li><li>spring-redis 1.1.0 to 1.3.0</li><li>Twitter4j 3.0.5 x to 4.0.1</li></ul><h2 id="Camel2.14.0Release-Internalchanges">Internal changes</h2><ul><li>Changed ...</li></ul><h2 id="Camel2.14.0Release-Changesthatmayaffectendusers">Changes that may affect end users</h2><ul><li><a shape="rect" href="polling-consumer.html">Polling Consumer</a>&#160;allows to configure initial queue size and whether to block when full when using the default&#160;<code>EventDrivenPol
 lingConsumer</code> which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered.</li><li><code>camel-scala</code> upgraded from Scala 2.10.x to 2.11.x</li><li>The option&#160;<code>useSsl</code> has been removed from&#160;<code>camel-twitter</code> as ssl is always enabled now, enforced by twitter</li><li>Fixed&#160;<a shape="rect" href="restlet.html">Restlet</a> to return error code 405 (instead of 404 if a http method is not allowed</li><li>Routes starting from&#160;<a shape="rect" href="jms.html">JMS</a>&#160;will now shutdown the consumer (MessageListenerContainer) quicker when CamelContext is being stopped. (assuming the&#160;<span style="color: rgb(0,0,0);">acceptMessagesWhileStopping hasn't been set to true). This can also help a cleaner shutdown as otherwise some JMS clients may attempt re-connect/failover during shutdown which isn't desired anyway as we are shutting down. If you want the rout
 es to keep accepting messages during shutdown of Camel, then set&#160;<span style="color: rgb(0,0,0);">acceptMessagesWhileStopping=true.</span></span></li></ul><h2 id="Camel2.14.0Release-Importantchangestoconsiderwhenupgrading">Important changes to consider when upgrading</h2><ul><li>Java 1.6 no longer supported.</li><li>Unit testing with Spring 3.x now requires using camel-test-spring3, as camel-test-spring is for Spring 4.x<br clear="none"><br clear="none"></li></ul><h2 id="Camel2.14.0Release-GettingtheDistributions">Getting the Distributions</h2><h3 id="Camel2.14.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>Windo
 ws 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.14.0/apache-camel-2.14.0.zip">apache-camel-2.14.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.14.0/apache-camel-2.14.0.zip.asc">apache-camel-2.14.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.14.0/apache-camel-2.14.0.tar.gz">apache-camel-2.14.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.14.0/apache-camel-2.14.0.tar.gz.asc">apache-camel-2.14.0.tar.gz.a
 sc</a></p></td></tr></tbody></table></div><h3 id="Camel2.14.0Release-SourceDistribution">Source Distribution</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</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.14.0/apache-camel-2.14.0-src.zip">apache-camel-2.14.0-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/2.14.0/apache-camel-2.14.0-src.zip.asc">apache-camel-2.14.0-src.zip.asc</a></p></td></tr></tbody></table></div><h3 id="Camel2.14.0Relea
 se-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.14.0Release-Camel2.14.0release(currentlyinprogress)">Camel 2.14.0 release (currently in progress)</h1><div style="padding-right:20px;float:left;margin-left:-20px;"><p><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"></p></div><div style="min-height:200px">&#160;</div><h2 id="Camel2.14.0Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to the 2.14.0 release which approx XXX issues resolved (new features, improvements and bug fixes such as...)</p><ul><li>Support for running on Java 1.8 JVMs</li><li>Spring 4.x supported.</li><li><a shape="rect" href="rest-dsl.html">REST DSL</a> to define REST services using a REST style with verbs such as get/post/put/delete etc. The Rest DSL supports Java and XML DSL.</li><li><a shape="rect" href="rest-dsl.html">REST DSL
 </a> integrated with <a shape="rect" href="swagger.html">Swagger</a> to expose the service as swagger apis.</li><li>Simple language defined in routes using resultType as boolean is now evaluated as predicate instead of as expression.</li><li>Introduced RuntimeEndpointRegistry to capture runtime usage of endpoints in use during routing, such as dynamic endpoints from dynamic <a shape="rect" href="eip.html">EIP</a>s.</li><li>Added event notification for routes added and removed.</li><li>Allow to configure cache size in Recipient List, Routing Slip and Dynamic Router EIPs; and as well turn caching off.</li><li><a shape="rect" href="netty-http.html">Netty HTTP</a>&#160;producer now supports the <span>CamelHttpPath header to define a dynamic context-path and query parameters to call the remote http server.</span></li><li><span><a shape="rect" href="polling-consumer.html">Polling Consumer</a>&#160;allows to configure initial queue size and whether to block when full when using the default
 &#160;<code>EventDrivenPollingConsumer</code> which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered.</span></li><li><span><a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-7435">Added</a> a generic callback to configure the <a shape="rect" href="apns.html">APNS</a> service builder.</span></li><li><span>Added&#160;<code>StreamList</code> option to the&#160;<a shape="rect" href="jdbc.html">JDBC</a> component</span></li><li>Allow to define Simple expressions for sql parameters of the <a shape="rect" href="sql-component.html">SQL</a> component.<span><br clear="none"></span></li><li>A new XML tokenizer that is truly XML-aware (e.g., supporting XML namespaces and complex hierarchical structures)</li><li>Added option&#160;<code>parallelAggregate</code> to <a shape="rect" href="multicast.html">Multicast</a>, <a shape="rect" href="splitter.html">Splitter</a> and <a s
 hape="rect" href="recipient-list.html">Recipient List</a>&#160;EIPs</li><li>Support to set the variable map from message header in <a shape="rect" href="velocity.html">Velocity</a>, <a shape="rect" href="freemarker.html">Freemarker</a>, <a shape="rect" href="stringtemplate.html">StringTemplate</a>.</li><li><span>Added HazelcastInstance option to&#160;<span><a shape="rect" href="hazelcast-component.html">Hazelcast</a> component.</span></span></li><li>Producers from static <a shape="rect" href="eip.html">EIPs</a> such as &lt;to&gt; is is now also enlisted in <a shape="rect" href="camel-jmx.html">JMX</a> when Camel is starting routes.</li><li>Unmarshal json to pojo using&#160;<code>camel-jackson</code> now supports a header to tell Camel what the pojo class name is, to allow more dynamic behavior, as otherwise the class name would be hardcoded.</li><li>Also allow to configure&#160;<code>camel-jackson</code> to skip null values, by setting includes to&#160;<code>NOT_NULL</code>.</li><li
 >And&#160;<code>camel-jackson</code> can now easily be configured to unmarshal to a&#160;<code>List&lt;pojo&gt;</code>&#160;or <code>List&lt;Map&gt;</code>&#160;instead of either a single pojo or&#160;<code>Map</code> type.&#160;</li><li>Introduced&#160;<code>SynchronizationRouteAware</code> allowing to have callbacks before/after an Exchange is being routed. This allows to trigger custom code at these points, for example after a route, but before a Consumer writes any response back to a caller (InOut mode).</li><li><a shape="rect" href="jdbc.html">JDBC</a>&#160;now supports outputClass for SelectList type.</li><li>Routes starting from&#160;<a shape="rect" href="jms.html">JMS</a>&#160;will now shutdown the consumer (MessageListenerContainer) quicker when CamelContext is being stopped. (assuming the&#160;<span style="color: rgb(0,0,0);">acceptMessagesWhileStopping hasn't been set to true). This can also help a cleaner shutdown as otherwise some JMS clients may attempt re-connect/fail
 over during shutdown which isn't desired anyway as we are shutting down.</span></li><li><span style="color: rgb(0,0,0);"><a shape="rect" href="oncompletion.html">OnCompletion</a> can now be configured to use or not use a thread pool, and as well whether to run before or after the route consumer. Running before the consumer allows to modify the exchange before the consumer writes it as response to the callee (if consumer is InOut mode)<br clear="none"></span></li></ul><h3 id="Camel2.14.0Release-FixedIssues">Fixed Issues</h3><ul><li>Timer consumer is now scheduled after CamelContext has started all routes, to ensure other routes is running when timer routes is triggered to run.</li><li><a shape="rect" href="netty-http.html">Netty HTTP</a> now returns HTTP status 404 if resource not found instead of 503.</li><li>Fixed the <a shape="rect" class="external-link" href="https://camel.apache.org/mongodb.html">MongoDB</a>&#160;<code>readPreference</code>&#160;option which used to cause an <co
 de>IllegalArgumentException</code>&#160;to be thrown.</li><li>Fixed issue with Netty producer may leak HashWhealTimer instances when having many producers that are not reused.</li><li>Fixed issue with Netty consumer should wait for join to complete when joining a multicast group over UDP&#160;</li><li>Improved stability when testing with&#160;<code>camel-test-blueprint</code> component.</li><li><a shape="rect" href="netty-http.html">Netty HTTP</a>&#160;now <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-7506">removes</a> <code>headerFilterStrategy</code> option after resolving<span class="overlay-icon aui-icon aui-icon-small aui-iconfont-edit">&#160;</span>it</li><li>Fixed <a shape="rect" href="aggregator2.html">POJO aggregating</a> when the parameter type was referring to a type that was class annotated.</li><li>Fixed&#160;<a shape="rect" href="mybatis.html">MyBatis</a>&#160;to keep the message body as-is when calling stored procedures, if th
 e procedure returns data as OUT parameters.</li><li>Fixed Camel Karaf commands to work with multiple CamelContext from the same bundle.</li><li>Fixed <a shape="rect" href="advicewith.html">Advice-With</a> to work with transacted routes defined in XML DSL</li><li>Fixed <a shape="rect" href="advicewith.html">Advice-With</a> to work with Content Based Router when adding outputs to the when clauses.</li><li>Improved&#160;<span><code>NettyWorkerPoolBuilder#build</code> <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-7583">visibility</a>.</span></li></ul><h3 id="Camel2.14.0Release-New">New <a shape="rect" href="enterprise-integration-patterns.html">Enterprise Integration Patterns</a></h3><ul><li><a shape="rect" href="load-balancer.html">Circuit Breaker</a> pattern implemented as a Load Balancer policy</li></ul><h3 id="Camel2.14.0Release-New.1">New <a shape="rect" href="components.html">Components</a></h3><ul><li>camel-ahc-ws</li><li>camel-atmosphere
 -websocket</li><li>camel-box</li><li><a shape="rect" href="dropbox.html">camel-dropbox</a></li><li>camel-metrics</li><li>camel-netty4</li><li><a shape="rect" href="openshift.html">camel-openshift</a></li><li><a shape="rect" href="gora.html">camel-gora</a></li><li><a shape="rect" href="rest.html">camel-rest</a> (in camel-core)</li><li><a shape="rect" href="spark-rest.html">camel-spar</a><a shape="rect" href="spark-rest.html">k-rest</a></li><li><a shape="rect" href="swagger.html">camel-swagger</a>&#160;</li></ul><h3 id="Camel2.14.0Release-New.2">New <a shape="rect" href="camel-maven-archetypes.html">Camel Maven Archetypes</a></h3><h3 id="Camel2.14.0Release-NewDSL">New DSL</h3><h3 id="Camel2.14.0Release-NewAnnotations">New Annotations</h3><h3 id="Camel2.14.0Release-NewDataFormats">New <a shape="rect" href="data-format.html">Data Formats</a></h3><ul><li><a shape="rect" href="gora.html">camel-</a><a shape="rect" href="barcode-data-format.html">barcode</a></li></ul><h3 id="Camel2.14.0Rele
 ase-New.3">New <a shape="rect" href="languages.html">Languages</a></h3><ul><li>XMLTokenizer</li></ul><h3 id="Camel2.14.0Release-New.4">New <a shape="rect" href="examples.html">Examples</a></h3><h3 id="Camel2.14.0Release-New.5">New <a shape="rect" href="tutorials.html">Tutorials</a></h3><h3 id="Camel2.14.0Release-NewTooling">New Tooling</h3><h2 id="Camel2.14.0Release-APIchanges">API changes</h2><ul><li><p>Removed duplicate getter <code>getMessageHistory</code> on&#160;<code>ManagedCamelContextMBean</code></p></li><li><p>Added org.apache.camel.spi.SynchronizationRouteAware</p></li><li>Added&#160;beforeRoute and afterRoute methods to UnitOfWork.</li></ul><h2 id="Camel2.14.0Release-KnownIssues">Known Issues</h2><h2 id="Camel2.14.0Release-DependencyUpgrades">Dependency Upgrades</h2><p>You can see any dependency changes using <a shape="rect" class="external-link" href="http://vdiff.notsoclever.cc/" rel="nofollow">Camel Dependencies Version Differences web tool</a> created by Tracy Snell f
 rom the Camel <a shape="rect" href="team.html">Team</a>.</p><p>The below list is a best effort, and we may miss some updates, its better to use the <a shape="rect" class="external-link" href="http://vdiff.notsoclever.cc/" rel="nofollow">Camel Dependencies Version Differences web tool</a> which uses the released projects for comparison.</p><ul><li>Atomikos 3.9.2 to 3.9.3</li><li>Commons-codec 1.8 to 1.9</li><li>CXF 2.7.11 to 3.0.1</li><li>Deltaspike 0.7 to 1.0.1</li><li>Dozer 5.4.0 to 5.5.1</li><li>EhCache 2.8.1 to 2.8.3</li><li>Groovy 2.2.2 to 2.3.4</li><li>Guava 16.0.1 to 17.0</li><li>Hapi 2.1 to 2.2</li><li>Hazelcast 3.0.3 to 3.2.4</li><li>JRuby 1.7.10 to 1.7.12</li><li>MongoDB-Java-Driver 2.11.4 to 2.12.0</li><li>RabbitMQ AMQ Client 3.2.2 to 3.3.0</li><li>Restlet 2.17 to 2.2.1</li><li>RxJava 0.17.5 to 0.19.4</li><li>Scala 2.10.3 to 2.11.2</li><li>Snmp4j 2.2.5 to 2.3.0</li><li>SSHD 0.10.1 to 0.11.0</li><li>spring-redis 1.1.0 to 1.3.0</li><li>Twitter4j 3.0.5 x to 4.0.1</li></ul><h2
  id="Camel2.14.0Release-Internalchanges">Internal changes</h2><ul><li>Changed ...</li></ul><h2 id="Camel2.14.0Release-Changesthatmayaffectendusers">Changes that may affect end users</h2><ul><li><a shape="rect" href="polling-consumer.html">Polling Consumer</a>&#160;allows to configure initial queue size and whether to block when full when using the default&#160;<code>EventDrivenPollingConsumer</code> which most components does. We now block by default, as otherwise the message may be lost if the queue was full, and a new message was offered.</li><li><code>camel-scala</code> upgraded from Scala 2.10.x to 2.11.x</li><li>The option&#160;<code>useSsl</code> has been removed from&#160;<code>camel-twitter</code> as ssl is always enabled now, enforced by twitter</li><li>Fixed&#160;<a shape="rect" href="restlet.html">Restlet</a> to return error code 405 (instead of 404 if a http method is not allowed</li><li>Routes starting from&#160;<a shape="rect" href="jms.html">JMS</a>&#160;will now shut
 down the consumer (MessageListenerContainer) quicker when CamelContext is being stopped. (assuming the&#160;<span style="color: rgb(0,0,0);">acceptMessagesWhileStopping hasn't been set to true). This can also help a cleaner shutdown as otherwise some JMS clients may attempt re-connect/failover during shutdown which isn't desired anyway as we are shutting down. If you want the routes to keep accepting messages during shutdown of Camel, then set&#160;<span style="color: rgb(0,0,0);">acceptMessagesWhileStopping=true.</span></span></li><li><span style="color: rgb(0,0,0);"><span style="color: rgb(0,0,0);"><a shape="rect" href="oncompletion.html">OnCompletion</a> now runs without thread pool by default. To restore old behavior set&#160;<code>paralllelProcessing</code> to true.<br clear="none"></span></span></li></ul><h2 id="Camel2.14.0Release-Importantchangestoconsiderwhenupgrading">Important changes to consider when upgrading</h2><ul><li>Java 1.6 no longer supported.</li><li>Unit testing
  with Spring 3.x now requires using camel-test-spring3, as camel-test-spring is for Spring 4.x<br clear="none"><br clear="none"></li></ul><h2 id="Camel2.14.0Release-GettingtheDistributions">Getting the Distributions</h2><h3 id="Camel2.14.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.14.0/apache-camel-2.14.0.zip">apache-camel-2.14.0.zip</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" h
 ref="http://www.apache.org/dist/camel/apache-camel/2.14.0/apache-camel-2.14.0.zip.asc">apache-camel-2.14.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.14.0/apache-camel-2.14.0.tar.gz">apache-camel-2.14.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.14.0/apache-camel-2.14.0.tar.gz.asc">apache-camel-2.14.0.tar.gz.asc</a></p></td></tr></tbody></table></div><h3 id="Camel2.14.0Release-SourceDistribution">Source Distribution</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 colspa
 n="1" rowspan="1" class="confluenceTh"><p>PGP Signature file of download</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Source</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.14.0/apache-camel-2.14.0-src.zip">apache-camel-2.14.0-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/2.14.0/apache-camel-2.14.0-src.zip.asc">apache-camel-2.14.0-src.zip.asc</a></p></td></tr></tbody></table></div><h3 id="Camel2.14.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="c
 ode panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
   &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
   &lt;artifactId&gt;camel-core&lt;/artifactId&gt;

Modified: websites/production/camel/content/oncompletion.html
==============================================================================
--- websites/production/camel/content/oncompletion.html (original)
+++ websites/production/camel/content/oncompletion.html Tue Aug 12 14:17:56 2014
@@ -93,8 +93,15 @@
                             <p>You can get hold of the <code>org.apache.camel.spi.UnitOfWork</code> from <code>org.apache.camel.Exchange</code> with the method <code>getUnitOfWork()</code>.</p>
                     </div>
     </div>
-<p>In Camel 2.0 we have added DSL for these callbacks using the new <strong>onCompletion</strong> DSL name.</p><p><strong>onCompletion</strong> supports the following features:</p><ul class="alternate"><li>scope: global and/or per route (route scope override all global scope)</li><li>multiple global scope</li><li>triggered either always, only if completed with success, or only if failed</li><li><code>onWhen</code> predicate to only trigger in certain situations</li></ul>    <div class="aui-message hint shadowed information-macro">
-                    <p class="title">On completion runs in separate thread</p>
+<p>In Camel 2.0 we have added DSL for these callbacks using the new <strong>onCompletion</strong> DSL name.</p><p><strong>onCompletion</strong> supports the following features:</p><ul class="alternate"><li>scope: global and/or per route (route scope override all global scope)</li><li><span style="line-height: 1.4285715;">multiple global scope</span></li><li>triggered either always, only if completed with success, or only if failed</li><li><code>onWhen</code> predicate to only trigger in certain situations</li><li><strong>Camel 2.14:</strong> mode: to define whether to run either before or after route consumer writes response back to callee (if its InOut)</li><li><strong>Camel 2.14: </strong>whether to run async or sync (use a thread pool or not)</li></ul><p>From&#160;<strong>Camel 2.14</strong> onwards the onCompletion has been modified to support running the completion task in either synchronous or asynchronous mode (using a thread pool) and also whether to run before or after the 
 route consumer is done. The reason is to give more flexibility. For example to specify to run synchronous and before the route consumer is done, which allows to modify the exchange before the consumer writes back any response to the callee. You can use this to for example add customer headers, or send to a log to log the response message, etc.</p>    <div class="aui-message hint shadowed information-macro">
+                    <p class="title">Changes from Camel 2.14 onwards</p>
+                            <span class="aui-icon icon-hint">Icon</span>
+                <div class="message-content">
+                            <p>The onCompletion has changed defaults and behavior from Camel 2.14 onwards. It now runs</p><ul style="list-style-type: square;"><li>Runs synchronously without any thread pool</li></ul><p>In Camel 2.13 the defaults were</p><ul><li>Runs asynchronous using a thread pool</li></ul>
+                    </div>
+    </div>
+    <div class="aui-message hint shadowed information-macro">
+                    <p class="title">Camel 2.13 or older - On completion runs in separate thread</p>
                             <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">
                             <p>The <strong>onCompletion</strong> runs in a separate thread in parallel with the original route. It is therefore not intended to influence the outcome of the original route. The idea for on completion is to spin off a new thread to eg send logs to a central log database, send an email, send alterts to a monitoring system, store a copy of the result message etc.<br clear="none"> Therefore if you want to do some work that influence the original route, then do <strong>not</strong> use <strong>onCompletion</strong> for that. Notice: if you use the <code>UnitOfWork</code> API as mentioned in the top of this page, then you can register a <code>Synchronization</code> callback on the <a shape="rect" href="exchange.html">Exchange</a> which is executed in the original route. That way allows you to do some custom code when the route is completed; this is how custom components can enlist on completion services which they need, eg the <a shape="rect" href="file2.ht
 ml">File</a> component does that for work that moves/deletes the original file etc.</p>
@@ -208,7 +215,34 @@ from(&quot;direct:start&quot;)
     .to(&quot;log:original&quot;)
     .to(&quot;mock:result&quot;);
 ]]></script>
-</div></div><h3 id="OnCompletion-SeeAlso">See Also</h3><ul class="alternate"><li>Unit of Work</li></ul></div>
+</div></div><h3 id="OnCompletion-UsingonCompletionwithorwithoutthreadpool">Using onCompletion with or without thread pool</h3><p><strong>Available as of Camel 2.14</strong></p><p>OnCompletion will from Camel 2.14 onwards not use thread pool by default. To use thread pool then either set a&#160;<code>executorService</code> or set <code>parallelProcessing</code> to true.</p><p>For example in Java DSL do</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[                onCompletion().parallelProcessing()
+                    .to(&quot;mock:before&quot;)
+                    .delay(1000)
+                    .setBody(simple(&quot;OnComplete:${body}&quot;));]]></script>
+</div></div><p>And in XML DSL</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[      &lt;onCompletion parallelProcessing=&quot;true&quot;&gt;
+        &lt;to uri=&quot;before&quot;/&gt;
+        &lt;delay&gt;&lt;constant&gt;1000&lt;/constant&gt;&lt;/delay&gt;
+        &lt;setBody&gt;&lt;simple&gt;OnComplete:${body}&lt;/simple&gt;&lt;/setBody&gt;
+      &lt;/onCompletion&gt;]]></script>
+</div></div><p>You can also refer to a specific <a shape="rect" href="threading-model.html">thread pool</a> to be used, using the executorServiceRef option</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[      &lt;onCompletion executorServiceRef=&quot;myThreadPool&quot;&gt;
+        &lt;to uri=&quot;before&quot;/&gt;
+        &lt;delay&gt;&lt;constant&gt;1000&lt;/constant&gt;&lt;/delay&gt;
+        &lt;setBody&gt;&lt;simple&gt;OnComplete:${body}&lt;/simple&gt;&lt;/setBody&gt;
+      &lt;/onCompletion&gt;]]></script>
+</div></div><p>&#160;</p><h3 id="OnCompletion-UsingonCompletiontorunbeforerouteconsumersendsbackresponsetocallee">Using onCompletion to run before route consumer sends back response to callee</h3><p><strong>Available as of Camel 2.14</strong></p><p>OnCompletion supports two modes</p><ul style="list-style-type: square;"><li>AfterConsumer - Default mode which runs after the consumer is done</li><li>BeforeConsumer - Runs before the consumer is done, and before the consumer writes back response to the callee</li></ul><p>The AfterConsumer mode is the default mode which is the same behavior as in older Camel releases.</p><p>The new BeforeConsumer mode is used to run onCompletion before the consumer writes its response back to the callee (if in InOut mode). This allows the onCompletion to modify the Exchange, such as adding special headers, or to log the Exchange as a response logger etc.</p><p>For example to always add a "created by" header you use&#160;<code>modeBeforeConsumer()</code> a
 s shown below:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[    .onCompletion().modeBeforeConsumer()
+        .setHeader(&quot;createdBy&quot;, constant(&quot;Someone&quot;))
+    .end()]]></script>
+</div></div><p>&#160;</p><p>And in XML DSL you set the mode attribute to BeforeConsumer:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[      &lt;onCompletion mode=&quot;BeforeConsumer&quot;&gt;
+        &lt;setHeader headerName=&quot;createdBy&quot;&gt;
+          &lt;constant&gt;Someone&lt;/constant&gt;
+        &lt;/setHeader&gt;
+      &lt;/onCompletion&gt;]]></script>
+</div></div><p>&#160;</p><h3 id="OnCompletion-SeeAlso">See Also</h3><ul class="alternate"><li>Unit of Work</li></ul></div>
         </td>
         <td valign="top">
           <div class="navigation">