You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2019/03/31 15:23:09 UTC

svn commit: r1042911 [22/48] - in /websites/production/camel/content: ./ 2007/08/17/ 2008/04/08/ 2008/04/28/ 2009/01/19/ 2009/10/26/ 2012/01/17/ 2012/03/01/ 2019/03/ 2019/03/31/

Modified: websites/production/camel/content/cronscheduledroutepolicy.html
==============================================================================
--- websites/production/camel/content/cronscheduledroutepolicy.html (original)
+++ websites/production/camel/content/cronscheduledroutepolicy.html Sun Mar 31 15:23:07 2019
@@ -88,7 +88,7 @@
 	<tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 id="CronScheduledRoutePolicy-CronScheduledRoutePolicy">CronScheduledRoutePolicy</h2><p><strong>Available as of Camel version 2.6</strong></p><p>CronScheduledRoutePolicy is a <a shape="rect" href="scheduledroutepolicy.html">ScheduledRoutePolicy</a> that facilitates route activation, de-activation, suspension and resumption of routes based on a <a shape="rect" href="quartz.html">Quartz</a> <code>CronTrigger</code>.</p><p>Maven users will need to add a camel-quartz dependency to their <code>pom.xml</code> to avail this capability.</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="wiki-content maincontent"><h2 id="CronScheduledRoutePolicy-CronScheduledRoutePolicy">CronScheduledRoutePolicy</h2><p><strong>Available as of Camel version 2.6</strong></p><p>CronScheduledRoutePolicy is a <a shape="rect" href="scheduledroutepolicy.html">ScheduledRoutePolicy</a> that facilitates route activation, de-activation, suspension and resumption of routes based on a <a shape="rect" href="quartz.html">Quartz</a> <code>CronTrigger</code>.</p><p>Maven users will need to add a camel-quartz dependency to their <code>pom.xml</code> to avail this capability.</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-quartz&lt;/artifactId&gt;
@@ -96,13 +96,13 @@
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 </pre>
-</div></div><div class="confluence-information-macro confluence-information-macro-tip conf-macro output-block" data-hasbody="true" data-macro-name="tip"><p class="title">Relationship to the [Quartz] component</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>All Scheduled route policies share the scheduler created by the Quartz component. In this way, scheduler, jobs and triggers can be managed in a common and consistent way.</p></div></div><div class="confluence-information-macro confluence-information-macro-tip conf-macro output-block" data-hasbody="true" data-macro-name="tip"><p class="title">Relationship to the [Quartz2] component</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>From Camel 2.12.2 onwards you can also make use of the <a shape="rect" href="quartz2.html">Quart
 z2</a> based implementation of this route policy.</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-tip conf-macro output-block" data-hasbody="true" data-macro-name="tip"><p class="title">Relationship to the [Quartz] component</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>All Scheduled route policies share the scheduler created by the Quartz component. In this way, scheduler, jobs and triggers can be managed in a common and consistent way.</p></div></div><div class="confluence-information-macro confluence-information-macro-tip conf-macro output-block" data-hasbody="true" data-macro-name="tip"><p class="title">Relationship to the [Quartz2] component</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>From Camel 2.12.2 onwards you can also make use of the <a shape="rect" href="quartz2.html">Quart
 z2</a> based implementation of this route policy.</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;bean id="myStartPolicy" class="org.apache.camel.routepolicy.quartz2.CronScheduledRoutePolicy"&gt;
   &lt;!-- start every 5min from monday to saturday --&gt;
   &lt;property name="routeStartTime" value="0 0/5 * ? * 1-6 *" /&gt;
 &lt;/bean&gt;
 </pre>
