Modified: websites/production/camel/content/book-in-one-page.html
==============================================================================
--- websites/production/camel/content/book-in-one-page.html (original)
+++ websites/production/camel/content/book-in-one-page.html Fri Feb  5 16:20:26 
2016
@@ -3729,11 +3729,11 @@ The tutorial has been designed in two pa
 While not actual tutorials you might find working through the source of the 
various <a shape="rect" href="examples.html">Examples</a> useful.</li></ul>
 
 <h2 id="BookInOnePage-TutorialonSpringRemotingwithJMS">Tutorial on Spring 
Remoting with JMS</h2><p>&#160;</p><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Thanks</p><span 
class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>This tutorial was kindly donated 
to Apache Camel by Martin Gilday.</p></div></div><h2 
id="BookInOnePage-Preface">Preface</h2><p>This tutorial aims to guide the 
reader through the stages of creating a project which uses Camel to facilitate 
the routing of messages from a JMS queue to a <a shape="rect" 
class="external-link" href="http://www.springramework.org"; 
rel="nofollow">Spring</a> service. The route works in a synchronous fashion 
returning a response to the client.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1454206780836 {padding: 0px;}
-div.rbtoc1454206780836 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1454206780836 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1454689121488 {padding: 0px;}
+div.rbtoc1454689121488 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1454689121488 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1454206780836">
+/*]]>*/</style></p><div class="toc-macro rbtoc1454689121488">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookInOnePage-TutorialonSpringRemotingwithJMS">Tutorial on Spring 
Remoting with JMS</a></li><li><a shape="rect" 
href="#BookInOnePage-Preface">Preface</a></li><li><a shape="rect" 
href="#BookInOnePage-Prerequisites">Prerequisites</a></li><li><a shape="rect" 
href="#BookInOnePage-Distribution">Distribution</a></li><li><a shape="rect" 
href="#BookInOnePage-About">About</a></li><li><a shape="rect" 
href="#BookInOnePage-CreatetheCamelProject">Create the Camel Project</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookInOnePage-UpdatethePOMwithDependencies">Update the POM with 
Dependencies</a></li></ul>
 </li><li><a shape="rect" href="#BookInOnePage-WritingtheServer">Writing the 
Server</a>
@@ -5838,11 +5838,11 @@ So we completed the last piece in the pi
 <p>This example has been removed from <strong>Camel 2.9</strong> onwards. 
Apache Axis 1.4 is a very old and unsupported framework. We encourage users to 
use <a shape="rect" href="cxf.html">CXF</a> instead of Axis.</p></div></div>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1454206782266 {padding: 0px;}
-div.rbtoc1454206782266 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1454206782266 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1454689122572 {padding: 0px;}
+div.rbtoc1454689122572 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1454689122572 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1454206782266">
+/*]]>*/</style><div class="toc-macro rbtoc1454689122572">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookInOnePage-TutorialusingAxis1.4withApacheCamel">Tutorial using Axis 
1.4 with Apache Camel</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookInOnePage-Prerequisites">Prerequisites</a></li><li><a shape="rect" 
href="#BookInOnePage-Distribution">Distribution</a></li><li><a shape="rect" 
href="#BookInOnePage-Introduction">Introduction</a></li><li><a shape="rect" 
href="#BookInOnePage-SettinguptheprojecttorunAxis">Setting up the project to 
run Axis</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookInOnePage-Maven2">Maven 2</a></li><li><a shape="rect" 
href="#BookInOnePage-wsdl">wsdl</a></li><li><a shape="rect" 
href="#BookInOnePage-ConfiguringAxis">Configuring Axis</a></li><li><a 
shape="rect" href="#BookInOnePage-RunningtheExample">Running the 
Example</a></li></ul>
@@ -17292,11 +17292,11 @@ template.send(&quot;direct:alias-verify&
 ]]></script>
 </div></div><p></p><h3 id="BookInOnePage-SeeAlso.28">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="BookInOnePage-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 consume 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.rbtoc1454206787465 {padding: 0px;}
-div.rbtoc1454206787465 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1454206787465 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1454689142786 {padding: 0px;}
+div.rbtoc1454689142786 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1454689142786 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1454206787465">
+/*]]>*/</style></p><div class="toc-macro rbtoc1454689142786">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookInOnePage-CXFComponent">CXF Component</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookInOnePage-URIformat">URI format</a></li><li><a shape="rect" 
href="#BookInOnePage-Options">Options</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookInOnePage-Thedescriptionsofthedataformats">The descriptions of the 
dataformats</a>
@@ -26487,7 +26487,7 @@ protected RouteBuilder createRouteBuilde
 ]]></script>
 </div></div><p>When using named parameters, Camel will lookup the names from, 
in the given precedence:<br clear="none"> 1. from message body if its a 
<code>java.util.Map</code><br clear="none"> 2. from message headers</p><p>If a 
named parameter cannot be resolved, then an exception is thrown.</p><p>From 
Camel 2.14 onward you can use Simple expressions as parameters as 
shown:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[sql:select * from table where 
id=:#${property.myId} order by name[?options]]]></script>
-</div></div><p>Notice that the standard <code>?</code> symbol that denotes the 
parameters to an SQL query is substituted with the <code>#</code> symbol, 
because the <code>?</code> symbol is used to specify options for the endpoint. 
The <code>?</code> symbol replacement can be configured on endpoint 
basis.</p><p>You can append query options to the URI in the following format, 
<code>?option=value&amp;option=value&amp;...</code></p><h3 
id="BookInOnePage-Options.75">Options</h3><div 
class="confluenceTableSmall"><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>batch</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>
 boolean</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.7.5, 2.8.4 and 2.9:</strong> Execute 
SQL batch update statements. See notes below on how the treatment of the 
inbound message body changes if this is set to 
<code>true</code>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>dataSourceRef</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</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>Deprecated and will be removed in 
Camel 3.0:</strong> Reference to a <code>DataSource</code> to look up in the 
registry. Use <code>dataSource=#theName</code> instead.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>dataSource</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Str
 ing</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.11:</strong> Reference to a 
<code>DataSource</code> to look up in the registry.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>placeholder</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>#</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.4:</strong> Specifies a 
character that will be replaced to <code>?</code> in SQL query. Notice, that it 
is simple <code>String.replaceAll()</code> operation and no SQL parsing is 
involved (quoted strings will also change). This replacement is 
<strong>only</strong> happening if the endpoint is created using the 
<code>SqlComponent</code>. If you manually create the endpoint, then use the 
expected <code>?</code> sign instead.<
 /p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>template.&lt;xxx&gt;</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Sets additional options on the Spring 
<code>JdbcTemplate</code> that is used behind the scenes to execute the 
queries. For instance, <code>template.maxRows=10</code>. For detailed 
documentation, see the <a shape="rect" class="external-link" 
href="http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/jdbc/core/JdbcTemplate.html";
 rel="nofollow">JdbcTemplate javadoc</a> documentation.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>allowNamedParameters</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan=
 "1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> Whether 
to allow using named parameters in the queries.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>processingStrategy</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL consumer 
only:</strong> Allows to plugin to use a custom 
<code>org.apache.camel.component.sql.SqlProcessingStrategy</code> to execute 
queries when the consumer has processed the rows/batch.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>prepareStatementStrategy</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.11:</strong> Allows to plugin
  to use a custom 
<code>org.apache.camel.component.sql.SqlPrepareStatementStrategy</code> to 
control preparation of the query and prepared statement.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.delay</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>long</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>500</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL 
consumer only:</strong> Delay in milliseconds between each 
poll.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.initialDelay</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>long</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>1000</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> 
<strong>SQL consumer only:</strong> Milliseconds before polling 
starts.</p></td><
 /tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.useFixedDelay</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL 
consumer only:</strong> Set to <code>true</code> to use fixed delay between 
polls, otherwise 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="confluenceTd"><p><code>maxMessagesPerPoll</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Ca
 mel 2.11:</strong> <strong>SQL consumer only:</strong> An integer value to 
define the maximum number of messages to gather per poll. By default, no 
maximum is set.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.useIterator</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL 
consumer only:</strong> If <code>true</code> each row returned when polling 
will be processed individually. If <code>false</code> the entire 
<code>java.util.List</code> of data is set as the IN body.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.routeEmptyResultSet</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code>
 </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 
2.11:</strong> <strong>SQL consumer only:</strong> Whether to route a single 
empty <a shape="rect" href="exchange.html">Exchange</a> if there was no data to 
poll.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.onConsume</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL 
consumer only:</strong> After processing each row then this query can be 
executed, if the <a shape="rect" href="exchange.html">Exchange</a> was 
processed successfully, for example to mark the row as processed. The query can 
have parameter.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.onConsumeFailed</code></p></td><td 
colspan="1" rowspan="1" class="confluenc
 eTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL consumer 
only:</strong> After processing each row then this query can be executed, if 
the <a shape="rect" href="exchange.html">Exchange</a> failed, for example to 
mark the row as failed. The query can have parameter.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.onConsumeBatchComplete</code></p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>String</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL consumer 
only:</strong> After processing the entire batch, this query can be executed to 
bulk update rows etc. The query cannot have parameters.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="con
 fluenceTd"><p><code>consumer.expectedUpdateCount</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>-1</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> 
<strong>SQL consumer only:</strong> If using <code>consumer.onConsume</code> 
then this option can be used to set an expected number of rows being updated. 
Typically you may set this to <code>1</code> to expect one row to be 
updated.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.breakBatchOnConsumeFail</code></p></td><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL 
consumer only:</strong> If using <code>consumer.onConsume</code> and it fails, 
then this o
 ption controls whether to break out of the batch or continue processing the 
next row from the batch.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>alwaysPopulateStatement</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL 
producer only:</strong> If enabled then the <code>populateStatement</code> 
method from 
<code>org.apache.camel.component.sql.SqlPrepareStatementStrategy</code> is 
always invoked, also if there is no expected parameters to be prepared. When 
this is <code>false</code> then the <code>populateStatement</code> is only 
invoked if there is 1 or more expected parameters to be set; for example this 
avoids reading the message body/headers for SQL queries with no 
parameters.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenc
 eTd"><p><code>separator</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>char</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>,</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.11.1:</strong> The separator to use 
when parameter values is taken from message body (if the body is a String 
type), to be inserted at # placeholders. Notice if you use named parameters, 
then a <code>Map</code> type is used instead.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>outputType</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>SelectList</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.0:</strong> Make the 
output of consumer or producer to <code>SelectList</code> as List of Map, or 
<code>SelectOne</code> as single Java object in the following way:<br 
 clear="none"> a) If the query has only single column, then that JDBC Column 
