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/03/14 11:20:21 UTC

svn commit: r901542 [5/8] - in /websites/production/camel/content: ./ cache/

Modified: websites/production/camel/content/book-pattern-appendix.html
==============================================================================
--- websites/production/camel/content/book-pattern-appendix.html (original)
+++ websites/production/camel/content/book-pattern-appendix.html Fri Mar 14 10:20:20 2014
@@ -1390,7 +1390,7 @@ public class MyDynamicRouter {
 
 <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="BookPatternAppendix-RecipientList">Recipient List</h3><p>The <a shape="rect" class="external-link" href="http://www.enterpriseintegrationpatterns.com/RecipientList.html" rel="nofollow">Recipient List</a> from the <a shape="rect" href="enterprise-integration-patterns.html">EIP patterns</a> allows you to route messages to a number of dynamically specified recipients.</p><p><img class="confluence-embedded-image confluence-external-resource" src="http://www.enterpriseintegrationpatterns.com/img/RecipientList.gif" data-image-src="http://www.enterpriseintegrationpatterns.com/img/RecipientList.gif"></p><p>The recipients will receive a copy of the <strong>same</strong> <a shape="rect" href="exchange.html">Exchange</a>, and Camel will execute them sequentially.</p><h3 id="BookPatternAppendix-Options.1">Options</h3><div class="confluenceTableSmall">
-<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Name </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Default Value </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>delimiter</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>,</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Delimiter used if the <a shape="rect" href="expression.html" title="Expression">Expression</a> returned multiple endpoints. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>strategyRef</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> An <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html
 ">AggregationStrategy</a> that will assemble the replies from recipients into a single outgoing message from the <a shape="rect" href="recipient-list.html" title="Recipient List">Recipient List</a>. By default Camel will use the last reply as the outgoing message. From <strong>Camel 2.12</strong> onwards you can also use a POJO as the <code>AggregationStrategy</code>, see the <a shape="rect" href="aggregator2.html" title="Aggregator2">Aggregate</a> page for more details. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>strategyMethodName</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.12:</strong> This option can be used to explicit declare the method name to use, when using POJOs as the <code>AggregationStrategy</code>. See the <a shape="rect" href="aggregator2.html" title="Aggregator2">Aggregate</a> page for more details. </p></td></tr><tr><td colspan
 ="1" rowspan="1" class="confluenceTd"><p> <code>strategyMethodAllowNull</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.12:</strong> If this option is <code>false</code> then the aggregate method is not used if there was no data to enrich. If this option is <code>true</code> then <code>null</code> values is used as the <code>oldExchange</code> (when no data to enrich), when using POJOs as the <code>AggregationStrategy</code>. See the <a shape="rect" href="aggregator2.html" title="Aggregator2">Aggregate</a> page for more details. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>parallelProcessing</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.2:</strong> If enabled, messages are sent to the recipients concurrently. Note tha
 t the calling thread will still wait until all messages have been fully processed before it continues; it's the sending and processing of replies from recipients which happens in parallel. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>executorServiceRef</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.2:</strong> A custom <a shape="rect" href="threading-model.html" title="Threading Model">Thread Pool</a> to use for parallel processing. Note that enabling this option implies parallel processing, so you need not enable that option as well. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>stopOnException</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.2:</strong> Whether to immediately stop processing when an e
 xception occurs. If disabled, Camel will send the message to all recipients regardless of any individual failures. You can process exceptions in an <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html">AggregationStrategy</a> implementation, which supports full control of error handling. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>ignoreInvalidEndpoints</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.3:</strong> Whether to ignore an endpoint URI that could not be resolved. If disabled, Camel will throw an exception identifying the invalid endpoint URI. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>streaming</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.5:</strong> If enabled, Camel will process replies out-of-order - that is, in the order received in reply from each recipient. If disabled, Camel will process replies in the same order as specified by the <a shape="rect" href="expression.html" title="Expression">Expression</a>. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>timeout</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.5:</strong> Specifies a processing timeout milliseconds. If the <a shape="rect" href="recipient-list.html" title="Recipient List">Recipient List</a> hasn't been able to send and process all replies within this timeframe, then the timeout triggers and the <a shape="rect" href="recipient-list.html" title="Recipient List">Recipient List</a> breaks out, with message flow continuing to the next element. Not
 e that if you provide a <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/TimeoutAwareAggregationStrategy.html">TimeoutAwareAggregationStrategy</a>, its <code>timeout</code> method is invoked before breaking out. <strong>Beware:</strong> If the timeout is reached with running tasks still remaining, certain tasks for which it is difficult for Camel to shut down in a graceful manner may continue to run.  So use this option with a bit of care.  We may be able to improve this functionality in future Camel releases. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>onPrepareRef</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.8:</strong> A custom <a shape="rect" href="processor.html" title="Processor">Processor</a> to prepare the copy of the <a shape="rect" href="exchange.h
 tml" title="Exchange">Exchange</a> each recipient will receive. This allows you to perform arbitrary transformations, such as deep-cloning the message payload (or any other custom logic). </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>shareUnitOfWork</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.8:</strong> Whether the unit of work should be shared. See <a shape="rect" href="splitter.html#Splitter-Sharingunitofwork">the same option on Splitter</a> for more details. </p></td></tr></tbody></table>
+<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Name </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Default Value </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>delimiter</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>,</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Delimiter used if the <a shape="rect" href="expression.html" title="Expression">Expression</a> returned multiple endpoints. <strong>Camel 2.13</strong> can be disabled using "false" </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>strategyRef</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> An <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org
 /apache/camel/processor/aggregate/AggregationStrategy.html">AggregationStrategy</a> that will assemble the replies from recipients into a single outgoing message from the <a shape="rect" href="recipient-list.html" title="Recipient List">Recipient List</a>. By default Camel will use the last reply as the outgoing message. From <strong>Camel 2.12</strong> onwards you can also use a POJO as the <code>AggregationStrategy</code>, see the <a shape="rect" href="aggregator2.html" title="Aggregator2">Aggregate</a> page for more details. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>strategyMethodName</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.12:</strong> This option can be used to explicit declare the method name to use, when using POJOs as the <code>AggregationStrategy</code>. See the <a shape="rect" href="aggregator2.html" title="Aggregator2">Aggregat
 e</a> page for more details. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>strategyMethodAllowNull</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.12:</strong> If this option is <code>false</code> then the aggregate method is not used if there was no data to enrich. If this option is <code>true</code> then <code>null</code> values is used as the <code>oldExchange</code> (when no data to enrich), when using POJOs as the <code>AggregationStrategy</code>. See the <a shape="rect" href="aggregator2.html" title="Aggregator2">Aggregate</a> page for more details. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>parallelProcessing</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.2:</strong> If enabled, 
 messages are sent to the recipients concurrently. Note that the calling thread will still wait until all messages have been fully processed before it continues; it's the sending and processing of replies from recipients which happens in parallel. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>executorServiceRef</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.2:</strong> A custom <a shape="rect" href="threading-model.html" title="Threading Model">Thread Pool</a> to use for parallel processing. Note that enabling this option implies parallel processing, so you need not enable that option as well. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>stopOnException</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.2:
 </strong> Whether to immediately stop processing when an exception occurs. If disabled, Camel will send the message to all recipients regardless of any individual failures. You can process exceptions in an <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html">AggregationStrategy</a> implementation, which supports full control of error handling. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>ignoreInvalidEndpoints</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.3:</strong> Whether to ignore an endpoint URI that could not be resolved. If disabled, Camel will throw an exception identifying the invalid endpoint URI. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>streaming</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.5:</strong> If enabled, Camel will process replies out-of-order - that is, in the order received in reply from each recipient. If disabled, Camel will process replies in the same order as specified by the <a shape="rect" href="expression.html" title="Expression">Expression</a>. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>timeout</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.5:</strong> Specifies a processing timeout milliseconds. If the <a shape="rect" href="recipient-list.html" title="Recipient List">Recipient List</a> hasn't been able to send and process all replies within this timeframe, then the timeout triggers and the <a shape="rect" href="recipient-list.html" title="Recipient List">Recipient List</a> breaks 
 out, with message flow continuing to the next element. Note that if you provide a <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/TimeoutAwareAggregationStrategy.html">TimeoutAwareAggregationStrategy</a>, its <code>timeout</code> method is invoked before breaking out. <strong>Beware:</strong> If the timeout is reached with running tasks still remaining, certain tasks for which it is difficult for Camel to shut down in a graceful manner may continue to run.  So use this option with a bit of care.  We may be able to improve this functionality in future Camel releases. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>onPrepareRef</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.8:</strong> A custom <a shape="rect" href="processor.html" title="Processor">Processor</a> t
 o prepare the copy of the <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> each recipient will receive. This allows you to perform arbitrary transformations, such as deep-cloning the message payload (or any other custom logic). </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>shareUnitOfWork</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.8:</strong> Whether the unit of work should be shared. See <a shape="rect" href="splitter.html#Splitter-Sharingunitofwork">the same option on Splitter</a> for more details. </p></td></tr></tbody></table>
 </div><h4 id="BookPatternAppendix-StaticRecipientList">Static Recipient List</h4><p>The following example shows how to route a request from an input <strong>queue:a</strong> endpoint to a static list of destinations</p><p><strong>Using Annotations</strong><br clear="none"> You can use the <a shape="rect" href="recipientlist-annotation.html">RecipientList Annotation</a> on a POJO to create a Dynamic Recipient List. For more details see the <a shape="rect" href="bean-integration.html">Bean Integration</a>.</p><p><strong>Using the <a shape="rect" href="fluent-builders.html">Fluent Builders</a></strong></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[
 RouteBuilder builder = new RouteBuilder() {
@@ -2219,18 +2219,18 @@ class StringAggregationStrategy implemen
 class ArrayListAggregationStrategy implements AggregationStrategy {
 
     public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
-	Object newBody = newExchange.getIn().getBody();
-	ArrayList&lt;Object&gt; list = null;
+		Object newBody = newExchange.getIn().getBody();
+		ArrayList&lt;Object&gt; list = null;
         if (oldExchange == null) {
-		list = new ArrayList&lt;Object&gt;();
-		list.add(newBody);
-		newExchange.getIn().setBody(list);
-		return newExchange;
+			list = new ArrayList&lt;Object&gt;();
+			list.add(newBody);
+			newExchange.getIn().setBody(list);
+			return newExchange;
         } else {
 	        list = oldExchange.getIn().getBody(ArrayList.class);
-		list.add(newBody);
-		return oldExchange;
-	}
+			list.add(newBody);
+			return oldExchange;
+		}
     }
 }
 ]]></script>