-</div></div><p>See <a shape="rect" href="cronscheduledroutepolicy.html">CronScheduledRoutePolicy description</a>.</p></div></div><h3 id="CronScheduledRoutePolicy-Howitworks">How it works</h3><p>In order to use a <a shape="rect" href="cronscheduledroutepolicy.html">CronScheduledRoutePolicy</a> it is necessary to instantiate an object of the type <code>org.apache.camel.routepolicy.quartz.CronScheduledRoutePolicy</code>.</p><p>In order to perform a route operation at a given time the following information must be provided.</p><ul><li><p>Starting a route</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Parameter Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>routeStartTime</p></td><
 td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the initial scheduled Date and time as a Cron Expression for route start</p></td></tr></tbody></table></div></li></ul><ul><li><p>Stopping a route</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Parameter Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>routeStopTime</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the initial scheduled Date and time as a C
 ron Expression for route stop</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>routeStopGracePeriod</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>10 seconds</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the time period to wait before initiating graceful route stop</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>routeStopTimeUnit</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>long</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>TimeUnit.MILLISECONDS</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the time unit for the grace period expressed as java.util.concurrent.TimeUnit</p></td></tr></tbody></table></div></li></ul><ul><li><p>Suspending a route</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Parameter Name</p></th><th colspan="1" rowspan="1" c
 lass="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>routeSuspendTime</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the initial scheduled Date and time as a Cron Expression for route suspension</p></td></tr></tbody></table></div></li></ul><ul><li><p>Resuming a route</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Parameter Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" 
 class="confluenceTd"><p>routeResumeTime</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the initial scheduled Date and time as a Cron Expression for route resumption</p></td></tr></tbody></table></div></li></ul><p>Once the <code>org.apache.camel.routepolicy.quartz.CronScheduledRoutePolicy</code> is created it can be wired into the camel route as follows</p><h3 id="CronScheduledRoutePolicy-Configuringthepolicy">Configuring the policy</h3><ul><li>In Java</li></ul><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>See <a shape="rect" href="cronscheduledroutepolicy.html">CronScheduledRoutePolicy description</a>.</p></div></div><h3 id="CronScheduledRoutePolicy-Howitworks">How it works</h3><p>In order to use a <a shape="rect" href="cronscheduledroutepolicy.html">CronScheduledRoutePolicy</a> it is necessary to instantiate an object of the type <code>org.apache.camel.routepolicy.quartz.CronScheduledRoutePolicy</code>.</p><p>In order to perform a route operation at a given time the following information must be provided.</p><ul><li><p>Starting a route</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Parameter Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>routeStartTime</p></td><
 td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the initial scheduled Date and time as a Cron Expression for route start</p></td></tr></tbody></table></div></li></ul><ul><li><p>Stopping a route</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Parameter Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>routeStopTime</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the initial scheduled Date and time as a C
 ron Expression for route stop</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>routeStopGracePeriod</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>int</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>10 seconds</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the time period to wait before initiating graceful route stop</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>routeStopTimeUnit</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>long</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>TimeUnit.MILLISECONDS</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the time unit for the grace period expressed as java.util.concurrent.TimeUnit</p></td></tr></tbody></table></div></li></ul><ul><li><p>Suspending a route</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Parameter Name</p></th><th colspan="1" rowspan="1" c
 lass="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>routeSuspendTime</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the initial scheduled Date and time as a Cron Expression for route suspension</p></td></tr></tbody></table></div></li></ul><ul><li><p>Resuming a route</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Parameter Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" 
 class="confluenceTd"><p>routeResumeTime</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the initial scheduled Date and time as a Cron Expression for route resumption</p></td></tr></tbody></table></div></li></ul><p>Once the <code>org.apache.camel.routepolicy.quartz.CronScheduledRoutePolicy</code> is created it can be wired into the camel route as follows</p><h3 id="CronScheduledRoutePolicy-Configuringthepolicy">Configuring the policy</h3><ul><li>In Java</li></ul><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"> 
 CronScheduledRoutePolicy startPolicy = new CronScheduledRoutePolicy();
 startPolicy.setRouteStartTime("*/3 * * * * ?");
@@ -111,7 +111,7 @@ from("direct:start")
     .routeId("testRoute").routePolicy(startPolicy).noAutoStartup()
     .to("mock:success");
 </pre>
-</div></div><ul><li>Using Spring</li></ul><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><ul><li>Using Spring</li></ul><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="startPolicy" class="org.apache.camel.routepolicy.quartz.CronScheduledRoutePolicy"&gt;
     &lt;property name="routeStartTime" value="*/3 * * * * ?"/&gt;
 &lt;/bean&gt;