object is returned. (such as <code>SELECT COUNT( * ) FROM PROJECT</code> will 
return a Long object.<br clear="none"> b) If the query has more than one 
column, then it will return a Map of that result.<br clear="none"> c) If the 
<code>outputClass</code> is set, then it will convert the query result into an 
Java bean object by calling all the setters that match the column names. It 
will assume your class has a default constructor to create instance with.<br 
clear="none"> d) If the query resulted in more than one rows, it throws an 
non-unique result exception.</p><p>From <strong>Camel 2.14.1</strong> onwards 
the SelectList also supports mapping each row to a Java object as the SelectOne 
does <span>(only step c)</span>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>outputClass</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.12.0:</strong> 
Specify the full package and class name to use as conversion when 
<code>outputType=SelectOne</code>.</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"><p><strong>Camel 2.15:</strong> To store the 
result as a header instead of the message body. This allows to preserve the 
existing message body as-is.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>parametersCount</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="confluenc
 eTd"><p><strong>Camel 2.11.2/2.12.0</strong> If set greater than zero, then 
Camel will use this count value of parameters to replace instead of querying 
via JDBC metadata API. This is useful if the JDBC vendor could not return 
correct parameters count, then user may override instead.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>noop</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.0</strong> If set, will 
ignore the results of the SQL query and use the existing IN message as the OUT 
message for the continuation of processing</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><code>useMessageBodyForSql</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>boolean</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>false</
 code></td><td colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 
2.16:</strong> Whether to use the message body as the SQL and then headers for 
parameters. If this option is enabled then the SQL in the uri is not used. The 
SQL parameters must then be provided in a header with the key 
<code>CamelSqlParameters</code>. This option is only for the 
producer.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>transacted</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>boolean</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.16.2:</strong> <strong>SQL consumer 
only:</strong>Enables or disables transaction. If enabled then if processing an 
exchange failed then the consumer break out processing any further exchanges to 
cause a rollback eager</td></tr></tbody></table></div></div><h3 
id="BookInOnePage-Treatmentofthemessagebody">Treatment of the message bo
 dy</h3><p>The SQL component tries to convert the message body to an object of 
<code>java.util.Iterator</code> type and then uses this iterator to fill the 
query parameters (where each query parameter is represented by a <code>#</code> 
symbol (or configured placeholder) in the endpoint URI). If the message body is 
not an array or collection, the conversion results in an iterator that iterates 
over only one object, which is the body itself.</p><p>For example, if the 
message body is an instance of <code>java.util.List</code>, the first item in 
the list is substituted into the first occurrence of <code>#</code> in the SQL 
query, the second item in the list is substituted into the second occurrence of 
<code>#</code>, and so on.</p><p>If <code>batch</code> is set to 
<code>true</code>, then the interpretation of the inbound message body changes 
slightly &#8211; instead of an iterator of parameters, the component expects an 
iterator that contains the parameter iterators; the size of the out
 er iterator determines the batch size.</p><p>From Camel 2.16 onwards you can 
use the option&#160;<span>useMessageBodyForSql that allows to use the message 
body as the SQL statement, and then the SQL parameters must be provided in a 
header with the key&#160;SqlConstants.SQL_PARAMETERS. This allows the SQL 
component to work more dynamic as the SQL query is from the message 
body.</span></p><h3 id="BookInOnePage-Resultofthequery">Result of the 
query</h3><p>For <code>select</code> operations, the result is an instance of 
<code>List&lt;Map&lt;String, Object&gt;&gt;</code> type, as returned by the <a 
shape="rect" class="external-link" 
href="http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/jdbc/core/JdbcTemplate.html#queryForList(java.lang.String,%20java.lang.Object%91%93)"
 rel="nofollow">JdbcTemplate.queryForList()</a> method. For <code>update</code> 
operations, the result is the number of updated rows, returned as an 
<code>Integer</code>.</p><p>By default, the r
 esult is placed in the message body.&#160; If the outputHeader parameter is 
set, the result is placed in the header.&#160; This is an alternative to using 
a full message enrichment pattern to add headers, it provides a concise syntax 
for querying a sequence or some other small value into a header.&#160; It is 
convenient to use outputHeader and outputType together:</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Notice that the standard <code>?</code> symbol that denotes the 
parameters to an SQL query is substituted with the <code>#</code> symbol, 
because the <code>?</code> symbol is used to specify options for the endpoint. 
The <code>?</code> symbol replacement can be configured on endpoint 
basis.</p><p>You can append query options to the URI in the following format, 
<code>?option=value&amp;option=value&amp;...</code></p><h3 
id="BookInOnePage-Options.75">Options</h3><div 
class="confluenceTableSmall"><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>batch</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>
 boolean</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.7.5, 2.8.4 and 2.9:</strong> Execute 
SQL batch update statements. See notes below on how the treatment of the 
inbound message body changes if this is set to 
<code>true</code>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>dataSourceRef</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</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>Deprecated and will be removed in 
Camel 3.0:</strong> Reference to a <code>DataSource</code> to look up in the 
registry. Use <code>dataSource=#theName</code> instead.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>dataSource</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Str
 ing</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.11:</strong> Reference to a 
<code>DataSource</code> to look up in the registry.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>placeholder</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>#</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.4:</strong> Specifies a 
character that will be replaced to <code>?</code> in SQL query. Notice, that it 
is simple <code>String.replaceAll()</code> operation and no SQL parsing is 
involved (quoted strings will also change). This replacement is 
<strong>only</strong> happening if the endpoint is created using the 
<code>SqlComponent</code>. If you manually create the endpoint, then use the 
expected <code>?</code> sign instead.<
 /p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>template.&lt;xxx&gt;</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Sets additional options on the Spring 
