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/06/06 14:18:21 UTC

svn commit: r911574 [2/3] - in /websites/production/camel/content: book-dataformat-appendix.html book-in-one-page.html cache/main.pageCache jaxb.html

Modified: websites/production/camel/content/book-in-one-page.html
==============================================================================
--- websites/production/camel/content/book-in-one-page.html (original)
+++ websites/production/camel/content/book-in-one-page.html Fri Jun  6 12:18:21 2014
@@ -657,7 +657,10 @@ disruptor-vm:someName[?<option>]
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Supports asynchronous message processing on Google App Engine by using the <a shape="rect" class="external-link" href="http://code.google.com/appengine/docs/java/taskqueue/" rel="nofollow">task queueing service</a> as message queue. See also <a shape="rect" href="gae.html">Camel Components for Google App Engine</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="gmail.html">GMail</a> / <a shape="rect" href="gae.html">camel-gae</a></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: plain; gutter: false" type="syntaxhighlighter"><![CDATA[gmail://user@g[oogle]mail.com[?options]
 ]]></script>
-</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Supports sending of emails via the <a shape="rect" class="external-link" href="http://code.google.com/appengine/docs/java/mail/" rel="nofollow">mail service</a> of Google App Engine. See also <a shape="rect" href="gae.html">Camel Components for Google App Engine</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="geocoder.html">Geocoder</a> / camel-geocoder</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Supports sending of emails via the <a shape="rect" class="external-link" href="http://code.google.com/appengine/docs/java/mail/" rel="nofollow">mail service</a> of Google App Engine. See also <a shape="rect" href="gae.html">Camel Components for Google App Engine</a>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="gora.html">Gora</a><span>/ camel-gora</span></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: plain; gutter: false" type="syntaxhighlighter"><![CDATA[gora:instanceName[?options]
+]]></script>
+</div></div><p><span><br clear="none"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd">Supports to work with NoSQL databases using the&#160;<a shape="rect" class="external-link" href="http://gora.apache.org/">Apache Gora</a>&#160;framework.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="geocoder.html">Geocoder</a> / camel-geocoder</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: plain; gutter: false" type="syntaxhighlighter"><![CDATA[geocoder:&lt;address|latlng:latitude,longitude&gt;[?options]
 ]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Supports looking up geocoders for an address, or reverse lookup geocoders from an address.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="guava-eventbus.html">Google Guava EventBus</a> / camel-guava-eventbus</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -4145,11 +4148,11 @@ While not actual tutorials you might fin
                     </div>
     </div>
 <h2 id="BookInOnePage-Preface">Preface</h2><p>This tutorial aims to guide the reader through the stages of creating a project which uses Camel to facilitate the routing of messages from a JMS queue to a <a shape="rect" class="external-link" href="http://www.springramework.org" rel="nofollow">Spring</a> service. The route works in a synchronous fashion returning a response to the client.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1401376633053 {padding: 0px;}
-div.rbtoc1401376633053 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1401376633053 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1402057036446 {padding: 0px;}
+div.rbtoc1402057036446 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1402057036446 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1401376633053">
+/*]]>*/</style></p><div class="toc-macro rbtoc1402057036446">
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-JmsRemoting-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-Preface">Preface</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-Distribution">Distribution</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-About">About</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-CreatetheCamelProject">Create the Camel Project</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-JmsRemoting-UpdatethePOMwithDependencies">Update the POM with Dependencies</a></li></ul>
 </li><li><a shape="rect" href="#Tutorial-JmsRemoting-WritingtheServer">Writing the Server</a>