Modified: websites/production/camel/content/csv.html
==============================================================================
--- websites/production/camel/content/csv.html (original)
+++ websites/production/camel/content/csv.html Sun Mar 31 15:23:07 2019
@@ -89,20 +89,20 @@
 	<tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 id="CSV-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="CSV-AvailableoptionsuntilCamel2.15">Available options until Camel 2.15</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"
 ><p>config</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>CSVConfig</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Can be used to set a custom <code>CSVConfig</code> object.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>strategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>CSVStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Can be used to set a custom <code>CSVStrategy</code>; the default is <code>CSVStrategy.DEFAULT_STRATEGY</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>autogenColumns</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Whether or not columns are auto-generated in the resulting CSV. The default value is <code>true</code>; subsequent messages use the previously created columns with new fields being added at the end of the line.</p></td></tr><tr><td colspan="1" rowspan="1" class="
 confluenceTd"><p>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 </span></span><span style="line-height: 1.4285715;">Sequential access CSV input through 
 an iterator which could avoid OOM exception when processing huge CSV file; </span><span>the default value is false </span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">useMaps</td><td colspan="1" rowspan="1" class="confluenceTd">boolean</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.13:</strong> Whether to use List&lt;Map&gt; when unmarshalling instead of List&lt;List&gt;.</td></tr></tbody></table></div><h3 id="CSV-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.DEFAULT</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>delimiter</code>
 </td><td colspan="1" rowspan="1" class="confluenceTd"><code>Character</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Overrides the delimiter of the reference format.</p><p>This option is <code>null</code> by defaut. <span>When </span><code>null</code><span> it keeps the value of the reference format which is </span><code>','</code><span> for </span><code>CSVFormat.DEFAULT</code><span>.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>escapeDisabled</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>boolean</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Disables the escape character of the reference format.</p><p>This option is <code>false</code> by default.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>escape</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>Character</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Overrides the escape character of th
 e reference format.</p><p>This option is <code>null</code> by default. <span>When </span><code>null</code><span> it keeps the value of the reference format which is </span><code>null</code><span> for </span><code>CSVFormat.DEFAULT</code><span>.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>headerDisabled</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>boolean</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Disables the header of the reference format.</p><p>This option is <code>false</code> by default.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>header</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>String[]</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Overrides the header of the reference format.</p><p>This option is <code>null</code> by default. <span>When </span><code>null</code><span> it keeps the value of the reference format which is </span><code>nul
 l</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="wiki-content maincontent"><h2 id="CSV-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="CSV-AvailableoptionsuntilCamel2.15">Available options until Camel 2.15</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"
 ><p>config</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>CSVConfig</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Can be used to set a custom <code>CSVConfig</code> object.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>strategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>CSVStrategy</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Can be used to set a custom <code>CSVStrategy</code>; the default is <code>CSVStrategy.DEFAULT_STRATEGY</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>autogenColumns</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>boolean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Whether or not columns are auto-generated in the resulting CSV. The default value is <code>true</code>; subsequent messages use the previously created columns with new fields being added at the end of the line.</p></td></tr><tr><td colspan="1" rowspan="1" class="
 confluenceTd"><p>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 </span></span><span style="line-height: 1.4285715;">Sequential access CSV input through 
 an iterator which could avoid OOM exception when processing huge CSV file; </span><span>the default value is false </span></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd">useMaps</td><td colspan="1" rowspan="1" class="confluenceTd">boolean</td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.13:</strong> Whether to use List&lt;Map&gt; when unmarshalling instead of List&lt;List&gt;.</td></tr></tbody></table></div><h3 id="CSV-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.DEFAULT</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>delimiter</code>
 </td><td colspan="1" rowspan="1" class="confluenceTd"><code>Character</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Overrides the delimiter of the reference format.</p><p>This option is <code>null</code> by defaut. <span>When </span><code>null</code><span> it keeps the value of the reference format which is </span><code>','</code><span> for </span><code>CSVFormat.DEFAULT</code><span>.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>escapeDisabled</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>boolean</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Disables the escape character of the reference format.</p><p>This option is <code>false</code> by default.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>escape</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>Character</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Overrides the escape character of th
 e reference format.</p><p>This option is <code>null</code> by default. <span>When </span><code>null</code><span> it keeps the value of the reference format which is </span><code>null</code><span> for </span><code>CSVFormat.DEFAULT</code><span>.</span></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>headerDisabled</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>boolean</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Disables the header of the reference format.</p><p>This option is <code>false</code> by default.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>header</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>String[]</code></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Overrides the header of the reference format.</p><p>This option is <code>null</code> by default. <span>When </span><code>null</code><span> it keeps the value of the reference format which is </span><code>nul
 l</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="CSV-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="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></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="CSV-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="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">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;