@@ -2462,7 +2462,7 @@ public final class MyListOfNumbersStrate
                             <p>You can use POJOs as AggregationStrategy with the other <a shape="rect" href="eip.html">EIP</a>s that supports aggregation, such as <a shape="rect" href="splitter.html">Splitter</a>, <a shape="rect" href="recipient-list.html">Recipient List</a>, etc.</p>
                     </div>
     </div>
-<p>To use the <code>AggregationStrategy</code> you had to implement the <code>org.apache.camel.processor.aggregate.AggregationStrategy</code> interface, which means your logic would be tied to the Camel API. From <strong>Camel 2.12</strong> onwards you can use a POJO for the logic and let Camel adapt to your POJO. To use a POJO a convention must be followed:</p><ul class="alternate"><li>there must be a public method to use</li><li>the method must not be void</li><li>the method can be static or non-static</li><li>the method must have 2 or more parameters</li><li>the parameters is paired so the first 50% is applied to the <code>oldExchnage</code> and the reminder 50% is for the <code>newExchange</code></li><li>.. meaning that there must be an equal number of parameters, eg 2, 4, 6 etc.</li></ul><p>The paired methods is expected to be ordered as follows:</p><ul class="alternate"><li>the first parameter is the message body</li><li>the 2nd parameter is a Map of the headers</li><li>the 3r
 d parameter is a Map of the Exchange properties</li></ul><p>This convention is best explained with some examples.</p><p>In the method below, we have only 2 parameters, so the 1st parameter is the body of the <code>oldExchange</code>, and the 2nd is paired to the body of the <code>newExchange</code>:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<p>To use the <code>AggregationStrategy</code> you had to implement the <code>org.apache.camel.processor.aggregate.AggregationStrategy</code> interface, which means your logic would be tied to the Camel API. From <strong>Camel 2.12</strong> onwards you can use a POJO for the logic and let Camel adapt to your POJO. To use a POJO a convention must be followed:</p><ul class="alternate"><li>there must be a public method to use</li><li>the method must not be void</li><li>the method can be static or non-static</li><li>the method must have 2 or more parameters</li><li>the parameters is paired so the first 50% is applied to the <code>oldExchange</code> and the reminder 50% is for the <code>newExchange</code></li><li>.. meaning that there must be an equal number of parameters, eg 2, 4, 6 etc.</li></ul><p>The paired methods is expected to be ordered as follows:</p><ul class="alternate"><li>the first parameter is the message body</li><li>the 2nd parameter is a Map of the headers</li><li>the 3r
 d parameter is a Map of the Exchange properties</li></ul><p>This convention is best explained with some examples.</p><p>In the method below, we have only 2 parameters, so the 1st parameter is the body of the <code>oldExchange</code>, and the 2nd is paired to the body of the <code>newExchange</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[public String append(String existing, String next) {
   return existing + next;
 }
@@ -3513,66 +3513,38 @@ And the same example in Spring XML is:</
 
 <h3 id="BookPatternAppendix-SeeAlso.1">See Also</h3>
 <ul class="alternate"><li><a shape="rect" href="throttler.html">Throttler</a></li><li><a shape="rect" href="aggregator.html">Aggregator</a></li></ul>
-<h3 id="BookPatternAppendix-Delayer">Delayer</h3>
-
-<p>The Delayer Pattern allows you to delay the delivery of messages to some destination.</p>
-
-    <div class="aui-message hint shadowed information-macro">
+<h3 id="BookPatternAppendix-Delayer">Delayer</h3><p>The Delayer Pattern allows you to delay the delivery of messages to some destination.</p>    <div class="aui-message hint shadowed information-macro">
                             <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">
-                            
-<p>The expression is a value in millis to wait from the current time, so the expression should just be <code>3000</code>.<br clear="none">
-However you can use a long value for a fixed value to indicate the delay in millis.<br clear="none">
-See the Spring DSL samples for Delayer.</p>
+                            <p>The expression is a value in millis to wait from the current time, so the expression should just be <code>3000</code>.<br clear="none"> However you can use a long value for a fixed value to indicate the delay in millis.<br clear="none"> See the Spring DSL samples for Delayer.</p>
                     </div>
     </div>
-
-
     <div class="aui-message problem shadowed information-macro">
                     <p class="title">Using Delayer in Java DSL</p>
                             <span class="aui-icon icon-problem">Icon</span>
                 <div class="message-content">
-                            
-<p>See this ticket: <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-2654">https://issues.apache.org/jira/browse/CAMEL-2654</a></p>
+                            <p>See this ticket: <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-2654">https://issues.apache.org/jira/browse/CAMEL-2654</a></p>
                     </div>
     </div>
-
-
-<h3 id="BookPatternAppendix-Options.6">Options</h3>
-
-<div class="confluenceTableSmall">
+<h3 id="BookPatternAppendix-Options.6">Options</h3><div class="confluenceTableSmall">
 <table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Name </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Default Value </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>asyncDelayed</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.4:</strong> If enabled then delayed messages happens asynchronously using a scheduled thread pool. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>executorServiceRef</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>  <strong>Camel 2.4:</strong> Refers to a custom <a shape="rect" href="threading-model.html" title="Threading Model">Thread Pool</a> to be used if <code>asyncDel
 ay</code> has been enabled. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>callerRunsWhenRejected</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.4:</strong> Is used if <code>asyncDelayed</code> was enabled. This controls if the caller thread should execute the task if the thread pool rejected the task. </p></td></tr></tbody></table>
-</div>
-
-<p><strong>Using the <a shape="rect" href="fluent-builders.html">Fluent Builders</a></strong></p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div><p><strong>Using the <a shape="rect" href="fluent-builders.html">Fluent Builders</a></strong></p><p>The example below will delay all messages received on <strong>seda:b</strong> 1 second before sending them to <strong><a shape="rect" class="external-link" href="http://mockresult" rel="nofollow">mock:result</a></strong>.</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;seda:b&quot;).delay(1000).to(&quot;mock:result&quot;);
 ]]></script>