@@ -6335,11 +6338,11 @@ So we completed the last piece in the pi
 
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1401376633455 {padding: 0px;}
-div.rbtoc1401376633455 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1401376633455 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1402057036754 {padding: 0px;}
+div.rbtoc1402057036754 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1402057036754 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1401376633455">
+/*]]>*/</style><div class="toc-macro rbtoc1402057036754">
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-AXIS-Camel-TutorialusingAxis1.4withApacheCamel">Tutorial using Axis 1.4 with Apache Camel</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-AXIS-Camel-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-Distribution">Distribution</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-Introduction">Introduction</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-SettinguptheprojecttorunAxis">Setting up the project to run Axis</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-AXIS-Camel-Maven2">Maven 2</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-wsdl">wsdl</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-ConfiguringAxis">Configuring Axis</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-RunningtheExample">Running the Example</a></li></ul>
@@ -10466,40 +10469,19 @@ from(&quot;file://foo/bar&quot;).
 <h3 id="BookInOnePage-Dependencies.19">Dependencies</h3>
 
 <p>This data format is provided in <strong>camel-core</strong> so no additional dependencies is needed.</p>
-<h2 id="BookInOnePage-JAXB">JAXB</h2>
-
-<p>JAXB is a <a shape="rect" href="data-format.html">Data Format</a> which uses the JAXB2 XML marshalling standard which is included in Java 6 to unmarshal an XML payload into Java objects or to marshal Java objects into an XML payload.</p>
-
-<h3 id="BookInOnePage-UsingtheJavaDSL">Using the Java DSL</h3>
-
-<p>For example the following uses a named DataFormat of <em>jaxb</em> which is configured with a number of Java package names to initialize the <a shape="rect" class="external-link" href="http://java.sun.com/javase/6/docs/api/javax/xml/bind/JAXBContext.html" rel="nofollow">JAXBContext</a>. </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[
-DataFormat jaxb = new JaxbDataFormat(&quot;com.acme.model&quot;);
+<h2 id="BookInOnePage-JAXB">JAXB</h2><p>JAXB is a <a shape="rect" href="data-format.html">Data Format</a> which uses the JAXB2 XML marshalling standard which is included in Java 6 to unmarshal an XML payload into Java objects or to marshal Java objects into an XML payload.</p><h3 id="BookInOnePage-UsingtheJavaDSL">Using the Java DSL</h3><p>For example the following uses a named DataFormat of <em>jaxb</em> which is configured with a number of Java package names to initialize the <a shape="rect" class="external-link" href="http://java.sun.com/javase/6/docs/api/javax/xml/bind/JAXBContext.html" rel="nofollow">JAXBContext</a>.</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[DataFormat jaxb = new JaxbDataFormat(&quot;com.acme.model&quot;);
 
 from(&quot;activemq:My.Queue&quot;).
   unmarshal(jaxb).
   to(&quot;mqseries:Another.Queue&quot;);
 ]]></script>
-</div></div>
-
-<p>You can if you prefer use a named reference to a data format which can then be defined in your <a shape="rect" href="registry.html">Registry</a> such as via your <a shape="rect" href="spring.html">Spring</a> XML file. e.g. </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[
-from(&quot;activemq:My.Queue&quot;).
+</div></div><p>You can if you prefer use a named reference to a data format which can then be defined in your <a shape="rect" href="registry.html">Registry</a> such as via your <a shape="rect" href="spring.html">Spring</a> XML file. e.g.</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[from(&quot;activemq:My.Queue&quot;).
   unmarshal(&quot;myJaxbDataType&quot;).
   to(&quot;mqseries:Another.Queue&quot;);
 ]]></script>
-</div></div>
-
-
-<h3 id="BookInOnePage-UsingSpringXML.1">Using Spring XML</h3>
-
-<p>The following example shows how to use JAXB to unmarshal using <a shape="rect" href="spring.html">Spring</a> configuring the jaxb data type</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookInOnePage-UsingSpringXML.1">Using Spring XML</h3><p>The following example shows how to use JAXB to unmarshal using <a shape="rect" href="spring.html">Spring</a> configuring the jaxb data type</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;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
   &lt;route&gt;
@@ -10511,11 +10493,7 @@ from(&quot;activemq:My.Queue&quot;).
   &lt;/route&gt;
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-
-<p>This example shows how to configure the data type just once and reuse it on multiple routes.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>This example shows how to configure the data type just once and reuse it on multiple routes.</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;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
   &lt;dataFormats&gt;
@@ -10535,24 +10513,14 @@ from(&quot;activemq:My.Queue&quot;).
 
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-
-    <div class="aui-message success shadowed information-macro">
+</div></div>    <div class="aui-message success shadowed information-macro">
                     <p class="title">Multiple context paths</p>
                             <span class="aui-icon icon-success">Icon</span>
                 <div class="message-content">
-                            
-<p>It is possible to use this data format with more than one context path. You can specify context path using <code>:</code> as separator, for example <code>com.mycompany:com.mycompany2</code>. Note that this is handled by JAXB implementation and might change if you use different vendor than RI.</p>
+                            <p>It is possible to use this data format with more than one context path. You can specify context path using <code>:</code> as separator, for example <code>com.mycompany:com.mycompany2</code>. Note that this is handled by JAXB implementation and might change if you use different vendor than RI.</p>
                     </div>
     </div>
-
-
-<h3 id="BookInOnePage-Partialmarshalling/unmarshalling">Partial marshalling/unmarshalling</h3>
-<p><strong>This feature is new to Camel 2.2.0.</strong><br clear="none">
-JAXB 2 supports marshalling and unmarshalling XML tree fragments. By default JAXB looks for <code>@XmlRootElement</code> annotation on given class to operate on whole XML tree. This is useful but not always - sometimes generated code does not have @XmlRootElement annotation, sometimes you need unmarshall only part of tree.<br clear="none">
-In that case you can use partial unmarshalling. To enable this behaviours you need set property <code>partClass</code>. Camel will pass this class to JAXB's unmarshaler.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<h3 id="BookInOnePage-Partialmarshalling/unmarshalling">Partial marshalling/unmarshalling</h3><p><strong>This feature is new to Camel 2.2.0.</strong><br clear="none"> JAXB 2 supports marshalling and unmarshalling XML tree fragments. By default JAXB looks for <code>@XmlRootElement</code> annotation on given class to operate on whole XML tree. This is useful but not always - sometimes generated code does not have @XmlRootElement annotation, sometimes you need unmarshall only part of tree.<br clear="none"> In that case you can use partial unmarshalling. To enable this behaviours you need set property <code>partClass</code>. Camel will pass this class to JAXB's unmarshaler.</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;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
     &lt;route&gt;
@@ -10575,54 +10543,15 @@ In that case you can use partial unmarsh
     &lt;/route&gt;
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-
-<p>For marshalling you have to add <code>partNamespace</code> attribute with QName of destination namespace. Example of Spring DSL you can find above.</p>
-
-<h3 id="BookInOnePage-Fragment">Fragment</h3>
-<p><strong>This feature is new to Camel 2.8.0.</strong><br clear="none">
-JaxbDataFormat has new property fragment which can set the the <code>Marshaller.JAXB_FRAGMENT</code> encoding property on the JAXB Marshaller. If you don't want the JAXB Marshaller to generate the XML declaration, you can set this option to be true. The default value of this property is fales. </p>
-
-<h3 id="BookInOnePage-IgnoringtheNonXMLCharacter">Ignoring the NonXML Character</h3>
-<p><strong>This feature is new to Camel 2.2.0.</strong><br clear="none">
-JaxbDataFromat supports to ignore the <a shape="rect" class="external-link" href="http://www.w3.org/TR/2004/REC-xml-20040204/#NT-Char" rel="nofollow">NonXML Character</a>, you just need to set the filterNonXmlChars property to be true, JaxbDataFormat will replace the NonXML character with " " when it is marshaling or unmarshaling the message. You can also do it by setting the <a shape="rect" href="exchange.html">Exchange</a> property <code>Exchange.FILTER_NON_XML_CHARS</code>.</p>
-
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><th colspan="1" rowspan="1" class="confluenceTh"><p> JDK 1.5 </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> JDK 1.6+ </p></th></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Filtering in use </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> StAX API and implementation </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> No </p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Filtering not in use </p></th><td colspan="1" rowspan="1" class="confluenceTd"><p> StAX API only </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> No </p></td></tr></tbody></table></div>
-
-
-<p>This feature has been tested with Woodstox 3.2.9 and Sun JDK 1.6 StAX implementation.</p>
-
-<p><strong>New for Camel 2.12.1</strong><br clear="none">
-JaxbDataFormat now allows you to customize the XMLStreamWriter used to marshal the stream to XML. Using this configuration, you can add your own stream writer to completely remove, escape, or replace non-xml characters. </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[
-   JaxbDataFormat customWriterFormat = new JaxbDataFormat(&quot;org.apache.camel.foo.bar&quot;);
+</div></div><p>For marshalling you have to add <code>partNamespace</code> attribute with QName of destination namespace. Example of Spring DSL you can find above.</p><h3 id="BookInOnePage-Fragment">Fragment</h3><p><strong>This feature is new to Camel 2.8.0.</strong><br clear="none"> JaxbDataFormat has new property fragment which can set the the <code>Marshaller.JAXB_FRAGMENT</code> encoding property on the JAXB Marshaller. If you don't want the JAXB Marshaller to generate the XML declaration, you can set this option to be true. The default value of this property is fales.</p><h3 id="BookInOnePage-IgnoringtheNonXMLCharacter">Ignoring the NonXML Character</h3><p><strong>This feature is new to Camel 2.2.0.</strong><br clear="none"> JaxbDataFromat supports to ignore the <a shape="rect" class="external-link" href="http://www.w3.org/TR/2004/REC-xml-20040204/#NT-Char" rel="nofollow">NonXML Character</a>, you just need to set the filterNonXmlChars property to be true, JaxbDataFormat will re
 place the NonXML character with " " when it is marshaling or unmarshaling the message. You can also do it by setting the <a shape="rect" href="exchange.html">Exchange</a> property <code>Exchange.FILTER_NON_XML_CHARS</code>.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><th colspan="1" rowspan="1" class="confluenceTh"><p>JDK 1.5</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>JDK 1.6+</p></th></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Filtering in use</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>StAX API and implementation</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Filtering not in use</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>StAX API only</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>No</p></td></tr></tbody></table></div><p>This f
 eature has been tested with Woodstox 3.2.9 and Sun JDK 1.6 StAX implementation.</p><p><strong>New for Camel 2.12.1</strong><br clear="none"> JaxbDataFormat now allows you to customize the XMLStreamWriter used to marshal the stream to XML. Using this configuration, you can add your own stream writer to completely remove, escape, or replace non-xml characters.</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[   JaxbDataFormat customWriterFormat = new JaxbDataFormat(&quot;org.apache.camel.foo.bar&quot;);
   customWriterFormat.setXmlStreamWriterWrapper(new TestXmlStreamWriter());
 ]]></script>
-</div></div>
-
-<p>The following example shows using the Spring DSL and also enabling Camel's NonXML filtering:</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;bean id=&quot;testXmlStreamWriterWrapper&quot; class=&quot;org.apache.camel.jaxb.TestXmlStreamWriter&quot;/&gt;
+</div></div><p>The following example shows using the Spring DSL and also enabling Camel's NonXML filtering:</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;bean id=&quot;testXmlStreamWriterWrapper&quot; class=&quot;org.apache.camel.jaxb.TestXmlStreamWriter&quot;/&gt;
 &lt;jaxb filterNonXmlChars=&quot;true&quot;  contextPath=&quot;org.apache.camel.foo.bar&quot; xmlStreamWriterWrapper=&quot;#testXmlStreamWriterWrapper&quot; /&gt;
 ]]></script>
