Author: buildbot
Date: Wed May  6 14:19:44 2015
New Revision: 950295

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/camel-2160-release.html
    websites/production/camel/content/jing.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 Wed May  6 
14:19:44 2015
@@ -1334,11 +1334,11 @@ template.send("direct:alias-verify&
                     </div>
     </div>
 <p>The <strong>cxf:</strong> component provides integration with <a 
shape="rect" href="http://cxf.apache.org";>Apache CXF</a> for connecting to 
JAX-WS services hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1430792413515 {padding: 0px;}
-div.rbtoc1430792413515 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1430792413515 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1430921882060 {padding: 0px;}
+div.rbtoc1430921882060 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1430921882060 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1430792413515">
+/*]]>*/</style></p><div class="toc-macro rbtoc1430921882060">
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-CXFComponent">CXF 
Component</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-URIformat">URI 
format</a></li><li><a shape="rect" href="#CXF-Options">Options</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#CXF-Thedescriptionsofthedataformats">The descriptions of the 
dataformats</a>
@@ -6267,11 +6267,12 @@ from(&quot;jetty://http://localhost:{{po
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><p>Note that the <a shape="rect" href="msv.html">MSV</a> component 
can also support RelaxNG XML syntax.</p><h3 
id="BookComponentAppendix-URIformat.34">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Note that the <a shape="rect" href="msv.html">MSV</a> component 
can also support RelaxNG XML syntax.</p><h3 
id="BookComponentAppendix-URIformatCamel2.15orolder">URI format Camel 2.15 or 
older</h3><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[rng:someLocalOrRemoteResource
-rnc:someLocalOrRemoteResource
-]]></script>
-</div></div><p>Where <strong>rng</strong> means use the <a shape="rect" 
class="external-link" href="http://relaxng.org/"; rel="nofollow">RelaxNG XML 
Syntax</a> whereas <strong>rnc</strong> means use <a shape="rect" 
class="external-link" href="http://relaxng.org/compact-tutorial-20030326.html"; 
rel="nofollow">RelaxNG Compact Syntax</a>. The following examples show possible 
URI values</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Example</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>rng:foo/bar.rng</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>References the XML file 
<strong>foo/bar.rng</strong> on the classpath</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>rnc:</p><a shape="rect" 
class="external-link" href="http://foo.com/bar.rnc"; 
rel="nofollow">http://foo.com/bar.rnc</a></td><td co
 lspan="1" rowspan="1" class="confluenceTd"><p>References the RelaxNG Compact 
Syntax file from the URL,</p><a shape="rect" class="external-link" 
href="http://foo.com/bar.rnc"; 
rel="nofollow">http://foo.com/bar.rnc</a></td></tr></tbody></table></div><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.27">Options</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>compactSyntax</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Whether to validate using RelaxNG compact 
syntax or not.</p></td></tr></tbody></table>
 </div><h3 id="BookComponentAppendix-Example.3">Example</h3><p>The following <a 
shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-jing/src/test/resources/org/apache/camel/component/validator/jing/rnc-context.xml";>example</a>
 shows how to configure a route from the endpoint <strong>direct:start</strong> 
which then goes to one of two endpoints, either <strong>mock:valid</strong> or 
<strong>mock:invalid</strong> based on whether or not the XML matches the given 
<a shape="rect" class="external-link" 
href="http://relaxng.org/compact-tutorial-20030326.html"; rel="nofollow">RelaxNG 
Compact Syntax</a> schema (which is supplied on the classpath).</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+rnc:someLocalOrRemoteResource]]></script>
+</div></div><p>Where <strong>rng</strong> means use the <a shape="rect" 
class="external-link" href="http://relaxng.org/"; rel="nofollow">RelaxNG XML 
Syntax</a> whereas <strong>rnc</strong> means use <a shape="rect" 
class="external-link" href="http://relaxng.org/compact-tutorial-20030326.html"; 
rel="nofollow">RelaxNG Compact Syntax</a>. The following examples show possible 
URI values</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Example</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>rng:foo/bar.rng</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>References the XML file 
<strong>foo/bar.rng</strong> on the classpath</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>rnc:</p><a shape="rect" 
class="external-link" href="http://foo.com/bar.rnc"; 
rel="nofollow">http://foo.com/bar.rnc</a></td><td co
 lspan="1" rowspan="1" class="confluenceTd"><p>References the RelaxNG Compact 
Syntax file from the URL,</p><a shape="rect" class="external-link" 
href="http://foo.com/bar.rnc"; 
rel="nofollow">http://foo.com/bar.rnc</a></td></tr></tbody></table></div><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-URIformatCamel2.16">URI format Camel 2.16</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[jing:someLocalOrRemoteResource]]></script>
+</div></div><p>From Camel 2.16 the component use jing as name, and you can use 
the option compactSyntax to turn on either RNG or RNC mode.</p><h3 
id="BookComponentAppendix-Options.27">Options</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>compactSyntax</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Whether to validate using RelaxNG compact 
syntax or not.</p></td></tr></tbody></table></div><h3 
id="BookComponentAppendix-Example.3">Example</h3><p>The following <a 
shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/camel/trunk/components/camel-jing/src/test/resources/org/apache/camel/compon
 ent/validator/jing/rnc-context.xml">example</a> shows how to configure a route 
from the endpoint <strong>direct:start</strong> which then goes to one of two 
endpoints, either <strong>mock:valid</strong> or <strong>mock:invalid</strong> 
based on whether or not the XML matches the given <a shape="rect" 
class="external-link" href="http://relaxng.org/compact-tutorial-20030326.html"; 
rel="nofollow">RelaxNG Compact Syntax</a> schema (which is supplied on the 
classpath).</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[
 &lt;camelContext xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
     &lt;route&gt;
@@ -6321,7 +6322,7 @@ rnc:someLocalOrRemoteResource
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-URIformat.35">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-URIformat.34">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[jms:[queue:|topic:]destinationName[?options]
 ]]></script>
 </div></div><p>Where <code>destinationName</code> is a JMS queue or topic 
name. By default, the <code>destinationName</code> is interpreted as a queue 
name. For example, to connect to the queue, <code>FOO.BAR</code> use:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
@@ -6671,7 +6672,7 @@ monitor.start();
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-Sendingtotheendpoint.2">Sending to 
the endpoint</h3><p>You can store a Java entity bean in a database by sending 
it to a JPA producer endpoint. The body of the <em>In</em> message is assumed 
to be an entity bean (that is, a POJO with an <a shape="rect" 
class="external-link" 
href="http://java.sun.com/javaee/5/docs/api/javax/persistence/Entity.html"; 
rel="nofollow">@Entity</a> annotation on it) or a collection or array of entity 
beans.</p><p>If the body does not contain one of the previous listed types, put 
a <a shape="rect" href="message-translator.html">Message Translator</a> in 
front of the endpoint to perform the necessary conversion first.</p><h3 
id="BookComponentAppendix-Consumingfromtheendpoint.2">Consuming from the 
endpoint</h3><p>Consuming messages from a JPA consumer endpoint removes (or 
updates) entity beans in the database. This allows you to use a database table 
as a logical queue: consumers take messages from the queue and then de
 lete/update them to logically remove them from the queue.</p><p>If you do not 
