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 2016/11/15 23:19:21 UTC

svn commit: r1001168 - in /websites/production/camel/content: book-in-one-page.html book-tutorials.html cache/main.pageCache tutorial-jmsremoting.html

Author: buildbot
Date: Tue Nov 15 23:19:21 2016
New Revision: 1001168

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/book-in-one-page.html
    websites/production/camel/content/book-tutorials.html
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/tutorial-jmsremoting.html

Modified: websites/production/camel/content/book-in-one-page.html
==============================================================================
--- websites/production/camel/content/book-in-one-page.html (original)
+++ websites/production/camel/content/book-in-one-page.html Tue Nov 15 23:19:21 2016
@@ -3966,11 +3966,11 @@ The tutorial has been designed in two pa
 While not actual tutorials you might find working through the source of the various <a shape="rect" href="examples.html">Examples</a> useful.</li></ul>
 
 <h2 id="BookInOnePage-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</h2><p>&#160;</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Thanks</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>This tutorial was kindly donated to Apache Camel by Martin Gilday.</p></div></div><h2 id="BookInOnePage-Preface">Preface</h2><p>This tutorial aims to guide the reader through the stages of creating a project which uses Camel to facilitate the routing of messages from a JMS queue to a <a shape="rect" class="external-link" href="http://www.springramework.org" rel="nofollow">Spring</a> service. The route works in a synchronous fashion returning a response to the client.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1479248269946 {padding: 0px;}
-div.rbtoc1479248269946 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1479248269946 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1479251885457 {padding: 0px;}
+div.rbtoc1479251885457 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1479251885457 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1479248269946">
+/*]]>*/</style></p><div class="toc-macro rbtoc1479251885457">
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</a></li><li><a shape="rect" href="#BookInOnePage-Preface">Preface</a></li><li><a shape="rect" href="#BookInOnePage-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#BookInOnePage-Distribution">Distribution</a></li><li><a shape="rect" href="#BookInOnePage-About">About</a></li><li><a shape="rect" href="#BookInOnePage-CreatetheCamelProject">Create the Camel Project</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-UpdatethePOMwithDependencies">Update the POM with Dependencies</a></li></ul>
 </li><li><a shape="rect" href="#BookInOnePage-WritingtheServer">Writing the Server</a>
@@ -3978,10 +3978,10 @@ div.rbtoc1479248269946 li {margin-left:
 </li><li><a shape="rect" href="#BookInOnePage-WritingTheClients">Writing The Clients</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-ClientUsingTheProducerTemplate">Client Using The ProducerTemplate</a></li><li><a shape="rect" href="#BookInOnePage-ClientUsingSpringRemoting">Client Using Spring Remoting</a></li><li><a shape="rect" href="#BookInOnePage-ClientUsingMessageEndpointEIPPattern">Client Using Message Endpoint EIP Pattern</a></li><li><a shape="rect" href="#BookInOnePage-RuntheClients">Run the Clients</a></li></ul>
 </li><li><a shape="rect" href="#BookInOnePage-UsingtheCamelMavenPlugin">Using the Camel Maven Plugin</a></li><li><a shape="rect" href="#BookInOnePage-UsingCamelJMX">Using Camel JMX</a></li><li><a shape="rect" href="#BookInOnePage-SeeAlso">See Also</a></li></ul>
-</div><h2 id="BookInOnePage-Prerequisites">Prerequisites</h2><p>This tutorial uses Maven to setup the Camel project and for dependencies for artifacts.</p><h2 id="BookInOnePage-Distribution">Distribution</h2><p>This sample is distributed with the Camel distribution as <code>examples/camel-example-spring-jms</code>.</p><h2 id="BookInOnePage-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 Channel</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 Camels 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 exchanges 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="confluence
 Td"><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="BookInOnePage-CreatetheCamelProject">Create the Camel Project</h2><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>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></div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div><h2 id="BookInOnePage-Prerequisites">Prerequisites</h2><p>This tutorial uses Maven to setup the Camel project and for dependencies for artifacts.</p><h2 id="BookInOnePage-Distribution">Distribution</h2><p>This sample is distributed with the Camel distribution as <code>examples/camel-example-spring-jms</code>.</p><h2 id="BookInOnePage-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 Channel</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="confluence
 Td"><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="BookInOnePage-CreatetheCamelProject">Create the Camel Project</h2><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>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></div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[mvn archetype:generate -DgroupId=org.example -DartifactId=CamelWithJmsAndSpring
 ]]></script>