@@ -110,31 +110,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="CSV-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="CSV-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="CSV-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="CSV-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="CSV-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="CSV-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;
@@ -142,11 +142,11 @@ public void doHandleCsvData(List&lt;List
         &lt;to uri="bean:myCsvHandler?method=doHandleCsvData" /&gt;
 &lt;/route&gt;
 </pre>
-</div></div><h3 id="CSV-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="CSV-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("|");
@@ -158,7 +158,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;
@@ -166,9 +166,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="CSV-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="CSV-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;
@@ -196,7 +196,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="CSV-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="CSV-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;
@@ -205,7 +205,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);
 
@@ -213,7 +213,7 @@ from("direct:start")
   .unmarshal(csv)
 .to("bean:myCsvHandler?method=doHandleCsv");
 </pre>
-</div></div><h3 id="CSV-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="CSV-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;
@@ -222,7 +222,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('|');
@@ -232,7 +232,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("|");
 
@@ -240,7 +240,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(";");
@@ -250,11 +250,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="CSV-Dependencies">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="CSV-Dependencies">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;

Modified: websites/production/camel/content/cxf-async-example.html
==============================================================================
--- websites/production/camel/content/cxf-async-example.html (original)
+++ websites/production/camel/content/cxf-async-example.html Sun Mar 31 15:23:07 2019
@@ -102,14 +102,14 @@
 <h3 id="CXFAsyncExample-Running">Running</h3>
 
 <p>You will need to compile this example first:</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">
   mvn compile
 </pre>
 </div></div>
 
 <p>The example should run if you type:</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">
   mvn exec:java -PCamelServer
 
@@ -123,7 +123,7 @@
 <p>When the client is running it outputs all requests and responses on the screen.</p>
 
 <p>As the client is single threaded it will send the messages in order, e.g. from 0 to 99.</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">
 [          org.apache.camel.example.client.CamelClient.main()] +++ request +++      INFO  Exchange[BodyType:java.util.ArrayList, Body:[org.apache.camel.example.reportincident.InputReportIncident@df2925]]
 [          org.apache.camel.example.client.CamelClient.main()] +++ request +++      INFO  Exchange[BodyType:java.util.ArrayList, Body:[org.apache.camel.example.reportincident.InputReportIncident@e89199]]
@@ -134,7 +134,7 @@
 </div></div>
 
 <p>As the HTTP server is simulating some time to process each message its replies will likely come after all the client have send all 100 messages. When they arrive they come back out of order</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">
 [    Camel thread 7: ToAsync[cxf:bean:reportIncidentEndpoint]] +++  reply  +++      INFO  Exchange[BodyType:String, Body:7 = OK]
 [    Camel thread 3: ToAsync[cxf:bean:reportIncidentEndpoint]] +++  reply  +++      INFO  Exchange[BodyType:String, Body:9 = OK]
@@ -156,7 +156,7 @@
 
 <p>The output is then as expected a request, reply and so forth. And of course the throughput is much lower as we are only handle a single message at the time and blocked while waiting for the webserver reply.</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">
 ...
 [          org.apache.camel.example.client.CamelClient.main()] +++  reply  +++      INFO  Exchange[BodyType:String, Body:97 = OK]

