You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2014/06/11 15:19:15 UTC

svn commit: r912235 - in /websites/production/camel/content: book-cookbook.html book-in-one-page.html cache/main.pageCache database.html

Author: buildbot
Date: Wed Jun 11 13:19:15 2014
New Revision: 912235

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/book-cookbook.html
    websites/production/camel/content/book-in-one-page.html
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/database.html

Modified: websites/production/camel/content/book-cookbook.html
==============================================================================
--- websites/production/camel/content/book-cookbook.html (original)
+++ websites/production/camel/content/book-cookbook.html Wed Jun 11 13:19:15 2014
@@ -2752,22 +2752,7 @@ from("activemq:My.Queue").
 <h3 id="Bookcookbook-SeeAlso.4">See Also</h3>
 
 <ul><li><a shape="rect" href="mock.html">Mock</a> for details of mock endpoint testing (as opposed to template based stubs).</li></ul>
-<h2 id="Bookcookbook-Database">Database</h2>
-
-<p>Camel can work with databases in a number of different ways. This document tries to outline the most common approaches.</p>
-
-<h3 id="Bookcookbook-Databaseendpoints">Database endpoints</h3>
-
-<p>Camel provides a number of different endpoints for working with databases</p>
-
-<ul><li><a shape="rect" href="jpa.html">JPA</a> for working with hibernate, openjpa or toplink. When consuming from the endpoints entity beans are read (and deleted/updated to mark as processed) then when producing to the endpoints they are written to the database (via insert/update).</li><li><a shape="rect" href="ibatis.html">iBatis</a> similar to the above but using <a shape="rect" class="external-link" href="http://ibatis.apache.org/">Apache iBATIS</a></li><li><a shape="rect" href="jdbc.html">JDBC</a> similar though using explicit SQL</li></ul>
-
-
-<h3 id="Bookcookbook-Databasepatternimplementations">Database pattern implementations</h3>
-
-<p>Various patterns can work with databases as follows</p>
-
-<ul><li><a shape="rect" href="idempotent-consumer.html">Idempotent Consumer</a></li><li><a shape="rect" href="aggregator.html">Aggregator</a></li><li><a shape="rect" href="bam.html">BAM</a> for business activity monitoring</li></ul>
+<h2 id="Bookcookbook-Database">Database</h2><p>Camel can work with databases in a number of different ways. This document tries to outline the most common approaches.</p><h3 id="Bookcookbook-Databaseendpoints">Database endpoints</h3><p>Camel provides a number of different endpoints for working with databases</p><ul><li><a shape="rect" href="jpa.html">JPA</a> for working with hibernate, openjpa or toplink. When consuming from the endpoints entity beans are read (and deleted/updated to mark as processed) then when producing to the endpoints they are written to the database (via insert/update).</li><li><a shape="rect" href="ibatis.html">iBATIS</a> similar to the above but using <a shape="rect" class="external-link" href="http://ibatis.apache.org/">Apache iBATIS</a></li><li><a shape="rect" href="jdbc.html">JDBC</a> similar though using explicit SQL</li><li><a shape="rect" href="sql-component.html">SQL</a><span style="color: rgb(0,0,0);">&#160;uses<a shape="rect" class="external-link" hr
 ef="http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/jdbc.html" rel="nofollow"> spring-jdbc</a> behind&#160;</span>the scene for the actual SQL handling.&#160;The difference between this component and&#160;<a shape="rect" class="external-link" href="http://camel.apache.org/jdbc.html">JDBC</a>&#160;component is that in case of SQL the query is a property of the endpoint and it uses message payload as parameters passed to the query</li></ul><h3 id="Bookcookbook-Databasepatternimplementations">Database pattern implementations</h3><p>Various patterns can work with databases as follows</p><ul><li><a shape="rect" href="idempotent-consumer.html">Idempotent Consumer</a></li><li><a shape="rect" href="aggregator.html">Aggregator</a></li><li><a shape="rect" href="bam.html">BAM</a> for business activity monitoring</li></ul>
 <h2 id="Bookcookbook-ParallelProcessingandOrdering">Parallel Processing and Ordering</h2><p>It is a common requirement to want to use parallel processing of messages for throughput and load balancing, while at the same time process certain kinds of messages in order.</p><h3 id="Bookcookbook-Howtoachieveparallelprocessing">How to achieve parallel processing</h3><p>You can send messages to a number of Camel <a shape="rect" href="components.html">Components</a> to achieve parallel processing and load balancing such as</p><ul><li><a shape="rect" href="seda.html">SEDA</a> for in-JVM load balancing across a thread pool</li><li><a shape="rect" href="activemq.html">ActiveMQ</a> or <a shape="rect" href="jms.html">JMS</a> for distributed load balancing and parallel processing</li><li><a shape="rect" href="jpa.html">JPA</a> for using the database as a poor mans message broker</li></ul><p>When processing messages concurrently, you should consider ordering and concurrency issues. These are descr
 ibed below</p><h4 id="Bookcookbook-Concurrencyissues">Concurrency issues</h4><p>Note that there is no concurrency or locking issue when using <a shape="rect" href="activemq.html">ActiveMQ</a>, <a shape="rect" href="jms.html">JMS</a> or <a shape="rect" href="seda.html">SEDA</a> by design; they are designed for highly concurrent use. However there are possible concurrency issues in the <a shape="rect" href="processor.html">Processor</a> of the messages i.e. what the processor does with the message?</p><p>For example if a processor of a message transfers money from one account to another account; you probably want to use a database with pessimistic locking to ensure that operation takes place atomically.</p><h4 id="Bookcookbook-Orderingissues">Ordering issues</h4><p>As soon as you send multiple messages to different threads or processes you will end up with an unknown ordering across the entire message stream as each thread is going to process messages concurrently.</p><p>For many use 
 cases the order of messages is not too important. However for some applications this can be crucial. e.g. if a customer submits a purchase order version 1, then amends it and sends version 2; you don't want to process the first version last (so that you loose the update). Your <a shape="rect" href="processor.html">Processor</a> might be clever enough to ignore old messages. If not you need to preserve order.</p><h3 id="Bookcookbook-Recommendations">Recommendations</h3><p>This topic is large and diverse with lots of different requirements; but from a high level here are our recommendations on parallel processing, ordering and concurrency</p><ul><li>for distributed locking, use a database by default, they are very good at it <img class="emoticon emoticon-smile" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/smile.png" data-emoticon-name="smile" alt="(smile)"></li><li>to preserve ordering across a JMS
  queue consider using <a shape="rect" class="external-link" href="http://activemq.apache.org/exclusive-consumer.html">Exclusive Consumers</a> in the <a shape="rect" href="activemq.html">ActiveMQ</a> component</li><li>even better are <a shape="rect" class="external-link" href="http://activemq.apache.org/message-groups.html">Message Groups</a> which allows you to preserve ordering across messages while still offering parallelisation via the <strong>JMSXGroupID</strong> header to determine what can be parallelized</li><li>if you receive messages out of order you could use the <a shape="rect" href="resequencer.html">Resequencer</a> to put them back together again</li></ul><p>A good rule of thumb to help reduce ordering problems is to make sure each single can be processed as an atomic unit in parallel (either without concurrency issues or using say, database locking); or if it can't, use a <a shape="rect" class="external-link" href="http://activemq.apache.org/message-groups.html">Messag
 e Group</a> to relate the messages together which need to be processed in order by a single thread.</p><h3 id="Bookcookbook-UsingMessageGroupswithCamel">Using Message Groups with Camel</h3><p>To use a Message Group with Camel you just need to add a header to the output JMS message based on some kind of <a shape="rect" href="correlation-identifier.html">Correlation Identifier</a> to correlate messages which should be processed in order by a single thread - so that things which don't correlate together can be processed concurrently.</p><p>For example the following code shows how to create a message group using an XPath expression taking an invoice's product code as the <a shape="rect" href="correlation-identifier.html">Correlation Identifier</a></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[from(&quot;activemq:a&quot;).setHeader(JmsConstants.JMS_X_GROUP_ID, xpath(&quot;/invoice/productCode&quot;)).to(&quot;activemq:b&quot;);
 ]]></script>

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 Wed Jun 11 13:19:15 2014
@@ -994,7 +994,13 @@ disruptor-vm:someName[?&lt;option&gt;]
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>GPL</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For using a db4o datastore as a queue via the <a shape="rect" class="external-link" href="http://www.db4o.com/" rel="nofollow">db4o</a> library</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="esper.html">Esper</a> / camel-esper in <a shape="rect" class="external-link" href="http://code.google.com/p/camel-extra/" rel="nofollow">camel-extra</a></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[esper:name
 ]]></script>