-</div></div><h3 id="BookInOnePage-UpdatethePOMwithDependencies">Update the POM with Dependencies</h3><p>First we need to have dependencies for the core Camel jars, its spring, jms components and finally ActiveMQ as the message broker.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookInOnePage-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.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
 &lt;!-- required by both client and server --&gt;
 &lt;dependency&gt;
@@ -4013,7 +4013,7 @@ div.rbtoc1479248269946 li {margin-left:
   &lt;artifactId&gt;xbean-spring&lt;/artifactId&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h2 id="BookInOnePage-WritingtheServer">Writing the Server</h2><h3 id="BookInOnePage-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.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h2 id="BookInOnePage-WritingtheServer">Writing the Server</h2><h3 id="BookInOnePage-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.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
 public interface Multiplier {
 
@@ -4173,7 +4173,7 @@ public static void main(final String[] a
   serviceInterface=&quot;org.apache.camel.example.server.Multiplier&quot;
   serviceUrl=&quot;jms:queue:numbers&quot;/&gt;
 ]]></script>
-</div></div>The snippet above only illustrates the different and how Camel easily can setup and use Spring Remoting in one line configurations.<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. <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</code>. They are in completely independent contexts and have n
 o 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:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>The snippet above only illustrates the different and how Camel easily can setup and use Spring Remoting in one line configurations.<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</code>. They are in completely independent contexts a
 nd 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:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
 public static void main(final String[] args) {
     System.out.println(&quot;Notice this client requires that the CamelServer is already running!&quot;);
@@ -4246,7 +4246,7 @@ public static void main(final String[] a
 DefaultInstrumentationAgent    INFO  JMX connector thread started on service:jmx:rmi:///jndi/rmi://claus-acer:1099/jmxrmi/camel
 ...
 ]]></script>
-</div></div><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-in-one-page.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="38"></span></p><h2 id="BookInOnePage-SeeAlso.5">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="rect
 " class="external-link" href="http://aminsblog.wordpress.com/" rel="nofollow">Amin Abbaspour's Weblog</a></li></ul>
+</div></div><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-in-one-page.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="39"></span></p><h2 id="BookInOnePage-SeeAlso.5">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="rect
 " class="external-link" href="http://aminsblog.wordpress.com/" rel="nofollow">Amin Abbaspour's Weblog</a></li></ul>
 
 <h2 id="BookInOnePage-Tutorial-camel-example-reportincident">Tutorial - camel-example-reportincident</h2>
 
@@ -6085,11 +6085,11 @@ So we completed the last piece in the pi
 <p>This example has been removed from <strong>Camel 2.9</strong> onwards. Apache Axis 1.4 is a very old and unsupported framework. We encourage users to use <a shape="rect" href="cxf.html">CXF</a> instead of Axis.</p></div></div>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1479248270190 {padding: 0px;}
-div.rbtoc1479248270190 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1479248270190 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1479251885637 {padding: 0px;}
+div.rbtoc1479251885637 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1479251885637 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1479248270190">
+/*]]>*/</style><div class="toc-macro rbtoc1479251885637">
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-TutorialusingAxis1.4withApacheCamel">Tutorial using Axis 1.4 with Apache Camel</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-Prerequisites">Prerequisites</a></li><li><a shape="rect" href="#BookInOnePage-Distribution">Distribution</a></li><li><a shape="rect" href="#BookInOnePage-Introduction">Introduction</a></li><li><a shape="rect" href="#BookInOnePage-SettinguptheprojecttorunAxis">Setting up the project to run Axis</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-Maven2">Maven 2</a></li><li><a shape="rect" href="#BookInOnePage-wsdl">wsdl</a></li><li><a shape="rect" href="#BookInOnePage-ConfiguringAxis">Configuring Axis</a></li><li><a shape="rect" href="#BookInOnePage-RunningtheExample">Running the Example</a></li></ul>
@@ -14323,8 +14323,8 @@ cometds://localhost:8443/service/mychann
  <div class="confluence-information-macro-body">
   <p>When using CXF in streaming modes (see DataFormat option), then also read about <a shape="rect" href="stream-caching.html">Stream caching</a>.</p>
  </div>
-</div><p>The <strong>cxf:</strong> component provides integration with <a shape="rect" href="http://cxf.apache.org">Apache CXF</a> for connecting to JAX-WS services hosted in CXF.</p><p><style type="text/css">/**/ div.rbtoc1479248271878 {padding: 0px;} div.rbtoc1479248271878 ul {list-style: disc;margin-left: 0px;} div.rbtoc1479248271878 li {margin-left: 0px;padding-left: 0px;} /**/</style>
- </p><div class="toc-macro rbtoc1479248271878"> 
+</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">/**/ div.rbtoc1479251887252 {padding: 0px;} div.rbtoc1479251887252 ul {list-style: disc;margin-left: 0px;} div.rbtoc1479251887252 li {margin-left: 0px;padding-left: 0px;} /**/</style>
+ </p><div class="toc-macro rbtoc1479251887252"> 
   <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-CXFComponent">CXF Component</a> 
     <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-URIformat">URI format</a></li><li><a shape="rect" href="#BookInOnePage-Options">Options</a> 
       <ul class="toc-indentation"><li><a shape="rect" href="#BookInOnePage-Thedescriptionsofthedataformats">The descriptions of the dataformats</a> 

Modified: websites/production/camel/content/book-tutorials.html
==============================================================================
--- websites/production/camel/content/book-tutorials.html (original)
+++ websites/production/camel/content/book-tutorials.html Tue Nov 15 23:19:21 2016
@@ -143,11 +143,11 @@ The tutorial has been designed in two pa
 While not actual tutorials you might find working through the source of the various <a shape="rect" href="examples.html">Examples</a> useful.</li></ul>
 
 <h2 id="BookTutorials-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</h2><p>&#160;</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Thanks</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>This tutorial was kindly donated to Apache Camel by Martin Gilday.</p></div></div><h2 id="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><style type="text/css">/*<![CDATA[*/
-div.rbtoc1478859643739 {padding: 0px;}
-div.rbtoc1478859643739 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1478859643739 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1479251882564 {padding: 0px;}
+div.rbtoc1479251882564 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1479251882564 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1478859643739">
+/*]]>*/</style></p><div class="toc-macro rbtoc1479251882564">
 <ul class="toc-indentation"><li><a shape="rect" href="#BookTutorials-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</a></li><li><a shape="rect" href="#BookTutorials-Preface">Preface</a></li><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-About">About</a></li><li><a shape="rect" href="#BookTutorials-CreatetheCamelProject">Create the Camel Project</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookTutorials-UpdatethePOMwithDependencies">Update the POM with Dependencies</a></li></ul>
 </li><li><a shape="rect" href="#BookTutorials-WritingtheServer">Writing the Server</a>
@@ -155,10 +155,10 @@ div.rbtoc1478859643739 li {margin-left:
 </li><li><a shape="rect" href="#BookTutorials-WritingTheClients">Writing The Clients</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#BookTutorials-ClientUsingTheProducerTemplate">Client Using The ProducerTemplate</a></li><li><a shape="rect" href="#BookTutorials-ClientUsingSpringRemoting">Client Using Spring Remoting</a></li><li><a shape="rect" href="#BookTutorials-ClientUsingMessageEndpointEIPPattern">Client Using Message Endpoint EIP Pattern</a></li><li><a shape="rect" href="#BookTutorials-RuntheClients">Run the Clients</a></li></ul>
 </li><li><a shape="rect" href="#BookTutorials-UsingtheCamelMavenPlugin">Using the Camel Maven Plugin</a></li><li><a shape="rect" href="#BookTutorials-UsingCamelJMX">Using Camel JMX</a></li><li><a shape="rect" href="#BookTutorials-SeeAlso">See Also</a></li></ul>
-</div><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-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 Channel</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 Camels 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 exchanges 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="confluence
 Td"><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><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>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></div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div><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-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 Channel</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="confluence
 Td"><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><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>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></div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[mvn archetype:generate -DgroupId=org.example -DartifactId=CamelWithJmsAndSpring
 ]]></script>
