Author: buildbot
Date: Fri Nov 18 10:21:39 2016
New Revision: 1001314
Log:
Production update by buildbot for camel
Modified:
websites/production/camel/content/book-in-one-page.html
websites/production/camel/content/book-pattern-appendix.html
websites/production/camel/content/cache/main.pageCache
websites/production/camel/content/splitter.html
Modified: websites/production/camel/content/book-in-one-page.html
==============================================================================
--- websites/production/camel/content/book-in-one-page.html (original)
+++ websites/production/camel/content/book-in-one-page.html Fri Nov 18 10:21:39
2016
@@ -3966,11 +3966,11 @@ The tutorial has been designed in two pa
While not actual tutorials you might find working through the source of the
various <a shape="rect" href="examples.html">Examples</a> useful.</li></ul>
<h2 id="BookInOnePage-TutorialonSpringRemotingwithJMS">Tutorial on Spring
Remoting with JMS</h2><p> </p><div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Thanks</p><span
class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>This tutorial was kindly donated
to Apache Camel by Martin Gilday.</p></div></div><h2
id="BookInOnePage-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.rbtoc1479251885457 {padding: 0px;}
-div.rbtoc1479251885457 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1479251885457 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1479464366715 {padding: 0px;}
+div.rbtoc1479464366715 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1479464366715 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1479251885457">
+/*]]>*/</style></p><div class="toc-macro rbtoc1479464366715">
<ul class="toc-indentation"><li><a shape="rect"
href="#BookInOnePage-TutorialonSpringRemotingwithJMS">Tutorial on Spring
Remoting with JMS</a></li><li><a shape="rect"
href="#BookInOnePage-Preface">Preface</a></li><li><a shape="rect"
href="#BookInOnePage-Prerequisites">Prerequisites</a></li><li><a shape="rect"
href="#BookInOnePage-Distribution">Distribution</a></li><li><a shape="rect"
href="#BookInOnePage-About">About</a></li><li><a shape="rect"
href="#BookInOnePage-CreatetheCamelProject">Create the Camel Project</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#BookInOnePage-UpdatethePOMwithDependencies">Update the POM with
Dependencies</a></li></ul>
</li><li><a shape="rect" href="#BookInOnePage-WritingtheServer">Writing the
Server</a>
@@ -6085,11 +6085,11 @@ So we completed the last piece in the pi
<p>This example has been removed from <strong>Camel 2.9</strong> onwards.
Apache Axis 1.4 is a very old and unsupported framework. We encourage users to
use <a shape="rect" href="cxf.html">CXF</a> instead of Axis.</p></div></div>
<style type="text/css">/*<![CDATA[*/
-div.rbtoc1479251885637 {padding: 0px;}
-div.rbtoc1479251885637 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1479251885637 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1479464366982 {padding: 0px;}
+div.rbtoc1479464366982 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1479464366982 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1479251885637">
+/*]]>*/</style><div class="toc-macro rbtoc1479464366982">
<ul class="toc-indentation"><li><a shape="rect"
href="#BookInOnePage-TutorialusingAxis1.4withApacheCamel">Tutorial using Axis
1.4 with Apache Camel</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#BookInOnePage-Prerequisites">Prerequisites</a></li><li><a shape="rect"
href="#BookInOnePage-Distribution">Distribution</a></li><li><a shape="rect"
href="#BookInOnePage-Introduction">Introduction</a></li><li><a shape="rect"
href="#BookInOnePage-SettinguptheprojecttorunAxis">Setting up the project to
run Axis</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#BookInOnePage-Maven2">Maven 2</a></li><li><a shape="rect"
href="#BookInOnePage-wsdl">wsdl</a></li><li><a shape="rect"
href="#BookInOnePage-ConfiguringAxis">Configuring Axis</a></li><li><a
shape="rect" href="#BookInOnePage-RunningtheExample">Running the
Example</a></li></ul>
@@ -12318,7 +12318,7 @@ from("direct:start")
</div>
</div><p> </p><p> </p><p></p><h4
id="BookInOnePage-UsingThisPattern.17">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="BookInOnePage-Splitter">Splitter</h3><p>The <a shape="rect"
class="external-link"
href="http://www.enterpriseintegrationpatterns.com/Sequencer.html"
rel="nofollow">Splitter</a> from the <a shape="rect"
href="enterprise-integration-patterns.html">EIP patterns</a> allows you split a
message into a number of pieces and process them individually</p><p><span
class="confluence-embedded-file-wrapper"><img class="c
onfluence-embedded-image confluence-external-resource"
src="http://www.enterpriseintegrationpatterns.com/img/Sequencer.gif"
data-image-src="http://www.enterpriseintegrationpatterns.com/img/Sequencer.gif"></span></p><p>You
need to specify a Splitter as <code>split()</code>. In earlier versions of
Camel, you need to use <code>splitter()</code>.</p><h3
id="BookInOnePage-Options.11">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>strategyRef</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Refers to 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>
to be used to assemble the replies from the sub-messages, into a single
outgoing message from the <a shape="rect" href="splitter.html">Splitter</a>.
See the defaults described below in <em><a shape="rect"
href="#BookInOnePage-WhattheSplitterreturns">What the Splitter
returns</a></em>. From <strong>Camel 2.12</strong> onwards y
ou can also use a POJO as the <code>AggregationStrategy</code>, see the <a
shape="rect" href="aggregator2.html">Aggregate</a> page for more details. If an
exception is thrown from the aggregate method in the AggregationStrategy, then
by default, that exception is not handled by the error handler. The error
handler can be enabled to react if enabling the shareUnitOfWork
option.</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" cl
ass="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 for the very first
splitted message. If this option is <code>true</code> then <code>null</code>
values is used as the <code>oldExchange</code> (for the very first message
splitted), 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>If enabled then processing the sub-messages
occurs concurrently. Note the caller thread will still wait until all
sub-messages has been fully processed, before it continues.</p></td><td
colspan="1" rowspan="1" class="confluence
Td"><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="confluen
ceTd"><p>Refers to a custom <a shape="rect" href="threading-model.html">Thread
Pool</a> to be used for parallel processing. Notice if you set this option,
then parallel processing is automatically implied, and you do not have to
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 or not
to stop continue processing immediately when an exception occurred. If disable,
then Camel continue splitting and process the sub-messages regardless if one of
them failed. You can deal with exceptions in the <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>
class where you have full control how to handle that.</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>If enabled then Camel will split in a
streaming fashion, which means it will split the input message in chunks. This
reduces the memory overhead. For example if you split big messages its
recommended to enable streaming. If streaming is enabled then the sub-message
replies will be aggregated out-of-order, eg in the order they come back. If
disabled, Camel will process sub-message replies in the same order as they
where splitted.</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> Sets a total timeout
specified in millis. If the <a shape="rect" href="recipient-list.html">Recip
ient List</a> hasn't been able to split and process all replies within the
given timeframe, then the timeout triggers and the <a shape="rect"
href="splitter.html">Splitter</a> breaks out and continues. Notice 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>
then the <code>timeout</code> method is invoked before breaking out. 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="confluen
ceTd"><p><strong>Camel 2.8:</strong> Refers to a custom <a shape="rect"
href="processor.html">Processor</a> to prepare the sub-message of the <a
shape="rect" href="exchange.html">Exchange</a>, before its processed. This
allows you to do any custom logic, such as deep-cloning the message payload if
that's needed etc.</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 further below 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>strategyRef</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Refers to 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>
to be used to assemble the replies from the sub-messages, into a single
outgoing message from the <a shape="rect" href="splitter.html">Splitter</a>.
See the defaults described below in <em><a shape="rect"
href="#BookInOnePage-WhattheSplitterreturns">What the Splitter
returns</a></em>. From <strong>Camel 2.12</strong> onwards y
ou can also use a POJO as the <code>AggregationStrategy</code>, see the <a
shape="rect" href="aggregator2.html">Aggregate</a> page for more details. If an
exception is thrown from the aggregate method in the AggregationStrategy, then
by default, that exception is not handled by the error handler. The error
handler can be enabled to react if enabling the shareUnitOfWork
option.</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" cl
ass="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 for the very first
splitted message. If this option is <code>true</code> then <code>null</code>
values is used as the <code>oldExchange</code> (for the very first message
splitted), 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>If enabled then processing the sub-messages
occurs concurrently. Note the caller thread will still wait until all
sub-messages has been fully processed, before it continues.</p></td><td
colspan="1" rowspan="1" class="confluence
Td"><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
achieve 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="confluen
ceTd"><p>Refers to a custom <a shape="rect" href="threading-model.html">Thread
Pool</a> to be used for parallel processing. Notice if you set this option,
then parallel processing is automatically implied, and you do not have to
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 or not
to stop continue processing immediately when an exception occurred. If disable,
then Camel continue splitting and process the sub-messages regardless if one of
them failed. You can deal with exceptions in the <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>
class where you have full control how to handle that.</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>If enabled then Camel will split in a
streaming fashion, which means it will split the input message in chunks. This
reduces the memory overhead. For example if you split big messages its
recommended to enable streaming. If streaming is enabled then the sub-message
replies will be aggregated out-of-order, eg in the order they come back. If
disabled, Camel will process sub-message replies in the same order as they
where splitted.</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> Sets a total timeout
specified in millis. If the <a shape="rect" href="recipient-list.html">Recip
ient List</a> hasn't been able to split and process all replies within the
given timeframe, then the timeout triggers and the <a shape="rect"
href="splitter.html">Splitter</a> breaks out and continues. Notice 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>
then the <code>timeout</code> method is invoked before breaking out. 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="confluen
ceTd"><p><strong>Camel 2.8:</strong> Refers to a custom <a shape="rect"
href="processor.html">Processor</a> to prepare the sub-message of the <a
shape="rect" href="exchange.html">Exchange</a>, before its processed. This
allows you to do any custom logic, such as deep-cloning the message payload if
that's needed etc.</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 further below for more
details.</p></td></tr></tbody></table>
</div>
</div><h3 id="BookInOnePage-Exchangeproperties">Exchange properties</h3><p>The
following properties are set on each Exchange that are split:</p><div
class="table-wrap">
<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>property</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>CamelSplitIndex</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>A split counter that increases for each
Exchange being split. The counter starts from 0.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSplitSize</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The total number of Exchanges that was splitted. This
header is not applied for stream based splitting. From <strong>Camel
2.9</strong> onwards this header is also set in stream based splitting, but
only on the completed Exc
hange.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSplitComplete</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.4:</strong> Whether or not this
Exchange is the last.</p></td></tr></tbody></table>
@@ -14323,8 +14323,8 @@ cometds://localhost:8443/service/mychann
<div class="confluence-information-macro-body">
<p>When using CXF in streaming modes (see DataFormat option), then also read
about <a shape="rect" href="stream-caching.html">Stream caching</a>.</p>
</div>
-</div><p>The <strong>cxf:</strong> component provides integration with <a
shape="rect" href="http://cxf.apache.org">Apache CXF</a> for connecting to
JAX-WS services hosted in CXF.</p><p><style type="text/css">/**/
div.rbtoc1479251887252 {padding: 0px;} div.rbtoc1479251887252 ul {list-style:
disc;margin-left: 0px;} div.rbtoc1479251887252 li {margin-left:
0px;padding-left: 0px;} /**/</style>
- </p><div class="toc-macro rbtoc1479251887252">
+</div><p>The <strong>cxf:</strong> component provides integration with <a
shape="rect" href="http://cxf.apache.org">Apache CXF</a> for connecting to
JAX-WS services hosted in CXF.</p><p><style type="text/css">/**/
div.rbtoc1479464384516 {padding: 0px;} div.rbtoc1479464384516 ul {list-style:
disc;margin-left: 0px;} div.rbtoc1479464384516 li {margin-left:
0px;padding-left: 0px;} /**/</style>
+ </p><div class="toc-macro rbtoc1479464384516">
<ul class="toc-indentation"><li><a shape="rect"
href="#BookInOnePage-CXFComponent">CXF Component</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#BookInOnePage-URIformat">URI format</a></li><li><a shape="rect"
href="#BookInOnePage-Options">Options</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#BookInOnePage-Thedescriptionsofthedataformats">The descriptions of the
dataformats</a>
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 Nov 18
10:21:39 2016
@@ -670,7 +670,7 @@
</div>
</div><p> </p><p> </p><p></p><h4
id="BookPatternAppendix-UsingThisPattern.17">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-Splitter">Splitter</h3><p>The <a
shape="rect" class="external-link"
href="http://www.enterpriseintegrationpatterns.com/Sequencer.html"
rel="nofollow">Splitter</a> from the <a shape="rect"
href="enterprise-integration-patterns.html">EIP patterns</a> allows you split a
message into a number of pieces and process them individually</p><p><span
class="confluence-embedded-file-wrapper"><
img class="confluence-embedded-image confluence-external-resource"
src="http://www.enterpriseintegrationpatterns.com/img/Sequencer.gif"
data-image-src="http://www.enterpriseintegrationpatterns.com/img/Sequencer.gif"></span></p><p>You
need to specify a Splitter as <code>split()</code>. In earlier versions of
Camel, you need to use <code>splitter()</code>.</p><h3
id="BookPatternAppendix-Options.2">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>strategyRef</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Refers to 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>
to be used to assemble the replies from the sub-messages, into a single
outgoing message from the <a shape="rect" href="splitter.html">Splitter</a>.
See the defaults described below in <em><a shape="rect"
href="#BookPatternAppendix-WhattheSplitterreturns">What the Splitter
returns</a></em>. From <strong>Camel 2.12</strong> onw
ards 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. If
an exception is thrown from the aggregate method in the AggregationStrategy,
then by default, that exception is not handled by the error handler. The
error handler can be enabled to react if enabling the shareUnitOfWork
option.</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 for the very first
splitted message. If this option is <code>true</code> then <code>null</code>
values is used as the <code>oldExchange</code> (for the very first message
splitted), 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>If enabled then processing the sub-messages
occurs concurrently. Note the caller thread will still wait until all
sub-messages has been fully processed, before it continues.</p></td><td
colspan="1" rowspan="1" class="conf
luenceTd"><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="co
nfluenceTd"><p>Refers to a custom <a shape="rect"
href="threading-model.html">Thread Pool</a> to be used for parallel processing.
Notice if you set this option, then parallel processing is automatically
implied, and you do not have to 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 or not
to stop continue processing immediately when an exception occurred. If disable,
then Camel continue splitting and process the sub-messages regardless if one of
them failed. You can deal with exceptions in the <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>
class where you have full control how to handle that.</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>If enabled then Camel will split in a
streaming fashion, which means it will split the input message in chunks. This
reduces the memory overhead. For example if you split big messages its
recommended to enable streaming. If streaming is enabled then the sub-message
replies will be aggregated out-of-order, eg in the order they come back. If
disabled, Camel will process sub-message replies in the same order as they
where splitted.</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> Sets a total timeout
specified in millis. If the <a shape="rect" href="recipient-list.html"
>Recipient List</a> hasn't been able to split and process all replies within
>the given timeframe, then the timeout triggers and the <a shape="rect"
>href="splitter.html">Splitter</a> breaks out and continues. Notice 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>
> then the <code>timeout</code> method is invoked before breaking out. 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="co
nfluenceTd"><p><strong>Camel 2.8:</strong> Refers to a custom <a shape="rect"
href="processor.html">Processor</a> to prepare the sub-message of the <a
shape="rect" href="exchange.html">Exchange</a>, before its processed. This
allows you to do any custom logic, such as deep-cloning the message payload if
that's needed etc.</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 further below 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>strategyRef</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Refers to 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>
to be used to assemble the replies from the sub-messages, into a single
outgoing message from the <a shape="rect" href="splitter.html">Splitter</a>.
See the defaults described below in <em><a shape="rect"
href="#BookPatternAppendix-WhattheSplitterreturns">What the Splitter
returns</a></em>. From <strong>Camel 2.12</strong> onw
ards 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. If
an exception is thrown from the aggregate method in the AggregationStrategy,
then by default, that exception is not handled by the error handler. The
error handler can be enabled to react if enabling the shareUnitOfWork
option.</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 for the very first
splitted message. If this option is <code>true</code> then <code>null</code>
values is used as the <code>oldExchange</code> (for the very first message
splitted), 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>If enabled then processing the sub-messages
occurs concurrently. Note the caller thread will still wait until all
sub-messages has been fully processed, before it continues.</p></td><td
colspan="1" rowspan="1" class="conf
luenceTd"><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
achieve 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="co
nfluenceTd"><p>Refers to a custom <a shape="rect"
href="threading-model.html">Thread Pool</a> to be used for parallel processing.
Notice if you set this option, then parallel processing is automatically
implied, and you do not have to 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 or not
to stop continue processing immediately when an exception occurred. If disable,
then Camel continue splitting and process the sub-messages regardless if one of
them failed. You can deal with exceptions in the <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>
class where you have full control how to handle that.</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>If enabled then Camel will split in a
streaming fashion, which means it will split the input message in chunks. This
reduces the memory overhead. For example if you split big messages its
recommended to enable streaming. If streaming is enabled then the sub-message
replies will be aggregated out-of-order, eg in the order they come back. If
disabled, Camel will process sub-message replies in the same order as they
where splitted.</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> Sets a total timeout
specified in millis. If the <a shape="rect" href="recipient-list.html"
>Recipient List</a> hasn't been able to split and process all replies within
>the given timeframe, then the timeout triggers and the <a shape="rect"
>href="splitter.html">Splitter</a> breaks out and continues. Notice 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>
> then the <code>timeout</code> method is invoked before breaking out. 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="co
nfluenceTd"><p><strong>Camel 2.8:</strong> Refers to a custom <a shape="rect"
href="processor.html">Processor</a> to prepare the sub-message of the <a
shape="rect" href="exchange.html">Exchange</a>, before its processed. This
allows you to do any custom logic, such as deep-cloning the message payload if
that's needed etc.</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 further below for more
details.</p></td></tr></tbody></table>
</div>
</div><h3 id="BookPatternAppendix-Exchangeproperties">Exchange
properties</h3><p>The following properties are set on each Exchange that are
split:</p><div class="table-wrap">
<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>property</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p><code>CamelSplitIndex</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>A split counter that increases for each
Exchange being split. The counter starts from 0.</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSplitSize</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The total number of Exchanges that was splitted. This
header is not applied for stream based splitting. From <strong>Camel
2.9</strong> onwards this header is also set in stream based splitting, but
only on the completed Exc
hange.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSplitComplete</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.4:</strong> Whether or not this
Exchange is the last.</p></td></tr></tbody></table>
Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.
Modified: websites/production/camel/content/splitter.html
==============================================================================
--- websites/production/camel/content/splitter.html (original)
+++ websites/production/camel/content/splitter.html Fri Nov 18 10:21:39 2016
@@ -87,7 +87,7 @@
<tr>
<td valign="top" width="100%">
<div class="wiki-content maincontent"><h3
id="Splitter-Splitter">Splitter</h3><p>The <a shape="rect"
class="external-link"
href="http://www.enterpriseintegrationpatterns.com/Sequencer.html"
rel="nofollow">Splitter</a> from the <a shape="rect"
href="enterprise-integration-patterns.html">EIP patterns</a> allows you split a
message into a number of pieces and process them individually</p><p><span
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image
confluence-external-resource"
src="http://www.enterpriseintegrationpatterns.com/img/Sequencer.gif"
data-image-src="http://www.enterpriseintegrationpatterns.com/img/Sequencer.gif"></span></p><p>You
need to specify a Splitter as <code>split()</code>. In earlier versions of
Camel, you need to use <code>splitter()</code>.</p><h3
id="Splitter-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>strategyRef</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Refers to 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>
to be used to assemble the replies from the sub-messages, into a single
outgoing message from the <a shape="rect" href="splitter.html">Splitter</a>.
See the defaults described below in <em><a shape="rect"
href="#Splitter-WhattheSplitterreturns">What the Splitter returns</a></em>.
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. If an
exception is thrown from the aggregate method in the AggregationStrategy, then
by default, that exception is not handled by the error handler. The error
handler can be enabled to react if enabling the shareUnitOfWork
option.</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="c
onfluenceTd"><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 for the very first
splitted message. If this option is <code>true</code> then <code>null</code>
values is used as the <code>oldExchange</code> (for the very first message
splitted), 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>If enabled then processing the sub-messages
occurs concurrently. Note the caller thread will still wait until all
sub-messages has been fully processed, before it continues.</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>Refers to a custom <a shape="rect" href="threading-model.html">Thread
Pool</a> to be used for parallel processing. Notice if you set this option,
then parallel processing is automatically implied, and you do not have to
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 or not
to stop continue processing immediately when an exception occurred. If disable,
then Camel continue splitting and process the sub-messages regardless if one of
them failed. You can deal with exceptions in the <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>
class where you have full control how to handle that.</p></td></tr><t
r><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>If enabled then Camel will split in a
streaming fashion, which means it will split the input message in chunks. This
reduces the memory overhead. For example if you split big messages its
recommended to enable streaming. If streaming is enabled then the sub-message
replies will be aggregated out-of-order, eg in the order they come back. If
disabled, Camel will process sub-message replies in the same order as they
where splitted.</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> Sets a total timeout
specified in millis. If the <a shape="rect"
href="recipient-list.html">Recipient L
ist</a> hasn't been able to split and process all replies within the given
timeframe, then the timeout triggers and the <a shape="rect"
href="splitter.html">Splitter</a> breaks out and continues. Notice 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>
then the <code>timeout</code> method is invoked before breaking out. 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> Refers to a custom <a shape="rect"
href="processor.html">Processor</a> to prepare the sub-message of the <a
shape="rect" href="exchange.html">Exchange</a>, before its processed. This
allows you to do any custom logic, such as deep-cloning the message payload if
that's needed etc.</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 further below 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>strategyRef</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Refers to 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>
to be used to assemble the replies from the sub-messages, into a single
outgoing message from the <a shape="rect" href="splitter.html">Splitter</a>.
See the defaults described below in <em><a shape="rect"
href="#Splitter-WhattheSplitterreturns">What the Splitter returns</a></em>.
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. If an
exception is thrown from the aggregate method in the AggregationStrategy, then
by default, that exception is not handled by the error handler. The error
handler can be enabled to react if enabling the shareUnitOfWork
option.</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="c
onfluenceTd"><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 for the very first
splitted message. If this option is <code>true</code> then <code>null</code>
values is used as the <code>oldExchange</code> (for the very first message
splitted), 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>If enabled then processing the sub-messages
occurs concurrently. Note the caller thread will still wait until all
sub-messages has been fully processed, before it continues.</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 achieve 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>Refers to a custom <a shape="rect" href="threading-model.html">Thread
Pool</a> to be used for parallel processing. Notice if you set this option,
then parallel processing is automatically implied, and you do not have to
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 or not
to stop continue processing immediately when an exception occurred. If disable,
then Camel continue splitting and process the sub-messages regardless if one of
them failed. You can deal with exceptions in the <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>
class where you have full control how to handle that.</p></td></tr><t
r><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>If enabled then Camel will split in a
streaming fashion, which means it will split the input message in chunks. This
reduces the memory overhead. For example if you split big messages its
recommended to enable streaming. If streaming is enabled then the sub-message
replies will be aggregated out-of-order, eg in the order they come back. If
disabled, Camel will process sub-message replies in the same order as they
where splitted.</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> Sets a total timeout
specified in millis. If the <a shape="rect"
href="recipient-list.html">Recipient L
ist</a> hasn't been able to split and process all replies within the given
timeframe, then the timeout triggers and the <a shape="rect"
href="splitter.html">Splitter</a> breaks out and continues. Notice 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>
then the <code>timeout</code> method is invoked before breaking out. 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> Refers to a custom <a shape="rect"
href="processor.html">Processor</a> to prepare the sub-message of the <a
shape="rect" href="exchange.html">Exchange</a>, before its processed. This
allows you to do any custom logic, such as deep-cloning the message payload if
that's needed etc.</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 further below for more
details.</p></td></tr></tbody></table>
</div></div><h3 id="Splitter-Exchangeproperties">Exchange
properties</h3><p>The following properties are set on each Exchange that are
split:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>property</p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p>type</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>description</p></th></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSplitIndex</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>A split counter that increases for each Exchange being
split. The counter starts from 0.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSplitSize</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The total number of Exchanges that was splitted. This he
ader is not applied for stream based splitting. From <strong>Camel
2.9</strong> onwards this header is also set in stream based splitting, but
only on the completed Exchange.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><code>CamelSplitComplete</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Camel 2.4:</strong> Whether or not this
Exchange is the last.</p></td></tr></tbody></table></div><h3
id="Splitter-Examples">Examples</h3><p>The following example shows how to take
a request from the <strong>direct:a</strong> endpoint the split it into pieces
using an <a shape="rect" href="expression.html">Expression</a>, then forward
each piece to <strong>direct:b</strong></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="brush: java; gutter: false; theme: Default"
type="syntaxhighlighter"><![CDATA[
RouteBuilder builder = new RouteBuilder() {