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 2018/10/17 09:28:10 UTC

svn commit: r1036341 [9/17] - in /websites/production/camel/content: ./ 2015/10/14/ 2018/10/ 2018/10/17/ cache/

Modified: websites/production/camel/content/book-quickstart.html
==============================================================================
--- websites/production/camel/content/book-quickstart.html (original)
+++ websites/production/camel/content/book-quickstart.html Wed Oct 17 09:28:08 2018
@@ -94,9 +94,9 @@
 
 <p>To start using Apache Camel quickly, you can read through some simple examples in this chapter. For readers who would like a more thorough introduction, please skip ahead to Chapter 3.</p>
 
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookQuickstart-WalkthroughanExampleCode">Walk through an Example Code</h2><p>This mini-guide takes you through the source code of a <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/camel/trunk/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java">simple example</a>.</p><p>Camel can be configured either by using <a shape="rect" href="spring.html">Spring</a> or directly in Java - which <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/camel/trunk/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java">this example does</a>.</p><p>This example is available in the <code>examples\camel-example-jms-file</code> directory of the <a shape="rect" href="download.html">Camel distribution</a>.</p><p>We start with creating a <a shape="rect" href=
 "camelcontext.html">CamelContext</a> - which is a container for <a shape="rect" href="components.html">Components</a>, <a shape="rect" href="routes.html">Routes</a> etc:<plain-text-body>{snippet:id=e1|lang=java|url=camel/trunk/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java}</plain-text-body>There is more than one way of adding a Component to the CamelContext. You can add components implicitly - when we set up the routing - as we do here for the <a shape="rect" href="file2.html">FileComponent</a>:<plain-text-body>{snippet:id=e3|lang=java|url=camel/trunk/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java}</plain-text-body>or explicitly - as we do here when we add the JMS Component:<plain-text-body>{snippet:id=e2|lang=java|url=camel/trunk/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java}</plain-text-body>The abo
 ve works with any JMS provider. If we know we are using <a shape="rect" href="activemq.html">ActiveMQ</a> we can use an even simpler form using the <a shape="rect" class="external-link" href="http://activemq.apache.org/maven/5.5.0/activemq-camel/apidocs/org/apache/activemq/camel/component/ActiveMQComponent.html#activeMQComponent%28java.lang.String%29"><code>activeMQComponent()</code> method</a> while specifying the <a shape="rect" class="external-link" href="http://activemq.apache.org/configuring-transports.html">brokerURL</a> used to connect to ActiveMQ</p><p>In normal use, an external system would be firing messages or events directly into Camel through one if its <a shape="rect" href="components.html">Components</a> but we are going to use the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/ProducerTemplate.html">ProducerTemplate</a> which is a really easy way for testing your configuration:<plain-text-body>{sn
 ippet:id=e4|lang=java|url=camel/trunk/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java}</plain-text-body>Next you <strong>must</strong> start the camel context. If you are using <a shape="rect" href="spring.html">Spring</a> to configure the camel context this is automatically done for you; though if you are using a pure Java approach then you just need to call the start() method</p><plain-text-body>camelContext.start();
-</plain-text-body><p>This will start all of the configured routing rules.</p><p>So after starting the <a shape="rect" href="camelcontext.html">CamelContext</a>, we can fire some objects into camel:<plain-text-body>{snippet:id=e5|lang=java|url=camel/trunk/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java}</plain-text-body></p><h2 id="BookQuickstart-Whathappens?">What happens?</h2><p>From the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/ProducerTemplate.html">ProducerTemplate</a> - we send objects (in this case text) into the <a shape="rect" href="camelcontext.html">CamelContext</a> to the Component <em>test-jms:queue:test.queue</em>. These text objects will be <a shape="rect" href="type-converter.html">converted automatically</a> into JMS Messages and posted to a JMS Queue named <em>test.queue</em>. When we set up the <a shape="rect" href="routes.html">Ro
 ute</a>, we configured the <a shape="rect" href="file2.html">FileComponent</a> to listen off the <em>test.queue</em>.</p><p>The File <a shape="rect" href="file2.html">FileComponent</a> will take messages off the Queue, and save them to a directory named <em>test</em>. Every message will be saved in a file that corresponds to its destination and message id.</p><p>Finally, we configured our own listener in the <a shape="rect" href="routes.html">Route</a> - to take notifications from the <a shape="rect" href="file2.html">FileComponent</a> and print them out as text.</p><p><strong>That's it!</strong></p><p>If you have the time then use 5 more minutes to <a shape="rect" href="walk-through-another-example.html">Walk through another example</a> that demonstrates the Spring DSL (XML based) routing.</p></div>
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookQuickstart-Walkthroughanotherexample">Walk through another example</h2>
+<h2 id="BookQuickstart-WalkthroughanExampleCode">Walk through an Example Code</h2><p>This mini-guide takes you through the source code of a <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/camel/trunk/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java">simple example</a>.</p><p>Camel can be configured either by using <a shape="rect" href="spring.html">Spring</a> or directly in Java - which <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/camel/trunk/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java">this example does</a>.</p><p>This example is available in the <code>examples\camel-example-jms-file</code> directory of the <a shape="rect" href="download.html">Camel distribution</a>.</p><p>We start with creating a <a shape="rect" href="camelcontext.html">CamelContext</a> - which is a container for <a shape="rect" href
 ="components.html">Components</a>, <a shape="rect" href="routes.html">Routes</a> etc:<plain-text-body>{snippet:id=e1|lang=java|url=camel/trunk/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java}</plain-text-body>There is more than one way of adding a Component to the CamelContext. You can add components implicitly - when we set up the routing - as we do here for the <a shape="rect" href="file2.html">FileComponent</a>:<plain-text-body>{snippet:id=e3|lang=java|url=camel/trunk/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java}</plain-text-body>or explicitly - as we do here when we add the JMS Component:<plain-text-body>{snippet:id=e2|lang=java|url=camel/trunk/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java}</plain-text-body>The above works with any JMS provider. If we know we are using <a shape="rect" href="active
 mq.html">ActiveMQ</a> we can use an even simpler form using the <a shape="rect" class="external-link" href="http://activemq.apache.org/maven/5.5.0/activemq-camel/apidocs/org/apache/activemq/camel/component/ActiveMQComponent.html#activeMQComponent%28java.lang.String%29"><code>activeMQComponent()</code> method</a> while specifying the <a shape="rect" class="external-link" href="http://activemq.apache.org/configuring-transports.html">brokerURL</a> used to connect to ActiveMQ</p><p>In normal use, an external system would be firing messages or events directly into Camel through one if its <a shape="rect" href="components.html">Components</a> but we are going to use the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/ProducerTemplate.html">ProducerTemplate</a> which is a really easy way for testing your configuration:<plain-text-body>{snippet:id=e4|lang=java|url=camel/trunk/examples/camel-example-jms-file/src/main/java/
 org/apache/camel/example/jmstofile/CamelJmsToFileExample.java}</plain-text-body>Next you <strong>must</strong> start the camel context. If you are using <a shape="rect" href="spring.html">Spring</a> to configure the camel context this is automatically done for you; though if you are using a pure Java approach then you just need to call the start() method</p><plain-text-body>camelContext.start();
