Author: buildbot
Date: Fri Mar 17 19:20:29 2017
New Revision: 1008525

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/book-component-appendix.html
    websites/production/camel/content/book-in-one-page.html
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/stringtemplate.html

Modified: websites/production/camel/content/book-component-appendix.html
==============================================================================
--- websites/production/camel/content/book-component-appendix.html (original)
+++ websites/production/camel/content/book-component-appendix.html Fri Mar 17 
19:20:29 2017
@@ -895,7 +895,16 @@ from("direct:keypair").to(&quo
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
 
from(&quot;direct:keystore&quot;).to(&quot;crypto:sign:keystore?keystore=#keystore&amp;alias=bob&amp;password=letmein&quot;,
 &quot;crypto:verify:keystore?keystore=#keystore&amp;alias=bob&quot;, 
&quot;mock:result&quot;);
 ]]></script>
-</div></div>Again in Spring a ref is used to lookup an actual keystore 
instance.<div class="error"><span class="error">Error formatting macro: 
snippet: java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> 
</div><h4 id="BookComponentAppendix-3)ChangingJCEProviderandAlgorithm">3) 
Changing JCE Provider and Algorithm</h4><p>Changing the Signature algorithm or 
the Security provider is a simple matter of specifying their names. You will 
need to also use Keys that are compatible with the algorithm you 
choose.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div>Again in Spring a ref is used to lookup an actual keystore 
instance.<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;route&gt;
+    &lt;from uri=&quot;direct:keystore&quot;/&gt;
+    &lt;to 
uri=&quot;crypto:sign:keystore?keystore=#keystore&amp;amp;alias=bob&amp;amp;password=letmein&quot;
 /&gt;
+    &lt;to 
uri=&quot;crypto:verify:keystore?keystore=#keystore&amp;amp;alias=bob&quot; 
/&gt;
+    &lt;to uri=&quot;mock:result&quot;/&gt;
+&lt;/route&gt;        
+]]></script>
+</div></div><h4 
id="BookComponentAppendix-3)ChangingJCEProviderandAlgorithm">3) Changing JCE 
Provider and Algorithm</h4><p>Changing the Signature algorithm or the Security 
provider is a simple matter of specifying their names. You will need to also 
use Keys that are compatible with the algorithm you choose.</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[
 keyPair = getKeyPair(&quot;RSA&quot;);
 PrivateKey privateKey = keyPair.getPrivate();
@@ -1002,11 +1011,11 @@ template.send(&quot;direct:alias-verify&
 ]]></script>
 </div></div><p></p><h3 id="BookComponentAppendix-SeeAlso.8">See Also</h3>
 <ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul><ul><li><a 
shape="rect" href="crypto.html">Crypto</a> Crypto is also available as a <a 
shape="rect" href="data-format.html">Data Format</a></li></ul> <h2 
id="BookComponentAppendix-CXFComponent">CXF Component</h2><div 
class="confluence-information-macro confluence-information-macro-note"><span 
class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>When using CXF as a consumer, the 
<a shape="rect" href="cxf-bean-component.html">CXF Bean Component</a> allows 
you to factor out how message payloads are received from their processing as a 
RESTful or SOAP web service. This has the potential of using a multitude of 
transports to cons
 ume web services. The bean component's configuration is also simpler and 
provides the fastest method to implement web services using Camel and 
CXF.</p></div></div><div class="confluence-information-macro 
confluence-information-macro-tip"><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>When using CXF in streaming modes 
(see DataFormat option), then also read about <a shape="rect" 
href="stream-caching.html">Stream caching</a>.</p></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.rbtoc1489490263343 {padding: 0px;}
-div.rbtoc1489490263343 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1489490263343 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1489778291196 {padding: 0px;}
+div.rbtoc1489778291196 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1489778291196 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1489490263343">
+/*]]>*/</style></p><div class="toc-macro rbtoc1489778291196">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookComponentAppendix-CXFComponent">CXF Component</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookComponentAppendix-URIformat">URI format</a></li><li><a shape="rect" 
href="#BookComponentAppendix-Options">Options</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookComponentAppendix-Thedescriptionsofthedataformats">The descriptions 
of the dataformats</a>
@@ -4594,7 +4603,15 @@ $ java -jar camel-jasypt-2.5.0.jar -c de
 </div></div><p>Which outputs the following result:</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[Decrypted text: tiger
 ]]></script>
-</div></div><p>The idea is then to use those encrypted values in your <a 
shape="rect" href="properties.html">Properties</a> files. Notice how the 
password value is encrypted and the value has the tokens surrounding 
<code>ENC(value here)</code></p><div class="error"><span class="error">Error 
formatting macro: snippet: java.lang.IndexOutOfBoundsException: Index: 20, 
Size: 20</span> </div><h4 
id="BookComponentAppendix-ToolingdependenciesforCamel2.5and2.6">Tooling 
dependencies for Camel 2.5 and 2.6</h4><p>The tooling requires the following 
JARs in the classpath, which has been enlisted in the <code>MANIFEST.MF</code> 
file of <code>camel-jasypt</code> with <code>optional/</code> as prefix. Hence 
why the java cmd above can pickup the needed JARs from the Apache Distribution 
in the <code>optional</code> directory.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>The idea is then to use those encrypted values in your <a 
shape="rect" href="properties.html">Properties</a> files. Notice how the 
password value is encrypted and the value has the tokens surrounding 
<code>ENC(value here)</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[
+# refer to a mock endpoint name by that encrypted password
+cool.result=mock:{{cool.password}}
+
+# here is a password which is encrypted
+cool.password=ENC(bsW9uV37gQ0QHFu7KO03Ww==)
+]]></script>
+</div></div><h4 
id="BookComponentAppendix-ToolingdependenciesforCamel2.5and2.6">Tooling 
dependencies for Camel 2.5 and 2.6</h4><p>The tooling requires the following 
JARs in the classpath, which has been enlisted in the <code>MANIFEST.MF</code> 
file of <code>camel-jasypt</code> with <code>optional/</code> as prefix. Hence 
why the java cmd above can pickup the needed JARs from the Apache Distribution 
in the <code>optional</code> directory.</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[jasypt-1.6.jar commons-lang-2.4.jar 
commons-codec-1.4.jar icu4j-4.0.1.jar
 ]]></script>
 </div></div><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Java 1.5 
