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/05/06 10:18:11 UTC

svn commit: r908167 - in /websites/production/camel/content: cache/main.pageCache camel-2140-release.html polling-consumer.html

Author: buildbot
Date: Tue May  6 08:18:11 2014
New Revision: 908167

Log:
Production update by buildbot for camel

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

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

Modified: websites/production/camel/content/camel-2140-release.html
==============================================================================
--- websites/production/camel/content/camel-2140-release.html (original)
+++ websites/production/camel/content/camel-2140-release.html Tue May  6 08:18:11 2014
@@ -87,7 +87,7 @@
         <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><span class="image-wrap" style=""><img src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png" style="border: 0px solid black"></span></p></div><div style="min-height:200px"></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>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>CamelHttpP
 ath header to define a dynamic context-path and query parameters to call the remote http server.</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></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-bal
 ancer.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><a shape="rect" href="openshift.html">camel-openshift</a></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><h3 id="Camel2.14.0Release-New.3">New <a shape="rect" href="languages.html">Languages</a></h3><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="Ca
 mel2.14.0Release-APIchanges">API changes</h2><ul><li>Changed ...</li></ul><h2 id="Camel2.14.0Release-KnownIssues">Known Issues</h2><ul><li>Spring 4.x is not yet official supported.</li></ul><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>Dozer 5.4.0 to 5.5.1</li><li>JRuby 1.7.10 to 1.7.12</li><li>MongoDB-Java-Driver 2.11.4 to 2.12.0</li><li>Scala 2.
 10.3 to 2.10.4</li><li>RabbitMQ AMQ Client 3.2.2 to 3.3.0</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>Bla bla</li></ul><h2 id="Camel2.14.0Release-Importantchangestoconsiderwhenupgrading">Important changes to consider when upgrading</h2><ul><li>Bla bla<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/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-GettingtheBin
 ariesusingMaven2">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">
+<p><span class="image-wrap" style=""><img src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png" style="border: 0px solid black"></span></p></div><div style="min-height:200px"></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>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>CamelHttpP
 ath 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></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></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><a shape="rect" href="openshift.html">camel-openshift</a></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-forma
 t.html">Data Formats</a></h3><h3 id="Camel2.14.0Release-New.3">New <a shape="rect" href="languages.html">Languages</a></h3><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>Changed ...</li></ul><h2 id="Camel2.14.0Release-KnownIssues">Known Issues</h2><ul><li>Spring 4.x is not yet official supported.</li></ul><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 sh
 ape="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>Dozer 5.4.0 to 5.5.1</li><li>Groovy upgraded to 2.3.0</li><li>JRuby 1.7.10 to 1.7.12</li><li>MongoDB-Java-Driver 2.11.4 to 2.12.0</li><li>Scala 2.10.3 to 2.10.4</li><li>RabbitMQ AMQ Client 3.2.2 to 3.3.0</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></ul><h2 id="Camel2.14.0Release-Importantchangestoconsiderwhenupgrading">Important changes to consider when upgrading</h2><ul><li>Bla bla<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" r
 owspan="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 colspa
 n="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/int
 roduction/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/polling-consumer.html
==============================================================================
--- websites/production/camel/content/polling-consumer.html (original)
+++ websites/production/camel/content/polling-consumer.html Tue May  6 08:18:11 2014
@@ -86,62 +86,30 @@
 	<tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h3 id="PollingConsumer-PollingConsumer">Polling Consumer</h3>
-
-<p>Camel supports implementing the <a shape="rect" class="external-link" href="http://www.enterpriseintegrationpatterns.com/PollingConsumer.html" rel="nofollow">Polling Consumer</a> from the <a shape="rect" href="enterprise-integration-patterns.html">EIP patterns</a> using the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/PollingConsumer.html">PollingConsumer</a> interface which can be created via the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Endpoint.html#createPollingConsumer()">Endpoint.createPollingConsumer()</a> method.</p>
-
-<p><img class="confluence-embedded-image confluence-external-resource" src="http://www.enterpriseintegrationpatterns.com/img/PollingConsumerSolution.gif" data-image-src="http://www.enterpriseintegrationpatterns.com/img/PollingConsumerSolution.gif"></p>
-
-<p>So in your Java code you can do</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-Endpoint endpoint = context.getEndpoint(&quot;activemq:my.queue&quot;);
+<div class="wiki-content maincontent"><h3 id="PollingConsumer-PollingConsumer">Polling Consumer</h3><p>Camel supports implementing the <a shape="rect" class="external-link" href="http://www.enterpriseintegrationpatterns.com/PollingConsumer.html" rel="nofollow">Polling Consumer</a> from the <a shape="rect" href="enterprise-integration-patterns.html">EIP patterns</a> using the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/PollingConsumer.html">PollingConsumer</a> interface which can be created via the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Endpoint.html#createPollingConsumer()">Endpoint.createPollingConsumer()</a> method.</p><p><img class="confluence-embedded-image confluence-external-resource" src="http://www.enterpriseintegrationpatterns.com/img/PollingConsumerSolution.gif" data-image-src="http://www.enterpriseintegrationpatterns.com/
 img/PollingConsumerSolution.gif"></p><p>So in your Java code you can do</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[Endpoint endpoint = context.getEndpoint(&quot;activemq:my.queue&quot;);
 PollingConsumer consumer = endpoint.createPollingConsumer();
 Exchange exchange = consumer.receive();
 ]]></script>