<code>JdbcTemplate</code> that is used behind the scenes to execute the 
queries. For instance, <code>template.maxRows=10</code>. For detailed 
documentation, see the <a shape="rect" class="external-link" 
href="http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/jdbc/core/JdbcTemplate.html";
 rel="nofollow">JdbcTemplate javadoc</a> documentation.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>allowNamedParameters</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan=
 "1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> Whether 
to allow using named parameters in the queries.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>processingStrategy</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL consumer 
only:</strong> Allows to plugin to use a custom 
<code>org.apache.camel.component.sql.SqlProcessingStrategy</code> to execute 
queries when the consumer has processed the rows/batch.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>prepareStatementStrategy</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.11:</strong> Allows to plugin
  to use a custom 
<code>org.apache.camel.component.sql.SqlPrepareStatementStrategy</code> to 
control preparation of the query and prepared statement.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.delay</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>long</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>500</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL 
consumer only:</strong> Delay in milliseconds between each 
poll.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.initialDelay</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>long</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>1000</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> 
<strong>SQL consumer only:</strong> Milliseconds before polling 
starts.</p></td><
 /tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.useFixedDelay</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL 
consumer only:</strong> Set to <code>true</code> to use fixed delay between 
polls, otherwise 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="confluenceTd"><p><code>maxMessagesPerPoll</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Ca
 mel 2.11:</strong> <strong>SQL consumer only:</strong> An integer value to 
define the maximum number of messages to gather per poll. By default, no 
maximum is set.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>useIterator</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>boolean</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> 
<strong>SQL consumer only:</strong> If <code>true</code> each row returned when 
polling will be processed individually. If <code>false</code> the entire 
<code>java.util.List</code> of data is set as the IN body.<span> Notice in 
Camel 2.15.x or older you need to prefix this option with consumer., eg 
consumer.useIterator=true.</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>routeEmptyResultSet</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd
 "><p><code>boolean</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL consumer 
only:</strong> Whether to route a single empty <a shape="rect" 
href="exchange.html">Exchange</a> if there was no data to poll.<span> Notice in 
Camel 2.15.x or older you need to prefix this option with consumer., eg 
consumer.useIterator=true.</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>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><strong>Camel 2.11:</strong> <strong>SQL 
consumer only:</strong> After processing each row then this query can be 
executed, if the <a shape="rect" href="exchange.html">Exchange</a> was 
processed successfully, for example to
  mark the row as processed. The query can have parameter.<span> Notice in 
Camel 2.15.x or older you need to prefix this option with consumer., eg 
consumer.useIterator=true.</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>onConsumeFailed</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL 
consumer only:</strong> After processing each row then this query can be 
executed, if the <a shape="rect" href="exchange.html">Exchange</a> failed, for 
example to mark the row as failed. The query can have parameter.<span> Notice 
in Camel 2.15.x or older you need to prefix this option with consumer., eg 
consumer.useIterator=true.</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>onConsumeBatchComplete</code></p></td><td cols
 pan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> 
<strong>SQL consumer only:</strong> After processing the entire batch, this 
query can be executed to bulk update rows etc. The query cannot have 
parameters.<span> Notice in Camel 2.15.x or older you need to prefix this 
option with consumer., eg 
consumer.useIterator=true.</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>expectedUpdateCount</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>-1</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> 
<strong>SQL consumer only:</strong> If using <code>consumer.onConsume</code> 
then this option can be used to set an expected number of rows bei
 ng updated. Typically you may set this to <code>1</code> to expect one row to 
be updated.<span> Notice in Camel 2.15.x or older you need to prefix this 
option with consumer., eg 
consumer.useIterator=true.</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>breakBatchOnConsumeFail</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL 
consumer only:</strong> If using <code>consumer.onConsume</code> and it fails, 
then this option controls whether to break out of the batch or continue 
processing the next row from the batch. Notice in Camel 2.15.x or older you 
need to prefix this option with consumer., eg 
consumer.useIterator=true.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>alwaysPopulateStatement</code></p></td><td 
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> <strong>SQL 
producer only:</strong> If enabled then the <code>populateStatement</code> 
method from 
<code>org.apache.camel.component.sql.SqlPrepareStatementStrategy</code> is 
always invoked, also if there is no expected parameters to be prepared. When 
this is <code>false</code> then the <code>populateStatement</code> is only 
invoked if there is 1 or more expected parameters to be set; for example this 
avoids reading the message body/headers for SQL queries with no 
parameters.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>separator</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>char</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>,</code></p></td><td colspan="1" 
rowspan="1"
  class="confluenceTd"><p><strong>Camel 2.11.1:</strong> The separator to use 
when parameter values is taken from message body (if the body is a String 
type), to be inserted at # placeholders. Notice if you use named parameters, 
then a <code>Map</code> type is used instead.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>outputType</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>SelectList</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.0:</strong> Make the 
output of consumer or producer to <code>SelectList</code> as List of Map, or 
<code>SelectOne</code> as single Java object in the following way:<br 
clear="none"> a) If the query has only single column, then that JDBC Column 
object is returned. (such as <code>SELECT COUNT( * ) FROM PROJECT</code> will 
return a Long object.<br clear="none"> b) If the query has more t
 han one column, then it will return a Map of that result.<br clear="none"> c) 
If the <code>outputClass</code> is set, then it will convert the query result 
into an Java bean object by calling all the setters that match the column 
names. It will assume your class has a default constructor to create instance 
with.<br clear="none"> d) If the query resulted in more than one rows, it 
throws an non-unique result exception.</p><p>From <strong>Camel 2.14.1</strong> 
onwards the SelectList also supports mapping each row to a Java object as the 
SelectOne does <span>(only step c)</span>.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>outputClass</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.12.0:</strong> 
Specify the full package and class name to use as conversion when <code
 >outputType=SelectOne</code>.</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"><p><strong>Camel 2.15:</strong> To store the 
 >result as a header instead of the message body. This allows to preserve the 
 >existing message body as-is.</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>parametersCount</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p><code>int</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.2/2.12.0</strong> If 
 >set greater than zero, then Camel will use this count value of parameters to 
 >replace instead of querying via JDBC metadata API. This is useful if the JDBC 
 >vendor could not
  return correct parameters count, then user may override 
instead.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>noop</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.0</strong> If set, will 
ignore the results of the SQL query and use the existing IN message as the OUT 
message for the continuation of processing</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><code>useMessageBodyForSql</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>boolean</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>false</code></td><td 
colspan="1" rowspan="1" class="confluenceTd"><strong>Camel 2.16:</strong> 
Whether to use the message body as the SQL and then headers for parameters. If 
this option is enabled then the SQL in the uri is no
 t used. The SQL parameters must then be provided in a header with the key 
<code>CamelSqlParameters</code>. This option is only for the 
producer.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>transacted</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>boolean</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>false</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.16.2:</strong> <strong>SQL consumer 
only:</strong>Enables or disables transaction. If enabled then if processing an 
exchange failed then the consumer break out processing any further exchanges to 
cause a rollback eager</td></tr></tbody></table></div></div><h3 
id="BookInOnePage-Treatmentofthemessagebody">Treatment of the message 
body</h3><p>The SQL component tries to convert the message body to an object of 
<code>java.util.Iterator</code> type and then uses this iterator to fill the 
query parameters (where each query parameter is represented by a
  <code>#</code> symbol (or configured placeholder) in the endpoint URI). If 
the message body is not an array or collection, the conversion results in an 
iterator that iterates over only one object, which is the body 
itself.</p><p>For example, if the message body is an instance of 
<code>java.util.List</code>, the first item in the list is substituted into the 
first occurrence of <code>#</code> in the SQL query, the second item in the 
list is substituted into the second occurrence of <code>#</code>, and so 
on.</p><p>If <code>batch</code> is set to <code>true</code>, then the 
interpretation of the inbound message body changes slightly &#8211; instead of 
an iterator of parameters, the component expects an iterator that contains the 
parameter iterators; the size of the outer iterator determines the batch 
size.</p><p>From Camel 2.16 onwards you can use the 
option&#160;<span>useMessageBodyForSql that allows to use the message body as 
the SQL statement, and then the SQL parameters must be p
 rovided in a header with the key&#160;SqlConstants.SQL_PARAMETERS. This allows 
the SQL component to work more dynamic as the SQL query is from the message 
body.</span></p><h3 id="BookInOnePage-Resultofthequery">Result of the 
query</h3><p>For <code>select</code> operations, the result is an instance of 
<code>List&lt;Map&lt;String, Object&gt;&gt;</code> type, as returned by the <a 
shape="rect" class="external-link" 
href="http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/jdbc/core/JdbcTemplate.html#queryForList(java.lang.String,%20java.lang.Object%91%93)"
 rel="nofollow">JdbcTemplate.queryForList()</a> method. For <code>update</code> 
operations, the result is the number of updated rows, returned as an 
<code>Integer</code>.</p><p>By default, the result is placed in the message 
body.&#160; If the outputHeader parameter is set, the result is placed in the 
header.&#160; This is an alternative to using a full message enrichment pattern 
to add headers, it provides a 
 concise syntax for querying a sequence or some other small value into a 
header.&#160; It is convenient to use outputHeader and outputType 
together:</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;jms:order.inbox&quot;)
        .to(&quot;sql:select order_seq.nextval from 
dual?outputHeader=OrderId&amp;outputType=SelectOne&quot;)
        .to(&quot;jms:order.booking&quot;);]]></script>

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