-</div></div>
-
-<h3 id="BookInOnePage-WorkingwiththeObjectFactory">Working with the ObjectFactory</h3>
-
-<p>If you use XJC to create the java class from the schema, you will get an ObjectFactory for you JAXB context. Since the ObjectFactory uses <a shape="rect" class="external-link" href="http://java.sun.com/javase/6/docs/api/javax/xml/bind/JAXBElement.html" rel="nofollow">JAXBElement</a> to hold the reference of the schema and element instance value, jaxbDataformat will ignore the JAXBElement by default and you will get the element instance value instead of the JAXBElement object form the unmarshaled message body. <br clear="none">
-If you want to get the JAXBElement object form the unmarshaled message body, you need to set the JaxbDataFormat object's ignoreJAXBElement property to be false.</p>
-
-
-<h3 id="BookInOnePage-Settingencoding">Setting encoding</h3>
-<p>You can set the <strong>encoding</strong> option to use when marshalling. Its the <code>Marshaller.JAXB_ENCODING</code> encoding property on the JAXB Marshaller.<br clear="none">
-You can setup which encoding to use when you declare the JAXB data format. You can also provide the encoding in the <a shape="rect" href="exchange.html">Exchange</a> property <code>Exchange.CHARSET_NAME</code>. This property will overrule the encoding set on the JAXB data format.</p>
-
-<p>In this Spring DSL we have defined to use <code>iso-8859-1</code> as the encoding:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookInOnePage-WorkingwiththeObjectFactory">Working with the ObjectFactory</h3><p>If you use XJC to create the java class from the schema, you will get an ObjectFactory for you JAXB context. Since the ObjectFactory uses <a shape="rect" class="external-link" href="http://java.sun.com/javase/6/docs/api/javax/xml/bind/JAXBElement.html" rel="nofollow">JAXBElement</a> to hold the reference of the schema and element instance value, jaxbDataformat will ignore the JAXBElement by default and you will get the element instance value instead of the JAXBElement object form the unmarshaled message body. <br clear="none"> If you want to get the JAXBElement object form the unmarshaled message body, you need to set the JaxbDataFormat object's ignoreJAXBElement property to be false.</p><h3 id="BookInOnePage-Settingencoding">Setting encoding</h3><p>You can set the <strong>encoding</strong> option to use when marshalling. Its the <code>Marshaller.JAXB_ENCODING</code> encoding propert
 y on the JAXB Marshaller.<br clear="none"> You can setup which encoding to use when you declare the JAXB data format. You can also provide the encoding in the <a shape="rect" href="exchange.html">Exchange</a> property <code>Exchange.CHARSET_NAME</code>. This property will overrule the encoding set on the JAXB data format.</p><p>In this Spring DSL we have defined to use <code>iso-8859-1</code> as the encoding:</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;camel&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
     &lt;route&gt;
