Modified: websites/production/camel/content/book-dataformat-appendix.html
==============================================================================
--- websites/production/camel/content/book-dataformat-appendix.html (original)
+++ websites/production/camel/content/book-dataformat-appendix.html Tue Mar 26 
22:22:28 2019
@@ -113,7 +113,7 @@
 
 <p>For example</p>
 
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
 DataFormat jaxb = new JaxbDataFormat("com.acme.model");
 
@@ -127,7 +127,7 @@ from("activemq:My.Queue").
 
 <p>You can also use the DSL itself to define the data format as you use it. 
For example the following uses Java serialization to unmarshal a binary file 
then send it as an ObjectMessage to <a shape="rect" 
href="activemq.html">ActiveMQ</a></p>
 
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
 from("file://foo/bar").
   unmarshal().serialization().
@@ -141,7 +141,7 @@ from("file://foo/bar").
 
 <p>The following example unmarshals via serialization then marshals using a 
named JAXB data format to perform a kind of <a shape="rect" 
href="message-translator.html">Message Translator</a></p>
 
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
 from("file://foo/bar").
   unmarshal().serialization(). 
@@ -177,7 +177,7 @@ Error rendering macro 'code': Invalid va
 
 <p>You can also define reusable data formats as Spring beans </p>
 
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
 &lt;bean id="myJaxb" 
class="org.apache.camel.model.dataformat.JaxbDataFormat"&gt;
   &lt;property name="prettyPrint" value="true"/&gt;
@@ -191,7 +191,7 @@ Error rendering macro 'code': Invalid va
 <p>Serialization is a <a shape="rect" href="data-format.html">Data Format</a> 
which uses the standard Java Serialization mechanism to unmarshal a binary 
payload into Java objects or to marshal Java objects into a binary blob.<br 
clear="none">
  For example the following uses Java serialization to unmarshal a binary file 
then send it as an ObjectMessage to <a shape="rect" 
href="activemq.html">ActiveMQ</a></p>
 
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
 from("file://foo/bar").
   unmarshal().serialization().