-</div></div><h3 id="BookTutorials-UpdatethePOMwithDependencies">Update the POM with Dependencies</h3><p>First we need to have dependencies for the core Camel jars, its spring, jms components and finally ActiveMQ as the message broker.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><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.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
 &lt;!-- required by both client and server --&gt;
 &lt;dependency&gt;
@@ -190,7 +190,7 @@ div.rbtoc1478859643739 li {margin-left:
   &lt;artifactId&gt;xbean-spring&lt;/artifactId&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><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.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><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.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
 public interface Multiplier {
 
@@ -350,7 +350,7 @@ public static void main(final String[] a
   serviceInterface=&quot;org.apache.camel.example.server.Multiplier&quot;
   serviceUrl=&quot;jms:queue:numbers&quot;/&gt;
 ]]></script>
-</div></div>The snippet above only illustrates the different and how Camel easily can setup and use Spring Remoting in one line configurations.<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. <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</code>. They are in completely independent contexts and have n
 o 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:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>The snippet above only illustrates the different and how Camel easily can setup and use Spring Remoting in one line configurations.<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</code>. They are in completely independent contexts a
 nd 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:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
 public static void main(final String[] args) {
     System.out.println(&quot;Notice this client requires that the CamelServer is already running!&quot;);
@@ -423,7 +423,7 @@ public static void main(final String[] a
 DefaultInstrumentationAgent    INFO  JMX connector thread started on service:jmx:rmi:///jndi/rmi://claus-acer:1099/jmxrmi/camel
 ...
 ]]></script>
-</div></div><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="38"></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="rect" cl
 ass="external-link" href="http://aminsblog.wordpress.com/" rel="nofollow">Amin Abbaspour's Weblog</a></li></ul>
+</div></div><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="39"></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="rect" cl
 ass="external-link" href="http://aminsblog.wordpress.com/" rel="nofollow">Amin Abbaspour's Weblog</a></li></ul>
 
 <h2 id="BookTutorials-Tutorial-camel-example-reportincident">Tutorial - camel-example-reportincident</h2>
 
@@ -2262,11 +2262,11 @@ So we completed the last piece in the pi
 <p>This example has been removed from <strong>Camel 2.9</strong> onwards. Apache Axis 1.4 is a very old and unsupported framework. We encourage users to use <a shape="rect" href="cxf.html">CXF</a> instead of Axis.</p></div></div>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1478859643907 {padding: 0px;}
-div.rbtoc1478859643907 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1478859643907 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1479251882737 {padding: 0px;}
+div.rbtoc1479251882737 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1479251882737 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1478859643907">
+/*]]>*/</style><div class="toc-macro rbtoc1479251882737">
 <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>

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

Modified: websites/production/camel/content/tutorial-jmsremoting.html
==============================================================================
--- websites/production/camel/content/tutorial-jmsremoting.html (original)
+++ websites/production/camel/content/tutorial-jmsremoting.html Tue Nov 15 23:19:21 2016
@@ -86,10 +86,10 @@
 	<tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 id="Tutorial-JmsRemoting-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</h2><p>&#160;</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Thanks</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>This tutorial was kindly donated to Apache Camel by Martin Gilday.</p></div></div><h2 id="Tutorial-JmsRemoting-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><div class="toc-macro client-side-toc-macro" data-headerelements="H1,H2,H3,H4,H5,H6,H7"></div><h2
  id="Tutorial-JmsRemoting-Prerequisites">Prerequisites</h2><p>This tutorial uses Maven to setup the Camel project and for dependencies for artifacts.</p><h2 id="Tutorial-JmsRemoting-Distribution">Distribution</h2><p>This sample is distributed with the Camel distribution as <code>examples/camel-example-spring-jms</code>.</p><h2 id="Tutorial-JmsRemoting-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="confluenceTa
 ble"><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 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 servi
 ce 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 Camels 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 exchanges 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="confluen
 ceTd"><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="Tutorial-JmsRemoting-CreatetheCamelProject">Create the Camel Project</h2><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>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></div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelConten
 t pdl">
+<div class="wiki-content maincontent"><h2 id="Tutorial-JmsRemoting-TutorialonSpringRemotingwithJMS">Tutorial on Spring Remoting with JMS</h2><p>&#160;</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Thanks</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>This tutorial was kindly donated to Apache Camel by Martin Gilday.</p></div></div><h2 id="Tutorial-JmsRemoting-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><div class="toc-macro client-side-toc-macro" data-headerelements="H1,H2,H3,H4,H5,H6,H7"></div><h2
  id="Tutorial-JmsRemoting-Prerequisites">Prerequisites</h2><p>This tutorial uses Maven to setup the Camel project and for dependencies for artifacts.</p><h2 id="Tutorial-JmsRemoting-Distribution">Distribution</h2><p>This sample is distributed with the Camel distribution as <code>examples/camel-example-spring-jms</code>.</p><h2 id="Tutorial-JmsRemoting-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="confluenceTa
 ble"><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 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 servi
 ce 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="confluen
 ceTd"><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="Tutorial-JmsRemoting-CreatetheCamelProject">Create the Camel Project</h2><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>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></div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelConten
 t pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[mvn archetype:generate -DgroupId=org.example -DartifactId=CamelWithJmsAndSpring
 ]]></script>
