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 Mon Dec  1 15:19:57 
2014
@@ -4120,11 +4120,11 @@ While not actual tutorials you might fin
                     </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.rbtoc1417357041739 {padding: 0px;}
-div.rbtoc1417357041739 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1417357041739 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1417447067363 {padding: 0px;}
+div.rbtoc1417447067363 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1417447067363 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1417357041739">
+/*]]>*/</style></p><div class="toc-macro rbtoc1417447067363">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Tutorial-JmsRemoting-TutorialonSpringRemotingwithJMS">Tutorial on Spring 
Remoting with JMS</a></li><li><a shape="rect" 
href="#Tutorial-JmsRemoting-Preface">Preface</a></li><li><a shape="rect" 
href="#Tutorial-JmsRemoting-Prerequisites">Prerequisites</a></li><li><a 
shape="rect" 
href="#Tutorial-JmsRemoting-Distribution">Distribution</a></li><li><a 
shape="rect" href="#Tutorial-JmsRemoting-About">About</a></li><li><a 
shape="rect" href="#Tutorial-JmsRemoting-CreatetheCamelProject">Create the 
Camel Project</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Tutorial-JmsRemoting-UpdatethePOMwithDependencies">Update the POM with 
Dependencies</a></li></ul>
 </li><li><a shape="rect" href="#Tutorial-JmsRemoting-WritingtheServer">Writing 
the Server</a>
@@ -6310,11 +6310,11 @@ So we completed the last piece in the pi
 
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1417357042012 {padding: 0px;}
-div.rbtoc1417357042012 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1417357042012 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1417447068879 {padding: 0px;}
+div.rbtoc1417447068879 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1417447068879 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1417357042012">
+/*]]>*/</style><div class="toc-macro rbtoc1417447068879">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Tutorial-AXIS-Camel-TutorialusingAxis1.4withApacheCamel">Tutorial using 
Axis 1.4 with Apache Camel</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Tutorial-AXIS-Camel-Prerequisites">Prerequisites</a></li><li><a 
shape="rect" 
href="#Tutorial-AXIS-Camel-Distribution">Distribution</a></li><li><a 
shape="rect" 
href="#Tutorial-AXIS-Camel-Introduction">Introduction</a></li><li><a 
shape="rect" href="#Tutorial-AXIS-Camel-SettinguptheprojecttorunAxis">Setting 
up the project to run Axis</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#Tutorial-AXIS-Camel-Maven2">Maven 2</a></li><li><a shape="rect" 
href="#Tutorial-AXIS-Camel-wsdl">wsdl</a></li><li><a shape="rect" 
href="#Tutorial-AXIS-Camel-ConfiguringAxis">Configuring Axis</a></li><li><a 
shape="rect" href="#Tutorial-AXIS-Camel-RunningtheExample">Running the 
Example</a></li></ul>
@@ -10613,7 +10613,12 @@ from(&quot;direct:marshal&quot;).
 &lt;/camelContext&gt;
 ]]></script>
 </div></div>
-<h2 id="BookInOnePage-CSV">CSV</h2><p>The CSV <a shape="rect" 
href="data-format.html">Data Format</a> uses <a shape="rect" 
class="external-link" 
href="http://commons.apache.org/proper/commons-csv/";>Apache Commons CSV</a> to 
handle CSV payloads (Comma Separated Values) such as those exported/imported by 
Excel.</p><h3 id="BookInOnePage-Options.3">Options</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Option</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>config</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CSVConfig</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Can be used to set a custom <code>CSVConfig</code> 
object.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>strategy</p></td><td colspan="1" rowspan="
 1" class="confluenceTd"><p>CSVStrategy</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Can be used to set a custom <code>CSVStrategy</code>; 
the default is <code>CSVStrategy.DEFAULT_STRATEGY</code>.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>autogenColumns</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Whether or not columns are auto-generated 
in the resulting CSV. The default value is <code>true</code>; subsequent 
messages use the previously created columns with new fields being added at the 
end of the line.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>delimiter</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.4:</strong> The column delimiter to 
use; the default value is "<code>,</code>".</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenc
 eTd"><p>skipFirstLine</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.10:</strong> Whether or not to skip the 