+</plain-text-body><p>This will start all of the configured routing rules.</p><p>So after starting the <a shape="rect" href="camelcontext.html">CamelContext</a>, we can fire some objects into camel:<plain-text-body>{snippet:id=e5|lang=java|url=camel/trunk/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java}</plain-text-body></p><h2 id="BookQuickstart-Whathappens?">What happens?</h2><p>From the <a shape="rect" class="external-link" href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/ProducerTemplate.html">ProducerTemplate</a> - we send objects (in this case text) into the <a shape="rect" href="camelcontext.html">CamelContext</a> to the Component <em>test-jms:queue:test.queue</em>. These text objects will be <a shape="rect" href="type-converter.html">converted automatically</a> into JMS Messages and posted to a JMS Queue named <em>test.queue</em>. When we set up the <a shape="rect" href="routes.html">Ro
 ute</a>, we configured the <a shape="rect" href="file2.html">FileComponent</a> to listen off the <em>test.queue</em>.</p><p>The File <a shape="rect" href="file2.html">FileComponent</a> will take messages off the Queue, and save them to a directory named <em>test</em>. Every message will be saved in a file that corresponds to its destination and message id.</p><p>Finally, we configured our own listener in the <a shape="rect" href="routes.html">Route</a> - to take notifications from the <a shape="rect" href="file2.html">FileComponent</a> and print them out as text.</p><p><strong>That's it!</strong></p><p>If you have the time then use 5 more minutes to <a shape="rect" href="walk-through-another-example.html">Walk through another example</a> that demonstrates the Spring DSL (XML based) routing.</p>
+<h2 id="BookQuickstart-Walkthroughanotherexample">Walk through another example</h2>
 
 <h3 id="BookQuickstart-Introduction">Introduction</h3>
 <p>Continuing the walk from our first <a shape="rect" href="walk-through-an-example.html">example</a>, we take a closer look at the routing and explain a few pointers - so you won't walk into a bear trap, but can enjoy an after-hours walk to the local pub for a large beer <img class="emoticon emoticon-wink" src="https://cwiki.apache.org/confluence/s/en_GB/7701/d7b403a44466e5e8970db7530201039d865e79e1/_/images/icons/emoticons/wink.svg" data-emoticon-name="wink" alt="(wink)"></p>
@@ -225,7 +225,7 @@
 <p>This example is also based on the <strong>in-only</strong> message exchange pattern. What you must understand as well is the <strong>in-out</strong> message exchange pattern, where the caller expects a response. We will look into this in another example.</p>
 
 <h3 id="BookQuickstart-Seealso">See also</h3>
-<ul class="alternate"><li><a shape="rect" href="examples.html">Examples</a></li><li><a shape="rect" href="tutorials.html">Tutorials</a></li><li><a shape="rect" href="user-guide.html">User Guide</a></li></ul></div></div>
+<ul class="alternate"><li><a shape="rect" href="examples.html">Examples</a></li><li><a shape="rect" href="tutorials.html">Tutorials</a></li><li><a shape="rect" href="user-guide.html">User Guide</a></li></ul></div>
 
 </div>
         </td>

Modified: websites/production/camel/content/book-tutorials.html
==============================================================================
--- websites/production/camel/content/book-tutorials.html (original)
+++ websites/production/camel/content/book-tutorials.html Wed Oct 17 09:28:08 2018
@@ -97,7 +97,7 @@
 
 <p>There now follows the documentation on camel tutorials</p>
 
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include">We have a number of tutorials as listed below. The tutorials often comes with source code which is either available in the Camel <a shape="rect" href="download.html">Download</a> or attached to the wiki page.
+We have a number of tutorials as listed below. The tutorials often comes with source code which is either available in the Camel <a shape="rect" href="download.html">Download</a> or attached to the wiki page.
 
 <div class="confluence-information-macro confluence-information-macro-information conf-macro output-block" data-hasbody="true" data-macro-name="info"><p class="title">Notice</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"> </span><div class="confluence-information-macro-body">
 <p>These tutorials listed below, is hosted at Apache. We offer the <a shape="rect" href="articles.html">Articles</a> page where we have a link collection for 3rd party Camel material, such as tutorials, blog posts, published articles, videos, pod casts, presentations, and so forth.</p>
@@ -146,9 +146,9 @@ The tutorial has been designed in two pa
 
 
 <ul><li><a shape="rect" href="examples.html">Examples</a><br clear="none">
-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></div>
+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>
 
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookTutorials-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</h2><p>&#160;</p><parameter ac:name="title">Thanks</parameter><rich-text-body><p>This tutorial was kindly donated to Apache Camel by Martin Gilday.</p></rich-text-body><h2 id="BookTutorials-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></p><h2 id="BookTutorials-Prerequisites">Prerequisites</h2><p>This tutorial uses Maven to setup the Camel project and for dependencies for artifacts.</p><h2 id="BookTutorials-Distribution">Distribution</h2><p>This sample is distributed with the Camel distri
 bution as <code>examples/camel-example-spring-jms</code>.</p><h2 id="BookTutorials-About">About</h2><p>This tutorial is a simple example that demonstrates more the fact how well Camel is seamless integrated with Spring to leverage the best of both worlds. This sample is client server solution using JMS messaging as the transport. The sample has two flavors of servers and also for clients demonstrating different techniques for easy communication.</p><p>The Server is a JMS message broker that routes incoming messages to a business service that does computations on the received message and returns a response.<br clear="none"> The EIP patterns used in this sample are:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Pattern</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="message-channel.html">Message Ch
 annel</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>We need a channel so the Clients can communicate with the server.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="message.html">Message </a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The information is exchanged using the Camel Message interface.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="message-translator.html">Message Translator</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>This is where Camel shines as the message exchange between the Server and the Clients are text based strings with numbers. However our business service uses int for numbers. So Camel can do the message translation automatically.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="message-endpoint.html">Message Endpoint</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"
 ><p>It should be easy to send messages to the Server from the the clients. This is achieved with Camel's powerful Endpoint pattern that even can be more powerful combined with Spring remoting. The tutorial has clients using each kind of technique for this.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="point-to-point-channel.html">Point to Point Channel</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The client and server exchange data using point to point using a JMS queue.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="event-driven-consumer.html">Event Driven Consumer</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span>The JMS broker is event driven and is invoked when the client sends a message to the server.</span></p></td></tr></tbody></table></div><p>We use the following Camel components:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr>
 <th colspan="1" rowspan="1" class="confluenceTh"><p>Component</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="activemq.html">ActiveMQ</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>We use Apache ActiveMQ as the JMS broker on the Server side</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="bean.html">Bean</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>We use the bean binding to easily route the messages to our business service. This is a very powerful component in Camel.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="file2.html">File</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>In the AOP enabled Server we store audit trails as files.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="jms.html">
 JMS</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used for the JMS messaging</p></td></tr></tbody></table></div><h2 id="BookTutorials-CreatetheCamelProject">Create the Camel Project</h2><rich-text-body><p>For the purposes of the tutorial a single Maven project will be used for both the client and server. Ideally you would break your application down into the appropriate components.</p></rich-text-body><plain-text-body>mvn archetype:generate -DgroupId=org.example -DartifactId=CamelWithJmsAndSpring
