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 2014/09/11 12:19:21 UTC

svn commit: r921855 [3/14] - in /websites/production/camel/content: ./ cache/

Modified: websites/production/camel/content/book-component-appendix.html
==============================================================================
--- websites/production/camel/content/book-component-appendix.html (original)
+++ websites/production/camel/content/book-component-appendix.html Thu Sep 11 10:19:20 2014
@@ -1529,11 +1529,11 @@ template.send("direct:alias-verify&
                     </div>
     </div>
 <p>The <strong>cxf:</strong> component provides integration with <a shape="rect" href="http://cxf.apache.org">Apache CXF</a> for connecting to JAX-WS services hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1409141841419 {padding: 0px;}
-div.rbtoc1409141841419 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1409141841419 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1410430680858 {padding: 0px;}
+div.rbtoc1410430680858 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1410430680858 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1409141841419">
+/*]]>*/</style></p><div class="toc-macro rbtoc1410430680858">
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-CXFComponent">CXF Component</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-URIformat">URI format</a></li><li><a shape="rect" href="#CXF-Options">Options</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-Thedescriptionsofthedataformats">The descriptions of the dataformats</a>
@@ -2191,7 +2191,7 @@ public static class MyProcessor implemen
 </div></div><p>Where <strong>rsEndpoint</strong> represents the spring bean's name which presents the CXFRS client or server</p><p>For either style above, you can append options to the URI as follows:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[cxfrs:bean:cxfEndpoint?resourceClasses=org.apache.camel.rs.Example
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-Options.9">Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Example</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Required?</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>default value</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>resourceClasses</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The resource classes which you want to export as REST service. Multiple classes can be separated by comma.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>resourceClasses=org.apache.camel.rs.Example1,</code><br clear="none"> <code>org.apache.camel.rs.Exchange2</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspa
 n="1" rowspan="1" class="confluenceTd"><p><em>None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>resourceClass</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: Use <code>resourceClasses</code> The resource class which you want to export as REST service.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>resourceClass =org.apache.camel.rs.Example1</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em>None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpClientAPI</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>new to Camel 2.1</strong> If it is true, the CxfRsProducer will use the HttpClientAPI to invoke the service <br clear="none" class="atl-forced-newline"> If it is false, the CxfRsProducer will use the ProxyClientAPI to invoke the service</p></td
 ><td colspan="1" rowspan="1" class="confluenceTd"><p>httpClientAPI=true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em>true</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>synchronous</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.5, this option will let CxfRsConsumer decide to use sync or async API to do the underlying work. The default value is false which means it will try to use async API by default.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>synchronous=true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>throwExceptionOnFailure</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.6, this option tells the CxfRsProducer to inspect return codes and will generate an Exception
  if the return code is larger than 207.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>throwExceptionOnFailure=true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>maxClientCacheSize</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.6, you can set a IN message header CamelDestinationOverrideUrl to dynamically override the target destination Web Service or REST Service defined in your routes.&#160; The implementation caches CXF clients or ClientFactoryBean in CxfProvider and CxfRsProvider.&#160; This option allows you to configure the maximum size of the cache.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>maxClientCacheSize=5</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>10</p></td></tr><tr><td colspan=
 "1" rowspan="1" class="confluenceTd"><p><code>setDefaultBus</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.9.0. Will set the default bus when CXF endpoint create a bus by itself</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>setDefaultBus=true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>bus</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.9.0. A default bus created by CXF Bus Factory. Use <code>#</code> notation to reference a bus object from the registry. The referenced object must be an instance of <code>org.apache.cxf.Bus</code>.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>bus=#busName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceT
 d"><p><em>None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>bindingStyle</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>As of 2.11</strong>. Sets how requests and responses will be mapped to/from Camel. Two values are possible:</p><ul class="alternate"><li><code>SimpleConsumer</code> =&gt; see the <a shape="rect" href="#BookComponentAppendix-ConsumingaRESTRequest-SimpleBindingStyle">Consuming a REST Request with the Simple Binding Style</a> below.</li><li><code>Default</code> =&gt; the default style. For consumers this passes on a <code>MessageContentsList</code> to the route, requiring low-level processing in the route.</li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>bindingStyle=SimpleConsumer</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em>Default</em></p></td></tr><tr><td colspan="1" rowspan="1" class="conflu
 enceTd"><p><span style="line-height: 1.4285715;">providers</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel 2.12.2</strong><span style="line-height: 1.4285715;"> set custom JAX-RS providers list to the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>providers=#MyProviders</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;">schemaLocations</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel 2.12.2</strong><span style="line-height: 1.4285715;"> Sets the locations of the schemas which can be used to validate the incoming XML or JAXB-driven JSON.</span></p></td><td colspan="1" rowspan="1" class="co
 nfluenceTd"><p>schemaLocations=#MySchemaLocations</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;">features</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel 2.12.3</strong><span style="line-height: 1.4285715;"> Set the feature list to the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>features=#MyFeatures</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>properties</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Ca
 mel 2.12.4</strong><span style="line-height: 1.4285715;"> Set the properties to the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>properties=#MyProperties</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>inInterceptors</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;"> Set the inInterceptors to the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>inInterceptors=#MyInterceptors</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>outI
 nterceptors</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;"> Set the outInterceptor to the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;">outInterceptors=#MyInterceptors</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;">No</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>inFaultInterceptors</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;"> Set the inFaultInterceptors to the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;">inFa
 ultInterceptors=#MyInterceptors</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;">No</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>outFaultIntercetpros</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;"> Set the outFaultInterceptors to the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;">outFaultInterceptors=#MyInterceptors</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;">No</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>cont
 inuationTimeout</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;"><strong>Since</strong>&#160;</span><strong style="line-height: 1.4285715;">Camel 2.14.0&#160;</strong><span style="line-height: 1.4285715;">This option is used to set the CXF continuation timeout which could be used in CxfConsumer by default when the CXF server is using Jetty or Servlet transport. (Before&#160;</span><strong style="line-height: 1.4285715;">Camel 2.14.0</strong><span style="line-height: 1.4285715;">, CxfConsumer just set the continuation timeout to be 0, which means the continuation suspend operation never timeout.)</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;">continuationTimeout=800000</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">30000</em></p></td></tr></tbody></table></div><
 p>You can also configure the CXF REST endpoint through the spring configuration. Since there are lots of difference between the CXF REST client and CXF REST Server, we provide different configuration for them.<br clear="none"> Please check out the <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd">schema file</a> and <a shape="rect" class="external-link" href="https://cwiki.apache.org/CXF20DOC/JAX-RS">CXF JAX-RS documentation</a> for more information.</p><h3 id="BookComponentAppendix-HowtoconfiguretheRESTendpointinCamel">How to configure the REST endpoint in Camel</h3><p>In <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd">camel-cxf schema file</a>, there are two elements for the REST endpoint definition. <strong>cxf:rsServer</strong> for REST consumer, <strong>cxf:rsClient</strong> 
 for REST producer.<br clear="none"> You can find a Camel REST service route configuration example here.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-Options.9">Options</h3><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Example</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Required?</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>default value</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>resourceClasses</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The resource classes which you want to export as REST service. Multiple classes can be separated by comma.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>resourceClasses=org.apache.camel.rs.Example1,</code><br clear="none"> <code>org.apache.camel.rs.Exchange2</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspa
 n="1" rowspan="1" class="confluenceTd"><p><em>None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>resourceClass</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Deprecated</strong>: Use <code>resourceClasses</code> The resource class which you want to export as REST service.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>resourceClass =org.apache.camel.rs.Example1</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em>None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>httpClientAPI</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>new to Camel 2.1</strong> If it is true, the CxfRsProducer will use the HttpClientAPI to invoke the service <br clear="none" class="atl-forced-newline"> If it is false, the CxfRsProducer will use the ProxyClientAPI to invoke the service</p></td
 ><td colspan="1" rowspan="1" class="confluenceTd"><p>httpClientAPI=true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em>true</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>synchronous</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.5, this option will let CxfRsConsumer decide to use sync or async API to do the underlying work. The default value is false which means it will try to use async API by default.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>synchronous=true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>throwExceptionOnFailure</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.6, this option tells the CxfRsProducer to inspect return codes and will generate an Exception
  if the return code is larger than 207.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>throwExceptionOnFailure=true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>maxClientCacheSize</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.6, you can set a IN message header CamelDestinationOverrideUrl to dynamically override the target destination Web Service or REST Service defined in your routes.&#160; The implementation caches CXF clients or ClientFactoryBean in CxfProvider and CxfRsProvider.&#160; This option allows you to configure the maximum size of the cache.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>maxClientCacheSize=5</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>10</p></td></tr><tr><td colspan=
 "1" rowspan="1" class="confluenceTd"><p><code>setDefaultBus</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.9.0. Will set the default bus when CXF endpoint create a bus by itself</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>setDefaultBus=true</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>bus</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>New in 2.9.0. A default bus created by CXF Bus Factory. Use <code>#</code> notation to reference a bus object from the registry. The referenced object must be an instance of <code>org.apache.cxf.Bus</code>.</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>bus=#busName</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceT
 d"><p><em>None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>bindingStyle</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>As of 2.11</strong>. Sets how requests and responses will be mapped to/from Camel. Two values are possible:</p><ul class="alternate"><li><code>SimpleConsumer</code> =&gt; see the <a shape="rect" href="#BookComponentAppendix-ConsumingaRESTRequest-SimpleBindingStyle">Consuming a REST Request with the Simple Binding Style</a> below.</li><li><code>Default</code> =&gt; the default style. For consumers this passes on a <code>MessageContentsList</code> to the route, requiring low-level processing in the route.</li><li><span style="font-family: monospace;">Custom</span> =&gt; allows you to specify a custom binding through the <code>binding</code> option.</li></ul></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>bindingStyle=SimpleConsumer</code></p></td><td colspan="1" rowspan="1" class="confluenc
 eTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em>Default</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><span>binding</span></td><td colspan="1" rowspan="1" class="confluenceTd">Allows you to specify a custom <code>CxfRsBinding</code> implementation to perform low-level processing of the raw CXF request and response objects. The implementation must be bound in the Camel registry, and you must use the hash (#) notation to refer to it.</td><td colspan="1" rowspan="1" class="confluenceTd"><code><span>binding=#myBinding</span></code></td><td colspan="1" rowspan="1" class="confluenceTd">No</td><td colspan="1" rowspan="1" class="confluenceTd"><code>DefaultCxfRsBinding</code></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;">providers</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel 2.12.2</strong><span style="line-heig
 ht: 1.4285715;"> set custom JAX-RS providers list to the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>providers=#MyProviders</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;">schemaLocations</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel 2.12.2</strong><span style="line-height: 1.4285715;"> Sets the locations of the schemas which can be used to validate the incoming XML or JAXB-driven JSON.</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>schemaLocations=#MySchemaLocations</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-
 height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;">features</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel 2.12.3</strong><span style="line-height: 1.4285715;"> Set the feature list to the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>features=#MyFeatures</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>properties</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;"> Set the properties to the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>pro
 perties=#MyProperties</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>inInterceptors</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;"> Set the inInterceptors to the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>inInterceptors=#MyInterceptors</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>outInterceptors</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel 2.12.4</strong><span style
 ="line-height: 1.4285715;"> Set the outInterceptor to the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code><span style="line-height: 1.4285715;">outInterceptors=#MyInterceptors</span></code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;">No</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>inFaultInterceptors</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;"> Set the inFaultInterceptors to the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code><span style="line-height: 1.4285715;">inFaultInterceptors=#MyInterceptors</span></code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height:
  1.4285715;">No</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>outFaultIntercetpros</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong style="line-height: 1.4285715;">Since Camel 2.12.4</strong><span style="line-height: 1.4285715;"> Set the outFaultInterceptors to the CxfRs endpoint.</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code><span style="line-height: 1.4285715;">outFaultInterceptors=#MyInterceptors</span></code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715;">No</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">None</em></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>continuationTimeout</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="line-height: 1.4285715
 ;"><strong>Since</strong>&#160;</span><strong style="line-height: 1.4285715;">Camel 2.14.0&#160;</strong><span style="line-height: 1.4285715;">This option is used to set the CXF continuation timeout which could be used in CxfConsumer by default when the CXF server is using Jetty or Servlet transport. (Before&#160;</span><strong style="line-height: 1.4285715;">Camel 2.14.0</strong><span style="line-height: 1.4285715;">, CxfConsumer just set the continuation timeout to be 0, which means the continuation suspend operation never timeout.)</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code><span style="line-height: 1.4285715;">continuationTimeout=800000</span></code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em style="line-height: 1.4285715;">30000</em></p></td></tr></tbody></table></div><p>You can also configure the CXF REST endpoint through the spring configuration. Since there are l
 ots of difference between the CXF REST client and CXF REST Server, we provide different configuration for them.<br clear="none"> Please check out the <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd">schema file</a> and <a shape="rect" class="external-link" href="https://cwiki.apache.org/CXF20DOC/JAX-RS">CXF JAX-RS documentation</a> for more information.</p><h3 id="BookComponentAppendix-HowtoconfiguretheRESTendpointinCamel">How to configure the REST endpoint in Camel</h3><p>In <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/main/resources/schema/cxfEndpoint.xsd">camel-cxf schema file</a>, there are two elements for the REST endpoint definition. <strong>cxf:rsServer</strong> for REST consumer, <strong>cxf:rsClient</strong> for REST producer.<br clear="none"> You can find a Camel REST service route configuration example 
 here.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
 &lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
@@ -5003,7 +5003,7 @@ hibernate:[entityClassName][?options]
 <h3 id="BookComponentAppendix-SeeAlso.20">See Also</h3>
 <ul><li><a shape="rect" href="configuring-camel.html">Configuring Camel</a></li><li><a shape="rect" href="component.html">Component</a></li><li><a shape="rect" href="endpoint.html">Endpoint</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li></ul>
 <ul class="alternate"><li><a shape="rect" href="hibernate-example.html">Hibernate Example</a></li></ul>
-<h2 id="BookComponentAppendix-HL7Component">HL7 Component</h2><p>The <strong>hl7</strong> component is used for working with the HL7 MLLP protocol and <a shape="rect" class="external-link" href="http://www.hl7.org/" rel="nofollow">HL7 v2 messages</a> using the <a shape="rect" class="external-link" href="http://hl7api.sourceforge.net" rel="nofollow">HAPI library</a>.</p><p>This component supports the following:</p><ul class="alternate"><li>HL7 MLLP codec for <a shape="rect" class="external-link" href="http://mina.apache.org/">Mina</a></li><li>Agnostic data format using either plain String objects or HAPI HL7 model objects.</li><li><a shape="rect" href="type-converter.html">Type Converter</a> from/to HAPI and String</li><li>HL7 DataFormat using HAPI library</li><li>Even more ease-of-use as it's integrated well with the <a shape="rect" href="mina.html">camel-mina</a> (<strong>Camel 2.11</strong>: <a shape="rect" href="mina2.html">camel-mina2</a> ) component.</li></ul><p>Maven users wil
 l need to add the following dependency to their <code>pom.xml</code> for this component:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<h2 id="BookComponentAppendix-HL7Component">HL7 Component</h2><p>The <strong>hl7</strong> component is used for working with the HL7 MLLP protocol and <a shape="rect" class="external-link" href="http://www.hl7.org/" rel="nofollow">HL7 v2 messages</a> using the <a shape="rect" class="external-link" href="http://hl7api.sourceforge.net" rel="nofollow">HAPI library</a>.</p><p>This component supports the following:</p><ul class="alternate"><li>HL7 MLLP codec for <a shape="rect" class="external-link" href="http://mina.apache.org/">Mina</a></li><li>Agnostic data format using either plain String objects or HAPI HL7 model objects.</li><li><a shape="rect" href="type-converter.html">Type Converter</a> from/to HAPI and String</li><li>HL7 DataFormat using HAPI library</li><li class="confluence-link">Even more ease-of-use as it's integrated well with the&#160; <a shape="rect" href="mina2.html">camel-mina2</a> component.</li></ul><p>Maven users will need to add the following dependency to their <c
 ode>pom.xml</code> for this component:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-hl7&lt;/artifactId&gt;
@@ -5011,9 +5011,7 @@ hibernate:[entityClassName][?options]
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-HL7MLLPprotocol">HL7 MLLP protocol</h3><p>HL7 is often used with the HL7 MLLP protocol that is a text based TCP socket based protocol. This component ships with a Mina Codec that conforms to the MLLP protocol so you can easily expose a HL7 listener that accepts HL7 requests over the TCP transport.</p><p>To expose a HL7 listener service we reuse the existing mina/mina2 component where we just use the <code>HL7MLLPCodec</code> as codec.</p><p>The HL7 MLLP codec has the following options:</p><div class="confluenceTableSmall">
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Name </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Default Value </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>startByte</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>0x0b</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The start byte spanning the HL7 payload. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>endByte1</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>0x1c</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The first end byte spanning the HL7 payload.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>endByte2</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>0x0d</
 code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The 2nd end byte spanning the HL7 payload. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>charset</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> JVM Default </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The encoding (is a <a shape="rect" class="external-link" href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html" rel="nofollow">charset name</a>) to use for the codec. If not provided, Camel will use the <a shape="rect" class="external-link" href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html#defaultCharset()" rel="nofollow">JVM default Charset</a>. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>convertLFtoCR</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>true</code> (<strong>Camel 2.11</strong>:<code>false</code>) </p></td><td colspan="1" rowspan
 ="1" class="confluenceTd"><p> Will convert <code>\n</code> to <code>\r</code> (<code>0x0d</code>, 13 decimal) as HL7 stipulates <code>\r</code> as segment terminators. The HAPI library requires the use of <code>\r</code>. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>validate</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>true</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Whether HAPI Parser should validate or not. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>parser</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>ca.uhn.hl7v2.parser.PipeParser</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> To use a custom parser. Must be of type <code>ca.uhn.hl7v2.parser.Parser</code>. </p></td></tr></tbody></table></div>
-</div><h4 id="BookComponentAppendix-ExposingaHL7listener">Exposing a HL7 listener</h4><p>In our Spring XML file, we configure an endpoint to listen for HL7 requests using TCP:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-HL7MLLPprotocol">HL7 MLLP protocol</h3><p>HL7 is often used with the HL7 MLLP protocol that is a text based TCP socket based protocol. This component ships with a Mina Codec that conforms to the MLLP protocol so you can easily expose a HL7 listener that accepts HL7 requests over the TCP transport.</p><p>To expose a HL7 listener service we reuse the existing mina2 component where we just use the <code>HL7MLLPCodec</code> as codec.</p><p>The HL7 MLLP codec has the following options:</p><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>startByte</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0x0b<
 /code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The start byte spanning the HL7 payload.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>endByte1</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0x1c</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The first end byte spanning the HL7 payload.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>endByte2</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>0x0d</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The 2nd end byte spanning the HL7 payload.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>charset</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>JVM Default</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The encoding (is a <a shape="rect" class="external-link" href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/
 Charset.html" rel="nofollow">charset name</a>) to use for the codec. If not provided, Camel will use the <a shape="rect" class="external-link" href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html#defaultCharset()" rel="nofollow">JVM default Charset</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>convertLFtoCR</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Will convert <code>\n</code> to <code>\r</code> (<code>0x0d</code>, 13 decimal) as HL7 stipulates <code>\r</code> as segment terminators. The HAPI library requires the use of <code>\r</code>.</p></td></tr></tbody></table></div></div><h4 id="BookComponentAppendix-ExposingaHL7listener">Exposing a HL7 listener</h4><p>In our Spring XML file, we configure an endpoint to listen for HL7 requests using TCP:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
  panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[        &lt;endpoint id=&quot;hl7listener&quot; uri=&quot;mina:tcp://localhost:8888?sync=true&amp;amp;codec=#hl7codec&quot;/&gt;
         &lt;!-- Camel 2.11: uri=&quot;mina2:tcp... --&gt;
 ]]></script>
@@ -5112,22 +5110,17 @@ Then you don't need to create an instanc
                     </div>
     </div>
 
-<h3 id="BookComponentAppendix-MessageHeaders.5">Message Headers</h3><p>The <strong>unmarshal</strong> operation adds these MSH fields as headers on the Camel message:</p><div class="confluenceTableSmall">
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Key </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> MSH field </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Example </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>CamelHL7SendingApplication</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>MSH-3</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>MYSERVER</code> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>CamelHL7SendingFacility</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>MSH-4</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>MYSERVERAPP</code> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>CamelHL7ReceivingApplication</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code
 >MSH-5</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>MYCLIENT</code> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>CamelHL7ReceivingFacility</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>MSH-6</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>MYCLIENTAPP</code> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>CamelHL7Timestamp</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>MSH-7</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>20071231235900</code> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>CamelHL7Security</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>MSH-8</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>CamelHL7M
 essageType</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>MSH-9-1</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>ADT</code> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>CamelHL7TriggerEvent</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>MSH-9-2</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>A01</code> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>CamelHL7MessageControl</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>MSH-10</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>1234</code> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>CamelHL7ProcessingId</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>MSH-11</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>P</code> </p></td></tr><tr
 ><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>CamelHL7VersionId</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>MSH-12</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>2.4</code> </p></td></tr></tbody></table></div>
-</div><p>All headers are <code>String</code> types. If a header value is missing, its value is <code>null</code>.</p><h3 id="BookComponentAppendix-Options.21">Options</h3><p>The HL7 Data Format supports the following options:</p><div class="confluenceTableSmall">
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Option </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Default </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>validate</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> true </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Whether the HAPI Parser should validate using the default validation rules. <strong>Camel 2.11:</strong> better use the <code>parser</code> option and initialize the parser with the desired HAPI <code>ValidationContext</code> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>parser</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>ca.uhn.hl7v2.parser.GenericParser</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.1
 1:</strong> To use a custom parser. Must be of type <code>ca.uhn.hl7v2.parser.Parser</code>. Note that <code>GenericParser</code> also allows to parse XML-encoded HL7v2 messages. </p></td></tr></tbody></table></div>
-
-</div><h3 id="BookComponentAppendix-Dependencies.2">Dependencies</h3><p>To use HL7 in your Camel routes you'll need to add a dependency on <strong>camel-hl7</strong> listed above, which implements this data format.</p><p>The HAPI library since Version 0.6 has been split into a <a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-base" rel="nofollow">base library</a> and several structure libraries, one for each HL7v2 message version:</p><ul><li><a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-structures-v21" rel="nofollow">v2.1 structures library</a></li><li><a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-structures-v22" rel="nofollow">v2.2 structures library</a></li><li><a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-structures-v23" rel="nofollow">v2.3 structures library</a></li><li><a shape="rect" class="external-link
 " href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-structures-v231" rel="nofollow">v2.3.1 structures library</a></li><li><a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-structures-v24" rel="nofollow">v2.4 structures library</a></li><li><a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-structures-v25" rel="nofollow">v2.5 structures library</a></li><li><a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-structures-v251" rel="nofollow">v2.5.1 structures library</a></li><li><a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-structures-v26" rel="nofollow">v2.6 structures library</a></li></ul><p>By default <code>camel-hl7</code> only references the HAPI <a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-base" rel="nofollow">base library</a>. Applications are responsible for including s
 tructure libraries themselves. For example, if a application works with HL7v2 message versions 2.4 and 2.5 then the following dependencies must be added:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<h3 id="BookComponentAppendix-MessageHeaders.5">Message Headers</h3><p>The <strong>unmarshal</strong> operation adds these MSH fields as headers on the Camel message:</p><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Key</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>MSH field</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Example</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelHL7SendingApplication</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MSH-3</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MYSERVER</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelHL7SendingFacility</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MSH-4</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MYSERVERAPP<
 /code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelHL7ReceivingApplication</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MSH-5</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MYCLIENT</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelHL7ReceivingFacility</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MSH-6</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MYCLIENTAPP</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelHL7Timestamp</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MSH-7</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>20071231235900</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelHL7Security</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MSH-8</code></
 p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelHL7MessageType</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MSH-9-1</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>ADT</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelHL7TriggerEvent</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MSH-9-2</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>A01</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelHL7MessageControl</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MSH-10</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1234</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelHL7ProcessingId</code></p></td><td colspan="1" rowspan="
 1" class="confluenceTd"><p><code>MSH-11</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>P</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>CamelHL7VersionId</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>MSH-12</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>2.4</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>CamelHL7Context </code><code><br clear="none"></code></td><td colspan="1" rowspan="1" class="confluenceTd">-</td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>(Camel 2.14)</strong> contains the HapiContext that<br clear="none">was used to parse the message</p></td></tr></tbody></table></div></div><p>All headers except&#160;<code>CamelHL7Context </code>are <code>String</code> types. If a header value is missing, its value is <code>null</code>.</p><h3 id="BookComponentAppendix-Options.21">Options</h3><p>The HL7 Data Format suppo
 rts the following options:</p><div class="confluenceTableSmall"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>validate</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Whether the HAPI Parser should validate using the default validation rules. Better use the <code>parser</code> or <code>hapiContext</code> option and initialize it with the desired HAPI <code>ValidationContext</code></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>parser</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>ca.uhn.hl7v2.parser.GenericParser</code></p></td><td colspan="1" rowspan="1" cla
 ss="confluenceTd"><p>Use a custom parser. Must be of type <code>ca.uhn.hl7v2.parser.Parser</code>. Note that <code>GenericParser</code> also allows to parse XML-encoded HL7v2 messages</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><code>hapiContext</code></td><td colspan="1" rowspan="1" class="confluenceTd"><code>ca.uhn.hl7v2.DefaultHapiContext</code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.14:</strong> Use a custom HAPI context that can define a custom parser, custom ValidationContext etc. This gives you full control over the HL7 parsing and rendering process.</td></tr></tbody></table></div></div><h3 id="BookComponentAppendix-Dependencies.2">Dependencies</h3><p>To use HL7 in your Camel routes you'll need to add a dependency on <strong>camel-hl7</strong> listed above, which implements this data format.</p><p>The HAPI library since Version 0.6 has been split into a <a shape="rect" class="external-link" href="http://repo1.maven.org/maven
 2/ca/uhn/hapi/hapi-base" rel="nofollow">base library</a> and several structure libraries, one for each HL7v2 message version:</p><ul><li><a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-structures-v21" rel="nofollow">v2.1 structures library</a></li><li><a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-structures-v22" rel="nofollow">v2.2 structures library</a></li><li><a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-structures-v23" rel="nofollow">v2.3 structures library</a></li><li><a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-structures-v231" rel="nofollow">v2.3.1 structures library</a></li><li><a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-structures-v24" rel="nofollow">v2.4 structures library</a></li><li><a shape="rect" class="external-link" href="http://repo1.maven.org/
 maven2/ca/uhn/hapi/hapi-structures-v25" rel="nofollow">v2.5 structures library</a></li><li><a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-structures-v251" rel="nofollow">v2.5.1 structures library</a></li><li><a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-structures-v26" rel="nofollow">v2.6 structures library</a></li></ul><p>By default <code>camel-hl7</code> only references the HAPI <a shape="rect" class="external-link" href="http://repo1.maven.org/maven2/ca/uhn/hapi/hapi-base" rel="nofollow">base library</a>. Applications are responsible for including structure libraries themselves. For example, if a application works with HL7v2 message versions 2.4 and 2.5 then the following dependencies must be added:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
     &lt;groupId&gt;ca.uhn.hapi&lt;/groupId&gt;
     &lt;artifactId&gt;hapi-structures-v24&lt;/artifactId&gt;
-    &lt;version&gt;1.2&lt;/version&gt;
+    &lt;version&gt;2.2&lt;/version&gt;
     &lt;!-- use the same version as your hapi-base version --&gt;
 &lt;/dependency&gt;
 &lt;dependency&gt;
     &lt;groupId&gt;ca.uhn.hapi&lt;/groupId&gt;
     &lt;artifactId&gt;hapi-structures-v25&lt;/artifactId&gt;
-    &lt;version&gt;1.2&lt;/version&gt;
+    &lt;version&gt;2.2&lt;/version&gt;
     &lt;!-- use the same version as your hapi-base version --&gt;
 &lt;/dependency&gt;
 ]]></script>
@@ -5135,10 +5128,10 @@ Then you don't need to create an instanc
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
     &lt;groupId&gt;ca.uhn.hapi&lt;/groupId&gt;
     &lt;artifactId&gt;hapi-osgi-base&lt;/artifactId&gt;
-    &lt;version&gt;1.2&lt;/version&gt;
+    &lt;version&gt;2.2&lt;/version&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-Terserlanguage(Camel2.11)">Terser language (<strong>Camel 2.11</strong>)</h3><p><a shape="rect" class="external-link" href="http://hl7api.sourceforge.net" rel="nofollow">HAPI</a> provides a <a shape="rect" class="external-link" href="http://hl7api.sourceforge.net/base/apidocs/ca/uhn/hl7v2/util/Terser.html" rel="nofollow">Terser</a> class that provides access to fields using a commonly used terse location specification syntax. The Terser language allows to use this syntax to extract values from messages and to use them as expressions and predicates for filtering, content-based routing etc.</p><p>Sample:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-Terserlanguage">Terser language</h3><p><a shape="rect" class="external-link" href="http://hl7api.sourceforge.net" rel="nofollow">HAPI</a> provides a <a shape="rect" class="external-link" href="http://hl7api.sourceforge.net/base/apidocs/ca/uhn/hl7v2/util/Terser.html" rel="nofollow">Terser</a> class that provides access to fields using a commonly used terse location specification syntax. The Terser language allows to use this syntax to extract values from messages and to use them as expressions and predicates for filtering, content-based routing etc.</p><p>Sample:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[import static org.apache.camel.component.hl7.HL7.terser;
 ...
 
@@ -5153,18 +5146,45 @@ Then you don't need to create an instanc
       .to(&quot;mock:test2&quot;);
 
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-HL7Validationpredicate(Camel2.11)">HL7 Validation predicate (<strong>Camel 2.11</strong>)</h3><p>Often it is preferable to parse a HL7v2 message and validate it against a HAPI <a shape="rect" class="external-link" href="http://hl7api.sourceforge.net/base/apidocs/ca/uhn/hl7v2/validation/ValidationContext.html" rel="nofollow">ValidationContext</a> in a separate step afterwards.</p><p>Sample:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-HL7Validationpredicate">HL7 Validation predicate</h3><p>Often it is preferable to parse a HL7v2 message and validate it against a HAPI <a shape="rect" class="external-link" href="http://hl7api.sourceforge.net/base/apidocs/ca/uhn/hl7v2/validation/ValidationContext.html" rel="nofollow">ValidationContext</a> in a separate step afterwards.</p><p>Sample:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[import static org.apache.camel.component.hl7.HL7.messageConformsTo;
 import ca.uhn.hl7v2.validation.impl.DefaultValidation;
 ...
 
-  // Use standard or define your own validation rules
+   // Use standard or define your own validation rules
    ValidationContext defaultContext = new DefaultValidation(); 
 
    // Throws PredicateValidationException if message does not validate
    from(&quot;direct:test1&quot;).validate(messageConformsTo(defaultContext)).to(&quot;mock:test1&quot;);
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-HL7Acknowledgementexpression(Camel2.11)">HL7 Acknowledgement expression (<strong>Camel 2.11</strong>)</h3><p>A common task in HL7v2 processing is to generate an acknowledgement message as response to an incoming HL7v2 message, e.g. based on a validation result. The <code>ack</code> expression lets us accomplish this very elegantly:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-HL7ValidationpredicateusingtheHapiContext(Camel2.14)">HL7 Validation predicate using the HapiContext (Camel 2.14)</h3><p>The HAPI Context is always configured with a <a shape="rect" class="external-link" href="http://hl7api.sourceforge.net/base/apidocs/ca/uhn/hl7v2/validation/ValidationContext.html" rel="nofollow">ValidationContext</a> (or a <a shape="rect" class="external-link" href="http://hl7api.sourceforge.net/base/apidocs/ca/uhn/hl7v2/validation/builder/ValidationRuleBuilder.html" rel="nofollow">ValidationRuleBuilder</a>), so you can access the validation rules indirectly. Furthermore, when unmarshalling the HL7DataFormat forwards the configured&#160; HAPI context&#160; in the <code>CamelHL7Context </code>header, and the validation rules of this context can be easily reused:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[import static org.apache.camel.component.hl7.HL7.messageConformsTo;
+import static org.apache.camel.component.hl7.HL7.messageConforms
+...
+
+  HapiContext hapiContext = new DefaultHapiContext();
+  hapiContext.getParserConfiguration().setValidating(false); // don&#39;t validate during parsing
+  
+  // customize HapiContext some more ... e.g. enforce that PID-8 in ADT_A01 messages of version 2.4 is not empty
+  ValidationRuleBuilder builder = new ValidationRuleBuilder() {
+      @Override
+      protected void configure() {
+         forVersion(Version.V24)
+              .message(&quot;ADT&quot;, &quot;A01&quot;)
+              .terser(&quot;PID-8&quot;, not(empty()));
+         }
+      };
+  hapiContext.setValidationRuleBuilder(builder);
+
+  HL7DataFormat hl7 = new HL7DataFormat();
+  hl7.setHapiContext(hapiContext);
+
+  from(&quot;direct:test1&quot;)
+     .unmarshal(hl7)                // uses the GenericParser returned from the HapiContext
+     .validate(messageConforms())   // uses the validation rules returned from the HapiContext
+                                    // equivalent with .validate(messageConformsTo(hapiContext))
+     // route continues from here]]></script>
+</div></div><p>&#160;</p><h3 id="BookComponentAppendix-HL7Acknowledgementexpression">HL7 Acknowledgement expression</h3><p>A common task in HL7v2 processing is to generate an acknowledgement message as response to an incoming HL7v2 message, e.g. based on a validation result. The <code>ack</code> expression lets us accomplish this very elegantly:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[import static org.apache.camel.component.hl7.HL7.messageConformsTo;
 import static org.apache.camel.component.hl7.HL7.ack;
 import ca.uhn.hl7v2.validation.impl.DefaultValidation;

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 Thu Sep 11 10:19:20 2014
@@ -3042,39 +3042,16 @@ from(&quot;direct:start&quot;)
 &lt;/dependency&gt;
 ]]></script>
 </div></div><h3 id="BookDataFormatAppendix-SeeAlso">See Also</h3><ul><li><a shape="rect" href="data-format.html">Data Format</a></li><li><a shape="rect" href="crypto-digital-signatures.html">Crypto (Digital Signatures)</a></li><li><a shape="rect" class="external-link" href="http://www.bouncycastle.org/java.html" rel="nofollow">http://www.bouncycastle.org/java.html</a></li></ul>