-</div></div>
-
-<p>So the above example will delay all messages received on <strong>seda:b</strong> 1 second before sending them to <strong>mock:result</strong>. </p>
-
-<p>You can of course use many different <a shape="rect" href="expression.html">Expression</a> languages such as <a shape="rect" href="xpath.html">XPath</a>, <a shape="rect" href="xquery.html">XQuery</a>, <a shape="rect" href="sql.html">SQL</a> or various <a shape="rect" href="scripting-languages.html">Scripting Languages</a>.  You can just delay things a fixed amount of time from the point at which the delayer receives the message. For example to delay things 2 seconds</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[
-delayer(2000)
+</div></div><p>You can just delay things a fixed amount of time from the point at which the delayer receives the message. For example to delay things 2 seconds</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[delayer(2000)
 ]]></script>
-</div></div>
-
-<p>The above assume that the delivery order is maintained and that the messages are delivered in delay order. If you want to reorder the messages based on delivery time, you can use the <a shape="rect" href="resequencer.html">Resequencer</a> with this pattern. For example</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;activemq:someQueue&quot;).resequencer(header(&quot;MyDeliveryTime&quot;)).delay(&quot;MyRedeliveryTime&quot;).to(&quot;activemq:aDelayedQueue&quot;);
+</div></div><p>The above assume that the delivery order is maintained and that the messages are delivered in delay order. If you want to reorder the messages based on delivery time, you can use the <a shape="rect" href="resequencer.html">Resequencer</a> with this pattern. For example</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;activemq:someQueue&quot;).resequencer(header(&quot;MyDeliveryTime&quot;)).delay(&quot;MyRedeliveryTime&quot;).to(&quot;activemq:aDelayedQueue&quot;);
 ]]></script>