first line of CSV input when unmarshalling (e.g. if the content has headers on 
the first line); the default value is <code>false</code>.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">lazyLoad</td><td colspan="1" 
rowspan="1" class="confluenceTd">boolean</td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.12.2:</strong><span><span>&#160;Whether or 
not to </span></span><span style="line-height: 1.4285715;">Sequential access 
CSV input through an iterator which could avoid OOM exception when processing 
huge CSV file; </span><span>the default value is false </span></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">useMaps</td><td colspan="1" 
rowspan="1" class="confluenceTd">boolean</td><td colspan="1" rowspan="1" 
class="confluenceTd"><str
 ong>Camel 2.13:</strong> Whether to use List&lt;Map&gt; when unmarshalling 
instead of List&lt;List&gt;.</td></tr></tbody></table></div><h3 
id="BookInOnePage-MarshallingaMaptoCSV">Marshalling a Map to CSV</h3><p>The 
component allows you to marshal a Java Map (or any other message type that can 
be <a shape="rect" href="type-converter.html">converted</a> in a Map) into a 
CSV payload.</p><p>An example: if you send a message with this map...</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<h2 id="BookInOnePage-CSV">CSV</h2><p>The CSV <a shape="rect" 
href="data-format.html">Data Format</a> uses <a shape="rect" 
class="external-link" 
href="http://commons.apache.org/proper/commons-csv/";>Apache Commons CSV</a> to 
handle CSV payloads (Comma Separated Values) such as those exported/imported by 
Excel.</p><p>As of Camel 2.15.0, it now uses the&#160;<a shape="rect" 
class="external-link" 
href="http://commons.apache.org/proper/commons-csv/archives/1.1/index.html";>Apache
 Commons CSV 1.1</a> which is based on a completely different set of 
options.</p><h3 id="BookInOnePage-AvailableoptionsuntilCamel2.15">Available 
options until Camel 2.15</h3><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Option</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>config</p></td
 ><td colspan="1" rowspan="1" class="confluenceTd"><p>CSVConfig</p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>Can be used to set a custom 
 ><code>CSVConfig</code> object.</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>strategy</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>CSVStrategy</p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>Can be used to set a custom <code>CSVStrategy</code>; 
 >the default is 
 ><code>CSVStrategy.DEFAULT_STRATEGY</code>.</p></td></tr><tr><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p>autogenColumns</p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p>Whether or not columns are auto-generated 
 >in the resulting CSV. The default value is <code>true</code>; subsequent 
 >messages use the previously created columns with new fields being added at 
 >the end of the line.</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>d
 elimiter</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.4:</strong> The column delimiter to 
use; the default value is "<code>,</code>".</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>skipFirstLine</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.10:</strong> Whether or not to skip the 
first line of CSV input when unmarshalling (e.g. if the content has headers on 
the first line); the default value is <code>false</code>.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">lazyLoad</td><td colspan="1" 
rowspan="1" class="confluenceTd">boolean</td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.12.2:</strong><span><span>&#160;Whether or 
not to </span></span><span style="line-height: 1.4285715;">Sequential access 
CSV input through an iterator which 
 could avoid OOM exception when processing huge CSV file; </span><span>the 
default value is false </span></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">useMaps</td><td colspan="1" rowspan="1" 
class="confluenceTd">boolean</td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.13:</strong> Whether to use 
List&lt;Map&gt; when unmarshalling instead of 
List&lt;List&gt;.</td></tr></tbody></table></div><h3 
id="BookInOnePage-AvailableoptionsasofCamel2.15">Available options as of Camel 
2.15</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh">Option</th><th colspan="1" 
rowspan="1" class="confluenceTh">Type</th><th colspan="1" rowspan="1" 
class="confluenceTh">Description</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>format</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>CSVFormat</code></td><td colspan="1" rowspan="1" 
class="confluenceTd">The reference format 
 to use, it will be updated with the other format options, the default value is 
<code>CSVFormat.DEFAULT</code></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>formatName</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>String</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Used in order to initialize the reference format using 
the name of one of the default formats.</p><p>The possible values are: 
<code>"DEFAULT"</code>, <code>"RFC4180"</code>, <code>"EXCEL"</code>, 
<code>"TDF"</code>, <code>"MYSQL"</code></p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><code>commentMarker</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>Character</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Overrides the comment marker of the 
reference format.</p><p>This option is <code>null</code> by default. When 
<code>null</code> it keeps the value of the reference format which is 
<code>null</code> for <code>CS
 VFormat.DEFAULT</code>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>delimiter</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>Character</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Overrides the delimiter of the reference 