Modified: websites/production/camel/content/camel-2170-release.html
==============================================================================
--- websites/production/camel/content/camel-2170-release.html (original)
+++ websites/production/camel/content/camel-2170-release.html Fri Feb  5 
16:20:26 2016
@@ -85,7 +85,7 @@
        <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h1 
id="Camel2.17.0Release-Camel2.17.0release(currentlyinprogress)">Camel 2.17.0 
release (currently in progress)</h1><div 
style="padding-right:20px;float:left;margin-left:-20px;"><p><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png"; 
data-image-src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png";></span></p></div><div
 style="min-height:200px">&#160;</div><h2 
id="Camel2.17.0Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to 
the x.y.z release which approx XXX issues resolved (new features, improvements 
and bug fixes such as...)</p><ul><li>The component documentation generated from 
the source code has been double checked to be up to date and include all the 
options the endpoints supports.</li><li>Upgraded camel-hbase to Hadoop 2.x and 
HBase 1.1.x</li><li><a shape="rect" href="tools.html"
 >Camel commands</a> for&#160;<a shape="rect" href="spring-boot.html">Spring 
 >Boot</a></li><li>Many improvements to&#160;Camel&#160;<a shape="rect" 
 >href="kura.html">Kura</a></li><li>Added transacted option to&#160;<a 
 >shape="rect" href="sql-component.html">SQL Component</a> when used as a 
 >consumer in a transacted route.</li><li>Added support for UPDATE operation 
 >to&#160;<a shape="rect" 
 >href="elasticsearch.html">ElasticSearch</a>.</li><li>Allow to reuse existing 
 >configured Elasticsearch Client on the <a shape="rect" 
 >href="elasticsearch.html">ElasticSearch</a> component, instead of creating a 
 >client per endpoint.&#160;</li><li>The&#160;<code>include</code> 
 >and&#160;<code>exclude</code> options on&#160;<a shape="rect" 
 >href="file2.html">File2</a> and&#160;<a shape="rect" href="ftp.html">FTP</a> 
 >endpoints is now case in-sensitive out of the box.</li><li>Resource based 
 >component such as&#160;<a shape="rect" href="xslt.html">XSLT</a>,&#160;<a 
 >shape="rect" href="velocity.html">Velocity</a>&#16
 0;etc can load the resource file from the&#160;<a shape="rect" 
href="registry.html">Registry</a>&#160;by using&#160;<code>ref:</code> as 
prefix.</li><li><span>Upgraded camel-amqp to the latest qpid-jms-client (also 
AMQP &lt; 1.0 is not supported anymore).</span></li><li><span>Many improvements 
to Camel <a shape="rect" href="amqp.html">AMQP</a> 
component.</span></li><li><span>The&#160;<a shape="rect" 
href="metrics-component.html">Metrics Component</a> allows to capture&#160;<a 
shape="rect" href="message-history.html">Message History</a> performance 
statistics with 
the&#160;<code>MetricsMessageHistoryFactory&#160;</code></span></li><li>Reduced 
the number of mbeans enlisted in the services tree, to only include mbeans that 
has value to be managed.</li><li>The&#160;<a shape="rect" 
href="elasticsearch.html">Elasticsearch Component</a>&#160;now supports 
MultiGet operation</li><li>The&#160;<a shape="rect" 
href="throttler.html">Throttler</a> has been improved to be more performant and 
use a
  rolling window for time periods which gives a better 
flow.</li><li>The&#160;<code>setHeader</code> 
and&#160;<code>setExchangeProperty</code> allows to use a dynamic header key 
using the&#160;<a shape="rect" href="simple.html">Simple</a>&#160;language if 
the name of the key is a&#160;<a shape="rect" 
href="simple.html">Simple</a>&#160;language expression.</li><li>Add collate 
function to&#160;<a shape="rect" href="simple.html">Simple</a> language to make 
it easier to split a message body into sub lists of a specified size. The 
function is similar to the collate function from Groovy.</li><li>The&#160;<a 
shape="rect" href="camel-run-maven-goal.html">Camel Run Maven Goal</a> is able 
to auto detect if its a OSGi Blueprint or CDI project so end users no longer 
have to explicit configure this on the plugin.</li><li><a shape="rect" 
href="elasticsearch.html">Camel-Elasticsearch</a> now supports Multiget, 
Multisearch and exists operation</li><li><a shape="rect" 
href="git.html">Camel-Git</a> no
 w supports Cherry-pick operation</li><li>Stopping the&#160;<code>Main</code> 
class from JMX will now trigger shutdown of the Main class/JVM also, as it does 
when hitting ctrl + c.</li><li>Added option to skipFirst to the&#160;<a 
shape="rect" href="tokenizer.html">Tokenizer</a> language to make it easy to 
skip the very first element, when for example splitting a CSV file using 
the&#160;<a shape="rect" href="splitter.html">Splitter</a> 
EIP.</li><li>The&#160;<a shape="rect" href="rest-dsl.html">Rest DSL</a> now 
supports default values for query parameters</li><li>Exchange and Message only 
output id in their toString method to avoid outputting any message details such 
as sensitive details from message bodies.</li><li>Camel&#160;<a shape="rect" 
href="error-handler.html">Error Handler</a> no longer log message body/header 
details when logging the <a shape="rect" href="message-history.html">Message 
History</a>. This avoids logging any&#160;sensitive details from message 
bodies.</li><li>Cam
 el&#160;<a shape="rect" href="exception-clause.html">Exception Clause</a> 
and&#160;<a shape="rect" href="error-handler.html">Error Handler</a> now 
supports using a custom&#160;<code>Processor</code> to be invoked right after 
an exception was thrown using the new&#160;<strong>onExceptionOccurred</strong> 
option.</li><li><a shape="rect" href="rabbitmq.html">RabbitMQ</a> consumer more 
resilient to auto re-connect in case of connection failures</li></ul><p>Fixed 
these issues</p><ul><li>The&#160;<a shape="rect" 
href="swagger-java.html">Swagger Java</a> now parses nested types in the POJO 
model that has been annotated with the swagger api annotations to use in the 
schema api model</li><li>Fixed&#160;<a shape="rect" href="rest-dsl.html">Rest 
DSL</a> with&#160;apiContextPath fail to start if there are 2 ore more rest's 
in use.</li><li>Paho component name is not limited to 4 characters 
anymore.</li><li>Fixed&#160;<a shape="rect" href="spring-boot.html">Spring 
Boot</a> not starting Camel rout
 es if running in Spring Cloud.</li><li>Fixed an issue with&#160;<a 
