Modified: websites/production/camel/content/velocity.html
==============================================================================
--- websites/production/camel/content/velocity.html (original)
+++ websites/production/camel/content/velocity.html Fri Aug 25 09:20:43 2017
@@ -36,17 +36,6 @@
     <![endif]-->
 
 
-  <link href='//camel.apache.org/styles/highlighter/styles/shCoreCamel.css' 
rel='stylesheet' type='text/css' />
-  <link href='//camel.apache.org/styles/highlighter/styles/shThemeCamel.css' 
rel='stylesheet' type='text/css' />
-  <script src='//camel.apache.org/styles/highlighter/scripts/shCore.js' 
type='text/javascript'></script>
-  <script src='//camel.apache.org/styles/highlighter/scripts/shBrushJava.js' 
type='text/javascript'></script>
-  <script src='//camel.apache.org/styles/highlighter/scripts/shBrushXml.js' 
type='text/javascript'></script>
-  <script src='//camel.apache.org/styles/highlighter/scripts/shBrushPlain.js' 
type='text/javascript'></script>
-  
-  <script type="text/javascript">
-  SyntaxHighlighter.defaults['toolbar'] = false;
-  SyntaxHighlighter.all();
-  </script>
 
     <title>
     Apache Camel: Velocity
@@ -86,106 +75,40 @@
        <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 
id="Velocity-Velocity">Velocity</h2><p>The <strong>velocity:</strong> component 
allows you to process a message using an <a shape="rect" class="external-link" 
href="http://velocity.apache.org/";>Apache Velocity</a> template. This can be 
ideal when using <a shape="rect" href="templating.html">Templating</a> to 
generate responses for requests.</p><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="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
+<div class="wiki-content maincontent"><h2 
id="Velocity-Velocity">Velocity</h2><p>The <strong>velocity:</strong> component 
allows you to process a message using an <a shape="rect" class="external-link" 
href="http://velocity.apache.org/";>Apache Velocity</a> template. This can be 
ideal when using <a shape="rect" href="templating.html">Templating</a> to 
generate responses for requests.</p><p>Maven users will need to add the 
following dependency to their <code>pom.xml</code> for this 
component:</p><parameter 
ac:name="">xml</parameter><plain-text-body>&lt;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-velocity&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="Velocity-URIformat">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[velocity:templateName[?options]
-]]></script>
-</div></div><p>Where <strong>templateName</strong> is the classpath-local URI 
of the template to invoke; or the complete URL of the remote template (eg: <a 
shape="rect" class="external-link" href="file://folder/myfile.vm" 
rel="nofollow">file://folder/myfile.vm</a>).</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="Velocity-Options">Options</h3><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>loaderCache</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Velocity based file loader 
cache.</
 p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>contentCache</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Cache for the resource content when it is 
loaded. <br clear="none" class="atl-forced-newline"> Note : as of Camel 2.9 
cached resource content can be cleared via JMX using the endpoint's 
<code>clearContentCache</code> operation.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>encoding</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Character encoding of the 
resource content.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>propertiesFile</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>New option in Camel 2.1: The 
 URI of the properties file which is used for VelocityEngine 
initialization.</p></td></tr></tbody></table></div></div>
-
-
-<h3 id="Velocity-MessageHeaders">Message Headers</h3><p>The velocity component 
sets a couple headers on the message (you can't set these yourself and from 
Camel 2.1 velocity component will not set these headers which will cause some 
side effect on the dynamic template support):</p><div 
class="confluenceTableSmall"><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelVelocityResourceUri</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The 
<strong>templateName</strong> as a <code>String</code> 
object.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelVelocitySupplementalContext</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> 
To add additional information to the used Velo
 cityContext. The value of this header should be a <code>Map</code> with 
key/values that will added (override any existing key with the same name).<br 
clear="none">This can be used to pre setup some common key/values you want to 
reuse in your velocity endpoints.</p></td></tr></tbody></table></div></div>
-
-
-<p>Headers set during the Velocity evaluation are returned to the message and 
added as headers. Then its kinda possible to return values from Velocity to the 
Message.</p><p>For example, to set the header value of <code>fruit</code> in 
the Velocity template <code>.tm</code>:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[$in.setHeader(&quot;fruit&quot;, 
&quot;Apple&quot;)
-]]></script>
-</div></div><p>The <code>fruit</code> header is now accessible from the 
<code>message.out.headers</code>.</p><h3 id="Velocity-VelocityContext">Velocity 
Context</h3><p>Camel will provide exchange information in the Velocity context 
(just a <code>Map</code>). The <code>Exchange</code> is transfered as:</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>value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The <code>Exchange</code> 
itself.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange.properties</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The <code>Exchange</code> 
properties.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>headers</c
 ode></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The headers 
of the In message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>camelContext</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The Camel Context 
instance.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The In message.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>in</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The In 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>body</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The In message body.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>out</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The Out message (only for InOut message 
exchange pattern).</p></td></tr><tr><
 td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The Out message (only for InOut message 
exchange pattern).</p></td></tr></tbody></table></div></div>
-
-
-<p>Since Camel-2.14, you can setup a custom Velocity Context yourself by 
setting the message header <strong>CamelVelocityContext&#160;</strong>just like 
this</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[   VelocityContext velocityContext = new 
VelocityContext(variableMap);
-   exchange.getIn().setHeader(&quot;CamelVelocityContext&quot;, 
velocityContext);
-]]></script>
-</div></div><p>&#160;</p><h3 id="Velocity-Hotreloading">Hot 
reloading</h3><p>The Velocity template resource is, by default, hot reloadable 
for both file and classpath resources (expanded jar). If you set 
<code>contentCache=true</code>, Camel will only load the resource once, and 
thus hot reloading is not possible. This scenario can be used in production, 
when the resource never changes.</p><h3 id="Velocity-Dynamictemplates">Dynamic 
templates</h3><p><strong>Available as of Camel 2.1</strong><br clear="none"> 
Camel provides two headers by which you can define a different resource 
location for a template or the template content itself. If any of these headers 
is set then Camel uses this over the endpoint configured resource. This allows 
you to provide a dynamic template at runtime.</p><div 
class="confluenceTableSmall"><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" class="co
 nfluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>CamelVelocityResourceUri</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> A URI for the 