-</div></div>
-
-<p>The <code>ConsumerTemplate</code> (discussed below) is also available.</p>
-
-<p>There are 3 main polling methods on <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/PollingConsumer.html">PollingConsumer</a></p>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Method name </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/PollingConsumer.html#receive()">receive()</a> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Waits until a message is available and then returns it; potentially blocking forever </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/PollingConsumer.html#receive(long)">receive(long)</a> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Attempts to receive a message exchange, waiting up to the given timeout and returning null if no message 
 exchange could be received within the time available </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/PollingConsumer.html#receiveNoWait()">receiveNoWait()</a> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Attempts to receive a message exchange immediately without waiting and returning null if a message exchange is not available yet </p></td></tr></tbody></table></div>
-
-
-<h3 id="PollingConsumer-ConsumerTemplate">ConsumerTemplate</h3>
-
-<p>The <code>ConsumerTemplate</code> is a template much like Spring's JmsTemplate or JdbcTemplate supporting the <a shape="rect" href="polling-consumer.html">Polling Consumer</a> EIP. With the template you can consume <a shape="rect" href="exchange.html">Exchange</a>s from an <a shape="rect" href="endpoint.html">Endpoint</a>.</p>
-
-<p>The template supports the 3 operations above, but also including convenient methods for returning the body, etc <code>consumeBody</code>.<br clear="none">
-The example from above using ConsumerTemplate is:</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[
-Exchange exchange = consumerTemplate.receive(&quot;activemq:my.queue&quot;);
+</div></div><p>The <code>ConsumerTemplate</code> (discussed below) is also available.</p><p>There are 3 main polling methods on <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/PollingConsumer.html">PollingConsumer</a></p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Method name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/PollingConsumer.html#receive()">receive()</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Waits until a message is available and then returns it; potentially blocking forever</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://camel.
 apache.org/maven/current/camel-core/apidocs/org/apache/camel/PollingConsumer.html#receive(long)">receive(long)</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Attempts to receive a message exchange, waiting up to the given timeout and returning null if no message exchange could be received within the time available</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/PollingConsumer.html#receiveNoWait()">receiveNoWait()</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Attempts to receive a message exchange immediately without waiting and returning null if a message exchange is not available yet</p></td></tr></tbody></table></div><h3 id="PollingConsumer-EventDrivenPollingConsumerOptions">EventDrivenPollingConsumer Options</h3><p>The EventDrivePollingConsumer (the default implementation) supports the following options:</p>
 <div class="confluenceTableSmall">
+<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> <code>pollingConsumerQueueSize</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>1000</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.14/2.13.1:</strong> The queue size for the internal handoff queue between the polling consumer, and producers sending data into the queue. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>pollingConsumerBlockWhenFull</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>true</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.14/2.13.1:</strong> Whether to block any producer if the internal queue is
  full. </p></td></tr></tbody></table>
+</div><p>Notice that some Camel&#160;<a shape="rect" href="components.html">Components</a>&#160;has their own implementation of&#160;<code>PollingConsumer</code> and therefore do not support the options above.</p><p>You can configure these options in endpoints&#160;<a shape="rect" href="uris.html">URIs</a>, such 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[Endpoint endpoint = context.getEndpoint(&quot;file:inbox?pollingConsumerQueueSize=50&quot;);
+PollingConsumer consumer = endpoint.createPollingConsumer();
+Exchange exchange = consumer.receive(5000);]]></script>
+</div></div><h3 id="PollingConsumer-ConsumerTemplate">ConsumerTemplate</h3><p>The <code>ConsumerTemplate</code> is a template much like Spring's JmsTemplate or JdbcTemplate supporting the <a shape="rect" href="polling-consumer.html">Polling Consumer</a> EIP. With the template you can consume <a shape="rect" href="exchange.html">Exchange</a>s from an <a shape="rect" href="endpoint.html">Endpoint</a>.</p><p>The template supports the 3 operations above, but also including convenient methods for returning the body, etc <code>consumeBody</code>.<br clear="none"> The example from above using ConsumerTemplate is:</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[Exchange exchange = consumerTemplate.receive(&quot;activemq:my.queue&quot;);
 ]]></script>
