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/15 12:17:51 UTC

svn commit: r919418 - in /websites/production/camel/content: advanced-configuration-of-camelcontext-using-spring.html cache/main.pageCache camel-2140-release.html facebook.html routepolicy.html

Author: buildbot
Date: Fri Aug 15 10:17:51 2014
New Revision: 919418

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/advanced-configuration-of-camelcontext-using-spring.html
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/camel-2140-release.html
    websites/production/camel/content/facebook.html
    websites/production/camel/content/routepolicy.html

Modified: websites/production/camel/content/advanced-configuration-of-camelcontext-using-spring.html
==============================================================================
--- websites/production/camel/content/advanced-configuration-of-camelcontext-using-spring.html (original)
+++ websites/production/camel/content/advanced-configuration-of-camelcontext-using-spring.html Fri Aug 15 10:17:51 2014
@@ -86,7 +86,7 @@
 	<tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 id="AdvancedconfigurationofCamelContextusingSpring-AdvancedconfigurationofCamelContextusingSpring">Advanced configuration of CamelContext using Spring</h2><p>When using Spring the CamelContext can be pre configured based on defined beans in spring XML.<br clear="none"> This wiki page documentes these features. Most of these features requires <strong>Camel 2.0</strong>.</p><h3 id="AdvancedconfigurationofCamelContextusingSpring-Whatcanbeconfigured">What can be configured</h3><p>The following functions can be configured:</p><ul class="alternate"><li>Class resolvers</li><li>Lifecycle factories</li><li>Registry for lookup</li><li><a shape="rect" href="debugger.html">Debugger</a>, <a shape="rect" href="tracer.html">Tracer</a>, <a shape="rect" href="delay-interceptor.html">Delay</a> and <a shape="rect" href="uuidgenerator.html">UuidGenerator</a></li><li><a shape="rect" href="intercept.html">Intercept</a></li><li><a shape="rect" href="graceful-shutd
 own.html">Graceful Shutdown</a></li><li><a shape="rect" href="stream-caching.html">Stream caching</a></li><li>Logging</li></ul><p>Camel will configure these functions by doing a lookup in the Spring bean registry to find beans of the given type<br clear="none"> When Camel finds and uses any of these it logs at <code>INFO</code> level.</p><p>The following list all requires at most 1 beans defined. If there are more than 1 bean of this type, then Camel will <strong>not</strong> use it.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Number of beans</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>PackageScanClassResolver</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd pa
 rty package scan resolver. More details at <a shape="rect" href="pluggable-class-resolvers.html">Pluggable Class Resolvers</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ClassResolver</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd party class resolver. More details at <a shape="rect" href="pluggable-class-resolvers.html">Pluggable Class Resolvers</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>FactoryFinderResolver</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd party factory finder.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Registry</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd party bean registry. By default Camel will use Spring Appl
 icationContext as registry.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Debugger</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a <a shape="rect" href="debugger.html">Debugger</a> usually for tooling.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Tracer</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd party <a shape="rect" href="tracer.html">Tracer</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>TraceFormatter</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a bean that has the tracing options configured.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>HandleFault</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><
 td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd part fault handler to handle FAULT messages.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Delayer</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd part <a shape="rect" href="delayer.html">Delayer</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagementStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd part strategy for <a shape="rect" href="camel-jmx.html">management</a>, for example JMX management.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagementNamingStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.6:</strong> To use a 3rd part 
 strategy for naming MBeans for <a shape="rect" href="camel-jmx.html">management</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>NodeIdFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> To use a 3rd part node id factory.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>EventFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd part event factory.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>EventNotifier</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd part event notifier. In Camel 2.2 onwards you can have multiple notifiers, see next table.</p></td></tr><tr><td colspan="1"
  rowspan="1" class="confluenceTd"><p>InflightRepository</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd part inflight repository.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ShutdownStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.2:</strong> To use a 3rd part shutdown strategy.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ExecutorServiceStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.3 - 2.8.x:</strong> To use a 3rd part executor service strategy. More details at <a shape="rect" href="threading-model.html">Threading Model</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ExecutorServiceManager</
 p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> To use a 3rd part executor service manager. More details at <a shape="rect" href="threading-model.html">Threading Model</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ThreadPoolFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> To use a 3rd part thread pool factory. More details at <a shape="rect" href="threading-model.html">Threading Model</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ProcessorFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.4:</strong> To use a 3rd part processor factory.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>UuidGenerator</
 p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> To use a 3rd part <a shape="rect" href="uuidgenerator.html">UuidGenerator</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>StreamCachingStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> To use a 3rd part <a shape="rect" href="stream-caching.html">Stream caching</a> strategy.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>UnitOfWorkFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.3/2.13:</strong> To use 3rd part <code>UnitOfWork</code> implementations created by the factory.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">RuntimeEndpointRegistry</td><td colsp
 an="1" rowspan="1" class="confluenceTd">0..1</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.13.1:</strong> To use a 3rd party RuntimeEndpointRegistry implementation.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">Logger</td><td colspan="1" rowspan="1" class="confluenceTd">0..1</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.12.4/2.13.1:</strong> To use provided org.slf4j.Logger for <a shape="rect" href="log.html">Log</a> component and <a shape="rect" href="logeip.html">log() EIP</a>.</td></tr></tbody></table></div><p>And the following options have support for any number of beans defined.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Number of beans</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>I
 nterceptStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..n</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use your own <a shape="rect" href="intercept.html">Intercept</a> that intercepts every processing steps in all routes in the <a shape="rect" href="camelcontext.html">CamelContext</a>. For instance you can use this to do an AOP like performance timer interceptor.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>LifecycleStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..n</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> To use 3rd party lifecycle strategies. By default Camel uses a JMX aware that does JMX instrumentation.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>EventNotifier</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..n</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.2:</strong> To use 3r
 d part event notifiers.</p></td></tr></tbody></table></div><p>Camel will log at <code>INFO</code> level if it pickup and uses a custom bean using <code>org.apache.camel.spring.CamelContextFactoryBean</code> as name.</p><h3 id="AdvancedconfigurationofCamelContextusingSpring-Usingcontainerwideinterceptors">Using container wide interceptors</h3><p>Imagine that you have multiple <a shape="rect" href="camelcontext.html">CamelContext</a> and you want to configure that they all use the same container wide interceptor. How do we do that? Well we can leverage the fact that Camel can auto detect and use custom interceptors. So what we simply do is to define our interceptor in the spring xml file. The sample below does this and also define 2 camel contexts. The sample is based on unit test.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Spring DSL</b></div><div class="codeContent panelContent pdl">