template resource to use instead of the endpoint 
configured.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CamelVelocityTemplate</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.1:</strong> The template to use instead 
of the endpoint configured.</p></td></tr></tbody></table></div></div>
-
-
-<h3 id="Velocity-Samples">Samples</h3><p>For example you could use something 
like</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;activemq:My.Queue&quot;).
-  to(&quot;velocity:com/acme/MyResponse.vm&quot;);
-]]></script>
-</div></div><p>To use a Velocity template to formulate a response to a message 
for InOut message exchanges (where there is a <code>JMSReplyTo</code> 
header).</p><p>If you want to use InOnly and consume the message and send it to 
another destination, you could use the following route:</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;activemq:My.Queue&quot;).
-  to(&quot;velocity:com/acme/MyResponse.vm&quot;).
-  to(&quot;activemq:Another.Queue&quot;);
-]]></script>
-</div></div><p>And to use the content cache, e.g. for use in production, where 
the <code>.vm</code> template never changes:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;activemq:My.Queue&quot;).
-  to(&quot;velocity:com/acme/MyResponse.vm?contentCache=true&quot;).
-  to(&quot;activemq:Another.Queue&quot;);
-]]></script>
-</div></div><p>And a file based resource:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;activemq:My.Queue&quot;).
-  to(&quot;velocity:file://myfolder/MyResponse.vm?contentCache=true&quot;).
-  to(&quot;activemq:Another.Queue&quot;);
-]]></script>
-</div></div><p>In <strong>Camel 2.1</strong> it's possible to specify what 
template the component should use dynamically via a header, so for 
example:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;direct:in&quot;).
-  
setHeader(&quot;CamelVelocityResourceUri&quot;).constant(&quot;path/to/my/template.vm&quot;).
-  to(&quot;velocity:dummy&quot;);
-]]></script>
-</div></div><p>In <strong>Camel 2.1</strong> it's possible to specify a 
template directly as a header the component should use dynamically via a 
header, so for example:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;direct:in&quot;).
-  setHeader(&quot;CamelVelocityTemplate&quot;).constant(&quot;Hi this is a 
velocity template that can do templating ${body}&quot;).
-  to(&quot;velocity:dummy&quot;);
-]]></script>
-</div></div><h3 id="Velocity-TheEmailSample">The Email Sample</h3><p>In this 
sample we want to use Velocity templating for an order confirmation email. The 
email template is laid out in Velocity as:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[Dear ${headers.lastName}, ${headers.firstName}
+</plain-text-body><h3 id="Velocity-URIformat">URI 
format</h3><plain-text-body>velocity:templateName[?options]
+</plain-text-body><p>Where <strong>templateName</strong> is the 
classpath-local URI of the template to invoke; or the complete URL of the 
remote template (eg: <a shape="rect" class="external-link" 
href="file://folder/myfile.vm" 
rel="nofollow">file://folder/myfile.vm</a>).</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="Velocity-Options">Options</h3><parameter 
ac:name="class">confluenceTableSmall</parameter><rich-text-body><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>loaderCache</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confl
 uenceTd"><p>Velocity based file loader cache.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>contentCache</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Cache for the resource content 
when it is loaded. <br clear="none" class="atl-forced-newline"> Note : as of 
Camel 2.9 cached resource content can be cleared via JMX using the endpoint's 
<code>clearContentCache</code> operation.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>encoding</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Character encoding of the 
resource content.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>propertiesFile</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class=
 "confluenceTd"><p>New option in Camel 2.1: The URI of the properties file 
which is used for VelocityEngine 
initialization.</p></td></tr></tbody></table></div></rich-text-body><h3 
id="Velocity-MessageHeaders">Message Headers</h3><p>The velocity component sets 
a couple headers on the message (you can't set these yourself and from Camel 
2.1 velocity component will not set these headers which will cause some side 
effect on the dynamic template support):</p><parameter 
ac:name="class">confluenceTableSmall</parameter><rich-text-body><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelVelocityResourceUri</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The 
<strong>templateName</strong> as a <code>String</code> 
object.</p></td></tr><tr><td colspan="1" r
 owspan="1" 
class="confluenceTd"><p><code>CamelVelocitySupplementalContext</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.16:</strong> 
To add additional information to the used VelocityContext. The value of this 
header should be a <code>Map</code> with key/values that will added (override 
any existing key with the same name).<br clear="none">This can be used to pre 
setup some common key/values you want to reuse in your velocity 
endpoints.</p></td></tr></tbody></table></div></rich-text-body><p>Headers set 
during the Velocity evaluation are returned to the message and added as 
headers. Then its kinda possible to return values from Velocity to the 
Message.</p><p>For example, to set the header value of <code>fruit</code> in 
the Velocity template 
<code>.tm</code>:</p><plain-text-body>$in.setHeader("fruit", "Apple")
+</plain-text-body><p>The <code>fruit</code> header is now accessible from the 
<code>message.out.headers</code>.</p><h3 id="Velocity-VelocityContext">Velocity 
Context</h3><p>Camel will provide exchange information in the Velocity context 
(just a <code>Map</code>). The <code>Exchange</code> is transfered 
as:</p><parameter 
ac:name="class">confluenceTableSmall</parameter><rich-text-body><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>value</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The <code>Exchange</code> 
itself.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>exchange.properties</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The <code>Exchange</code> 
properties.</p></td></tr><tr><td colspan="1" rowsp
 an="1" class="confluenceTd"><p><code>headers</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The headers of the In 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>camelContext</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The Camel Context 
instance.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>request</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The In message.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>in</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The In 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>body</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The In message body.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>out</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The Out message (only for InOu
 t message exchange pattern).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>response</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The Out message (only for InOut message 
exchange pattern).</p></td></tr></tbody></table></div></rich-text-body><p>Since 
Camel-2.14, you can setup a custom Velocity Context yourself by setting the 
message header <strong>CamelVelocityContext&#160;</strong>just like 
this</p><parameter ac:name="language">java</parameter><plain-text-body>   
VelocityContext velocityContext = new VelocityContext(variableMap);
+   exchange.getIn().setHeader("CamelVelocityContext", velocityContext);
+</plain-text-body><p>&#160;</p><h3 id="Velocity-Hotreloading">Hot 
reloading</h3><p>The Velocity template resource is, by default, hot reloadable 
for both file and classpath resources (expanded jar). If you set 
<code>contentCache=true</code>, Camel will only load the resource once, and 
thus hot reloading is not possible. This scenario can be used in production, 
when the resource never changes.</p><h3 id="Velocity-Dynamictemplates">Dynamic 
templates</h3><p><strong>Available as of Camel 2.1</strong><br clear="none"> 
Camel provides two headers by which you can define a different resource 
location for a template or the template content itself. If any of these headers 
is set then Camel uses this over the endpoint configured resource. This allows 
you to provide a dynamic template at runtime.</p><parameter 
ac:name="class">confluenceTableSmall</parameter><rich-text-body><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Heade
 r</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Type</p></th><th 
colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>CamelVelocityResourceUri</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.1:</strong> A URI for the 
template resource to use instead of the endpoint 
configured.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>CamelVelocityTemplate</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.1:</strong> The template to use instead 
of the endpoint 
configured.</p></td></tr></tbody></table></div></rich-text-body><h3 
id="Velocity-Samples">Samples</h3><p>For example you could use something 
like</p><plain-text-body>from("activemq:My.Queue").
+  to("velocity:com/acme/MyResponse.vm");
+</plain-text-body><p>To use a Velocity template to formulate a response to a 
message for InOut message exchanges (where there is a <code>JMSReplyTo</code> 
header).</p><p>If you want to use InOnly and consume the message and send it to 
another destination, you could use the following 
route:</p><plain-text-body>from("activemq:My.Queue").
+  to("velocity:com/acme/MyResponse.vm").
+  to("activemq:Another.Queue");
+</plain-text-body><p>And to use the content cache, e.g. for use in production, 
where the <code>.vm</code> template never 
changes:</p><plain-text-body>from("activemq:My.Queue").
+  to("velocity:com/acme/MyResponse.vm?contentCache=true").
+  to("activemq:Another.Queue");
+</plain-text-body><p>And a file based 
resource:</p><plain-text-body>from("activemq:My.Queue").
+  to("velocity:file://myfolder/MyResponse.vm?contentCache=true").
+  to("activemq:Another.Queue");
+</plain-text-body><p>In <strong>Camel 2.1</strong> it's possible to specify 
what template the component should use dynamically via a header, so for 
example:</p><plain-text-body>from("direct:in").
+  setHeader("CamelVelocityResourceUri").constant("path/to/my/template.vm").
+  to("velocity:dummy");
+</plain-text-body><p>In <strong>Camel 2.1</strong> it's possible to specify a 
template directly as a header the component should use dynamically via a 
header, so for example:</p><plain-text-body>from("direct:in").
+  setHeader("CamelVelocityTemplate").constant("Hi this is a velocity template 
that can do templating ${body}").
+  to("velocity:dummy");
+</plain-text-body><h3 id="Velocity-TheEmailSample">The Email Sample</h3><p>In 
this sample we want to use Velocity templating for an order confirmation email. 
The email template is laid out in Velocity as:</p><plain-text-body>Dear 
${headers.lastName}, ${headers.firstName}
 
 Thanks for the order of ${headers.item}.
 
 Regards Camel Riders Bookstore
 ${body}
-]]></script>
-</div></div><p>And the java code:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-private Exchange createLetter() {
-    Exchange exchange = 
context.getEndpoint(&quot;direct:a&quot;).createExchange();
-    Message msg = exchange.getIn();
-    msg.setHeader(&quot;firstName&quot;, &quot;Claus&quot;);
-    msg.setHeader(&quot;lastName&quot;, &quot;Ibsen&quot;);
-    msg.setHeader(&quot;item&quot;, &quot;Camel in Action&quot;);
-    msg.setBody(&quot;PS: Next beer is on me, James&quot;);
-    return exchange;
-}
-
-@Test
-public void testVelocityLetter() throws Exception {
-    MockEndpoint mock = getMockEndpoint(&quot;mock:result&quot;);
-    mock.expectedMessageCount(1);
-    mock.message(0).body(String.class).contains(&quot;Thanks for the order of 
Camel in Action&quot;);
-
-    template.send(&quot;direct:a&quot;, createLetter());
-
-    mock.assertIsSatisfied();
-}
-
-protected RouteBuilder createRouteBuilder() throws Exception {
-    return new RouteBuilder() {
-        public void configure() throws Exception {
-            
from(&quot;direct:a&quot;).to(&quot;velocity:org/apache/camel/component/velocity/letter.vm&quot;).to(&quot;mock:result&quot;);
-        }
-    };
-}
-]]></script>
-</div></div><h3 id="Velocity-SeeAlso">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>
+</plain-text-body><p>And the java 
code:<plain-text-body>{snippet:id=e1|lang=java|url=camel/trunk/components/camel-velocity/src/test/java/org/apache/camel/component/velocity/VelocityLetterTest.java}</plain-text-body><parameter
 ac:name=""><a shape="rect" href="endpoint-see-also.html">Endpoint See 