-</div></div>
-<p>Or to extract and get the body you can do:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-Object body = consumerTemplate.receiveBody(&quot;activemq:my.queue&quot;);
+</div></div><p>Or to extract and get the body you can do:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[Object body = consumerTemplate.receiveBody(&quot;activemq:my.queue&quot;);
 ]]></script>
-</div></div>
-<p>And you can provide the body type as a parameter and have it returned as the type:</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[
-String body = consumerTemplate.receiveBody(&quot;activemq:my.queue&quot;, String.class);
+</div></div><p>And you can provide the body type as a parameter and have it returned as the type:</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[String body = consumerTemplate.receiveBody(&quot;activemq:my.queue&quot;, String.class);
 ]]></script>
-</div></div>
-<p>You get hold of a <code>ConsumerTemplate</code> from the <code>CamelContext</code> with the <code>createConsumerTemplate</code> operation:</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[
-ConsumerTemplate consumer = context.createConsumerTemplate();
+</div></div><p>You get hold of a <code>ConsumerTemplate</code> from the <code>CamelContext</code> with the <code>createConsumerTemplate</code> operation:</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[ConsumerTemplate consumer = context.createConsumerTemplate();
 ]]></script>
-</div></div>
-
-<h4 id="PollingConsumer-UsingConsumerTemplatewithSpringDSL">Using ConsumerTemplate with Spring DSL</h4>
-<p>With the Spring DSL we can declare the consumer in the CamelContext with the <strong>consumerTemplate</strong> tag, just like the ProducerTemplate. The example below illustrates this:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h4 id="PollingConsumer-UsingConsumerTemplatewithSpringDSL">Using ConsumerTemplate with Spring DSL</h4><p>With the Spring DSL we can declare the consumer in the CamelContext with the <strong>consumerTemplate</strong> tag, just like the ProducerTemplate. The example below illustrates this:</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;camelContext xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
     &lt;!-- define a producer template --&gt;
@@ -155,10 +123,7 @@ ConsumerTemplate consumer = context.crea
     &lt;/route&gt;
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-
-<p>Then we can get leverage Spring to inject the <code>ConsumerTemplate</code> in our java class. The code below is part of an unit test but it shows how the consumer and producer can work together. </p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Then we can get leverage Spring to inject the <code>ConsumerTemplate</code> in our java class. The code below is part of an unit test but it shows how the consumer and producer can work together.</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[
 @ContextConfiguration
 public class SpringConsumerTemplateTest extends SpringRunWithTestSupport {
@@ -194,13 +159,7 @@ public class SpringConsumerTemplateTest 
 
 }
 ]]></script>
-</div></div>
-
-<h4 id="PollingConsumer-Timerbasedpollingconsumer">Timer based polling consumer</h4>
-<p>In this sample we use a <a shape="rect" href="timer.html">Timer</a> to schedule a route to be started every 5th second and invoke our bean <strong>MyCoolBean</strong> where we implement the business logic for the <a shape="rect" href="polling-consumer.html">Polling Consumer</a>. Here we want to consume all messages from a JMS queue, process the message and send them to the next queue.</p>
-
-<p>First we setup our route as:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h4 id="PollingConsumer-Timerbasedpollingconsumer">Timer based polling consumer</h4><p>In this sample we use a <a shape="rect" href="timer.html">Timer</a> to schedule a route to be started every 5th second and invoke our bean <strong>MyCoolBean</strong> where we implement the business logic for the <a shape="rect" href="polling-consumer.html">Polling Consumer</a>. Here we want to consume all messages from a JMS queue, process the message and send them to the next queue.</p><p>First we setup our route as:</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[
 MyCoolBean cool = new MyCoolBean();
 cool.setProducer(template);
@@ -210,10 +169,7 @@ from(&quot;timer://foo?period=5000&quot;
 
 from(&quot;activemq:queue.foo&quot;).to(&quot;mock:result&quot;);
 ]]></script>
-</div></div>
-
-<p>And then we have out logic in our bean:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>And then we have out logic in our bean:</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[
 public static class MyCoolBean {
 
@@ -248,89 +204,15 @@ public static class MyCoolBean {
     }
 }
 ]]></script>