format.</p><p>This option is <code>null</code> by defaut. <span>When 
</span><code>null</code><span> it keeps the value of the reference format which 
is </span><code>','</code><span> for 
</span><code>CSVFormat.DEFAULT</code><span>.</span></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><code>escapeDisabled</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>boolean</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Disables the escape character of the 
reference format.</p><p>This option is <code>false</code> by 
default.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>escape</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><co
 de>Character</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Overrides the escape character of the reference 
format.</p><p>This option is <code>null</code> by default. <span>When 
</span><code>null</code><span> it keeps the value of the reference format which 
is </span><code>null</code><span> for 
</span><code>CSVFormat.DEFAULT</code><span>.</span></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><code>headerDisabled</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>boolean</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Disables the header of the reference 
format.</p><p>This option is <code>false</code> by 
default.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>header</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>String[]</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Overrides the header of the reference 
format.</p><p>This option is <code>null</code> by default
 . <span>When </span><code>null</code><span> it keeps the value of the 
reference format which is </span><code>null</code><span> for 
</span><code>CSVFormat.DEFAULT</code><span>.</span></p><p>In the XML DSL, this 
option is configured using 
children&#160;<code>&lt;header&gt;</code>&#160;tags:</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[&lt;csv formatRef=&quot;excelFormat&quot; 
delimiter=&quot;|&quot; skipHeaderRecord=&quot;true&quot;&gt;
+    &lt;header&gt;orderId&lt;/header&gt;
+    &lt;header&gt;amount&lt;/header&gt;
+&lt;/csv&gt;]]></script>
+</div></div></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>allowMissingColumnNames</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>Boolean</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Overrides the missing column names behavior 
of the reference format.</p><p>This option is <code>null</code> by default. 
<span>When </span><code>null</code><span> it keeps the value of the reference 
format which is </span><code>false</code><span> for 
</span><code>CSVFormat.DEFAULT</code><span>.</span></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><code>ignoreEmptyLines</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>Boolean</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Overrides the empty line behavior of the 
reference format.</p><p><span>This option is </span><code>null</code><span> by 
default. <span>When </span><code>null</code><span> it keeps the value of the 
reference format which is </sp
 an><code>true</code><span> for 
</span><code>CSVFormat.DEFAULT</code><span>.</span></span></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><code>ignoreSurroundingSpaces</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>Boolean</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Overrides the surrounding spaces behavior 
of the reference format.</p><p><span>This option is 
</span><code>null</code><span> by default. <span>When 
</span><code>null</code><span> it keeps the value of the reference format which 
is </span><code>false</code><span> for 
</span><code>CSVFormat.DEFAULT</code><span>.</span></span></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><code>nullStringDisabled</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>boolean</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Disables the null string representation of 
the reference format.</p><p>This option is <code>false</code> by default.</p>
 </td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>nullString</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>String</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Overrides the null string representation of the 
reference format.</p><p><span>This option is </span><code>null</code><span> by 
default. <span>When </span><code>null</code><span> it keeps the value of the 
reference format which is </span><code>null</code><span> for 
</span><code>CSVFormat.DEFAULT</code><span>.</span></span></p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><code>quoteDisabled</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>boolean</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Disables the quote of the 
reference format.</p><p><span>This option is </span><code>false</code><span> by 
default.</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>quote</code></td><td colspan="1" rowspan
 ="1" class="confluenceTd"><code>Character</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Overrides the quote symbol of the reference 
format.</p><p><span>This option is </span><code>null</code><span> by default. 
<span>When </span><code>null</code><span> it keeps the value of the reference 
format which is </span><code>'"'</code><span> (double quote) for 
</span><code>CSVFormat.DEFAULT</code><span>.</span></span></p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><code>quoteMode</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>QuoteMode</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Overrides the quote mode of the 
reference format.</p><p><span>This option is </span><code>null</code><span> by 
default. <span>When </span><code>null</code><span> it keeps the value of the 
reference format which is </span><code>null</code><span> for 
</span><code>CSVFormat.DEFAULT</code><span>.</span></span></p></td></tr><tr><td 
colspan="1" rowspa
 n="1" class="confluenceTd"><code>recordSeparatorDisabled</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>boolean</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Disables the record separator 