+<h2 id="BookTutorials-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</h2><p>&#160;</p><parameter ac:name="title">Thanks</parameter><rich-text-body><p>This tutorial was kindly donated to Apache Camel by Martin Gilday.</p></rich-text-body><h2 id="BookTutorials-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></p><h2 id="BookTutorials-Prerequisites">Prerequisites</h2><p>This tutorial uses Maven to setup the Camel project and for dependencies for artifacts.</p><h2 id="BookTutorials-Distribution">Distribution</h2><p>This sample is distributed with the Camel distribution as <code>examples/camel-example-spring-jms</code>.</p><h2 id="BookTutorials-A
 bout">About</h2><p>This tutorial is a simple example that demonstrates more the fact how well Camel is seamless integrated with Spring to leverage the best of both worlds. This sample is client server solution using JMS messaging as the transport. The sample has two flavors of servers and also for clients demonstrating different techniques for easy communication.</p><p>The Server is a JMS message broker that routes incoming messages to a business service that does computations on the received message and returns a response.<br clear="none"> The EIP patterns used in this sample are:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Pattern</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="message-channel.html">Message Channel</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>We need a chan
 nel so the Clients can communicate with the server.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="message.html">Message </a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The information is exchanged using the Camel Message interface.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="message-translator.html">Message Translator</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>This is where Camel shines as the message exchange between the Server and the Clients are text based strings with numbers. However our business service uses int for numbers. So Camel can do the message translation automatically.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="message-endpoint.html">Message Endpoint</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>It should be easy to send messages to the Server from the the clients. This is a
 chieved with Camel's powerful Endpoint pattern that even can be more powerful combined with Spring remoting. The tutorial has clients using each kind of technique for this.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="point-to-point-channel.html">Point to Point Channel</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The client and server exchange data using point to point using a JMS queue.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="event-driven-consumer.html">Event Driven Consumer</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span>The JMS broker is event driven and is invoked when the client sends a message to the server.</span></p></td></tr></tbody></table></div><p>We use the following Camel components:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Component</p></th><th colspan="1
 " rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="activemq.html">ActiveMQ</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>We use Apache ActiveMQ as the JMS broker on the Server side</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="bean.html">Bean</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>We use the bean binding to easily route the messages to our business service. This is a very powerful component in Camel.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="file2.html">File</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>In the AOP enabled Server we store audit trails as files.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="jms.html">JMS</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used for the JMS
  messaging</p></td></tr></tbody></table></div><h2 id="BookTutorials-CreatetheCamelProject">Create the Camel Project</h2><rich-text-body><p>For the purposes of the tutorial a single Maven project will be used for both the client and server. Ideally you would break your application down into the appropriate components.</p></rich-text-body><plain-text-body>mvn archetype:generate -DgroupId=org.example -DartifactId=CamelWithJmsAndSpring
 </plain-text-body><h3 id="BookTutorials-UpdatethePOMwithDependencies">Update the POM with Dependencies</h3><p>First we need to have dependencies for the core Camel jars, spring, jms components, and finally ActiveMQ as the message broker.<plain-text-body>{snippet:id=e1|lang=xml|url=camel/trunk/examples/camel-example-spring-jms/pom.xml}</plain-text-body>As we use spring xml configuration for the ActiveMQ JMS broker we need this dependency:<plain-text-body>{snippet:id=e2|lang=xml|url=camel/trunk/examples/camel-example-spring-jms/pom.xml}</plain-text-body></p><h2 id="BookTutorials-WritingtheServer">Writing the Server</h2><h3 id="BookTutorials-CreatetheSpringService">Create the Spring Service</h3><p>For this example the Spring service (our business service) on the server will be a simple multiplier which trebles in the received value.<plain-text-body>{snippet:id=e1|lang=java|url=camel/trunk/examples/camel-example-spring-jms/src/main/java/org/apache/camel/example/server/Multiplier.java}</
 plain-text-body>And the implementation of this service is:<plain-text-body>{snippet:id=e1|lang=java|url=camel/trunk/examples/camel-example-spring-jms/src/main/java/org/apache/camel/example/server/Treble.java}</plain-text-body>Notice that this class has been annotated with the @Service spring annotation. This ensures that this class is registered as a bean in the registry with the given name <strong>multiplier</strong>.</p><h3 id="BookTutorials-DefinetheCamelRoutes">Define the Camel Routes</h3><p><plain-text-body>{snippet:id=e1|lang=java|url=camel/trunk/examples/camel-example-spring-jms/src/main/java/org/apache/camel/example/server/ServerRoutes.java}</plain-text-body>This defines a Camel route <em>from</em> the JMS queue named <strong>numbers</strong> <em>to</em> the Spring <a shape="rect" href="bean.html">bean</a> named <strong>multiplier</strong>. Camel will create a consumer to the JMS queue which forwards all received messages onto the the Spring bean, using the method named <str
 ong>multiply</strong>.</p><h3 id="BookTutorials-ConfigureSpring">Configure Spring</h3><p>The Spring config file is placed under <code>META-INF/spring</code> as this is the default location used by the <a shape="rect" href="camel-maven-plugin.html">Camel Maven Plugin</a>, which we will later use to run our server.<br clear="none"> First we need to do the standard scheme declarations in the top. In the camel-server.xml we are using spring beans as the default <strong>bean:</strong> namespace and springs <strong>context:</strong>. For configuring ActiveMQ we use <strong>broker:</strong> and for Camel we of course have <strong>camel:</strong>. Notice that we don't use version numbers for the camel-spring schema. At runtime the schema is resolved in the Camel bundle. If we use a specific version number such as 1.4 then its IDE friendly as it would be able to import it and provide smart completion etc. See <a shape="rect" href="xml-reference.html">Xml Reference</a> for further details.<pl
 ain-text-body>{snippet:id=e1|lang=xml|url=camel/trunk/examples/camel-example-spring-jms/src/main/resources/META-INF/spring/camel-server.xml}</plain-text-body>We use Spring annotations for doing IoC dependencies and its component-scan features comes to the rescue as it scans for spring annotations in the given package name:<plain-text-body>{snippet:id=e2|lang=xml|url=camel/trunk/examples/camel-example-spring-jms/src/main/resources/META-INF/spring/camel-server.xml}</plain-text-body>Camel will of course not be less than Spring in this regard so it supports a similar feature for scanning of Routes. This is configured as shown below.<br clear="none"> Notice that we also have enabled the <a shape="rect" href="camel-jmx.html">JMXAgent</a> so we will be able to introspect the Camel Server with a JMX Console.<plain-text-body>{snippet:id=e3|lang=xml|url=camel/trunk/examples/camel-example-spring-jms/src/main/resources/META-INF/spring/camel-server.xml}</plain-text-body>The ActiveMQ JMS broker i
 s also configured in this xml file. We set it up to listen on TCP port 61610.<plain-text-body>{snippet:id=e4|lang=xml|url=camel/trunk/examples/camel-example-spring-jms/src/main/resources/META-INF/spring/camel-server.xml}</plain-text-body>As this examples uses JMS then Camel needs a <a shape="rect" href="jms.html">JMS component</a> that is connected with the ActiveMQ broker. This is configured as shown below:<plain-text-body>{snippet:id=e5|lang=xml|url=camel/trunk/examples/camel-example-spring-jms/src/main/resources/META-INF/spring/camel-server.xml}</plain-text-body><strong>Notice:</strong> The <a shape="rect" href="jms.html">JMS component</a> is configured in standard Spring beans, but the gem is that the bean id can be referenced from Camel routes - meaning we can do routing using the JMS Component by just using <strong>jms:</strong> prefix in the route URI. What happens is that Camel will find in the Spring Registry for a bean with the id="jms". Since the bean id can have arbitrar
 y name you could have named it id="jmsbroker" and then referenced to it in the routing as <code>from="jmsbroker:queue:numbers).to("multiplier");</code><br clear="none"> We use the vm protocol to connect to the ActiveMQ server as its embedded in this application.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>component-scan</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Defines the package to be scanned for Spring stereotype annotations, in this case, to load the "multiplier" bean</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>camel-context</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Defines the package to be scanned for Camel routes. Will find the <code>ServerRoutes</code> class and create the routes contained within it</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>jms bean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Crea
 tes the Camel JMS component</p></td></tr></tbody></table></div><h3 id="BookTutorials-RuntheServer">Run the Server</h3><p>The Server is started using the <code>org.apache.camel.spring.Main</code> class that can start camel-spring application out-of-the-box. The Server can be started in several flavors:</p><ul class="alternate"><li>as a standard java main application - just start the <code>org.apache.camel.spring.Main</code> class</li><li>using maven jave:exec</li><li>using <a shape="rect" href="camel-run-maven-goal.html">camel:run</a></li></ul><p>In this sample as there are two servers (with and without AOP) we have prepared some profiles in maven to start the Server of your choice.<br clear="none"> The server is started with:<br clear="none"> <code>mvn compile exec:java -PCamelServer</code></p><h2 id="BookTutorials-WritingTheClients">Writing The Clients</h2><p>This sample has three clients demonstrating different Camel techniques for communication</p><ul class="alternate"><li>CamelC
 lient using the <a shape="rect" href="producertemplate.html">ProducerTemplate</a> for Spring template style coding</li><li>CamelRemoting using Spring Remoting</li><li>CamelEndpoint using the Message Endpoint EIP pattern using a neutral Camel API</li></ul><h3 id="BookTutorials-ClientUsingTheProducerTemplate">Client Using The ProducerTemplate</h3><p>We will initially create a client by directly using <code>ProducerTemplate</code>. We will later create a client which uses Spring remoting to hide the fact that messaging is being used.<plain-text-body>{snippet:id=e1|lang=xml|url=camel/trunk/examples/camel-example-spring-jms/src/main/resources/camel-client.xml}</plain-text-body><plain-text-body>{snippet:id=e2|lang=xml|url=camel/trunk/examples/camel-example-spring-jms/src/main/resources/camel-client.xml}</plain-text-body><plain-text-body>{snippet:id=e3|lang=xml|url=camel/trunk/examples/camel-example-spring-jms/src/main/resources/camel-client.xml}</plain-text-body>The client will not use th
 e <a shape="rect" href="camel-maven-plugin.html">Camel Maven Plugin</a> so the Spring XML has been placed in <em>src/main/resources</em> to not conflict with the server configs.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>camelContext</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The Camel context is defined but does not contain any routes</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>template</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The <code>ProducerTemplate</code> is used to place messages onto the JMS queue</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>jms bean</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>This initialises the Camel JMS component, allowing us to place messages onto the queue</p></td></tr></tbody></table></div><p>And the CamelClient source code:<plain-text-body>{snippet:id=e1|lang=java|url=camel/
 trunk/examples/camel-example-spring-jms/src/main/java/org/apache/camel/example/client/CamelClient.java}</plain-text-body>The <code>ProducerTemplate</code> is retrieved from a Spring <code>ApplicationContext</code> and used to manually place a message on the "numbers" JMS queue. The <code>requestBody</code> method will use the exchange pattern InOut, which states that the call should be synchronous, and that the caller expects a response.</p><p>Before running the client be sure that both the ActiveMQ broker and the <code>CamelServer</code> are running.</p><h3 id="BookTutorials-ClientUsingSpringRemoting">Client Using Spring Remoting</h3><p><a shape="rect" href="spring-remoting.html">Spring Remoting</a> "eases the development of remote-enabled services". It does this by allowing you to invoke remote services through your regular Java interface, masking that a remote service is being called.<plain-text-body>{snippet:id=e1|lang=xml|url=camel/trunk/examples/camel-example-spring-jms/src/ma
 in/resources/camel-client-remoting.xml}</plain-text-body>The snippet above only illustrates the different and how Camel easily can setup and use Spring Remoting in one line configurations.</p><p>The <strong>proxy</strong> will create a proxy service bean for you to use to make the remote invocations. The <strong>serviceInterface</strong> property details which Java interface is to be implemented by the proxy. The&#160;<strong>serviceUrl</strong> defines where messages sent to this proxy bean will be directed. Here we define the JMS endpoint with the "numbers" queue we used when working with Camel template directly. The value of the <strong>id</strong> property is the name that will be the given to the bean when it is exposed through the Spring <code>ApplicationContext</code>. We will use this name to retrieve the service in our client. I have named the bean <em>multiplierProxy</em> simply to highlight that it is not the same multiplier bean as is being used by <code>CamelServer</cod
 e>. They are in completely independent contexts and have no knowledge of each other. As you are trying to mask the fact that remoting is being used in a real application you would generally not include proxy in the name.</p><p>And the Java client source code:<plain-text-body>{snippet:id=e1|lang=java|url=camel/trunk/examples/camel-example-spring-jms/src/main/java/org/apache/camel/example/client/CamelClientRemoting.java}</plain-text-body>Again, the client is similar to the original client, but with some important differences.</p><ol><li>The Spring context is created with the new <em>camel-client-remoting.xml</em></li><li>We retrieve the proxy bean instead of a <code>ProducerTemplate</code>. In a non-trivial example you would have the bean injected as in the standard Spring manner.</li><li>The multiply method is then called directly. In the client we are now working to an interface. There is no mention of Camel or JMS inside our Java code.</li></ol><h3 id="BookTutorials-ClientUsingMess
 ageEndpointEIPPattern">Client Using Message Endpoint EIP Pattern</h3><p>This client uses the Message Endpoint EIP pattern to hide the complexity to communicate to the Server. The Client uses the same simple API to get hold of the endpoint, create an exchange that holds the message, set the payload and create a producer that does the send and receive. All done using the same neutral Camel API for <strong>all</strong> the components in Camel. So if the communication was socket TCP based you just get hold of a different endpoint and all the java code stays the same. That is really powerful.</p><p>Okay enough talk, show me the code!<plain-text-body>{snippet:id=e1|lang=java|url=camel/trunk/examples/camel-example-spring-jms/src/main/java/org/apache/camel/example/client/CamelClientEndpoint.java}</plain-text-body>Switching to a different component is just a matter of using the correct endpoint. So if we had defined a TCP endpoint as: <code>"mina:tcp://localhost:61610"</code> then its just a
  matter of getting hold of this endpoint instead of the JMS and all the rest of the java code is exactly the same.</p><h3 id="BookTutorials-RuntheClients">Run the Clients</h3><p>The Clients is started using their main class respectively.</p><ul class="alternate"><li>as a standard java main application - just start their main class</li><li>using maven jave:exec</li></ul><p>In this sample we start the clients using maven:<br clear="none"> <code>mvn compile exec:java -PCamelClient</code><br clear="none"> <code>mvn compile exec:java -PCamelClientRemoting</code><br clear="none"> <code>mvn compile exec:java -PCamelClientEndpoint</code></p><p>Also see the Maven <code>pom.xml</code> file how the profiles for the clients is defined.</p><h2 id="BookTutorials-UsingtheCamelMavenPlugin">Using the Camel Maven Plugin</h2><p>The <a shape="rect" href="camel-maven-plugin.html">Camel Maven Plugin</a> allows you to run your Camel routes directly from Maven. This negates the need to create a host applic
 ation, as we did with Camel server, simply to start up the container. This can be very useful during development to get Camel routes running quickly.</p><parameter ac:name="title">pom.xml</parameter><plain-text-body>&lt;build&gt;
   &lt;plugins&gt;
     &lt;plugin&gt;
