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


Reply via email to