@@ -10634,89 +10563,50 @@ You can setup which encoding to use when
     &lt;/route&gt;
 &lt;/camelContext&gt;
 ]]></script>
-</div></div>
-
-
-<h3 id="BookInOnePage-Controllingnamespaceprefixmapping">Controlling namespace prefix mapping</h3>
-<p><strong>Available as of Camel 2.11</strong></p>
-
-<p>When marshalling using <a shape="rect" href="jaxb.html">JAXB</a> or <a shape="rect" href="soap.html">SOAP</a> then the JAXB implementation will automatic assign namespace prefixes, such as ns2, ns3, ns4 etc. To control this mapping, Camel allows you to refer to a map which contains the desired mapping. </p>
-
-<p>Notice this requires having JAXB-RI 2.1 or better (from SUN) on the classpath, as the mapping functionality is dependent on the implementation of JAXB, whether its supported.</p>
-
-<p>For example in Spring XML we can define a Map with the mapping. In the mapping file below, we map SOAP to use soap as prefix. While our custom namespace "http://www.mycompany.com/foo/2" is not using any prefix.</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;util:map id=&quot;myMap&quot;&gt;
+</div></div><h3 id="BookInOnePage-Controllingnamespaceprefixmapping">Controlling namespace prefix mapping</h3><p><strong>Available as of Camel 2.11</strong></p><p>When marshalling using <a shape="rect" href="jaxb.html">JAXB</a> or <a shape="rect" href="soap.html">SOAP</a> then the JAXB implementation will automatic assign namespace prefixes, such as ns2, ns3, ns4 etc. To control this mapping, Camel allows you to refer to a map which contains the desired mapping.</p><p>Notice this requires having JAXB-RI 2.1 or better (from SUN) on the classpath, as the mapping functionality is dependent on the implementation of JAXB, whether its supported.</p><p>For example in Spring XML we can define a Map with the mapping. In the mapping file below, we map SOAP to use soap as prefix. While our custom namespace "http://www.mycompany.com/foo/2" is not using any prefix.</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;util:map id=&quot;myMap&quot;&gt;
     &lt;entry key=&quot;http://www.w3.org/2003/05/soap-envelope&quot; value=&quot;soap&quot;/&gt;
     &lt;!-- we dont want any prefix for our namespace --&gt;
     &lt;entry key=&quot;http://www.mycompany.com/foo/2&quot; value=&quot;&quot;/&gt;
   &lt;/util:map&gt;
 ]]></script>
-</div></div>
-
-<p>To use this in <a shape="rect" href="jaxb.html">JAXB</a> or <a shape="rect" href="soap.html">SOAP</a> you refer to this map, using the <code>namespacePrefixRef</code> attribute as shown below. Then Camel will lookup in the <a shape="rect" href="registry.html">Registry</a> a <code>java.util.Map</code> with the id "myMap", which was what we defined above.</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;marshal&gt;
+</div></div><p>To use this in <a shape="rect" href="jaxb.html">JAXB</a> or <a shape="rect" href="soap.html">SOAP</a> you refer to this map, using the <code>namespacePrefixRef</code> attribute as shown below. Then Camel will lookup in the <a shape="rect" href="registry.html">Registry</a> a <code>java.util.Map</code> with the id "myMap", which was what we defined above.</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;marshal&gt;
     &lt;soapjaxb version=&quot;1.2&quot; contextPath=&quot;com.mycompany.foo&quot; namespacePrefixRef=&quot;myMap&quot;/&gt;
   &lt;/marshal&gt;
 ]]></script>
-</div></div>
-
-
-<h3 id="BookInOnePage-Schemavalidation">Schema validation</h3>
-<p><strong>Available as of Camel 2.11</strong></p>
-
-<p>The JAXB <a shape="rect" href="data-format.html">Data Format</a> supports validation by marshalling and unmarshalling from/to XML. Your can use the prefix <strong>classpath:</strong>, <strong>file:* or *http:</strong> to specify how the resource should by resolved. You can separate multiple schema files by using the <strong>','</strong> character.</p>
-
-    <div class="aui-message hint shadowed information-macro">
+</div></div><h3 id="BookInOnePage-Schemavalidation">Schema validation</h3><p><strong>Available as of Camel 2.11</strong></p><p>The JAXB <a shape="rect" href="data-format.html">Data Format</a> supports validation by marshalling and unmarshalling from/to XML. Your can use the prefix <strong>classpath:</strong>, <strong>file:* or *http:</strong> to specify how the resource should by resolved. You can separate multiple schema files by using the <strong>','</strong> character.</p>    <div class="aui-message hint shadowed information-macro">
                     <p class="title">Known issue</p>
                             <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">
-                            
-<p>Camel 2.11.0 and 2.11.1 has a known issue by validation multiple <code>Exchange</code>'s in parallel. See <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-6630">CAMEL-6630</a>. This is fixed with Camel 2.11.2/2.12.0.</p>
+                            <p>Camel 2.11.0 and 2.11.1 has a known issue by validation multiple <code>Exchange</code>'s in parallel. See <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-6630">CAMEL-6630</a>. This is fixed with Camel 2.11.2/2.12.0.</p>
                     </div>
     </div>