wish to delete the entity bean when it has been processed (and when routing is 
done), you can specify <code>consumeDelete=false</code> on the URI. This will 
result in the entity being processed each poll.</p><p>If you would rather 
perform some update on the entity to mark it as processed (such as to exclude 
it from a future query) then you can annotate a method with <a shape="rect" 
class="external-link" 
href="http://camel.apache.org/maven/current/camel-jpa/apidocs/org/apache/camel/component/jpa/Consumed.html";>@Consumed</a>
 which will be invoked on your entity bean when the entity bean when it has 
been processed (and when routing is done).</p><p>From <strong>Camel 
2.13</strong> onwards you can use <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-jpa/apidocs/org/apache/camel/component/jpa/PreConsumed.html";>@PreConsumed</a>
 which will be invoked on your entity bean befor
 e it has been processed (before routing).</p><h3 
id="BookComponentAppendix-URIformat.36">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-Sendingtotheendpoint.2">Sending to 
the endpoint</h3><p>You can store a Java entity bean in a database by sending 
it to a JPA producer endpoint. The body of the <em>In</em> message is assumed 
to be an entity bean (that is, a POJO with an <a shape="rect" 
class="external-link" 
href="http://java.sun.com/javaee/5/docs/api/javax/persistence/Entity.html"; 
rel="nofollow">@Entity</a> annotation on it) or a collection or array of entity 
beans.</p><p>If the body does not contain one of the previous listed types, put 
a <a shape="rect" href="message-translator.html">Message Translator</a> in 
front of the endpoint to perform the necessary conversion first.</p><h3 
id="BookComponentAppendix-Consumingfromtheendpoint.2">Consuming from the 
endpoint</h3><p>Consuming messages from a JPA consumer endpoint removes (or 
updates) entity beans in the database. This allows you to use a database table 
as a logical queue: consumers take messages from the queue and then de
 lete/update them to logically remove them from the queue.</p><p>If you do not 
wish to delete the entity bean when it has been processed (and when routing is 
done), you can specify <code>consumeDelete=false</code> on the URI. This will 
result in the entity being processed each poll.</p><p>If you would rather 
perform some update on the entity to mark it as processed (such as to exclude 
it from a future query) then you can annotate a method with <a shape="rect" 
class="external-link" 
href="http://camel.apache.org/maven/current/camel-jpa/apidocs/org/apache/camel/component/jpa/Consumed.html";>@Consumed</a>
 which will be invoked on your entity bean when the entity bean when it has 
been processed (and when routing is done).</p><p>From <strong>Camel 
2.13</strong> onwards you can use <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-jpa/apidocs/org/apache/camel/component/jpa/PreConsumed.html";>@PreConsumed</a>
 which will be invoked on your entity bean befor
 e it has been processed (before routing).</p><h3 
id="BookComponentAppendix-URIformat.35">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[jpa:entityClassName[?options]
 ]]></script>
 </div></div><p>For sending to the endpoint, the <em>entityClassName</em> is 
optional. If specified, it helps the <a shape="rect" 
href="type-converter.html">Type Converter</a> to ensure the body is of the 
correct type.</p><p>For consuming, the <em>entityClassName</em> is 
mandatory.</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.29">Options</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default Value</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>entityType</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><em>entityClassName</em></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Overrides the <em>entityClas
 sName</em> from the URI.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>persistenceUnit</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>camel</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The JPA persistence unit used by 
default.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumeDelete</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>JPA consumer only:</strong> If 
<code>true</code>, the entity is deleted after it is consumed; if 
<code>false</code>, the entity is not deleted.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>consumeLockEntity</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>JPA consumer 
only:</strong> Specifies whether or not to set a
 n exclusive lock on each entity bean while processing the results from 
polling.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>flushOnSend</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>JPA producer only:</strong> Flushes 
the <a shape="rect" class="external-link" 
href="http://java.sun.com/javaee/5/docs/api/javax/persistence/EntityManager.html";
 rel="nofollow">EntityManager</a> after the entity bean has been 
persisted.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>maximumResults</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>-1</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>JPA consumer only:</strong> Set the 
maximum number of results to retrieve on the <a shape="rect" 
class="external-link" 
href="http://java.sun.com/javaee/5/docs/api/javax/persistence/Query.html"; 
rel="nof
 ollow">Query</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>transactionManager</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This option is <a shape="rect" 
href="registry.html">Registry</a> based which requires the <code>#</code> 
notation so that the given <code>transactionManager</code> being specified can 
be looked up properly, e.g. 
<code>transactionManager=#myTransactionManager</code>. It specifies the 
transaction manager to use. If none provided, Camel will use a 
<code>JpaTransactionManager</code> by default. Can be used to set a JTA 
transaction manager (for integration with an EJB 
container).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.delay</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>500</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>JPA consumer only:
 </strong> Delay in milliseconds between each poll.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.initialDelay</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>1000</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>JPA consumer 
only:</strong> Milliseconds before polling starts.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.useFixedDelay</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>JPA consumer 
only:</strong> Set to <code>true</code> to use fixed delay between polls, 
otherwise fixed rate is used. See <a shape="rect" class="external-link" 
href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ScheduledExecutorService.html";
 rel="nofollow">ScheduledExecutorService</a> in JDK for 
details.</p></td></tr><tr><td colspan="1" rowspan="1" class="conflue
 nceTd"><p><code>maxMessagesPerPoll</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>JPA consumer only:</strong> An integer value to 
define the maximum number of messages to gather per poll. By default, no 
maximum is set. Can be used to avoid polling many thousands of messages when 
starting up the server. Set a value of 0 or negative to 
disable.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.query</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>JPA consumer only:</strong> To use a custom 
query when consuming data.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.namedQuery</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>JPA consu
 mer only:</strong> To use a named query when consuming 
data.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.nativeQuery</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>JPA consumer only:</strong> To use 
a custom native query when consuming data. You may want to use the option 
<code>consumer.resultClass</code> also when using native 
queries.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.parameters</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12: JPA consumer 
only:</strong> This option is <a shape="rect" href="registry.html">Registry</a> 
based which requires the <code>#</code> notation. This key/value mapping is 
used for building the query parameters. It's is expected to be of the generic 
type <code>java.util.Map&lt
 ;String, Object&gt;</code> where the keys are the named parameters of a given 