+<div class="wiki-content maincontent"><h2 id="AdvancedconfigurationofCamelContextusingSpring-AdvancedconfigurationofCamelContextusingSpring">Advanced configuration of CamelContext using Spring</h2><p>When using Spring the CamelContext can be pre configured based on defined beans in spring XML.<br clear="none"> This wiki page documentes these features. Most of these features requires <strong>Camel 2.0</strong>.</p><h3 id="AdvancedconfigurationofCamelContextusingSpring-Whatcanbeconfigured">What can be configured</h3><p>The following functions can be configured:</p><ul class="alternate"><li>Class resolvers</li><li>Lifecycle factories</li><li>Registry for lookup</li><li><a shape="rect" href="debugger.html">Debugger</a>, <a shape="rect" href="tracer.html">Tracer</a>, <a shape="rect" href="delay-interceptor.html">Delay</a> and <a shape="rect" href="uuidgenerator.html">UuidGenerator</a></li><li><a shape="rect" href="intercept.html">Intercept</a></li><li><a shape="rect" href="graceful-shutd
 own.html">Graceful Shutdown</a></li><li><a shape="rect" href="stream-caching.html">Stream caching</a></li><li>Logging</li></ul><p>Camel will configure these functions by doing a lookup in the Spring bean registry to find beans of the given type<br clear="none"> When Camel finds and uses any of these it logs at <code>INFO</code> level.</p><p>The following list all requires at most 1 beans defined. If there are more than 1 bean of this type, then Camel will <strong>not</strong> use it.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Number of beans</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>PackageScanClassResolver</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd pa
 rty package scan resolver. More details at <a shape="rect" href="pluggable-class-resolvers.html">Pluggable Class Resolvers</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ClassResolver</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd party class resolver. More details at <a shape="rect" href="pluggable-class-resolvers.html">Pluggable Class Resolvers</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>FactoryFinderResolver</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd party factory finder.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Registry</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd party bean registry. By default Camel will use Spring Appl
 icationContext as registry.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Debugger</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a <a shape="rect" href="debugger.html">Debugger</a> usually for tooling.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Tracer</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd party <a shape="rect" href="tracer.html">Tracer</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>TraceFormatter</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a bean that has the tracing options configured.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>HandleFault</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><
 td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd part fault handler to handle FAULT messages.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Delayer</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use a 3rd part <a shape="rect" href="delayer.html">Delayer</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagementStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd part strategy for <a shape="rect" href="camel-jmx.html">management</a>, for example JMX management.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ManagementNamingStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.6:</strong> To use a 3rd part 
 strategy for naming MBeans for <a shape="rect" href="camel-jmx.html">management</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>NodeIdFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> To use a 3rd part node id factory.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>EventFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd part event factory.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>EventNotifier</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd part event notifier. In Camel 2.2 onwards you can have multiple notifiers, see next table.</p></td></tr><tr><td colspan="1"
  rowspan="1" class="confluenceTd"><p>InflightRepository</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> To use a 3rd part inflight repository.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ShutdownStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.2:</strong> To use a 3rd part shutdown strategy.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ExecutorServiceStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.3 - 2.8.x:</strong> To use a 3rd part executor service strategy. More details at <a shape="rect" href="threading-model.html">Threading Model</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ExecutorServiceManager</
 p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> To use a 3rd part executor service manager. More details at <a shape="rect" href="threading-model.html">Threading Model</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ThreadPoolFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9:</strong> To use a 3rd part thread pool factory. More details at <a shape="rect" href="threading-model.html">Threading Model</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>ProcessorFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.4:</strong> To use a 3rd part processor factory.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>UuidGenerator</
 p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> To use a 3rd part <a shape="rect" href="uuidgenerator.html">UuidGenerator</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>StreamCachingStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> To use a 3rd part <a shape="rect" href="stream-caching.html">Stream caching</a> strategy.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>UnitOfWorkFactory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.3/2.13:</strong> To use 3rd part <code>UnitOfWork</code> implementations created by the factory.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">RuntimeEndpointRegistry</td><td colsp
 an="1" rowspan="1" class="confluenceTd">0..1</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.13.1:</strong> To use a 3rd party RuntimeEndpointRegistry implementation.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">Logger</td><td colspan="1" rowspan="1" class="confluenceTd">0..1</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.12.4/2.13.1:</strong> To use provided org.slf4j.Logger for <a shape="rect" href="log.html">Log</a> component and <a shape="rect" href="logeip.html">log() EIP</a>.</td></tr></tbody></table></div><p>And the following options have support for any number of beans defined.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Number of beans</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>I
 nterceptStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..n</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To use your own <a shape="rect" href="intercept.html">Intercept</a> that intercepts every processing steps in all routes in the <a shape="rect" href="camelcontext.html">CamelContext</a>. For instance you can use this to do an AOP like performance timer interceptor.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>LifecycleStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..n</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> To use 3rd party lifecycle strategies. By default Camel uses a JMX aware that does JMX instrumentation.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>EventNotifier</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0..n</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.2:</strong> To use 3r
 d part event notifiers.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">RoutePolicyFactory</td><td colspan="1" rowspan="1" class="confluenceTd">0..n</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.14:</strong> To use a 3rd party route policy factory to create a route policy for every route.</td></tr></tbody></table></div><p>Camel will log at <code>INFO</code> level if it pickup and uses a custom bean using <code>org.apache.camel.spring.CamelContextFactoryBean</code> as name.</p><h3 id="AdvancedconfigurationofCamelContextusingSpring-Usingcontainerwideinterceptors">Using container wide interceptors</h3><p>Imagine that you have multiple <a shape="rect" href="camelcontext.html">CamelContext</a> and you want to configure that they all use the same container wide interceptor. How do we do that? Well we can leverage the fact that Camel can auto detect and use custom interceptors. So what we simply do is to define our interceptor in the spring xml file
 . The sample below does this and also define 2 camel contexts. The sample is based on unit test.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Spring DSL</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
 
 &lt;!-- here we define a spring bean that is our container wide interceptor

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 Fri Aug 15 10:17:51 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><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><li><span style="color: rgb(0,0,0);">Added&#160;<span>Bulk Index message operation to <a shape="rect" href="elasticsearch.html">Elasticsearch</a> component.</span></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>F
 ixed 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> 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 t
 o 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 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 a
 s 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><a shape="rect" href="metrics-component.html">camel-metrics</a></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.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">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">Dependen
 cy 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>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>Res
 tlet 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 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 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-li
 nk" 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.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 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.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.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><li><span style="color: rgb(0,0,0);">Added&#160;<span>Bulk Index message operation to <a shape="rect" href="elasticsearch.html">Elasticsearch</a> component.</span></span></li><li><span style="color: rgb(0,0,0);"><span>Added <a shape="rect" href="routepolicy.html">RoutePolicyFactory</a> to create and assign a&#160;<code>RoutePolicy</code> for every route, instead of having to configure this for every route.</span></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> 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> <c
 ode>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 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">visibi
 lity</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><a shape="rect" href="metrics-component.html">camel-metrics</a></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.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">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 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>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 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 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" 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.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 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/apach
 e-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="code 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/facebook.html