users</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The <code>icu4j-4.0.1.jar</code> 
is only needed when running on JDK 1.5.</p><p>This JAR is not distributed by 
Apache Camel and you have to download it manually and copy it to the 
<code>lib/optional</code> directory of the Camel distribution.<br clear="none"> 
You can download it from <a shape="rect" class="external-link" 
href="http://repo2.maven.org/maven2/com/ibm/icu/icu4j/4.0.1/"; 
rel="nofollow">Apache Central Maven repo</a>.</p></div></div><h4 
id="BookComponentAppendix-ToolingdependenciesforCamel2.7orbetter">Tooling 
dependencies for Camel 2.7 or better</h4><p>Jasypt 1.7 onwards is now fully 
standalone so no additional JARs is needed.</p><h3 
id="BookComponentAppendix-URIOptions.5">URI Options</h3><p>The options
  below are exclusive for the <a shape="rect" href="jasypt.html">Jasypt</a> 
component.</p><div class="confluenceTableSmall">
@@ -5019,7 +5036,13 @@ We store big input streams (by default,
      .setBody(&quot;select * from projects where license = :?lic and id &gt; 
:?min order by id&quot;)
      .to(&quot;jdbc:myDataSource?useHeadersAsParameters=true&quot;)
 ]]></script>
-</div></div><p>You can also store the header values in a 
<code>java.util.Map</code> and store the map on the headers with the key 
<code>CamelJdbcParameters</code>.</p><h3 
id="BookComponentAppendix-Samples.5">Samples</h3><p>In the following example, 
we fetch the rows from the customer table.</p><p>First we register our 
datasource in the Camel registry as <code>testdb</code>:</p><div 
class="error"><span class="error">Error formatting macro: snippet: 
java.lang.IndexOutOfBoundsException: Index: 20, Size: 20</span> </div>Then we 
configure a route that routes to the JDBC component, so the SQL will be 
executed. Note how we refer to the <code>testdb</code> datasource that was 
bound in the previous step:<div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><p>You can also store the header values in a 
<code>java.util.Map</code> and store the map on the headers with the key 
<code>CamelJdbcParameters</code>.</p><h3 
id="BookComponentAppendix-Samples.5">Samples</h3><p>In the following example, 
we fetch the rows from the customer table.</p><p>First we register our 
datasource in the Camel registry as <code>testdb</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[
+JndiRegistry reg = super.createRegistry();
+reg.bind(&quot;testdb&quot;, db);
+return reg;
+]]></script>
+</div></div>Then we configure a route that routes to the JDBC component, so 
the SQL will be executed. Note how we refer to the <code>testdb</code> 
datasource that was bound in the previous step:<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[
 // lets add simple route
 public void configure() throws Exception {
@@ -10147,7 +10170,7 @@ private class MyOutputStream extends Out
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;stream:file?fileName=/server/logs/server.log&amp;scanStream=true&amp;scanStreamDelay=1000&quot;).to(&quot;bean:logService?method=parseLogLine&quot;);
 ]]></script>
 </div></div><p>One gotcha with scanStream (pre Camel 2.7) or scanStream + 