JPA query and the values are their corresponding effective values you want to 
select for.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.resultClass</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.7: JPA consumer 
only:</strong> Defines the type of the returned payload (we will call 
<code>entityManager.createNativeQuery(nativeQuery, resultClass)</code> instead 
of <code>entityManager.createNativeQuery(nativeQuery)</code>). Without this 
option, we will return an object array. Only has an affect when using in 
conjunction with native query when consuming data.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.transacted</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" c
 lass="confluenceTd"><p><strong>Camel 2.7.5/2.8.3/2.9: JPA consumer 
only:</strong> Whether to run the consumer in transacted mode, by which all 
messages will either commit or rollback, when the entire batch has been 
processed. The default behavior (false) is to commit all the previously 
successfully processed messages, and only rollback the last failed 
message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.lockModeType</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>WRITE</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 
2.11.2/2.12:</strong> To configure the lock mode on the consumer. The possible 
values is defined in the enum <code>javax.persistence.LockModeType</code>. The 
default value is changed to <code>PESSIMISTIC_WRITE</code> since <strong>Camel 
2.13</strong>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.SkipLockedEntity</code></p></td><td colsp
 an="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.13:</strong> To 
configure whether to use NOWAIT on lock and silently skip the 
entity.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>usePersist</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.5: JPA producer 
only:</strong> Indicates to use <code>entityManager.persist(entity)</code> 
instead of <code>entityManager.merge(entity)</code>. Note: 
<code>entityManager.persist(entity)</code> doesn't work for detached entities 
(where the EntityManager has to execute an UPDATE instead of an INSERT 
query)!</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>joinTransaction</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class=
 "confluenceTd"><p><strong>Camel 2.12.3:</strong> camel-jpa will join 
transaction by default from Camel 2.12 onwards. You can use this option to turn 
this off, for example if you use LOCAL_RESOURCE and join transaction doesn't 
work with your JPA provider. This option can also be set globally on the 
<code>JpaComponent</code>, instead of having to set it on all 
endpoints.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p 
class="p1">usePassedInEntityManager</p></td><td colspan="1" rowspan="1" 
class="confluenceTd">false</td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.12.4/2.13.1 JPA producer only:</strong> If 
set to true, then Camel will use the EntityManager from the header<p 
class="p1">JpaConstants.ENTITYMANAGER instead of the configured entity manager 
on the component/endpoint. This allows end users to control which entity 
manager will be in use.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">sharedEntityManager</td><td colspa
 n="1" rowspan="1" class="confluenceTd">false</td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.16:</strong>&#160;whether to use spring's 
SharedEntityManager for the consumer/producer. A good idea may be to set 
joinTransaction=false if this option is true, as sharing the entity manager and 
mixing transactions is not a good idea.</td></tr></tbody></table></div><h3 
id="BookComponentAppendix-MessageHeaders.10">Message Headers</h3><p>Camel adds 
the following message headers to the exchange:</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>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>CamelJpaTemplate</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>JpaTemplate</code></p><
 /td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Not supported 
anymore since Camel 2.12:</strong> The <code>JpaTemplate</code> object that is 
used to access the entity bean. You need this object in some situations, for 
instance in a type converter or when you are doing some custom processing. See 
<a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/CAMEL-5932";>CAMEL-5932</a> for the 
reason why the support for this header has been dropped.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelEntityManager</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>EntityManager</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12: JPA 
consumer / Camel 2.12.2: JPA producer:</strong> The JPA 
<code>EntityManager</code> object being used by <code>JpaConsumer</code> or 
<code>JpaProducer</code>.</p></td></tr></tbody></table></div></div><h3 
id="BookComponentAppendix-Configuri
 ngEntityManagerFactory">Configuring EntityManagerFactory</h3><p>Its strongly 
advised to configure the JPA component to use a specific 
<code>EntityManagerFactory</code> instance. If failed to do so each 
<code>JpaEndpoint</code> will auto create their own instance of 
<code>EntityManagerFactory</code> which most often is not what you 
want.</p><p>For example, you can instantiate a JPA component that references 
the <code>myEMFactory</code> entity manager factory, as follows:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
@@ -6791,7 +6792,7 @@ but the following listed types were not
 ]]></script>
 </div></div>
 
-<h3 id="BookComponentAppendix-URIformat.37">URI format</h3>
+<h3 id="BookComponentAppendix-URIformat.36">URI format</h3>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
@@ -6879,7 +6880,7 @@ from(&quot;jt400://username:password@sys
 </div></div>
 
 <h3 id="BookComponentAppendix-SeeAlso.35">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-Language">Language</h2><p><strong>Available as of 
Camel 2.5</strong></p><p>The language component allows you to send <a 
shape="rect" href="exchange.html">Exchange</a> to an endpoint which executes a 
script by any of the supported <a shape="rect" 
href="languages.html">Languages</a> in Camel.<br clear="none"> By having a 
component to execute language scripts, it allows more dynamic routing 
capabilities. For example by using the <a shape="rect" 
href="routing-slip.html">Routing Slip</a> or <a shape="rect" 
href="dynamic-router.html">Dynamic Router</a> EIPs you can send messages to 
<code>language</code> endpoints where the script is dynamic defined as 
well.</p><p>This component is provide
 d out of the box in <code>camel-core</code> and hence no additional JARs is 
needed. You only have to include additional Camel components if the language of 
choice mandates it, such as using <a shape="rect" href="groovy.html">Groovy</a> 
or <a shape="rect" href="javascript.html">JavaScript</a> languages.</p><h3 
id="BookComponentAppendix-URIformat.38">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-Language">Language</h2><p><strong>Available as of 
Camel 2.5</strong></p><p>The language component allows you to send <a 
shape="rect" href="exchange.html">Exchange</a> to an endpoint which executes a 
script by any of the supported <a shape="rect" 
href="languages.html">Languages</a> in Camel.<br clear="none"> By having a 
component to execute language scripts, it allows more dynamic routing 
capabilities. For example by using the <a shape="rect" 
href="routing-slip.html">Routing Slip</a> or <a shape="rect" 
href="dynamic-router.html">Dynamic Router</a> EIPs you can send messages to 
<code>language</code> endpoints where the script is dynamic defined as 
well.</p><p>This component is provide
 d out of the box in <code>camel-core</code> and hence no additional JARs is 
needed. You only have to include additional Camel components if the language of 
choice mandates it, such as using <a shape="rect" href="groovy.html">Groovy</a> 
or <a shape="rect" href="javascript.html">JavaScript</a> languages.</p><h3 
id="BookComponentAppendix-URIformat.37">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[language://languageName[:script][?options]
 ]]></script>
 </div></div><p>And from Camel 2.11 onwards you can refer to an external 
resource for the script using same notation as supported by the other <a 
shape="rect" href="language.html">Language</a>s in Camel</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -6934,7 +6935,7 @@ from(&quot;direct:start&quot;)
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-URIformat.39">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-URIformat.38">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[ldap:ldapServerBean[?options]
 ]]></script>
 </div></div><p>The <em>ldapServerBean</em> portion of the URI refers to a <a 