Also</a></parameter></p></div>
         </td>
         <td valign="top">
           <div class="navigation">

Modified: websites/production/camel/content/xmlrpc.html
==============================================================================
--- websites/production/camel/content/xmlrpc.html (original)
+++ websites/production/camel/content/xmlrpc.html Fri Aug 25 09:20:43 2017
@@ -36,17 +36,6 @@
     <![endif]-->
 
 
-  <link href='//camel.apache.org/styles/highlighter/styles/shCoreCamel.css' 
rel='stylesheet' type='text/css' />
-  <link href='//camel.apache.org/styles/highlighter/styles/shThemeCamel.css' 
rel='stylesheet' type='text/css' />
-  <script src='//camel.apache.org/styles/highlighter/scripts/shCore.js' 
type='text/javascript'></script>
-  <script src='//camel.apache.org/styles/highlighter/scripts/shBrushJava.js' 
type='text/javascript'></script>
-  <script src='//camel.apache.org/styles/highlighter/scripts/shBrushXml.js' 
type='text/javascript'></script>
-  <script src='//camel.apache.org/styles/highlighter/scripts/shBrushPlain.js' 
type='text/javascript'></script>
-  
-  <script type="text/javascript">
-  SyntaxHighlighter.defaults['toolbar'] = false;
-  SyntaxHighlighter.all();
-  </script>
 
     <title>
     Apache Camel: XmlRpc