shape="rect" href="swagger-java.html">Swagger Java</a> using api-docs could 
lead to api-doc route being added multiple times</li><li>Fixed a few things 
missing in the generated swagger model when using&#160;<a shape="rect" 
href="swagger-java.html">Swagger Java</a></li><li>Fixed 
using&#160;<code>statement.xxx</code> options on the&#160;<a shape="rect" 
href="jdbc.html">JDBC</a> consumer would only be used in first 
poll.</li><li>Fixed &#160;<a shape="rect" 
href="http.html">HTTP</a>&#160;and&#160;<a shape="rect" 
href="http4.html">HTTP4</a>&#160;to keep trailing slash if provided in uri when 
calling remote HTTP service.</li><li>Fixed&#160;<a shape="rect" 
href="oncompletion.html">OnCompletion</a> to keep any caught exception stored 
as property on the&#160;<code>Exchange</code> which allows to access that 
information to know if there was an exception during routing.</li><li>Fixed an 
issue with&#160;<a shape="rect" href="bea
 n.html">Bean</a> component or&#160;<a shape="rect" 
href="simple.html">Simple</a> language with OGNL method call, would pick method 
with java.lang.Object type over a better suited method, when the method is 
overloaded.</li><li>Fixed&#160;<code>camel-blueprint</code> to wait for the 
bundles with the component and data-formats the&#160;<a shape="rect" 
href="rest-dsl.html">Rest DSL</a> has been configured to use, are available 
before starting Camel.</li><li>Fixed&#160;<a shape="rect" 
href="idempotent-consumer.html">Idempotent Consumer</a> would not propagate 
exception thrown from&#160;<code>IdempotentRepository</code> to Camel's&#160;<a 
shape="rect" href="error-handler.html">Error Handler</a> such 
as&#160;<code>onException</code><code><br clear="none"></code></li></ul><h3 
id="Camel2.17.0Release-New">New <a shape="rect" 
href="enterprise-integration-patterns.html">Enterprise Integration 
Patterns</a></h3><h3 id="Camel2.17.0Release-New.1">New <a shape="rect" 
href="components.html">Component
 s</a></h3><ul><li>camel-kubernetes - Integrates Camel with 
Kubernetes</li><li>camel-aws - AWS kinesis streams component 
added</li><li>camel-aws - DynamoDB streams component added</li><li><a 
shape="rect" href="ignite.html">camel-ignite</a> - for working with Apache 
Ignite.</li><li>camel-mllp -&#160;<span style="color: rgb(0,0,0);">for working 
with the HL7 MLLP protocol. This is an alternative to&#160;<a shape="rect" 
href="hl7.html">HL7</a> component.</span></li><li>camel-spark - bridges Apache 
Spark computations with Camel endpoints</li><li>camel-sql - Now supports 
calling stored procedures using the new sql-stored 
component.</li><li>camel-braintree - for interacting with Braintree 
Payments.</li></ul><h3 id="Camel2.17.0Release-NewDSL">New DSL</h3><h3 
id="Camel2.17.0Release-NewAnnotations">New Annotations</h3><h3 
id="Camel2.17.0Release-NewDataFormats">New <a shape="rect" 
href="data-format.html">Data Formats</a></h3><ul><li><a shape="rect" 
href="mime-multipart.html">MIME-Multipart</a> 
 - mime based data format.</li><li><a shape="rect" 
href="lzf-data-format.html">LZF Data Format</a> - LZF based data 
format.&#160;</li></ul><h3 id="Camel2.17.0Release-New.2">New <a shape="rect" 
href="languages.html">Languages</a></h3><h3 id="Camel2.17.0Release-New.3">New 
<a shape="rect" 
href="examples.html">Examples</a></h3><ul><li>camel-example-cdi-metrics - 
illustrates the integration between Camel, Dropwizard Metrics and 
CDI.</li><li>camel-example-cdi-properties -&#160;<span>illustrates the 
integration between Camel, DeltaSpike and CDI for configuration 
properties.</span></li><li><span>camel-example-cdi-rest-servlet 
-&#160;<span>illustrates the Camel REST DSL being used in a Web application 
that uses CDI as dependency injection 
framework</span></span></li><li>camel-example-spring-boot-metrics - showing a 
Camel spring-boot application that report metrics to Graphite. Requires 
Graphite running on your network.</li><li>camel-example-widget-gadget-cdi - The 
Widget and Gadget use-case f
 rom the EIP book implemented in Java with CDI dependency 
Injection.</li><li>camel-example-widget-gadget-java - The Widget and Gadget 
use-case from the EIP book implemented in plain old Java Main without any kind 
of <em>application server</em>.</li><li>camel-example-widget-gadget-xml - The 
Widget and Gadget use-case from the EIP book implemented in Spring XML without 
any Java code or any kind of&#160;<em>application server</em>.</li></ul><h3 
id="Camel2.17.0Release-New.4">New <a shape="rect" 
href="tutorials.html">Tutorials</a></h3><h2 
id="Camel2.17.0Release-APIbreaking">API breaking</h2><h2 
id="Camel2.17.0Release-KnownIssues">Known Issues</h2><h2 
id="Camel2.17.0Release-Dependencyupgrades">Dependency 
upgrades</h2><ul><li>Apache Cassandra from 2.1.8 to 2.2.2</li><li>Apache 
Deltaspike from 1.5.1 to 1.5.2</li><li>Apache Gora from 0.6 to 
0.6.1</li><li>Apache Jackrabbit from 2.11.0 to 2.11.3</li><li>Apache Kafka from 
0.8.2.2 to 0.9.0.0</li><li>Apache Lucene from 4.10.4 to 5.2.1</li><li>Apac
 he Mina from 2.0.9 to 2.0.10</li><li>Apache OpenEjb from 4.7.2 to 
4.7.3</li><li>Apache Solr from 4.10.4 to 5.2.1</li><li>Aws SDK Java to version 
1.10.37</li><li>Atmosphere from <span class="blob-code-inner">2.4.0</span> to 
2.4.1.4</li><li>Cassandra driver from 2.1.8 to 2.1.9</li><li>Cassandra-unit 
from 2.1.9.2 to 2.2.2.1</li><li>Cglib from 3.1 to 3.2.0</li><li>Classmate from 
1.3.0 to 1.3.1</li><li>Chunk from 3.0.1 to 3.1.2</li><li>Drools from 
6.2.0.Final to 6.3.0.Final</li><li>EHCache from 2.10.0 to 
2.10.1</li><li>Elasticsearch from 1.7.3 to 2.0.0</li><li>Embedded Mongodb from 
1.50.0 to 1.50.1</li><li>Facebook4j from 2.3.1 to 2.4.1</li><li>GAE from 1.9.26 
to 1.9.28</li><li>Google Gson from 2.4 to 2.5</li><li>Hazelcast from 3.5.2 to 
3.5.4</li><li>Infinispan from 8.0.1.Final to 8.1.0.Final</li><li>Jackson from 
2.6.3 to 2.6.4</li><li>Jboss Xnio from 3.3.1.Final to 3.3.2.Final</li><li>Jboss 
Weld from 2.3.0.Final to 2.3.2.Final</li><li>Jbpm from 6.2.0.Final to 
6.3.0.Final</li><li>Jgit fr
 om <span class="blob-code-inner">4.1.<span class="x x-first 
x-last">0.201509280440</span>-r</span> to <span 
class="blob-code-inner">4.1.<span class="x x-first 
x-last">1.201511131810</span>-r</span></li><li>Joda-time from 2.8.2 to 
2.9.1</li><li>Json-path from 2.0.0 to 2.1.0</li><li>Jt400 from 8.6 to 
8.7</li><li>Kie from 6.2.0.Final to 6.3.0.Final</li><li>Maven Exec plugin from 
1.2.1 to 1.4.0</li><li>Mongodb Java driver from 3.0.4 to 3.2.0</li><li>Mvel 
from 2.2.6.Final to 2.2.7.Final</li><li>Ognl from 3.1 to 3.1.1</li><li>Olingo 
from 2.0.4 to 2.0.5</li><li>Optaplanner from 6.2.0.Final to 
6.3.0.Final</li><li>Pax-exam from 4.6.0 to 4.8.0</li><li>Spring 4.1.x to 
4.2.x</li><li>Spring-Boot 1.2.x to 1.3.x</li><li>Spring Integration 2.x to 
4.x</li><li>slf4j-api 1.6.x to 1.7.x</li><li>Undertow from 1.3.3.Final to 
1.3.7.Final</li><li>Vertx from 3.1.0 to 3.2.0</li><li>Zookeeper from 3.4.6 to 
3.4.7</li></ul><h2 
id="Camel2.17.0Release-Importantchangestoconsiderwhenupgrading">Important 
changes to 
 consider when upgrading</h2><ul><li>Exchange and Message only output id in 