shape="rect" class="external-link" 
href="http://java.sun.com/j2se/1.4.2/docs/api/javax/naming/directory/DirContext.html";
 rel="nofollow">DirContext</a> bean in the registry. The LDAP component only 
supports producer endpoints, which means that an <code>ldap</code> URI cannot 
appear in the <code>from</code> at the start of a route.</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.30">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>base</code></p></td><td colspa
 n="1" rowspan="1" class="confluenceTd"><p><code>ou=system</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The base DN for 
searches.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>scope</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>subtree</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Specifies how deeply to search the tree of 
entries, starting at the base DN. Value can be <code>object</code>, 
<code>onelevel</code>, or <code>subtree</code>.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>pageSize</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>no paging used</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.6:</strong> 
When specified the ldap module uses paging to retrieve all results (most LDAP 
Servers throw an exception when trying to retrieve more than 1000 entries in 
one query). To be able to use this a LdapContext (subclass of 
 DirContext) has to be passed in as ldapServerBean (otherwise an exception is 
thrown)</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>returnedAttributes</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>depends on LDAP Server (could be all or 
none)</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 
2.6:</strong> Comma-separated list of attributes that should be set in each 
entry of the result</p></td></tr></tbody></table></div></div><h3 
id="BookComponentAppendix-Result.1">Result</h3><p>The result is returned in the 
Out body as a <code>ArrayList&lt;javax.naming.directory.SearchResult&gt;</code> 
object.</p><h3 id="BookComponentAppendix-DirContext">DirContext</h3><p>The URI, 
<code>ldap:ldapserver</code>, references a Spring bean with the ID, 
<code>ldapserver</code>. The <code>ldapserver</code> bean may be defined as 
follows:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
@@ -7143,7 +7144,7 @@ public class CustomSocketFactory extends
 }]]></script>
 </div></div><p>&#160;</p><p></p><h3 id="BookComponentAppendix-SeeAlso.37">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-LogComponent">Log Component</h2><p>The 
<strong>log:</strong> component logs message exchanges to the underlying 
logging mechanism.</p><p>Camel uses <a shape="rect" class="external-link" 
href="http://www.slf4j.org/"; rel="nofollow">sfl4j</a> which allows you to 
configure logging via, among others:
-</p><ul><li><a shape="rect" class="external-link" 
href="http://logging.apache.org/log4j/";>Log4j</a></li><li><a shape="rect" 
class="external-link" href="http://logback.qos.ch/"; 
rel="nofollow">Logback</a></li><li><a shape="rect" class="external-link" 
href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/package-summary.html";
 rel="nofollow">JDK Util Logging logging</a></li></ul><h3 
id="BookComponentAppendix-URIformat.40">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</p><ul><li><a shape="rect" class="external-link" 
href="http://logging.apache.org/log4j/";>Log4j</a></li><li><a shape="rect" 
class="external-link" href="http://logback.qos.ch/"; 
rel="nofollow">Logback</a></li><li><a shape="rect" class="external-link" 
href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/logging/package-summary.html";
 rel="nofollow">JDK Util Logging logging</a></li></ul><h3 
id="BookComponentAppendix-URIformat.39">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[log:loggingCategory[?options]
 ]]></script>
 </div></div><p>Where <strong>loggingCategory</strong> is the name of the 
logging category to use. You can append query options to the URI in the 
following format, <code>?option=value&amp;option=value&amp;...</code></p>    
<div class="aui-message hint shadowed information-macro">
@@ -7233,7 +7234,7 @@ Headers:{breadcrumbId=ID-machine-local-5
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-URIformat.41">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-URIformat.40">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[lucene:searcherName:insert[?options]
 lucene:searcherName:query[?options]
 ]]></script>
@@ -7348,7 +7349,7 @@ CamelContext context = new DefaultCamelC
                             <p>You can use a mock framework for unit testing, 
which allows you to test without the need for a real mail server. However you 
should remember to not include the mock-mail when you go into production or 
other environments where you need to send mails to a real mail server. Just the 
presence of the mock-javamail.jar on the classpath means that it will kick in 
and avoid sending the mails.</p>
                     </div>
     </div>