Modified: websites/production/camel/content/cxf-example-osgi-blueprint.html
==============================================================================
--- websites/production/camel/content/cxf-example-osgi-blueprint.html (original)
+++ websites/production/camel/content/cxf-example-osgi-blueprint.html Sun Mar 31 15:23:07 2019
@@ -88,18 +88,18 @@
 	<tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 id="CXFExampleOSGiBlueprint-CXFExampleOSGiBlueprint">CXF Example OSGi Blueprint</h2><p><strong>Available as of Camel 2.8</strong></p><div class="confluence-information-macro confluence-information-macro-information conf-macro output-block" data-hasbody="true" data-macro-name="info"><p class="title">Spring-DM vs. OSGi Blueprint</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>This example uses OSGi Blueprint for OSGi. There is another <a shape="rect" href="cxf-example-osgi.html">CXF Example OSGi</a> that uses Spring-DM.</p></div></div><p>A simple example which receives web service calls (via a CXF consumer, using bean binding)<br clear="none"> and writes these requests into the file system. It's not a very useful use case, but the goal<br clear="none"> of this example is to show you how you can use the CXF consumer component in an OSGI<br cle
 ar="none"> environment with the OSGI HTTP service. If your target container is Apache Karaf or Apache<br clear="none"> ServiceMix, you can use PAX Web to setup and start an OSGI HTTP service. All Camel<br clear="none"> bundles using a Camel CXF consumer can use this HTTP service without needing to start<br clear="none"> individual Jetty instances. Another advantage is that all provided services can now share<br clear="none"> the same port.</p><p>This example is located in the <code>examples/camel-example-cxf-blueprint</code> directory of the Camel distribution.<br clear="none"> There is a <code>README.txt</code> file with instructions how to run it.</p><p>You will need to compile this example first:</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="wiki-content maincontent"><h2 id="CXFExampleOSGiBlueprint-CXFExampleOSGiBlueprint">CXF Example OSGi Blueprint</h2><p><strong>Available as of Camel 2.8</strong></p><div class="confluence-information-macro confluence-information-macro-information conf-macro output-block" data-hasbody="true" data-macro-name="info"><p class="title">Spring-DM vs. OSGi Blueprint</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>This example uses OSGi Blueprint for OSGi. There is another <a shape="rect" href="cxf-example-osgi.html">CXF Example OSGi</a> that uses Spring-DM.</p></div></div><p>A simple example which receives web service calls (via a CXF consumer, using bean binding)<br clear="none"> and writes these requests into the file system. It's not a very useful use case, but the goal<br clear="none"> of this example is to show you how you can use the CXF consumer component in an OSGI<br cle
 ar="none"> environment with the OSGI HTTP service. If your target container is Apache Karaf or Apache<br clear="none"> ServiceMix, you can use PAX Web to setup and start an OSGI HTTP service. All Camel<br clear="none"> bundles using a Camel CXF consumer can use this HTTP service without needing to start<br clear="none"> individual Jetty instances. Another advantage is that all provided services can now share<br clear="none"> the same port.</p><p>This example is located in the <code>examples/camel-example-cxf-blueprint</code> directory of the Camel distribution.<br clear="none"> There is a <code>README.txt</code> file with instructions how to run it.</p><p>You will need to compile this example first:</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">  mvn install
 </pre>
-</div></div><p>To run the example on Apache ServiceMix 4.x or Apache Karaf 2.x</p><p>1) launch the server</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>To run the example on Apache ServiceMix 4.x or Apache Karaf 2.x</p><p>1) launch the server</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">  karaf.bat
   </pre>
-</div></div><p>Note for Karaf 2.2.x: <br clear="none"> a) edit the etc/jre.properties file to add the following packages to be exported</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>Note for Karaf 2.2.x: <br clear="none"> a) edit the etc/jre.properties file to add the following packages to be exported</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">      jre-1.6=, \
       com.sun.org.apache.xerces.internal.dom, \
       com.sun.org.apache.xerces.internal.jaxp, \
 </pre>
-</div></div><p>b) from the same file comment out the following exports already provided by the bundles<br clear="none"> that will be imported next: javax.xml.bind*, javax.jws*, javax.xml.soap*, javax.xml.ws*, <br clear="none"> javax.activation, javax.annotation, javax.xml.stream*.</p><p>2) Add features required</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>b) from the same file comment out the following exports already provided by the bundles<br clear="none"> that will be imported next: javax.xml.bind*, javax.jws*, javax.xml.soap*, javax.xml.ws*, <br clear="none"> javax.activation, javax.annotation, javax.xml.stream*.</p><p>2) Add features required</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"> 
    features:addUrl mvn:org.apache.camel.karaf/apache-camel/2.9.0/xml/features
    features:install war
@@ -108,13 +108,13 @@
    features:install camel-blueprint
    features:install camel-cxf
   </pre>