@@ -160,9 +160,9 @@ While not actual tutorials you might fin
 </plain-text-body><p>All that is required is a new plugin definition in your Maven POM. As we have already placed our Camel config in the default location (camel-server.xml has been placed in META-INF/spring/) we do not need to tell the plugin where the route definitions are located. Simply run <code>mvn camel:run</code>.</p><h2 id="BookTutorials-UsingCamelJMX">Using Camel JMX</h2><p>Camel has extensive support for JMX and allows us to inspect the Camel Server at runtime. As we have enabled the JMXAgent in our tutorial we can fire up the jconsole and connect to the following service URI: <code>service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi/camel</code>. Notice that Camel will log at INFO level the JMX Connector URI:</p><plain-text-body>...
 DefaultInstrumentationAgent    INFO  JMX connector thread started on service:jmx:rmi:///jndi/rmi://claus-acer:1099/jmxrmi/camel
 ...
-</plain-text-body><p>In the screenshot below we can see the route and its performance metrics:<br clear="none"> <span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="book-tutorials.data/jconsole_jms_tutorial.PNG" data-image-src="/confluence/download/attachments/82923/jconsole_jms_tutorial.PNG?version=1&amp;modificationDate=1214345078000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="59672517" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="jconsole_jms_tutorial.PNG" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="82923" data-linked-resource-container-version="44"></span></p><h2 id="BookTutorials-SeeAlso">See Also</h2><ul><li><a shape="rect" class="external-link" href="http://aminsblog.wordpress.com/2008/05/06/15/" rel="nofollow">Spring Remoting with JMS Example</a> on <a shape="re
 ct" class="external-link" href="http://aminsblog.wordpress.com/" rel="nofollow">Amin Abbaspour's Weblog</a></li></ul></div>