retry is the file will be re-opened and scanned with each iteration of 
scanStreamDelay. Until NIO2 is available we cannot reliably detect when a file 
is deleted/recreated.</p><p></p><h3 id="BookComponentAppendix-SeeAlso.61">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> <h2 
id="BookComponentAppendix-StringTemplate">String Template</h2><p>The 
<strong>string-template:</strong> component allows you to process a message 
using a <a shape="rect" class="external-link" 
href="http://www.stringtemplate.org/"; rel="nofollow">String Template</a>. 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">
+<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> <h2 
id="BookComponentAppendix-StringTemplate">String Template</h2><p>The 
<strong><code>string-template:</code></strong> component allows you to process 
a message using a <a shape="rect" class="external-link" 
href="http://www.stringtemplate.org/"; rel="nofollow">String Template</a>. 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 <strong><code>pom.xml</code></strong> 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;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-stringtemplate&lt;/artifactId&gt;
@@ -10155,20 +10178,16 @@ private class MyOutputStream extends Out
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-URIformat.65">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-URIFormat.5">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[string-template: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.</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="BookComponentAppendix-Options.52">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>contentCache</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Cache for the resource content when its 
loaded. <br clear="none" class="atl-forced-newline"> Note : as of <strong>Camel 
2.9</strong> 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>delimiterStart</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>null</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <st
 rong>Since Camel 2.11.1</strong>, configuring the variable start delimiter 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>delimiterStop</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>Since Camel 2.11.1</strong>, configuring the 
variable end delimiter </p></td></tr></tbody></table></div>
-</div>
+</div></div><p>Where&#160;<strong><code>templateName</code></strong> is the 
classpath-local URI of the template to invoke; or the complete URL of the 
remote template.</p><p>You can append query options to the URI in the following 
format, 
<strong><code>?option=value&amp;option=value&amp;...</code></strong></p><h3 
id="BookComponentAppendix-Options.52">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>contentCache</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Cache for the resource content 
when its loaded. <br clear="none" class="atl-forced-newline"> <strong
 >Note</strong>: as of <strong>Camel 2.9</strong> cached resource content can 
 >be cleared via JMX using the endpoint's 
 ><strong><code>clearContentCache</code></strong> 
 >operation.</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>delimiterStart</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p>From<strong> Camel 2.11.1</strong>: 
 >configuring the variable start delimiter</p></td></tr><tr><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p><code>delimiterStop</code></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p>From<strong> Camel 
 >2.11.1</strong>: configuring the variable end 
 >delimiter</p></td></tr></tbody></table></div></div>
 
 
-<h3 id="BookComponentAppendix-Headers.5">Headers</h3><p>Camel will store a 
reference to the resource in the message header with key, 
<code>org.apache.camel.stringtemplate.resource</code>. The Resource is an 
<code>org.springframework.core.io.Resource</code> object.</p><h3 
id="BookComponentAppendix-Hotreloading.1">Hot reloading</h3><p>The string 
template resource is by default hot-reloadable for both file and classpath 
resources (expanded jar). If you set <code>contentCache=true</code>, Camel 
loads the resource only once and hot-reloading is not possible. This scenario 
can be used in production when the resource never changes.</p><h3 
id="BookComponentAppendix-StringTemplateAttributes">StringTemplate 
Attributes</h3><p>Camel will provide exchange information as attributes (just a 
<code>java.util.Map</code>) to the string template. The Exchange 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 Exchange itself. 
</p></td></tr><tr><td colspan="1" rowspan="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. </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>
+<h3 id="BookComponentAppendix-Headers.5">Headers</h3><p>Camel will store a 
reference to the resource in the message header with key, 
<strong><code>org.apache.camel.stringtemplate.resource</code></strong>. The 
Resource is an 
<strong><code>org.springframework.core.io.Resource</code></strong> 
object.</p><h3 
id="BookComponentAppendix-Hot-Reloading">Hot-Reloading</h3><p>The string 
template resource is by default hot-reloadable for both file and classpath 
resources (expanded jar). If you set 
<strong><code>contentCache=true</code></strong>, Camel will load the resource 
just once, disabling hot-reloading. This scenario can be used in production 
when the resource never changes.</p><h3 
id="BookComponentAppendix-StringTemplateAttributes">StringTemplate 
Attributes</h3><p>Camel will provide exchange information as attributes (just a 
<strong><code>java.util.Map</code></strong>) to the string template. The 
Exchange is transferred as:</p><div class="confluenceTableSmall"><div 
class="table-wrap"><ta
 ble 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 Exchange itself.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>headers</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The headers of 
the&#160;<strong><code>IN</code></strong> 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.</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&#160;<strong><code>IN</code></strong> 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><cod
 e>in</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The&#160;<strong><code>IN</code></strong> 
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&#160;<strong><code>IN</code></strong> 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&#160;<strong><code>OUT</code></strong> message 
(only for&#160;<strong><code>InOut</code></strong> 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&#160;<strong><code>OUT</code></strong> 
message (only for&#160;<strong><code>InOut</code></strong> message exchange 
pattern).</p></td></tr></tbody></table></div></div>
 
 
-<p>Since Camel 2.14, you can define the custom context map by setting the 
message header "<strong><span style="line-height: 
1.4285715;">CamelStringTemplateVariableMap</span></strong><span 
style="line-height: 1.4285715;">" just like the below code.</span></p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<p>From <strong>Camel 2.14</strong>: you can define the custom context map by 
setting the message 
header&#160;<strong><code>CamelStringTemplateVariableMap</code></strong>, 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[Map&lt;String, Object&gt; variableMap = new 
HashMap&lt;String, Object&gt;();
 Map&lt;String, Object&gt; headersMap = new HashMap&lt;String, Object&gt;();
 headersMap.put(&quot;name&quot;, &quot;Willem&quot;);
@@ -10179,10 +10198,10 @@ exchange.getIn().setHeader(&quot;CamelSt
 
 ]]></script>
 </div></div><h3 id="BookComponentAppendix-Samples.13">Samples</h3><p>For 
example you could use a string template as follows in order to formulate a 
response to a message:</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;string-template:com/acme/MyResponse.tm&quot;);
+<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;activemq:My.Queue&quot;)
+  .to(&quot;string-template:com/acme/MyResponse.tm&quot;);
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-TheEmailSample.1">The Email 
Sample</h3><p>In this sample we want to use a string template to send an order 
confirmation email. The email template is laid out in 
<code>StringTemplate</code> as:<br clear="none"> This example works for 
<strong>camel 2.11.0</strong>. If your camel version is less than 2.11.0, the 
variables should be started and ended with $.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-TheEmailSample.1">The Email 
Sample</h3><p>In this sample we want to use a string template to send an order 
confirmation email. The email template is laid out in 
<strong><code>StringTemplate</code></strong> as:<br clear="none"> This example 
works for <strong>camel 2.11.0</strong>. If your camel version is less than 
<strong>2.11.0</strong>, the variables should be started and ended with 
<strong><code>$</code></strong>.</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 &lt;headers.lastName&gt;, 
&lt;headers.firstName&gt;
 
 Thanks for the order of &lt;headers.item&gt;.