-<h3 id="BookComponentAppendix-URIformat.42">URI format</h3><p>Mail endpoints 
can have one of the following URI formats (for the protocols, SMTP, POP3, or 
IMAP, respectively):</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<h3 id="BookComponentAppendix-URIformat.41">URI format</h3><p>Mail endpoints 
can have one of the following URI formats (for the protocols, SMTP, POP3, or 
IMAP, respectively):</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[smtp://[username@]host[:port][?options]
 pop3://[username@]host[:port][?options]
 imap://[username@]host[:port][?options]
@@ -7580,7 +7581,7 @@ SearchTerm term = builder.build();
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-URIformat.43">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-URIformat.42">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[mina:tcp://hostname[:port][?options]
 mina:udp://hostname[:port][?options]
 mina:vm://hostname[:port][?options]
@@ -7764,7 +7765,7 @@ assertEquals(&quot;Bye World&quot;, resp
     </div>
  
 
-<h3 id="BookComponentAppendix-URIformat.44">URI format</h3>
+<h3 id="BookComponentAppendix-URIformat.43">URI format</h3>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
@@ -8257,7 +8258,7 @@ mock.allMessages().arrives().noLaterThan
 
 <p>Note that the <a shape="rect" href="jing.html">Jing</a> component also 
supports <a shape="rect" class="external-link" 
href="http://relaxng.org/compact-tutorial-20030326.html"; rel="nofollow">RelaxNG 
Compact Syntax</a></p>
 
-<h3 id="BookComponentAppendix-URIformat.45">URI format</h3>
+<h3 id="BookComponentAppendix-URIformat.44">URI format</h3>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
@@ -8317,7 +8318,7 @@ msv:http://acme.com/cheese.rng
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-URIformat.46">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-URIformat.45">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[mybatis:statementName[?options]
 ]]></script>
 </div></div><p>Where <strong>statementName</strong> is the statement name in 
the MyBatis XML mapping file which maps to the query, insert, update or delete 
operation you wish to evaluate.</p><p>You can append query options to the URI 
in the following format, 
<code>?option=value&amp;option=value&amp;...</code></p><p>This component will 
by default load the MyBatis SqlMapConfig file from the root of the classpath 
with the expected name of <code>SqlMapConfig.xml</code>.<br clear="none"> If 
the file is located in another location, you will need to configure the 
<code>configurationUri</code> option on the <code>MyBatisComponent</code> 
component.</p><h3 id="BookComponentAppendix-Options.36">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>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default<
 /p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>consumer.onConsume</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Statements to run after 
consuming. Can be used, for example, to update rows after they have been 
consumed and processed in Camel. See sample later. Multiple statements can be 
separated with commas.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.useIterator</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>If <code>true</code> each row returned when 
polling will be processed individually. If
  <code>false</code> the entire <code>List</code> of data is set as the IN 
body.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.routeEmptyResultSet</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Sets whether empty result sets should be 
routed.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>statementType</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>StatementType</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Mandatory to specify for the 
producer to control which kind of operation to invoke. The enum values are: 
<code>SelectOne</code>, <code>SelectList</code>, <code>Insert</code>, 
<code>InsertList</code>, <code>Update</co
 de>, <code>UpdateList</code>, <code>Delete</code>, and 
<code>DeleteList</code>. <strong>Notice:</strong> <code>InsertList</code> is 
available as of Camel 2.10, and <code>UpdateList</code>, 
<code>DeleteList</code> is available as of Camel 2.11.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>maxMessagesPerPoll</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>This option is intended to split results 
returned by the database pool into the batches and deliver them in multiple 
exchanges. This integer defines the maximum messages to deliver in single 
exchange. By default, no maximum is set. Can be used to set a limit of e.g. 
1000 to avoid when starting up the server that there are thousands of files. 
Set a value of 0 or negative to disable it.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="
 confluenceTd"><p><code>executorType</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.11:</strong> The executor type to be 
used while executing statements. The supported values are: simple, reuse, 
batch. By default, the value is not specified and is equal to what MyBatis 
uses, i.e. <strong>simple</strong>. <br clear="none" 
class="atl-forced-newline"> <strong>simple</strong> executor does nothing 
special. <br clear="none" class="atl-forced-newline"> <strong>reuse</strong> 
executor reuses prepared statements. <br clear="none" 
class="atl-forced-newline"> <strong>batch</strong> executor reuses statements 
and batches updates.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>outputHeader</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>String</code></td><
 td colspan="1" rowspan="1" class="confluenceTd"><code>null</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.15:</strong><span 
style="color: rgb(0,0,0);">&#160;To store the result as a header instead of the 
message body. This allows to preserve the existing message body 
as-is.</span></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>inputHeader</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>String</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>null</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.15: &#160;</strong>"inputHeader" parameter 
to use a header value as input to the component instead of the 
body.</td></tr></tbody></table></div></div><h3 
id="BookComponentAppendix-MessageHeaders.13">Message Headers</h3><p>Camel will 
populate the result message, either IN or OUT with a header with the statement 
used:</p><div class="confluenceTableSmall"><div class="table-wrap"><table c
 lass="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Header</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><code>CamelMyBatisStatementName</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The 
<strong>statementName</strong> used (for example: 
insertAccount).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelMyBatisResult</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Object</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The <strong>response</strong> returned from 
MtBatis in any of the operations. For instance an <code>INSERT</code> could 
return the auto-generated key, or number of rows 
etc.</p></td></tr></tbody></table></div
 ></div><h3 id="BookComponentAppendix-MessageBody.3">Message Body</h3><p>The 
 >response from MyBatis will only be set as the body if it's a 
 ><code>SELECT</code> statement. That means, for example, for 
 ><code>INSERT</code> statements Camel will not replace the body. This allows 
 >you to continue routing and keep the original body. The response from MyBatis 
 >is always stored in the header with the key 
 ><code>CamelMyBatisResult</code>.</p><h3 
 >id="BookComponentAppendix-Samples.10">Samples</h3><p>For example if you wish 
 >to consume beans from a JMS queue and insert them into a database you could 
 >do the following:</p><div class="code panel pdl" style="border-width: 
 >1px;"><div class="codeContent panelContent pdl">
@@ -8501,7 +8502,7 @@ from(&quot;mybatis:selectUnprocessedAcco
 </div></div>
 
 
-<h3 id="BookComponentAppendix-URIformat.47">URI format</h3>
+<h3 id="BookComponentAppendix-URIformat.46">URI format</h3>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
@@ -8578,7 +8579,7 @@ Camel also provides a <a shape="rect" hr
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-URIformat.48">URI format</h3><p>The 
URI scheme for a netty component is as follows</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-URIformat.47">URI format</h3><p>The 
URI scheme for a netty component is as follows</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[netty:tcp://localhost:99999[?options]
 netty:udp://remotehost:99999/[?options]
 ]]></script>
@@ -8914,7 +8915,7 @@ to(&quot;nmr:MyServiceEndpoint&quot;)
 
 <p><span class="confluence-anchor-link" 
id="BookComponentAppendix-URI-format"></span></p>
 
-<h3 id="BookComponentAppendix-URIformat.49">URI format</h3>
+<h3 id="BookComponentAppendix-URIformat.48">URI format</h3>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
@@ -9009,7 +9010,7 @@ public class ExchangeUsingNMRTest extend
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-URIformat.50">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-URIformat.49">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[quartz://timerName?options
 quartz://groupName/timerName?options
 quartz://groupName/timerName?cron=expression
@@ -9061,7 +9062,7 @@ from(&quot;quartz://myGroup/myTimerName?
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-URIformat.51">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-URIformat.50">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[quickfix:configFile[?sessionID=sessionID&amp;lazyCreateEngine=true|false]
 ]]></script>
 </div></div><p>The <strong>configFile</strong> is the name of the QuickFIX/J 
configuration to use for the FIX engine (located as a resource found in your 
classpath). The optional <strong>sessionID</strong> identifies a specific FIX 
session. The format of the sessionID is:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -9223,7 +9224,7 @@ TargetCompID=YOUR_TARGET
     
filter(header(QuickfixjEndpoint.MESSAGE_TYPE_KEY).isEqualTo(MsgType.EXECUTION_REPORT)).
     bean(new MyTradeExecutionProcessor());
 ]]></script>
-</div></div><h2 
id="BookComponentAppendix-QuickFIX/JComponentPriortoCamel2.5">QuickFIX/J 
Component Prior to Camel 2.5</h2><p>The <strong>quickfix</strong> component is 
an implementation of the <a shape="rect" class="external-link" 
href="http://www.quickfixj.org/"; rel="nofollow">QuickFIX/J</a> engine for Java 
. This engine allows to connect to a FIX server which is used to exchange 
financial messages according to <a shape="rect" class="external-link" 
href="http://www.fixprotocol.org/"; rel="nofollow">FIX protocol</a> 
standard.</p><p><strong>Note:</strong> The component can be used to 
send/receives messages to a FIX server.</p><h3 
id="BookComponentAppendix-URIformat.52">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h2 
id="BookComponentAppendix-QuickFIX/JComponentPriortoCamel2.5">QuickFIX/J 
Component Prior to Camel 2.5</h2><p>The <strong>quickfix</strong> component is 
an implementation of the <a shape="rect" class="external-link" 
href="http://www.quickfixj.org/"; rel="nofollow">QuickFIX/J</a> engine for Java 
. This engine allows to connect to a FIX server which is used to exchange 
financial messages according to <a shape="rect" class="external-link" 
href="http://www.fixprotocol.org/"; rel="nofollow">FIX protocol</a> 
standard.</p><p><strong>Note:</strong> The component can be used to 
send/receives messages to a FIX server.</p><h3 
id="BookComponentAppendix-URIformat.51">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[quickfix-server:config file
 quickfix-client:config file
 ]]></script>