their toString method to avoid outputting any message details such as sensitive 
details from message bodies.</li><li>Removed camel-hbase as Karaf feature as it 
did not really work well in OSGi</li><li>camel-infinispan requires Java 
8.</li><li>Support for Spring 4.0.x is deprecated.</li><li>Moved some Camel 
tooling related dependencies (such as maven/plexus) from the Camel Parent BOM 
to the tooling BOM (to have them separated).</li><li>camel-amqp do not support 
0.9 anymore.&#160;</li><li>camel-spring-integration feature has been removed 
from the Camel karaf.</li><li>The&#160;<a shape="rect" 
href="mail.html">Mail</a> component now requires to configure to, cc, and bcc 
using lower case keys, eg to=f...@bar.com, instead of&#160;<a shape="rect" 
class="external-link" href="mailto:To=f...@bar.com"; 
rel="nofollow">To=f...@bar.com</a>&#160;as previously.</li><li>The&#160;<a 
shape="rect" href="file2.html">File</a>&#160;con
 sumer no longer probe the file content by default. See the 
option&#160;<code>probeContentType</code> for more details.</li><li>If 
using&#160;<a shape="rect" href="bean.html">Bean</a>&#160;or&#160;<a 
shape="rect" href="class.html">Class</a>&#160;component and specifying 
additional parameters in the endpoint uri to configure on the bean, then these 
options should now be prefixed with bean., eg <code>foo=123</code>&#160;is now 
<code>bean.foo=123</code>.</li><li>The&#160;<a shape="rect" 
href="twitter.html">Twitter</a> delay option is changed from seconds to milli 
seconds by default, eg 10 should be 10000 to indicate 10 seconds. This is 
aligned how other components with delay option 
behaves.&#160;</li><li>The&#160;<a shape="rect" href="hbase.html">hbase</a> 
component now require row mapping from the endpoint uri to be prefixed with 
<code>row.</code>&#160;as prefix.<br clear="none">Before: 
<code>family=info&amp;qualifier=firstName&amp;family2=birthdate&amp;qualifier2=year</code>.&#160;Aft
 
er:&#160;<code>row.family=info&amp;row.qualifier=firstName&amp;row.family2=birthdate&amp;row.qualifier2=year</code>.</li></ul><h2
 id="Camel2.17.0Release-GettingtheDistributions">Getting the 
Distributions</h2><h3 id="Camel2.17.0Release-BinaryDistributions">Binary 
Distributions</h3><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Download Link</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>PGP Signature file of download</p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Windows 
Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x.zip";>apache-camel-x.y.x.zip</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" href="http://www
 
.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x.zip.asc">apache-camel-x.y.x.zip.asc</a></p></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Unix/Linux/Cygwin 
Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x.tar.gz";>apache-camel-x.y.x.tar.gz</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x.tar.gz.asc";>apache-camel-x.y.x.tar.gz.asc</a></p></td></tr></tbody></table></div><div
 class="confluence-information-macro 
confluence-information-macro-information"><p class="title">The above URLs use 
redirection</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The above URLs use the Apache 
Mirror
  system to redirect you to a suitable mirror for your download. Some users 
have experienced issues with some versions of browsers (e.g. some Safari 
browsers). If the download doesn't seem to work for you from the above URL then 
try using <a shape="rect" class="external-link" 
href="http://www.mozilla.com/en-US/firefox/"; 
rel="nofollow">FireFox</a></p></div></div><h3 
id="Camel2.17.0Release-SourceDistributions">Source Distributions</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Download Link</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>PGP Signature file of 
download</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Source for Windows</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel
 -x.y.x-src.zip">apache-camel-x.y.x-src.zip</a></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.zip.asc";>apache-camel-x.y.x-src.zip.asc</a></p></td></tr></tbody></table></div><div
 class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Source for Unix/Linux/Cygwin</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.tar.gz";>apache-camel-x.y.x-src.tar.gz</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.tar.gz.asc";>apache-camel-x.y.x-src.tar.gz.asc</a></p></td></tr></tbody></table></div><h3
 id="Camel2.17.0Release-GettingtheBinariesusing
 Maven2">Getting the Binaries using Maven 2</h3><p>To use this release in your 
maven project, the proper dependency configuration that you should use in your 
<a shape="rect" class="external-link" 
href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html";>Maven
 POM</a> is:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<div class="wiki-content maincontent"><h1 
id="Camel2.17.0Release-Camel2.17.0release(currentlyinprogress)">Camel 2.17.0 
release (currently in progress)</h1><div 
style="padding-right:20px;float:left;margin-left:-20px;"><p><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png"; 
data-image-src="http://camel.apache.org/download.data/camel-box-v1.0-150x200.png";></span></p></div><div
 style="min-height:200px">&#160;</div><h2 
id="Camel2.17.0Release-NewandNoteworthy">New and Noteworthy</h2><p>Welcome to 
the x.y.z release which approx XXX issues resolved (new features, improvements 
and bug fixes such as...)</p><ul><li>The component documentation generated from 
the source code has been double checked to be up to date and include all the 
options the endpoints supports.</li><li>Upgraded camel-hbase to Hadoop 2.x and 
HBase 1.1.x</li><li><a shape="rect" href="tools.html"
 >Camel commands</a> for&#160;<a shape="rect" href="spring-boot.html">Spring 
 >Boot</a></li><li>Many improvements to&#160;Camel&#160;<a shape="rect" 
 >href="kura.html">Kura</a></li><li>Added transacted option to&#160;<a 
 >shape="rect" href="sql-component.html">SQL Component</a> when used as a 
 >consumer in a transacted route.</li><li>Added support for UPDATE operation 
 >to&#160;<a shape="rect" 
 >href="elasticsearch.html">ElasticSearch</a>.</li><li>Allow to reuse existing 
 >configured Elasticsearch Client on the <a shape="rect" 
 >href="elasticsearch.html">ElasticSearch</a> component, instead of creating a 
 >client per endpoint.&#160;</li><li>The&#160;<code>include</code> 
 >and&#160;<code>exclude</code> options on&#160;<a shape="rect" 
 >href="file2.html">File2</a> and&#160;<a shape="rect" href="ftp.html">FTP</a> 
 >endpoints is now case in-sensitive out of the box.</li><li>Resource based 
 >component such as&#160;<a shape="rect" href="xslt.html">XSLT</a>,&#160;<a 
 >shape="rect" href="velocity.html">Velocity</a>&#16
 0;etc can load the resource file from the&#160;<a shape="rect" 
href="registry.html">Registry</a>&#160;by using&#160;<code>ref:</code> as 
prefix.</li><li><span>Upgraded camel-amqp to the latest qpid-jms-client (also 
AMQP &lt; 1.0 is not supported anymore).</span></li><li><span>Many improvements 
to Camel <a shape="rect" href="amqp.html">AMQP</a> 
component.</span></li><li><span>The&#160;<a shape="rect" 
href="metrics-component.html">Metrics Component</a> allows to capture&#160;<a 
shape="rect" href="message-history.html">Message History</a> performance 
statistics with 
the&#160;<code>MetricsMessageHistoryFactory&#160;</code></span></li><li>Reduced 
the number of mbeans enlisted in the services tree, to only include mbeans that 
has value to be managed.</li><li>The&#160;<a shape="rect" 
href="elasticsearch.html">Elasticsearch Component</a>&#160;now supports 
MultiGet operation</li><li>The&#160;<a shape="rect" 
href="throttler.html">Throttler</a> has been improved to be more performant and 
use a
  rolling window for time periods which gives a better 