-<h2 id="BookDataFormatAppendix-SyslogDataFormat">Syslog DataFormat</h2>
-<p><strong>Available as of Camel 2.6</strong></p>
-
-<p>The <strong>syslog</strong> dataformat is used for working with <a shape="rect" class="external-link" href="http://www.ietf.org/rfc/rfc3164.txt" rel="nofollow">RFC3164</a> messages.</p>
-
-<p>This component supports the following:</p>
-<ul class="alternate"><li>UDP consumption of syslog messages</li><li>Agnostic data format using either plain String objects or SyslogMessage model objects.</li><li><a shape="rect" href="type-converter.html">Type Converter</a> from/to SyslogMessage and String</li><li>Integration with the <a shape="rect" href="mina.html">camel-mina</a> component.</li><li>Integration with the <a shape="rect" href="netty.html">camel-netty</a> component.</li></ul>
-
-
-<p>Maven users will need to add the following dependency to their <code>pom.xml</code> for this component:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;dependency&gt;
+<h2 id="BookDataFormatAppendix-SyslogDataFormat">Syslog DataFormat</h2><p><strong>Available as of Camel 2.6</strong></p><p>The <strong>syslog</strong> dataformat is used for working with <a shape="rect" class="external-link" href="http://www.ietf.org/rfc/rfc3164.txt" rel="nofollow">RFC3164</a>&#160;and RFC5424 messages.</p><p>This component supports the following:</p><ul class="alternate"><li>UDP consumption of syslog messages</li><li>Agnostic data format using either plain String objects or SyslogMessage model objects.</li><li><a shape="rect" href="type-converter.html">Type Converter</a> from/to SyslogMessage and String</li><li>Integration with the <a shape="rect" href="mina.html">camel-mina</a> component.</li><li>Integration with the <a shape="rect" href="netty.html">camel-netty</a> component.</li><li><strong>Camel 2.14:</strong> Encoder and decoder for the&#160;<a shape="rect" href="netty.html">camel-netty</a>&#160;component.</li><li><strong>Camel 2.14:</strong>&#160;Support for 
 RFC5424 also.</li></ul><p>Maven users will need to add the following dependency to their <code>pom.xml</code> for this component:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-syslog&lt;/artifactId&gt;
     &lt;version&gt;x.x.x&lt;/version&gt;
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div>
-
-<h3 id="BookDataFormatAppendix-RFC3164Syslogprotocol">RFC3164 Syslog protocol</h3>
-<p>Syslog uses the user datagram protocol (UDP) <a shape="rect" class="unresolved" href="#">1</a> as its underlying transport layer mechanism.  <br clear="none">
-The UDP port that has been assigned to syslog is 514.</p>
-
-<p>To expose a Syslog listener service we reuse the existing <a shape="rect" href="mina.html">camel-mina</a> component or <a shape="rect" href="netty.html">camel-netty</a> where we just use the <code>Rfc3164SyslogDataFormat</code> to marshal and unmarshal messages</p>
-
-<h4 id="BookDataFormatAppendix-ExposingaSysloglistener">Exposing a Syslog listener</h4>
-<p>In our Spring XML file, we configure an endpoint to listen for udp messages on port 10514, note that in netty we disable the defaultCodec, this <br clear="none">
-will allow a fallback to a NettyTypeConverter and delivers the message as an InputStream:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camelContext id=&quot;myCamel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
+</div></div><h3 id="BookDataFormatAppendix-RFC3164Syslogprotocol">RFC3164 Syslog protocol</h3><p>Syslog uses the user datagram protocol (UDP) <a shape="rect" class="unresolved" href="#">1</a> as its underlying transport layer mechanism. <br clear="none"> The UDP port that has been assigned to syslog is 514.</p><p>To expose a Syslog listener service we reuse the existing <a shape="rect" href="mina.html">camel-mina</a> component or <a shape="rect" href="netty.html">camel-netty</a> where we just use the <code>Rfc3164SyslogDataFormat</code> to marshal and unmarshal messages. Notice that from&#160;<strong>Camel 2.14</strong> onwards the syslog dataformat is renamed to <code>SyslogDataFormat</code>.</p><h3 id="BookDataFormatAppendix-RFC5424Syslogprotocol">RFC5424 Syslog protocol</h3><p><strong>Available as of Camel 2.14</strong></p><p>To expose a Syslog listener service we reuse the existing&#160;<a shape="rect" href="mina.html">camel-mina</a>&#160;component or&#160;<a shape="rect" href="
 netty.html">camel-netty</a>&#160;where we just use the&#160;<code>SyslogDataFormat</code>&#160;to marshal and unmarshal messages</p><h4 id="BookDataFormatAppendix-ExposingaSysloglistener">Exposing a Syslog listener</h4><p>In our Spring XML file, we configure an endpoint to listen for udp messages on port 10514, note that in netty we disable the defaultCodec, this <br clear="none"> will allow a fallback to a NettyTypeConverter and delivers the message as an InputStream:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camelContext id=&quot;myCamel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
 
     &lt;dataFormats&gt;
           &lt;syslog id=&quot;mySyslog&quot;/&gt;