@@ -10221,7 +10240,7 @@ protected RouteBuilder createRouteBuilde
     };
 }
 ]]></script>
-</div></div><p></p><h3 id="BookComponentAppendix-SeeAlso.62">See Also</h3>
+</div></div><h3 id="BookComponentAppendix-SeeAlso.62">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> <h2 
id="BookComponentAppendix-SQLComponent">SQL Component</h2><p>The 
<strong>sql:</strong> component allows you to work with databases using JDBC 
queries. The difference between this component and <a shape="rect" 
href="jdbc.html">JDBC</a> component is that in case of SQL the query is a 
property of the endpoint and it uses message payload as parameters passed to 
the query.</p><p>This component uses <code><strong>spring-jdbc</strong></code> 
behind the scenes for the actual SQL handling.</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;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
@@ -10230,7 +10249,7 @@ protected RouteBuilder createRouteBuilde
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><p>The SQL component also supports:</p><ul class="alternate"><li>a 
JDBC based repository for the <a shape="rect" 
href="idempotent-consumer.html">Idempotent Consumer</a> EIP pattern. See 
further below.</li><li>a JDBC based repository for the <a shape="rect" 
href="aggregator2.html">Aggregator</a> EIP pattern. See further 
below.</li></ul><h3 id="BookComponentAppendix-URIformat.66">URI format</h3><div 
class="confluence-information-macro confluence-information-macro-warning"><span 
class="aui-icon aui-icon-small aui-iconfont-error 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>From Camel 2.11 onwards this 
component can create both consumer (e.g. <code>from()</code>) and producer 
endpoints (e.g. <code>to()</code>).</p><p>In previous versions, it could only 
act as a producer.</p></div></div><div class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluen
 ce-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>This component can be used as a <a 
shape="rect" class="external-link" 
href="http://camel.apache.org/transactional-client.html";>Transactional 
Client</a>.</p></div></div><p>The SQL component uses the following endpoint URI 
notation:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><p>The SQL component also supports:</p><ul class="alternate"><li>a 
JDBC based repository for the <a shape="rect" 
href="idempotent-consumer.html">Idempotent Consumer</a> EIP pattern. See 
further below.</li><li>a JDBC based repository for the <a shape="rect" 
href="aggregator2.html">Aggregator</a> EIP pattern. See further 
below.</li></ul><h3 id="BookComponentAppendix-URIformat.65">URI format</h3><div 
class="confluence-information-macro confluence-information-macro-warning"><span 
class="aui-icon aui-icon-small aui-iconfont-error 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>From Camel 2.11 onwards this 
component can create both consumer (e.g. <code>from()</code>) and producer 
endpoints (e.g. <code>to()</code>).</p><p>In previous versions, it could only 
act as a producer.</p></div></div><div class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluen
 ce-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>This component can be used as a <a 
shape="rect" class="external-link" 
href="http://camel.apache.org/transactional-client.html";>Transactional 
Client</a>.</p></div></div><p>The SQL component uses the following endpoint URI 
notation:</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[sql:select * from table where id=# order by 
name[?options]
 ]]></script>
 </div></div><p>From Camel 2.11 onwards you can use named parameters by using 
:<code>#name_of_the_parameter</code> style as shown:</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -10395,7 +10414,7 @@ template.requestBodyAndHeader(&quot;dire
     &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="BookComponentAppendix-URIFormat.5">URI Format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-URIFormat.6">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[telegram:type/authorizationToken[?options]]]></script>
 </div></div><h3 id="BookComponentAppendix-Options.54">Options</h3><p>The 
Telegram component has no options. However, the Telegram component does support 
24 endpoint options, which are listed below:</p><div 
class="confluenceTableSmall"><div><div class="sect2"><div class="sect3"><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh">Name</th><th colspan="1" rowspan="1" 
class="confluenceTh">Group</th><th colspan="1" rowspan="1" 
class="confluenceTh">Default</th><th colspan="1" rowspan="1" 
class="confluenceTh">Description</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p 
class="tableblock"><code>authorizationToken</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>common</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><strong>Required</strong> The 
authorization token for using 
 the bot (ask the BotFather) e.g., 
<strong><code>654321531:HGF_dTra456323dHuOedsE343211fqr3t-H</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>type</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>common</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" 
rowspan="1" class="confluenceTd"><p 
class="tableblock"><strong>Required</strong> The endpoint type. Currently only 
the&#160;<strong><code>bots</code></strong> type is 
supported.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>bridgeErrorHandler</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>consumer</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p class="tableblock">Allows for 
bridging t
 he consumer to the Camel routing Error Handler which mean any exceptions 
occurred while the consumer is trying to pickup incoming messages or the likes 
will now be processed as a message and handled by the routing Error Handler. By 
default the consumer will use 
the&#160;<strong><code>org.apache.camel.spi.ExceptionHandler</code></strong> to 
deal with exceptions that will be logged 
at&#160;<strong><code>WARN</code>/<code>ERROR</code></strong> level and 
ignored.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>limit</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>consumer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>100</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock">Limit on the number of updates that 
can be received in a single polling request.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p 
 class="tableblock"><code>sendEmptyMessageWhenIdle</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>consumer</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>false</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock">If the polling consumer did not poll 
any files you can enable this option to send an empty message (no body) 
instead.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>timeout</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>consumer</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>30</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p class="tableblock">Timeout in 
seconds for long polling. Put&#160;<strong><code>0</code></strong> for short 
polling or a bigger number for long polling. Long polling produces shorter 
response time.</p></td></tr><tr><td colspan="1" r
 owspan="1" class="confluenceTd"><p 