-</div></div>
-
-<h4 id="BookPatternAppendix-SpringDSL">Spring DSL</h4>
-<p>The sample below demonstrates the delay in Spring DSL:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>You can of course use many different <a shape="rect" href="expression.html">Expression</a> languages such as <a shape="rect" href="xpath.html">XPath</a>, <a shape="rect" href="xquery.html">XQuery</a>, <a shape="rect" href="sql.html">SQL</a> or various <a shape="rect" href="scripting-languages.html">Scripting Languages</a>. For example to delay the message for the time period specified in the header, use the following syntax:</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;activemq:someQueue&quot;).delay(header(&quot;delayValue&quot;)).to(&quot;activemq:aDelayedQueue&quot;);
+]]></script>
+</div></div><p>And to delay processing using the <a shape="rect" href="simple.html">Simple</a> language you can use the following DSL:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[from(&quot;activemq:someQueue&quot;).delay(simple(&quot;${body.delayProperty}&quot;)).to(&quot;activemq:aDelayedQueue&quot;);
+]]></script>
+</div></div><h4 id="BookPatternAppendix-SpringDSL">Spring DSL</h4><p>The sample below demonstrates the delay in Spring DSL:</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;myDelayBean&quot; class=&quot;org.apache.camel.processor.MyDelayCalcBean&quot;/&gt;
 
@@ -3600,30 +3572,11 @@ from(&quot;activemq:someQueue&quot;).res
     &lt;/route&gt;
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-
-<p>For further examples of this pattern in use you could look at the <a shape="rect" class="external-link" href="http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerTest.java?view=markup">junit test case</a></p>
-
-<h3 id="BookPatternAppendix-Asynchronousdelaying.1">Asynchronous delaying</h3>
-<p><strong>Available as of Camel 2.4</strong></p>
-
-<p>You can let the <a shape="rect" href="delayer.html">Delayer</a> use non blocking asynchronous delaying, which means Camel will use a scheduler to schedule a task to be executed in the future. The task will then continue routing. This allows the caller thread to not block and be able to service other messages etc.</p>
-
-<h4 id="BookPatternAppendix-FromJavaDSL">From Java DSL</h4>
-<p>You use the <code>asyncDelayed()</code> to enable the async behavior.</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;activemq:queue:foo&quot;).delay(1000).asyncDelayed().to(&quot;activemq:aDelayedQueue&quot;);
+</div></div><p>For further examples of this pattern in use you could look at the <a shape="rect" class="external-link" href="http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/DelayerTest.java?view=markup">junit test case</a></p><h3 id="BookPatternAppendix-Asynchronousdelaying.1">Asynchronous delaying</h3><p><strong>Available as of Camel 2.4</strong></p><p>You can let the <a shape="rect" href="delayer.html">Delayer</a> use non blocking asynchronous delaying, which means Camel will use a scheduler to schedule a task to be executed in the future. The task will then continue routing. This allows the caller thread to not block and be able to service other messages etc.</p><h4 id="BookPatternAppendix-FromJavaDSL">From Java DSL</h4><p>You use the <code>asyncDelayed()</code> to enable the async behavior.</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;activemq:queue:foo&quot;).delay(1000).asyncDelayed().to(&quot;activemq:aDelayedQueue&quot;);
 ]]></script>
-</div></div>
-
-<h4 id="BookPatternAppendix-FromSpringXML">From Spring XML</h4>
-<p>You use the <code>asyncDelayed="true"</code> attribute to enable the async behavior.</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;route&gt;
+</div></div><h4 id="BookPatternAppendix-FromSpringXML">From Spring XML</h4><p>You use the <code>asyncDelayed="true"</code> attribute to enable the async behavior.</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;route&gt;
    &lt;from uri=&quot;activemq:queue:foo&quot;/&gt;
    &lt;delay asyncDelayed=&quot;true&quot;&gt;
        &lt;constant&gt;1000&lt;/constant&gt;
@@ -3631,25 +3584,13 @@ from(&quot;activemq:queue:foo&quot;).del
    &lt;to uri=&quot;activemq:aDealyedQueue&quot;/&gt;
 &lt;/route&gt;
 ]]></script>
-</div></div>
-
-<h3 id="BookPatternAppendix-Creatingacustomdelay">Creating a custom delay</h3>
-
-<p>You can use an expression to determine when to send a message using something like this</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;activemq:foo&quot;).
+</div></div><h3 id="BookPatternAppendix-Creatingacustomdelay">Creating a custom delay</h3><p>You can use an expression to determine when to send a message using something like this</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;activemq:foo&quot;).
   delay().method(&quot;someBean&quot;, &quot;computeDelay&quot;).
   to(&quot;activemq:bar&quot;);
 ]]></script>
-</div></div>
-
-<p>then the bean would look like this...</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 class SomeBean {
+</div></div><p>then the bean would look like this...</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 class SomeBean {
   public long computeDelay() { 
      long delay = 0;
      // use java code to compute a delay value in millis
@@ -3657,15 +3598,9 @@ public class SomeBean {
  }
 }
 ]]></script>
-</div></div>
-
-<h4 id="BookPatternAppendix-UsingThisPattern.26">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="BookPatternAppendix-UsingThisPattern.26">Using This Pattern</h4>
 
-<h3 id="BookPatternAppendix-SeeAlso.2">See Also</h3>
-
-<ul><li><a shape="rect" href="delay-interceptor.html">Delay Interceptor</a></li></ul>
+<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="BookPatternAppendix-SeeAlso.2">See Also</h3><ul><li><a shape="rect" href="delay-interceptor.html">Delay Interceptor</a></li></ul>
 <h3 id="BookPatternAppendix-LoadBalancer">Load Balancer</h3>
 
 <p>The Load Balancer Pattern allows you to delegate to one of a number of endpoints using a variety of different load balancing policies.</p>
@@ -5613,32 +5548,15 @@ from(&quot;direct:start&quot;)
 <h4 id="BookPatternAppendix-UsingThisPattern.42">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>