@@ -86,16 +75,13 @@
        <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 id="XmlRpc-XmlRpcComponent">XmlRpc 
Component</h2><p><strong>Available as of Camel 2.11</strong></p><p>This 
component provides a dataformat for xml, which allows serialization and 
deserialization of request messages and response message using Apache XmlRpc's 
binary dataformat. You can also invoke the XMLRPC Service through the 
camel-xmlrpc producer.</p><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="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
+<div class="wiki-content maincontent"><h2 id="XmlRpc-XmlRpcComponent">XmlRpc 
Component</h2><p><strong>Available as of Camel 2.11</strong></p><p>This 
component provides a dataformat for xml, which allows serialization and 
deserialization of request messages and response message using Apache XmlRpc's 
binary dataformat. You can also invoke the XMLRPC Service through the 
camel-xmlrpc producer.</p><p>Maven users will need to add the following 
dependency to their <code>pom.xml</code> for this component:</p><parameter 
ac:name="">xml</parameter><plain-text-body>&lt;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-xmlrpc&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="XmlRpc-XmlRpcOverview">XmlRpc Overview</h3><p>It's a <a 
shape="rect" class="external-link" href="http://xmlrpc.scripting.com/spec"; 
rel="nofollow">spec</a> and a set of implementations that allow software 
running on disparate operating systems, running in different environments to 
make procedure calls over the Internet.</p><p>It's remote procedure calling 
using HTTP as the transport and XML as the encoding. XML-RPC is designed to be 
as simple as possible, while allowing complex data structures to be 
transmitted, processed and returned.</p><p>An example of a typical XML-RPC 
request would be:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;?xml version=&quot;1.0&quot;?&gt;
+</plain-text-body><h3 id="XmlRpc-XmlRpcOverview">XmlRpc Overview</h3><p>It's a 
<a shape="rect" class="external-link" href="http://xmlrpc.scripting.com/spec"; 
rel="nofollow">spec</a> and a set of implementations that allow software 
running on disparate operating systems, running in different environments to 
make procedure calls over the Internet.</p><p>It's remote procedure calling 
using HTTP as the transport and XML as the encoding. XML-RPC is designed to be 
as simple as possible, while allowing complex data structures to be 
transmitted, processed and returned.</p><p>An example of a typical XML-RPC 
request would be:</p><plain-text-body>&lt;?xml version="1.0"?&gt;
 &lt;methodCall&gt;
   &lt;methodName&gt;examples.getStateName&lt;/methodName&gt;
   &lt;params&gt;
@@ -104,9 +90,7 @@
     &lt;/param&gt;
   &lt;/params&gt;
 &lt;/methodCall&gt;
-]]></script>
-</div></div><p>An example of a typical XML-RPC response would be:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;?xml version=&quot;1.0&quot;?&gt;
+</plain-text-body><p>An example of a typical XML-RPC response would 
be:</p><plain-text-body>&lt;?xml version="1.0"?&gt;
 &lt;methodResponse&gt;
   &lt;params&gt;
     &lt;param&gt;
@@ -114,9 +98,7 @@
     &lt;/param&gt;
   &lt;/params&gt;
 &lt;/methodResponse&gt;
-]]></script>
-</div></div><p>A typical XML-RPC fault would be:</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;?xml version=&quot;1.0&quot;?&gt;
+</plain-text-body><p>A typical XML-RPC fault would 
be:</p><plain-text-body>&lt;?xml version="1.0"?&gt;
 &lt;methodResponse&gt;
   &lt;fault&gt;
     &lt;value&gt;
@@ -133,72 +115,13 @@
     &lt;/value&gt;
   &lt;/fault&gt;
 &lt;/methodResponse&gt;
-]]></script>
-</div></div><h3 id="XmlRpc-URIformat">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[xmlrpc://serverUri[?options]
-]]></script>
-</div></div><h3 id="XmlRpc-Options">Options</h3><div 
class="confluenceTableSmall">
+</plain-text-body><h3 id="XmlRpc-URIformat">URI 
format</h3><plain-text-body>xmlrpc://serverUri[?options]
+</plain-text-body><h3 id="XmlRpc-Options">Options</h3><parameter 
ac:name="class">confluenceTableSmall</parameter><rich-text-body>
 <div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Property </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>basicEncoding</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> Sets the encoding for basic authentication, null means 
UTF-8 is chosen. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>basicUserName</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> The user name for basic authentication. 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>basicPassword</code> </p></td><td colspan="1" rowspan="1
 " class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> The password for basic authentication. 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>clientConfigurer</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The reference id of the XmlRpcClient configurer which 
implement the interface of XmlRpcClientConfigurer to setup the XmlRpcClient as 
user wants. The value should be start with "#" such as 
"#myConfigurer"</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>connectionTimeout</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>0</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> Set the connection timeout in 
milliseconds, 0 is to disable it</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>contentLengthOptional</co
 de> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>false</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> whether a "Content-Length" header may be omitted. The 
XML-RPC specification demands, that such a header be present. 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>enabledForExceptions</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> whether the response should contain a 
"faultCause" element in case of errors. The "faultCause" is an exception, which 
the server has trapped and written into a byte stream as a serializable object. 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>enabledForExtensions</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> whether extensions are enabled. By defaul
 t, the client or server is strictly compliant to the XML-RPC specification and 
extensions are disabled.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>encoding</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Sets the requests encoding, null means 
UTF-8 is chosen. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>gzipCompressing</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>false</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> Whether gzip compression is 
being used for transmitting the request. </p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>gzipRequesting</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>false</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Whether gzip 
compression is being used for transm
 itting the request. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>replyTimeout</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>0</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Set the reply timeout in milliseconds, 0 