class="tableblock"><code>exceptionHandler</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>consumer</code>&#160;</p><p 
class="tableblock">(advanced)</p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock">To let the consumer use a custom 
<strong><code>ExceptionHandler</code></strong>. </p><p 
class="tableblock"><strong>Note</strong>: if the 
option&#160;<strong><code>bridgeErrorHandler</code></strong> is enabled then 
this options is not in use. By default the consumer will deal with exceptions 
that will be logged at <strong><code>WARN</code>/<code>ERROR</code></strong> 
level and ignored.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p 
class="tableblock"><code>pollStrategy</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>consumer</code>&#160;</p><p class="tablebloc
 k">(advanced)</p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock">A 
pluggable&#160;<strong><code>org.apache.camel.PollingConsumerPollingStrategy</code></strong>
 allowing you to provide your custom implementation to control error handling 
usually occurred during the poll operation before an Exchange have been created 
and being routed in Camel.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>chatId</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>producer</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock">The identifier of the chat that will 
receive the produced messages. Chat ids can be first obtained from incoming 
messages e.g., when a telegram user starts a conversation with a bot its client 
sends automatically a&#1
 60;<strong><code>/start</code></strong> message containing the chat id. It is 
an optional parameter as the chat id can be set dynamically for each outgoing 
message (using body or headers).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p 
class="tableblock"><code>exchangePattern</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>advanced</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>InOnly</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p class="tableblock">Sets the 
default exchange pattern when creating an exchange</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>synchronous</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>advanced</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>false</code></p></td><td colspan="1" rowspan="1" clas
 s="confluenceTd"><p class="tableblock">Sets whether synchronous processing 
should be strictly used or Camel is allowed to use asynchronous processing (if 
supported).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p 
class="tableblock"><code>backoffErrorThreshold</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>scheduler</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock">The number of subsequent error polls 
(failed due some error) that should happen before 
the&#160;<strong><code>backoffMultiplier</code></strong> should 
kick-in.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>backoffIdleThreshold</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>scheduler</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1"
  rowspan="1" class="confluenceTd"><p class="tableblock">The number of 
subsequent idle polls that should happen before 
the&#160;<strong><code>backoffMultiplier</code></strong> should 
kick-in.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>backoffMultiplier</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>scheduler</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock">To let the scheduled polling 
consumer back-off if there has been a number of subsequent idles/errors in a 
row. The multiplier is then the number of polls that will be skipped before the 
next actual attempt is happening again. When this option is in use 
then&#160;<strong><code>backoffIdleThreshold</code></strong> 
and/or&#160;<strong><code>backoffErrorThreshold</code></strong> must also be 
configured.</p></td></tr><tr><td colspan="1" rowspan="1
 " class="confluenceTd"><p class="tableblock"><code>delay</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>scheduler</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>500</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p class="tableblock">Milliseconds 
before the next poll. You can also specify time values using units such 
as:</p><ul><li class="tableblock"><strong><code>60s</code></strong> (60 
seconds)</li><li class="tableblock"><strong><code>5m30s</code></strong> (5 
minutes and 30 seconds)</li><li 
class="tableblock"><strong><code>1h</code></strong> (1 
hour)</li></ul></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>greedy</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>scheduler</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>false</code></p></td><td colsp
 an="1" rowspan="1" class="confluenceTd"><p class="tableblock">If greedy is 
enabled then the&#160;<strong><code>ScheduledPollConsumer</code></strong> will 
run immediately again if the previous run polled 1 or more 
messages.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>initialDelay</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>scheduler</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>1000</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p class="tableblock">Milliseconds 
before the first poll starts. You can also specify time values using units such 
as:</p><ul><li class="tableblock"><strong><code>60s</code></strong> (60 
seconds)</li><li class="tableblock"><strong><code>5m30s</code></strong> (5 
minutes and 30 seconds)</li><li 
class="tableblock"><strong><code>1h</code></strong> (1 
hour)</li></ul></td></tr><tr><td colspan="1" rowspan="1
 " class="confluenceTd"><p 
class="tableblock"><code>runLoggingLevel</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>scheduler</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>TRACE</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p class="tableblock">The consumer 
logs a start/complete log line when it polls. This option allows you to 
configure the logging level for that.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>scheduledExecutorService</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>scheduler</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock">Allows for configuring a 
custom/shared thread pool to use for the consumer. By default each consumer has 
its own single threaded thread pool.</p></td></tr
 ><tr><td colspan="1" rowspan="1" class="confluenceTd"><p 
 >class="tableblock"><code>scheduler</code></p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p class="tableblock"><code>scheduler</code></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p 
 >class="tableblock"><code>none</code></p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p class="tableblock">To use a cron scheduler from 
 >either camel-spring or&#160;<strong><code>camel-quartz2</code></strong> 
 >component</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p 
 >class="tableblock"><code>schedulerProperties</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p 
 >class="tableblock"><code>scheduler</code></p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p class="tableblock">To configure additional properties 
 >when using a custom scheduler or any of the Quartz2 Spring based 
 >scheduler.</p></td></tr><tr><td colspan="1" row
 span="1" class="confluenceTd"><p 
class="tableblock"><code>startScheduler</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>scheduler</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p class="tableblock">Whether the 
scheduler should be auto started.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>timeUnit</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>scheduler</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>ms</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p class="tableblock">Time unit 
for&#160;<strong><code>initialDelay</code></strong> and delay 
options.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>useFixedDelay</code></p></td><td
  colspan="1" rowspan="1" class="confluenceTd"><p 