-</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>GPL</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Working with the <a shape="rect" class="external-link" href="http://esper.codehaus.org" rel="nofollow">Esper Library</a> for Event Stream Processing</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="hibernate.html">Hibernate</a> / camel-hibernate in <a shape="rect" class="external-link" href="http://code.google.com/p/camel-extra/" rel="nofollow">camel-extra</a></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>GPL</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Working with the <a shape="rect" class="external-link" href="http://esper.codehaus.org" rel="nofollow">Esper Library</a> for Event Stream Processing</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>Fabric <a shape="rect" class="external-link" href="http://fabric8.io/gitbook/camelEndpointAmq.html" rel="nofollow">AMQ</a> / mq-fabric-camel in <a shape="rect" class="external-link" href="http://code.google.com/p/camel-extra/" rel="nofollow"></a><a shape="rect" class="external-link" href="http://code.google.com/p/camel-extra/" rel="nofollow">f</a><a shape="rect" class="external-link" href="http://fabric8.io/" rel="nofollow">abric8</a></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[amq:[queue|topic:]destinationName]]></script>
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Apache</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The <strong><a shape="rect" class="external-link" href="http://fabric8.io/gitbook/camelEndpointAmq.html" rel="nofollow">amq:</a></strong> endpoint works exactly like the <strong>activemq:</strong> endpoint in Apache Camel; only it uses the <a shape="rect" class="external-link" href="http://fabric8.io/" rel="nofollow">fabric</a> to automatically discover the broker. So there is no configuration required; it'll just work out of the box and automatically discover whatever ActiveMQ message brokers are available; with failover and load balancing.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span>Fabric <a shape="rect" class="external-link" href="http://fabric8.io/gitbook/camelEndpointFabric.html" rel="nofollow">Fabric</a></span><span> / fabric-camel in </span><a shape="rect" class="external-link" href="http://code.google.com/p/ca
 mel-extra/" rel="nofollow"></a><a shape="rect" class="external-link" href="http://code.google.com/p/camel-extra/" rel="nofollow">f</a><a shape="rect" class="external-link" href="http://fabric8.io/" rel="nofollow">abric8</a></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[fabric:logicalName:camelEndpointUri]]></script>
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd">Apache</td><td colspan="1" rowspan="1" class="confluenceTd">The <strong><a shape="rect" class="external-link" href="http://fabric8.io/gitbook/camelEndpointFabric.html" rel="nofollow">fabric:</a></strong> endpoint uses Fabric's discovery mechanism to expose physical sockets, HTTP endpoints, etc. into the <a shape="rect" class="external-link" href="http://fabric8.io/gitbook/registry.html" rel="nofollow">runtime registry</a> using a logical name so that clients can use the existing Camel <a shape="rect" href="load-balancer.html">Load Balancer</a>.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span>Fabric <a shape="rect" class="external-link" href="http://fabric8.io/gitbook/camelEndpointMaster.html" rel="nofollow">Master</a> / fabric-camel in </span><a shape="rect" class="external-link" href="http://code.google.com/p/camel-extra/" rel="nofollow"></a><a shape="rect" class="external-link" href="http://co
 de.google.com/p/camel-extra/" rel="nofollow">f</a><a shape="rect" class="external-link" href="http://fabric8.io/" rel="nofollow">abric8</a></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[master:clusterName:camelEndpointUri]]></script>
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd">Apache</td><td colspan="1" rowspan="1" class="confluenceTd">The <strong><a shape="rect" class="external-link" href="http://fabric8.io/gitbook/camelEndpointMaster.html" rel="nofollow">master:</a></strong> endpoint provides a way to ensure only a single consumer in a cluster consumes from a given endpoint; with automatic failover if that JVM dies.</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="hibernate.html">Hibernate</a> / camel-hibernate in <a shape="rect" class="external-link" href="http://code.google.com/p/camel-extra/" rel="nofollow">camel-extra</a></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[hibernate://entityName
 ]]></script>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>GPL</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For using a database as a queue via the <a shape="rect" class="external-link" href="http://www.hibernate.org/" rel="nofollow">Hibernate</a> library</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="jbi.html">JBI</a> / servicemix-camel</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -3742,22 +3748,7 @@ from(&quot;activemq:My.Queue&quot;).
 <h3 id="BookInOnePage-SeeAlso.4">See Also</h3>
 
 <ul><li><a shape="rect" href="mock.html">Mock</a> for details of mock endpoint testing (as opposed to template based stubs).</li></ul>
