Author: buildbot
Date: Tue Sep 29 07:21:13 2015
New Revision: 967156

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/jdbc.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 Tue Sep 29 
07:21:13 2015
@@ -1193,11 +1193,11 @@ template.send("direct:alias-verify&
 ]]></script>
 </div></div><p></p><h3 id="BookComponentAppendix-SeeAlso.8">See Also</h3>
 <ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul><ul><li><a 
shape="rect" href="crypto.html">Crypto</a> Crypto is also available as a <a 
shape="rect" href="data-format.html">Data Format</a></li></ul> <h2 
id="BookComponentAppendix-CXFComponent">CXF Component</h2><div 
class="confluence-information-macro confluence-information-macro-note"><span 
class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>When using CXF as a consumer, the 
<a shape="rect" href="cxf-bean-component.html">CXF Bean Component</a> allows 
you to factor out how message payloads are received from their processing as a 
RESTful or SOAP web service. This has the potential of using a multitude of 
transports to cons
 ume web services. The bean component's configuration is also simpler and 
provides the fastest method to implement web services using Camel and 
CXF.</p></div></div><div class="confluence-information-macro 
confluence-information-macro-tip"><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>When using CXF in streaming modes 
(see DataFormat option), then also read about <a shape="rect" 
href="stream-caching.html">Stream caching</a>.</p></div></div><p>The 
<strong>cxf:</strong> component provides integration with <a shape="rect" 
href="http://cxf.apache.org";>Apache CXF</a> for connecting to JAX-WS services 
hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1443424749842 {padding: 0px;}
-div.rbtoc1443424749842 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1443424749842 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1443511128727 {padding: 0px;}
+div.rbtoc1443511128727 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1443511128727 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1443424749842">
+/*]]>*/</style></p><div class="toc-macro rbtoc1443511128727">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookComponentAppendix-CXFComponent">CXF Component</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookComponentAppendix-URIformat">URI format</a></li><li><a shape="rect" 
href="#BookComponentAppendix-Options">Options</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookComponentAppendix-Thedescriptionsofthedataformats">The descriptions 
of the dataformats</a>
@@ -5179,7 +5179,7 @@ We store big input streams (by default,
 </div></div><div class="confluence-information-macro 
confluence-information-macro-warning"><span class="aui-icon aui-icon-small 
aui-iconfont-error confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>This component can only be used to 
define producer endpoints, which means that you cannot use the JDBC component 
in a <code>from()</code> statement.</p></div></div><h3 
id="BookComponentAppendix-URIformat.32">URI format</h3><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[jdbc:dataSourceName[?options]
 ]]></script>
-</div></div><p>This component only supports producer endpoints.</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.25">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>readSize</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The default maximum number of 
rows that can be read by a polling query. The default value is 
0.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>statement.&lt;xxx&gt;</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.1:</strong> Sets additional 
options on the <code>java.sql.Statement</code> that is used behind the scenes 
to execute the queries. For instance, <code>statement.maxRows=10</code>. For 
detailed documentation, see the <a shape="rect" class="external-link" 
href="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html"; 
rel="nofollow"><code>java.sql.Statement</code> javadoc</a> 
documentation.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>useJDBC4ColumnNameAndLabelSemantics</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.2:</strong> 
Sets whether to use JDBC 4/3 column label/name semantics. You can use this 
option to turn it <code>false</code> in case you have issues with your JDBC 
driver to select data. This only a
 pplies when using <code>SQL SELECT</code> using aliases (e.g. <code>SQL SELECT 
id as identifier, name as given_name from persons</code>).</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>resetAutoCommit</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> Camel will set 
the autoCommit on the JDBC connection to be false, commit the change after 
executed the statement and reset the autoCommit flag of the connection at the 
end, if the resetAutoCommit is true. If the JDBC connection doesn't support to 
reset the autoCommit flag, you can set the resetAutoCommit flag to be false, 
and Camel will not try to reset the autoCommit flag. <br clear="none">When used 
with XA transactions you most likely need to set it to false so that the 
transaction manager is in charge of committing this tx.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluence
 Td"><p><code>allowNamedParameters</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:</strong> Whether to allow using 
named parameters in the queries.</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><strong>Camel 2.12:</strong> Allows to 
plugin to use a custom 
<code>org.apache.camel.component.jdbc.JdbcPrepareStatementStrategy</code> to 
control preparation of the query and prepared statement.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>useHeadersAsParameters</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:</strong> 
Set this option to <code>true<
 /code> to use the <code>prepareStatementStrategy</code> with named parameters. 