-<h3 id="BookPatternAppendix-TransactionalClient">Transactional Client</h3>
-<p>Camel recommends supporting the <a shape="rect" class="external-link" href="http://www.enterpriseintegrationpatterns.com/TransactionalClient.html" rel="nofollow">Transactional Client</a> from the <a shape="rect" href="enterprise-integration-patterns.html">EIP patterns</a> using spring transactions.</p>
-
-<p><img class="confluence-embedded-image confluence-external-resource" src="http://www.enterpriseintegrationpatterns.com/img/TransactionalClientSolution.gif" data-image-src="http://www.enterpriseintegrationpatterns.com/img/TransactionalClientSolution.gif"></p>
-
-<p>Transaction Oriented Endpoints (<a shape="rect" href="what-is-a-camel-toe.html">Camel Toes</a>) like <a shape="rect" href="jms.html">JMS</a> support using a transaction for both inbound and outbound message exchanges.  Endpoints that support transactions will participate in the current transaction context that they are called from.</p>
-
-    <div class="aui-message success shadowed information-macro">
+<h3 id="BookPatternAppendix-TransactionalClient">Transactional Client</h3><p>Camel recommends supporting the <a shape="rect" class="external-link" href="http://www.enterpriseintegrationpatterns.com/TransactionalClient.html" rel="nofollow">Transactional Client</a> from the <a shape="rect" href="enterprise-integration-patterns.html">EIP patterns</a> using spring transactions.</p><p><img class="confluence-embedded-image confluence-external-resource" src="http://www.enterpriseintegrationpatterns.com/img/TransactionalClientSolution.gif" data-image-src="http://www.enterpriseintegrationpatterns.com/img/TransactionalClientSolution.gif"></p><p>Transaction Oriented Endpoints (<a shape="rect" href="what-is-a-camel-toe.html">Camel Toes</a>) like <a shape="rect" href="jms.html">JMS</a> support using a transaction for both inbound and outbound message exchanges. Endpoints that support transactions will participate in the current transaction context that they are called from.</p>    <div class="au
 i-message success shadowed information-macro">
                     <p class="title">Configuration of Redelivery</p>
                             <span class="aui-icon icon-success">Icon</span>
                 <div class="message-content">
-                            
-<p>The redelivery in transacted mode is <strong>not</strong> handled by Camel but by the backing system (the transaction manager). In such cases you should resort to the backing system how to configure the redelivery. </p>
+                            <p>The redelivery in transacted mode is <strong>not</strong> handled by Camel but by the backing system (the transaction manager). In such cases you should resort to the backing system how to configure the redelivery.</p>
                     </div>
     </div>
-
-
-<p>You should use the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-spring/apidocs/org/apache/camel/spring/SpringRouteBuilder.html">SpringRouteBuilder</a> to setup the routes since you will need to setup the spring context with the <a shape="rect" class="external-link" href="http://www.springframework.org/docs/api/org/springframework/transaction/support/TransactionTemplate.html" rel="nofollow">TransactionTemplate</a>s that will define the transaction manager configuration and policies.</p>
-
-<p>For inbound endpoint to be transacted, they normally need to be configured to use a Spring <a shape="rect" class="external-link" href="http://www.springframework.org/docs/api/org/springframework/transaction/PlatformTransactionManager.html" rel="nofollow">PlatformTransactionManager</a>.  In the case of the JMS component, this can be done by looking it up in the spring context.</p>
-
-<p>You first define needed object in the spring configuration.</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;jmsTransactionManager&quot; class=&quot;org.springframework.jms.connection.JmsTransactionManager&quot;&gt;
+<p>You should use the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-spring/apidocs/org/apache/camel/spring/SpringRouteBuilder.html">SpringRouteBuilder</a> to setup the routes since you will need to setup the spring context with the <a shape="rect" class="external-link" href="http://www.springframework.org/docs/api/org/springframework/transaction/support/TransactionTemplate.html" rel="nofollow">TransactionTemplate</a>s that will define the transaction manager configuration and policies.</p><p>For inbound endpoint to be transacted, they normally need to be configured to use a Spring <a shape="rect" class="external-link" href="http://www.springframework.org/docs/api/org/springframework/transaction/PlatformTransactionManager.html" rel="nofollow">PlatformTransactionManager</a>. In the case of the JMS component, this can be done by looking it up in the spring context.</p><p>You first define needed object in the spring configuration.</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;jmsTransactionManager&quot; class=&quot;org.springframework.jms.connection.JmsTransactionManager&quot;&gt;
     &lt;property name=&quot;connectionFactory&quot; ref=&quot;jmsConnectionFactory&quot; /&gt;
   &lt;/bean&gt;
   
@@ -5646,28 +5564,15 @@ from(&quot;direct:start&quot;)
     &lt;property name=&quot;brokerURL&quot; value=&quot;tcp://localhost:61616&quot;/&gt;
   &lt;/bean&gt;
 ]]></script>
-</div></div>
-
-<p>Then you look them up and use them to create the JmsComponent.</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[
-  PlatformTransactionManager transactionManager = (PlatformTransactionManager) spring.getBean(&quot;jmsTransactionManager&quot;);
+</div></div><p>Then you look them up and use them to create the JmsComponent.</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[  PlatformTransactionManager transactionManager = (PlatformTransactionManager) spring.getBean(&quot;jmsTransactionManager&quot;);
   ConnectionFactory connectionFactory = (ConnectionFactory) spring.getBean(&quot;jmsConnectionFactory&quot;);
   JmsComponent component = JmsComponent.jmsComponentTransacted(connectionFactory, transactionManager);
   component.getConfiguration().setConcurrentConsumers(1);
   ctx.addComponent(&quot;activemq&quot;, component);
 ]]></script>
-</div></div>
-
-
-<h4 id="BookPatternAppendix-TransactionPolicies">Transaction Policies</h4>
-
-<p>Outbound endpoints will automatically enlist in the current transaction context.  But what if you do not want your outbound endpoint to enlist in the same transaction as your inbound endpoint?  The solution is to add a Transaction Policy to the processing route.  You first have to define transaction policies that you will be using.  The policies use a spring <a shape="rect" class="external-link" href="http://www.springframework.org/docs/api/org/springframework/transaction/support/TransactionTemplate.html" rel="nofollow">TransactionTemplate</a> under the covers for declaring the transaction demarcation to use.  So you will need to add something like the following to your spring xml:</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;PROPAGATION_REQUIRED&quot; class=&quot;org.apache.camel.spring.spi.SpringTransactionPolicy&quot;&gt;
+</div></div><h4 id="BookPatternAppendix-TransactionPolicies">Transaction Policies</h4><p>Outbound endpoints will automatically enlist in the current transaction context. But what if you do not want your outbound endpoint to enlist in the same transaction as your inbound endpoint? The solution is to add a Transaction Policy to the processing route. You first have to define transaction policies that you will be using. The policies use a spring <a shape="rect" class="external-link" href="http://www.springframework.org/docs/api/org/springframework/transaction/support/TransactionTemplate.html" rel="nofollow">TransactionTemplate</a> under the covers for declaring the transaction demarcation to use. So you will need to add something like the following to your spring xml:</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;PROPAGATION_REQUIRED&quot; class=&quot;org.apache.camel.spring.spi.SpringTransactionPolicy&quot;&gt;
     &lt;property name=&quot;transactionManager&quot; ref=&quot;jmsTransactionManager&quot;/&gt;
   &lt;/bean&gt;
 