==============================================================================
--- websites/production/camel/content/facebook.html (original)
+++ websites/production/camel/content/facebook.html Fri Aug 15 10:17:51 2014
@@ -102,7 +102,7 @@
 		.to(&quot;facebook://postFeed/inBody=postUpdate);
 ]]></script>
 </div></div><p>To poll, every 5 sec (You can set the&#160;<a shape="rect" href="polling-consumer.html">polling consumer</a>&#160;options by adding a prefix of "consumer"), all statuses on your home feed:</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[	from(&quot;facebook://home?consumer.delay=5&quot;)
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[	from(&quot;facebook://home?consumer.delay=5000&quot;)
 		.to(&quot;bean:blah&quot;);
 ]]></script>
 </div></div><p>Searching using a producer with dynamic options from header.</p><p>In the bar header we have the Facebook search string we want to execute in public posts, so we need to assign this value to the CamelFacebook.query header.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">

Modified: websites/production/camel/content/routepolicy.html
==============================================================================
--- websites/production/camel/content/routepolicy.html (original)
+++ websites/production/camel/content/routepolicy.html Fri Aug 15 10:17:51 2014
@@ -85,93 +85,34 @@
 	<tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 id="RoutePolicy-RoutePolicy">RoutePolicy</h2>
-<p><strong>Available as of Camel 2.1</strong></p>
-
-<p>A route policy <code>org.apache.camel.spi.RoutePolicy</code> is used to control route(s) at runtime. For example you can use it to determine whether a route should be running or not. However the policies can support any kind of use cases.</p>
-
-<h3 id="RoutePolicy-Howitworks">How it works</h3>
-<p>You associate a route with a given <code>RoutePolicy</code> and then during runtime Camel will invoke callbacks on this policy where you can implement your custom logic.</p>
-
-<p>Camel provides a support class that is a good base class to extend <code>org.apache.camel.impl.RoutePolicySupport</code>. </p>
-
-<p>There are these callbacks invoked</p>
-<ul class="alternate"><li><code>onInit</code> <strong>Camel 2.3</strong></li><li><code>onRemove</code> <strong>Camel 2.9</strong></li><li><code>onStart</code> <strong>Camel 2.9</strong></li><li><code>onStop</code> <strong>Camel 2.9</strong></li><li><code>onSuspend</code> <strong>Camel 2.9</strong></li><li><code>onResume</code> <strong>Camel 2.9</strong></li><li><code>onExchangeBegin</code></li><li><code>onExchangeDone</code></li></ul>
-
-
-<p>See the javadoc of the <code>org.apache.camel.spi.RoutePolicy</code> for more details.<br clear="none">
-And also the implementation of the <code>org.apache.camel.impl.ThrottlingInflightRoutePolicy</code> for a concrete example.</p>
-
-<p>Camel provides the following policies out of the box:</p>
-<ul class="alternate"><li><code>org.apache.camel.impl.ThrottlingInflightRoutePolicy</code> - a throttling based policy that automatic suspends/resumes route(s) based on metrics from the current in flight exchanges. You can use this to dynamic throttle e.g. a <a shape="rect" href="jms.html">JMS</a> consumer to avoid it consuming too fast.</li></ul>
-
-
-<p>As of <strong>Camel 2.5</strong>, Camel also provides an ability to schedule routes to be activated, de-activated, suspended and/or resumed at certain times during the day using a <a shape="rect" href="scheduledroutepolicy.html">ScheduledRoutePolicy</a> (offered via the <a shape="rect" class="external-link" href="http://camel.apache.org/quartz.html">camel-quartz</a> component). </p>
-
-
-    <div class="aui-message success shadowed information-macro">
+<div class="wiki-content maincontent"><h2 id="RoutePolicy-RoutePolicy">RoutePolicy</h2><p><strong>Available as of Camel 2.1</strong></p><p>A route policy <code>org.apache.camel.spi.RoutePolicy</code> is used to control route(s) at runtime. For example you can use it to determine whether a route should be running or not. However the policies can support any kind of use cases.</p><h3 id="RoutePolicy-Howitworks">How it works</h3><p>You associate a route with a given <code>RoutePolicy</code> and then during runtime Camel will invoke callbacks on this policy where you can implement your custom logic.</p><p>Camel provides a support class that is a good base class to extend <code>org.apache.camel.impl.RoutePolicySupport</code>.</p><p>There are these callbacks invoked</p><ul class="alternate"><li><code>onInit</code> <strong>Camel 2.3</strong></li><li><code>onRemove</code> <strong>Camel 2.9</strong></li><li><code>onStart</code> <strong>Camel 2.9</strong></li><li><code>onStop</code> <strong>C
 amel 2.9</strong></li><li><code>onSuspend</code> <strong>Camel 2.9</strong></li><li><code>onResume</code> <strong>Camel 2.9</strong></li><li><code>onExchangeBegin</code></li><li><code>onExchangeDone</code></li></ul><p>See the javadoc of the <code>org.apache.camel.spi.RoutePolicy</code> for more details.<br clear="none"> And also the implementation of the <code>org.apache.camel.impl.ThrottlingInflightRoutePolicy</code> for a concrete example.</p><p>Camel provides the following policies out of the box:</p><ul class="alternate"><li><code>org.apache.camel.impl.ThrottlingInflightRoutePolicy</code> - a throttling based policy that automatic suspends/resumes route(s) based on metrics from the current in flight exchanges. You can use this to dynamic throttle e.g. a <a shape="rect" href="jms.html">JMS</a> consumer to avoid it consuming too fast.</li></ul><p>As of <strong>Camel 2.5</strong>, Camel also provides an ability to schedule routes to be activated, de-activated, suspended and/or resu
 med at certain times during the day using a <a shape="rect" href="scheduledroutepolicy.html">ScheduledRoutePolicy</a> (offered via the <a shape="rect" class="external-link" href="http://camel.apache.org/quartz.html">camel-quartz</a> component).</p>    <div class="aui-message success shadowed information-macro">
                     <p class="title">SuspendableService</p>
                             <span class="aui-icon icon-success">Icon</span>
                 <div class="message-content">
-                            
-<p>If you want to dynamic suspend/resume routes as the <code>org.apache.camel.impl.ThrottlingRoutePolicy</code> does then its advised to use <code>org.apache.camel.SuspendableService</code> as it allows for fine grained <code>suspend</code> and <code>resume</code> operations. And use the <code>org.apache.camel.util.ServiceHelper</code> to aid when invoking these operations as it support fallback for regular <code>org.apache.camel.Service</code> instances.</p>
+                            <p>If you want to dynamic suspend/resume routes as the <code>org.apache.camel.impl.ThrottlingRoutePolicy</code> does then its advised to use <code>org.apache.camel.SuspendableService</code> as it allows for fine grained <code>suspend</code> and <code>resume</code> operations. And use the <code>org.apache.camel.util.ServiceHelper</code> to aid when invoking these operations as it support fallback for regular <code>org.apache.camel.Service</code> instances.</p>
                     </div>
     </div>
-
-
-<h4 id="RoutePolicy-ThrottlingInflightRoutePolicy">ThrottlingInflightRoutePolicy</h4>
-<p>The ThrottlingInflightRoutePolicy is triggered when an <a shape="rect" href="exchange.html">Exchange</a> is complete, which means that it requires at least one <a shape="rect" href="exchange.html">Exchange</a> to be complete before it <em>works</em>. </p>
-
-<p>The throttling inflight route policy has the following options:</p>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Option </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Default </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> scope </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Route </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A scope for either <code>Route</code> or <code>Context</code> which defines if the current number of inflight exchanges is context based or for that particular route. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> maxInflightExchanges </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 1000 </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The maximum threshold when the throttling will start to suspend the route if the current number of inlfight exchanges is higher than
  this value. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> resumePercentOfMax </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 70 </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A percentage 0..100 which defines when the throttling should resume again in case it has been suspended. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> loggingLevel </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> INFO </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The logging level used for logging the throttling activity. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> logger </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ThrottlingInflightRoutePolicy </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The logger category. </p></td></tr></tbody></table></div>
-
-
-    <div class="aui-message hint shadowed information-macro">
+<h4 id="RoutePolicy-ThrottlingInflightRoutePolicy">ThrottlingInflightRoutePolicy</h4><p>The ThrottlingInflightRoutePolicy is triggered when an <a shape="rect" href="exchange.html">Exchange</a> is complete, which means that it requires at least one <a shape="rect" href="exchange.html">Exchange</a> to be complete before it <em>works</em>.</p><p>The throttling inflight route policy has the following options:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>scope</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Route</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A scope for either <code>Route</code> or <code>Context</code> which defines if the current number of inflight exchanges
  is context based or for that particular route.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>maxInflightExchanges</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>1000</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The maximum threshold when the throttling will start to suspend the route if the current number of inlfight exchanges is higher than this value.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>resumePercentOfMax</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>70</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A percentage 0..100 which defines when the throttling should resume again in case it has been suspended.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>loggingLevel</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>INFO</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The logging level used for logging the throttling activity.</p></t
 d></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>logger</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ThrottlingInflightRoutePolicy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The logger category.</p></td></tr></tbody></table></div>    <div class="aui-message hint shadowed information-macro">
                     <p class="title">ThrottlingInflightRoutePolicy compared to the [Throttler] EIP</p>
                             <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">
-                            
-<p>The <code>ThrottlingInflightRoutePolicy</code> compared to <a shape="rect" href="throttler.html">Throttler</a> is that it does <strong>not</strong> block during throttling. It does throttling that is approximate based, meaning that its more coarse grained and not explicit precise as the <a shape="rect" href="throttler.html">Throttler</a>. The <a shape="rect" href="throttler.html">Throttler</a> can be much more accurate and only allow a specific number of messages being passed per a given time unit. Also the <code>ThrottlingInflightRoutePolicy</code> is based its metrics on number of inflight exchanges where as <a shape="rect" href="throttler.html">Throttler</a> is based on number of messages per time unit.</p>
+                            <p>The <code>ThrottlingInflightRoutePolicy</code> compared to <a shape="rect" href="throttler.html">Throttler</a> is that it does <strong>not</strong> block during throttling. It does throttling that is approximate based, meaning that its more coarse grained and not explicit precise as the <a shape="rect" href="throttler.html">Throttler</a>. The <a shape="rect" href="throttler.html">Throttler</a> can be much more accurate and only allow a specific number of messages being passed per a given time unit. Also the <code>ThrottlingInflightRoutePolicy</code> is based its metrics on number of inflight exchanges where as <a shape="rect" href="throttler.html">Throttler</a> is based on number of messages per time unit.</p>
                     </div>
     </div>
-
-
-<h4 id="RoutePolicy-ScheduledRoutePolicy(SimpleandCronbased)usingcamelQuartz">ScheduledRoutePolicy (Simple and Cron based) using camel Quartz</h4>
-
-<p>For more details check out the following links</p>
-
-<h3 id="RoutePolicy-Configuringpolicy">Configuring policy</h3>
-
-<p>You configure the route policy as follows from Java DSL, using the <code>routePolicy</code> method:</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[
-  RoutePolicy myPolicy = new MyRoutePolicy();
+<h4 id="RoutePolicy-ScheduledRoutePolicy(SimpleandCronbased)usingcamelQuartz">ScheduledRoutePolicy (Simple and Cron based) using camel Quartz</h4><p>For more details check out the following links</p><h3 id="RoutePolicy-Configuringpolicy">Configuring policy</h3><p>You configure the route policy as follows from Java DSL, using the <code>routePolicy</code> method:</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[  RoutePolicy myPolicy = new MyRoutePolicy();
   from(&quot;seda:foo&quot;).routePolicy(myPolicy).to(&quot;mock:result&quot;);
 ]]></script>
-</div></div>
-
-<p>In Spring XML its a bit different as follows using the <code>routePolicyRef</code> attribute:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-   &lt;bean id=&quot;myPolicy&quot; class=&quot;com.mycompany.MyRoutePolicy&quot;/&gt;
+</div></div><p>In Spring XML its a bit different as follows using the <code>routePolicyRef</code> attribute:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[   &lt;bean id=&quot;myPolicy&quot; class=&quot;com.mycompany.MyRoutePolicy&quot;/&gt;
    
    &lt;route routePolicyRef=&quot;myPolicy&quot;&gt;
        &lt;from uri=&quot;seda:foo&quot;/&gt;
        &lt;to uri=&quot;mock:result&quot;/&gt;
    &lt;/route&gt;
 ]]></script>