is to disable it. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>userAgent</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> The http user agent header to set when 
doing xmlrpc requests </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>defaultMethodName</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> Since <strong>Camel 
2.14.0</strong>: The method name which would be used for the xmlrpc requests by 
default, if the Message header CamelXmlRp
 cMethodName is not set. </p></td></tr></tbody></table></div>
-</div>
-
-
-<h3 id="XmlRpc-MessageHeaders">Message Headers</h3><p>Camel XmlRpc uses these 
headers.</p><div class="confluenceTableSmall">
+</rich-text-body><h3 id="XmlRpc-MessageHeaders">Message Headers</h3><p>Camel 
XmlRpc uses these headers.</p><parameter 
ac:name="class">confluenceTableSmall</parameter><rich-text-body>
 <div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Header </p></th><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Description 
</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>CamelXmlRpcMethodName</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The XmlRpc method name which will be use for invoking 
the XmlRpc server. </p></td></tr></tbody></table></div>
-</div>
-
-
-<h3 id="XmlRpc-UsingtheXmlRpcdataformat">Using the XmlRpc data 
format</h3><p>As the XmlRpc message could be request or response, when you use 
the XmlRpcDataFormat, you need to specify the dataformat is for request or 
not.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-&lt;camelContext id=&quot;camel&quot; 
xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
-
-    &lt;!-- we define the xml rpc data formats to be used --&gt;
-    &lt;dataFormats&gt;
-        &lt;xmlrpc id=&quot;xmlrpcRequest&quot; request=&quot;true&quot;/&gt;
-        &lt;xmlrpc id=&quot;xmlrpcResponse&quot; request=&quot;false&quot;/&gt;
-    &lt;/dataFormats&gt;
-
-    &lt;route&gt;
-        &lt;from uri=&quot;direct:request&quot;/&gt;
-        &lt;marshal ref=&quot;xmlrpcRequest&quot;/&gt;
-        &lt;unmarshal&gt;
-           &lt;xmlrpc request=&quot;true&quot;/&gt;
-        &lt;/unmarshal&gt;
-        &lt;to uri=&quot;mock:request&quot; /&gt;
-    &lt;/route&gt;
-
-    &lt;route&gt;
-        &lt;from uri=&quot;direct:response&quot;/&gt;
-        &lt;marshal&gt;
-            &lt;xmlrpc request=&quot;false&quot;/&gt;
-        &lt;/marshal&gt;
-        &lt;unmarshal ref=&quot;xmlrpcResponse&quot;/&gt;
-        &lt;to uri=&quot;mock:response&quot; /&gt;
-    &lt;/route&gt;
-&lt;/camelContext&gt;
-]]></script>
-</div></div><h3 id="XmlRpc-InvokeXmlRpcServicefromClient">Invoke XmlRpc 
Service from Client</h3><p>To invoke the XmlRpc service, you need to specify 
the methodName on the message header and put the parameters into the message 
body like below code, then you can get the result message as you want. If the 
fault message is return, you should get an exception which cause if 
XmlRpcException.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[   String response = 
template.requestBodyAndHeader(xmlRpcServiceAddress, new 
Object[]{&quot;me&quot;}, XmlRpcConstants.METHOD_NAME, &quot;hello&quot;, 
String.class);
-]]></script>
-</div></div><h3 id="XmlRpc-HowtoconfiguretheXmlRpcClientwithJavacode">How to 
configure the XmlRpcClient with Java code</h3><p>camel-xmlrpc provides a 
pluggable strategy for configuring the XmlRpcClient used by the component, user 
just to implement the <strong>XmlRpcClientConfigurer</strong> interface and can 
configure the XmlRpcClient as he wants. The clientConfigure instance reference 
can be set through the uri option clientConfigure.</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-import org.apache.xmlrpc.client.XmlRpcClient;
-import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
-
-public class MyClientConfigurer implements XmlRpcClientConfigurer {
-
-    @Override
-    public void configureXmlRpcClient(XmlRpcClient client) {
-        // get the configure first
-        XmlRpcClientConfigImpl clientConfig = 
(XmlRpcClientConfigImpl)client.getClientConfig();
-        // change the value of clientConfig
-        clientConfig.setEnabledForExtensions(true);
-        // set the option on the XmlRpcClient
-        client.setMaxThreads(10);
-    }
-
-}
-]]></script>
-</div></div></div>
+</rich-text-body><h3 id="XmlRpc-UsingtheXmlRpcdataformat">Using the XmlRpc 
data format</h3><p>As the XmlRpc message could be request or response, when you 
use the XmlRpcDataFormat, you need to specify the dataformat is for request or 
not.</p><plain-text-body>{snippet:id=e1|lang=java|url=camel/trunk/components/camel-xmlrpc/src/test/resources/org/apache/camel/dataformat/xmlrpc/SpringXmlRpcDataFormatTest.xml}</plain-text-body><h3
 id="XmlRpc-InvokeXmlRpcServicefromClient">Invoke XmlRpc Service from 
Client</h3><p>To invoke the XmlRpc service, you need to specify the methodName 
on the message header and put the parameters into the message body like below 
code, then you can get the result message as you want. If the fault message is 
return, you should get an exception which cause if 
XmlRpcException.</p><plain-text-body>   String response = 
template.requestBodyAndHeader(xmlRpcServiceAddress, new Object[]{"me"}, 
XmlRpcConstants.METHOD_NAME, "hello", String.class);
+</plain-text-body><h3 
id="XmlRpc-HowtoconfiguretheXmlRpcClientwithJavacode">How to configure the 
XmlRpcClient with Java code</h3><p>camel-xmlrpc provides a pluggable strategy 
for configuring the XmlRpcClient used by the component, user just to implement 
the <strong>XmlRpcClientConfigurer</strong> interface and can configure the 
XmlRpcClient as he wants. The clientConfigure instance reference can be set 
through the uri option 
clientConfigure.</p><plain-text-body>{snippet:id=e1|lang=java|url=camel/trunk/components/camel-xmlrpc/src/test/java/org/apache/camel/component/xmlrpc/MyClientConfigurer.java}</plain-text-body></div>
         </td>
         <td valign="top">
           <div class="navigation">