+</plain-text-body><p>In the screenshot below we can see the route and its performance metrics:<br clear="none"> <span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="book-tutorials.data/jconsole_jms_tutorial.PNG" data-image-src="/confluence/download/attachments/82923/jconsole_jms_tutorial.PNG?version=1&amp;modificationDate=1214345078000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="59672517" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="jconsole_jms_tutorial.PNG" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="82923" data-linked-resource-container-version="44"></span></p><h2 id="BookTutorials-SeeAlso">See Also</h2><ul><li><a shape="rect" class="external-link" href="http://aminsblog.wordpress.com/2008/05/06/15/" rel="nofollow">Spring Remoting with JMS Example</a> on <a shape="re
 ct" class="external-link" href="http://aminsblog.wordpress.com/" rel="nofollow">Amin Abbaspour's Weblog</a></li></ul>
 
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookTutorials-Tutorial-camel-example-reportincident">Tutorial - camel-example-reportincident</h2>
+<h2 id="BookTutorials-Tutorial-camel-example-reportincident">Tutorial - camel-example-reportincident</h2>
 
 
 <h2 id="BookTutorials-Introduction">Introduction</h2>
@@ -218,8 +218,8 @@ Part 6 - Showing a alternative solution
 
 <h2 id="BookTutorials-Links">Links</h2>
 
-<ul class="alternate"><li><a shape="rect" href="tutorial-example-reportincident.html">Introduction</a></li><li><a shape="rect" href="tutorial-example-reportincident-part1.html">Part 1</a></li><li><a shape="rect" href="tutorial-example-reportincident-part2.html">Part 2</a></li><li><a shape="rect" href="tutorial-example-reportincident-part3.html">Part 3</a></li><li><a shape="rect" href="tutorial-example-reportincident-part4.html">Part 4</a></li><li><a shape="rect" href="tutorial-example-reportincident-part5.html">Part 5</a></li><li><a shape="rect" href="tutorial-example-reportincident-part6.html">Part 6</a></li></ul></div>
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookTutorials-Part1">Part 1</h2>
+<ul class="alternate"><li><a shape="rect" href="tutorial-example-reportincident.html">Introduction</a></li><li><a shape="rect" href="tutorial-example-reportincident-part1.html">Part 1</a></li><li><a shape="rect" href="tutorial-example-reportincident-part2.html">Part 2</a></li><li><a shape="rect" href="tutorial-example-reportincident-part3.html">Part 3</a></li><li><a shape="rect" href="tutorial-example-reportincident-part4.html">Part 4</a></li><li><a shape="rect" href="tutorial-example-reportincident-part5.html">Part 5</a></li><li><a shape="rect" href="tutorial-example-reportincident-part6.html">Part 6</a></li></ul>
+<h2 id="BookTutorials-Part1">Part 1</h2>
 
 <h2 id="BookTutorials-Prerequisites.1">Prerequisites</h2>
 <p>This tutorial uses the following frameworks:</p>
@@ -722,8 +722,8 @@ Tests run: 1, Failures: 0, Errors: 0, Sk
 
 
 <h2 id="BookTutorials-Links.1">Links</h2>
-<ul class="alternate"><li><a shape="rect" href="tutorial-example-reportincident.html">Introduction</a></li><li><a shape="rect" href="tutorial-example-reportincident-part1.html">Part 1</a></li><li><a shape="rect" href="tutorial-example-reportincident-part2.html">Part 2</a></li><li><a shape="rect" href="tutorial-example-reportincident-part3.html">Part 3</a></li><li><a shape="rect" href="tutorial-example-reportincident-part4.html">Part 4</a></li><li><a shape="rect" href="tutorial-example-reportincident-part5.html">Part 5</a></li><li><a shape="rect" href="tutorial-example-reportincident-part6.html">Part 6</a></li></ul></div>
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookTutorials-Part2">Part 2</h2>
+<ul class="alternate"><li><a shape="rect" href="tutorial-example-reportincident.html">Introduction</a></li><li><a shape="rect" href="tutorial-example-reportincident-part1.html">Part 1</a></li><li><a shape="rect" href="tutorial-example-reportincident-part2.html">Part 2</a></li><li><a shape="rect" href="tutorial-example-reportincident-part3.html">Part 3</a></li><li><a shape="rect" href="tutorial-example-reportincident-part4.html">Part 4</a></li><li><a shape="rect" href="tutorial-example-reportincident-part5.html">Part 5</a></li><li><a shape="rect" href="tutorial-example-reportincident-part6.html">Part 6</a></li></ul>
+<h2 id="BookTutorials-Part2">Part 2</h2>
 
 <h2 id="BookTutorials-AddingCamel">Adding Camel</h2>
 <p>In this part we will introduce Camel so we start by adding Camel to our pom.xml:</p>
@@ -1158,8 +1158,8 @@ public class ReportIncidentEndpointImpl
 Brew a cup of coffee, tug the kids and kiss the wife, for now we will have us some fun with the Camel. See you in part 3.</p>
 
 <h2 id="BookTutorials-Links.2">Links</h2>
-<ul class="alternate"><li><a shape="rect" href="tutorial-example-reportincident.html">Introduction</a></li><li><a shape="rect" href="tutorial-example-reportincident-part1.html">Part 1</a></li><li><a shape="rect" href="tutorial-example-reportincident-part2.html">Part 2</a></li><li><a shape="rect" href="tutorial-example-reportincident-part3.html">Part 3</a></li><li><a shape="rect" href="tutorial-example-reportincident-part4.html">Part 4</a></li><li><a shape="rect" href="tutorial-example-reportincident-part5.html">Part 5</a></li><li><a shape="rect" href="tutorial-example-reportincident-part6.html">Part 6</a></li></ul></div>
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookTutorials-Part3">Part 3</h2>
+<ul class="alternate"><li><a shape="rect" href="tutorial-example-reportincident.html">Introduction</a></li><li><a shape="rect" href="tutorial-example-reportincident-part1.html">Part 1</a></li><li><a shape="rect" href="tutorial-example-reportincident-part2.html">Part 2</a></li><li><a shape="rect" href="tutorial-example-reportincident-part3.html">Part 3</a></li><li><a shape="rect" href="tutorial-example-reportincident-part4.html">Part 4</a></li><li><a shape="rect" href="tutorial-example-reportincident-part5.html">Part 5</a></li><li><a shape="rect" href="tutorial-example-reportincident-part6.html">Part 6</a></li></ul>
+<h2 id="BookTutorials-Part3">Part 3</h2>
 
 <h2 id="BookTutorials-Recap">Recap</h2>
 <p>Lets just recap on the solution we have now:</p>
@@ -1484,8 +1484,8 @@ public class ReportIncidentConsumerTest
 
 
 <h2 id="BookTutorials-Links.3">Links</h2>