-</div></div>
-
-<h3 id="RoutePolicy-Configuringpolicysets">Configuring policy sets</h3>
-<p><strong>Available as of Camel 2.7</strong></p>
-
-<p>RoutePolicy has been further improved to allow addition of policy sets or a collection of policies that are concurrently applied on a route. The addition of policies is done as follows.</p>
-
-<p>In the example below, the route testRoute has a startPolicy and throttlePolicy applied concurrently. Both policies are applied as necessary on the route.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-   &lt;bean id=&quot;date&quot; class=&quot;org.apache.camel.routepolicy.quartz.SimpleDate&quot;/&gt;
+</div></div><h3 id="RoutePolicy-Configuringpolicysets">Configuring policy sets</h3><p><strong>Available as of Camel 2.7</strong></p><p>RoutePolicy has been further improved to allow addition of policy sets or a collection of policies that are concurrently applied on a route. The addition of policies is done as follows.</p><p>In the example below, the route testRoute has a startPolicy and throttlePolicy applied concurrently. Both policies are applied as necessary on the route.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[   &lt;bean id=&quot;date&quot; class=&quot;org.apache.camel.routepolicy.quartz.SimpleDate&quot;/&gt;
 
     &lt;bean id=&quot;startPolicy&quot; class=&quot;org.apache.camel.routepolicy.quartz.SimpleScheduledRoutePolicy&quot;&gt;
     	&lt;property name=&quot;routeStartDate&quot; ref=&quot;date&quot;/&gt;
@@ -191,10 +132,21 @@ And also the implementation of the <code
     &lt;/camelContext&gt;
    &lt;/route&gt;
 ]]></script>