@@ -9250,7 +9251,7 @@ quickfix-client:config file
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-URIformat.53">URI 
format</h3><p>Since the URI scheme for a printer has not been standardized (the 
nearest thing to a standard being the IETF print standard) and therefore not 
uniformly applied by vendors, we have chosen <strong>"lpr"</strong> as the 
scheme.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-URIformat.52">URI 
format</h3><p>Since the URI scheme for a printer has not been standardized (the 
nearest thing to a standard being the IETF print standard) and therefore not 
uniformly applied by vendors, we have chosen <strong>"lpr"</strong> as the 
scheme.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[lpr://localhost/default[?options]
 lpr://remotehost:port/path/to/printer[?options]
 ]]></script>
@@ -9288,7 +9289,7 @@ lpr://remotehost:port/path/to/printer[?o
            &quot;&amp;flavor=DocFlavor.INPUT_STREAM&quot;)
     }};
 ]]></script>
-</div></div> <h2 id="BookComponentAppendix-PropertiesComponent">Properties 
Component</h2><p><strong>Available as of Camel 2.3</strong></p><h3 
id="BookComponentAppendix-URIformat.54">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div> <h2 id="BookComponentAppendix-PropertiesComponent">Properties 
Component</h2><p><strong>Available as of Camel 2.3</strong></p><h3 
id="BookComponentAppendix-URIformat.53">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[properties:key[?options]
 ]]></script>
 </div></div><p>Where <strong>key</strong> is the key for the property to 
lookup</p><h3 id="BookComponentAppendix-Options.41">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>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>cache</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>boolean</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Whether or not to cache loaded 
properties.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>locations</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"
 ><p><code>String</code></p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p>A list of locations to load properties. You can use 
 >comma to separate multiple locations. This option will override any default 
 >locations and <strong>only</strong> use the locations from this 
 >option.</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><code>encoding</code></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><code>String</code></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><code>null</code></td><td colspan="1" rowspan="1" 
 >class="confluenceTd"><strong>Camel 2.14.3/2.15.1:</strong> To use a specific 
 >charset to load the properties, such as UTF-8. By default ISO-8859-1 (latin1) 
 >is used.</td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>ignoreMissingLocation</code></p></td><td 
 >colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" ro
 wspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> Whether to 
silently ignore if a location cannot be located, such as a properties file not 
found.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>propertyPrefix</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.9</strong> Optional prefix 
prepended to property names before resolution.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>propertySuffix</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9</strong> 
Optional su
 ffix appended to property names before resolution.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>fallbackToUnaugmentedProperty</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.9</strong> If true, first 
attempt resolution of property name augmented with <code>propertyPrefix</code> 
and <code>propertySuffix</code> before falling back the plain property name 
specified. If false, only the augmented property name is 
searched.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>prefixToken</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>{{</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.9</strong> The token to indicate the b
 eginning of a property token.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>suffixToken</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>}}</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.9</strong> The token to indicate the 
end of a property token.</p></td></tr></tbody></table></div></div>    <div 
class="aui-message success shadowed information-macro">
@@ -9907,7 +9908,7 @@ export $FOO_SERVICE_PORT=8888]]></script
 
 <p>The <strong>ref:</strong> component is used for lookup of existing 
endpoints bound in the <a shape="rect" href="registry.html">Registry</a>.</p>
 
-<h3 id="BookComponentAppendix-URIformat.55">URI format</h3>
+<h3 id="BookComponentAppendix-URIformat.54">URI format</h3>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
@@ -9987,7 +9988,7 @@ ref:someName[?options]
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-URIformat.56">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-URIformat.55">URI format</h3><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[restlet:restletUrl[?options]
 ]]></script>
 </div></div><p>Format of restletUrl:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -10178,7 +10179,7 @@ from(&quot;restlet:http://localhost:&quo
 ]]></script>
 </div></div>
 
-<h3 id="BookComponentAppendix-URIformat.57">URI format</h3>
+<h3 id="BookComponentAppendix-URIformat.56">URI format</h3>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[
@@ -10248,7 +10249,7 @@ from(endpoint).to(&quot;pojo:bar&quot;);
                             <p>Camel-rss internally uses a <a shape="rect" 
class="external-link" 
href="http://svn.apache.org/repos/asf/servicemix/smx4/bundles/trunk/rome-1.0/";>patched
 version</a> of <a shape="rect" class="external-link" 
href="http://rometools.github.io/rome/"; rel="nofollow">ROME</a> hosted on 
ServiceMix to solve some OSGi <a shape="rect" class="external-link" 
href="https://issues.apache.org/jira/browse/SMX4-510";>class loading 
issues</a>.</p>
                     </div>
     </div>
-<h3 id="BookComponentAppendix-URIformat.58">URI format</h3><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<h3 id="BookComponentAppendix-URIformat.57">URI format</h3><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[rss:rssUri
 ]]></script>
 </div></div><p>Where <code>rssUri</code> is the URI to the RSS feed to 
poll.</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.44">Options</h3><div 
class="confluenceTableSmall">
@@ -10297,7 +10298,7 @@ public static class FilterBean {
                             <p>The <a shape="rect" 
href="direct.html">Direct</a> component provides synchronous invocation of any 
consumers when a producer sends a message exchange.</p>
                     </div>
     </div>
-<h3 id="BookComponentAppendix-URIformat.59">URI format</h3><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<h3 id="BookComponentAppendix-URIformat.58">URI format</h3><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[seda:someName[?options]
 ]]></script>
 </div></div><p>Where <strong>someName</strong> can be any string that uniquely 
identifies the endpoint within the current <a shape="rect" 
href="camelcontext.html">CamelContext</a>.</p><p>You can append query options 
to the URI in the following format: 
<code>?option=value&amp;option=value&amp;&#8230;</code></p><h3 
id="BookComponentAppendix-Options.45">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> Since </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>size</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The maximum
  capacity of the SEDA queue (i.e., the number of messages it can hold). The 
default value in Camel 2.2 or older is <code>1000</code>. From Camel 2.3 
onwards, the size is unbounded by default. <strong>Notice:</strong> Mind if you 
use this option, then its the first endpoint being created with the queue name, 
that determines the size. To make sure all endpoints use same size, then 
configure the size option on all of them, or the first endpoint being created. 
From <strong>Camel 2.11</strong> onwards, a validation is taken place to ensure 
if using mixed queue sizes for the same queue name, Camel would detect this and 
fail creating the endpoint. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>concurrentConsumers</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>1</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Number of concurrent threads processin
 g exchanges. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>waitForTaskToComplete</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>IfReplyExpected</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> Option to specify whether the 