-</div></div><p>Note: Apache Camel 2.9.0 is being used above, but you should of course change the<br clear="none"> version number to the exact version of Camel being used.</p><p>3) Deploy the example bundle</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>Note: Apache Camel 2.9.0 is being used above, but you should of course change the<br clear="none"> version number to the exact version of Camel being used.</p><p>3) Deploy the example bundle</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">  osgi:install -s mvn:org.apache.camel/camel-example-cxf-blueprint
   </pre>
-</div></div><p>4) Verify that your service is available using the following url in the browser. <br clear="none"> We assume you're using Karaf's default PAX Web configuration which uses <br clear="none"> port 8181 for http. If you would like to use another port or https, change the configuration in <br clear="none"> ${KARAF_HOME}/etc/org.ops4j.pax.web.cfg. The immediate extension after the hostname and port ("cxf" in<br clear="none"> the below URL) is configured via the org.apache.cxf.osgi.cfg file (Please see <br clear="none"> <a shape="rect" class="external-link" href="http://team.ops4j.org/wiki//display/paxweb/Pax+Web" rel="nofollow">http://team.ops4j.org/wiki//display/paxweb/Pax+Web</a> for more information on PAX Web).</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>4) Verify that your service is available using the following url in the browser. <br clear="none"> We assume you're using Karaf's default PAX Web configuration which uses <br clear="none"> port 8181 for http. If you would like to use another port or https, change the configuration in <br clear="none"> ${KARAF_HOME}/etc/org.ops4j.pax.web.cfg. The immediate extension after the hostname and port ("cxf" in<br clear="none"> the below URL) is configured via the org.apache.cxf.osgi.cfg file (Please see <br clear="none"> <a shape="rect" class="external-link" href="http://team.ops4j.org/wiki//display/paxweb/Pax+Web" rel="nofollow">http://team.ops4j.org/wiki//display/paxweb/Pax+Web</a> for more information on PAX Web).</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">  http://localhost:8181/cxf/camel-example-cxf-blueprint/webservices/incident?wsdl
   </pre>
-</div></div><p>5) Start SOAPUI or use curl to send the request<br clear="none"> Create a new project called camel-example-cxf-osgi<br clear="none"> Point to the following url: <a shape="rect" class="external-link" href="http://localhost:8181/cxf/camel-example-cxf-blueprint/webservices/incident?wsdl" rel="nofollow">http://localhost:8181/cxf/camel-example-cxf-blueprint/webservices/incident?wsdl</a><br clear="none"> Open the request 1 (under camel-example-cxf-blueprint --&gt; ReportIncidentBinding --&gt; ReportIncident) and copy/paste a SOAP<br clear="none"> message generated by the unit test, for example:</p><p>ex :<br clear="none"> --&gt; and the message formatted that you copy in SOAPUI</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>5) Start SOAPUI or use curl to send the request<br clear="none"> Create a new project called camel-example-cxf-osgi<br clear="none"> Point to the following url: <a shape="rect" class="external-link" href="http://localhost:8181/cxf/camel-example-cxf-blueprint/webservices/incident?wsdl" rel="nofollow">http://localhost:8181/cxf/camel-example-cxf-blueprint/webservices/incident?wsdl</a><br clear="none"> Open the request 1 (under camel-example-cxf-blueprint --&gt; ReportIncidentBinding --&gt; ReportIncident) and copy/paste a SOAP<br clear="none"> message generated by the unit test, for example:</p><p>ex :<br clear="none"> --&gt; and the message formatted that you copy in SOAPUI</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;xml version="1.0" encoding="UTF-8"?&gt;
    &lt;soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"&gt;
@@ -133,9 +133,9 @@
       &lt;/soap:Body&gt;
    &lt;/soap:Envelope&gt;
   </pre>
-</div></div><p>If you use curl, you need to save the upper message in a file (data.xml) first and use the blow command to send the message.&#160;</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>If you use curl, you need to save the upper message in a file (data.xml) first and use the blow command to send the message.&#160;</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">curl -X POST -T data.xml -H "Content-Type: text/xml" http://localhost:8181/cxf/camel-example-cxf-osgi/webservices/incident</pre>
-</div></div><p>The response message looks like this</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 response message looks like this</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;soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"&gt;
   &lt;soap:Body&gt;
    &lt;ns2:outputReportIncident xmlns:ns2="http://reportincident.example.camel.apache.org"&gt;