class="tableblock"><code>scheduler</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p class="tableblock"><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p class="tableblock">Controls if 
fixed delay or fixed rate is used.</p><p 
class="tableblock">See&#160;<strong><code>ScheduledExecutorService</code></strong>
 in JDK for details.</p></td></tr></tbody></table></div></div></div></div></div>
 
@@ -10463,7 +10482,7 @@ template.requestBodyAndHeader(&quot;dire
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><p>From <strong>Camel 2.9</strong>: the <a shape="rect" 
href="test.html">Test</a> component is provided directly in 
<strong><code>camel-core</code></strong>.</p><h3 
id="BookComponentAppendix-URIformat.67">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>From <strong>Camel 2.9</strong>: the <a shape="rect" 
href="test.html">Test</a> component is provided directly in 
<strong><code>camel-core</code></strong>.</p><h3 
id="BookComponentAppendix-URIformat.66">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[test:expectedMessagesEndpointUri
 ]]></script>
 
</div></div><p>Where&#160;<strong><code>expectedMessagesEndpointUri</code></strong>
 refers to some other <a shape="rect" href="component.html">Component</a> URI 
that the expected message bodies are pulled from before starting the 
test.</p><h3 id="BookComponentAppendix-URIOptions.10">URI 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>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>anyOrder</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.17:</strong> 
Whether the expected messages should arrive in the same order, or in any 
order.</p></td></tr><tr><td colspan="1" rowspan="1" class="con
 fluenceTd"><p><code>delimiter</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>\n|\r</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.17:</strong> The delimiter to use 
when&#160;<strong><code>split=true</code></strong>. The delimiter can be a 
regular expression.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>split</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.17:</strong> 
If&#160;<strong><code>true</code></strong> messages loaded from the test 
endpoint will be split using the defined 
<strong><code>delimiter</code></strong>.For example to use 
a&#160;<strong><code>file</code></strong> endpoint to load a file where each 
line is an expected message.&#160;</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>timeout</code></p></td><td colspan="1" 
rowspan="1" class="co
 nfluenceTd"><p><code>2000</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.12:</strong> The timeout to use when 
polling for message bodies from the 
URI.</p></td></tr></tbody></table></div></div>
@@ -10474,7 +10493,7 @@ template.requestBodyAndHeader(&quot;dire
   .to(&quot;test:file://data/expectedOutput?noop=true&quot;);
 ]]></script>
 </div></div><p>If your test then invokes the <a shape="rect" 
class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/mock/MockEndpoint.html#assertIsSatisfied(org.apache.camel.CamelContext)">MockEndpoint.assertIsSatisfied(camelContext)
 method</a>, your test case will perform the necessary assertions.</p><p>To see 
how you can set other expectations on the test endpoint, see the <a 
shape="rect" href="mock.html">Mock</a> component.</p><p></p><h3 
id="BookComponentAppendix-SeeAlso.64">See Also</h3>
-<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul><ul><li><a 
shape="rect" href="spring-testing.html">Spring Testing</a></li></ul> <h2 
id="BookComponentAppendix-TimerComponent">Timer Component</h2><p>The 
<strong>timer:</strong> component is used to generate message exchanges when a 
timer fires You can only consume events from this endpoint.</p><h3 
id="BookComponentAppendix-URIformat.68">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul><ul><li><a 
shape="rect" href="spring-testing.html">Spring Testing</a></li></ul> <h2 
id="BookComponentAppendix-TimerComponent">Timer Component</h2><p>The 
<strong>timer:</strong> component is used to generate message exchanges when a 
timer fires You can only consume events from this endpoint.</p><h3 
id="BookComponentAppendix-URIformat.67">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[timer:name[?options]
 ]]></script>
 </div></div><p>Where <code>name</code> is the name of the <code>Timer</code> 
object, which is created and shared across endpoints. So if you use the same 
name for all your timer endpoints, only one <code>Timer</code> object and 
thread will be used.</p><p>You can append query options to the URI in the 
following format, 
<code>?option=value&amp;option=value&amp;...</code></p><p><strong>Note:</strong>
 The IN body of the generated exchange is <code>null</code>. So 
<code>exchange.getIn().getBody()</code> returns <code>null</code>.</p><div 
class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Advanced Scheduler</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>See also the <a shape="rect" 
href="quartz.html">Quartz</a> component that supports much more advanced 
scheduling.</p></div></div><div class="confluence-information-macro 
confluence-information-macro-
 tip"><p class="title">Specify time in human friendly format</p><span 
class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>In <strong>Camel 2.3</strong> 
onwards you can specify the time in <a shape="rect" 
href="how-do-i-specify-time-period-in-a-human-friendly-syntax.html">human 
friendly syntax</a>.</p></div></div><h3 
id="BookComponentAppendix-Options.55">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>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>time</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>A <code>ja
 va.util.Date</code> the <strong>first</strong> event should be generated. If 
using the URI, the pattern expected is: <code>yyyy-MM-dd HH:mm:ss</code> or 
<code>yyyy-MM-dd'T'HH:mm:ss</code>.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>pattern</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Allows you to specify a custom 
<code>Date</code> pattern to use for setting the time option using URI 
syntax.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>period</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>1000</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>If greater than 0, generate periodic events every 
<code>period</code> milliseconds.<br clear="none">You can also specify time 
values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 seconds), 
and 1h (1 hour).</p></td></tr><tr><td
  colspan="1" rowspan="1" 