flow.</li><li>The&#160;<code>setHeader</code> 
and&#160;<code>setExchangeProperty</code> allows to use a dynamic header key 
using the&#160;<a shape="rect" href="simple.html">Simple</a>&#160;language if 
the name of the key is a&#160;<a shape="rect" 
href="simple.html">Simple</a>&#160;language expression.</li><li>Add collate 
function to&#160;<a shape="rect" href="simple.html">Simple</a> language to make 
it easier to split a message body into sub lists of a specified size. The 
function is similar to the collate function from Groovy.</li><li>The&#160;<a 
shape="rect" href="camel-run-maven-goal.html">Camel Run Maven Goal</a> is able 
to auto detect if its a OSGi Blueprint or CDI project so end users no longer 
have to explicit configure this on the plugin.</li><li><a shape="rect" 
href="elasticsearch.html">Camel-Elasticsearch</a> now supports Multiget, 
Multisearch and exists operation</li><li><a shape="rect" 
href="git.html">Camel-Git</a> no
 w supports Cherry-pick operation</li><li>Stopping the&#160;<code>Main</code> 
class from JMX will now trigger shutdown of the Main class/JVM also, as it does 
when hitting ctrl + c.</li><li>Added option to skipFirst to the&#160;<a 
shape="rect" href="tokenizer.html">Tokenizer</a> language to make it easy to 
skip the very first element, when for example splitting a CSV file using 
the&#160;<a shape="rect" href="splitter.html">Splitter</a> 
EIP.</li><li>The&#160;<a shape="rect" href="rest-dsl.html">Rest DSL</a> now 
supports default values for query parameters</li><li>Exchange and Message only 
output id in their toString method to avoid outputting any message details such 
as sensitive details from message bodies.</li><li>Camel&#160;<a shape="rect" 
href="error-handler.html">Error Handler</a> no longer log message body/header 
details when logging the <a shape="rect" href="message-history.html">Message 
History</a>. This avoids logging any&#160;sensitive details from message 
bodies.</li><li>Cam
 el&#160;<a shape="rect" href="exception-clause.html">Exception Clause</a> 
and&#160;<a shape="rect" href="error-handler.html">Error Handler</a> now 
supports using a custom&#160;<code>Processor</code> to be invoked right after 
an exception was thrown using the new&#160;<strong>onExceptionOccurred</strong> 
option.</li><li><a shape="rect" href="rabbitmq.html">RabbitMQ</a> consumer more 
resilient to auto re-connect in case of connection failures</li></ul><p>Fixed 
these issues</p><ul><li>The&#160;<a shape="rect" 
href="swagger-java.html">Swagger Java</a> now parses nested types in the POJO 
model that has been annotated with the swagger api annotations to use in the 
schema api model</li><li>Fixed&#160;<a shape="rect" href="rest-dsl.html">Rest 
DSL</a> with&#160;apiContextPath fail to start if there are 2 ore more rest's 
in use.</li><li>Paho component name is not limited to 4 characters 
anymore.</li><li>Fixed&#160;<a shape="rect" href="spring-boot.html">Spring 
Boot</a> not starting Camel rout
 es if running in Spring Cloud.</li><li>Fixed an issue with&#160;<a 
shape="rect" href="swagger-java.html">Swagger Java</a> using api-docs could 
lead to api-doc route being added multiple times</li><li>Fixed a few things 
missing in the generated swagger model when using&#160;<a shape="rect" 
href="swagger-java.html">Swagger Java</a></li><li>Fixed 
using&#160;<code>statement.xxx</code> options on the&#160;<a shape="rect" 
href="jdbc.html">JDBC</a> consumer would only be used in first 
poll.</li><li>Fixed &#160;<a shape="rect" 
href="http.html">HTTP</a>&#160;and&#160;<a shape="rect" 
href="http4.html">HTTP4</a>&#160;to keep trailing slash if provided in uri when 
calling remote HTTP service.</li><li>Fixed&#160;<a shape="rect" 
href="oncompletion.html">OnCompletion</a> to keep any caught exception stored 
as property on the&#160;<code>Exchange</code> which allows to access that 
information to know if there was an exception during routing.</li><li>Fixed an 
issue with&#160;<a shape="rect" href="bea
 n.html">Bean</a> component or&#160;<a shape="rect" 
href="simple.html">Simple</a> language with OGNL method call, would pick method 
with java.lang.Object type over a better suited method, when the method is 
overloaded.</li><li>Fixed&#160;<code>camel-blueprint</code> to wait for the 
bundles with the component and data-formats the&#160;<a shape="rect" 
href="rest-dsl.html">Rest DSL</a> has been configured to use, are available 
before starting Camel.</li><li>Fixed an issue with&#160;<a shape="rect" 
href="error-handler.html">Error Handler</a> would log any handled(true) 
exceptions.</li><li>Fixed&#160;<a shape="rect" 
href="idempotent-consumer.html">Idempotent Consumer</a> would not propagate 
exception thrown from&#160;<code>IdempotentRepository</code> to Camel's&#160;<a 
shape="rect" href="error-handler.html">Error Handler</a> such 
as&#160;<code>onException</code><code><br clear="none"></code></li></ul><h3 
id="Camel2.17.0Release-New">New <a shape="rect" 
href="enterprise-integration-patterns
 .html">Enterprise Integration Patterns</a></h3><h3 
id="Camel2.17.0Release-New.1">New <a shape="rect" 
href="components.html">Components</a></h3><ul><li>camel-kubernetes - Integrates 
Camel with Kubernetes</li><li>camel-aws - AWS kinesis streams component 
added</li><li>camel-aws - DynamoDB streams component added</li><li><a 
shape="rect" href="ignite.html">camel-ignite</a> - for working with Apache 
Ignite.</li><li>camel-mllp -&#160;<span style="color: rgb(0,0,0);">for working 
with the HL7 MLLP protocol. This is an alternative to&#160;<a shape="rect" 
href="hl7.html">HL7</a> component.</span></li><li>camel-spark - bridges Apache 
Spark computations with Camel endpoints</li><li>camel-sql - Now supports 
calling stored procedures using the new sql-stored 
component.</li><li>camel-braintree - for interacting with Braintree 
Payments.</li></ul><h3 id="Camel2.17.0Release-NewDSL">New DSL</h3><h3 
id="Camel2.17.0Release-NewAnnotations">New Annotations</h3><h3 
id="Camel2.17.0Release-NewDataFormats">Ne
 w <a shape="rect" href="data-format.html">Data Formats</a></h3><ul><li><a 
shape="rect" href="mime-multipart.html">MIME-Multipart</a> - mime based data 
format.</li><li><a shape="rect" href="lzf-data-format.html">LZF Data Format</a> 
- LZF based data format.&#160;</li></ul><h3 id="Camel2.17.0Release-New.2">New 
<a shape="rect" href="languages.html">Languages</a></h3><h3 
id="Camel2.17.0Release-New.3">New <a shape="rect" 
href="examples.html">Examples</a></h3><ul><li>camel-example-cdi-metrics - 
illustrates the integration between Camel, Dropwizard Metrics and 
CDI.</li><li>camel-example-cdi-properties -&#160;<span>illustrates the 
integration between Camel, DeltaSpike and CDI for configuration 
properties.</span></li><li><span>camel-example-cdi-rest-servlet 
-&#160;<span>illustrates the Camel REST DSL being used in a Web application 
that uses CDI as dependency injection 
framework</span></span></li><li>camel-example-spring-boot-metrics - showing a 
Camel spring-boot application that report metri
 cs to Graphite. Requires Graphite running on your 
network.</li><li>camel-example-widget-gadget-cdi - The Widget and Gadget 
use-case from the EIP book implemented in Java with CDI dependency 
Injection.</li><li>camel-example-widget-gadget-java - The Widget and Gadget 
use-case from the EIP book implemented in plain old Java Main without any kind 
of <em>application server</em>.</li><li>camel-example-widget-gadget-xml - The 
Widget and Gadget use-case from the EIP book implemented in Spring XML without 
any Java code or any kind of&#160;<em>application server</em>.</li></ul><h3 
id="Camel2.17.0Release-New.4">New <a shape="rect" 
href="tutorials.html">Tutorials</a></h3><h2 
id="Camel2.17.0Release-APIbreaking">API breaking</h2><h2 
id="Camel2.17.0Release-KnownIssues">Known Issues</h2><h2 
id="Camel2.17.0Release-Dependencyupgrades">Dependency 
upgrades</h2><ul><li>Apache Cassandra from 2.1.8 to 2.2.2</li><li>Apache 
Deltaspike from 1.5.1 to 1.5.2</li><li>Apache Gora from 0.6 to 
0.6.1</li><li>Apache 
 Jackrabbit from 2.11.0 to 2.11.3</li><li>Apache Kafka from 0.8.2.2 to 