-<ul class="alternate"><li><a shape="rect" href="tutorial-example-reportincident.html">Introduction</a></li><li><a shape="rect" href="tutorial-example-reportincident-part1.html">Part 1</a></li><li><a shape="rect" href="tutorial-example-reportincident-part2.html">Part 2</a></li><li><a shape="rect" href="tutorial-example-reportincident-part3.html">Part 3</a></li><li><a shape="rect" href="tutorial-example-reportincident-part4.html">Part 4</a></li><li><a shape="rect" href="tutorial-example-reportincident-part5.html">Part 5</a></li><li><a shape="rect" href="tutorial-example-reportincident-part6.html">Part 6</a></li></ul></div>
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookTutorials-Part4">Part 4</h2>
+<ul class="alternate"><li><a shape="rect" href="tutorial-example-reportincident.html">Introduction</a></li><li><a shape="rect" href="tutorial-example-reportincident-part1.html">Part 1</a></li><li><a shape="rect" href="tutorial-example-reportincident-part2.html">Part 2</a></li><li><a shape="rect" href="tutorial-example-reportincident-part3.html">Part 3</a></li><li><a shape="rect" href="tutorial-example-reportincident-part4.html">Part 4</a></li><li><a shape="rect" href="tutorial-example-reportincident-part5.html">Part 5</a></li><li><a shape="rect" href="tutorial-example-reportincident-part6.html">Part 6</a></li></ul>
+<h2 id="BookTutorials-Part4">Part 4</h2>
 
 <h2 id="BookTutorials-Introduction.1">Introduction</h2>
 <p>This section is about regular Camel. The examples presented here in this section is much more in common of all the examples we have in the Camel documentation.</p>
@@ -1907,9 +1907,9 @@ So we completed the last piece in the pi
 <p>We have just briefly touched the <strong>routing</strong> in Camel and shown how to implement them using the <strong>fluent builder</strong> syntax in Java. There is much more to the routing in Camel than shown here, but we are learning step by step. We continue in part 5. See you there.</p>
 
 <h2 id="BookTutorials-Links.4">Links</h2>
-<ul class="alternate"><li><a shape="rect" href="tutorial-example-reportincident.html">Introduction</a></li><li><a shape="rect" href="tutorial-example-reportincident-part1.html">Part 1</a></li><li><a shape="rect" href="tutorial-example-reportincident-part2.html">Part 2</a></li><li><a shape="rect" href="tutorial-example-reportincident-part3.html">Part 3</a></li><li><a shape="rect" href="tutorial-example-reportincident-part4.html">Part 4</a></li><li><a shape="rect" href="tutorial-example-reportincident-part5.html">Part 5</a></li><li><a shape="rect" href="tutorial-example-reportincident-part6.html">Part 6</a></li></ul></div>
+<ul class="alternate"><li><a shape="rect" href="tutorial-example-reportincident.html">Introduction</a></li><li><a shape="rect" href="tutorial-example-reportincident-part1.html">Part 1</a></li><li><a shape="rect" href="tutorial-example-reportincident-part2.html">Part 2</a></li><li><a shape="rect" href="tutorial-example-reportincident-part3.html">Part 3</a></li><li><a shape="rect" href="tutorial-example-reportincident-part4.html">Part 4</a></li><li><a shape="rect" href="tutorial-example-reportincident-part5.html">Part 5</a></li><li><a shape="rect" href="tutorial-example-reportincident-part6.html">Part 6</a></li></ul>
 
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookTutorials-BetterJMSTransportforCXFWebserviceusingApacheCamel">Better JMS Transport for CXF Webservice using Apache Camel </h2>
+<h2 id="BookTutorials-BetterJMSTransportforCXFWebserviceusingApacheCamel">Better JMS Transport for CXF Webservice using Apache Camel </h2>
 <p>Configuring JMS in Apache CXF before Version 2.1.3 is possible but not really easy or nice. This article shows how to use Apache Camel to provide a better JMS Transport for CXF.</p>
 
 <p><strong>Update:</strong> Since CXF 2.1.3 there is a new way of configuring JMS (<a shape="rect" href="http://cxf.apache.org/docs/using-the-jmsconfigfeature.html">Using the JMSConfigFeature</a>). It makes JMS config for CXF as easy as with Camel. Using Camel for JMS is still a good idea if you want to use the rich feature of Camel for routing and other Integration Scenarios that CXF does not support.</p>
@@ -1991,19 +1991,19 @@ So we completed the last piece in the pi
 
 <h3 id="BookTutorials-Conclusion.1">Conclusion</h3>
 
-<p>As you have seen in this example you can use Camel to connect services to JMS easily while being able to also use the rich integration features of Apache Camel.</p></div>
+<p>As you have seen in this example you can use Camel to connect services to JMS easily while being able to also use the rich integration features of Apache Camel.</p>
 
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookTutorials-TutorialusingAxis1.4withApacheCamel">Tutorial using Axis 1.4 with Apache Camel</h2>
+<h2 id="BookTutorials-TutorialusingAxis1.4withApacheCamel">Tutorial using Axis 1.4 with Apache Camel</h2>
 
 <div class="confluence-information-macro confluence-information-macro-information conf-macro output-block" data-hasbody="true" data-macro-name="info"><p class="title">Removed from distribution</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"> </span><div class="confluence-information-macro-body">
 <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>
 
 <div class="conf-macro output-block" data-hasbody="false" data-macro-name="toc"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1536305333289 {padding: 0px;}
-div.rbtoc1536305333289 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1536305333289 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1539768275528 {padding: 0px;}
+div.rbtoc1539768275528 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1539768275528 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1536305333289">
+/*]]>*/</style><div class="toc-macro rbtoc1539768275528">
 <ul class="toc-indentation"><li><a shape="rect" href="#BookTutorials-TutorialusingAxis1.4withApacheCamel">Tutorial using Axis 1.4 with Apache Camel</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookTutorials-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#BookTutorials-Distribution">Distribution</a></li><li><a shape="rect" href="#BookTutorials-Introduction">Introduction</a></li><li><a shape="rect" href="#BookTutorials-SettinguptheprojecttorunAxis">Setting up the project to run Axis</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookTutorials-Maven2">Maven 2</a></li><li><a shape="rect" href="#BookTutorials-wsdl">wsdl</a></li><li><a shape="rect" href="#BookTutorials-ConfiguringAxis">Configuring Axis</a></li><li><a shape="rect" href="#BookTutorials-RunningtheExample">Running the Example</a></li></ul>
@@ -2954,9 +2954,9 @@ Since we use annotations on the field di
 <p>Note that the code shown here also applies to Camel 1.4 so actually you can get started right away with the released version of Camel. As this time of writing Camel 1.5 is work in progress.</p>
 
 <h3 id="BookTutorials-SeeAlso.1">See Also</h3>
-<ul class="alternate"><li><a shape="rect" href="tutorials.html">Tutorials</a></li><li><a shape="rect" href="examples.html">Examples</a></li></ul></div>
+<ul class="alternate"><li><a shape="rect" href="tutorials.html">Tutorials</a></li><li><a shape="rect" href="examples.html">Examples</a></li></ul>
 
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookTutorials-TutorialonusingCamelinaWebApplication">Tutorial on using Camel in a Web Application</h2>
+<h2 id="BookTutorials-TutorialonusingCamelinaWebApplication">Tutorial on using Camel in a Web Application</h2>
 
 <p>Camel has been designed to work great with the <a shape="rect" href="spring.html">Spring</a> framework; so if you are already a Spring user you can think of Camel as just a framework for adding to your Spring XML files.</p>
 
@@ -3084,9 +3084,9 @@ mvn jetty:run
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Default" data-theme="Default">
 mvn -Dtest=false jetty:run
 </pre>
-</div></div></div>
+</div></div>
 
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h2 id="BookTutorials-TutorialBusinessPartners">Tutorial Business Partners</h2>
+<h2 id="BookTutorials-TutorialBusinessPartners">Tutorial Business Partners</h2>
 
 <div class="confluence-information-macro confluence-information-macro-note conf-macro output-block" data-hasbody="true" data-macro-name="note"><p class="title">Under Construction</p><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"> </span><div class="confluence-information-macro-body">
 <p>This tutorial is a work in progress.</p></div></div>