@@ -245,7 +245,7 @@ jaxbDataFormat.setSchemaLocation("schema
 
 <p>XmlBeans is a <a shape="rect" href="data-format.html">Data Format</a> which 
uses the <a shape="rect" class="external-link" 
href="http://xmlbeans.apache.org/";>XmlBeans library</a> to unmarshal an XML 
payload into Java objects or to marshal Java objects into an XML payload.</p>
 
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
 from("activemq:My.Queue").
   unmarshal().xmlBeans().
@@ -259,7 +259,7 @@ from("activemq:My.Queue").
 
 <p>If you use maven you could just add the following to your pom.xml, 
substituting the version number for the latest &amp; greatest release (see <a 
shape="rect" href="download.html">the download page for the latest 
versions</a>).</p>
 
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
 &lt;dependency&gt;
   &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
@@ -298,20 +298,20 @@ from("direct:marshal").
 
 
 </plain-text-body></div>
-<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 id="BookDataFormatAppendix-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="BookDataFormatAppendix-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="confluence
 Th"><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 bein
 g 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="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 </sp
 an></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="BookDataFormatAppendix-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>commentMarkerDisabled</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>boolean</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Disables the comment marker 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>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>CSVFormat.D
 EFAULT</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"><code>Charac
 ter</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>W
 hen </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 conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 id="BookDataFormatAppendix-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="BookDataFormatAppendix-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="confluence
 Th"><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 bein
 g 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="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 </sp
 an></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="BookDataFormatAppendix-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>commentMarkerDisabled</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>boolean</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Disables the comment marker 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>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>CSVFormat.D
 EFAULT</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"><code>Charac
 ter</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>W
 hen </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 conf-macro output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; 
gutter: false; theme: Default" data-theme="Default">&lt;csv &gt;
     &lt;header&gt;orderId&lt;/header&gt;
     &lt;header&gt;amount&lt;/header&gt;
 &lt;/csv&gt;</pre>
-</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="BookDataFormatAppendix-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><div class="table-wrap"><table class="confl
 uenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Considering the following body</td><td colspan="1" 
rowspan="1" class="confluenceTd"><div class="code panel pdl conf-macro 
output-block" data-hasbody="true" data-macro-name="code" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</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="BookDataFormatAppendix-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><div class="table-wrap"><table class="confl
 uenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Considering the following body</td><td colspan="1" 
rowspan="1" class="confluenceTd"><div class="code panel pdl conf-macro 
output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">Map&lt;String, Object&gt; 
body = new LinkedHashMap&lt;&gt;();
 body.put("foo", "abc");
 body.put("bar", 123);</pre>
-</div></div></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">and 
this Java route definition</td><td colspan="1" rowspan="1" 
class="confluenceTd"><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">and 
this Java route definition</td><td colspan="1" rowspan="1" 
class="confluenceTd"><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">from("direct:start")
     .marshal().csv()
     .to("mock:result");</pre>
-</div></div></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">or 
this XML route definition</td><td colspan="1" rowspan="1" 
class="confluenceTd"><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">or 
this XML route definition</td><td colspan="1" rowspan="1" 
class="confluenceTd"><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; 
gutter: false; theme: Default" data-theme="Default">&lt;route&gt;
     &lt;from uri="direct:start" /&gt;
     &lt;marshal&gt;
@@ -319,31 +319,31 @@ body.put("bar", 123);</pre>
     &lt;/marshal&gt;
     &lt;to uri="mock:result" /&gt;
 &lt;/route&gt;</pre>
-</div></div></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">then it will produce</td><td colspan="1" rowspan="1" 
class="confluenceTd"><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">then it will produce</td><td colspan="1" rowspan="1" 
class="confluenceTd"><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; 
gutter: false; theme: Default" data-theme="Default">abc,123</pre>
-</div></div></td></tr></tbody></table></div><h3 
id="BookDataFormatAppendix-UnmarshallingaCSVmessageintoaJavaList"><span 
style="font-size: 16.0px;line-height: 1.5625;">Unmarshalling a CSV message into 
a Java List</span></h3><p>Unmarshalling will transform a CSV messsage into a 
Java List with CSV file lines (containing another List with all the field 
values).</p><p><span style="line-height: 1.4285715;">An example: we have a CSV 
file with names of persons, their IQ and their current activity.</span></p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div></td></tr></tbody></table></div><h3 
id="BookDataFormatAppendix-UnmarshallingaCSVmessageintoaJavaList"><span 
style="font-size: 16.0px;line-height: 1.5625;">Unmarshalling a CSV message into 
a Java List</span></h3><p>Unmarshalling will transform a CSV messsage into a 
Java List with CSV file lines (containing another List with all the field 
values).</p><p><span style="line-height: 1.4285715;">An example: we have a CSV 
file with names of persons, their IQ and their current activity.</span></p><div 
class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; 
gutter: false; theme: Default" data-theme="Default">Jack Dalton, 115, mad at 
Averell
 Joe Dalton, 105, calming Joe
 William Dalton, 105, keeping Joe from killing Averell
 Averell Dalton, 80, playing with Rantanplan
 Lucky Luke, 120, capturing the Daltons</pre>
-</div></div><p>We can now use the CSV component to unmarshal this 
file:</p><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><p>We can now use the CSV component to unmarshal this 
file:</p><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" 
data-theme="Default">from("file:src/test/resources/?fileName=daltons.csv&amp;noop=true")
     .unmarshal().csv()
     .to("mock:daltons");</pre>
-</div></div><p>The resulting message will contain a 
<code>List&lt;List&lt;String&gt;&gt;</code> like...</p><div class="code panel 
pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>The resulting message will contain a 
<code>List&lt;List&lt;String&gt;&gt;</code> like...</p><div class="code panel 
pdl conf-macro output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" 
data-theme="Default">List&lt;List&lt;String&gt;&gt; data = 
(List&lt;List&lt;String&gt;&gt;) exchange.getIn().getBody();
 for (List&lt;String&gt; line : data) {
     LOG.debug(String.format("%s has an IQ of %s and is currently %s", 
line.get(0), line.get(1), line.get(2)));
 }</pre>
-</div></div><h3 
id="BookDataFormatAppendix-MarshallingaList&lt;Map&gt;toCSV">Marshalling a 
List&lt;Map&gt; to CSV</h3><p><strong>Available as of Camel 
2.1</strong></p><p>If you have multiple rows of data you want to be marshalled 
into CSV format you can now store the message payload as a 
<code>List&lt;Map&lt;String, Object&gt;&gt;</code> object where the list 
contains a Map for each row.</p><h3 
id="BookDataFormatAppendix-FilePollerofCSV,thenunmarshaling">File Poller of 
CSV, then unmarshaling</h3><p>Given a bean which can handle the incoming 
data...</p><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>MyCsvHandler.java</b></div><div class="codeContent panelContent pdl">
+</div></div><h3 
id="BookDataFormatAppendix-MarshallingaList&lt;Map&gt;toCSV">Marshalling a 
List&lt;Map&gt; to CSV</h3><p><strong>Available as of Camel 
2.1</strong></p><p>If you have multiple rows of data you want to be marshalled 
into CSV format you can now store the message payload as a 
<code>List&lt;Map&lt;String, Object&gt;&gt;</code> object where the list 
contains a Map for each row.</p><h3 
id="BookDataFormatAppendix-FilePollerofCSV,thenunmarshaling">File Poller of 
CSV, then unmarshaling</h3><p>Given a bean which can handle the incoming 
data...</p><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>MyCsvHandler.java</b></div><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">// Some comments here
 public void doHandleCsvData(List&lt;List&lt;String&gt;&gt; csvData)
 {
     // do magic here
 }
 </pre>
-</div></div><p>... your route then looks as follows</p><div class="code panel 
pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>... your route then looks as follows</p><div class="code panel 
pdl conf-macro output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; 
gutter: false; theme: Default" data-theme="Default">&lt;route&gt;
         &lt;!-- poll every 10 seconds --&gt;
         &lt;from 
uri="file:///some/path/to/pickup/csvfiles?delete=true&amp;amp;consumer.delay=10000"
 /&gt;
@@ -351,11 +351,11 @@ public void doHandleCsvData(List&lt;List
         &lt;to uri="bean:myCsvHandler?method=doHandleCsvData" /&gt;
 &lt;/route&gt;
 </pre>
-</div></div><h3 
id="BookDataFormatAppendix-Marshalingwithapipeasdelimiter">Marshaling with a 
pipe as delimiter</h3><p>&#160;</p><p>&#160;</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Considering the following body</td><td colspan="1" 
rowspan="1" class="confluenceTd"><div class="code panel pdl conf-macro 
output-block" data-hasbody="true" data-macro-name="code" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 
id="BookDataFormatAppendix-Marshalingwithapipeasdelimiter">Marshaling with a 
pipe as delimiter</h3><p>&#160;</p><p>&#160;</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Considering the following body</td><td colspan="1" 
rowspan="1" class="confluenceTd"><div class="code panel pdl conf-macro 
output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">Map&lt;String, Object&gt; 
body = new LinkedHashMap&lt;&gt;();
 body.put("foo", "abc");
 body.put("bar", 123);</pre>
-</div></div></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><span>and this Java route definition</span></td><td 
colspan="1" rowspan="1" class="confluenceTd"><div class="code panel pdl 
conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><span>and this Java route definition</span></td><td 
colspan="1" rowspan="1" class="confluenceTd"><div class="code panel pdl 
conf-macro output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">// Camel version &lt; 2.15
 CsvDataFormat oldCSV = new CsvDataFormat();
 oldCSV.setDelimiter("|");
@@ -367,7 +367,7 @@ from("direct:start")
 from("direct:start")
     .marshal(new CsvDataFormat().setDelimiter('|'))
     .to("mock:result")</pre>
-</div></div></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><span>or this XML route definition</span></td><td 
colspan="1" rowspan="1" class="confluenceTd"><div class="code panel pdl 
conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><span>or this XML route definition</span></td><td 
colspan="1" rowspan="1" class="confluenceTd"><div class="code panel pdl 
conf-macro output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">&lt;route&gt;
   &lt;from uri="direct:start" /&gt;
   &lt;marshal&gt;
@@ -375,9 +375,9 @@ from("direct:start")
   &lt;/marshal&gt;
   &lt;to uri="mock:result" /&gt;
 &lt;/route&gt;</pre>
-</div></div></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><span>then it will produce</span></td><td colspan="1" 
rowspan="1" class="confluenceTd"><div class="code panel pdl conf-macro 
output-block" data-hasbody="true" data-macro-name="code" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><span>then it will produce</span></td><td colspan="1" 
rowspan="1" class="confluenceTd"><div class="code panel pdl conf-macro 
output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; 
gutter: false; theme: Default" data-theme="Default">abc|123</pre>
-</div></div></td></tr></tbody></table></div><h3 
id="BookDataFormatAppendix-UsingautogenColumns,configRefandstrategyRefattributesinsideXMLDSL">Using
 autogenColumns, configRef and strategyRef attributes inside XML 
DSL</h3><p><strong>Available as of Camel 2.9.2 / 2.10 and deleted for Camel 
2.15</strong></p><p>You can customize the CSV <a shape="rect" 
href="data-format.html">Data Format</a> to make use of your own 
<code>CSVConfig</code> and/or <code>CSVStrategy</code>. Also note that the 
default value of the <code>autogenColumns</code> option is true. The following 
example should illustrate this customization.</p><div class="code panel pdl 
conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div></td></tr></tbody></table></div><h3 
id="BookDataFormatAppendix-UsingautogenColumns,configRefandstrategyRefattributesinsideXMLDSL">Using
 autogenColumns, configRef and strategyRef attributes inside XML 
DSL</h3><p><strong>Available as of Camel 2.9.2 / 2.10 and deleted for Camel 
2.15</strong></p><p>You can customize the CSV <a shape="rect" 
href="data-format.html">Data Format</a> to make use of your own 
<code>CSVConfig</code> and/or <code>CSVStrategy</code>. Also note that the 
default value of the <code>autogenColumns</code> option is true. The following 
example should illustrate this customization.</p><div class="code panel pdl 
conf-macro output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">&lt;route&gt;
   &lt;from uri="direct:start" /&gt;
   &lt;marshal&gt;
@@ -405,7 +405,7 @@ from("direct:start")
   &lt;property name="staticField" 
value="org.apache.commons.csv.CSVStrategy.EXCEL_STRATEGY" /&gt;
 &lt;/bean&gt;
 </pre>
-</div></div><h3 
id="BookDataFormatAppendix-UsingskipFirstLineoptionwhileunmarshaling">Using 
skipFirstLine option while unmarshaling</h3><p><strong>Available as of Camel 
2.10 and deleted for Camel 2.15</strong></p><p>You can instruct the CSV <a 
shape="rect" href="data-format.html">Data Format</a> to skip the first line 
which contains the CSV headers. Using the Spring/XML DSL:</p><div class="code 
panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 
id="BookDataFormatAppendix-UsingskipFirstLineoptionwhileunmarshaling">Using 
skipFirstLine option while unmarshaling</h3><p><strong>Available as of Camel 
2.10 and deleted for Camel 2.15</strong></p><p>You can instruct the CSV <a 
shape="rect" href="data-format.html">Data Format</a> to skip the first line 
which contains the CSV headers. Using the Spring/XML DSL:</p><div class="code 
panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">&lt;route&gt;
   &lt;from uri="direct:start" /&gt;
   &lt;unmarshal&gt;
@@ -414,7 +414,7 @@ from("direct:start")
   &lt;to uri="bean:myCsvHandler?method=doHandleCsv" /&gt;
 &lt;/route&gt;
 </pre>
-</div></div><p>Or the Java DSL:</p><div class="code panel pdl conf-macro 
output-block" data-hasbody="true" data-macro-name="code" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Or the Java DSL:</p><div class="code panel pdl conf-macro 
output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">CsvDataFormat csv = new 
CsvDataFormat();
 csv.setSkipFirstLine(true);
 
@@ -422,7 +422,7 @@ from("direct:start")
   .unmarshal(csv)
 .to("bean:myCsvHandler?method=doHandleCsv");
 </pre>
-</div></div><h3 
id="BookDataFormatAppendix-Unmarshalingwithapipeasdelimiter">Unmarshaling with 
a pipe as delimiter</h3><p>Using the Spring/XML DSL:</p><div class="code panel 
pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 
id="BookDataFormatAppendix-Unmarshalingwithapipeasdelimiter">Unmarshaling with 
a pipe as delimiter</h3><p>Using the Spring/XML DSL:</p><div class="code panel 
pdl conf-macro output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">&lt;route&gt;
   &lt;from uri="direct:start" /&gt;
   &lt;unmarshal&gt;
@@ -431,7 +431,7 @@ from("direct:start")
   &lt;to uri="bean:myCsvHandler?method=doHandleCsv" /&gt;
 &lt;/route&gt;
 </pre>
-</div></div><p>Or the Java DSL:</p><div class="code panel pdl conf-macro 
output-block" data-hasbody="true" data-macro-name="code" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Or the Java DSL:</p><div class="code panel pdl conf-macro 
output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">CsvDataFormat csv = new 
CsvDataFormat();
 CSVStrategy strategy = CSVStrategy.DEFAULT_STRATEGY;
 strategy.setDelimiter('|');
@@ -441,7 +441,7 @@ from("direct:start")
   .unmarshal(csv)
   .to("bean:myCsvHandler?method=doHandleCsv");
 </pre>
-</div></div><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">CsvDataFormat csv = new 
CsvDataFormat();
 csv.setDelimiter("|");
 
@@ -449,7 +449,7 @@ from("direct:start")
   .unmarshal(csv)
   .to("bean:myCsvHandler?method=doHandleCsv");
 </pre>
-</div></div><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">CsvDataFormat csv = new 
CsvDataFormat();
 CSVConfig csvConfig = new CSVConfig();
 csvConfig.setDelimiter(";");
@@ -459,11 +459,11 @@ from("direct:start")
   .unmarshal(csv)
   .to("bean:myCsvHandler?method=doHandleCsv");
 </pre>
-</div></div><div class="confluence-information-macro 
confluence-information-macro-information conf-macro output-block" 
data-hasbody="true" data-macro-name="info"><p class="title">Issue in 
CSVConfig</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>It looks like that</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><div class="confluence-information-macro 
confluence-information-macro-information conf-macro output-block" 
data-hasbody="true" data-macro-name="info"><p class="title">Issue in 
CSVConfig</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>It looks like that</p><div 
class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">CSVConfig csvConfig = new 
CSVConfig();
 csvConfig.setDelimiter(';');
 </pre>
-</div></div><p>doesn't work. You have to set the delimiter as a 
String!</p></div></div><h3 
id="BookDataFormatAppendix-Dependencies.3">Dependencies</h3><p>To use CSV in 
your Camel routes you need to add a dependency on <strong>camel-csv</strong>, 
which implements this data format.</p><p>If you use Maven you can just add the 
following to your pom.xml, substituting the version number for the latest and 
greatest release (see <a shape="rect" href="download.html">the download page 
for the latest versions</a>).</p><div class="code panel pdl conf-macro 
output-block" data-hasbody="true" data-macro-name="code" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><p>doesn't work. You have to set the delimiter as a 
String!</p></div></div><h3 
id="BookDataFormatAppendix-Dependencies.3">Dependencies</h3><p>To use CSV in 
your Camel routes you need to add a dependency on <strong>camel-csv</strong>, 
which implements this data format.</p><p>If you use Maven you can just add the 
following to your pom.xml, substituting the version number for the latest and 
greatest release (see <a shape="rect" href="download.html">the download page 
for the latest versions</a>).</p><div class="code panel pdl conf-macro 
output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">&lt;dependency&gt;
   &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
   &lt;artifactId&gt;camel-csv&lt;/artifactId&gt;
@@ -480,7 +480,7 @@ csvConfig.setDelimiter(';');
 <h3 id="BookDataFormatAppendix-Marshal">Marshal</h3>
 <p>In this example we marshal the file content to String object in UTF-8 
encoding.</p>
 
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
 from("file://data.csv").marshal().string("UTF-8").to("jms://myqueue");
 </pre>
@@ -489,7 +489,7 @@ from("file://data.csv").marshal().string
 <h3 id="BookDataFormatAppendix-Unmarshal">Unmarshal</h3>
 <p>In this example we unmarshal the payload from the JMS queue to a String 
object using UTF-8 encoding, before its processed by the newOrder processor. 
</p>
 
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
 from("jms://queue/order").unmarshal().string("UTF-8").processRef("newOrder");
 </pre>
@@ -498,17 +498,17 @@ from("jms://queue/order").unmarshal().st
 <h3 id="BookDataFormatAppendix-Dependencies.4">Dependencies</h3>
 
 <p>This data format is provided in <strong>camel-core</strong> so no 
additional dependencies is needed.</p></div>
-<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h3 id="BookDataFormatAppendix-HL7DataFormat">HL7 
DataFormat</h3><p>The <a shape="rect" href="hl7.html">HL7</a> component ships 
with a HL7 data format that can be used to marshal or unmarshal HL7 model 
objects.</p><ul class="alternate"><li><code>marshal</code> = from Message to 
byte stream (can be used when responding using the HL7 MLLP 
codec)</li><li><code>unmarshal</code> = from byte stream to Message (can be 
used when receiving streamed data from the HL7 MLLP</li></ul><p>To use the data 
format, simply instantiate an instance and invoke the marshal or unmarshal 
operation in the route builder:</p><div class="code panel pdl conf-macro 
output-block" data-hasbody="true" data-macro-name="code" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h3 id="BookDataFormatAppendix-HL7DataFormat">HL7 
DataFormat</h3><p>The <a shape="rect" href="hl7.html">HL7</a> component ships 
with a HL7 data format that can be used to marshal or unmarshal HL7 model 
objects.</p><ul class="alternate"><li><code>marshal</code> = from Message to 
byte stream (can be used when responding using the HL7 MLLP 
codec)</li><li><code>unmarshal</code> = from byte stream to Message (can be 
used when receiving streamed data from the HL7 MLLP</li></ul><p>To use the data 
format, simply instantiate an instance and invoke the marshal or unmarshal 
operation in the route builder:</p><div class="code panel pdl conf-macro 
output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">  DataFormat hl7 = new 
HL7DataFormat();
   ...
   from("direct:hl7in").marshal(hl7).to("jms:queue:hl7out");
 </pre>
-</div></div><p>In the sample above, the HL7 is marshalled from a HAPI Message 
object to a byte stream and put on a JMS queue.<br clear="none"> The next 
example is the opposite:</p><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><p>In the sample above, the HL7 is marshalled from a HAPI Message 
object to a byte stream and put on a JMS queue.<br clear="none"> The next 
example is the opposite:</p><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">  DataFormat hl7 = new 
HL7DataFormat();
   ...
   from("jms:queue:hl7out").unmarshal(hl7).to("patientLookupService");
 </pre>
-</div></div><p>Here we unmarshal the byte stream into a HAPI Message object 
that is passed to our patient lookup service.</p><div 
class="confluence-information-macro confluence-information-macro-tip conf-macro 
output-block" data-hasbody="true" data-macro-name="tip"><p 
class="title">Serializable messages</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>As of HAPI 2.0 (used by 
<strong>Camel 2.11</strong>), the HL7v2 model classes are fully serializable. 
So you can put HL7v2 messages directly into a JMS queue (i.e. without calling 
<code>marshal()</code> and read them again directly from the queue (i.e. 
without calling <code>unmarshal()</code>.</p></div></div><div 
class="confluence-information-macro confluence-information-macro-note 
conf-macro output-block" data-hasbody="true" data-macro-name="note"><p 
class="title">Segment separators</p><span class="aui-icon aui-icon-small 
aui-iconf
 ont-warning confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>As of <strong>Camel 2.11</strong>, 
<code>unmarshal</code> does not automatically fix segment separators anymore by 
converting <code>\n</code> to <code>\r</code>. If you <br clear="none"> need 
this conversion, <code>org.apache.camel.component.hl7.HL7#convertLFToCR</code> 
provides a handy <code>Expression</code> for this purpose.</p></div></div><div 
class="confluence-information-macro confluence-information-macro-note 
conf-macro output-block" data-hasbody="true" data-macro-name="note"><p 
class="title">Charset</p><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>As of <strong>Camel 
2.14.1</strong>, both <code>marshal and unmarshal</code> evaluate the charset 
provided in the field&#160;<code>MSH-18</code>. If this field is empty, by 
default the charset contained in the corresponding C
 amel charset property/header is assumed. You can even change this default 
behavior by overriding the <code>guessCharsetName</code> method when inheriting 
from the <code>HL7DataFormat</code> class.</p></div></div><p>&#160;</p><p>There 
is a shorthand syntax in Camel for well-known data formats that are commonly 
used.<br clear="none"> Then you don't need to create an instance of the 
<code>HL7DataFormat</code> object:</p><div class="code panel pdl conf-macro 
output-block" data-hasbody="true" data-macro-name="code" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Here we unmarshal the byte stream into a HAPI Message object 
that is passed to our patient lookup service.</p><div 
class="confluence-information-macro confluence-information-macro-tip conf-macro 
output-block" data-hasbody="true" data-macro-name="tip"><p 
class="title">Serializable messages</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>As of HAPI 2.0 (used by 
<strong>Camel 2.11</strong>), the HL7v2 model classes are fully serializable. 
So you can put HL7v2 messages directly into a JMS queue (i.e. without calling 
<code>marshal()</code> and read them again directly from the queue (i.e. 
without calling <code>unmarshal()</code>.</p></div></div><div 
class="confluence-information-macro confluence-information-macro-note 
conf-macro output-block" data-hasbody="true" data-macro-name="note"><p 
class="title">Segment separators</p><span class="aui-icon aui-icon-small 
aui-iconf
 ont-warning confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>As of <strong>Camel 2.11</strong>, 
<code>unmarshal</code> does not automatically fix segment separators anymore by 
converting <code>\n</code> to <code>\r</code>. If you <br clear="none"> need 
this conversion, <code>org.apache.camel.component.hl7.HL7#convertLFToCR</code> 
provides a handy <code>Expression</code> for this purpose.</p></div></div><div 
class="confluence-information-macro confluence-information-macro-note 
conf-macro output-block" data-hasbody="true" data-macro-name="note"><p 
class="title">Charset</p><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>As of <strong>Camel 
2.14.1</strong>, both <code>marshal and unmarshal</code> evaluate the charset 
provided in the field&#160;<code>MSH-18</code>. If this field is empty, by 
default the charset contained in the corresponding C
 amel charset property/header is assumed. You can even change this default 
behavior by overriding the <code>guessCharsetName</code> method when inheriting 
from the <code>HL7DataFormat</code> class.</p></div></div><p>&#160;</p><p>There 
is a shorthand syntax in Camel for well-known data formats that are commonly 
used.<br clear="none"> Then you don't need to create an instance of the 
<code>HL7DataFormat</code> object:</p><div class="code panel pdl conf-macro 
output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">  
from("direct:hl7in").marshal().hl7().to("jms:queue:hl7out");
   from("jms:queue:hl7out").unmarshal().hl7().to("patientLookupService");
 </pre>
@@ -531,7 +531,7 @@ The result of the operation will contain
 
 <h3 id="BookDataFormatAppendix-Usage">Usage</h3>
 <p>To use the data format, simply instantiate an instance and invoke the 
marshal or unmarshal operation in the route builder:</p>
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
   FlatpackDataFormat fp = new FlatpackDataFormat();
   fp.setDefinition(new ClassPathResource("INVENTORY-Delimited.pzmap.xml"));
@@ -541,7 +541,7 @@ The result of the operation will contain
 </div></div>
 <p>The sample above will read files from the <code>order/in</code> folder and 
unmarshal the input using the Flatpack configuration file 
<code>INVENTORY-Delimited.pzmap.xml</code> that configures the structure of the 
files. The result is a <code>DataSetList</code> object we store on the SEDA 
queue.</p>
 
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
 FlatpackDataFormat df = new FlatpackDataFormat();
 df.setDefinition(new ClassPathResource("PEOPLE-FixedLength.pzmap.xml"));
@@ -559,7 +559,7 @@ from("seda:people").marshal(df).convertB
 
 <p>If you use maven you could just add the following to your pom.xml, 
substituting the version number for the latest &amp; greatest release (see <a 
shape="rect" href="download.html">the download page for the latest 
versions</a>).</p>
 
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
 &lt;dependency&gt;
   &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
@@ -726,13 +726,13 @@ getContext().getProperties().put("CamelJ
   &lt;version&gt;2.10.0&lt;/version&gt;
 &lt;/dependency&gt;
 </plain-text-body></div>
-<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include">The Zip <a shape="rect" href="data-format.html">Data 
Format</a> is a message compression and de-compression format. Messages 
marshalled using Zip compression can be unmarshalled using Zip 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. It 
facilitates more optimal use of network bandwidth while incurring a small cost 
in order to compress and decompress payloads at the endpoint.<div 
class="confluence-information-macro confluence-information-macro-information 
conf-macro output-block" data-hasbody="true" data-macro-name="info"><p 
class="title">About using with Files</p><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>The Zip data format, does not 
(yet) have special support for files. Which means that
  when using big files, the entire file content is loaded into memory.<br 
clear="none"> This is subject to change in the future, to allow a streaming 
based solution to have a low memory footprint.</p></div></div><h3 
id="BookDataFormatAppendix-Options.2">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"> 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; - 
<code>Deflater.BEST_COMPRESSION</code> <br clear="none" 
class="atl-forced-newline"> 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; - 
<code>Deflater.DEFAULT_COMPRESSION</code> <br clear="none" 
class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> If 
compressionLevel is not explicitly specified the compressionLevel employed is 
<code>Deflater.DEFAULT_COMPRESSION</code></p></td></tr></tbody></table></div><h3
 id="BookDataFormatAppendix-Marshal.1">Marshal</h3><p>In this example we 
marshal a regular text/XML payload to a compressed payload employing zip 
compression <code>Deflater.BEST_COMPRESSION</code> and send it an ActiveMQ 
queue called MY_QUEUE.</p><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include">The Zip <a shape="rect" href="data-format.html">Data 
Format</a> is a message compression and de-compression format. Messages 
marshalled using Zip compression can be unmarshalled using Zip 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. It 
facilitates more optimal use of network bandwidth while incurring a small cost 
in order to compress and decompress payloads at the endpoint.<div 
class="confluence-information-macro confluence-information-macro-information 
conf-macro output-block" data-hasbody="true" data-macro-name="info"><p 
class="title">About using with Files</p><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>The Zip data format, does not 
(yet) have special support for files. Which means that
  when using big files, the entire file content is loaded into memory.<br 
clear="none"> This is subject to change in the future, to allow a streaming 
based solution to have a low memory footprint.</p></div></div><h3 
id="BookDataFormatAppendix-Options.2">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"> 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; - 
<code>Deflater.BEST_COMPRESSION</code> <br clear="none" 
class="atl-forced-newline"> 
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; - 
<code>Deflater.DEFAULT_COMPRESSION</code> <br clear="none" 
class="atl-forced-newline"> <br clear="none" class="atl-forced-newline"> If 
compressionLevel is not explicitly specified the compressionLevel employed is 
<code>Deflater.DEFAULT_COMPRESSION</code></p></td></tr></tbody></table></div><h3
 id="BookDataFormatAppendix-Marshal.1">Marshal</h3><p>In this example we 
marshal a regular text/XML payload to a compressed payload employing zip 
compression <code>Deflater.BEST_COMPRESSION</code> and send it an ActiveMQ 
queue called MY_QUEUE.</p><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" 
data-theme="Default">from("direct:start").marshal().zip(Deflater.BEST_COMPRESSION).to("activemq:queue:MY_QUEUE");
 </pre>
-</div></div><p>Alternatively if you would like to use the default setting you 
could send it as</p><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><p>Alternatively if you would like to use the default setting you 
could send it as</p><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" 
data-theme="Default">from("direct:start").marshal().zip().to("activemq:queue:MY_QUEUE");
 </pre>
-</div></div><h3 id="BookDataFormatAppendix-Unmarshal.1">Unmarshal</h3><p>In 
this example we unmarshal&#160;a zipped&#160;payload from an ActiveMQ queue 
called MY_QUEUE&#160;to its original format,&#160;and forward it 
for&#160;processing&#160;to the UnZippedMessageProcessor. Note that the 
compression Level employed during the marshalling should be identical to the 
one employed during unmarshalling to avoid errors.</p><div class="code panel 
pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookDataFormatAppendix-Unmarshal.1">Unmarshal</h3><p>In 
this example we unmarshal&#160;a zipped&#160;payload from an ActiveMQ queue 
called MY_QUEUE&#160;to its original format,&#160;and forward it 
for&#160;processing&#160;to the UnZippedMessageProcessor. Note that the 
compression Level employed during the marshalling should be identical to the 
one employed during unmarshalling to avoid errors.</p><div class="code panel 
pdl conf-macro output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" 
data-theme="Default">from("activemq:queue:MY_QUEUE").unmarshal().zip().process(new
 UnZippedMessageProcessor());&#160;
 </pre>
 </div></div><h3 
id="BookDataFormatAppendix-Dependencies.6">Dependencies</h3><p>This data format 
is provided in <strong>camel-core</strong> so no additional dependencies are 
needed.</p></div>
@@ -743,12 +743,12 @@ getContext().getProperties().put("CamelJ
 <div class="confluence-information-macro confluence-information-macro-tip 
conf-macro output-block" data-hasbody="true" data-macro-name="tip"><p 
class="title">Camel eats our own -dog food- soap</p><span class="aui-icon 
aui-icon-small aui-iconfont-approve confluence-information-macro-icon"> 
</span><div class="confluence-information-macro-body">
 <p>We had some issues in our pdf <a shape="rect" href="manual.html">Manual</a> 
where we had some strange symbols. So <a shape="rect" class="external-link" 
href="http://janstey.blogspot.com/"; rel="nofollow">Jonathan</a> used this data 
format to tidy up the wiki html pages that are used as base for rendering the 
pdf manuals. And then the mysterious symbols vanished.</p></div></div> 
 
-<p><a shape="rect" href="tidymarkup.html">TidyMarkup</a> only supports the 
<strong>unmarshal</strong> operation as we really don't want to turn well 
formed HTML into ugly HTML <img class="emoticon emoticon-smile" 
src="https://cwiki.apache.org/confluence/s/en_GB/7701/d7b403a44466e5e8970db7530201039d865e79e1/_/images/icons/emoticons/smile.svg";
 data-emoticon-name="smile" alt="(smile)"></p>
+<p><a shape="rect" href="tidymarkup.html">TidyMarkup</a> only supports the 
<strong>unmarshal</strong> operation as we really don't want to turn well 
formed HTML into ugly HTML <img class="emoticon emoticon-smile" 
src="https://cwiki.apache.org/confluence/s/en_GB/7901/17fbf59dc6f69bee0caf86e0cbbd7fb3bd9d8b4a/_/images/icons/emoticons/smile.svg";
 data-emoticon-name="smile" alt="(smile)"></p>
 
 <h3 id="BookDataFormatAppendix-JavaDSLExample">Java DSL Example</h3>
 <p>An example where the consumer provides some HTML</p>
 
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
 from("file://site/inbox").unmarshal().tidyMarkup().to("file://site/blogs");
 </pre>
@@ -757,7 +757,7 @@ from("file://site/inbox").unmarshal().ti
 <h3 id="BookDataFormatAppendix-SpringXMLExample">Spring XML Example</h3>
 <p>The following example shows how to use <a shape="rect" 
href="tidymarkup.html">TidyMarkup</a> to unmarshal using Spring</p>
 
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
 &lt;camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"&gt;
   &lt;route&gt;
@@ -778,7 +778,7 @@ from("file://site/inbox").unmarshal().ti
 
 <p>If you use maven you could just add the following to your pom.xml, 
substituting the version number for the latest &amp; greatest release (see <a 
shape="rect" href="download.html">the download page for the latest 
versions</a>).</p>
 
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
 &lt;dependency&gt;
   &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
@@ -787,67 +787,67 @@ from("file://site/inbox").unmarshal().ti
 &lt;/dependency&gt;
 </pre>
 </div></div></div>

[... 730 lines stripped ...]

Reply via email to