-<h2 id="BookInOnePage-Database">Database</h2>
-
-<p>Camel can work with databases in a number of different ways. This document tries to outline the most common approaches.</p>
-
-<h3 id="BookInOnePage-Databaseendpoints">Database endpoints</h3>
-
-<p>Camel provides a number of different endpoints for working with databases</p>
-
-<ul><li><a shape="rect" href="jpa.html">JPA</a> for working with hibernate, openjpa or toplink. When consuming from the endpoints entity beans are read (and deleted/updated to mark as processed) then when producing to the endpoints they are written to the database (via insert/update).</li><li><a shape="rect" href="ibatis.html">iBatis</a> similar to the above but using <a shape="rect" class="external-link" href="http://ibatis.apache.org/">Apache iBATIS</a></li><li><a shape="rect" href="jdbc.html">JDBC</a> similar though using explicit SQL</li></ul>
-
-
-<h3 id="BookInOnePage-Databasepatternimplementations">Database pattern implementations</h3>
-
-<p>Various patterns can work with databases as follows</p>
-
-<ul><li><a shape="rect" href="idempotent-consumer.html">Idempotent Consumer</a></li><li><a shape="rect" href="aggregator.html">Aggregator</a></li><li><a shape="rect" href="bam.html">BAM</a> for business activity monitoring</li></ul>
+<h2 id="BookInOnePage-Database">Database</h2><p>Camel can work with databases in a number of different ways. This document tries to outline the most common approaches.</p><h3 id="BookInOnePage-Databaseendpoints">Database endpoints</h3><p>Camel provides a number of different endpoints for working with databases</p><ul><li><a shape="rect" href="jpa.html">JPA</a> for working with hibernate, openjpa or toplink. When consuming from the endpoints entity beans are read (and deleted/updated to mark as processed) then when producing to the endpoints they are written to the database (via insert/update).</li><li><a shape="rect" href="ibatis.html">iBATIS</a> similar to the above but using <a shape="rect" class="external-link" href="http://ibatis.apache.org/">Apache iBATIS</a></li><li><a shape="rect" href="jdbc.html">JDBC</a> similar though using explicit SQL</li><li><a shape="rect" href="sql-component.html">SQL</a><span style="color: rgb(0,0,0);">&#160;uses<a shape="rect" class="external-link" 
 href="http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/jdbc.html" rel="nofollow"> spring-jdbc</a> behind&#160;</span>the scene for the actual SQL handling.&#160;The difference between this component and&#160;<a shape="rect" class="external-link" href="http://camel.apache.org/jdbc.html">JDBC</a>&#160;component is that in case of SQL the query is a property of the endpoint and it uses message payload as parameters passed to the query</li></ul><h3 id="BookInOnePage-Databasepatternimplementations">Database pattern implementations</h3><p>Various patterns can work with databases as follows</p><ul><li><a shape="rect" href="idempotent-consumer.html">Idempotent Consumer</a></li><li><a shape="rect" href="aggregator.html">Aggregator</a></li><li><a shape="rect" href="bam.html">BAM</a> for business activity monitoring</li></ul>
 <h2 id="BookInOnePage-ParallelProcessingandOrdering">Parallel Processing and Ordering</h2><p>It is a common requirement to want to use parallel processing of messages for throughput and load balancing, while at the same time process certain kinds of messages in order.</p><h3 id="BookInOnePage-Howtoachieveparallelprocessing">How to achieve parallel processing</h3><p>You can send messages to a number of Camel <a shape="rect" href="components.html">Components</a> to achieve parallel processing and load balancing such as</p><ul><li><a shape="rect" href="seda.html">SEDA</a> for in-JVM load balancing across a thread pool</li><li><a shape="rect" href="activemq.html">ActiveMQ</a> or <a shape="rect" href="jms.html">JMS</a> for distributed load balancing and parallel processing</li><li><a shape="rect" href="jpa.html">JPA</a> for using the database as a poor mans message broker</li></ul><p>When processing messages concurrently, you should consider ordering and concurrency issues. These are des
 cribed below</p><h4 id="BookInOnePage-Concurrencyissues">Concurrency issues</h4><p>Note that there is no concurrency or locking issue when using <a shape="rect" href="activemq.html">ActiveMQ</a>, <a shape="rect" href="jms.html">JMS</a> or <a shape="rect" href="seda.html">SEDA</a> by design; they are designed for highly concurrent use. However there are possible concurrency issues in the <a shape="rect" href="processor.html">Processor</a> of the messages i.e. what the processor does with the message?</p><p>For example if a processor of a message transfers money from one account to another account; you probably want to use a database with pessimistic locking to ensure that operation takes place atomically.</p><h4 id="BookInOnePage-Orderingissues">Ordering issues</h4><p>As soon as you send multiple messages to different threads or processes you will end up with an unknown ordering across the entire message stream as each thread is going to process messages concurrently.</p><p>For many 
 use cases the order of messages is not too important. However for some applications this can be crucial. e.g. if a customer submits a purchase order version 1, then amends it and sends version 2; you don't want to process the first version last (so that you loose the update). Your <a shape="rect" href="processor.html">Processor</a> might be clever enough to ignore old messages. If not you need to preserve order.</p><h3 id="BookInOnePage-Recommendations">Recommendations</h3><p>This topic is large and diverse with lots of different requirements; but from a high level here are our recommendations on parallel processing, ordering and concurrency</p><ul><li>for distributed locking, use a database by default, they are very good at it <img class="emoticon emoticon-smile" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/emoticons/smile.png" data-emoticon-name="smile" alt="(smile)"></li><li>to preserve ordering across 
 a JMS queue consider using <a shape="rect" class="external-link" href="http://activemq.apache.org/exclusive-consumer.html">Exclusive Consumers</a> in the <a shape="rect" href="activemq.html">ActiveMQ</a> component</li><li>even better are <a shape="rect" class="external-link" href="http://activemq.apache.org/message-groups.html">Message Groups</a> which allows you to preserve ordering across messages while still offering parallelisation via the <strong>JMSXGroupID</strong> header to determine what can be parallelized</li><li>if you receive messages out of order you could use the <a shape="rect" href="resequencer.html">Resequencer</a> to put them back together again</li></ul><p>A good rule of thumb to help reduce ordering problems is to make sure each single can be processed as an atomic unit in parallel (either without concurrency issues or using say, database locking); or if it can't, use a <a shape="rect" class="external-link" href="http://activemq.apache.org/message-groups.html">M
 essage Group</a> to relate the messages together which need to be processed in order by a single thread.</p><h3 id="BookInOnePage-UsingMessageGroupswithCamel">Using Message Groups with Camel</h3><p>To use a Message Group with Camel you just need to add a header to the output JMS message based on some kind of <a shape="rect" href="correlation-identifier.html">Correlation Identifier</a> to correlate messages which should be processed in order by a single thread - so that things which don't correlate together can be processed concurrently.</p><p>For example the following code shows how to create a message group using an XPath expression taking an invoice's product code as the <a shape="rect" href="correlation-identifier.html">Correlation Identifier</a></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[from(&quot;activemq:a&quot;).setHeader(JmsConstants.JMS_X_GROUP_ID, xpath(&quot;/invoice/productCode&quot;)).to(&quot;activemq:b&quot;);
 ]]></script>