-</div></div><h3 id="Tutorial-JmsRemoting-UpdatethePOMwithDependencies">Update the POM with Dependencies</h3><p>First we need to have dependencies for the core Camel jars, its spring, jms components and finally ActiveMQ as the message broker.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="Tutorial-JmsRemoting-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.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
 &lt;!-- required by both client and server --&gt;
 &lt;dependency&gt;
@@ -121,7 +121,7 @@
   &lt;artifactId&gt;xbean-spring&lt;/artifactId&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><h2 id="Tutorial-JmsRemoting-WritingtheServer">Writing the Server</h2><h3 id="Tutorial-JmsRemoting-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.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h2 id="Tutorial-JmsRemoting-WritingtheServer">Writing the Server</h2><h3 id="Tutorial-JmsRemoting-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.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
 public interface Multiplier {
 
@@ -281,7 +281,7 @@ public static void main(final String[] a
   serviceInterface=&quot;org.apache.camel.example.server.Multiplier&quot;
   serviceUrl=&quot;jms:queue:numbers&quot;/&gt;
 ]]></script>
-</div></div>The snippet above only illustrates the different and how Camel easily can setup and use Spring Remoting in one line configurations.<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. <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</code>. They are in completely independent contexts and have n
 o 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:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div>The snippet above only illustrates the different and how Camel easily can setup and use Spring Remoting in one line configurations.<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</code>. They are in completely independent contexts a
 nd 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:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
 public static void main(final String[] args) {
     System.out.println(&quot;Notice this client requires that the CamelServer is already running!&quot;);
@@ -354,7 +354,7 @@ public static void main(final String[] a
 DefaultInstrumentationAgent    INFO  JMX connector thread started on service:jmx:rmi:///jndi/rmi://claus-acer:1099/jmxrmi/camel
 ...
 ]]></script>
-</div></div><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="tutorial-jmsremoting.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="38"></span></p><h2 id="Tutorial-JmsRemoting-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 sh
 ape="rect" class="external-link" href="http://aminsblog.wordpress.com/" rel="nofollow">Amin Abbaspour's Weblog</a></li></ul></div>
+</div></div><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="tutorial-jmsremoting.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="39"></span></p><h2 id="Tutorial-JmsRemoting-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 sh
 ape="rect" class="external-link" href="http://aminsblog.wordpress.com/" rel="nofollow">Amin Abbaspour's Weblog</a></li></ul></div>
         </td>
         <td valign="top">
           <div class="navigation">