@@ -5676,68 +5581,36 @@ from(&quot;direct:start&quot;)
     &lt;property name=&quot;propagationBehaviorName&quot; value=&quot;PROPAGATION_REQUIRES_NEW&quot;/&gt;
   &lt;/bean&gt;
 ]]></script>
-</div></div>
-
-<p>Then in your <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-spring/apidocs/org/apache/camel/spring/SpringRouteBuilder.html">SpringRouteBuilder</a>, you just need to create new SpringTransactionPolicy objects for each of the templates.</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 void configure() {
+</div></div><p>Then in your <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-spring/apidocs/org/apache/camel/spring/SpringRouteBuilder.html">SpringRouteBuilder</a>, you just need to create new SpringTransactionPolicy objects for each of the templates.</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 void configure() {
    ...
    Policy requried = bean(SpringTransactionPolicy.class, &quot;PROPAGATION_REQUIRED&quot;));
    Policy requirenew = bean(SpringTransactionPolicy.class, &quot;PROPAGATION_REQUIRES_NEW&quot;));
    ...
 }
 ]]></script>
-</div></div>
-
-<p>Once created, you can use the Policy objects in your processing routes:</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[
-
-   // Send to bar in a new transaction
+</div></div><p>Once created, you can use the Policy objects in your processing routes:</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[   // Send to bar in a new transaction
    from(&quot;activemq:queue:foo&quot;).policy(requirenew).to(&quot;activemq:queue:bar&quot;);
 
    // Send to bar without a transaction.
    from(&quot;activemq:queue:foo&quot;).policy(notsupported ).to(&quot;activemq:queue:bar&quot;);
 
 ]]></script>
-</div></div>
-
-<h4 id="BookPatternAppendix-OSGiBlueprint">OSGi Blueprint</h4>
-
-<p>If you are using <a shape="rect" href="using-osgi-blueprint-with-camel.html">OSGi Blueprint</a> then you most likely have to explicit declare a policy and refer to the policy from the transacted in 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;required&quot; class=&quot;org.apache.camel.spring.spi.SpringTransactionPolicy&quot;&gt;
+</div></div><h4 id="BookPatternAppendix-OSGiBlueprint">OSGi Blueprint</h4><p>If you are using <a shape="rect" href="using-osgi-blueprint-with-camel.html">OSGi Blueprint</a> then you most likely have to explicit declare a policy and refer to the policy from the transacted in 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;required&quot; class=&quot;org.apache.camel.spring.spi.SpringTransactionPolicy&quot;&gt;
     &lt;property name=&quot;transactionManager&quot; ref=&quot;jmsTransactionManager&quot;/&gt;
     &lt;property name=&quot;propagationBehaviorName&quot; value=&quot;PROPAGATION_REQUIRED&quot;/&gt;
   &lt;/bean&gt;
 ]]></script>
-</div></div>
-
-<p>And then refer to "required" from 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;route&gt;
+</div></div><p>And then refer to "required" from 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;route&gt;
   &lt;from uri=&quot;activemq:queue:foo&quot;/&gt;
   &lt;transacted ref=&quot;required&quot;/&gt;
   &lt;to uri=&quot;activemq:queue:bar&quot;/&gt;
 &lt;/route&gt;
 ]]></script>
-</div></div>
-
-<h3 id="BookPatternAppendix-DatabaseSample">Database Sample</h3>
-<p>In this sample we want to ensure that two endpoints is under transaction control. These two endpoints inserts data into a database.<br clear="none">
-The sample is in its full as a <a shape="rect" class="external-link" href="http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientDataSourceMinimalConfigurationTest.java?view=log">unit test</a>.</p>
-
-<p>First of all we setup the usual spring stuff in its configuration file. Here we have defined a DataSource to the HSQLDB and a most importantly<br clear="none">
-the Spring DataSoruce TransactionManager that is doing the heavy lifting of ensuring our transactional policies. You are of course free to use any<br clear="none">
-of the Spring based TransactionMananger, eg. if you are in a full blown J2EE container you could use JTA or the WebLogic or WebSphere specific managers.</p>
-
-<p>As we use the new convention over configuration we do <strong>not</strong> need to configure a transaction policy bean, so we do not have any <code>PROPAGATION_REQUIRED</code> beans.<br clear="none">
-All the beans needed to be configured is <strong>standard</strong> Spring beans only, eg. there are no Camel specific configuration at all.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookPatternAppendix-DatabaseSample">Database Sample</h3><p>In this sample we want to ensure that two endpoints is under transaction control. These two endpoints inserts data into a database.<br clear="none"> The sample is in its full as a <a shape="rect" class="external-link" href="http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/interceptor/TransactionalClientDataSourceMinimalConfigurationTest.java?view=log">unit test</a>.</p><p>First of all we setup the usual spring stuff in its configuration file. Here we have defined a DataSource to the HSQLDB and a most importantly&#160;the Spring DataSource TransactionManager that is doing the heavy lifting of ensuring our transactional policies. You are of course free to use any&#160;of the Spring based TransactionMananger, eg. if you are in a full blown J2EE container you could use JTA or the WebLogic or WebSphere specific managers.</p><p>As we use the new convention o
 ver configuration we do <strong>not</strong> need to configure a transaction policy bean, so we do not have any <code>PROPAGATION_REQUIRED</code> beans.&#160;All the beans needed to be configured is <strong>standard</strong> Spring beans only, eg. there are no Camel specific configuration at all.</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;!-- this example uses JDBC so we define a data source --&gt;
 &lt;jdbc:embedded-database id=&quot;dataSource&quot; type=&quot;DERBY&quot;&gt;
@@ -5755,11 +5628,7 @@ All the beans needed to be configured is
     &lt;property name=&quot;dataSource&quot; ref=&quot;dataSource&quot;/&gt;
 &lt;/bean&gt;
 ]]></script>