@@ -4148,11 +4139,11 @@ While not actual tutorials you might fin
                     </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.rbtoc1402057036446 {padding: 0px;}
-div.rbtoc1402057036446 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1402057036446 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1402492678773 {padding: 0px;}
+div.rbtoc1402492678773 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1402492678773 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1402057036446">
+/*]]>*/</style></p><div class="toc-macro rbtoc1402492678773">
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-JmsRemoting-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-Preface">Preface</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-Distribution">Distribution</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-About">About</a></li><li><a shape="rect" href="#Tutorial-JmsRemoting-CreatetheCamelProject">Create the Camel Project</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-JmsRemoting-UpdatethePOMwithDependencies">Update the POM with Dependencies</a></li></ul>
 </li><li><a shape="rect" href="#Tutorial-JmsRemoting-WritingtheServer">Writing the Server</a>
@@ -6338,11 +6329,11 @@ So we completed the last piece in the pi
 
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1402057036754 {padding: 0px;}
-div.rbtoc1402057036754 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1402057036754 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1402492679244 {padding: 0px;}
+div.rbtoc1402492679244 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1402492679244 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1402057036754">
+/*]]>*/</style><div class="toc-macro rbtoc1402492679244">
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-AXIS-Camel-TutorialusingAxis1.4withApacheCamel">Tutorial using Axis 1.4 with Apache Camel</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-AXIS-Camel-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-Distribution">Distribution</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-Introduction">Introduction</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-SettinguptheprojecttorunAxis">Setting up the project to run Axis</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#Tutorial-AXIS-Camel-Maven2">Maven 2</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-wsdl">wsdl</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-ConfiguringAxis">Configuring Axis</a></li><li><a shape="rect" href="#Tutorial-AXIS-Camel-RunningtheExample">Running the Example</a></li></ul>
@@ -18665,7 +18656,7 @@ from(&quot;direct:tap&quot;)
 
         &lt;route id=&quot;moo&quot; xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
             &lt;from uri=&quot;direct:moo&quot;/&gt;