of the reference format.</p><p><span>This option is 
</span><code>false</code><span> by default.</span></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><code>recordSeparator</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>String</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Overrides the record separator of the 
reference format.</p><p><span>This option is </span><code>null</code><span> by 
default. <span>When </span><code>null</code><span> it keeps the value of the 
reference format which is </span><code>\r\n</code><span> (CRLF) for 
</span><code>CSVFormat.DEFAULT</code><span>.</span></span></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><code>skipHeaderRecord</code></td><td colspan="1" rowspan="
 1" class="confluenceTd"><code>Boolean</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Overrides the header record behavior of the reference 
format.</p><p><span>This option is </span><code>null</code><span> by default. 
<span>When </span><code>null</code><span> it keeps the value of the reference 
format which is </span><code>false</code><span> for 
</span><code>CSVFormat.DEFAULT</code><span>.</span></span></p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><code>lazyLoad</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>boolean</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Whether the unmarshalling 
should produce an iterator that reads the lines on the fly or if all the lines 
must be read at one.</p><p>This option is&#160;<code>false</code>&#160;by 
default.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>useMaps</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>boolean</code></td><td 
 colspan="1" rowspan="1" class="confluenceTd"><p>Whether the unmarshalling 
should produce maps for the lines values instead of lists. It requires to have 
header (either defined or collected).</p><p>This options 
is&#160;<code>false</code>&#160;by default.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><code>recordConverter</code></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><code>CsvRecordConverter</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Sets the record converter to use. If 
defines the <code>useMaps</code> options is disabled.</p><p><span>This option 
is </span><code>null</code><span> by 
default.</span></p></td></tr></tbody></table></div><h3 
id="BookInOnePage-MarshallingaMaptoCSV">Marshalling a Map to CSV</h3><p>The 
component allows you to marshal a Java Map (or any other message type that can 
be <a shape="rect" href="type-converter.html">converted</a> in a Map) into a 
CSV payload.</p><p>An example: if you send a message with this map..
 .</p><p>&#160;</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[
 Map&lt;String, Object&gt; body = new HashMap&lt;String, Object&gt;();
 body.put(&quot;foo&quot;, &quot;abc&quot;);
@@ -10796,7 +10801,7 @@ csvConfig.setDelimiter(&#39;;&#39;);
 </div></div>
 The String <a shape="rect" href="data-format.html">Data Format</a> is a 
textual based format that supports encoding. 
 
-<h3 id="BookInOnePage-Options.4">Options</h3>
+<h3 id="BookInOnePage-Options.3">Options</h3>
 <div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Option </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Default </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Description 
</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> charset 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> null </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> To use a specific charset for 
encoding. If not provided Camel will use the JVM default charset. 
</p></td></tr></tbody></table></div>
 
 
@@ -10886,7 +10891,7 @@ The result of the operation will contain
 
 <p><strong>Notice:</strong> The Flatpack library does currently not support 
header and trailers for the marshal operation.</p>
 
-<h3 id="BookInOnePage-Options.5">Options</h3>
+<h3 id="BookInOnePage-Options.4">Options</h3>
 <p>The data format has the following options:</p>
 <div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Option </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Default </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Description 
</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>definition</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The flatpack pzmap configuration file. Can be omitted 
in simpler situations, but its preferred to use the pzmap. 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>fixed</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Delimited or fixed. </p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>ignoreFirstRecord</code> 
</p></td><td colspan="
 1" rowspan="1" class="confluenceTd"><p> <code>true</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> Whether the first line is 
ignored for delimited files (for the column headers). </p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>textQualifier</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>"</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> If the text is 
qualified with a char such as <code>"</code>. </p></td></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> The delimiter char (could be 
<code>;</code> <code>,</code> or similar) </p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>parserFactory</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td 
cols
 pan="1" rowspan="1" class="confluenceTd"><p> Uses the default Flatpack parser 
factory. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>allowShortLines</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <strong>Camel 2.9.7 and 2.10.5 
onwards</strong>: Allows for lines to be shorter than expected and ignores the 
extra characters. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>ignoreExtraColumns</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 
2.9.7 and 2.10.5 onwards</strong>: Allows for lines to be longer than expected 
and ignores the extra characters. </p></td></tr></tbody></table></div>
 