-
-
-<p>Using the Java DSL, you can configure it in the following way:</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[
-JaxbDataFormat jaxbDataFormat = new JaxbDataFormat();
+<p>Using the Java DSL, you can configure it in the following way:</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[JaxbDataFormat jaxbDataFormat = new JaxbDataFormat();
 jaxbDataFormat.setContextPath(Person.class.getPackage().getName());
 jaxbDataFormat.setSchema(&quot;classpath:person.xsd,classpath:address.xsd&quot;);
 ]]></script>
-</div></div>
-
-<p>You can do the same using the XML DSL:</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;marshal&gt;
+</div></div><p>You can do the same using the XML DSL:</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;marshal&gt;
     &lt;jaxb id=&quot;jaxb&quot; schema=&quot;classpath:person.xsd,classpath:address.xsd&quot;/&gt;
 &lt;/marshal&gt;
 ]]></script>
-</div></div>
-
-<p>Camel will create and pool the underling <code>SchemaFactory</code> instances on the fly, because the <code>SchemaFactory</code> shipped with the JDK is not thread safe.<br clear="none">
-However, if you have a <code>SchemaFactory</code> implementation which is thread safe, you can configure the JAXB data format to use this one:</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[
-JaxbDataFormat jaxbDataFormat = new JaxbDataFormat();
+</div></div><p>Camel will create and pool the underling <code>SchemaFactory</code> instances on the fly, because the <code>SchemaFactory</code> shipped with the JDK is not thread safe.<br clear="none"> However, if you have a <code>SchemaFactory</code> implementation which is thread safe, you can configure the JAXB data format to use this one:</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[JaxbDataFormat jaxbDataFormat = new JaxbDataFormat();
 jaxbDataFormat.setSchemaFactory(thradSafeSchemaFactory);
 ]]></script>
-</div></div>
-
-
-<h3 id="BookInOnePage-Dependencies.20">Dependencies</h3>
-
-<p>To use JAXB in your camel routes you need to add the a dependency on <strong>camel-jaxb</strong> which implements this data format. </p>
-
-<p>If you use maven you could just add the following to your pom.xml, substituting the version number for the latest &amp; greatest release (see <a shape="rect" href="download.html">the download page for the latest versions</a>).</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;dependency&gt;
+</div></div><h3 id="BookInOnePage-SchemaLocation">Schema Location</h3><p><strong>Available as of Camel 2.14</strong></p><p>The JAXB&#160;<a shape="rect" href="data-format.html">Data Format</a>&#160;supports to specify the SchemaLocation when marshaling the XML.&#160;</p><p>Using the Java DSL, you can configure it in the following way:</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[JaxbDataFormat jaxbDataFormat = new JaxbDataFormat();
+jaxbDataFormat.setContextPath(Person.class.getPackage().getName());
+jaxbDataFormat.setSchemaLocation(&quot;schema/person.xsd&quot;);
+]]></script>
+</div></div><p>You can do the same using the XML DSL:</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;marshal&gt;
+    &lt;jaxb id=&quot;jaxb&quot; schemaLocation=&quot;schema/person.xsd&quot;/&gt;
+&lt;/marshal&gt;]]></script>
+</div></div><h3 id="BookInOnePage-Dependencies.20">Dependencies</h3><p>To use JAXB in your camel routes you need to add the a dependency on <strong>camel-jaxb</strong> which implements this data format.</p><p>If you use maven you could just add the following to your pom.xml, substituting the version number for the latest &amp; greatest release (see <a shape="rect" href="download.html">the download page for the latest versions</a>).</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
   &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
   &lt;artifactId&gt;camel-jaxb&lt;/artifactId&gt;
   &lt;version&gt;x.x.x&lt;/version&gt;
@@ -18617,8 +18507,7 @@ from(&quot;direct:start&quot;).choice()
                             <p>If you <a shape="rect" href="wire-tap.html">Wire Tap</a> a stream message body then you should consider enabling <a shape="rect" href="stream-caching.html">Stream caching</a> to ensure the message body can be read at each endpoint. See more details at <a shape="rect" href="stream-caching.html">Stream caching</a>.</p>
                     </div>
     </div>
-<h3 id="BookInOnePage-Options.21">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> 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>uri</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The URI of the endpoint to which the wire-tapped message will be sent. You should use either <code>uri</code> or <code>ref</code>. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>ref</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Reference identifier of the endpoint to which the wire-tapped message will be sent. You should use either <code>
 uri</code> or <code>ref</code>. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>executorServiceRef</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Reference identifier of a custom <a shape="rect" href="threading-model.html">Thread Pool</a> to use when processing the wire-tapped messages. If not set, Camel will use a default thread pool. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>processorRef</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Reference identifier of a custom <a shape="rect" href="processor.html">Processor</a> to use for creating a new message (e.g., the "send a new message" mode). See below. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>copy</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"
 ><p> <code>true</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.3</strong>: Whether to copy the <a shape="rect" href="exchange.html">Exchange</a> before wire-tapping the message. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>onPrepareRef</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.8:</strong> Reference identifier of a custom <a shape="rect" href="processor.html">Processor</a> to prepare the copy of the <a shape="rect" href="exchange.html">Exchange</a> to be wire-tapped. This allows you to do any custom logic, such as deep-cloning the message payload. </p></td></tr></tbody></table></div>