-</div></div>
-
-<h3 id="RoutePolicy-SeeAlso">See Also</h3>
-<ul class="alternate"><li><a shape="rect" href="route-throttling-example.html">Route Throttling Example</a> for an example using this in practice with the ThrottlingInflightRoutePolicy</li><li><a shape="rect" href="scheduledroutepolicy.html">ScheduledRoutePolicy</a> for information on policy based scheduling capability for camel routes</li><li><a shape="rect" href="architecture.html">Architecture</a></li></ul></div>
+</div></div><h3 id="RoutePolicy-UsingRoutePolicyFactory">Using RoutePolicyFactory</h3><p><strong>Available as of Camel 2.14</strong></p><p>If you want to use a route policy for every route, you can use a&#160;<code>org.apache.camel.spi.RoutePolicyFactory</code> as a factory for creating a&#160;<code>RoutePolicy</code> instance for each route. This can be used when you want to use the same kind of route policy for every routes. Then you need to only configure the factory once, and every route created will have the policy assigned.</p><p>There is API on CamelContext to add a factory, as 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[context.addRoutePolicyFactory(new MyRoutePolicyFactory());]]></script>
+</div></div><p>And from XML DSL you just define a &lt;bean&gt; with the factory</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;bean id=&quot;myRoutePolicyFactory&quot; class=&quot;com.foo.MyRoutePolicyFactory&quot;/&gt;]]></script>
+</div></div><p>The factory has a single method that creates the route policy</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[    /**
+     * Creates a new {@link org.apache.camel.spi.RoutePolicy} which will be assigned to the given route.
+     *
+     * @param camelContext the camel context
+     * @param routeId      the route id
+     * @param route        the route definition
+     * @return the created {@link org.apache.camel.spi.RoutePolicy}, or &lt;tt&gt;null&lt;/tt&gt; to not use a policy for this route
+     */
+    RoutePolicy createRoutePolicy(CamelContext camelContext, String routeId, RouteDefinition route);]]></script>
+</div></div><p>Note you can have as many route policy factories as you want. Just call the addRoutePolicyFactory again, or declare the other factories as &lt;bean&gt; in XML.</p><h3 id="RoutePolicy-SeeAlso">See Also</h3><ul class="alternate"><li><a shape="rect" href="route-throttling-example.html">Route Throttling Example</a> for an example using this in practice with the ThrottlingInflightRoutePolicy</li><li><a shape="rect" href="scheduledroutepolicy.html">ScheduledRoutePolicy</a> for information on policy based scheduling capability for camel routes</li><li><a shape="rect" href="architecture.html">Architecture</a></li></ul></div>
         </td>
         <td valign="top">
           <div class="navigation">