Modified: websites/production/camel/content/xquery.html
==============================================================================
--- websites/production/camel/content/xquery.html (original)
+++ websites/production/camel/content/xquery.html Fri Aug 25 09:20:43 2017
@@ -36,17 +36,6 @@
     <![endif]-->
 
 
-  <link href='//camel.apache.org/styles/highlighter/styles/shCoreCamel.css' 
rel='stylesheet' type='text/css' />
-  <link href='//camel.apache.org/styles/highlighter/styles/shThemeCamel.css' 
rel='stylesheet' type='text/css' />
-  <script src='//camel.apache.org/styles/highlighter/scripts/shCore.js' 
type='text/javascript'></script>
-  <script src='//camel.apache.org/styles/highlighter/scripts/shBrushJava.js' 
type='text/javascript'></script>
-  <script src='//camel.apache.org/styles/highlighter/scripts/shBrushXml.js' 
type='text/javascript'></script>
-  <script src='//camel.apache.org/styles/highlighter/scripts/shBrushPlain.js' 
type='text/javascript'></script>
-  
-  <script type="text/javascript">
-  SyntaxHighlighter.defaults['toolbar'] = false;
-  SyntaxHighlighter.all();
-  </script>
 
     <title>
     Apache Camel: XQuery
@@ -86,78 +75,45 @@
        <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 
id="XQuery-XQuery">XQuery</h2><p>Camel supports <a shape="rect" 
class="external-link" href="http://www.w3.org/TR/xquery/"; 
rel="nofollow">XQuery</a> to allow an <a shape="rect" 
href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> to be used in the <a shape="rect" 
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>. For example you could use XQuery to create an <a 
shape="rect" href="predicate.html">Predicate</a> in a <a shape="rect" 
href="message-filter.html">Message Filter</a> or as an <a shape="rect" 
href="expression.html">Expression</a> for a <a shape="rect" 
href="recipient-list.html">Recipient List</a>.</p><h3 
id="XQuery-Options">Options</h3><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>Def
 ault 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>allowStAX</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.8.3/2.9:</strong> Whether to allow using StAX as the 
<code>javax.xml.transform.Source</code>.</p></td></tr></tbody></table></div></div>
-
-
-<h3 id="XQuery-Examples">Examples</h3><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;queue:foo&quot;).filter().
-  xquery(&quot;//foo&quot;).
-  to(&quot;queue:bar&quot;)
-]]></script>
-</div></div><p>You can also use functions inside your query, in which case you 
need an explicit type conversion (or you will get a org.w3c.dom.DOMException: 
HIERARCHY_REQUEST_ERR) by passing the Class as a second argument to the 
<strong>xquery()</strong> method.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;direct:start&quot;).
-  recipientList().xquery(&quot;concat(&#39;mock:foo.&#39;, 
/person/@city)&quot;, String.class);
-]]></script>
-</div></div><h3 id="XQuery-Variables">Variables</h3><p>The IN message body 
will be set as the <code>contextItem</code>. Besides this these Variables is 
also added as parameters:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Variable</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>exchange</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Exchange</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The current Exchange</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>in.body</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Object</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The In message's body</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>out.body</p></td><td colspan=
 "1" rowspan="1" class="confluenceTd"><p>Object</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The OUT message's body (if 
any)</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>in.headers.*</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Object</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>You can access the value of exchange.in.headers with 
key <strong>foo</strong> by using the variable which name is 
in.headers.foo</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>out.headers.*</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Object</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>You can access the value of exchange.out.headers with 
key <strong>foo</strong> by using the variable which name is out.headers.foo 
variable</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>key name</strong></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Object</p></td>
 <td colspan="1" rowspan="1" class="confluenceTd"><p>Any exchange.properties 
and exchange.in.headers and any additional parameters set using 
<code>setParameters(Map)</code>. These parameters is added with they own key 
name, for instance if there is an IN header with the key name 
<strong>foo</strong> then its added as 
<strong>foo</strong>.</p></td></tr></tbody></table></div><h3 
id="XQuery-UsingXMLconfiguration">Using XML configuration</h3><p>If you prefer 
to configure your routes in your <a shape="rect" href="spring.html">Spring</a> 
XML file then you can use XPath expressions as follows</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
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;
-       xmlns:foo=&quot;http://example.com/person&quot;
-       xsi:schemaLocation=&quot;
+<div class="wiki-content maincontent"><h2 
id="XQuery-XQuery">XQuery</h2><p>Camel supports <a shape="rect" 
class="external-link" href="http://www.w3.org/TR/xquery/"; 
rel="nofollow">XQuery</a> to allow an <a shape="rect" 
href="expression.html">Expression</a> or <a shape="rect" 
href="predicate.html">Predicate</a> to be used in the <a shape="rect" 
href="dsl.html">DSL</a> or <a shape="rect" href="xml-configuration.html">Xml 
Configuration</a>. For example you could use XQuery to create an <a 
shape="rect" href="predicate.html">Predicate</a> in a <a shape="rect" 
href="message-filter.html">Message Filter</a> or as an <a shape="rect" 
href="expression.html">Expression</a> for a <a shape="rect" 
href="recipient-list.html">Recipient List</a>.</p><h3 
id="XQuery-Options">Options</h3><parameter 
ac:name="class">confluenceTableSmall</parameter><rich-text-body><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>allowStAX</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.8.3/2.9:</strong> Whether 
to allow using StAX as the 
<code>javax.xml.transform.Source</code>.</p></td></tr></tbody></table></div></rich-text-body><h3
 id="XQuery-Examples">Examples</h3><plain-text-body>from("queue:foo").filter().