@@ -11165,7 +11170,7 @@ This is subject to change in the future,
     </div>
  
 
-<h3 id="BookInOnePage-Options.6">Options</h3>
+<h3 id="BookInOnePage-Options.5">Options</h3>
 
 <div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Option </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Default </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Description 
</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
compressionLevel </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
null </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> To specify a 
specific compression Level use <code>java.util.zip.Deflater</code> settings. 
The possible settings are&#160; <br clear="none" class="atl-forced-newline">
 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; - 
<code>Deflater.BEST_SPEED</code> <br clear="none" class="atl-forced-newline">
@@ -12375,7 +12380,7 @@ context.addRoutes(new RouteBuilder() {
 </div></div><h3 id="BookInOnePage-Dependencies.28">Dependencies</h3><p>This 
data format is provided within the <strong>camel-xmlsecurity</strong> 
component.</p>
 The GZip <a shape="rect" href="data-format.html">Data Format</a> is a message 
compression and de-compression format. It uses the same deflate algorithm that 
is used in <a shape="rect" href="zip-dataformat.html">Zip DataFormat</a>, 
although some additional headers are provided. This format is produced by 
popular <code>gzip</code>/<code>gunzip</code> tool. Messages marshalled using 
GZip compression can be unmarshalled using GZip decompression just prior to 
being consumed at the endpoint. The compression capability is quite useful when 
you deal with large XML and Text based payloads or when you read messages 
previously comressed using <code>gzip</code> tool.
 
-<h3 id="BookInOnePage-Options.7">Options</h3>
+<h3 id="BookInOnePage-Options.6">Options</h3>
 
 <p>There are no options provided for this data format.</p>
 
@@ -12506,7 +12511,7 @@ castor.getUnmarshaller();
 </div></div>
 
 
-<h3 id="BookInOnePage-Options.8">Options</h3>
+<h3 id="BookInOnePage-Options.7">Options</h3>
 <p>Castor supports the following options</p>
 
 <div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Option </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Type </p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p> Default </p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> encoding </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> String </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> UTF-8 </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Encoding to use when marshalling an Object 
to XML </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
validation </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
Boolean </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> false 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Whether 
validation is turned on or off. </p></td>
 </tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> mappingFile 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> String 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> null </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> Path to a Castor mapping file 
to load from the classpath. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> packages </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> String[] </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> null </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> Add additional packages to Castor XmlContext 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
classNames </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
String[] </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> null 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Add additional 
class names to Castor XmlContext </p></td></t
 r></tbody></table></div>
@@ -12870,7 +12875,7 @@ from(&quot;jms://queue:customerServiceQu
 &lt;/dependency&gt;
 ]]></script>
 </div></div>
-<h2 id="BookInOnePage-Crypto">Crypto</h2><p><strong>Available as of Camel 
2.3</strong><br clear="none"> <strong>PGP Available as of Camel 
2.9</strong></p><p>The Crypto <a shape="rect" href="data-format.html">Data 
Format</a> integrates the Java Cryptographic Extension into Camel, allowing 
simple and flexible encryption and decryption of messages using Camel's 
familiar marshall and unmarshal formatting mechanism. It assumes marshalling to 
mean encryption to cyphertext and unmarshalling to mean decryption back to the 
original plaintext. This data format implements only symmetric (shared-key) 
encryption and decyption.</p><h3 id="BookInOnePage-Options.9">Options</h3><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>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description
 </p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>algorithm</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>DES/CBC/PKCS5Padding</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The JCE algorithm name 
indicating the cryptographic algorithm that will be used.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>algorithmParameterSpec</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>java.security.spec.AlgorithmParameterSpec</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>A JCE AlgorithmParameterSpec 
used to initialize the Cipher.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>bufferSize</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Integer</cod
 e></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>2048</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>the size of the buffer used in the signature 
process.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>cryptoProvider</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The name of the JCE Security Provider that 
should be used.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>initializationVector</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>byte[]</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>A byte array containing the 
Initialization Vector that will be used to initialize the Cipher.</p></td></tr>
 <tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>inline</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Flag indicating that the configured IV 
should be inlined into the encrypted data stream.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>macAlgorithm</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The JCE algorithm name indicating the 
Message Authentication algorithm.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>shouldAppendHMAC</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>boolean</code></p></td><td 
colspan="1" rowspan="1" class="conf
 luenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Flag indicating that a Message Authentication Code 
should be calculated and appended to the encrypted 
data.</p></td></tr></tbody></table></div><h3 
id="BookInOnePage-BasicUsage">Basic Usage</h3><p>At its most basic all that is 
required to encrypt/decrypt an exchange is a shared secret key. If one or more 
instances of the Crypto data format are configured with this key the format can 
be used to encrypt the payload in one route (or part of one) and decrypted in 
another. For example, using the Java DSL as follows:</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<h2 id="BookInOnePage-Crypto">Crypto</h2><p><strong>Available as of Camel 
2.3</strong><br clear="none"> <strong>PGP Available as of Camel 
2.9</strong></p><p>The Crypto <a shape="rect" href="data-format.html">Data 
Format</a> integrates the Java Cryptographic Extension into Camel, allowing 
simple and flexible encryption and decryption of messages using Camel's 
familiar marshall and unmarshal formatting mechanism. It assumes marshalling to 
mean encryption to cyphertext and unmarshalling to mean decryption back to the 
original plaintext. This data format implements only symmetric (shared-key) 
encryption and decyption.</p><h3 id="BookInOnePage-Options.8">Options</h3><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>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description
 </p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>algorithm</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>DES/CBC/PKCS5Padding</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The JCE algorithm name 
indicating the cryptographic algorithm that will be used.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>algorithmParameterSpec</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>java.security.spec.AlgorithmParameterSpec</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>A JCE AlgorithmParameterSpec 
used to initialize the Cipher.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>bufferSize</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Integer</cod
 e></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>2048</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>the size of the buffer used in the signature 
process.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>cryptoProvider</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The name of the JCE Security Provider that 
should be used.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>initializationVector</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>byte[]</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>A byte array containing the 
Initialization Vector that will be used to initialize the Cipher.</p></td></tr>
 <tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>inline</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Flag indicating that the configured IV 
should be inlined into the encrypted data stream.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>macAlgorithm</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The JCE algorithm name indicating the 
Message Authentication algorithm.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>shouldAppendHMAC</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>boolean</code></p></td><td 
colspan="1" rowspan="1" class="conf
 luenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Flag indicating that a Message Authentication Code 
should be calculated and appended to the encrypted 
data.</p></td></tr></tbody></table></div><h3 
id="BookInOnePage-BasicUsage">Basic Usage</h3><p>At its most basic all that is 
required to encrypt/decrypt an exchange is a shared secret key. If one or more 
instances of the Crypto data format are configured with this key the format can 
be used to encrypt the payload in one route (or part of one) and decrypted in 
another. For example, using the Java DSL as follows:</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[
 KeyGenerator generator = KeyGenerator.getInstance(&quot;DES&quot;);
 
@@ -14255,7 +14260,7 @@ from(&quot;direct:start&quot;)
                             <p>You must ensure the expression used for the 
<code>dynamicRouter</code> such as a bean, will return <code>null</code> to 
indicate the end. Otherwise the <code>dynamicRouter</code> will keep repeating 
endlessly.</p>
                     </div>
     </div>
-<h3 id="BookInOnePage-Options.10">Options</h3><div 
class="confluenceTableSmall">
+<h3 id="BookInOnePage-Options.9">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>uriDelimiter</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>,</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Delimiter used if 
the <a shape="rect" href="expression.html">Expression</a> returned multiple 
endpoints. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>ignoreInvalidEndpoints</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> If an endpoint 
uri could not be resolved, should it be ignored. Otherwise Camel will thrown an 
exception stating the endpoint uri is
  not valid. </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><h3 id="BookInOnePage-DynamicRouterinCamel2.5onwards">Dynamic Router in 
Camel 2.5 onwards</h3><p>From Camel 2.5 the <a shape="rect" 
href="dynamic-router.html">Dynamic Router</a> will set a property 
(Exchange.SLIP_ENDPOINT) on the <a shape="rect" 
href="exchange.html">Exchange</a> which contains the current endpoint as it 
advanced though the slip. This allows you to know how far we have processed in 
the slip. (It's a slip because the <a shape="rect" 
href="dynamic-router.html">Dynamic Router</a> implementation is based on top of 
<a shape="rect" href="routing-slip.html">Routing Slip</a>).</p><h4 
id="BookInOnePage-JavaDSL.2">Java DSL</h4><p>In Java DSL you can use the 
<code>dynamicRouter</code> as shown below:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
@@ -14379,7 +14384,7 @@ public String slip(String body, @Propert
 </div></div><p>In the above we can use the <a shape="rect" 
href="parameter-binding-annotations.html">Parameter Binding Annotations</a> to 
bind different parts of the <a shape="rect" href="message.html">Message</a> to 
method parameters or use an <a shape="rect" 
href="expression.html">Expression</a> such as using <a shape="rect" 
href="xpath.html">XPath</a> or <a shape="rect" 
href="xquery.html">XQuery</a>.</p><p>The method can be invoked in a number of 
ways as described in the <a shape="rect" href="bean-integration.html">Bean 
Integration</a> such as</p><ul><li><a shape="rect" 
href="pojo-producing.html">POJO Producing</a></li><li><a shape="rect" 
href="spring-remoting.html">Spring Remoting</a></li><li><a shape="rect" 
href="bean.html">Bean</a> component</li></ul><p></p><h4 
id="BookInOnePage-UsingThisPattern.16">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-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="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" ro
 wspan="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>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>An <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html";>AggregationStrategy</a>
 that will assemble the replies from recipients into a single outgoing messa
 ge 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>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.12:</strong> This option can be used to 
explicit declare the method name to use, when using POJOs as the 
<code>AggregationStrategy</code>. See the <a shape="rect" 
href="aggregator2.html">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>&#160;</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>&#160;</p></td><
 td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.2:</strong> 
A custom <a shape="rect" href="threading-model.html">Thread Pool</a> to use for 
parallel processing. Note that enabling this option implies parallel 
processing, so you need not enable that option as well.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>stopOnException</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.2:</strong> Whether to 
immediately stop processing when an exception occurs. If disabled, Camel will 
send the message to all recipients regardless of any individual failures. You 
can process exceptions in an <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html";>AggregationStrategy</a>
 implementation, which supports full control of error handling.</
 p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>ignoreInvalidEndpoints</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.3:</strong> 
Whether to ignore an endpoint URI that could not be resolved. If disabled, 
Camel will throw an exception identifying the invalid endpoint 
URI.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>streaming</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> If enabled, 
Camel will process replies out-of-order - that is, in the order received in 
reply from each recipient. If disabled, Camel will process replies in the same 
order as specified by the <a shape="rect" 
href="expression.html">Expression</a>.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>t
 imeout</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.5:</strong> Specifies a processing 
timeout milliseconds. If the <a shape="rect" 
href="recipient-list.html">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 conti
 nue to run. So use this option with a bit of care. We may be able to improve 
this functionality in future Camel releases.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>onPrepareRef</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> A custom <a 
shape="rect" href="processor.html">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="BookInOnePage-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 An
 notation</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">
+<h3 id="BookInOnePage-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="BookInOnePage-Options.10">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" ro
 wspan="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>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>An <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html";>AggregationStrategy</a>
 that will assemble the replies from recipients into a single outgoing messa
 ge 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>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.12:</strong> This option can be used to 
explicit declare the method name to use, when using POJOs as the 
<code>AggregationStrategy</code>. See the <a shape="rect" 
href="aggregator2.html">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>&#160;</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>&#160;</p></td><
 td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.2:</strong> 
A custom <a shape="rect" href="threading-model.html">Thread Pool</a> to use for 
parallel processing. Note that enabling this option implies parallel 
processing, so you need not enable that option as well.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>stopOnException</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.2:</strong> Whether to 
immediately stop processing when an exception occurs. If disabled, Camel will 
send the message to all recipients regardless of any individual failures. You 
can process exceptions in an <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/processor/aggregate/AggregationStrategy.html";>AggregationStrategy</a>
 implementation, which supports full control of error handling.</
 p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>ignoreInvalidEndpoints</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.3:</strong> 
Whether to ignore an endpoint URI that could not be resolved. If disabled, 
Camel will throw an exception identifying the invalid endpoint 
URI.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>streaming</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> If enabled, 
Camel will process replies out-of-order - that is, in the order received in 
reply from each recipient. If disabled, Camel will process replies in the same 
order as specified by the <a shape="rect" 
href="expression.html">Expression</a>.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>t
 imeout</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.5:</strong> Specifies a processing 
timeout milliseconds. If the <a shape="rect" 
href="recipient-list.html">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 conti
 nue to run. So use this option with a bit of care. We may be able to improve 
this functionality in future Camel releases.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>onPrepareRef</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> A custom <a 
shape="rect" href="processor.html">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="BookInOnePage-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 An
 notation</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() {
@@ -14600,7 +14605,7 @@ from(&quot;direct:c&quot;).to(&quot;mock
 <p>&#160;</p><p>&#160;</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><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";></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.12">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>&#160;</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 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" r
 owspan="1" class="confluenceTd"><p><code>strategyMethodName</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> This option 
can be used to explicit declare the method name to use, when using POJOs as the 
<code>AggregationStrategy</code>. See the <a shape="rect" 
href="aggregator2.html">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>Ag
 gregationStrategy</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>&#160;</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>&#160;</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><cod
 e>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 recommend
 ed 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>&#160;</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";>TimeoutAwareAggre
 gationStrategy</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>&#160;</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="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 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="BookInOnePage-Examples.7">Examples</h3><p>The following example shows how 
to take a request from the <strong>queue:a</strong> endpoint the split it into 
pieces using an <a shape="rect" href="expression.h
 tml">Expression</a>, then forward each piece to 
<strong>queue: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">
+<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><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";></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>&#160;</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 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" r
 owspan="1" class="confluenceTd"><p><code>strategyMethodName</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> This option 
can be used to explicit declare the method name to use, when using POJOs as the 
<code>AggregationStrategy</code>. See the <a shape="rect" 
href="aggregator2.html">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>Ag
 gregationStrategy</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>&#160;</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>&#160;</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><cod
 e>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 recommend
 ed 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>&#160;</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";>TimeoutAwareAggre
 gationStrategy</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>&#160;</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="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 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="BookInOnePage-Examples.7">Examples</h3><p>The following example shows how 
to take a request from the <strong>queue:a</strong> endpoint the split it into 
pieces using an <a shape="rect" href="expression.h
 tml">Expression</a>, then forward each piece to 
<strong>queue: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="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 RouteBuilder builder = new RouteBuilder() {
     public void configure() {
@@ -16038,7 +16043,7 @@ from(&quot;seda:quoteAggregator&quot;)
 <h4 id="BookInOnePage-UsingThisPattern.22">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-RoutingSlip">Routing Slip</h3><p>The <a shape="rect" 
class="external-link" 
href="http://www.enterpriseintegrationpatterns.com/RoutingTable.html"; 
rel="nofollow">Routing Slip</a> from the <a shape="rect" 
href="enterprise-integration-patterns.html">EIP patterns</a> allows you to 
route a message consecutively through a series of processing steps where the 
sequence of steps is not known at design time and can vary for each 
message.</p><p><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://www.enterpriseintegrationpatterns.com/img/RoutingTableSimple.gif"; 
data-image-src="http://www.enterpriseintegrationpatterns.com/img/RoutingTableSimple.gif";></p><h3
 id="BookInOnePage-Options.13">Options</h3><div class="confluenceTableSmall">
+<h3 id="BookInOnePage-RoutingSlip">Routing Slip</h3><p>The <a shape="rect" 
class="external-link" 
href="http://www.enterpriseintegrationpatterns.com/RoutingTable.html"; 
rel="nofollow">Routing Slip</a> from the <a shape="rect" 
href="enterprise-integration-patterns.html">EIP patterns</a> allows you to 
route a message consecutively through a series of processing steps where the 
sequence of steps is not known at design time and can vary for each 
message.</p><p><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://www.enterpriseintegrationpatterns.com/img/RoutingTableSimple.gif"; 
data-image-src="http://www.enterpriseintegrationpatterns.com/img/RoutingTableSimple.gif";></p><h3
 id="BookInOnePage-Options.12">Options</h3><div class="confluenceTableSmall">

[... 641 lines stripped ...]
Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.


Reply via email to