-</div></div>
-
-
-<h3 id="PollingConsumer-ScheduledPollComponents">Scheduled Poll Components</h3>
-
-<p>Quite a few inbound Camel endpoints use a scheduled poll pattern to receive messages and push them through the Camel processing routes. That is to say externally from the client the endpoint appears to use an <a shape="rect" href="event-driven-consumer.html">Event Driven Consumer</a> but internally a scheduled poll is used to monitor some kind of state or resource and then fire message exchanges. </p>
-
-<p>Since this a such a common pattern, polling components can extend the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/impl/ScheduledPollConsumer.html">ScheduledPollConsumer</a> base class which makes it simpler to implement this pattern.</p>
-
-<p>There is also the <a shape="rect" href="quartz.html">Quartz Component</a> which provides scheduled delivery of messages using the Quartz enterprise scheduler.</p>
-
-<p>For more details see:</p>
-
-<ul><li><a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/PollingConsumer.html">PollingConsumer</a></li><li>Scheduled Polling Components
-	<ul><li><a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/impl/ScheduledPollConsumer.html">ScheduledPollConsumer</a></li><li><a shape="rect" href="atom.html">Atom</a></li><li><a shape="rect" href="file2.html">File</a></li><li><a shape="rect" href="ftp2.html">FTP</a></li><li><a shape="rect" href="hbase.html">hbase</a></li><li><a shape="rect" href="ibatis.html">iBatis</a></li><li><a shape="rect" href="jpa.html">JPA</a></li><li><a shape="rect" href="mail.html">Mail</a></li><li><a shape="rect" href="mybatis.html">MyBatis</a></li><li><a shape="rect" href="quartz.html">Quartz</a></li><li><a shape="rect" href="snmp.html">SNMP</a></li><li><a shape="rect" href="aws-s3.html">AWS-S3</a></li><li><a shape="rect" href="aws-sqs.html">AWS-SQS</a></li></ul>
-	</li></ul>
-
-
-<h3 id="PollingConsumer-ScheduledPollConsumerOptions">ScheduledPollConsumer Options</h3>
-<p>The ScheduledPollConsumer supports the following options:</p>
-
-<div class="confluenceTableSmall">
+</div></div><h3 id="PollingConsumer-ScheduledPollComponents">Scheduled Poll Components</h3><p>Quite a few inbound Camel endpoints use a scheduled poll pattern to receive messages and push them through the Camel processing routes. That is to say externally from the client the endpoint appears to use an <a shape="rect" href="event-driven-consumer.html">Event Driven Consumer</a> but internally a scheduled poll is used to monitor some kind of state or resource and then fire message exchanges.</p><p>Since this a such a common pattern, polling components can extend the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/impl/ScheduledPollConsumer.html">ScheduledPollConsumer</a> base class which makes it simpler to implement this pattern.</p><p>There is also the <a shape="rect" href="quartz.html">Quartz Component</a> which provides scheduled delivery of messages using the Quartz enterprise scheduler.</p><p>For more details s
 ee:</p><ul><li><a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/PollingConsumer.html">PollingConsumer</a></li><li>Scheduled Polling Components<ul><li><a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/impl/ScheduledPollConsumer.html">ScheduledPollConsumer</a></li><li><a shape="rect" href="atom.html">Atom</a></li><li><a shape="rect" href="file2.html">File</a></li><li><a shape="rect" href="ftp2.html">FTP</a></li><li><a shape="rect" href="hbase.html">hbase</a></li><li><a shape="rect" href="ibatis.html">iBATIS</a></li><li><a shape="rect" href="jpa.html">JPA</a></li><li><a shape="rect" href="mail.html">Mail</a></li><li><a shape="rect" href="mybatis.html">MyBatis</a></li><li><a shape="rect" href="quartz.html">Quartz</a></li><li><a shape="rect" href="snmp.html">SNMP</a></li><li><a shape="rect" href="aws-s3.html">AWS-S3</a></li><li><a shape="rect" href="aws
 -sqs.html">AWS-SQS</a></li></ul></li></ul><h3 id="PollingConsumer-ScheduledPollConsumerOptions">ScheduledPollConsumer Options</h3><p>The ScheduledPollConsumer supports the following options:</p><div class="confluenceTableSmall">
 <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> <code>pollStrategy</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><ul class="alternate" type="square"><li></li></ul>
 </td><td colspan="1" rowspan="1" class="confluenceTd"><p> A pluggable <code>org.apache.camel.PollingConsumerPollingStrategy</code> allowing you to provide your custom implementation to control error handling usually occurred during the <code>poll</code> operation <strong>before</strong> an <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> have been created and being routed in Camel. In other words the error occurred while the polling was gathering information, for instance access to a file network failed so Camel cannot access it to scan for files. The default implementation will log the caused exception at <code>WARN</code> level and ignore it. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>sendEmptyMessageWhenIdle</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.9:</strong> If the polling consumer did not poll any files
 , you can enable this option to send an empty message (no body) instead. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>startScheduler</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>true</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Whether the scheduler should be auto started. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>initialDelay</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>1000</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Milliseconds before the first poll starts. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>delay</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>500</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Milliseconds before the next poll. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>useFixedDela
 y</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Controls if fixed delay or fixed rate is used. See <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ScheduledExecutorService.html" rel="nofollow">ScheduledExecutorService</a> in JDK for details. In <strong>Camel 2.7.x</strong> or older the default value is <code>false</code>. From <strong>Camel 2.8</strong> onwards the default value is <code>true</code>. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>timeUnit</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>TimeUnit.MILLISECONDS</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> time unit for <code>initialDelay</code> and <code>delay</code> options. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>runLoggingLevel</code> </p></td><td colspan="
 1" rowspan="1" class="confluenceTd"><p> <code>TRACE</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.8:</strong> The consumer logs a start/complete log line when it polls. This option allows you to configure the logging level for that. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>scheduledExecutorService</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.10:</strong> Allows for configuring a custom/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool. This option allows you to share a thread pool among multiple consumers. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>greedy</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><
 p> <strong>Camel 2.10.6/2.11.1:</strong> If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>scheduler</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.12:</strong> Allow to plugin a custom <code>org.apache.camel.spi.ScheduledPollConsumerScheduler</code> to use as the scheduler for firing when the polling consumer runs. The default implementation uses the <code>ScheduledExecutorService</code> and there is a <a shape="rect" href="quartz2.html" title="Quartz2">Quartz2</a>, and <a shape="rect" href="spring.html" title="Spring">Spring</a> based which supports CRON expressions. <strong>Notice:</strong> If using a custom scheduler then the options for <code>initialDelay</code>, <code>useFixedDelay</code>, <code>timeUnit</cod
 e>, and <code>scheduledExecutorService</code> may not be in use. Use the text <code>quartz2</code> to refer to use the <a shape="rect" href="quartz2.html" title="Quartz2">Quartz2</a> scheduler; and use the text <code>spring</code> to use the <a shape="rect" href="spring.html" title="Spring">Spring</a> based; and use the text <code>#myScheduler</code> to refer to a custom scheduler by its id in the <a shape="rect" href="registry.html" title="Registry">Registry</a>. See <a shape="rect" href="quartz2.html" title="Quartz2">Quartz2</a> page for an example. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>scheduler.xxx</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.12:</strong> To configure additional properties when using a custom <code>scheduler</code> or any of the <a shape="rect" href="quartz2.html" title="Quartz2">Quartz2</a>, <a shape="rec
 t" href="spring.html" title="Spring">Spring</a> based scheduler. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>backoffMultiplier</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>0</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.12:</strong> To let the scheduled polling consumer backoff if there has been a number of subsequent idles/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is happening again. When this option is in use then <code>backoffIdleThreshold</code> and/or <code>backoffErrorThreshold</code> must also be configured. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>backoffIdleThreshold</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>0</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.12:</strong> The number of subsequent idle p
 olls that should happen before the <code>backoffMultipler</code> should kick-in. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>backoffErrorThreshold</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>0</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.12:</strong> The number of subsequent error polls (failed due some error) that should happen before the <code>backoffMultipler</code> should kick-in. </p></td></tr></tbody></table>