This allows to define queries with named placeholders, and use headers with the 
dynamic values for the query placeholders.</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>SelectList</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.1:</strong> Make the 
output of the producer to SelectList as List of Map, or SelectOne 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 SELECT COUNT( 
* ) FROM PROJECT 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 outputClass 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. From <strong>Camel 2.14</strong> onwards then 
SelectList is also supported. <br clear="none"> d) If the query resulted in 
more than one rows, it throws an non-unique result exception.<br clear="none"> 
<strong>Camel 2.14.0:</strong> New <code>StreamList</code> output type value 
that streams the result of the query using an <code>Iterator&lt;Map&lt;String, 
Object&gt;&gt;</code>, it can be used along with the <a shape="rect" 
href="splitter.html">Splitter</a> EIP.</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>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.1:</strong> 
Specify the full package and class name to use as conversion when 
outputType=SelectOne. From <strong>Camel 2.14</strong> onwards then SelectList 
is also supported.</p>
 </td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>beanRowMapper</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.1:</strong> To use a custom 
<code>org.apache.camel.component.jdbc.BeanRowMapper</code> when using 
<code>outputClass</code>. The default implementation will lower case the row 
names and skip underscores, and dashes. For example <code>"CUST_ID"</code> is 
mapped as <code>"custId"</code>.</p></td></tr></tbody></table></div></div><h3 
id="BookComponentAppendix-Result">Result</h3><p>By default the result is 
returned in the OUT body as an <code>ArrayList&lt;HashMap&lt;String, 
Object&gt;&gt;</code>. The <code>List</code> object contains the list of rows 
and the <code>Map</code> objects contain each row with the <code>String</code> 
key as the column name. You can use the option <code>outputType</code> to 
control the result.</p><p><strong>Note:</strong> This 
 component fetches <code>ResultSetMetaData</code> to be able to return the 
column name as the key in the <code>Map</code>.</p><h4 
id="BookComponentAppendix-MessageHeaders.8">Message Headers</h4><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>CamelJdbcRowCount</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>If the query is a 
<code>SELECT</code>, query the row count is returned in this OUT 
header.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelJdbcUpdateCount</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>If the query is an 
<code>UPDATE</code>, query the update count is returned in this OUT 
header.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelGeneratedKeysRows<
 /code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.10:</strong> Rows that contains the 
generated kets.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelGeneratedKeysRowCount</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> 
The number of rows in the header that contains generated 
keys.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelJdbcColumnNames</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.1:</strong> 
The column names from the ResultSet as a <code>java.util.Set</code> 
type.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelJdbcParametes</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> A 
<code>java.util.Map</code> which has the headers to be used if 
<code>useHeadersAsParameters</code> has been enabled.</p></td></tr></tbody></t
 able></div><h3 id="BookComponentAppendix-Generatedkeys">Generated 
keys</h3><p><strong>Available as of Camel 2.10</strong></p><p>If you insert 
data using SQL INSERT, then the RDBMS may support auto generated keys. You can 
instruct the <a shape="rect" href="jdbc.html">JDBC</a> producer to return the 
generated keys in headers.<br clear="none"> To do that set the header 
<code>CamelRetrieveGeneratedKeys=true</code>. Then the generated keys will be 
provided as headers with the keys listed in the table above.</p><p>You can see 
more details in this <a shape="rect" class="external-link" 
href="https://svn.apache.org/repos/asf/camel/trunk/components/camel-jdbc/src/test/java/org/apache/camel/component/jdbc/JdbcGeneratedKeysTest.java";>unit
 test</a>.</p><div class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Using generated k
 eys does not work with together with named parameters.</p></div></div><h3 