+  xquery("//foo").
+  to("queue:bar")
+</plain-text-body><p>You can also use functions inside your query, in which 
case you need an explicit type conversion (or you will get a 
org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR) by passing the Class as a 
second argument to the <strong>xquery()</strong> 
method.</p><plain-text-body>from("direct:start").
+  recipientList().xquery("concat('mock:foo.', /person/@city)", String.class);
+</plain-text-body><h3 id="XQuery-Variables">Variables</h3><p>The IN message 
body will be set as the <code>contextItem</code>. Besides this these Variables 
is also added as parameters:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Variable</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>exchange</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Exchange</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The current Exchange</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>in.body</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Object</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The In message's body</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>out.body</p></td><td co
 lspan="1" rowspan="1" class="confluenceTd"><p>Object</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The OUT message's body (if 
any)</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>in.headers.*</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Object</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>You can access the value of exchange.in.headers with 
key <strong>foo</strong> by using the variable which name is 
in.headers.foo</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>out.headers.*</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Object</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>You can access the value of exchange.out.headers with 
key <strong>foo</strong> by using the variable which name is out.headers.foo 
variable</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>key name</strong></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Object</p
 ></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Any 
 >exchange.properties and exchange.in.headers and any additional parameters set 
 >using <code>setParameters(Map)</code>. These parameters is added with they 
 >own key name, for instance if there is an IN header with the key name 
 ><strong>foo</strong> then its added as 
 ><strong>foo</strong>.</p></td></tr></tbody></table></div><h3 
 >id="XQuery-UsingXMLconfiguration">Using XML configuration</h3><p>If you 
 >prefer to configure your routes in your <a shape="rect" 
 >href="spring.html">Spring</a> XML file then you can use XPath expressions as 
 >follows</p><parameter 
 >ac:name="lang">xml</parameter><plain-text-body>&lt;beans 
 >xmlns="http://www.springframework.org/schema/beans";
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xmlns:foo="http://example.com/person";
+       xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
-       http://camel.apache.org/schema/spring 
http://camel.apache.org/schema/spring/camel-spring.xsd&quot;&gt;
+       http://camel.apache.org/schema/spring 
http://camel.apache.org/schema/spring/camel-spring.xsd"&gt;
 
-  &lt;camelContext id=&quot;camel&quot; 
xmlns=&quot;http://activemq.apache.org/camel/schema/spring&quot;&gt;
+  &lt;camelContext id="camel" 
xmlns="http://activemq.apache.org/camel/schema/spring"&gt;
     &lt;route&gt;
-      &lt;from uri=&quot;activemq:MyQueue&quot;/&gt;
+      &lt;from uri="activemq:MyQueue"/&gt;
       &lt;filter&gt;
-        &lt;xquery&gt;/foo:person[@name=&#39;James&#39;]&lt;/xquery&gt;
-        &lt;to uri=&quot;mqseries:SomeOtherQueue&quot;/&gt;
+        &lt;xquery&gt;/foo:person[@name='James']&lt;/xquery&gt;
+        &lt;to uri="mqseries:SomeOtherQueue"/&gt;
       &lt;/filter&gt;
     &lt;/route&gt;
   &lt;/camelContext&gt;
 &lt;/beans&gt;
-]]></script>
-</div></div><p>Notice how we can reuse the namespace prefixes, 
<strong>foo</strong> in this case, in the XPath expression for easier namespace 
based XQuery expressions!</p><p>When you use functions in your XQuery 
expression you need an explicit type conversion which is done in the xml 
configuration via the <strong>@type</strong> attribute:</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[    &lt;xquery 
type=&quot;java.lang.String&quot;&gt;concat(&#39;mock:foo.&#39;, 
/person/@city)&lt;/xquery&gt;
-]]></script>
-</div></div><h3 id="XQuery-UsingXQueryastransformation">Using XQuery as 
transformation</h3><p>We can do a message translation using transform or 
setBody in the route, as shown below:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;direct:start&quot;).
-   transform().xquery(&quot;/people/person&quot;);]]></script>
-</div></div><p>Notice that xquery will use DOMResult by default, so if we want 
to grab the value of the person node, using text() we need to tell xquery to 
use String as result type, as shown:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;direct:start&quot;).
-   transform().xquery(&quot;/people/person/text()&quot;, 
String.class);]]></script>
-</div></div><p>&#160;</p><h3 id="XQuery-UsingXQueryasanendpoint">Using XQuery 
as an endpoint</h3><p>Sometimes an XQuery expression can be quite large; it can 
essentally be used for <a shape="rect" href="templating.html">Templating</a>. 
So you may want to use an <a shape="rect" href="xquery-endpoint.html">XQuery 
Endpoint</a> so you can route using XQuery templates.</p><p>The following 
example shows how to take a message of an ActiveMQ queue (MyQueue) and 
transform it using XQuery and send it to MQSeries.</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[  &lt;camelContext id=&quot;camel&quot; 
xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
+</plain-text-body><p>Notice how we can reuse the namespace prefixes, 
<strong>foo</strong> in this case, in the XPath expression for easier namespace 
based XQuery expressions!</p><p>When you use functions in your XQuery 
expression you need an explicit type conversion which is done in the xml 
configuration via the <strong>@type</strong> attribute:</p><parameter 
ac:name="lang">xml</parameter><plain-text-body>    &lt;xquery 
type="java.lang.String"&gt;concat('mock:foo.', /person/@city)&lt;/xquery&gt;
+</plain-text-body><h3 id="XQuery-UsingXQueryastransformation">Using XQuery as 
transformation</h3><p>We can do a message translation using transform or 
setBody in the route, as shown below:</p><plain-text-body>from("direct:start").
+   transform().xquery("/people/person");</plain-text-body><p>Notice that 
xquery will use DOMResult by default, so if we want to grab the value of the 
person node, using text() we need to tell xquery to use String as result type, 
as shown:</p><plain-text-body>from("direct:start").
+   transform().xquery("/people/person/text()", 
String.class);</plain-text-body><p>&#160;</p><h3 
id="XQuery-UsingXQueryasanendpoint">Using XQuery as an 
endpoint</h3><p>Sometimes an XQuery expression can be quite large; it can 
essentally be used for <a shape="rect" href="templating.html">Templating</a>. 
So you may want to use an <a shape="rect" href="xquery-endpoint.html">XQuery 
Endpoint</a> so you can route using XQuery templates.</p><p>The following 
example shows how to take a message of an ActiveMQ queue (MyQueue) and 
transform it using XQuery and send it to MQSeries.</p><plain-text-body>  
&lt;camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"&gt;
     &lt;route&gt;
-      &lt;from uri=&quot;activemq:MyQueue&quot;/&gt;
-      &lt;to uri=&quot;xquery:com/acme/someTransform.xquery&quot;/&gt;
-      &lt;to uri=&quot;mqseries:SomeOtherQueue&quot;/&gt;
+      &lt;from uri="activemq:MyQueue"/&gt;
+      &lt;to uri="xquery:com/acme/someTransform.xquery"/&gt;
+      &lt;to uri="mqseries:SomeOtherQueue"/&gt;
     &lt;/route&gt;
   &lt;/camelContext&gt;
-]]></script>
-</div></div><h3 id="XQuery-Examples.1">Examples</h3><p>Here is a simple <a 
shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryFilterTest.java";>example</a>
 using an XQuery expression as a predicate in a <a shape="rect" 