caller should wait for the async task to complete or not before continuing. The 
following three options are supported: <code>Always</code>, <code>Never</code> 
or <code>IfReplyExpected</code>. The first two values are self-explanatory. The 
last value, <code>IfReplyExpected</code>, will only wait if the message is <a 
shape="rect" href="request-reply.html">Request Reply</a> based. The default 
option is <code>IfReplyExpected</code>. See more information about <a 
shape="rect" href="async.html">Async</a> messaging. </p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>timeout</code> 
</p></td><td colspan=
 "1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>30000</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> Timeout (in milliseconds) 
before a SEDA producer will stop waiting for an asynchronous task to complete. 
See <code>waitForTaskToComplete</code> and <a shape="rect" 
href="async.html">Async</a> for more details. In <strong>Camel 2.2</strong> you 
can now disable timeout by using 0 or a negative value. </p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>multipleConsumers</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<strong>2.2</strong> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>false</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Specifies whether multiple consumers are 
allowed. If enabled, you can use <a shape="rect" href="seda.html">SEDA</a> for 
<a shape="rect" class="external-link" href="http://en.wikipe
 dia.org/wiki/Publish%E2%80%93subscribe_pattern" 
rel="nofollow">Publish-Subscribe</a> messaging. That is, you can send a message 
to the SEDA queue and have each consumer receive a copy of the message. When 
enabled, this option should be specified on every consumer endpoint. 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>limitConcurrentConsumers</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <strong>2.3</strong> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>true</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Whether to limit the number of 
<code>concurrentConsumers</code> to the maximum of <code>500</code>. By 
default, an exception will be thrown if a SEDA endpoint is configured with a 
greater number. You can disable that check by turning this option off. 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>blockWhenFull</code> </p></td><td colspan="1" rowspan="1" cla
 ss="confluenceTd"><p> <strong>2.9</strong> </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 thread that sends 
messages to a full SEDA queue will block until the queue's capacity is no 
longer exhausted.  By default, an exception will be thrown stating that the 
queue is full. By enabling this option, the calling thread will instead block 
and wait until the message can be accepted. </p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>queueSize</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <strong>2.9</strong> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <strong>Component 
only:</strong> The maximum default size (capacity of the number of messages it 
can hold) of the SEDA queue. This option is used if <code>size</code> is not in 
use. </p></td></tr><tr><td c
 olspan="1" rowspan="1" class="confluenceTd"><p> <code>pollTimeout</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<strong>2.9.3</strong> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>1000</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <em>Consumer only</em> &#8211; The timeout used when 
polling. When a timeout occurs, the consumer can check whether it is allowed to 
continue running. Setting a lower value allows the consumer to react more 
quickly upon shutdown. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>purgeWhenStopping</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <strong>2.11.1</strong> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>false</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> Whether to purge the task queue when stopping the 
consumer/route. This allows to stop faster, as any pending messages on the 
queue is di
 scarded. </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>queue</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <strong>2.12.0</strong> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> null </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Define the queue instance which will be 
used by seda endpoint </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>queueFactory</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <strong>2.12.0</strong> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> null </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Define the QueueFactory which could create 
the queue for the seda endpoint </p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>failIfNoConsumers</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <strong>2.12.0</strong> 
</p></td><td colspan="1" rowspan="1" class="co
 nfluenceTd"><p> false </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> Whether the producer should fail by throwing an 
exception, when sending to a SEDA queue with no active consumers. 
</p></td></tr></tbody></table></div>
@@ -10402,7 +10403,7 @@ int size = seda.getExchanges().size();
                             <p>Servlet is stream based, which means the input 
it receives is submitted to Camel as a stream. That means you will only be able 
to read the content of the stream <strong>once</strong>. If you find a 
situation where the message body appears to be empty or you need to access the 
data multiple times (eg: doing multicasting, or redelivery error handling) you 
should use <a shape="rect" href="stream-caching.html">Stream caching</a> or 
convert the message body to a <code>String</code> which is safe to be read 
multiple times.</p>
                     </div>
     </div>
-<h3 id="BookComponentAppendix-URIformat.60">URI format</h3><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<h3 id="BookComponentAppendix-URIformat.59">URI format</h3><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[servlet://relative_path[?options]
 ]]></script>
 </div></div><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.46">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>httpBindingRef</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Reference to an 
<code>org.apache.camel.component.http.HttpBinding</code> in the <a shape="rect" 
href="registry.html">Registry</a>. A <code>HttpBinding</code> implementation 
can be used to customize how to write a response.</p></td></tr><tr><td 
colspan="1" rowspan="1" cl
 ass="confluenceTd"><code><span>httpBinding</span></code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>null</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> <span>Reference 
to an </span><code>org.apache.camel.component.http.HttpBinding</code><span> in 
the </span><a shape="rect" href="registry.html">Registry</a><span>. A 
</span><code>HttpBinding</code><span> implementation can be used to customize 
how to write a response.</span></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>matchOnUriPrefix</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 or not the 
<code>CamelServlet</code> should try to find a target consumer by matching the 
URI prefix, if no exact match is found.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>servletName</code></p></td><td 
colspan="1" rowspan="1" class="con
 fluenceTd"><p><code>CamelServlet</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Specifies the servlet name that the servlet endpoint 
will bind to. This name should match the name you define in 
<code>web.xml</code> file.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code><span style="color: 
rgb(0,0,0);">httpMethodRestrict</span></code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>null</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><strong>Camel 2.11:</strong><span 
style="color: rgb(0,0,0);">&#160;</span><strong>Consumer only</strong><span 
style="color: rgb(0,0,0);">: Used to only allow consuming if the HttpMethod 
matches, such as GET/POST/PUT etc.&#160;</span><span style="color: 
rgb(0,0,0);">From&#160;</span><strong>Camel 2.15 </strong><span style="color: 
rgb(0,0,0);">onwards multiple methods can be specified separated by 
comma.</span></td></tr></tbody></table></div></div><h3 
id="BookComponentAppendix-MessageH
 eaders.17">Message Headers</h3><p>Camel will apply the same Message Headers as 
the <a shape="rect" href="http.html">HTTP</a> component.</p><p>Camel will also 
populate <strong>all</strong> <code>request.parameter</code> and 
<code>request.headers</code>. For example, if a client request has the URL, 
<code><a shape="rect" class="external-link" 
href="http://myserver/myserver?orderid=123"; 
rel="nofollow">http://myserver/myserver?orderid=123</a></code>, the exchange 
will contain a header named <code>orderid</code> with the value 123.</p><h3 
id="BookComponentAppendix-Usage.5">Usage</h3><p>You can consume only from 
endpoints generated by the Servlet component. Therefore, it should be used only 
as input into your Camel routes. To issue HTTP requests against other HTTP 
endpoints, use the <a shape="rect" href="http.html">HTTP Component</a></p><h3 
id="BookComponentAppendix-PuttingCamelJARsintheappserverbootclasspath">Putting 
Camel JARs in the app server boot classpath</h3><p>If you put the Camel
  JARs such as <code>camel-core</code>, <code>camel-servlet</code>, etc. in the 