class="confluenceTd"><p><code>delay</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span style="font-family: monospace;">0</span> / 
<code>1000</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The number of milliseconds to wait before the first 
event is generated. Should not be used in conjunction with the 
<code>time</code> option.<br clear="none"><span>You can also specify time 
values using units, such as 60s (60 seconds), 5m30s (5 minutes and 30 seconds), 
and 1h (1 hour).</span>&#160;<br clear="none">Before <strong>Camel 
2.11</strong> the default value is 0<br clear="none">From <strong>Camel 
2.11</strong><span> the <span>default value is </span><code>1000<br 
clear="none"></code></span>From<strong> Camel 2.17 it </strong>is possible to 
specify a negative delay. In this scenario the timer will generate and fire 
events as soon as possible.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>fixedRate
 </code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Events take place at approximately regular intervals, 
separated by the specified period.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>daemon</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies whether or not the thread associated with the 
timer endpoint runs as a daemon.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>repeatCount</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.8:</strong> Specifies a 
maximum limit of number of fires. So if you set it to 1, the timer will only 
fire once. If you set it to 5, it will only fire five times. A value of zero or 
negative means fire
  forever.</p></td></tr></tbody></table></div></div>
@@ -10507,7 +10526,7 @@ template.requestBodyAndHeader(&quot;dire
   &lt;/route&gt;
 ]]></script>
 </div></div><p></p><h3 id="BookComponentAppendix-SeeAlso.65">See Also</h3>
-<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul><ul><li><a 
shape="rect" href="quartz.html">Quartz</a></li></ul> <h2 
id="BookComponentAppendix-ValidationComponent">Validation Component</h2><p>The 
Validation component performs XML validation of the message body using the JAXP 
Validation API and based on any of the supported XML schema languages, which 
defaults to <a shape="rect" class="external-link" 
href="http://www.w3.org/XML/Schema"; rel="nofollow">XML Schema</a></p><p>Note 
that the <a shape="rect" href="jing.html">Jing</a> component also supports the 
following useful schema languages:</p><ul><li><a shape="rect" 
class="external-link" href="http://relaxng.org/compact-tutorial-20030326.html"; 
rel="nofollow">RelaxNG Compact Syntax</a></li><li><a shape="rect" class
 ="external-link" href="http://relaxng.org/"; rel="nofollow">RelaxNG XML 
Syntax</a></li></ul><p>The <a shape="rect" href="msv.html">MSV</a> component 
also supports <a shape="rect" class="external-link" href="http://relaxng.org/"; 
rel="nofollow">RelaxNG XML Syntax</a>.</p><h3 
id="BookComponentAppendix-URIformat.69">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul><ul><li><a 
shape="rect" href="quartz.html">Quartz</a></li></ul> <h2 
id="BookComponentAppendix-ValidationComponent">Validation Component</h2><p>The 
Validation component performs XML validation of the message body using the JAXP 
Validation API and based on any of the supported XML schema languages, which 
defaults to <a shape="rect" class="external-link" 
href="http://www.w3.org/XML/Schema"; rel="nofollow">XML Schema</a></p><p>Note 
that the <a shape="rect" href="jing.html">Jing</a> component also supports the 
following useful schema languages:</p><ul><li><a shape="rect" 
class="external-link" href="http://relaxng.org/compact-tutorial-20030326.html"; 
rel="nofollow">RelaxNG Compact Syntax</a></li><li><a shape="rect" class
 ="external-link" href="http://relaxng.org/"; rel="nofollow">RelaxNG XML 
Syntax</a></li></ul><p>The <a shape="rect" href="msv.html">MSV</a> component 
also supports <a shape="rect" class="external-link" href="http://relaxng.org/"; 
rel="nofollow">RelaxNG XML Syntax</a>.</p><h3 
id="BookComponentAppendix-URIformat.68">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[validator:someLocalOrRemoteResource
 ]]></script>
 </div></div><p>Where <strong>someLocalOrRemoteResource</strong> is some URL to 
a local resource on the classpath or a full URL to a remote resource or 
resource on the file system which contains the XSD to validate against. For 
example:</p><ul><li><code>msv:org/foo/bar.xsd</code></li><li><code>msv:file:../foo/bar.xsd</code></li><li><code>msv:<a
 shape="rect" class="external-link" href="http://acme.com/cheese.xsd"; 
rel="nofollow">http://acme.com/cheese.xsd</a></code></li><li><code>validator:com/mypackage/myschema.xsd</code></li></ul><p>Maven
 users will need to add the following dependency to their <code>pom.xml</code> 
