Author: buildbot Date: Thu Apr 24 17:18:00 2014 New Revision: 906746 Log: Production update by buildbot for camel
Modified: websites/production/camel/content/cache/main.pageCache websites/production/camel/content/recipient-list.html websites/production/camel/content/routing-slip.html Modified: websites/production/camel/content/cache/main.pageCache ============================================================================== Binary files - no diff available. Modified: websites/production/camel/content/recipient-list.html ============================================================================== --- websites/production/camel/content/recipient-list.html (original) +++ websites/production/camel/content/recipient-list.html Thu Apr 24 17:18:00 2014 @@ -87,7 +87,7 @@ <tr> <td valign="top" width="100%"> <div class="wiki-content maincontent"><h3 id="RecipientList-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="RecipientList-Options">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. <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> </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> </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> </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> </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> </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> +<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> </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> </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> </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> </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> </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><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>cacheSize</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.13.1/2.12.4:</strong> Allows to configure the cache size for the <c ode>ProducerCache</code> which caches producers for reuse in the routing slip. Will by default use the default cache size which is 1000. Setting the value to -1 allows to turn off the cache all together. </p></td></tr></tbody></table> </div><h4 id="RecipientList-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() { Modified: websites/production/camel/content/routing-slip.html ============================================================================== --- websites/production/camel/content/routing-slip.html (original) +++ websites/production/camel/content/routing-slip.html Thu Apr 24 17:18:00 2014 @@ -86,50 +86,17 @@ <tbody> <tr> <td valign="top" width="100%"> -<div class="wiki-content maincontent"><h3 id="RoutingSlip-RoutingSlip">Routing Slip</h3> - -<p>The <a shape="rect" class="external-link" href="http://www.enterpriseintegrationpatterns.com/RoutingTable.html" rel="nofollow">Routing Slip</a> from the <a shape="rect" href="enterprise-integration-patterns.html">EIP patterns</a> allows you to route a message consecutively through a series of processing steps where the sequence of steps is not known at design time and can vary for each message.</p> - -<p><img class="confluence-embedded-image confluence-external-resource" src="http://www.enterpriseintegrationpatterns.com/img/RoutingTableSimple.gif" data-image-src="http://www.enterpriseintegrationpatterns.com/img/RoutingTableSimple.gif"></p> - -<h3 id="RoutingSlip-Options">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>uriDelimiter</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>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> If an endpoint uri could not be resolved, should it be ignored. Otherwise Camel will throw an exception stating the endpoint uri is not v alid. </p></td></tr></tbody></table> -</div> - - -<h4 id="RoutingSlip-Example">Example</h4> - -<p>The following route will take any messages sent to the <a shape="rect" class="external-link" href="http://activemq.apache.org">Apache ActiveMQ</a> queue <strong>SomeQueue</strong> and pass them into the <a shape="rect" class="external-link" href="http://www.enterpriseintegrationpatterns.com/RoutingTable.html" rel="nofollow">Routing Slip</a> pattern.</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("activemq:SomeQueue").routingSlip("aRoutingSlipHeader"); +<div class="wiki-content maincontent"><h3 id="RoutingSlip-RoutingSlip">Routing Slip</h3><p>The <a shape="rect" class="external-link" href="http://www.enterpriseintegrationpatterns.com/RoutingTable.html" rel="nofollow">Routing Slip</a> from the <a shape="rect" href="enterprise-integration-patterns.html">EIP patterns</a> allows you to route a message consecutively through a series of processing steps where the sequence of steps is not known at design time and can vary for each message.</p><p><img class="confluence-embedded-image confluence-external-resource" src="http://www.enterpriseintegrationpatterns.com/img/RoutingTableSimple.gif" data-image-src="http://www.enterpriseintegrationpatterns.com/img/RoutingTableSimple.gif"></p><h3 id="RoutingSlip-Options">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>uriDelimiter</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>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> If an endpoint uri could not be resolved, should it be ignored. Otherwise Camel will throw an exception stating the endpoint uri is not v alid. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>cacheSize</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 1000 </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.13.1/2.12.4:</strong> Allows to configure the cache size for the ProducerCache which caches producers for reuse in the routing slip. Will by default use the default cache size which is 1000. Setting the value to -1 allows to turn off the cache all together. </p></td></tr></tbody></table> +</div><h4 id="RoutingSlip-Example">Example</h4><p>The following route will take any messages sent to the <a shape="rect" class="external-link" href="http://activemq.apache.org">Apache ActiveMQ</a> queue <strong>SomeQueue</strong> and pass them into the <a shape="rect" class="external-link" href="http://www.enterpriseintegrationpatterns.com/RoutingTable.html" rel="nofollow">Routing Slip</a> pattern.</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("activemq:SomeQueue").routingSlip("aRoutingSlipHeader"); ]]></script> -</div></div> - -<p>Messages will be checked for the existance of the "aRoutingSlipHeader" header. The value of this header should be a comma-delimited list of endpoint <a shape="rect" href="uris.html">URIs</a> you wish the message to be routed to. The <a shape="rect" href="message.html">Message</a> will be routed in a <a shape="rect" href="pipes-and-filters.html">pipeline</a> fashion (i.e. one after the other).</p> - -<p>From Camel 2.5 the <a shape="rect" href="routing-slip.html">Routing Slip</a> will set a property (<code>Exchange.SLIP_ENDPOINT</code>) on the <a shape="rect" href="exchange.html">Exchange</a> which contains the current endpoint as it advanced though the slip. This allows you to <em>know</em> how far we have processed in the slip.</p> - -<p>The <a shape="rect" href="routing-slip.html">Routing Slip</a> will compute the slip <strong>beforehand</strong> which means, the slip is only computed once. If you need to compute the slip <em>on-the-fly</em> then use the <a shape="rect" href="dynamic-router.html">Dynamic Router</a> pattern instead.</p> - -<h4 id="RoutingSlip-Configurationoptions">Configuration options</h4> - -<p>Here we set the header name and the URI delimiter to something different.</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"> +</div></div><p>Messages will be checked for the existance of the "aRoutingSlipHeader" header. The value of this header should be a comma-delimited list of endpoint <a shape="rect" href="uris.html">URIs</a> you wish the message to be routed to. The <a shape="rect" href="message.html">Message</a> will be routed in a <a shape="rect" href="pipes-and-filters.html">pipeline</a> fashion (i.e. one after the other).</p><p>From Camel 2.5 the <a shape="rect" href="routing-slip.html">Routing Slip</a> will set a property (<code>Exchange.SLIP_ENDPOINT</code>) on the <a shape="rect" href="exchange.html">Exchange</a> which contains the current endpoint as it advanced though the slip. This allows you to <em>know</em> how far we have processed in the slip.</p><p>The <a shape="rect" href="routing-slip.html">Routing Slip</a> will compute the slip <strong>beforehand</strong> which means, the slip is only computed once. If you need to compute the slip <em>on-the-fly</em> then use the <a shape="rect" href ="dynamic-router.html">Dynamic Router</a> pattern instead.</p><h4 id="RoutingSlip-Configurationoptions">Configuration options</h4><p>Here we set the header name and the URI delimiter to something different.</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[ from("direct:c").routingSlip(header("aRoutingSlipHeader"), "#"); ]]></script> -</div></div> - -<p><strong>Using the <a shape="rect" href="spring-xml-extensions.html">Spring XML Extensions</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[ -<camelContext id="buildRoutingSlip" xmlns="http://activemq.apache.org/camel/schema/spring"> +</div></div><p><strong>Using the <a shape="rect" href="spring-xml-extensions.html">Spring XML Extensions</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[<camelContext id="buildRoutingSlip" xmlns="http://activemq.apache.org/camel/schema/spring"> <route> <from uri="direct:c"/> <routingSlip uriDelimiter="#"> @@ -138,50 +105,22 @@ from("direct:c").routingSlip(h </route> </camelContext> ]]></script> -</div></div> - -<h3 id="RoutingSlip-Ignoreinvalidendpoints">Ignore invalid endpoints</h3> -<p><strong>Available as of Camel 2.3</strong></p> - -<p>The <a shape="rect" href="routing-slip.html">Routing Slip</a> now supports <code>ignoreInvalidEndpoints</code> which the <a shape="rect" href="recipient-list.html">Recipient List</a> also supports. You can use it to skip endpoints which are invalid.</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("direct:a").routingSlip("myHeader").ignoreInvalidEndpoints(); +</div></div><h3 id="RoutingSlip-Ignoreinvalidendpoints">Ignore invalid endpoints</h3><p><strong>Available as of Camel 2.3</strong></p><p>The <a shape="rect" href="routing-slip.html">Routing Slip</a> now supports <code>ignoreInvalidEndpoints</code> which the <a shape="rect" href="recipient-list.html">Recipient List</a> also supports. You can use it to skip endpoints which are invalid.</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("direct:a").routingSlip("myHeader").ignoreInvalidEndpoints(); ]]></script> -</div></div> - -<p>And in Spring XML its an attribute on the recipient list tag.</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[ - <route> +</div></div><p>And in Spring XML its an attribute on the recipient list tag.</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[ <route> <from uri="direct:a"/> <routingSlip ignoreInvalidEndpoints="true"/> <header>myHeader</header> </routingSlip> </route> ]]></script> -</div></div> - -<p>Then lets say the <code>myHeader</code> contains the following two endpoints <code>direct:foo,xxx:bar</code>. The first endpoint is valid and works. However the 2nd is invalid and will just be ignored. Camel logs at INFO level, so you can see why the endpoint was invalid.</p> - -<h3 id="RoutingSlip-Expressionsupporting">Expression supporting</h3> -<p><strong>Available as of Camel 2.4</strong></p> - -<p>The <a shape="rect" href="routing-slip.html">Routing Slip</a> now supports to take the expression parameter as the <a shape="rect" href="recipient-list.html">Recipient List</a> does. You can tell Camel the expression that you want to use to get the routing slip.</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("direct:a").routingSlip(header("myHeader")).ignoreInvalidEndpoints(); +</div></div><p>Then lets say the <code>myHeader</code> contains the following two endpoints <code>direct:foo,xxx:bar</code>. The first endpoint is valid and works. However the 2nd is invalid and will just be ignored. Camel logs at INFO level, so you can see why the endpoint was invalid.</p><h3 id="RoutingSlip-Expressionsupporting">Expression supporting</h3><p><strong>Available as of Camel 2.4</strong></p><p>The <a shape="rect" href="routing-slip.html">Routing Slip</a> now supports to take the expression parameter as the <a shape="rect" href="recipient-list.html">Recipient List</a> does. You can tell Camel the expression that you want to use to get the routing slip.</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("direct:a").routingSlip(header("myHeader")).ignoreInvalidEndpoints(); ]]></script> -</div></div> - -<p>And in Spring XML its an attribute on the recipient list tag.</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[ - <route> +</div></div><p>And in Spring XML its an attribute on the recipient list tag.</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[ <route> <from uri="direct:a"/> <!--NOTE from Camel 2.4.0, you need to specify the expression element inside of the routingSlip element --> <routingSlip ignoreInvalidEndpoints="true"> @@ -189,16 +128,9 @@ from("direct:c").routingSlip(h </routingSlip> </route> ]]></script> -</div></div> +</div></div><h4 id="RoutingSlip-FurtherExamples">Further Examples</h4><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/routingslip">routing slip test cases</a>.</p><p></p><h4 id="RoutingSlip-UsingThisPattern">Using This Pattern</h4> -<h4 id="RoutingSlip-FurtherExamples">Further Examples</h4> - -<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/routingslip">routing slip test cases</a>.</p> - -<h4 id="RoutingSlip-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> +<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> </td> <td valign="top"> <div class="navigation">