-<h3 id="BookInOnePage-WireTapthreadpool">WireTap thread pool</h3><p>The <a shape="rect" href="wire-tap.html">Wire Tap</a> uses a thread pool to process the tapped messages. This thread pool will by default use the settings detailed at <a shape="rect" href="threading-model.html">Threading Model</a>. In particular, when the pool is exhausted (with all threads utilized), further wiretaps will be executed synchronously by the calling thread. To remedy this, you can configure an explicit thread pool on the <a shape="rect" href="wire-tap.html">Wire Tap</a> having either a different rejection policy, a larger worker queue, or more worker threads.</p><h3 id="BookInOnePage-WireTapnode">WireTap node</h3><p>Camel's Wire Tap node supports two flavors when tapping an <a shape="rect" href="exchange.html">Exchange</a>:</p><p>-With the traditional Wire Tap, Camel will copy the original <a shape="rect" href="exchange.html">Exchange</a> and set its <a shape="rect" href="exchange-pattern.html">Exchang
 e Pattern</a> to <strong>InOnly</strong>, as we want the tapped <a shape="rect" href="exchange.html">Exchange</a> to be sent in a <em>fire and forget</em> style. The tapped <a shape="rect" href="exchange.html">Exchange</a> is then sent in a separate thread so it can run in parallel with the original.</p><p>-Camel also provides an option of sending a new <a shape="rect" href="exchange.html">Exchange</a> allowing you to populate it with new values.</p><h4 id="BookInOnePage-Sendingacopy(traditionalwiretap)">Sending a copy (traditional wiretap)</h4><p><strong>Using the <a shape="rect" href="fluent-builders.html">Fluent Builders</a></strong></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<h3 id="BookInOnePage-Options.21">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>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>uri</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The URI of the endpoint to which the wire-tapped message will be sent. You should use either <code>uri</code> or <code>ref</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>ref</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Reference identifier of the endpoint to which the wire-tapped message will be sent. You should use either <code>uri</code> or
  <code>ref</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>executorServiceRef</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Reference identifier of a custom <a shape="rect" href="threading-model.html">Thread Pool</a> to use when processing the wire-tapped messages. If not set, Camel will use a default thread pool.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>processorRef</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Reference identifier of a custom <a shape="rect" href="processor.html">Processor</a> to use for creating a new message (e.g., the "send a new message" mode). See below.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>copy</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p
 ></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.3</strong>: Whether to copy the <a shape="rect" href="exchange.html">Exchange</a> before wire-tapping the message.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>onPrepareRef</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> Reference identifier of a custom <a shape="rect" href="processor.html">Processor</a> to prepare the copy of the <a shape="rect" href="exchange.html">Exchange</a> to be wire-tapped. This allows you to do any custom logic, such as deep-cloning the message payload.</p></td></tr></tbody></table></div><h3 id="BookInOnePage-WireTapthreadpool">WireTap thread pool</h3><p>The <a shape="rect" href="wire-tap.html">Wire Tap</a> uses a thread pool to process the tapped messages. This thread pool will by default use the settings detailed at <a shape="rect" href="thr
 eading-model.html">Threading Model</a>. In particular, when the pool is exhausted (with all threads utilized), further wiretaps will be executed synchronously by the calling thread. To remedy this, you can configure an explicit thread pool on the <a shape="rect" href="wire-tap.html">Wire Tap</a> having either a different rejection policy, a larger worker queue, or more worker threads.</p><h3 id="BookInOnePage-WireTapnode">WireTap node</h3><p>Camel's Wire Tap node supports two flavors when tapping an <a shape="rect" href="exchange.html">Exchange</a>:</p><p>-With the traditional Wire Tap, Camel will copy the original <a shape="rect" href="exchange.html">Exchange</a> and set its <a shape="rect" href="exchange-pattern.html">Exchange Pattern</a> to InOnly, as we want the tapped <a shape="rect" href="exchange.html">Exchange</a> to be sent in a fire and forget style. The tapped <a shape="rect" href="exchange.html">Exchange</a> is then sent in a separate thread so it can run in parallel wit
 h the original. Beware that only the Exchange is copied - Wire Tap won't do a deep clone (unless you specify a custom processor via <em>onPrepareRef</em> which does that). So all copies could share objects from the original Exchange.</p><p>-Camel also provides an option of sending a new <a shape="rect" href="exchange.html">Exchange</a> allowing you to populate it with new values.</p><h4 id="BookInOnePage-Sendingacopy(traditionalwiretap)">Sending a copy (traditional wiretap)</h4><p><strong>Using the <a shape="rect" href="fluent-builders.html">Fluent Builders</a></strong></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
 from(&quot;direct:start&quot;)
     .to(&quot;log:foo&quot;)