-</div></div>
-
-<p>Then we are ready to define our Camel routes. We have two routes: 1 for success conditions, and 1 for a forced rollback condition.<br clear="none">
-This is after all based on a unit test. Notice that we mark each route as transacted using the <strong>transacted</strong> tag.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Then we are ready to define our Camel routes. We have two routes: 1 for success conditions, and 1 for a forced rollback condition.<br clear="none"> This is after all based on a unit test. Notice that we mark each route as transacted using the <strong>transacted</strong> tag.</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;route&gt;
@@ -5795,15 +5664,7 @@ This is after all based on a unit test. 
     &lt;/route&gt;
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-
-<p>That is all that is needed to configure a Camel route as being transacted. Just remember to use the <strong>transacted</strong> DSL. The rest is standard Spring XML to setup the transaction manager.</p>
-
-<h3 id="BookPatternAppendix-JMSSample">JMS Sample</h3>
-<p>In this sample we want to listen for messages on a queue and process the messages with our business logic java code and send them along. Since its based on a <a shape="rect" class="external-link" href="http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.java?view=log">unit test</a> the destination is a mock endpoint.</p>
-
-<p>First we configure the standard Spring XML to declare a JMS connection factory, a JMS transaction manager and our ActiveMQ component that we use in our routing.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>That is all that is needed to configure a Camel route as being transacted. Just remember to use the <strong>transacted</strong> DSL. The rest is standard Spring XML to setup the transaction manager.</p><h3 id="BookPatternAppendix-JMSSample">JMS Sample</h3><p>In this sample we want to listen for messages on a queue and process the messages with our business logic java code and send them along. Since its based on a <a shape="rect" class="external-link" href="http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/tx/TransactionMinimalConfigurationTest.java?view=log">unit test</a> the destination is a mock endpoint.</p><p>First we configure the standard Spring XML to declare a JMS connection factory, a JMS transaction manager and our ActiveMQ component that we use in our routing.</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;!-- setup JMS connection factory --&gt;
 &lt;bean id=&quot;poolConnectionFactory&quot; class=&quot;org.apache.activemq.pool.PooledConnectionFactory&quot;&gt;
@@ -5831,10 +5692,7 @@ This is after all based on a unit test. 
     &lt;property name=&quot;transactionManager&quot; ref=&quot;jmsTransactionManager&quot;/&gt;
 &lt;/bean&gt;
 ]]></script>
-</div></div>
-
-<p>And then we configure our routes. Notice that all we have to do is mark the route as transacted using the <strong>transacted</strong> tag.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>And then we configure our routes. Notice that all we have to do is mark the route as transacted using the <strong>transacted</strong> tag.</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;!-- disable JMX during testing --&gt;
@@ -5853,26 +5711,14 @@ This is after all based on a unit test. 
 
 &lt;bean id=&quot;myProcessor&quot; class=&quot;org.apache.camel.component.jms.tx.JMSTransactionalClientTest$MyProcessor&quot;/&gt;
 ]]></script>
-</div></div>
-
-    <div class="aui-message success shadowed information-macro">
+</div></div>    <div class="aui-message success shadowed information-macro">
                     <p class="title">Transaction error handler</p>
                             <span class="aui-icon icon-success">Icon</span>
                 <div class="message-content">
-                            
-<p>When a route is marked as transacted using <strong>transacted</strong> Camel will automatic use the <a shape="rect" href="transactionerrorhandler.html">TransactionErrorHandler</a> as <a shape="rect" href="error-handler.html">Error Handler</a>. It supports basically the same feature set as the <a shape="rect" href="defaulterrorhandler.html">DefaultErrorHandler</a>, so you can for instance use <a shape="rect" href="exception-clause.html">Exception Clause</a> as well.</p>
+                            <p>When a route is marked as transacted using <strong>transacted</strong> Camel will automatic use the <a shape="rect" href="transactionerrorhandler.html">TransactionErrorHandler</a> as <a shape="rect" href="error-handler.html">Error Handler</a>. It supports basically the same feature set as the <a shape="rect" href="defaulterrorhandler.html">DefaultErrorHandler</a>, so you can for instance use <a shape="rect" href="exception-clause.html">Exception Clause</a> as well.</p>
                     </div>
     </div>
-
-
-<h2 id="BookPatternAppendix-Usingmultiplerouteswithdifferentpropagationbehaviors">Using multiple routes with different propagation behaviors</h2>
-<p><strong>Available as of Camel 2.2</strong><br clear="none">
-Suppose you want to route a message through two routes and by which the 2nd route should run in its own transaction. How do you do that? You use propagation behaviors for that where you configure it as follows:</p>
-<ul class="alternate"><li>The first route use <code>PROPAGATION_REQUIRED</code></li><li>The second route use <code>PROPAGATION_REQUIRES_NEW</code></li></ul>
-
-
-<p>This is configured in the Spring XML file:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<h2 id="BookPatternAppendix-Usingmultiplerouteswithdifferentpropagationbehaviors">Using multiple routes with different propagation behaviors</h2><p><strong>Available as of Camel 2.2</strong><br clear="none"> Suppose you want to route a message through two routes and by which the 2nd route should run in its own transaction. How do you do that? You use propagation behaviors for that where you configure it as follows:</p><ul class="alternate"><li>The first route use <code>PROPAGATION_REQUIRED</code></li><li>The second route use <code>PROPAGATION_REQUIRES_NEW</code></li></ul><p>This is configured in the Spring XML file:</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;PROPAGATION_REQUIRED&quot; class=&quot;org.apache.camel.spring.spi.SpringTransactionPolicy&quot;&gt;
     &lt;property name=&quot;transactionManager&quot; ref=&quot;txManager&quot;/&gt;
@@ -5884,10 +5730,7 @@ Suppose you want to route a message thro
     &lt;property name=&quot;propagationBehaviorName&quot; value=&quot;PROPAGATION_REQUIRES_NEW&quot;/&gt;
 &lt;/bean&gt;
 ]]></script>
-</div></div>
-
-<p>Then in the routes you use transacted DSL to indicate which of these two propagations it uses.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Then in the routes you use transacted DSL to indicate which of these two propagations it uses.</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;direct:mixed&quot;)
     // using required
@@ -5909,16 +5752,7 @@ from(&quot;direct:mixed2&quot;)
     // this step will fail with donkey
     .setBody(constant(&quot;Donkey in Action&quot;)).beanRef(&quot;bookService&quot;);
 ]]></script>
