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">
<bean id="myJaxb"
class="org.apache.camel.model.dataformat.JaxbDataFormat">
<property name="prettyPrint" value="true"/>
@@ -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 & 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">
<dependency>
<groupId>org.apache.camel</groupId>
@@ -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 <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> 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<Map> when unmarshalling instead of
List<List>.</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 <code><header></code> 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 <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> 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<Map> when unmarshalling instead of
List<List>.</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 <code><header></code> 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"><csv >
<header>orderId</header>
<header>amount</header>
</csv></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 <code>false</code> 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 <code>false</code> 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 <code>false</code> 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 <code>false</code> 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<String, Object>
body = new LinkedHashMap<>();
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"><route>
<from uri="direct:start" />
<marshal>
@@ -319,31 +319,31 @@ body.put("bar", 123);</pre>
</marshal>
<to uri="mock:result" />
</route></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&noop=true")
.unmarshal().csv()
.to("mock:daltons");</pre>
-</div></div><p>The resulting message will contain a
<code>List<List<String>></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<List<String>></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<List<String>> data =
(List<List<String>>) exchange.getIn().getBody();
for (List<String> 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<Map>toCSV">Marshalling a
List<Map> 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<Map<String, Object>></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<Map>toCSV">Marshalling a
List<Map> 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<Map<String, Object>></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<List<String>> 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"><route>
<!-- poll every 10 seconds -->
<from
uri="file:///some/path/to/pickup/csvfiles?delete=true&amp;consumer.delay=10000"
/>
@@ -351,11 +351,11 @@ public void doHandleCsvData(List<List
<to uri="bean:myCsvHandler?method=doHandleCsvData" />
</route>
</pre>
-</div></div><h3
id="BookDataFormatAppendix-Marshalingwithapipeasdelimiter">Marshaling with a
pipe as delimiter</h3><p> </p><p> </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> </p><p> </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<String, Object>
body = new LinkedHashMap<>();
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 < 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"><route>
<from uri="direct:start" />
<marshal>
@@ -375,9 +375,9 @@ from("direct:start")
</marshal>
<to uri="mock:result" />
</route></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"><route>
<from uri="direct:start" />
<marshal>
@@ -405,7 +405,7 @@ from("direct:start")
<property name="staticField"
value="org.apache.commons.csv.CSVStrategy.EXCEL_STRATEGY" />
</bean>
</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"><route>
<from uri="direct:start" />
<unmarshal>
@@ -414,7 +414,7 @@ from("direct:start")
<to uri="bean:myCsvHandler?method=doHandleCsv" />
</route>
</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"><route>
<from uri="direct:start" />
<unmarshal>
@@ -431,7 +431,7 @@ from("direct:start")
<to uri="bean:myCsvHandler?method=doHandleCsv" />
</route>
</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"><dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-csv</artifactId>
@@ -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 <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> </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 <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> </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 & 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">
<dependency>
<groupId>org.apache.camel</groupId>
@@ -726,13 +726,13 @@ getContext().getProperties().put("CamelJ
<version>2.10.0</version>
</dependency>
</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 
<br clear="none" class="atl-forced-newline">
          -
<code>Deflater.BEST_SPEED</code>
<br clear="none" class="atl-forced-newline">
          -
<code>Deflater.BEST_COMPRESSION</code> <br clear="none"
class="atl-forced-newline">
          -
<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 
<br clear="none" class="atl-forced-newline">
          -
<code>Deflater.BEST_SPEED</code>
<br clear="none" class="atl-forced-newline">
          -
<code>Deflater.BEST_COMPRESSION</code> <br clear="none"
class="atl-forced-newline">
          -
<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 a zipped payload from an ActiveMQ queue
called MY_QUEUE to its original format, and forward it
for processing 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 a zipped payload from an ActiveMQ queue
called MY_QUEUE to its original format, and forward it
for processing 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()); 
</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">
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route>
@@ -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 & 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">
<dependency>
<groupId>org.apache.camel</groupId>
@@ -787,67 +787,67 @@ from("file://site/inbox").unmarshal().ti
</dependency>
</pre>
</div></div></div>
[... 730 lines stripped ...]