id="BookComponentAppendix-Usingnamedparameters">Using named 
parameters</h3><p><strong>Available as of Camel 2.12</strong></p><p>In the 
given route below, we want to get all the projects from the projects table. 
Notice the SQL query has 2 named parameters, :?lic and :?min.<br clear="none"> 
Camel will then lookup these parameters from the message headers. Notice in the 
example above we set two headers with constant value<br clear="none"> for the 
named parameters:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><p>This component only supports producer endpoints.</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.25">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>readSize</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The default maximum number of 
rows that can be read by a polling query. The default value is 
0.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>statement.&lt;xxx&gt;</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.1:</strong> Sets additional 
options on the <code>java.sql.Statement</code> that is used behind the scenes 
to execute the queries. For instance, <code>statement.maxRows=10</code>. For 
detailed documentation, see the <a shape="rect" class="external-link" 
href="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html"; 
rel="nofollow"><code>java.sql.Statement</code> javadoc</a> 
documentation.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>useJDBC4ColumnNameAndLabelSemantics</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.2:</strong> 
Sets whether to use JDBC 4/3 column label/name semantics. You can use this 
option to turn it <code>false</code> in case you have issues with your JDBC 
driver to select data. This only a
 pplies when using <code>SQL SELECT</code> using aliases (e.g. <code>SQL SELECT 
id as identifier, name as given_name from persons</code>).</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>resetAutoCommit</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> Camel will set 
the autoCommit on the JDBC connection to be false, commit the change after 
executed the statement and reset the autoCommit flag of the connection at the 
end, if the resetAutoCommit is true. If the JDBC connection doesn't support to 
reset the autoCommit flag, you can set the resetAutoCommit flag to be false, 
and Camel will not try to reset the autoCommit flag. <br clear="none">When used 
with XA transactions you most likely need to set it to false so that the 
transaction manager is in charge of committing this tx.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluence
 Td"><p><code>allowNamedParameters</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:</strong> Whether to allow using 
named parameters in the queries.</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><strong>Camel 2.12:</strong> Allows to 
plugin to use a custom 
<code>org.apache.camel.component.jdbc.JdbcPrepareStatementStrategy</code> to 
control preparation of the query and prepared statement.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>useHeadersAsParameters</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:</strong> 
Set this option to <code>true<
 /code> to use the <code>prepareStatementStrategy</code> with named parameters. 
This allows to define queries with named placeholders, and use headers with the 
dynamic values for the query placeholders.</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>SelectList</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.1:</strong> Make the 
output of the producer to SelectList as List of Map, or SelectOne 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 SELECT COUNT( 
* ) FROM PROJECT 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 outputClass 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. From <strong>Camel 2.14</strong> onwards then 
SelectList is also supported. <br clear="none"> d) If the query resulted in 
more than one rows, it throws an non-unique result exception.<br clear="none"> 
<strong>Camel 2.14.0:</strong> New <code>StreamList</code> output type value 
that streams the result of the query using an <code>Iterator&lt;Map&lt;String, 
Object&gt;&gt;</code>, it can be used along with the <a shape="rect" 
href="splitter.html">Splitter</a> EIP.</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>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.1:</strong> 
Specify the full package and class name to use as conversion when 
outputType=SelectOne. From <strong>Camel 2.14</strong> onwards then SelectList 
is also supported.</p>
 </td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>beanRowMapper</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.1:</strong> To use a custom 
<code>org.apache.camel.component.jdbc.BeanRowMapper</code> when using 
<code>outputClass</code>. The default implementation will lower case the row 
names and skip underscores, and dashes. For example <code>"CUST_ID"</code> is 
mapped as <code>"custId"</code>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>useGetBytesForBlob</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> To read BLOB 
columns as bytes instead of string data. This may be needed for certain 
databases such as Oracle where you must read BLOB columns as 
bytes.</td></tr></tbody></table></div></div><h3 id="BookComponentAppendix-
 Result">Result</h3><p>By default the result is returned in the OUT body as an 
<code>ArrayList&lt;HashMap&lt;String, Object&gt;&gt;</code>. The 
<code>List</code> object contains the list of rows and the <code>Map</code> 
objects contain each row with the <code>String</code> key as the column name. 
You can use the option <code>outputType</code> to control the 
result.</p><p><strong>Note:</strong> This component fetches 
<code>ResultSetMetaData</code> to be able to return the column name as the key 
in the <code>Map</code>.</p><h4 
id="BookComponentAppendix-MessageHeaders.8">Message Headers</h4><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>CamelJdbcRowCount</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>If the query is a 
<code>SELECT</code>, query t
 he row count is returned in this OUT header.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelJdbcUpdateCount</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>If the query is an 
<code>UPDATE</code>, query the update count is returned in this OUT 
header.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelGeneratedKeysRows</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> 
Rows that contains the generated kets.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelGeneratedKeysRowCount</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> 
The number of rows in the header that contains generated 
keys.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelJdbcColumnNames</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.1:</strong> 
The co
 lumn names from the ResultSet as a <code>java.util.Set</code> 