-</div></div>
-
-<p>Notice how we have configured the <code>onException</code> in the 2nd route to indicate in case of any exceptions we should handle it and just rollback this transaction. <br clear="none">
-This is done using the <code>markRollbackOnlyLast</code> which tells Camel to only do it for the current transaction and not globally.</p>
-
-<h4 id="BookPatternAppendix-SeeAlso.7">See Also</h4>
-<ul><li><a shape="rect" href="error-handling-in-camel.html">Error handling in Camel</a></li><li><a shape="rect" href="transactionerrorhandler.html">TransactionErrorHandler</a></li><li><a shape="rect" href="error-handler.html">Error Handler</a></li><li><a shape="rect" href="jms.html">JMS</a></li></ul>
-
-
-<h4 id="BookPatternAppendix-UsingThisPattern.43">Using This Pattern</h4>
+</div></div><p>Notice how we have configured the <code>onException</code> in the 2nd route to indicate in case of any exceptions we should handle it and just rollback this transaction. This is done using the <code>markRollbackOnlyLast</code> which tells Camel to only do it for the current transaction and not globally.</p><h4 id="BookPatternAppendix-SeeAlso.7">See Also</h4><ul><li><a shape="rect" href="error-handling-in-camel.html">Error handling in Camel</a></li><li><a shape="rect" href="transactionerrorhandler.html">TransactionErrorHandler</a></li><li><a shape="rect" href="error-handler.html">Error Handler</a></li><li><a shape="rect" href="jms.html">JMS</a></li></ul><p></p><h4 id="BookPatternAppendix-UsingThisPattern.43">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>
 <h3 id="BookPatternAppendix-MessagingGateway">Messaging Gateway</h3>

Modified: websites/production/camel/content/book-tutorials.html
==============================================================================
--- websites/production/camel/content/book-tutorials.html (original)
+++ websites/production/camel/content/book-tutorials.html Fri Mar 14 10:20:20 2014
@@ -157,11 +157,11 @@ While not actual tutorials you might fin
                     </div>
     </div>
 <h2 id="BookTutorials-Preface">Preface</h2><p>This tutorial aims to guide the reader through the stages of creating a project which uses Camel to facilitate the routing of messages from a JMS queue to a <a shape="rect" class="external-link" href="http://www.springramework.org" rel="nofollow">Spring</a> service. The route works in a synchronous fashion returning a response to the client.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1393618795239 {padding: 0px;}
-div.rbtoc1393618795239 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1393618795239 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1394792338762 {padding: 0px;}
+div.rbtoc1394792338762 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1394792338762 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1393618795239">
+/*]]>*/</style></p><div class="toc-macro rbtoc1394792338762">
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-JmsRemoting-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-Preface">Preface</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-Distribution">Distribution</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-About">About</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-CreatetheCamelProject">Create the Camel Project</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-JmsRemoting-UpdatethePOMwithDependencies">Update the POM with Dependencies</a></li></ul>
 </li><li><a shape="rect" href="#Tutorial-JmsRemoting-WritingtheServer">Writing the Server</a>
@@ -2347,11 +2347,11 @@ So we completed the last piece in the pi
 
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1393618795722 {padding: 0px;}
-div.rbtoc1393618795722 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1393618795722 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1394792339010 {padding: 0px;}
+div.rbtoc1394792339010 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1394792339010 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1393618795722">
+/*]]>*/</style><div class="toc-macro rbtoc1394792339010">
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-AXIS-Camel-TutorialusingAxis1.4withApacheCamel">Tutorial using Axis 1.4 with Apache Camel</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-AXIS-Camel-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-Distribution">Distribution</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-Introduction">Introduction</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-SettinguptheprojecttorunAxis">Setting up the project to run Axis</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-AXIS-Camel-Maven2">Maven 2</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-wsdl">wsdl</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-ConfiguringAxis">Configuring Axis</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-RunningtheExample">Running the Example</a></li></ul>

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

Modified: websites/production/camel/content/camel-jmx.html
==============================================================================
--- websites/production/camel/content/camel-jmx.html (original)
+++ websites/production/camel/content/camel-jmx.html Fri Mar 14 10:20:20 2014
@@ -87,11 +87,11 @@
         <tr>
         <td valign="top" width="100%">
 <div class="wiki-content maincontent"><h2 id="CamelJMX-CamelJMX">Camel JMX</h2><p>Apache Camel has extensive support for JMX to allow you to monitor and control the Camel managed objects with a JMX client.<br clear="none"> Camel also provides a <a shape="rect" href="jmx.html">JMX</a> component that allows you to subscribe to MBean notifications. This page is about how to manage and monitor Camel using JMX.</p><h3 id="CamelJMX-ActivatingJMXinCamel">Activating JMX in Camel</h3><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1393618767237 {padding: 0px;}
-div.rbtoc1393618767237 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1393618767237 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1394792336580 {padding: 0px;}
+div.rbtoc1394792336580 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1394792336580 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1393618767237">
+/*]]>*/</style></p><div class="toc-macro rbtoc1394792336580">
 <ul class="toc-indentation"><li><a shape="rect" href="#CamelJMX-CamelJMX">Camel JMX</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CamelJMX-ActivatingJMXinCamel">Activating JMX in Camel</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CamelJMX-UsingJMXtomanageApacheCamel">Using JMX to manage Apache Camel</a></li><li><a shape="rect" href="#CamelJMX-DisablingJMXinstrumentationagentinCamel">Disabling JMX instrumentation agent in Camel</a></li><li><a shape="rect" href="#CamelJMX-LocatingaMBeanServerintheJavaVM">Locating a MBeanServer in the Java VM</a></li><li><a shape="rect" href="#CamelJMX-CreatingJMXRMIConnectorServer">Creating JMX RMI Connector Server</a></li><li><a shape="rect" href="#CamelJMX-JMXServiceURL">JMX Service URL</a></li><li><a shape="rect" href="#CamelJMX-TheSystemPropertiesforCamelJMXsupport">The System Properties for Camel JMX support</a></li><li><a shape="rect" href="#CamelJMX-HowtouseauthenticationwithJMX">How to use authentication with JMX</a></li><li><a shape="rect" href="#CamelJMX-JMXinsideanApplicationServer">JMX inside an Application Server</a>