Modified: websites/production/camel/content/camel-2150-release.html
==============================================================================
--- websites/production/camel/content/camel-2150-release.html (original)
+++ websites/production/camel/content/camel-2150-release.html Tue Nov 11
12:19:27 2014
@@ -84,7 +84,7 @@
<tbody>
<tr>
<td valign="top" width="100%">
-<div class="wiki-content maincontent"><h1
id="Camel2.15.0Release-Camel2.15.0release(currentlyinprogress)">Camel 2.15.0
release (currently in progress)</h1><div
style="padding-right:20px;float:left;margin-left:-20px;"><p><img
class="confluence-embedded-image confluence-external-resource"
src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png"
data-image-src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png"></p></div><div
style="min-height:200px"> </div><h2
id="Camel2.15.0Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to
the 2.15.0 release which approx XXX issues resolved (new features, improvements
and bug fixes such as...)</p><ul><li><span>Component documentation now included
in the built component JARs. And Java API and JMX API to access that
documentation. And APIs to explain an endpoint uri and what all those
configured options mean. </span></li><li><span>Provide Configurer for user
to configure the CXF conduit and CXF d
estination from Java code</span></li><li><span><span>Added a
<code>DelegateEndpoint</code> interface into Camel
API</span></span></li><li>Support to setup the SslContextParameters in the <a
shape="rect" href="restlet.html">camel-restlet</a> component</li><li>Java DSL -
Should support nested choice in doTry .. doCatch</li><li><a shape="rect"
href="mongodb.html">MongoDb</a> component now <a shape="rect"
class="external-link"
href="https://issues.apache.org/jira/browse/CAMEL-7996">stores OIDs</a> of
the inserted records in the message
header</li><li>Added <code>org.apache.camel.spi.CamelContextRegistry</code><span> as
a replacement for <code>org.apache.camel.spi.Container</code> and acting
as global registry for all CamelContexts' in the JVM. Though its still intended
for SPI's to hook into the lifecycle of creation
of <code>CamelContext</code>'s and being able to influence behavior - such
as adding insight or other capabilities.</span><br clear="none"><br
clear="none"></li></ul><p>Fixed issues</p><ul><li>Fixed processors was not
enlisted in JMX when routes was transacted.</li><li>Fixed the
NullPointerException when using CXF endpoint with enrich</li><li>Fixed
the endpointProperty of restConfiguration doesn't work
issue</li><li>Fixed the issue that CircuitBreakerLoadBalancer fails on
async processors</li><li>Fixed MyBatis consumer <a shape="rect"
class="external-link"
href="https://issues.apache.org/jira/browse/CAMEL-8011">ignoring
maxMessagesPerPoll</a> option</li><li>Fixed potential issue
with pollEnrich not triggering error handler if an exception was thrown in
the polling.<br clear="none"><br clear="none"></li></ul><h3
id="Camel2.15.0Release-New">New <a shape="rect"
href="enterprise-integration-patterns.html">Enterprise Integration
Patterns</a></h3><h3 id="Camel2.15.0Release-New.1">New <a shape="rect"
href="components.html">Components</a></h3><ul><li><a shape="rect"
href="beanstalk.html">camel-beanstalk</
a> - for working with Amazon Beanstalk jobs.</li><li><a shape="rect"
href="docker.html">camel-docker</a> - to communicate with
Docker.</li><li>camel-github - for integrating with github</li><li>camel-jira -
for integrating with JIRA issue tracker</li><li>camel-scr - for using Camel
with <a shape="rect" class="external-link"
href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html">SCR</a> (OSGi
declarative services) on OSGi containers such as Apache Karaf</li><li><a
shape="rect" href="spring-boot.html">camel-spring-boot</a> - for using Camel
with Spring Boot</li><li>camel-test-spring40 - for testing with Spring 4.0.x.
camel-test-spring is for Spring 4.1.x onwards.</li></ul><h3
id="Camel2.15.0Release-NewDSL">New DSL</h3><h3
id="Camel2.15.0Release-NewAnnotations">New Annotations</h3><h3
id="Camel2.15.0Release-NewDataFormats">New <a shape="rect"
href="data-format.html">Data Formats</a></h3><h3
id="Camel2.15.0Release-New.2">New <a s
hape="rect" href="languages.html">Languages</a></h3><h3
id="Camel2.15.0Release-New.3">New <a shape="rect"
href="examples.html">Examples</a></h3><h3 id="Camel2.15.0Release-New.4">New <a
shape="rect" href="tutorials.html">Tutorials</a></h3><h2
id="Camel2.15.0Release-APIbreaking">API breaking</h2><h2
id="Camel2.15.0Release-KnownIssues">Known Issues</h2><h2
id="Camel2.15.0Release-DependencyUpgrades"><span>Dependency
Upgrades</span></h2><ul><li>AWS-Java-SDK 1.8.3 to 1.8.9.1</li><li>Codahale
Metrics 3.0 to 3.1</li><li>Guava 17.0 to 18.0</li><li>Jsch 0.1.50 to
0.1.51</li><li>Spring 4.0.7.RELEASE to 4.1.1.RELEASE</li><li>Spring Security
3.1.7.RELEASE to 3.2.5.RELEASE</li></ul><h2
id="Camel2.15.0Release-Importantchangestoconsiderwhenupgrading">Important
changes to consider when upgrading</h2><ul><li>Spring 4.1.x is now the default
out of the box Spring version.</li><li><span style="color: rgb(0,0,0);">Unit
testing with Spring 4.0.x requires using camel-test-spring40, as
camel-test-spring is
for Spring 4.1 or better.</span></li><li><span style="color:
rgb(0,0,0);">Remember to add <code class="java
color1">@BootstrapWith</code><code class="java
plain">(CamelTestContextBootstrapper.</code><code class="java
keyword">class</code><code class="java plain">)</code> if upgrading from
Spring 3.x or 4.0.x to Spring 4.1 onwards, and using the camel-test-spring
module.</span></li></ul><h2
id="Camel2.15.0Release-GettingtheDistributions">Getting the
Distributions</h2><h3 id="Camel2.15.0Release-BinaryDistributions">Binary
Distributions</h3><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Download Link</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>PGP Signature file of download</p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>Windows
Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><
p><a shape="rect" class="external-link"
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.15.0/apache-camel-x.y.x.zip">apache-camel-2.15.0.zip</a></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
class="external-link"
href="http://www.apache.org/dist/camel/apache-camel/2.15.0/apache-camel-x.y.x.zip.asc">apache-camel-2.15.0.zip.asc</a></p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>Unix/Linux/Cygwin
Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a
shape="rect" class="external-link"
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.15.0/apache-camel-x.y.x.tar.gz">apache-camel-2.15.0.tar.gz</a></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
class="external-link"
href="http://www.apache.org/dist/camel/apache-camel/2.15.0/apache-camel-x.y.x.tar.gz.asc">apache-camel-2.15.0.tar.gz.asc</a></p></td></tr></tbody></table></div>
<div class="aui-message hint sha
dowed information-macro">
+<div class="wiki-content maincontent"><h1
id="Camel2.15.0Release-Camel2.15.0release(currentlyinprogress)">Camel 2.15.0
release (currently in progress)</h1><div
style="padding-right:20px;float:left;margin-left:-20px;"><p><img
class="confluence-embedded-image confluence-external-resource"
src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png"
data-image-src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png"></p></div><div
style="min-height:200px"> </div><h2
id="Camel2.15.0Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to
the 2.15.0 release which approx XXX issues resolved (new features, improvements
and bug fixes such as...)</p><ul><li><span>Component documentation now included
in the built component JARs. And Java API and JMX API to access that
documentation. And APIs to explain an endpoint uri and what all those
configured options mean. </span></li><li><span>Provide Configurer for user
to configure the CXF conduit and CXF d
estination from Java code</span></li><li><span><span>Added a
<code>DelegateEndpoint</code> interface into Camel
API</span></span></li><li>Support to setup the SslContextParameters in the <a
shape="rect" href="restlet.html">camel-restlet</a> component</li><li>Java DSL -
Should support nested choice in doTry .. doCatch</li><li><a shape="rect"
href="mongodb.html">MongoDb</a> component now <a shape="rect"
class="external-link"
href="https://issues.apache.org/jira/browse/CAMEL-7996">stores OIDs</a> of
the inserted records in the message
header</li><li>Added <code>org.apache.camel.spi.CamelContextRegistry</code><span> as
a replacement for <code>org.apache.camel.spi.Container</code> and acting
as global registry for all CamelContexts' in the JVM. Though its still intended
for SPI's to hook into the lifecycle of creation
of <code>CamelContext</code>'s and being able to influence behavior - such
as adding insight or other capabilities.</span></li><li><a shape="r
ect" href="recipient-list.html">Recipient List</a> now supports specifying
custom <a shape="rect" href="exchange-pattern.html">Exchange Pattern</a>
in the endpoint ur's<br clear="none"><br clear="none"></li></ul><p>Fixed
issues</p><ul><li>Fixed processors was not enlisted in JMX when routes was
transacted.</li><li>Fixed the NullPointerException when using CXF endpoint with
enrich</li><li>Fixed the endpointProperty of restConfiguration
doesn't work issue</li><li>Fixed the issue that CircuitBreakerLoadBalancer
fails on async processors</li><li>Fixed MyBatis consumer <a shape="rect"
class="external-link"
href="https://issues.apache.org/jira/browse/CAMEL-8011">ignoring
maxMessagesPerPoll</a> option</li><li>Fixed potential issue
with pollEnrich not triggering error handler if an exception was thrown in
the polling.<br clear="none"><br clear="none"></li></ul><h3
id="Camel2.15.0Release-New">New <a shape="rect"
href="enterprise-integration-patterns.html">Enterp
rise Integration Patterns</a></h3><h3 id="Camel2.15.0Release-New.1">New <a
shape="rect" href="components.html">Components</a></h3><ul><li><a shape="rect"
href="beanstalk.html">camel-beanstalk</a> - for working with Amazon Beanstalk
jobs.</li><li><a shape="rect" href="docker.html">camel-docker</a> - to
communicate with Docker.</li><li>camel-github - for integrating with
github</li><li>camel-jira - for integrating with JIRA issue
tracker</li><li>camel-scr - for using Camel with <a shape="rect"
class="external-link"
href="http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html">SCR</a> (OSGi
declarative services) on OSGi containers such as Apache Karaf</li><li><a
shape="rect" href="spring-boot.html">camel-spring-boot</a> - for using Camel
with Spring Boot</li><li>camel-test-spring40 - for testing with Spring 4.0.x.
camel-test-spring is for Spring 4.1.x onwards.</li></ul><h3
id="Camel2.15.0Release-NewDSL">New DSL</h3><h3 id="Camel2.15.0R
elease-NewAnnotations">New Annotations</h3><h3
id="Camel2.15.0Release-NewDataFormats">New <a shape="rect"
href="data-format.html">Data Formats</a></h3><h3
id="Camel2.15.0Release-New.2">New <a shape="rect"
href="languages.html">Languages</a></h3><h3 id="Camel2.15.0Release-New.3">New
<a shape="rect" href="examples.html">Examples</a></h3><h3
id="Camel2.15.0Release-New.4">New <a shape="rect"
href="tutorials.html">Tutorials</a></h3><h2
id="Camel2.15.0Release-APIbreaking">API breaking</h2><h2
id="Camel2.15.0Release-KnownIssues">Known Issues</h2><h2
id="Camel2.15.0Release-DependencyUpgrades"><span>Dependency
Upgrades</span></h2><ul><li>AWS-Java-SDK 1.8.3 to 1.8.9.1</li><li>Codahale
Metrics 3.0 to 3.1</li><li>Guava 17.0 to 18.0</li><li>Jsch 0.1.50 to
0.1.51</li><li>Spring 4.0.7.RELEASE to 4.1.1.RELEASE</li><li>Spring Security
3.1.7.RELEASE to 3.2.5.RELEASE</li></ul><h2
id="Camel2.15.0Release-Importantchangestoconsiderwhenupgrading">Important
changes to consider when upgrading</h2><ul><li>Sp
ring 4.1.x is now the default out of the box Spring version.</li><li><span
style="color: rgb(0,0,0);">Unit testing with Spring 4.0.x requires using
camel-test-spring40, as camel-test-spring is for Spring 4.1 or
better.</span></li><li><span style="color: rgb(0,0,0);">Remember to
add <code class="java color1">@BootstrapWith</code><code class="java
plain">(CamelTestContextBootstrapper.</code><code class="java
keyword">class</code><code class="java plain">)</code> if upgrading from
Spring 3.x or 4.0.x to Spring 4.1 onwards, and using the camel-test-spring
module.</span></li></ul><h2
id="Camel2.15.0Release-GettingtheDistributions">Getting the
Distributions</h2><h3 id="Camel2.15.0Release-BinaryDistributions">Binary
Distributions</h3><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Download Link</p></th><th colspan="1" rowspan="1"
class="con
fluenceTh"><p>PGP Signature file of download</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>Windows Distribution</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
class="external-link"
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.15.0/apache-camel-x.y.x.zip">apache-camel-2.15.0.zip</a></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
class="external-link"
href="http://www.apache.org/dist/camel/apache-camel/2.15.0/apache-camel-x.y.x.zip.asc">apache-camel-2.15.0.zip.asc</a></p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>Unix/Linux/Cygwin
Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a
shape="rect" class="external-link"
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/2.15.0/apache-camel-x.y.x.tar.gz">apache-camel-2.15.0.tar.gz</a></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect"
class="external-link" hre
f="http://www.apache.org/dist/camel/apache-camel/2.15.0/apache-camel-x.y.x.tar.gz.asc">apache-camel-2.15.0.tar.gz.asc</a></p></td></tr></tbody></table></div>
<div class="aui-message hint shadowed information-macro">
<p class="title">The above URLs use redirection</p>
<span class="aui-icon icon-hint">Icon</span>
<div class="message-content">
Modified: websites/production/camel/content/recipient-list.html
==============================================================================
--- websites/production/camel/content/recipient-list.html (original)
+++ websites/production/camel/content/recipient-list.html Tue Nov 11 12:19:27
2014
@@ -86,9 +86,7 @@
<tbody>
<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">
-<div class="table-wrap"><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">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/apidoc
s/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">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">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">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">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><td colspan="1" rowspan="1"
class="confluenceTd"><p> </p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p> <code>parallelAggregate</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.14:</strong> If enabled then the <code>aggregate</code> method on
<code>AggregationStrategy</code> can be called concurrently. Notice that this
would require the implementation of <code>AggregationStrategy</code> to be
implemented as thread-safe. By default this is <code>false</code> meaning that
Camel synchronizes the call to the <code>aggregate</code> method. Though in
some use-cases this can be used to archive higher performance when the
<code>AggregationStrategy</code> is implemented as thre
ad-safe. </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">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. I
f disabled, Camel will process replies in the same order as specified by the
<a shape="rect" href="expression.html">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">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">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">Processor</a> to prepare the copy of the <a
shape="rect" href="exchange.html">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
col
span="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 <code>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>
-</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">
+<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"><div class="table-wrap"><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">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 reci
pients into a single outgoing message from the <a shape="rect"
href="recipient-list.html">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">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">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">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 whi
ch happens in parallel.</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> </p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>parallelAggregate</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.14:</strong> If enabled
then the <code>aggregate</code> method on <code>AggregationStrategy</code> can
be called concurrently. Notice that this would require the implementation of
<code>AggregationStrategy</code> to be implemented as thread-safe. By default
this is <code>false</code> meaning that Camel synchronizes the call to the
<code>aggregate</code> method. Though in some use-cases this can be used to
archive higher performance when the <code>AggregationStrategy</code> is
implemented as thread-safe.</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">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 support
s 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">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">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">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">Processor</a> to prepare the copy of the <a shape="rect"
href="exchange.html">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 <code>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></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="recipientlis
t-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() {
public void configure() {
@@ -295,7 +293,18 @@ from("direct:c").to("mock
<p>The timeout is total, which means that after X
time, Camel will aggregate the messages which has completed within the
timeframe. The remainders will be cancelled. Camel will also only invoke the
<code>timeout</code> method in the <code>TimeoutAwareAggregationStrategy</code>
once, for the first index which caused the timeout.</p>
</div>
</div>
-<h3
id="RecipientList-UsingonPreparetoexecutecustomlogicwhenpreparingmessages">Using
onPrepare to execute custom logic when preparing
messages</h3><p><strong>Available as of Camel 2.8</strong></p><p>See details at
<a shape="rect" href="multicast.html">Multicast</a></p><p></p><h4
id="RecipientList-UsingThisPattern">Using This Pattern</h4>
+<h3
id="RecipientList-UsingonPreparetoexecutecustomlogicwhenpreparingmessages">Using
onPrepare to execute custom logic when preparing
messages</h3><p><strong>Available as of Camel 2.8</strong></p><p>See details at
<a shape="rect" href="multicast.html">Multicast</a></p><h3
id="RecipientList-UsingExchangePatterninrecipients">Using ExchangePattern in
recipients</h3><p><strong>Available as of Camel 2.15</strong></p><p>The
recipient list will by default use the current <a shape="rect"
href="exchange-pattern.html">Exchange Pattern</a>. Though there can be
use-cases where you want to send a message to a recipient using a different
exchange pattern. For example you may have a route that initiates as a InOnly
route, but want to use InOut exchange pattern with a recipient list. To do this
in earlier Camel releases, you would need to change the exchange pattern
before the recipient list, or use onPrepare option to alter the pattern. Now
from Camel 2.15 onwards, you can configure the
exchange pattern directly in the recipient endpoints.</p><p>For example in the
route below we pickup new files (which will started as InOnly) and then route
to a recipient list. As we want to use InOut with the ActiveMQ (JMS) endpoint
we can now specify this using the exchangePattern=InOut option. Then the
response form the JMS request/reply will then be continued routed, and thus the
response is what will be stored in as a file in the outbox directory.</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("file:inbox")
+ // the exchange pattern is InOnly initially when using a file route
+
.recipientList().constant("activemq:queue:inbox?exchangePattern=InOut")
+ .to("file:outbox");]]></script>
+</div></div> <div class="aui-message warning shadowed information-macro">
+ <span class="aui-icon icon-warning">Icon</span>
+ <div class="message-content">
+ <p>The recipient list will not alter the original
exchange pattern. So in the example above the exchange pattern will still be
InOnly when the message is routed to the file:outbox endpoint.</p><p>If you
want to alter the exchange pattern permanently then use the .setExchangePattern
option. See more details at <a shape="rect" href="request-reply.html">Request
Reply</a> and <a shape="rect" href="event-message.html">Event Message</a>.</p>
+ </div>
+ </div>
+<p> </p><p> </p><p></p><h4 id="RecipientList-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>
</td>