@@ -3539,7 +3539,7 @@ public class CSVInputTest extends Abstra
 
 <p>...</p>
 
-<h3 id="BookTutorials-Step8:CreateaunittestfortheCustomerInputRoutes">Step 8: Create a unit test for the Customer Input Routes</h3></div></div>
+<h3 id="BookTutorials-Step8:CreateaunittestfortheCustomerInputRoutes">Step 8: Create a unit test for the Customer Input Routes</h3></div>
         </td>
         <td valign="top">
           <div class="navigation">

Modified: websites/production/camel/content/browse.html
==============================================================================
--- websites/production/camel/content/browse.html (original)
+++ websites/production/camel/content/browse.html Wed Oct 17 09:28:08 2018
@@ -130,8 +130,8 @@ browse:someName[?options]
 </div></div>
 
 
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h3 id="Browse-SeeAlso">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></div></div>
+<h3 id="Browse-SeeAlso">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></div>
         </td>
         <td valign="top">
           <div class="navigation">

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

Propchange: websites/production/camel/content/cache/main.pageCache
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: websites/production/camel/content/chunk.html
==============================================================================
--- websites/production/camel/content/chunk.html (original)
+++ websites/production/camel/content/chunk.html Wed Oct 17 09:28:08 2018
@@ -133,8 +133,8 @@ Thanks for the order of {$headers.item}.
 
 Regards Camel Riders Bookstore
 {$body}</pre>
-</div></div><p></p><div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h3 id="Chunk-SeeAlso">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></div></div>
+</div></div><p></p><h3 id="Chunk-SeeAlso">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></div>
         </td>
         <td valign="top">
           <div class="navigation">

Modified: websites/production/camel/content/class.html
==============================================================================
--- websites/production/camel/content/class.html (original)
+++ websites/production/camel/content/class.html Wed Oct 17 09:28:08 2018
@@ -121,8 +121,8 @@
         .to("class:org.apache.camel.component.bean.MyPrefixBean?cool=#foo")
         .to("mock:result");
 </pre>
-</div></div><p>Which will lookup a bean from the <a shape="rect" href="registry.html">Registry</a> with the id <code>foo</code> and invoke the <code>setCool</code> method on the created instance of the <code>MyPrefixBean</code> class.</p><div class="confluence-information-macro confluence-information-macro-tip conf-macro output-block" data-hasbody="true" data-macro-name="tip"><p class="title">See more</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>See more details at the <a shape="rect" href="bean.html">Bean</a> component as the <strong>class</strong> component works in much the same way.</p></div></div><p></p><div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h3 id="Class-SeeAlso">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></div><ul><li><a shape="rect" href="bean.html">Bean</a></li><li><a shape="rect" href="bean-binding.html">Bean Binding</a></li><li><a shape="rect" href="bean-integration.html">Bean Integration</a></li></ul></div>
+</div></div><p>Which will lookup a bean from the <a shape="rect" href="registry.html">Registry</a> with the id <code>foo</code> and invoke the <code>setCool</code> method on the created instance of the <code>MyPrefixBean</code> class.</p><div class="confluence-information-macro confluence-information-macro-tip conf-macro output-block" data-hasbody="true" data-macro-name="tip"><p class="title">See more</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>See more details at the <a shape="rect" href="bean.html">Bean</a> component as the <strong>class</strong> component works in much the same way.</p></div></div><p></p><h3 id="Class-SeeAlso">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="bean.html">Bean</a></li><li><a shape="rect" href="bean-binding.html">Bean Binding</a></li><li><a shape="rect" href="bean-integration.html">Bean Integration</a></li></ul></div>
         </td>
         <td valign="top">
           <div class="navigation">

Modified: websites/production/camel/content/cmis.html
==============================================================================
--- websites/production/camel/content/cmis.html (original)
+++ websites/production/camel/content/cmis.html Wed Oct 17 09:28:08 2018
@@ -136,8 +136,8 @@ If <code>CamelCMISRetrieveContent</code>
 
 <p>where <code>${camel-version</code>} must be replaced by the actual version of Camel (2.11 or higher).</p>
 
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h3 id="CMIS-SeeAlso">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></div></div>
+<h3 id="CMIS-SeeAlso">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></div>
         </td>
         <td valign="top">
           <div class="navigation">

Modified: websites/production/camel/content/cometd.html
==============================================================================
--- websites/production/camel/content/cometd.html (original)
+++ websites/production/camel/content/cometd.html Wed Oct 17 09:28:08 2018
@@ -148,8 +148,8 @@ commetdComponent.setSslContextParameters
 ...
   &lt;to uri="cometds://127.0.0.1:443/service/test?baseResource=file:./target/test-classes/webapp&amp;timeout=240000&amp;interval=0&amp;maxInterval=30000&amp;multiFrameInterval=1500&amp;jsonCommented=true&amp;logLevel=2"/&gt;...
 </pre>
-</div></div><p></p><div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h3 id="Cometd-SeeAlso">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></div></div>
+</div></div><p></p><h3 id="Cometd-SeeAlso">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></div>
         </td>
         <td valign="top">
           <div class="navigation">