href="message-filter.html">Message Filter</a></p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-from(&quot;direct:start&quot;).filter().xquery(&quot;/person[@name=&#39;James&#39;]&quot;).to(&quot;mock:result&quot;);
-]]></script>
-</div></div><p>This <a shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryWithNamespacesFilterTest.java";>example</a>
 uses XQuery with namespaces as a predicate in a <a shape="rect" 
href="message-filter.html">Message Filter</a></p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-Namespaces ns = new Namespaces(&quot;c&quot;, 
&quot;http://acme.com/cheese&quot;);
-
-from(&quot;direct:start&quot;).
-        filter().xquery(&quot;/c:person[@name=&#39;James&#39;]&quot;, ns).
-        to(&quot;mock:result&quot;);
-]]></script>
-</div></div><h3 id="XQuery-LearningXQuery">Learning XQuery</h3><p>XQuery is a 
very powerful language for querying, searching, sorting and returning XML. For 
help learning XQuery try these tutorials</p><ul><li>Mike Kay's <a shape="rect" 
class="external-link" href="http://www.stylusstudio.com/xquery_primer.html"; 
rel="nofollow">XQuery Primer</a></li><li>the W3Schools <a shape="rect" 
class="external-link" href="http://www.w3schools.com/xquery/default.asp"; 
rel="nofollow">XQuery Tutorial</a></li></ul><p>You might also find the <a 
shape="rect" class="external-link" href="http://www.w3.org/TR/xpath-functions/"; 
rel="nofollow">XQuery function reference</a> useful</p><h3 
id="XQuery-Loadingscriptfromexternalresource">Loading script from external 
resource</h3><p><strong>Available as of Camel 2.11</strong></p><p>You can 
externalize the script and have Camel load it from a resource such as 
<code>"classpath:"</code>, <code>"file:"</code>, or <code>"http:"</code>.<br 
clear="none"> This is done using
  the following syntax: <code>"resource:scheme:location"</code>, eg to refer to 
a file on the classpath you can do:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[.setHeader(&quot;myHeader&quot;).xquery(&quot;resource:classpath:myxquery.txt&quot;,
 String.class)
-]]></script>
-</div></div><h3 id="XQuery-Dependencies">Dependencies</h3><p>To use XQuery in 
your camel routes you need to add the a dependency on 
<strong>camel-saxon</strong> which implements the XQuery language.</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="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
+</plain-text-body><h3 id="XQuery-Examples.1">Examples</h3><p>Here is a simple 
<a shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryFilterTest.java";>example</a>
 using an XQuery expression as a predicate in a <a shape="rect" 
href="message-filter.html">Message 
Filter</a></p><plain-text-body>{snippet:id=example|lang=java|url=camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryFilterTest.java}</plain-text-body><p>This
 <a shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/builder/saxon/XQueryWithNamespacesFilterTest.java";>example</a>
 uses XQuery with namespaces as a predicate in a <a shape="rect" 
href="message-filter.html">Message 
Filter</a></p><plain-text-body>{snippet:id=example|lang=java|url=camel/trunk/components/camel-saxon/src/test/java/org/apache/camel/bu
 ilder/saxon/XQueryWithNamespacesFilterTest.java}</plain-text-body><h3 
id="XQuery-LearningXQuery">Learning XQuery</h3><p>XQuery is a very powerful 
language for querying, searching, sorting and returning XML. For help learning 
XQuery try these tutorials</p><ul><li>Mike Kay's <a shape="rect" 
class="external-link" href="http://www.stylusstudio.com/xquery_primer.html"; 
rel="nofollow">XQuery Primer</a></li><li>the W3Schools <a shape="rect" 
class="external-link" href="http://www.w3schools.com/xquery/default.asp"; 
rel="nofollow">XQuery Tutorial</a></li></ul><p>You might also find the <a 
shape="rect" class="external-link" href="http://www.w3.org/TR/xpath-functions/"; 
rel="nofollow">XQuery function reference</a> useful</p><h3 
id="XQuery-Loadingscriptfromexternalresource">Loading script from external 
resource</h3><p><strong>Available as of Camel 2.11</strong></p><p>You can 
externalize the script and have Camel load it from a resource such as 
<code>"classpath:"</code>, <code>"file:"</code>, or <co
 de>"http:"</code>.<br clear="none"> This is done using the following syntax: 
<code>"resource:scheme:location"</code>, eg to refer to a file on the classpath 
you can 
do:</p><plain-text-body>.setHeader("myHeader").xquery("resource:classpath:myxquery.txt",
 String.class)
+</plain-text-body><h3 id="XQuery-Dependencies">Dependencies</h3><p>To use 
XQuery in your camel routes you need to add the a dependency on 
<strong>camel-saxon</strong> which implements the XQuery language.</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><plain-text-body>&lt;dependency&gt;
   &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
   &lt;artifactId&gt;camel-saxon&lt;/artifactId&gt;
   &lt;version&gt;x.x.x&lt;/version&gt;
 &lt;/dependency&gt;
-]]></script>
-</div></div></div>
+</plain-text-body></div>
         </td>
         <td valign="top">
           <div class="navigation">


Reply via email to