type.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelJdbcParametes</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> A 
<code>java.util.Map</code> which has the headers to be used if 
<code>useHeadersAsParameters</code> has been 
enabled.</p></td></tr></tbody></table></div><h3 
id="BookComponentAppendix-Generatedkeys">Generated 
keys</h3><p><strong>Available as of Camel 2.10</strong></p><p>If you insert 
data using SQL INSERT, then the RDBMS may support auto generated keys. You can 
instruct the <a shape="rect" href="jdbc.html">JDBC</a> producer to return the 
generated keys in headers.<br clear="none"> To do that set the header 
<code>CamelRetrieveGeneratedKeys=true</code>. Then the generated keys will be 
provided as headers with the keys listed in the table above.</p><p>You can see 
more details in this <a shape="rect" class="external-link" href="https
 
://svn.apache.org/repos/asf/camel/trunk/components/camel-jdbc/src/test/java/org/apache/camel/component/jdbc/JdbcGeneratedKeysTest.java">unit
 test</a>.</p><div class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Using generated keys does not work 
with together with named parameters.</p></div></div><h3 
id="BookComponentAppendix-Usingnamedparameters">Using named 
parameters</h3><p><strong>Available as of Camel 2.12</strong></p><p>In the 
given route below, we want to get all the projects from the projects table. 
Notice the SQL query has 2 named parameters, :?lic and :?min.<br clear="none"> 
Camel will then lookup these parameters from the message headers. Notice in the 
example above we set two headers with constant value<br clear="none"> for the 
named parameters:</p><div class="code panel pdl" style="border-width: 1px;
 "><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[  from(&quot;direct:projects&quot;)
      .setHeader(&quot;lic&quot;, constant(&quot;ASF&quot;))
      .setHeader(&quot;min&quot;, constant(123))
@@ -5192,14 +5192,14 @@ JndiRegistry reg = super.createRegistry(
 reg.bind(&quot;testdb&quot;, db);
 return reg;
 ]]></script>
-</div></div><p>Then we configure a route that routes to the JDBC component, so 
the SQL will be executed. Note how we refer to the <code>testdb</code> 
datasource that was bound in the previous step:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Then we configure a route that routes to the JDBC component, so 
the SQL will be executed. Note how we refer to the <code>testdb</code> 
datasource that was bound in the previous step:<div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
 // lets add simple route
 public void configure() throws Exception {
     from(&quot;direct:hello&quot;).to(&quot;jdbc:testdb?readSize=100&quot;);
 }
 ]]></script>
-</div></div><p>Or you can create a <code>DataSource</code> in Spring like 
this:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div>Or you can create a <code>DataSource</code> in Spring like 
this:<div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
 &lt;camelContext id=&quot;camel&quot; 
xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
   &lt;route&gt;
@@ -5218,7 +5218,7 @@ public void configure() throws Exception
        &lt;jdbc:script location=&quot;classpath:sql/init.sql&quot;/&gt;
 &lt;/jdbc:embedded-database&gt;
 ]]></script>
-</div></div><p>We create an endpoint, add the SQL query to the body of the IN 
message, and then send the exchange. The result of the query is returned in the 
OUT body:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div>We create an endpoint, add the SQL query to the body of the IN 
message, and then send the exchange. The result of the query is returned in the 
OUT body:<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[
 // first we create our exchange using the endpoint
 Endpoint endpoint = context.getEndpoint(&quot;direct:hello&quot;);
@@ -5242,7 +5242,7 @@ row = data.get(1);
 assertEquals(&quot;cust2&quot;, row.get(&quot;ID&quot;));
 assertEquals(&quot;nsandhu&quot;, row.get(&quot;NAME&quot;));
 ]]></script>
-</div></div><p>If you want to work on the rows one by one instead of the 
entire ResultSet at once you need to use the <a shape="rect" 
href="splitter.html">Splitter</a> EIP such as:</p><p>In Camel 2.13.x or 
older</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div>If you want to work on the rows one by one instead of the entire 
ResultSet at once you need to use the <a shape="rect" 
href="splitter.html">Splitter</a> EIP such as:<p>In Camel 2.13.x or 
older</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
 from(&quot;direct:hello&quot;)
         // here we split the data from the testdb into new messages one by one