@@ -20231,11 +20120,11 @@ template.send(&quot;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.rbtoc1401376643348 {padding: 0px;}
-div.rbtoc1401376643348 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1401376643348 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1402057047648 {padding: 0px;}
+div.rbtoc1402057047648 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1402057047648 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1401376643348">
+/*]]>*/</style></p><div class="toc-macro rbtoc1402057047648">
 <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>
@@ -25547,13 +25436,13 @@ We store big input streams (by default, 
     </div>
 <h3 id="BookInOnePage-Usage.3">Usage</h3><p>The <code>repository</code> element of the URI is used to look up the JCR <code>Repository</code> object in the Camel context registry.</p><h4 id="BookInOnePage-Producer.1">Producer</h4><div class="confluenceTableSmall">
 <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>CamelJcrOperation</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>CamelJcrInsert</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> CamelJcrInsert or CamelJcrGetById operation to use </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>CamelJcrNodeName</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Used to determine the node name to use. </p></td></tr></tbody></table>
-</div><p>When a message is sent to a JCR producer endpoint:</p><ul><li>If the operation is CamelJcrInsert: A new node is created in the content repository, all the message headers of the IN message are transformed to <code>javax.jcr.Value</code> instances and added to the new node and the node's UUID is returned in the OUT message.</li><li>If the operation is CamelJcrGetById: A new node is retrieved from the repository using the message body as node identifier.</li></ul>    <div class="aui-message warning shadowed information-macro">
+</div><p>When a message is sent to a JCR producer endpoint:</p><ul><li>If the operation is CamelJcrInsert: A new node is created in the content repository, all the message headers of the IN message are transformed to <code><a shape="rect" class="external-link" href="http://www.day.com/specs/javax.jcr/javadocs/jcr-2.0/javax/jcr/Value.html" rel="nofollow">javax.jcr.Value</a></code> instances and added to the new node and the node's UUID is returned in the OUT message.</li><li>If the operation is CamelJcrGetById: A new node is retrieved from the repository using the message body as node identifier.</li></ul>    <div class="aui-message warning shadowed information-macro">
                             <span class="aui-icon icon-warning">Icon</span>
                 <div class="message-content">
                             <p>Please note that the JCR Producer used message properties instead of message headers in Camel versions earlier than 2.12.3. See <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/CAMEL-7067">https://issues.apache.org/jira/browse/CAMEL-7067</a> for more details.</p>
                     </div>
     </div>
-<p>&#160;</p><h4 id="BookInOnePage-Consumer.1">Consumer</h4><p>The consumer will connect to JCR periodically and return a List&lt;javax.jcr.observation.Event&gt; in the message body.</p><div class="confluenceTableSmall">
+<p>&#160;</p><h4 id="BookInOnePage-Consumer.1">Consumer</h4><p>The consumer will connect to JCR periodically and return a List&lt;<a shape="rect" class="external-link" href="http://www.day.com/specs/javax.jcr/javadocs/jcr-2.0/javax/jcr/observation/Event.html" rel="nofollow">javax.jcr.observation.Event</a>&gt; in the message body.</p><div class="confluenceTableSmall">
 <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>eventTypes</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>0</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A combination of one or more event types encoded as a bit mask value such as javax.jcr.observation.Event.NODE_ADDED, javax.jcr.observation.Event.NODE_REMOVED, etc. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>deep</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> When it is true, events whose associated parent node is at current path or within its subgraph are received. </p></td
 ></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>uuids</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Only events whose associated parent node has one of the identifiers in the comma separated uuid list will be received.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>nodeTypeNames</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Only events whose associated parent node has one of the node types (or a subtype of one of the node types) in this list will be received. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>noLocal</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> If <code>noLocal</code> is <code>true</cod
 e>, then events generated by the session through which the listener was registered are ignored. Otherwise, they are not ignored. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>sessionLiveCheckInterval</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>60000</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Interval in milliseconds to wait before each session live checking. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>sessionLiveCheckIntervalOnStart</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>3000</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Interval in milliseconds to wait before the first session live checking. </p></td></tr></tbody></table>
 </div><h3 id="BookInOnePage-Example.14">Example</h3><p>The snippet below creates a node named <code>node</code> under the <code>/home/test</code> node in the content repository. One additional property is added to the node as well: <code>my.contents.property</code> which will contain the body of the message being sent.</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[from(&quot;direct:a&quot;).setHeader(JcrConstants.JCR_NODE_NAME, constant(&quot;node&quot;))
@@ -32586,7 +32475,9 @@ protected RouteBuilder createRouteBuilde
 </div></div><p>From Camel 2.11 onwards you can use named parameters by using <code>#:name</code> style as shown:</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[sql:select * from table where id=:#myId order by name[?options]
 ]]></script>
-</div></div><p>When using named parameters, Camel will lookup the names from, in the given precedence:<br clear="none"> 1. from message body if its a <code>java.util.Map</code><br clear="none"> 2. from message headers</p><p>If a named parameter cannot be resolved, then an exception is thrown.</p><p>Notice that the standard <code>?</code> symbol that denotes the parameters to an SQL query is substituted with the <code>#</code> symbol, because the <code>?</code> symbol is used to specify options for the endpoint. The <code>?</code> symbol replacement can be configured on endpoint basis.</p><p>You can append query options to the URI in the following format, <code>?option=value&amp;option=value&amp;...</code></p><h3 id="BookInOnePage-Options.75">Options</h3><div class="confluenceTableSmall">
+</div></div><p>When using named parameters, Camel will lookup the names from, in the given precedence:<br clear="none"> 1. from message body if its a <code>java.util.Map</code><br clear="none"> 2. from message headers</p><p>If a named parameter cannot be resolved, then an exception is thrown.</p><p>From Camel 2.14 onward you can use Simple expressions as parameters as shown:</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[sql:select * from table where id=:#${property.myId} order by name[?options]]]></script>
+</div></div><p>Notice that the standard <code>?</code> symbol that denotes the parameters to an SQL query is substituted with the <code>#</code> symbol, because the <code>?</code> symbol is used to specify options for the endpoint. The <code>?</code> symbol replacement can be configured on endpoint basis.</p><p>You can append query options to the URI in the following format, <code>?option=value&amp;option=value&amp;...</code></p><h3 id="BookInOnePage-Options.75">Options</h3><div class="confluenceTableSmall">
 <table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Option </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Type </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Default </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>batch</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>boolean</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.7.5, 2.8.4 and 2.9:</strong> Execute SQL batch update statements. See notes below on how the treatment of the inbound message body changes if this is set to <code>true</code>. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>dataSourceRef</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>String</co
 de> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Deprecated and will be removed in Camel 3.0:</strong> Reference to a <code>DataSource</code> to look up in the registry. Use <code>dataSource=#theName</code> instead. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>dataSource</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>String</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> Reference to a <code>DataSource</code> to look up in the registry. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>placeholder</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>String</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>#</code> </p></
 td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.4:</strong> Specifies a character that will be replaced to <code>?</code> in SQL query. Notice, that it is simple <code>String.replaceAll()</code> operation and no SQL parsing is involved (quoted strings will also change). This replacement is <strong>only</strong> happening if the endpoint is created using the <code>SqlComponent</code>. If you manually create the endpoint, then use the expected <code>?</code> sign instead. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>template.&lt;xxx&gt;</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Sets additional options on the Spring <code>JdbcTemplate</code> that is used behind the scenes to execute the queries. For instance, <code>template.maxRows=10</code>. For detailed docu
 mentation, see the <a shape="rect" class="external-link" href="http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/jdbc/core/JdbcTemplate.html" rel="nofollow">JdbcTemplate javadoc</a> documentation. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>allowNamedParameters</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>boolean</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>true</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> Whether to allow using named parameters in the queries. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>processingStrategy</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> <strong>SQL consumer only:</str
 ong> Allows to plugin to use a custom <code>org.apache.camel.component.sql.SqlProcessingStrategy</code> to execute queries when the consumer has processed the rows/batch. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>prepareStatementStrategy</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> Allows to plugin to use a custom <code>org.apache.camel.component.sql.SqlPrepareStatementStrategy</code> to control preparation of the query and prepared statement. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>consumer.delay</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>long</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>500</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong
 >Camel 2.11:</strong> <strong>SQL consumer only:</strong> Delay in milliseconds between each poll. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>consumer.initialDelay</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>long</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>1000</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> <strong>SQL consumer only:</strong> Milliseconds before polling starts. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>consumer.useFixedDelay</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>boolean</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> <strong>SQL consumer only:</strong> Set to <code>true</code> to use fixed delay between polls, otherwise fi
 xed rate is used. See <a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ScheduledExecutorService.html" rel="nofollow">ScheduledExecutorService</a> in JDK for details. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>maxMessagesPerPoll</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>int</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>0</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> <strong>SQL consumer only:</strong> An integer value to define the maximum number of messages to gather per poll. By default, no maximum is set. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>consumer.useIterator</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>boolean</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>true</code> </p></td><td
  colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> <strong>SQL consumer only:</strong> If <code>true</code> each row returned when polling will be processed individually. If <code>false</code> the entire <code>java.util.List</code> of data is set as the IN body. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>consumer.routeEmptyResultSet</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>boolean</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> <strong>SQL consumer only:</strong> Whether to route a single empty <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> if there was no data to poll. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>consumer.onConsume</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>St
 ring</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> <strong>SQL consumer only:</strong> After processing each row then this query can be executed, if the <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> was processed successfully, for example to mark the row as processed. The query can have parameter. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>consumer.onConsumeFailed</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>String</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> <strong>SQL consumer only:</strong> After processing each row then this query can be executed, if the <a shape="rect" href="exchange.html" title="Exchange">Exchange</a> failed, for ex
 ample to  mark the row as failed. The query can have parameter. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>consumer.onConsumeBatchComplete</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>String</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> <strong>SQL consumer only:</strong> After processing the entire batch, this query can be executed to bulk update rows etc. The query cannot have parameters. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>consumer.expectedUpdateCount</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>int</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>-1</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> <strong>SQL consumer only:</strong> If using <
 code>consumer.onConsume</code> then this option can be used to set an expected number of rows being updated. Typically you may set this to <code>1</code> to expect one row to be updated. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>consumer.breakBatchOnConsumeFail</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>boolean</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> <strong>SQL consumer only:</strong> If using <code>consumer.onConsume</code> and it fails, then this option controls whether to break out of the batch or continue processing the next row from the batch. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>alwaysPopulateStatement</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>boolean</code> </p></td><td colspan="1" rowspan="1" class="
 confluenceTd"><p> <code>false</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11:</strong> <strong>SQL producer only:</strong> If enabled then the <code>populateStatement</code> method from <code>org.apache.camel.component.sql.SqlPrepareStatementStrategy</code> is always invoked, also if there is no expected parameters to be prepared. When this is <code>false</code> then the <code>populateStatement</code> is only invoked if there is 1 or more expected parameters to be set; for example this avoids reading the message body/headers for SQL queries with no parameters. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>separator</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>char</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>,</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.11.1:</strong> The separator to use when parameter values is
  taken from message body (if the body is a String type), to be inserted at # placeholders. Notice if you use named parameters, then a <code>Map</code> type is used instead. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>outputType</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>String</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>SelectList</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Camel 2.12.0:</strong> Make the output of consumer or producer to <code>SelectList</code> as List of Map, or <code>SelectOne</code> as single Java object in the following way:<br clear="none">
 a) If the query has only single column, then that JDBC Column object is returned. (such as <code>SELECT COUNT( * ) FROM PROJECT</code> will return a Long object.<br clear="none">
 b) If the query has more than one column, then it will return a Map of that result.<br clear="none">
@@ -32649,6 +32540,11 @@ assertEquals(&quot;Linux&quot;, row.get(
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[   from(&quot;direct:projects&quot;)
      .to(&quot;sql:select * from projects where license = :#lic and id &gt; :#min order by id&quot;)
 ]]></script>
+</div></div><h4 id="BookInOnePage-Usingexpressionparameters">Using expression parameters</h4><p><strong>Available as of Camel 2.14</strong></p><p>In the given route below, we want to get all the project from the database. It uses the body of the exchange for defining the license and uses the value of a property as the second parameter.</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[from(&quot;direct:projects&quot;)
+  .setBody(constant(&quot;ASF&quot;))
+  .setProperty(&quot;min&quot;, constant(123))
+  .to(&quot;sql:select * from projects where license = :#${body} and id &gt; :#${property.min} order by id&quot;)]]></script>
 </div></div><h3 id="BookInOnePage-UsingtheJDBCbasedidempotentrepository">Using the JDBC based idempotent repository</h3><p><strong>Available as of Camel 2.7</strong>: In this section we will use the JDBC based idempotent repository.</p>    <div class="aui-message success shadowed information-macro">
                     <p class="title">Abstract class</p>
                             <span class="aui-icon icon-success">Icon</span>

Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.