-</div>
-
-<h3 id="PollingConsumer-Usingbackofftolettheschedulerbelessaggressive">Using backoff to let the scheduler be less aggressive</h3>
-<p><strong>Available as of Camel 2.12</strong></p>
-
-<p>The scheduled <a shape="rect" href="polling-consumer.html">Polling Consumer</a> is by default static by using the same poll frequency whether or not there is messages to pickup or not. From Camel 2.12 onwards you can configure the scheduled <a shape="rect" href="polling-consumer.html">Polling Consumer</a> to be more dynamic by using backoff. This allows the scheduler to skip N number of polls when it becomes idle, or there has been X number of errors in a row. See more details in the table above for the <code>backoffXXX</code> options.</p>
-
-<p>For example to let a FTP consumer backoff if its becoming idle for a while you can do:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-    from(&quot;ftp://myserver?username=foo&amp;passowrd=secret?delete=true&amp;delay=5s&amp;backoffMultiplier=6&amp;backoffIdleThreshold=5&quot;)
+</div><h3 id="PollingConsumer-Usingbackofftolettheschedulerbelessaggressive">Using backoff to let the scheduler be less aggressive</h3><p><strong>Available as of Camel 2.12</strong></p><p>The scheduled <a shape="rect" href="polling-consumer.html">Polling Consumer</a> is by default static by using the same poll frequency whether or not there is messages to pickup or not. From Camel 2.12 onwards you can configure the scheduled <a shape="rect" href="polling-consumer.html">Polling Consumer</a> to be more dynamic by using backoff. This allows the scheduler to skip N number of polls when it becomes idle, or there has been X number of errors in a row. See more details in the table above for the <code>backoffXXX</code> options.</p><p>For example to let a FTP consumer backoff if its becoming idle for a while you can do:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[    from(&quot;ftp://myserver?username=foo&amp;passowrd=secret?delete=true&amp;delay=5s&amp;backoffMultiplier=6&amp;backoffIdleThreshold=5&quot;)
       .to(&quot;bean:processFile&quot;);
 ]]></script>
-</div></div>
-
-<p>In this example, the FTP consumer will poll for new FTP files evert 5th second. But if it has been idle for 5 attempts in a row, then it will<br clear="none">
-backoff using a multiplier of 6, which means it will now poll every 5 x 6 = 30th second instead. When the consumer eventually pickup a file, then the backoff will reset, and the consumer will go back and poll every 5th second again.</p>
-
-<p>Camel will log at <code>DEBUG</code> level using <code>org.apache.camel.impl.ScheduledPollConsumer</code> when backoff is kicking-in. </p>
-
-
-<h3 id="PollingConsumer-Abouterrorhandlingandscheduledpollingconsumers">About error handling and scheduled polling consumers</h3>
-<p><a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/impl/ScheduledPollConsumer.html">ScheduledPollConsumer</a> is scheduled based and its <code>run</code> method is invoked periodically based on schedule settings. But errors can also occur when a poll is being executed. For instance if Camel should poll a file network, and this network resource is not available then a <code>java.io.IOException</code> could occur. As this error happens <strong>before</strong> any <a shape="rect" href="exchange.html">Exchange</a> has been created and prepared for routing, then the regular <a shape="rect" href="error-handling-in-camel.html">Error handling in Camel</a> does not apply. So what does the consumer do then? Well the exception is propagated back to the <code>run</code> method where its handled. Camel will by default log the exception at <code>WARN</code> level and then ignore it. At next schedule the error could have been re
 solved and thus being able to poll the endpoint successfully.</p>
-
-<h3 id="PollingConsumer-Usingacustomscheduler">Using a custom scheduler</h3>
-<p><strong>Available as of Camel 2.12:</strong></p>
-
-<p>The SPI interface <code>org.apache.camel.spi.ScheduledPollConsumerScheduler</code> allows to implement a custom scheduler to control when the <a shape="rect" href="polling-consumer.html">Polling Consumer</a> runs. The default implementation is based on the JDKs <code>ScheduledExecutorService</code> with a single thread in the thread pool. There is a CRON based implementation in the <a shape="rect" href="quartz2.html">Quartz2</a>, and <a shape="rect" href="spring.html">Spring</a> components.</p>
-
-<p>For an example of developing and using a custom scheduler, see the unit test <code>org.apache.camel.component.file.FileConsumerCustomSchedulerTest</code> from the source code in <code>camel-core</code>.</p>
-
-<h4 id="PollingConsumer-ControllingtheerrorhandlingusingPollingConsumerPollStrategy">Controlling the error handling using PollingConsumerPollStrategy</h4>
-
-<p><code>org.apache.camel.PollingConsumerPollStrategy</code> is a pluggable strategy that you can configure on the <code>ScheduledPollConsumer</code>. The default implementation <code>org.apache.camel.impl.DefaultPollingConsumerPollStrategy</code> will log the caused exception at <code>WARN</code> level and then ignore this issue.</p>
-
-<p>The strategy interface provides the following 3 methods</p>
-<ul class="alternate"><li>begin
-	<ul class="alternate"><li><code>void begin(Consumer consumer, Endpoint endpoint)</code></li></ul>
-	</li><li>begin (<strong>Camel 2.3</strong>)
-	<ul class="alternate"><li><code>boolean begin(Consumer consumer, Endpoint endpoint)</code></li></ul>
-	</li><li>commit
-	<ul class="alternate"><li><code>void commit(Consumer consumer, Endpoint endpoint)</code></li></ul>
-	</li><li>commit (<strong>Camel 2.6</strong>)
-	<ul class="alternate"><li><code>void commit(Consumer consumer, Endpoint endpoint, int polledMessages)</code></li></ul>
-	</li><li>rollback
-	<ul class="alternate"><li><code>boolean rollback(Consumer consumer, Endpoint endpoint, int retryCounter, Exception e) throws Exception</code></li></ul>
-	</li></ul>
-
-
-<p>In <strong>Camel 2.3</strong> onwards the begin method returns a boolean which indicates whether or not to skipping polling. So you can implement your custom logic and return <code>false</code> if you do not want to poll this time.</p>
-
-<p>In <strong>Camel 2.6</strong> onwards the commit method has an additional parameter containing the number of message that was actually polled. For example if there was no messages polled, the value would be zero, and you can react accordingly.</p>
-
-<p>The most interesting is the <code>rollback</code> as it allows you do handle the caused exception and decide what to do. </p>
-
-<p>For instance if we want to provide a retry feature to a scheduled consumer we can implement the <code>PollingConsumerPollStrategy</code> method and put the retry logic in the <code>rollback</code> method. Lets just retry up till 3 times:</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[
-    public boolean rollback(Consumer consumer, Endpoint endpoint, int retryCounter, Exception e) throws Exception {
+</div></div><p>In this example, the FTP consumer will poll for new FTP files evert 5th second. But if it has been idle for 5 attempts in a row, then it will<br clear="none"> backoff using a multiplier of 6, which means it will now poll every 5 x 6 = 30th second instead. When the consumer eventually pickup a file, then the backoff will reset, and the consumer will go back and poll every 5th second again.</p><p>Camel will log at <code>DEBUG</code> level using <code>org.apache.camel.impl.ScheduledPollConsumer</code> when backoff is kicking-in.</p><h3 id="PollingConsumer-Abouterrorhandlingandscheduledpollingconsumers">About error handling and scheduled polling consumers</h3><p><a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/impl/ScheduledPollConsumer.html">ScheduledPollConsumer</a> is scheduled based and its <code>run</code> method is invoked periodically based on schedule settings. But errors can also occur when a po
 ll is being executed. For instance if Camel should poll a file network, and this network resource is not available then a <code>java.io.IOException</code> could occur. As this error happens <strong>before</strong> any <a shape="rect" href="exchange.html">Exchange</a> has been created and prepared for routing, then the regular <a shape="rect" href="error-handling-in-camel.html">Error handling in Camel</a> does not apply. So what does the consumer do then? Well the exception is propagated back to the <code>run</code> method where its handled. Camel will by default log the exception at <code>WARN</code> level and then ignore it. At next schedule the error could have been resolved and thus being able to poll the endpoint successfully.</p><h3 id="PollingConsumer-Usingacustomscheduler">Using a custom scheduler</h3><p><strong>Available as of Camel 2.12:</strong></p><p>The SPI interface <code>org.apache.camel.spi.ScheduledPollConsumerScheduler</code> allows to implement a custom scheduler t
 o control when the <a shape="rect" href="polling-consumer.html">Polling Consumer</a> runs. The default implementation is based on the JDKs <code>ScheduledExecutorService</code> with a single thread in the thread pool. There is a CRON based implementation in the <a shape="rect" href="quartz2.html">Quartz2</a>, and <a shape="rect" href="spring.html">Spring</a> components.</p><p>For an example of developing and using a custom scheduler, see the unit test <code>org.apache.camel.component.file.FileConsumerCustomSchedulerTest</code> from the source code in <code>camel-core</code>.</p><h4 id="PollingConsumer-ControllingtheerrorhandlingusingPollingConsumerPollStrategy">Controlling the error handling using PollingConsumerPollStrategy</h4><p><code>org.apache.camel.PollingConsumerPollStrategy</code> is a pluggable strategy that you can configure on the <code>ScheduledPollConsumer</code>. The default implementation <code>org.apache.camel.impl.DefaultPollingConsumerPollStrategy</code> will log t
 he caused exception at <code>WARN</code> level and then ignore this issue.</p><p>The strategy interface provides the following 3 methods</p><ul class="alternate"><li>begin<ul class="alternate"><li><code>void begin(Consumer consumer, Endpoint endpoint)</code></li></ul></li><li>begin (<strong>Camel 2.3</strong>)<ul class="alternate"><li><code>boolean begin(Consumer consumer, Endpoint endpoint)</code></li></ul></li><li>commit<ul class="alternate"><li><code>void commit(Consumer consumer, Endpoint endpoint)</code></li></ul></li><li>commit (<strong>Camel 2.6</strong>)<ul class="alternate"><li><code>void commit(Consumer consumer, Endpoint endpoint, int polledMessages)</code></li></ul></li><li>rollback<ul class="alternate"><li><code>boolean rollback(Consumer consumer, Endpoint endpoint, int retryCounter, Exception e) throws Exception</code></li></ul></li></ul><p>In <strong>Camel 2.3</strong> onwards the begin method returns a boolean which indicates whether or not to skipping polling. So yo
 u can implement your custom logic and return <code>false</code> if you do not want to poll this time.</p><p>In <strong>Camel 2.6</strong> onwards the commit method has an additional parameter containing the number of message that was actually polled. For example if there was no messages polled, the value would be zero, and you can react accordingly.</p><p>The most interesting is the <code>rollback</code> as it allows you do handle the caused exception and decide what to do.</p><p>For instance if we want to provide a retry feature to a scheduled consumer we can implement the <code>PollingConsumerPollStrategy</code> method and put the retry logic in the <code>rollback</code> method. Lets just retry up till 3 times:</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[    public boolean rollback(Consumer consumer, Endpoint endpoint, int retryCounter, Exception e) throws Exception {
         if (retryCounter &lt; 3) {
             // return true to tell Camel that it should retry the poll immediately
             return true;
@@ -339,33 +221,17 @@ backoff using a multiplier of 6, which m
         return false;
     }
 ]]></script>
-</div></div>
-
-<p>Notice that we are given the <code>Consumer</code> as a parameter. We could use this to <em>restart</em> the consumer as we can invoke stop and start:</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[
-    // error occurred lets restart the consumer, that could maybe resolve the issue
+</div></div><p>Notice that we are given the <code>Consumer</code> as a parameter. We could use this to <em>restart</em> the consumer as we can invoke stop and start:</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[    // error occurred lets restart the consumer, that could maybe resolve the issue
     consumer.stop();
     consumer.start();
 ]]></script>
-</div></div>
-
-<p><strong>Notice:</strong> If you implement the <code>begin</code> operation make sure to avoid throwing exceptions as in such a case the <code>poll</code> operation is not invoked and Camel will invoke the <code>rollback</code> directly.</p>
-
-<h4 id="PollingConsumer-ConfiguringantousePollingConsumerPollStrategy">Configuring an <a shape="rect" href="endpoint.html">Endpoint</a> to use <code>PollingConsumerPollStrategy</code></h4>
-<p>To configure an <a shape="rect" href="endpoint.html">Endpoint</a> to use a custom <code>PollingConsumerPollStrategy</code> you use the option <code>pollStrategy</code>. For example in the file consumer below we want to use our custom strategy defined in the <a shape="rect" href="registry.html">Registry</a> with the bean id <code>myPoll</code>:</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;file://inbox/?pollStrategy=#myPoll&quot;).to(&quot;activemq:queue:inbox&quot;)
+</div></div><p><strong>Notice:</strong> If you implement the <code>begin</code> operation make sure to avoid throwing exceptions as in such a case the <code>poll</code> operation is not invoked and Camel will invoke the <code>rollback</code> directly.</p><h4 id="PollingConsumer-ConfiguringantousePollingConsumerPollStrategy">Configuring an <a shape="rect" href="endpoint.html">Endpoint</a> to use <code>PollingConsumerPollStrategy</code></h4><p>To configure an <a shape="rect" href="endpoint.html">Endpoint</a> to use a custom <code>PollingConsumerPollStrategy</code> you use the option <code>pollStrategy</code>. For example in the file consumer below we want to use our custom strategy defined in the <a shape="rect" href="registry.html">Registry</a> with the bean id <code>myPoll</code>:</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;file://inbox/?pollStrategy=#myPoll&quot;).to(&quot;activemq:queue:inbox&quot;)
 ]]></script>
-</div></div>
-
-<h4 id="PollingConsumer-UsingThisPattern">Using This Pattern</h4>
-
-<p>If you would like to use this EIP Pattern then please read the <a shape="rect" href="getting-started.html">Getting Started</a>, you may also find the <a shape="rect" href="architecture.html">Architecture</a> useful particularly the description of <a shape="rect" href="endpoint.html">Endpoint</a> and <a shape="rect" href="uris.html">URIs</a>. Then you could try out some of the <a shape="rect" href="examples.html">Examples</a> first before trying this pattern out.</p>
+</div></div><p></p><h4 id="PollingConsumer-UsingThisPattern">Using This Pattern</h4>
 
-<h3 id="PollingConsumer-SeeAlso">See Also</h3>
-<ul class="alternate"><li><a shape="rect" href="pojo-consuming.html">POJO Consuming</a></li><li><a shape="rect" href="batch-consumer.html">Batch Consumer</a></li></ul></div>
+<p>If you would like to use this EIP Pattern then please read the <a shape="rect" href="getting-started.html">Getting Started</a>, you may also find the <a shape="rect" href="architecture.html">Architecture</a> useful particularly the description of <a shape="rect" href="endpoint.html">Endpoint</a> and <a shape="rect" href="uris.html">URIs</a>. Then you could try out some of the <a shape="rect" href="examples.html">Examples</a> first before trying this pattern out.</p><h3 id="PollingConsumer-SeeAlso">See Also</h3><ul class="alternate"><li><a shape="rect" href="pojo-consuming.html">POJO Consuming</a></li><li><a shape="rect" href="batch-consumer.html">Batch Consumer</a></li></ul></div>
         </td>
         <td valign="top">
           <div class="navigation">