@@ -5250,7 +5250,7 @@ from(&quot;direct:hello&quot;)
     .to(&quot;jdbc:testdb&quot;).split(body()).to(&quot;mock:result&quot;);
 
 ]]></script>
-</div></div><p>In Camel 2.14.x or newer</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>In Camel 2.14.x or newer<div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;direct:hello&quot;)
 // here we split the data from the testdb into new messages one by one
 // so the mock endpoint will receive a message per row in the table

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 Tue Sep 29 07:21:13 
2015
@@ -3696,11 +3696,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.rbtoc1443424807542 {padding: 0px;}
-div.rbtoc1443424807542 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1443424807542 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1443511149698 {padding: 0px;}
+div.rbtoc1443511149698 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1443511149698 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1443424807542">
+/*]]>*/</style></p><div class="toc-macro rbtoc1443511149698">
 <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>
@@ -5805,11 +5805,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.rbtoc1443424808559 {padding: 0px;}
-div.rbtoc1443424808559 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1443424808559 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1443511149991 {padding: 0px;}
+div.rbtoc1443511149991 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1443511149991 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1443424808559">
+/*]]>*/</style><div class="toc-macro rbtoc1443511149991">
 <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>
@@ -17565,11 +17565,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.rbtoc1443424829496 {padding: 0px;}
-div.rbtoc1443424829496 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1443424829496 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1443511170768 {padding: 0px;}
+div.rbtoc1443511170768 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1443511170768 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1443424829496">
+/*]]>*/</style></p><div class="toc-macro rbtoc1443511170768">
 <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>
@@ -21551,7 +21551,7 @@ We store big input streams (by default,
 </div></div><div class="confluence-information-macro 
confluence-information-macro-warning"><span class="aui-icon aui-icon-small 
aui-iconfont-error confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>This component can only be used to 
define producer endpoints, which means that you cannot use the JDBC component 
in a <code>from()</code> statement.</p></div></div><h3 
id="BookInOnePage-URIformat.33">URI format</h3><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[jdbc:dataSourceName[?options]
 ]]></script>
-</div></div><p>This component only supports producer endpoints.</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.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>readSize</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The default maximum number of 
rows that can be read by a polling query. The default value is 
0.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>statement.&lt;xxx&gt;</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.1:</strong> Sets additional 
options on the <code>java.sql.Statement</code> that is used behind the scenes 
to execute the queries. For instance, <code>statement.maxRows=10</code>. For 
detailed documentation, see the <a shape="rect" class="external-link" 
href="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html"; 
rel="nofollow"><code>java.sql.Statement</code> javadoc</a> 
documentation.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>useJDBC4ColumnNameAndLabelSemantics</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.2:</strong> 
Sets whether to use JDBC 4/3 column label/name semantics. You can use this 
option to turn it <code>false</code> in case you have issues with your JDBC 
driver to select data. This only applies w
 hen using <code>SQL SELECT</code> using aliases (e.g. <code>SQL SELECT id as 
identifier, name as given_name from persons</code>).</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>resetAutoCommit</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> Camel will set 
the autoCommit on the JDBC connection to be false, commit the change after 
executed the statement and reset the autoCommit flag of the connection at the 
end, if the resetAutoCommit is true. If the JDBC connection doesn't support to 
reset the autoCommit flag, you can set the resetAutoCommit flag to be false, 
and Camel will not try to reset the autoCommit flag. <br clear="none">When used 
with XA transactions you most likely need to set it to false so that the 
transaction manager is in charge of committing this tx.</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>true</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.12:</strong> Whether to allow using 
named parameters in the queries.</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><strong>Camel 2.12:</strong> Allows to 
plugin to use a custom 
<code>org.apache.camel.component.jdbc.JdbcPrepareStatementStrategy</code> to 
control preparation of the query and prepared statement.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>useHeadersAsParameters</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:</strong> 
Set this option to <code>true</code> t
 o use the <code>prepareStatementStrategy</code> with named parameters. This 
allows to define queries with named placeholders, and use headers with the 
dynamic values for the query placeholders.</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>SelectList</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.1:</strong> Make the 
output of the producer to SelectList as List of Map, or SelectOne 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 SELECT COUNT( 
* ) FROM PROJECT 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 outputClass is set, then it will convert the query 
result into an Java bean object by calling all the setters that match t
 he column names. It will assume your class has a default constructor to create 