@@ -3088,12 +3065,8 @@ will allow a fallback to a NettyTypeConv
 
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-
-<p>The same route using <a shape="rect" href="mina.html">camel-mina</a></p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camelContext id=&quot;myCamel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
+</div></div><p>The same route using <a shape="rect" href="mina.html">camel-mina</a></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camelContext id=&quot;myCamel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
 
     &lt;dataFormats&gt;
           &lt;syslog id=&quot;mySyslog&quot;/&gt;
@@ -3107,14 +3080,8 @@ will allow a fallback to a NettyTypeConv
 
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-
-
-<h4 id="BookDataFormatAppendix-Sendingsyslogmessagestoaremotedestination">Sending syslog messages to a remote destination</h4>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;camelContext id=&quot;myCamel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
+</div></div><h4 id="BookDataFormatAppendix-Sendingsyslogmessagestoaremotedestination">Sending syslog messages to a remote destination</h4><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;camelContext id=&quot;myCamel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
 
     &lt;dataFormats&gt;
         &lt;syslog id=&quot;mySyslog&quot;/&gt;
@@ -3128,9 +3095,7 @@ will allow a fallback to a NettyTypeConv
 
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-
-<h3 id="BookDataFormatAppendix-SeeAlso.1">See Also</h3>
+</div></div><p></p><h3 id="BookDataFormatAppendix-SeeAlso.1">See Also</h3>
 <ul><li><a shape="rect" href="configuring-camel.html">Configuring Camel</a></li><li><a shape="rect" href="component.html">Component</a></li><li><a shape="rect" href="endpoint.html">Endpoint</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li></ul></div>
         </td>
         <td valign="top">