Modified: websites/production/camel/content/competing-consumers.html
==============================================================================
--- websites/production/camel/content/competing-consumers.html (original)
+++ websites/production/camel/content/competing-consumers.html Wed Oct 17 09:28:08 2018
@@ -123,9 +123,9 @@ from("jms:MyQueue?concurrentConsumers=5"
 
 <p>Or just run multiple JVMs of any <a shape="rect" href="activemq.html">ActiveMQ</a> or <a shape="rect" href="jms.html">JMS</a> route <img class="emoticon emoticon-smile" src="https://cwiki.apache.org/confluence/s/en_GB/7701/d7b403a44466e5e8970db7530201039d865e79e1/_/images/icons/emoticons/smile.svg" data-emoticon-name="smile" alt="(smile)"></p>
 
-<div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h4 id="CompetingConsumers-UsingThisPattern">Using This Pattern</h4>
+<h4 id="CompetingConsumers-UsingThisPattern">Using This Pattern</h4>
 
-<p>If you would like to use this EIP Pattern then please read the <a shape="rect" href="getting-started.html">Getting Started</a>, you may also find the <a shape="rect" href="architecture.html">Architecture</a> useful particularly the description of <a shape="rect" href="endpoint.html">Endpoint</a> and <a shape="rect" href="uris.html">URIs</a>. Then you could try out some of the <a shape="rect" href="examples.html">Examples</a> first before trying this pattern out.</p></div></div>
+<p>If you would like to use this EIP Pattern then please read the <a shape="rect" href="getting-started.html">Getting Started</a>, you may also find the <a shape="rect" href="architecture.html">Architecture</a> useful particularly the description of <a shape="rect" href="endpoint.html">Endpoint</a> and <a shape="rect" href="uris.html">URIs</a>. Then you could try out some of the <a shape="rect" href="examples.html">Examples</a> first before trying this pattern out.</p></div>
         </td>
         <td valign="top">
           <div class="navigation">

Modified: websites/production/camel/content/component.html
==============================================================================
--- websites/production/camel/content/component.html (original)
+++ websites/production/camel/content/component.html Wed Oct 17 09:28:08 2018
@@ -89,7 +89,7 @@
 	<tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 id="Component-Components">Components</h2><p><span class="conf-macro output-inline" data-hasbody="true" data-macro-name="excerpt">A <a shape="rect" href="component.html">Component</a> is essentially a factory of <a shape="rect" href="endpoint.html">Endpoint</a> instances.</span></p><p></p><p>You can explicitly configure <a shape="rect" href="component.html">Component</a> instances and add them to a <a shape="rect" href="camelcontext.html">CamelContext</a> in an IoC container like Spring or Guice, or they can be auto-discovered using <a shape="rect" href="uris.html">URIs</a>.</p><div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><h3 id="Component-ComponentsIncluded">Components Included</h3><p>Camel includes the following <a shape="rect" href="component.html">Component</a> implementations via <a shape="rect" href="uris.html">URIs</a>.</p><div class="confluence-information-macro confluence-information-macro-tip c
 onf-macro output-block" data-hasbody="true" data-macro-name="tip"><p class="title">important</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>Make sure to read <a shape="rect" href="how-do-i-configure-endpoints.html">How Do I Configure Endpoints?</a> to learn more about configuring endpoints. For example how to refer to beans in the <a shape="rect" href="registry.html">Registry</a> or how to use raw values for password options, and using <a shape="rect" href="using-propertyplaceholder.html">property placeholders</a> etc.</p></div></div><p></p><div class="conf-macro output-block" data-hasbody="false" data-macro-name="include"><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Component / ArtifactId / URI</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan
 ="1" class="confluenceTd"><p><a shape="rect" href="ahc.html">AHC</a> /&#160;<code>camel-ahc</code></p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<div class="wiki-content maincontent"><h2 id="Component-Components">Components</h2><p><span class="conf-macro output-inline" data-hasbody="true" data-macro-name="excerpt">A <a shape="rect" href="component.html">Component</a> is essentially a factory of <a shape="rect" href="endpoint.html">Endpoint</a> instances.</span></p><p></p><p>You can explicitly configure <a shape="rect" href="component.html">Component</a> instances and add them to a <a shape="rect" href="camelcontext.html">CamelContext</a> in an IoC container like Spring or Guice, or they can be auto-discovered using <a shape="rect" href="uris.html">URIs</a>.</p><h3 id="Component-ComponentsIncluded">Components Included</h3><p>Camel includes the following <a shape="rect" href="component.html">Component</a> implementations via <a shape="rect" href="uris.html">URIs</a>.</p><div class="confluence-information-macro confluence-information-macro-tip conf-macro output-block" data-hasbody="true" data-macro-name="tip"><p class="title">i
 mportant</p><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>Make sure to read <a shape="rect" href="how-do-i-configure-endpoints.html">How Do I Configure Endpoints?</a> to learn more about configuring endpoints. For example how to refer to beans in the <a shape="rect" href="registry.html">Registry</a> or how to use raw values for password options, and using <a shape="rect" href="using-propertyplaceholder.html">property placeholders</a> etc.</p></div></div><p></p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Component / ArtifactId / URI</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="ahc.html">AHC</a> /&#160;<code>camel-ahc</code></p><div class="code panel pdl conf-macro output-block" data-hasbody="
 true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Default" data-theme="Default">ahc:http[s]://hostName[:port][/resourceUri][?options]
 </pre>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To call external HTTP services using <a shape="rect" class="external-link" href="https://github.com/AsyncHttpClient/async-http-client" rel="nofollow">Async Http Client</a></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="ahc-ws.html">AHC-WS</a> <span> /&#160;<code>camel-ahc-ws</code></span></p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -686,7 +686,7 @@ flink:datastream[?options]</pre>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Allows you to interact with the <a shape="rect" class="external-link" href="http://yammer.com" rel="nofollow">Yammer</a> enterprise social network</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="zookeeper.html">Zookeeper</a> /&#160;<code>camel-zookeeper</code></p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Default" data-theme="Default">zookeeper://zookeeperServer[:port][/path][?options]
 </pre>
-</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Working with <a shape="rect" class="external-link" href="http://hadoop.apache.org/zookeeper/">ZooKeeper</a> cluster(s)</p></td></tr></tbody></table></div><p>&#160;</p><div><span style="white-space: pre-wrap;"> <br clear="none"> </span></div><div><span style="white-space: pre-wrap;"> <br clear="none"> </span></div><div><span style="white-space: pre-wrap;"> <br clear="none"> <br clear="none"> </span></div></div><p></p><h3 id="Component-ExternalComponents">External Components</h3><p>The following components are not part of the standard Apache Camel distribution and are available under a variety of licenses but can be used to extend Camel's functionality.</p><p></p><div class="table-wrap conf-macro output-block" data-hasbody="false" data-macro-name="include"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Component / ArtifactId / URI</p></th><th colspan="1" rowspan="1" clas
 s="confluenceTh"><p>License</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="activemq.html">ActiveMQ</a> /&#160;<code>activemq-camel</code></p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Working with <a shape="rect" class="external-link" href="http://hadoop.apache.org/zookeeper/">ZooKeeper</a> cluster(s)</p></td></tr></tbody></table></div><p>&#160;</p><div><span style="white-space: pre-wrap;"> <br clear="none"> </span></div><div><span style="white-space: pre-wrap;"> <br clear="none"> </span></div><div><span style="white-space: pre-wrap;"> <br clear="none"> <br clear="none"> </span></div><h3 id="Component-ExternalComponents">External Components</h3><p>The following components are not part of the standard Apache Camel distribution and are available under a variety of licenses but can be used to extend Camel's functionality.</p><p></p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Component / ArtifactId / URI</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>License</p></th><th colspan="1" rowspan="1" class="confluenceTh"
 ><p>Description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="activemq.html">ActiveMQ</a> /&#160;<code>activemq-camel</code></p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; gutter: false; theme: Default" data-theme="Default">activemq:[queue|topic:]destinationName</pre>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Apache</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For JMS Messaging with <a shape="rect" class="external-link" href="http://activemq.apache.org/" title="The most popular and powerful open source message broker">Apache ActiveMQ.</a></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" class="external-link" href="http://activemq.apache.org/broker-camel-component.html">ActiveMQ Broker</a> /&#160;<code>activemq-camel</code></p><div class="code panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; gutter: false; theme: Default" data-theme="Default">broker:[queue|topic:]destinationName</pre>
@@ -767,7 +767,7 @@ flink:datastream[?options]</pre>
 </div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Apache</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Camel <a shape="rect" class="external-link" href="http://webcam-capture.sarxos.pl/" rel="nofollow">Webcam</a> component can be used to capture still images and detect motion.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" href="zeromq.html">ZeroMQ</a> /&#160;<code>camel-zeromq</code> / <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 conf-macro output-block" data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Default" data-theme="Default">zeromq:(tcp|ipc)://hostname:port
 </pre>
-</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>LGPL</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The ZeroMQ component allows you to consumer or produce messages using&#160;<a shape="rect" class="external-link" href="http://zeromq.org" rel="nofollow">ZeroMQ</a>.</p></td></tr></tbody></table></div><p></p><h3 id="Component-SeeAlso">See Also</h3><ul><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="uris.html">URIs</a></li><li><a shape="rect" href="writing-components.html">Writing Components</a></li><li><a shape="rect" href="how-do-i-add-a-component.html">How do I add a component</a></li><li><a shape="rect" href="how-do-i-configure-endpoints.html">How Do I Configure Endpoints?</a></li><li><a shape="rect" href="using-propertyplaceholder.html">Using PropertyPlaceholder</a></li></ul></div></div>
+</div></div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>LGPL</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The ZeroMQ component allows you to consumer or produce messages using&#160;<a shape="rect" class="external-link" href="http://zeromq.org" rel="nofollow">ZeroMQ</a>.</p></td></tr></tbody></table></div><h3 id="Component-SeeAlso">See Also</h3><ul><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="uris.html">URIs</a></li><li><a shape="rect" href="writing-components.html">Writing Components</a></li><li><a shape="rect" href="how-do-i-add-a-component.html">How do I add a component</a></li><li><a shape="rect" href="how-do-i-configure-endpoints.html">How Do I Configure Endpoints?</a></li><li><a shape="rect" href="using-propertyplaceholder.html">Using PropertyPlaceholder</a></li></ul></div>
         </td>
         <td valign="top">
           <div class="navigation">