for this component when using <strong>Camel 2.8</strong> or older:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
@@ -10547,7 +10566,7 @@ template.requestBodyAndHeader(&quot;dire
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-URIformat.70">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-URIformat.69">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="BookComponentAppendix-Options.57">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>
@@ -10566,7 +10585,7 @@ template.requestBodyAndHeader(&quot;dire
 <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="BookComponentAppendix-Hotreloading.2">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="BookComponentAppendix-Dynamictemplates.1">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 col
 span="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></div>
+</div></div><p>&#160;</p><h3 id="BookComponentAppendix-Hotreloading.1">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="BookComponentAppendix-Dynamictemplates.1">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 col
 span="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></div>
 
 
 <h3 id="BookComponentAppendix-Samples.14">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">
@@ -10646,7 +10665,7 @@ protected RouteBuilder createRouteBuilde
 
 <p>VM is an extension to the <a shape="rect" href="seda.html">Seda</a> 
component.</p>
 
-<h3 id="BookComponentAppendix-URIformat.71">URI format</h3>
+<h3 id="BookComponentAppendix-URIformat.70">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[
@@ -10709,7 +10728,7 @@ from(&quot;vm:order.email&quot;).bean(My
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-URIformat.72">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-URIformat.71">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="brush: text; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[xmpp://[login@]hostname[:port][/participant][?Options]
 ]]></script>
 </div></div><p>The component supports both room based and private 
person-person conversations.<br clear="none"> The component supports both 
producer and consumer (you can get messages from XMPP or send messages to 
XMPP). Consumer mode supports rooms starting.</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="BookComponentAppendix-Options.59">Options</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>room</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>If this option is specified, the component 
will connect to MUC (Multi User Chat). Usually, the domain name for MUC is 
different from the login domain. For example, if you are 
<code>super...@jabber.org</code> and wan
 t to join the <code>krypton</code> room, then the room URL is 
<code>kryp...@conference.jabber.org</code>. Note the <code>conference</code> 
part.<br clear="none"> It is not a requirement to provide the full room JID. If 
the <code>room</code> parameter does not contain the <code>@</code> symbol, the 
domain part will be discovered and added by Camel</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>user</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>User name (without server 
name). If not specified, anonymous login will be 
attempted.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>password</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Password.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>resource</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>XMPP resource. The default is 
<code>Camel</code>.</p></td></tr><tr><td colspan="1" rowspan="1" class="c
 onfluenceTd"><p><code>createAccount</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>If <code>true</code>, an attempt to create an account 
will be made. Default is <code>false</code>.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>participant</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>JID (Jabber ID) of person to 
receive messages. <code>room</code> parameter has precedence over 
<code>participant</code>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>nickname</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Use nickname when joining room. If room is 
specified and nickname is not, <code>user</code> will be used for the 
nickname.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>serviceName</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The name of the service you are connecting 
to. For Google Talk, this would be <code>gmail.co
 m</code>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>testConnectionOnStartup</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11</strong> 
Specifies whether to test the connection on startup. This is used to ensure 
that the XMPP client has a valid connection to the XMPP server when the route 
starts. Camel throws an exception on startup if a connection cannot be 
established. When this option is set to false, Camel will attempt to establish 
a "lazy" connection when needed by a producer, and will poll for a consumer 
connection until the connection is established. Default is 
<code>true</code>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>connectionPollDelay</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11</strong> The 
amount of time in seconds between polls to verify the health of the XMPP 
connection, or between attempts to establish an initial consumer con
 nection. Camel will try to re-establish a connection if it has become 
inactive. Default is <code>10 seconds</code>.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd">pubsub</td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.15</strong> Accept pubsub packets on 
input, default is false</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">doc</td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.15</strong> <span>Set a doc header on the 
IN message containing a Document form of the incoming packet; default is true 
if presence or pubsub are true, otherwise false</span></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">connectionConfiguration</td><td 
colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.18:</strong> To 
use an existing connection configuration</td></tr></tbody></table></div><h3 
id="BookComponentAppendix-HeadersandsettingSubjectorLanguage">Headers and 
setting Subject or Language</h3><p>Camel sets t
 he message IN headers as properties on the XMPP message. You can configure a 
<code>HeaderFilterStategy</code> if you need custom filtering of headers.<br 
clear="none"> The <strong>Subject</strong> and <strong>Language</strong> of the 
XMPP message are also set if they are provided as IN headers.</p><h3 
id="BookComponentAppendix-Examples.16">Examples</h3><p>User 
<code>superman</code> to join room <code>krypton</code> at <code>jabber</code> 
server with password, <code>secret</code>:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -10756,7 +10775,7 @@ to(&quot;activemq:krypton.talk&quot;);
 ]]></script>
 </div></div>
 
-<h3 id="BookComponentAppendix-URIformat.73">URI format</h3>
+<h3 id="BookComponentAppendix-URIformat.72">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[
@@ -10788,7 +10807,7 @@ from(&quot;activemq:My.Queue&quot;).
 </div></div>
 
 <h3 id="BookComponentAppendix-SeeAlso.70">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> <h2 
id="BookComponentAppendix-XSLT">XSLT</h2><p>The <strong>xslt:</strong> 
component allows you to process a message using an <a shape="rect" 
class="external-link" href="http://www.w3.org/TR/xslt"; rel="nofollow">XSLT</a> 
template. This can be ideal when using <a shape="rect" 
href="templating.html">Templating</a> to generate respopnses for 
requests.</p><h3 id="BookComponentAppendix-URIformat.74">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<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> <h2 
id="BookComponentAppendix-XSLT">XSLT</h2><p>The <strong>xslt:</strong> 
component allows you to process a message using an <a shape="rect" 
class="external-link" href="http://www.w3.org/TR/xslt"; rel="nofollow">XSLT</a> 
template. This can be ideal when using <a shape="rect" 
href="templating.html">Templating</a> to generate respopnses for 
requests.</p><h3 id="BookComponentAppendix-URIformat.73">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[xslt: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. Refer to 
the <a shape="rect" class="external-link" 
href="http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/core/io/DefaultResourceLoader.html";
 rel="nofollow">Spring Documentation for more detail of the URI 
syntax</a></p><p>You can append query options to the URI in the following 
format, <code>?option=value&amp;option=value&amp;...</code></p><p>Here are some 
example URIs</p><div class="confluenceTableSmall"><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>URI</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">


Reply via email to