instance with. From <strong>Camel 2.14</strong> onwards then SelectList is also 
supported. <br clear="none"> d) If the query resulted in more than one rows, it 
throws an non-unique result exception.<br clear="none"> <strong>Camel 
2.14.0:</strong> New <code>StreamList</code> output type value that streams the 
result of the query using an <code>Iterator&lt;Map&lt;String, 
Object&gt;&gt;</code>, it can be used along with the <a shape="rect" 
href="splitter.html">Splitter</a> EIP.</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>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.1:</strong> 
Specify the full package and class name to use as conversion when 
outputType=SelectOne. From <strong>Camel 2.14</strong> onwards then SelectList 
is also supported.</p></td></t
 r><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>beanRowMapper</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.1:</strong> To use a custom 
<code>org.apache.camel.component.jdbc.BeanRowMapper</code> when using 
<code>outputClass</code>. The default implementation will lower case the row 
names and skip underscores, and dashes. For example <code>"CUST_ID"</code> is 
mapped as <code>"custId"</code>.</p></td></tr></tbody></table></div></div><h3 
id="BookInOnePage-Result">Result</h3><p>By default the result is returned in 
the OUT body as an <code>ArrayList&lt;HashMap&lt;String, Object&gt;&gt;</code>. 
The <code>List</code> object contains the list of rows and the <code>Map</code> 
objects contain each row with the <code>String</code> key as the column name. 
You can use the option <code>outputType</code> to control the 
result.</p><p><strong>Note:</strong> This component fetche
 s <code>ResultSetMetaData</code> to be able to return the column name as the 
key in the <code>Map</code>.</p><h4 id="BookInOnePage-MessageHeaders.8">Message 
Headers</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>CamelJdbcRowCount</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>If the query is a 
<code>SELECT</code>, query the row count is returned in this OUT 
header.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelJdbcUpdateCount</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>If the query is an 
<code>UPDATE</code>, query the update count is returned in this OUT 
header.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelGeneratedKeysRows</code></p></td><td colsp
 an="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> Rows 
that contains the generated kets.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelGeneratedKeysRowCount</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> 
The number of rows in the header that contains generated 
keys.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelJdbcColumnNames</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.1:</strong> 
The column names from the ResultSet as a <code>java.util.Set</code> 
type.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelJdbcParametes</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> A 
<code>java.util.Map</code> which has the headers to be used if 
<code>useHeadersAsParameters</code> has been 
enabled.</p></td></tr></tbody></table></div><h3 id="BookI
 nOnePage-Generatedkeys">Generated keys</h3><p><strong>Available as of Camel 
2.10</strong></p><p>If you insert data using SQL INSERT, then the RDBMS may 
support auto generated keys. You can instruct the <a shape="rect" 
href="jdbc.html">JDBC</a> producer to return the generated keys in headers.<br 
clear="none"> To do that set the header 
<code>CamelRetrieveGeneratedKeys=true</code>. Then the generated keys will be 
provided as headers with the keys listed in the table above.</p><p>You can see 
more details in this <a shape="rect" class="external-link" 
href="https://svn.apache.org/repos/asf/camel/trunk/components/camel-jdbc/src/test/java/org/apache/camel/component/jdbc/JdbcGeneratedKeysTest.java";>unit
 test</a>.</p><div class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Using generated keys does not work 
with together 
 with named parameters.</p></div></div><h3 