-            &lt;log message=&quot;Me Got ${body}&quot; loggingLevel=&quot;INFO loggerRef=&quot;myLogger&quot;/&gt;
+            &lt;log message=&quot;Me Got ${body}&quot; loggingLevel=&quot;INFO&quot; loggerRef=&quot;myLogger&quot;/&gt;
             &lt;to uri=&quot;mock:baz&quot;/&gt;
         &lt;/route&gt;
 ]]></script>
@@ -20120,11 +20111,11 @@ template.send(&quot;direct:alias-verify&
                     </div>
     </div>
 <p>The <strong>cxf:</strong> component provides integration with <a shape="rect" href="http://cxf.apache.org">Apache CXF</a> for connecting to JAX-WS services hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1402057047648 {padding: 0px;}
-div.rbtoc1402057047648 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1402057047648 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1402492701327 {padding: 0px;}
+div.rbtoc1402492701327 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1402492701327 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1402057047648">
+/*]]>*/</style></p><div class="toc-macro rbtoc1402492701327">
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-CXFComponent">CXF Component</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-URIformat">URI format</a></li><li><a shape="rect" href="#CXF-Options">Options</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#CXF-Thedescriptionsofthedataformats">The descriptions of the dataformats</a>

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

Modified: websites/production/camel/content/database.html
==============================================================================
--- websites/production/camel/content/database.html (original)
+++ websites/production/camel/content/database.html Wed Jun 11 13:19:15 2014
@@ -75,22 +75,7 @@
 	<tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 id="Database-Database">Database</h2>
-
-<p>Camel can work with databases in a number of different ways. This document tries to outline the most common approaches.</p>
-
-<h3 id="Database-Databaseendpoints">Database endpoints</h3>
-
-<p>Camel provides a number of different endpoints for working with databases</p>
-
-<ul><li><a shape="rect" href="jpa.html">JPA</a> for working with hibernate, openjpa or toplink. When consuming from the endpoints entity beans are read (and deleted/updated to mark as processed) then when producing to the endpoints they are written to the database (via insert/update).</li><li><a shape="rect" href="ibatis.html">iBatis</a> similar to the above but using <a shape="rect" class="external-link" href="http://ibatis.apache.org/">Apache iBATIS</a></li><li><a shape="rect" href="jdbc.html">JDBC</a> similar though using explicit SQL</li></ul>
-
-
-<h3 id="Database-Databasepatternimplementations">Database pattern implementations</h3>
-
-<p>Various patterns can work with databases as follows</p>
-
-<ul><li><a shape="rect" href="idempotent-consumer.html">Idempotent Consumer</a></li><li><a shape="rect" href="aggregator.html">Aggregator</a></li><li><a shape="rect" href="bam.html">BAM</a> for business activity monitoring</li></ul></div>
+<div class="wiki-content maincontent"><h2 id="Database-Database">Database</h2><p>Camel can work with databases in a number of different ways. This document tries to outline the most common approaches.</p><h3 id="Database-Databaseendpoints">Database endpoints</h3><p>Camel provides a number of different endpoints for working with databases</p><ul><li><a shape="rect" href="jpa.html">JPA</a> for working with hibernate, openjpa or toplink. When consuming from the endpoints entity beans are read (and deleted/updated to mark as processed) then when producing to the endpoints they are written to the database (via insert/update).</li><li><a shape="rect" href="ibatis.html">iBATIS</a> similar to the above but using <a shape="rect" class="external-link" href="http://ibatis.apache.org/">Apache iBATIS</a></li><li><a shape="rect" href="jdbc.html">JDBC</a> similar though using explicit SQL</li><li><a shape="rect" href="sql-component.html">SQL</a><span style="color: rgb(0,0,0);">&#160;uses<a shape="
 rect" class="external-link" href="http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/jdbc.html" rel="nofollow"> spring-jdbc</a> behind&#160;</span>the scene for the actual SQL handling.&#160;The difference between this component and&#160;<a shape="rect" class="external-link" href="http://camel.apache.org/jdbc.html">JDBC</a>&#160;component is that in case of SQL the query is a property of the endpoint and it uses message payload as parameters passed to the query</li></ul><h3 id="Database-Databasepatternimplementations">Database pattern implementations</h3><p>Various patterns can work with databases as follows</p><ul><li><a shape="rect" href="idempotent-consumer.html">Idempotent Consumer</a></li><li><a shape="rect" href="aggregator.html">Aggregator</a></li><li><a shape="rect" href="bam.html">BAM</a> for business activity monitoring</li></ul></div>
         </td>
         <td valign="top">
           <div class="navigation">