0.9.0.0</li><li>Apache Lucene from 4.10.4 to 5.2.1</li><li>Apache Mina from 
2.0.9 to 2.0.10</li><li>Apache OpenEjb from 4.7.2 to 4.7.3</li><li>Apache Solr 
from 4.10.4 to 5.2.1</li><li>Aws SDK Java to version 1.10.37</li><li>Atmosphere 
from <span class="blob-code-inner">2.4.0</span> to 2.4.1.4</li><li>Cassandra 
driver from 2.1.8 to 2.1.9</li><li>Cassandra-unit from 2.1.9.2 to 
2.2.2.1</li><li>Cglib from 3.1 to 3.2.0</li><li>Classmate from 1.3.0 to 
1.3.1</li><li>Chunk from 3.0.1 to 3.1.2</li><li>Drools from 6.2.0.Final to 
6.3.0.Final</li><li>EHCache from 2.10.0 to 2.10.1</li><li>Elasticsearch from 
1.7.3 to 2.0.0</li><li>Embedded Mongodb from 1.50.0 to 
1.50.1</li><li>Facebook4j from 2.3.1 to 2.4.1</li><li>GAE from 1.9.26 to 
1.9.28</li><li>Google Gson from 2.4 to 2.5</li><li>Hazelcast from 3.5.2 to 
3.5.4</li><li>Infinispan from 8.0.1.Final to 8.1.0.Final</li><li>Jackson from 
2.6.3 to 2.6.4</li><li>Jboss Xnio from 3.3.1
 .Final to 3.3.2.Final</li><li>Jboss Weld from 2.3.0.Final to 
2.3.2.Final</li><li>Jbpm from 6.2.0.Final to 6.3.0.Final</li><li>Jgit from 
<span class="blob-code-inner">4.1.<span class="x x-first 
x-last">0.201509280440</span>-r</span> to <span 
class="blob-code-inner">4.1.<span class="x x-first 
x-last">1.201511131810</span>-r</span></li><li>Joda-time from 2.8.2 to 
2.9.1</li><li>Json-path from 2.0.0 to 2.1.0</li><li>Jt400 from 8.6 to 
8.7</li><li>Kie from 6.2.0.Final to 6.3.0.Final</li><li>Maven Exec plugin from 
1.2.1 to 1.4.0</li><li>Mongodb Java driver from 3.0.4 to 3.2.0</li><li>Mvel 
from 2.2.6.Final to 2.2.7.Final</li><li>Ognl from 3.1 to 3.1.1</li><li>Olingo 
from 2.0.4 to 2.0.5</li><li>Optaplanner from 6.2.0.Final to 
6.3.0.Final</li><li>Pax-exam from 4.6.0 to 4.8.0</li><li>Spring 4.1.x to 
4.2.x</li><li>Spring-Boot 1.2.x to 1.3.x</li><li>Spring Integration 2.x to 
4.x</li><li>slf4j-api 1.6.x to 1.7.x</li><li>Undertow from 1.3.3.Final to 
1.3.7.Final</li><li>Vertx from 3.1.0 to 3.2.0</li
 ><li>Zookeeper from 3.4.6 to 3.4.7</li></ul><h2 
 >id="Camel2.17.0Release-Importantchangestoconsiderwhenupgrading">Important 
 >changes to consider when upgrading</h2><ul><li>Exchange and Message only 
 >output id in their toString method to avoid outputting any message details 
 >such as sensitive details from message bodies.</li><li>Removed camel-hbase as 
 >Karaf feature as it did not really work well in OSGi</li><li>camel-infinispan 
 >requires Java 8.</li><li>Support for Spring 4.0.x is 
 >deprecated.</li><li>Moved some Camel tooling related dependencies (such as 
 >maven/plexus) from the Camel Parent BOM to the tooling BOM (to have them 
 >separated).</li><li>camel-amqp do not support 0.9 
 >anymore.&#160;</li><li>camel-spring-integration feature has been removed from 
 >the Camel karaf.</li><li>The&#160;<a shape="rect" href="mail.html">Mail</a> 
 >component now requires to configure to, cc, and bcc using lower case keys, eg 
 >to=f...@bar.com, instead of&#160;<a shape="rect" class="external-link" 
 >href="mailto:To=fo
 o...@bar.com" rel="nofollow">To=f...@bar.com</a>&#160;as 
previously.</li><li>The&#160;<a shape="rect" 
href="file2.html">File</a>&#160;consumer no longer probe the file content by 
default. See the option&#160;<code>probeContentType</code> for more 
details.</li><li>If using&#160;<a shape="rect" 
href="bean.html">Bean</a>&#160;or&#160;<a shape="rect" 
href="class.html">Class</a>&#160;component and specifying additional parameters 
in the endpoint uri to configure on the bean, then these options should now be 
prefixed with bean., eg <code>foo=123</code>&#160;is now 
<code>bean.foo=123</code>.</li><li>The&#160;<a shape="rect" 
href="twitter.html">Twitter</a> delay option is changed from seconds to milli 
seconds by default, eg 10 should be 10000 to indicate 10 seconds. This is 
aligned how other components with delay option 
behaves.&#160;</li><li>The&#160;<a shape="rect" href="hbase.html">hbase</a> 
component now require row mapping from the endpoint uri to be prefixed with 
<code>row.</code>&#160;as
  prefix.<br clear="none">Before: 
<code>family=info&amp;qualifier=firstName&amp;family2=birthdate&amp;qualifier2=year</code>.&#160;After:&#160;<code>row.family=info&amp;row.qualifier=firstName&amp;row.family2=birthdate&amp;row.qualifier2=year</code>.</li></ul><h2
 id="Camel2.17.0Release-GettingtheDistributions">Getting the 
Distributions</h2><h3 id="Camel2.17.0Release-BinaryDistributions">Binary 
Distributions</h3><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Download Link</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>PGP Signature file of download</p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Windows 
Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x.zip";>apache-c
 amel-x.y.x.zip</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x.zip.asc";>apache-camel-x.y.x.zip.asc</a></p></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Unix/Linux/Cygwin 
Distribution</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x.tar.gz";>apache-camel-x.y.x.tar.gz</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x.tar.gz.asc";>apache-camel-x.y.x.tar.gz.asc</a></p></td></tr></tbody></table></div><div
 class="confluence-information-macro 
confluence-information-macro-information"><p class="title">The above URLs use 
redirection</p><span class="aui-icon aui-icon-small aui-iconfont-
 info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The above URLs use the Apache 
Mirror system to redirect you to a suitable mirror for your download. Some 
users have experienced issues with some versions of browsers (e.g. some Safari 
browsers). If the download doesn't seem to work for you from the above URL then 
try using <a shape="rect" class="external-link" 
href="http://www.mozilla.com/en-US/firefox/"; 
rel="nofollow">FireFox</a></p></div></div><h3 
id="Camel2.17.0Release-SourceDistributions">Source Distributions</h3><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Download Link</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>PGP Signature file of 
download</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Source for Windows</p></td><td colspan="1" rowspan="1" 
class="co
 nfluenceTd"><p><a shape="rect" class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.zip";>apache-camel-x.y.x-src.zip</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.zip.asc";>apache-camel-x.y.x-src.zip.asc</a></p></td></tr></tbody></table></div><div
 class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Source for Unix/Linux/Cygwin</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dyn/closer.cgi/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.tar.gz";>apache-camel-x.y.x-src.tar.gz</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
class="external-link" 
href="http://www.apache.org/dist/camel/apache-camel/x.y.x/apache-camel-x.y.x-src.ta
 
r.gz.asc">apache-camel-x.y.x-src.tar.gz.asc</a></p></td></tr></tbody></table></div><h3
 id="Camel2.17.0Release-GettingtheBinariesusingMaven2">Getting the Binaries 
using Maven 2</h3><p>To use this release in your maven project, the proper 
dependency configuration that you should use in your <a shape="rect" 
class="external-link" 
href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html";>Maven
 POM</a> is:</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-core&lt;/artifactId&gt;


Reply via email to