id="BookInOnePage-Usingnamedparameters">Using named 
parameters</h3><p><strong>Available as of Camel 2.12</strong></p><p>In the 
given route below, we want to get all the projects from the projects table. 
Notice the SQL query has 2 named parameters, :?lic and :?min.<br clear="none"> 
Camel will then lookup these parameters from the message headers. Notice in the 
example above we set two headers with constant value<br clear="none"> for the 
named parameters:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><p>This component only supports producer endpoints.</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.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>readSize</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The default maximum number of 
rows that can be read by a polling query. The default value is 
0.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>statement.&lt;xxx&gt;</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.1:</strong> Sets additional 
options on the <code>java.sql.Statement</code> that is used behind the scenes 
to execute the queries. For instance, <code>statement.maxRows=10</code>. For 
detailed documentation, see the <a shape="rect" class="external-link" 
href="http://java.sun.com/j2se/1.5.0/docs/api/java/sql/Statement.html"; 
rel="nofollow"><code>java.sql.Statement</code> javadoc</a> 
documentation.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>useJDBC4ColumnNameAndLabelSemantics</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.2:</strong> 
Sets whether to use JDBC 4/3 column label/name semantics. You can use this 
option to turn it <code>false</code> in case you have issues with your JDBC 
driver to select data. This only applies w
 hen using <code>SQL SELECT</code> using aliases (e.g. <code>SQL SELECT id as 
identifier, name as given_name from persons</code>).</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>resetAutoCommit</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> Camel will set 
the autoCommit on the JDBC connection to be false, commit the change after 
executed the statement and reset the autoCommit flag of the connection at the 
end, if the resetAutoCommit is true. If the JDBC connection doesn't support to 
reset the autoCommit flag, you can set the resetAutoCommit flag to be false, 
and Camel will not try to reset the autoCommit flag. <br clear="none">When used 
with XA transactions you most likely need to set it to false so that the 
transaction manager is in charge of committing this tx.</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>true</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.12:</strong> Whether to allow using 
named parameters in the queries.</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><strong>Camel 2.12:</strong> Allows to 
plugin to use a custom 
<code>org.apache.camel.component.jdbc.JdbcPrepareStatementStrategy</code> to 
control preparation of the query and prepared statement.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>useHeadersAsParameters</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:</strong> 
Set this option to <code>true</code> t
 o use the <code>prepareStatementStrategy</code> with named parameters. This 
allows to define queries with named placeholders, and use headers with the 
dynamic values for the query placeholders.</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>SelectList</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.1:</strong> Make the 
output of the producer to SelectList as List of Map, or SelectOne 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 SELECT COUNT( 
* ) FROM PROJECT 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 outputClass is set, then it will convert the query 
result into an Java bean object by calling all the setters that match t
 he column names. It will assume your class has a default constructor to create 
instance with. From <strong>Camel 2.14</strong> onwards then SelectList is also 
supported. <br clear="none"> d) If the query resulted in more than one rows, it 
throws an non-unique result exception.<br clear="none"> <strong>Camel 
2.14.0:</strong> New <code>StreamList</code> output type value that streams the 
result of the query using an <code>Iterator&lt;Map&lt;String, 
Object&gt;&gt;</code>, it can be used along with the <a shape="rect" 
href="splitter.html">Splitter</a> EIP.</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>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.1:</strong> 
Specify the full package and class name to use as conversion when 
outputType=SelectOne. From <strong>Camel 2.14</strong> onwards then SelectList 
is also supported.</p></td></t
 r><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>beanRowMapper</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.1:</strong> To use a custom 
<code>org.apache.camel.component.jdbc.BeanRowMapper</code> when using 
<code>outputClass</code>. The default implementation will lower case the row 
names and skip underscores, and dashes. For example <code>"CUST_ID"</code> is 
mapped as <code>"custId"</code>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>useGetBytesForBlob</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> To read BLOB 
columns as bytes instead of string data. This may be needed for certain 
databases such as Oracle where you must read BLOB columns as 
bytes.</td></tr></tbody></table></div></div><h3 
id="BookInOnePage-Result">Result</
 h3><p>By default the result is returned in the OUT body as an 
<code>ArrayList&lt;HashMap&lt;String, Object&gt;&gt;</code>. The 
<code>List</code> object contains the list of rows and the <code>Map</code> 
objects contain each row with the <code>String</code> key as the column name. 
You can use the option <code>outputType</code> to control the 
result.</p><p><strong>Note:</strong> This component fetches 
<code>ResultSetMetaData</code> to be able to return the column name as the key 
in the <code>Map</code>.</p><h4 id="BookInOnePage-MessageHeaders.8">Message 
Headers</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>CamelJdbcRowCount</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>If the query is a 
<code>SELECT</code>, query the row count is returned
  in this OUT header.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelJdbcUpdateCount</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>If the query is an 
<code>UPDATE</code>, query the update count is returned in this OUT 
header.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelGeneratedKeysRows</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> 
Rows that contains the generated kets.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelGeneratedKeysRowCount</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> 
The number of rows in the header that contains generated 
keys.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelJdbcColumnNames</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11.1:</strong> 
The column names from the Resu
 ltSet as a <code>java.util.Set</code> type.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>CamelJdbcParametes</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> A 