boot classpath of your application server (eg usually in its lib directory), 
then mind that the servlet mapping list is now shared between multiple deployed 
Camel application in the app server.</p><p>Mind that putting Camel JARs in the 
boot classpath of the application server is generally not best 
practice!</p><p>So in those situations you <strong>must</strong> define a 
custom and unique servlet name in each of your Camel application, eg in the 
<code>web.xml</code> define:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -10810,7 +10811,7 @@ sec-level1 = zone1:readonly:*
 ]]></script>
 </div></div>
 
-<h3 id="BookComponentAppendix-URIformat.61">URI format</h3>
+<h3 id="BookComponentAppendix-URIformat.60">URI format</h3>
 
 <p>The URI scheme for a sip endpoint is as follows:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
@@ -10900,7 +10901,7 @@ protected RouteBuilder createRouteBuilde
     &lt;!-- use the same version as your Camel core version --&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-SMSlimitations">SMS 
limitations</h3><p>SMS is neither reliable or secure.&#160; Users who require 
reliable and secure delivery may want to consider using the XMPP or SIP 
components instead, combined with a smartphone app supporting the chosen 
protocol.</p><ul><li>Reliability: although the SMPP standard offers a range of 
feedback mechanisms to indicate errors, non-delivery and confirmation of 
delivery it is not uncommon for mobile networks to hide or simulate these 
responses.&#160; For example, some networks automatically send a delivery 
confirmation for every message even if the destination number is invalid or not 
switched on.&#160; Some networks silently drop messages if they think they are 
spam.&#160; Spam detection rules in the network may be very crude, sometimes 
more than 100 messages per day from a single sender may be considered 
spam.</li><li>Security: there is basic encryption for the last hop from the 
radio tower down to the recipi
 ent handset.&#160; SMS messages are not encrypted or authenticated in any 
other part of the network.&#160; Some operators allow staff in retail outlets 
or call centres to browse through the SMS message histories of their 
customers.&#160; Message sender identity can be easily forged.&#160; Regulators 
and even the mobile telephone industry itself has cautioned against the use of 
SMS in two-factor authentication schemes and other purposes where security is 
important.</li></ul><p>While the Camel component makes it as easy as possible 
to send messages to the SMS network, it can not offer an easy solution to these 
problems.</p><h2 
id="BookComponentAppendix-Datacoding,alphabetandinternationalcharactersets">Data
 coding, alphabet and international character sets</h2><p>Data coding and 
alphabet can be specified on a per-message basis.&#160; Default values can be 
specified for the endpoint.&#160; It is important to understand the 
relationship between these options and the way the component act
 s when more than one value is set.</p><p>Data coding is an 8 bit field in the 
SMPP wire format.</p><p>Alphabet corresponds to bits 0-3 of the data coding 
field.&#160; For some types of message, where a message class is used (by 
setting bit 5 of the data coding field), the lower two bits of the data coding 
field are not interpreted as alphabet and only bits 2 and 3 impact the 
alphabet.</p><p>Furthermore, current version of the JSMPP library only seems to 
support bits 2 and 3, assuming that bits 0 and 1 are used for message 
class.&#160; This is why the Alphabet class in JSMPP doesn't support the value 
3 (binary 0011) which indicates ISO-8859-1.</p><p>Although JSMPP provides a 
representation of the message class parameter, the Camel component doesn't 
currently provide a way to set it other than manually setting the corresponding 
bits in the data coding field.</p><p>When setting the data coding field in the 
outgoing message, the Camel component considers the following values and uses th
 e first one it can find:</p><ul><li>the data coding specified in a 
header</li><li>the alphabet specified in a header</li><li>the data coding 
specified in the endpoint configuration (URI parameter)</li></ul><p>Older 
versions of Camel had bugs in support for international character sets.&#160; 
This feature only worked when a single encoding was used for all messages and 
was troublesome when users wanted to change it on a per-message basis.&#160; 
Users who require this to work should ensure their version of Camel includes 
the fix for&#160;</p><div class="error">Error rendering macro 'jira' : 
com.atlassian.confluence.macro.MacroExecutionException: 
java.lang.RuntimeException: Not Found</div>.<p>In addition to trying to send 
the data coding value to the SMSC, the Camel component also tries to analyze 
the message body, convert it to a Java String (Unicode) and convert that to a 
byte array in the corresponding alphabet&#160; When deciding which alphabet to 
use in the byte array, the Camel S
 MPP component does not consider the data coding value (header or 
configuration), it only considers the specified alphabet (from either the 
header or endpoint parameter).</p><p>If some characters in the String can't be 
represented in the chosen alphabet, they may be replaced by the question mark ( 
? ) symbol.&#160; Users of the API may want to consider checking if their 
message body can be converted to ISO-8859-1 before passing it to the component 
and if not, setting the alphabet header to request UCS-2 encoding.&#160; If the 
alphabet and data coding options are not specified at all then the component 
may try to detect the required encoding and set the data coding for 
you.</p><p>The list of alphabet codes are specified in the SMPP specification 
v3.4, section 5.2.19.&#160; One notable limitation of the SMPP specification is 
that there is no alphabet code for explicitly requesting use of the GSM 3.38 (7 
bit) character set.&#160; Choosing the value 0 for the alphabet selects the 
SMSC <e
 m>default</em> alphabet, this usually means GSM 3.38 but it is not 
guaranteed.&#160; The SMPP gateway Nexmo <a shape="rect" class="external-link" 
href="https://help.nexmo.com/hc/en-us/articles/204015813-How-to-change-the-character-encoding-in-SMPP-";
 rel="nofollow">actually allows the default to be mapped to any other character 
set with a control panel option</a>. It is suggested that users check with 
their SMSC operator to confirm exactly which character set is being used as the 
default.</p><h3 
id="BookComponentAppendix-Messagesplittingandthrottling">Message splitting and 
throttling</h3><p>After transforming a message body from a String to a byte 
array, the Camel component is also responsible for splitting the message into 
parts (within the 140 byte SMS size limit) before passing it to JSMPP.&#160; 
This is completed automatically.</p><p>If the GSM 3.38 alphabet is used, the 
component will pack up to 160 characters into the 140 byte message body.&#160; 
If an 8 bit character set is us
 ed (e.g. ISO-8859-1 for western Europe) then 140 characters will be allowed 
within the 140 byte message body.&#160; If 16 bit UCS-2 encoding is used then 
just 70 characters fit into each 140 byte message.</p><p>Some SMSC providers 
implement throttling rules.&#160; Each part of a message that has been split 
may be counted separately by the provider's throttling mechanism.&#160; The 
Camel Throttler component can be useful for throttling messages in the SMPP 
route before handing them to the SMSC.</p><h3 
id="BookComponentAppendix-URIformat.62">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">

[... 140 lines stripped ...]

Reply via email to