<code>java.util.Map</code> which has the headers to be used if 
<code>useHeadersAsParameters</code> has been 
enabled.</p></td></tr></tbody></table></div><h3 
id="BookInOnePage-Generatedkeys">Generated keys</h3><p><strong>Available as of 
Camel 2.10</strong></p><p>If you insert data using SQL INSERT, then the RDBMS 
may support auto generated keys. You can instruct the <a shape="rect" 
href="jdbc.html">JDBC</a> producer to return the generated keys in headers.<br 
clear="none"> To do that set the header 
<code>CamelRetrieveGeneratedKeys=true</code>. Then the generated keys will be 
provided as headers with the keys listed in the table above.</p><p>You can see 
more details in this <a shape="rect" class="external-link" 
href="https://svn.apache.org/repos/asf/came
 
l/trunk/components/camel-jdbc/src/test/java/org/apache/camel/component/jdbc/JdbcGeneratedKeysTest.java">unit
 test</a>.</p><div class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Using generated keys does not work 
with together with named parameters.</p></div></div><h3 
id="BookInOnePage-Usingnamedparameters">Using named 
parameters</h3><p><strong>Available as of Camel 2.12</strong></p><p>In the 
given route below, we want to get all the projects from the projects table. 
Notice the SQL query has 2 named parameters, :?lic and :?min.<br clear="none"> 
Camel will then lookup these parameters from the message headers. Notice in the 
example above we set two headers with constant value<br clear="none"> for the 
named parameters:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent p
 dl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[  from(&quot;direct:projects&quot;)
      .setHeader(&quot;lic&quot;, constant(&quot;ASF&quot;))
      .setHeader(&quot;min&quot;, constant(123))
@@ -21564,14 +21564,14 @@ JndiRegistry reg = super.createRegistry(
 reg.bind(&quot;testdb&quot;, db);
 return reg;
 ]]></script>
-</div></div><p>Then we configure a route that routes to the JDBC component, so 
the SQL will be executed. Note how we refer to the <code>testdb</code> 
datasource that was bound in the previous step:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>Then we configure a route that routes to the JDBC component, so 
the SQL will be executed. Note how we refer to the <code>testdb</code> 
datasource that was bound in the previous step:<div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
 // lets add simple route
 public void configure() throws Exception {
     from(&quot;direct:hello&quot;).to(&quot;jdbc:testdb?readSize=100&quot;);
 }
 ]]></script>
-</div></div><p>Or you can create a <code>DataSource</code> in Spring like 
this:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div>Or you can create a <code>DataSource</code> in Spring like 
this:<div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
 &lt;camelContext id=&quot;camel&quot; 
xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
   &lt;route&gt;
@@ -21590,7 +21590,7 @@ public void configure() throws Exception
        &lt;jdbc:script location=&quot;classpath:sql/init.sql&quot;/&gt;
 &lt;/jdbc:embedded-database&gt;
 ]]></script>
-</div></div><p>We create an endpoint, add the SQL query to the body of the IN 
message, and then send the exchange. The result of the query is returned in the 
OUT body:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div>We create an endpoint, add the SQL query to the body of the IN 
message, and then send the exchange. The result of the query is returned in the 
OUT body:<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[
 // first we create our exchange using the endpoint
 Endpoint endpoint = context.getEndpoint(&quot;direct:hello&quot;);
@@ -21614,7 +21614,7 @@ row = data.get(1);
 assertEquals(&quot;cust2&quot;, row.get(&quot;ID&quot;));
 assertEquals(&quot;nsandhu&quot;, row.get(&quot;NAME&quot;));
 ]]></script>
-</div></div><p>If you want to work on the rows one by one instead of the 
entire ResultSet at once you need to use the <a shape="rect" 
href="splitter.html">Splitter</a> EIP such as:</p><p>In Camel 2.13.x or 
older</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div>If you want to work on the rows one by one instead of the entire 
ResultSet at once you need to use the <a shape="rect" 
href="splitter.html">Splitter</a> EIP such as:<p>In Camel 2.13.x or 
older</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
 from(&quot;direct:hello&quot;)
         // here we split the data from the testdb into new messages one by one
@@ -21622,7 +21622,7 @@ from(&quot;direct:hello&quot;)
     .to(&quot;jdbc:testdb&quot;).split(body()).to(&quot;mock:result&quot;);
 
 ]]></script>
-</div></div><p>In Camel 2.14.x or newer</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>In Camel 2.14.x or newer<div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;direct:hello&quot;)
 // here we split the data from the testdb into new messages one by one
 // so the mock endpoint will receive a message per row in the table

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


Reply via email to