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 Mar  7 15:20:59 
2017
@@ -87,88 +87,198 @@
        <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><div class="titlepage" 
id="titlepage"><h1 id="BookInOnePage-ApacheCamel">Apache Camel</h1><h2 
id="BookInOnePage-UserGuide">User Guide</h2><h3 id="replaceme">Version 
2.15.0</h3><p><br clear="none"> Copyright 2007-2016, Apache Software 
Foundation</p></div>
-<div class="toc" id="toc"><h1 id="BookInOnePage-TableofContents">Table of 
Contents</h1><p> 
- </p><ul class="toc"><li class="frontmatter"><a shape="rect" href="#toc">Table 
of Contents</a></li><li class="chapter"><a shape="rect" 
href="#chapter-introduction">Introduction</a></li><li class="chapter"><a 
shape="rect" href="#chapter-quickstart">Quickstart</a></li><li 
class="chapter"><a shape="rect" href="#chapter-getting-started">Getting 
Started</a></li><li class="chapter"><a shape="rect" 
href="#chapter-architecture">Architecture</a></li><li class="chapter"><a 
shape="rect" href="#chapter-enterprise-integration-patterns">Enterprise 
Integration Patterns</a></li><li class="chapter"><a shape="rect" 
href="#chapter-cook-book">Cook Book</a></li><li class="chapter"><a shape="rect" 
href="#chapter-tutorials">Tutorials</a></li><li class="chapter"><a shape="rect" 
href="#chapter-languages-supported-Appendix">Language Appendix</a></li><li 
class="chapter"><a shape="rect" href="#chapter-dataformat-Appendix">DataFormat 
Appendix</a></li><li class="chapter"><a shape="rect" href="#chapter-pattern-ap
 pendix">Pattern Appendix</a></li><li class="chapter"><a shape="rect" 
href="#chapter-component-appendix">Component Appendix</a></li><li 
class="endmatter"><a shape="rect" href="#index">Index</a></li></ul> </div>
-<div class="chapter page-reset" id="chapter-introduction"><h1 
id="BookInOnePage-Introduction">Introduction</h1><a shape="rect" 
href="enterprise-integration-patterns.html">Enterprise Integration 
Patterns</a><p>Camel empowers you to define routing and mediation rules in a 
variety of domain-specific languages, including a Java-based <a shape="rect" 
href="dsl.html">Fluent API</a>, <a shape="rect" href="spring.html">Spring</a> 
or <a shape="rect" href="using-osgi-blueprint-with-camel.html">Blueprint</a> <a 
shape="rect" href="xml-configuration.html">XML Configuration</a> files, and a 
<a shape="rect" href="scala-dsl.html">Scala DSL</a>. This means you get smart 
completion of routing rules in your IDE, whether in a Java, Scala or XML 
editor.</p><p>Apache Camel uses <a shape="rect" href="uris.html">URIs</a> to 
work directly with any kind of <a shape="rect" 
href="transport.html">Transport</a> or messaging model such as <a shape="rect" 
href="http.html">HTTP</a>, <a shape="rect" href="activemq.h
 tml">ActiveMQ</a>, <a shape="rect" href="jms.html">JMS</a>, <a shape="rect" 
href="jbi.html">JBI</a>, SCA, <a shape="rect" href="mina.html">MINA</a> or <a 
shape="rect" href="cxf.html">CXF</a>, as well as pluggable <a shape="rect" 
href="components.html">Components</a> and <a shape="rect" 
href="data-format.html">Data Format</a> options. Apache Camel is a small 
library with minimal <a shape="rect" 
href="what-are-the-dependencies.html">dependencies</a> for easy embedding in 
any Java application. Apache Camel lets you work with the same <a shape="rect" 
href="exchange.html">API</a> regardless which kind of <a shape="rect" 
href="transport.html">Transport</a> is used - so learn the API once and you can 
interact with all the <a shape="rect" href="components.html">Components</a> 
provided out-of-box.</p><p>Apache Camel provides support for <a shape="rect" 
href="bean-binding.html">Bean Binding</a> and seamless integration with popular 
frameworks such as <a shape="rect" href="cdi.html">CDI</a>,&#
 160;<a shape="rect" href="spring.html">Spring</a>, <a shape="rect" 
href="using-osgi-blueprint-with-camel.html">Blueprint</a> and <a shape="rect" 
href="guice.html">Guice</a>. Camel also has extensive support for <a 
shape="rect" href="testing.html">unit testing</a> your routes.</p><p>The 
following projects can leverage Apache Camel as a routing and mediation 
engine:</p><ul><li><a shape="rect" class="external-link" 
href="http://servicemix.apache.org/";>Apache ServiceMix</a> - a popular 
distributed open source ESB and JBI container</li><li><a shape="rect" 
class="external-link" href="http://activemq.apache.org/";>Apache ActiveMQ</a> - 
a mature, widely used open source message broker</li><li><a shape="rect" 
href="http://cxf.apache.org/";>Apache CXF</a> - a smart web services suite 
(JAX-WS and JAX-RS)</li><li><a shape="rect" class="external-link" 
href="http://karaf.apache.org/";>Apache Karaf</a> - a small OSGi based runtime 
in which applications can be deployed</li><li><a shape="rect" class="e
 xternal-link" href="http://mina.apache.org/";>Apache MINA</a> - a 
high-performance <a shape="rect" class="external-link" 
href="http://en.wikipedia.org/wiki/New_I/O"; rel="nofollow">NIO</a>-driven 
networking framework</li></ul><p>So don't get the hump - try Camel today! <img 
class="emoticon emoticon-smile" 
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/smile.png";
 data-emoticon-name="smile" alt="(smile)"></p><div 
class="confluence-information-macro confluence-information-macro-tip">
- <p class="title">Too many buzzwords - what exactly is Camel?</p>
- <span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span>
- <div class="confluence-information-macro-body">
-  <p>Okay, so the description above is technology focused. <br clear="none"> 
There's a great discussion about Camel at <a shape="rect" class="external-link" 
href="http://stackoverflow.com/questions/8845186/what-exactly-is-apache-camel"; 
rel="nofollow">Stack Overflow</a>. We suggest you view the post, read the 
comments, and browse the suggested links for more details.</p>
- </div>
-</div></div>
-<div class="chapter page-reset" id="chapter-quickstart"><h1 
id="BookInOnePage-Quickstart">Quickstart</h1><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><h2 id="BookInOnePage-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:
- </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"> CamelContext context = new DefaultCamelContext(); 
</script> 
-  </div>
- </div>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>:
- <div class="code panel pdl" style="border-width: 1px;">
-  <div class="codeContent panelContent pdl"> 
-   <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"> context.addRoutes(new RouteBuilder() { public void 
configure() { 
from(&amp;quot;test-jms:queue:test.queue&amp;quot;).to(&amp;quot;file://test&amp;quot;);
 } }); </script> 
-  </div>
- </div>or explicitly - as we do here when we add the JMS Component:
- <div class="code panel pdl" style="border-width: 1px;">
-  <div class="codeContent panelContent pdl"> 
-   <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"> ConnectionFactory connectionFactory = new 
ActiveMQConnectionFactory(&amp;quot;vm://localhost?broker.persistent=false&amp;quot;);
 // Note we can explicit name the component 
context.addComponent(&amp;quot;test-jms&amp;quot;, 
JmsComponent.jmsComponentAutoAcknowledge(connectionFactory)); </script> 
-  </div>
- </div>The above 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>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:
- </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"> ProducerTemplate template = 
context.createProducerTemplate(); </script> 
-  </div>
- </div>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<div class="code panel 
pdl" style="border-width: 1px;">
- <div class="codeContent panelContent pdl"> 
-  <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter">camelContext.start(); </script> 
- </div>
-</div><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:
- </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"> for (int i = 0; i &amp;lt; 10; i++) { 
template.sendBody(&amp;quot;test-jms:queue:test.queue&amp;quot;, &amp;quot;Test 
Message: &amp;quot; + i); } </script> 
-  </div>
- </div><h2 id="BookInOnePage-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">Route</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 co
 nfigured 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="BookInOnePage-Walkthroughanotherexample">Walk through 
another example</h2><h3 
id="BookInOnePage-Introduction.1">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/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/win
 k.png" data-emoticon-name="wink" alt="(wink)"></p><p>First we take a moment to 
look at the <a shape="rect" 
href="enterprise-integration-patterns.html">Enterprise Integration Patterns</a> 
- the base pattern catalog for integration scenarios. In particular we focus on 
<a shape="rect" href="pipes-and-filters.html">Pipes and filters</a> - a central 
pattern. This is used to route messages through a sequence of processing steps, 
each performing a specific function - much like the Java Servlet Filters. 
</p><h3 id="BookInOnePage-Pipesandfilters">Pipes and filters</h3><p>In this 
sample we want to process a message in a sequence of steps where each steps can 
perform their specific function. In our example we have a <a shape="rect" 
href="jms.html">JMS</a> queue for receiving new orders. When an order is 
received we need to process it in several steps:</p><ul 
class="alternate"><li>validate</li><li>register</li><li>send confirm 
email</li></ul><p>This can be created in a route like this:</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"> &amp;lt;route&amp;gt; &amp;lt;from 
uri=&amp;quot;jms:queue:order&amp;quot;/&amp;gt; &amp;lt;pipeline&amp;gt; 
&amp;lt;bean ref=&amp;quot;validateOrder&amp;quot;/&amp;gt; &amp;lt;bean 
ref=&amp;quot;registerOrder&amp;quot;/&amp;gt; &amp;lt;bean 
ref=&amp;quot;sendConfirmEmail&amp;quot;/&amp;gt; &amp;lt;/pipeline&amp;gt; 
&amp;lt;/route&amp;gt; </script> 
- </div>
-</div><div class="confluence-information-macro 
confluence-information-macro-tip">
- <p class="title">Pipeline is default</p>
- <span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span>
- <div class="confluence-information-macro-body"> 
-  <p>In the route above we specify <code>pipeline</code> but it can be omitted 
as its default, so you can write the route as:</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"> &amp;lt;route&amp;gt; &amp;lt;from 
uri=&amp;quot;jms:queue:order&amp;quot;/&amp;gt; &amp;lt;bean 
ref=&amp;quot;validateOrder&amp;quot;/&amp;gt; &amp;lt;bean 
ref=&amp;quot;registerOrder&amp;quot;/&amp;gt; &amp;lt;bean 
ref=&amp;quot;sendConfirmEmail&amp;quot;/&amp;gt; &amp;lt;/route&amp;gt; 
</script> 
-   </div>
-  </div> 
-  <p>This is commonly used not to state the pipeline. </p> 
-  <p>An example where the pipeline needs to be used, is when using a multicast 
and "one" of the endpoints to send to (as a logical group) is a pipeline of 
other endpoints. For example.</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"> &amp;lt;route&amp;gt; &amp;lt;from 
uri=&amp;quot;jms:queue:order&amp;quot;/&amp;gt; &amp;lt;multicast&amp;gt; 
&amp;lt;to uri=&amp;quot;log:org.company.log.Category&amp;quot;/&amp;gt; 
&amp;lt;pipeline&amp;gt; &amp;lt;bean 
ref=&amp;quot;validateOrder&amp;quot;/&amp;gt; &amp;lt;bean 
ref=&amp;quot;registerOrder&amp;quot;/&amp;gt; &amp;lt;bean 
ref=&amp;quot;sendConfirmEmail&amp;quot;/&amp;gt; &amp;lt;/pipeline&amp;gt; 
&amp;lt;/multicast&amp;gt; &amp;lt;/route&amp;gt; </script> 
-   </div>
-  </div> 
-  <p>The above sends the order (from <code>jms:queue:order</code>) to two 
locations at the same time, our log component, and to the "pipeline" of beans 
which goes one to the other. If you consider the opposite, sans the 
<code>&lt;pipeline&gt;</code></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"> &amp;lt;route&amp;gt; &amp;lt;from 
uri=&amp;quot;jms:queue:order&amp;quot;/&amp;gt; &amp;lt;multicast&amp;gt; 
&amp;lt;to uri=&amp;quot;log:org.company.log.Category&amp;quot;/&amp;gt; 
&amp;lt;bean ref=&amp;quot;validateOrder&amp;quot;/&amp;gt; &amp;lt;bean 
ref=&amp;quot;registerOrder&amp;quot;/&amp;gt; &amp;lt;bean 
ref=&amp;quot;sendConfirmEmail&amp;quot;/&amp;gt; &amp;lt;/multicast&amp;gt; 
&amp;lt;/route&amp;gt; </script> 
-   </div>
-  </div> 
-  <p>you would see that multicast would not "flow" the message from one bean 
to the next, but rather send the order to all 4 endpoints (1x log, 3x bean) in 
parallel, which is not (for this example) what we want. We need the message to 
flow to the validateOrder, then to the registerOrder, then the sendConfirmEmail 
so adding the pipeline, provides this facility. </p> 
- </div>
-</div><p>Where as the <code>bean ref</code> is a reference for a spring bean 
id, so we define our beans using regular Spring XML as:</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"> &amp;lt;bean id=&amp;quot;validateOrder&amp;quot; 
class=&amp;quot;com.mycompany.MyOrderValidator&amp;quot;/&amp;gt; </script> 
- </div>
-</div><p>Our validator bean is a plain POJO that has no dependencies to Camel 
what so ever. So you can implement this POJO as you like. Camel uses rather 
intelligent <a shape="rect" href="bean-binding.html">Bean Binding</a> to invoke 
your POJO with the payload of the received message. In this example we will 
<strong>not</strong> dig into this how this happens. You should return to this 
topic later when you got some hands on experience with Camel how it can easily 
bind routing using your existing POJO beans.</p><p>So what happens in the route 
above. Well when an order is received from the <a shape="rect" 
href="jms.html">JMS</a> queue the message is routed like <a shape="rect" 
href="pipes-and-filters.html">Pipes and filters</a>:<br clear="none"> 1. 
payload from the <a shape="rect" href="jms.html">JMS</a> is sent as input to 
the validateOrder bean<br clear="none"> 2. the output from validateOrder bean 
is sent as input to the registerOrder bean<br clear="none"> 3. the output from 
regist
 erOrder bean is sent as input to the sendConfirmEmail bean</p><h3 
id="BookInOnePage-UsingCamelComponents">Using Camel Components</h3><p>In the 
route lets imagine that the registration of the order has to be done by sending 
data to a TCP socket that could be a big mainframe. As Camel has many <a 
shape="rect" href="components.html">Components</a> we will use the camel-mina 
component that supports <a shape="rect" href="mina.html">TCP</a> connectivity. 
So we change the route to:</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"> &amp;lt;route&amp;gt; &amp;lt;from 
uri=&amp;quot;jms:queue:order&amp;quot;/&amp;gt; &amp;lt;bean 
ref=&amp;quot;validateOrder&amp;quot;/&amp;gt; &amp;lt;to 
uri=&amp;quot;mina:tcp://mainframeip:4444?textline=true&amp;quot;/&amp;gt; 
&amp;lt;bean ref=&amp;quot;sendConfirmEmail&amp;quot;/&amp;gt; 
&amp;lt;/route&amp;gt; </script> 
- </div>
-</div><p>What we now have in the route is a <code>to</code> type that can be 
used as a direct replacement for the bean type. The steps is now:<br 
clear="none"> 1. payload from the <a shape="rect" href="jms.html">JMS</a> is 
sent as input to the validateOrder bean<br clear="none"> 2. the output from 
validateOrder bean is sent as text to the mainframe using TCP<br clear="none"> 
3. the output from mainframe is sent back as input to the sendConfirmEmai 
bean</p><p>What to notice here is that the <code>to</code> is not the end of 
the route (the world <img class="emoticon emoticon-wink" 
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/wink.png";
 data-emoticon-name="wink" alt="(wink)">) in this example it's used in the 
middle of the <a shape="rect" href="pipes-and-filters.html">Pipes and 
filters</a>. In fact we can change the <code>bean</code> types to 
<code>to</code> as well:</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"> &amp;lt;route&amp;gt; &amp;lt;from 
uri=&amp;quot;jms:queue:order&amp;quot;/&amp;gt; &amp;lt;to 
uri=&amp;quot;bean:validateOrder&amp;quot;/&amp;gt; &amp;lt;to 
uri=&amp;quot;mina:tcp://mainframeip:4444?textline=true&amp;quot;/&amp;gt; 
&amp;lt;to uri=&amp;quot;bean:sendConfirmEmail&amp;quot;/&amp;gt; 
&amp;lt;/route&amp;gt; </script> 
- </div>
-</div><p>As the <code>to</code> is a generic type we must state in the uri 
scheme which component it is. So we must write <strong>bean:</strong> for the 
<a shape="rect" href="bean.html">Bean</a> component that we are using.</p><h3 
id="BookInOnePage-Conclusion">Conclusion</h3><p>This example was provided to 
demonstrate the Spring DSL (XML based) as opposed to the pure Java DSL from the 
<a shape="rect" href="walk-through-an-example.html">first example</a>. And as 
well to point about that the <code>to</code> doesn't have to be the last node 
in a route graph.</p><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="BookInOnePage-Seealso">See also</h3><ul class="alternate"><li><a 
shape="rect" href="examples.html">Examples</a></li><li><a shape="rect" 
href="tutorials.html">Tutor
 ials</a></li><li><a shape="rect" href="user-guide.html">User 
Guide</a></li></ul></div>
-<div class="chapter" id="chapter-getting-started"><h1 
id="BookInOnePage-GettingStartedwithApacheCamel">Getting Started with Apache 
Camel</h1></div>
+<div class="wiki-content maincontent"><div class="titlepage" 
id="titlepage"><h1 id="BookInOnePage-ApacheCamel">Apache Camel</h1><h2 
id="BookInOnePage-UserGuide">User Guide</h2><h3 id="replaceme">Version 
2.15.0</h3>
+<p><br clear="none"> Copyright 2007-2016, Apache Software Foundation</p></div>
+
+
+<div class="toc" id="toc">
+<h1 id="BookInOnePage-TableofContents">Table of Contents</h1>
+
+<p>
+</p><ul class="toc"><li class="frontmatter"><a shape="rect" href="#toc">Table 
of Contents</a></li><li class="chapter"><a shape="rect" 
href="#chapter-introduction">Introduction</a></li><li class="chapter"><a 
shape="rect" href="#chapter-quickstart">Quickstart</a></li><li 
class="chapter"><a shape="rect" href="#chapter-getting-started">Getting 
Started</a></li><li class="chapter"><a shape="rect" 
href="#chapter-architecture">Architecture</a></li><li class="chapter"><a 
shape="rect" href="#chapter-enterprise-integration-patterns">Enterprise 
Integration Patterns</a></li><li class="chapter"><a shape="rect" 
href="#chapter-cook-book">Cook Book</a></li><li class="chapter"><a shape="rect" 
href="#chapter-tutorials">Tutorials</a></li><li class="chapter"><a shape="rect" 
href="#chapter-languages-supported-Appendix">Language Appendix</a></li><li 
class="chapter"><a shape="rect" href="#chapter-dataformat-Appendix">DataFormat 
Appendix</a></li><li class="chapter"><a shape="rect" href="#chapter-pattern-app
 endix">Pattern Appendix</a></li><li class="chapter"><a shape="rect" 
href="#chapter-component-appendix">Component Appendix</a></li><li 
class="endmatter"><a shape="rect" href="#index">Index</a></li></ul>
+</div>
+
+
+<div class="chapter page-reset" id="chapter-introduction">
+<h1 id="BookInOnePage-Introduction">Introduction</h1>
+
+Apache Camel &#8482; is a versatile open-source integration framework based on 
known <a shape="rect" href="enterprise-integration-patterns.html">Enterprise 
Integration Patterns</a>.<p>Camel empowers you to define routing and mediation 
rules in a variety of domain-specific languages, including a Java-based <a 
shape="rect" href="dsl.html">Fluent API</a>, <a shape="rect" 
href="spring.html">Spring</a> or <a shape="rect" 
href="using-osgi-blueprint-with-camel.html">Blueprint</a> <a shape="rect" 
href="xml-configuration.html">XML Configuration</a> files, and a <a 
shape="rect" href="scala-dsl.html">Scala DSL</a>. This means you get smart 
completion of routing rules in your IDE, whether in a Java, Scala or XML 
editor.</p><p>Apache Camel uses <a shape="rect" href="uris.html">URIs</a> to 
work directly with any kind of <a shape="rect" 
href="transport.html">Transport</a> or messaging model such as <a shape="rect" 
href="http.html">HTTP</a>, <a shape="rect" href="activemq.html">ActiveMQ</a>, 
<a sha
 pe="rect" href="jms.html">JMS</a>, <a shape="rect" href="jbi.html">JBI</a>, 
SCA, <a shape="rect" href="mina.html">MINA</a> or <a shape="rect" 
href="cxf.html">CXF</a>, as well as pluggable <a shape="rect" 
href="components.html">Components</a> and <a shape="rect" 
href="data-format.html">Data Format</a> options. Apache Camel is a small 
library with minimal <a shape="rect" 
href="what-are-the-dependencies.html">dependencies</a> for easy embedding in 
any Java application. Apache Camel lets you work with the same <a shape="rect" 
href="exchange.html">API</a> regardless which kind of <a shape="rect" 
href="transport.html">Transport</a> is used - so learn the API once and you can 
interact with all the <a shape="rect" href="components.html">Components</a> 
provided out-of-box.</p><p>Apache Camel provides support for <a shape="rect" 
href="bean-binding.html">Bean Binding</a> and seamless integration with popular 
frameworks such as <a shape="rect" href="cdi.html">CDI</a>,&#160;<a 
shape="rect" href=
 "spring.html">Spring</a>, <a shape="rect" 
href="using-osgi-blueprint-with-camel.html">Blueprint</a> and <a shape="rect" 
href="guice.html">Guice</a>. Camel also has extensive support for <a 
shape="rect" href="testing.html">unit testing</a> your routes.</p><p>The 
following projects can leverage Apache Camel as a routing and mediation 
engine:</p><ul><li><a shape="rect" class="external-link" 
href="http://servicemix.apache.org/";>Apache ServiceMix</a> - a popular 
distributed open source ESB and JBI container</li><li><a shape="rect" 
class="external-link" href="http://activemq.apache.org/";>Apache ActiveMQ</a> - 
a mature, widely used open source message broker</li><li><a shape="rect" 
href="http://cxf.apache.org/";>Apache CXF</a> - a smart web services suite 
(JAX-WS and JAX-RS)</li><li><a shape="rect" class="external-link" 
href="http://karaf.apache.org/";>Apache Karaf</a> - a small OSGi based runtime 
in which applications can be deployed</li><li><a shape="rect" 
class="external-link" href="http:
 //mina.apache.org/">Apache MINA</a> - a high-performance <a shape="rect" 
class="external-link" href="http://en.wikipedia.org/wiki/New_I/O"; 
rel="nofollow">NIO</a>-driven networking framework</li></ul><p>So don't get the 
hump - try Camel today! <img class="emoticon emoticon-smile" 
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/smile.png";
 data-emoticon-name="smile" alt="(smile)"></p><div 
class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Too many buzzwords - what exactly is Camel?</p><span 
class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Okay, so the description above is 
technology focused. <br clear="none"> There's a great discussion about Camel at 
<a shape="rect" class="external-link" 
href="http://stackoverflow.com/questions/8845186/what-exactly-is-apache-camel"; 
rel="nofollow">Stac
 k Overflow</a>. We suggest you view the post, read the comments, and browse 
the suggested links for more details.</p></div></div></div>
+
+
+<div class="chapter page-reset" id="chapter-quickstart">
+<h1 id="BookInOnePage-Quickstart">Quickstart</h1>
+
+<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>
+
+<h2 id="BookInOnePage-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:</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[
+CamelContext context = new DefaultCamelContext();
+]]></script>
+</div></div>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>:<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[
+context.addRoutes(new RouteBuilder() {
+    public void configure() {
+        
from(&quot;test-jms:queue:test.queue&quot;).to(&quot;file://test&quot;);
+    }
+});
+]]></script>
+</div></div>or explicitly - as we do here when we add the JMS Component:<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[
+ConnectionFactory connectionFactory = new 
ActiveMQConnectionFactory(&quot;vm://localhost?broker.persistent=false&quot;);
+// Note we can explicit name the component
+context.addComponent(&quot;test-jms&quot;, 
JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
+]]></script>
+</div></div>The above 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>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:</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[
+ProducerTemplate template = context.createProducerTemplate();
+]]></script>
+</div></div>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<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[camelContext.start();
+]]></script>
+</div></div><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:</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[
+for (int i = 0; i &lt; 10; i++) {
+    template.sendBody(&quot;test-jms:queue:test.queue&quot;, &quot;Test 
Message: &quot; + i);
+}
+]]></script>
+</div></div><h2 id="BookInOnePage-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">Route</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="BookInOnePage-Walkthroughanotherexample">Walk through another 
example</h2>
+
+<h3 id="BookInOnePage-Introduction.1">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/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/wink.png";
 data-emoticon-name="wink" alt="(wink)"></p>
+
+<p>First we take a moment to look at the <a shape="rect" 
href="enterprise-integration-patterns.html">Enterprise Integration Patterns</a> 
- the base pattern catalog for integration scenarios. In particular we focus on 
<a shape="rect" href="pipes-and-filters.html">Pipes and filters</a> - a central 
pattern. This is used to route messages through a sequence of processing steps, 
each performing a specific function - much like the Java Servlet Filters. </p>
+
+<h3 id="BookInOnePage-Pipesandfilters">Pipes and filters</h3>
+<p>In this sample we want to process a message in a sequence of steps where 
each steps can perform their specific function. In our example we have a <a 
shape="rect" href="jms.html">JMS</a> queue for receiving new orders. When an 
order is received we need to process it in several steps:</p>
+<ul class="alternate"><li>validate</li><li>register</li><li>send confirm 
email</li></ul>
+
+
+<p>This can be created in a route like this:</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;route&gt;
+   &lt;from uri=&quot;jms:queue:order&quot;/&gt;
+   &lt;pipeline&gt;
+      &lt;bean ref=&quot;validateOrder&quot;/&gt;
+      &lt;bean ref=&quot;registerOrder&quot;/&gt;
+      &lt;bean ref=&quot;sendConfirmEmail&quot;/&gt;
+   &lt;/pipeline&gt;
+&lt;/route&gt;
+]]></script>
+</div></div>
+
+<div class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Pipeline is default</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
+<p>In the route above we specify <code>pipeline</code> but it can be omitted 
as its default, so you can write the route as:</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;route&gt;
+   &lt;from uri=&quot;jms:queue:order&quot;/&gt;
+   &lt;bean ref=&quot;validateOrder&quot;/&gt;
+   &lt;bean ref=&quot;registerOrder&quot;/&gt;
+   &lt;bean ref=&quot;sendConfirmEmail&quot;/&gt;
+&lt;/route&gt;
+]]></script>
+</div></div>
+<p>This is commonly used not to state the pipeline. </p>
+
+<p>An example where the pipeline needs to be used, is when using a multicast 
and "one" of the endpoints to send to (as a logical group) is a pipeline of 
other endpoints. For example.</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;route&gt;
+   &lt;from uri=&quot;jms:queue:order&quot;/&gt;
+   &lt;multicast&gt;
+     &lt;to uri=&quot;log:org.company.log.Category&quot;/&gt;
+     &lt;pipeline&gt;
+       &lt;bean ref=&quot;validateOrder&quot;/&gt;
+       &lt;bean ref=&quot;registerOrder&quot;/&gt;
+       &lt;bean ref=&quot;sendConfirmEmail&quot;/&gt;
+     &lt;/pipeline&gt;
+   &lt;/multicast&gt;
+&lt;/route&gt;
+]]></script>
+</div></div>
+
+<p>The above sends the order (from <code>jms:queue:order</code>) to two 
locations at the same time, our log component, and to the "pipeline" of beans 
which goes one to the other. If you consider the opposite, sans the 
<code>&lt;pipeline&gt;</code></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;route&gt;
+   &lt;from uri=&quot;jms:queue:order&quot;/&gt;
+   &lt;multicast&gt;
+     &lt;to uri=&quot;log:org.company.log.Category&quot;/&gt;
+     &lt;bean ref=&quot;validateOrder&quot;/&gt;
+     &lt;bean ref=&quot;registerOrder&quot;/&gt;
+     &lt;bean ref=&quot;sendConfirmEmail&quot;/&gt;
+   &lt;/multicast&gt;
+&lt;/route&gt;
+]]></script>
+</div></div>
+
+<p>you would see that multicast would not "flow" the message from one bean to 
the next, but rather send the order to all 4 endpoints (1x log, 3x bean) in 
parallel, which is not (for this example) what we want. We need the message to 
flow to the validateOrder, then to the registerOrder, then the sendConfirmEmail 
so adding the pipeline, provides this facility. </p>
+</div></div>
+
+<p>Where as the <code>bean ref</code> is a reference for a spring bean id, so 
we define our beans using regular Spring XML as:</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;bean id=&quot;validateOrder&quot; 
class=&quot;com.mycompany.MyOrderValidator&quot;/&gt;
+]]></script>
+</div></div>
+
+<p>Our validator bean is a plain POJO that has no dependencies to Camel what 
so ever. So you can implement this POJO as you like. Camel uses rather 
intelligent <a shape="rect" href="bean-binding.html">Bean Binding</a> to invoke 
your POJO with the payload of the received message. In this example we will 
<strong>not</strong> dig into this how this happens. You should return to this 
topic later when you got some hands on experience with Camel how it can easily 
bind routing using your existing POJO beans.</p>
+
+<p>So what happens in the route above. Well when an order is received from the 
<a shape="rect" href="jms.html">JMS</a> queue the message is routed like <a 
shape="rect" href="pipes-and-filters.html">Pipes and filters</a>:<br 
clear="none">
+1. payload from the <a shape="rect" href="jms.html">JMS</a> is sent as input 
to the validateOrder bean<br clear="none">
+2. the output from validateOrder bean is sent as input to the registerOrder 
bean<br clear="none">
+3. the output from registerOrder bean is sent as input to the sendConfirmEmail 
bean</p>
+
+<h3 id="BookInOnePage-UsingCamelComponents">Using Camel Components</h3>
+<p>In the route lets imagine that the registration of the order has to be done 
by sending data to a TCP socket that could be a big mainframe. As Camel has 
many <a shape="rect" href="components.html">Components</a> we will use the 
camel-mina component that supports <a shape="rect" href="mina.html">TCP</a> 
connectivity. So we change the route to:</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;route&gt;
+   &lt;from uri=&quot;jms:queue:order&quot;/&gt;
+   &lt;bean ref=&quot;validateOrder&quot;/&gt;
+   &lt;to uri=&quot;mina:tcp://mainframeip:4444?textline=true&quot;/&gt;
+   &lt;bean ref=&quot;sendConfirmEmail&quot;/&gt;
+&lt;/route&gt;
+]]></script>
+</div></div>
+
+<p>What we now have in the route is a <code>to</code> type that can be used as 
a direct replacement for the bean type. The steps is now:<br clear="none">
+1. payload from the <a shape="rect" href="jms.html">JMS</a> is sent as input 
to the validateOrder bean<br clear="none">
+2. the output from validateOrder bean is sent as text to the mainframe using 
TCP<br clear="none">
+3. the output from mainframe is sent back as input to the sendConfirmEmai 
bean</p>
+
+<p>What to notice here is that the <code>to</code> is not the end of the route 
(the world <img class="emoticon emoticon-wink" 
src="https://cwiki.apache.org/confluence/s/en_GB/5982/f2b47fb3d636c8bc9fd0b11c0ec6d0ae18646be7.1/_/images/icons/emoticons/wink.png";
 data-emoticon-name="wink" alt="(wink)">) in this example it's used in the 
middle of the <a shape="rect" href="pipes-and-filters.html">Pipes and 
filters</a>. In fact we can change the <code>bean</code> types to 
<code>to</code> as well:</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;route&gt;
+   &lt;from uri=&quot;jms:queue:order&quot;/&gt;
+   &lt;to uri=&quot;bean:validateOrder&quot;/&gt;
+   &lt;to uri=&quot;mina:tcp://mainframeip:4444?textline=true&quot;/&gt;
+   &lt;to uri=&quot;bean:sendConfirmEmail&quot;/&gt;
+&lt;/route&gt;
+]]></script>
+</div></div>
+
+<p>As the <code>to</code> is a generic type we must state in the uri scheme 
which component it is. So we must write <strong>bean:</strong> for the <a 
shape="rect" href="bean.html">Bean</a> component that we are using.</p>
+
+<h3 id="BookInOnePage-Conclusion">Conclusion</h3>
+<p>This example was provided to demonstrate the Spring DSL (XML based) as 
opposed to the pure Java DSL from the <a shape="rect" 
href="walk-through-an-example.html">first example</a>. And as well to point 
about that the <code>to</code> doesn't have to be the last node in a route 
graph.</p>
+
+<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="BookInOnePage-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 class="chapter" id="chapter-getting-started">
+<h1 id="BookInOnePage-GettingStartedwithApacheCamel">Getting Started with 
Apache Camel</h1></div>
+
+
+
 
 <p><span class="confluence-anchor-link" id="BookInOnePage-eip-book"></span></p>
 <h2 id="BookInOnePage-TheEnterpriseIntegrationPatterns(EIP)book">The 
<em>Enterprise Integration Patterns</em> (EIP) book</h2>
@@ -331,1640 +441,781 @@ However, there is another option that th
 <h3 id="BookInOnePage-ContinueLearningaboutCamel">Continue Learning about 
Camel</h3>
 
 <p>Return to the main <a shape="rect" href="getting-started.html">Getting 
Started</a> page for additional introductory reference information.</p>
-<div class="chapter" id="chapter-architecture"><h1 
id="BookInOnePage-Architecture">Architecture</h1><a shape="rect" 
href="dsl.html">Routing Domain Specific Language (DSL)</a><a shape="rect" 
href="xml-configuration.html">Xml Configuration</a><a shape="rect" 
href="routes.html">routing and mediation rules</a><a shape="rect" 
class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/CamelContext.html";>CamelContext</a><a
 shape="rect" href="enterprise-integration-patterns.html">Enterprise 
Integration Patterns</a><p>At a high level Camel consists of a <a shape="rect" 
class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/CamelContext.html";>CamelContext</a>
 which contains a collection of <a shape="rect" 
href="component.html">Component</a> instances. A <a shape="rect" 
href="component.html">Component</a> is essentially a factory of <a shape="rect" 
href="endpoint.html">Endpoint</a> instances. You can expl
 icitly configure <a shape="rect" href="component.html">Component</a> instances 
in Java code or an IoC container like Spring or Guice, or they can be 
auto-discovered using <a shape="rect" href="uris.html">URIs</a>. </p><p>An <a 
shape="rect" href="endpoint.html">Endpoint</a> acts rather like a URI or URL in 
a web application or a Destination in a JMS system; you can communicate with an 
endpoint; either sending messages to it or consuming messages from it. You can 
then create a <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Producer.html";>Producer</a>
 or <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Consumer.html";>Consumer</a>
 on an <a shape="rect" href="endpoint.html">Endpoint</a> to exchange messages 
with it.</p><p>The <a shape="rect" href="dsl.html">DSL</a> makes heavy use of 
pluggable <a shape="rect" href="languages.html">Languages</a> to cr
 eate an <a shape="rect" href="expression.html">Expression</a> or <a 
shape="rect" href="predicate.html">Predicate</a> to make a truly powerful DSL 
which is extensible to the most suitable language depending on your needs. The 
following languages are supported</p><ul><li><a shape="rect" 
href="bean-language.html">Bean Language</a> for using Java for 
expressions</li><li><a shape="rect" 
href="constant.html">Constant</a></li><li>the unified <a shape="rect" 
href="el.html">EL</a> from JSP and JSF</li><li><a shape="rect" 
href="header.html">Header</a></li><li><a shape="rect" 
href="jsonpath.html">JSonPath</a></li><li><a shape="rect" 
href="jxpath.html">JXPath</a></li><li><a shape="rect" 
href="mvel.html">Mvel</a></li><li><a shape="rect" 
href="ognl.html">OGNL</a></li><li><a shape="rect" href="ref-language.html">Ref 
Language</a></li><li><a shape="rect" 
href="exchangeproperty.html">ExchangeProperty</a> /&#160;<a shape="rect" 
href="property.html">Property</a></li><li><a shape="rect" href="scripting-
 languages.html">Scripting Languages</a> such as
-  <ul><li><a shape="rect" href="beanshell.html">BeanShell</a></li><li><a 
shape="rect" href="javascript.html">JavaScript</a></li><li><a shape="rect" 
href="groovy.html">Groovy</a></li><li><a shape="rect" 
href="python.html">Python</a></li><li><a shape="rect" 
href="php.html">PHP</a></li><li><a shape="rect" 
href="ruby.html">Ruby</a></li></ul></li><li><a shape="rect" 
href="simple.html">Simple</a>
-  <ul><li><a shape="rect" href="file-language.html">File 
Language</a></li></ul></li><li><a shape="rect" href="spel.html">Spring 
Expression Language</a></li><li><a shape="rect" 
href="sql.html">SQL</a></li><li><a shape="rect" 
href="tokenizer.html">Tokenizer</a></li><li><a shape="rect" 
href="xpath.html">XPath</a></li><li><a shape="rect" 
href="xquery.html">XQuery</a></li><li><a shape="rect" 
href="vtd-xml.html">VTD-XML</a></li></ul><p>Most of these languages is also 
supported used as <a shape="rect" 
href="annotation-based-expression-language.html">Annotation Based Expression 
Language</a>.</p><p>For a full details of the individual languages see the <a 
shape="rect" href="book-languages-appendix.html">Language Appendix</a></p><h2 
id="BookInOnePage-URIs">URIs</h2><p>Camel makes extensive use of URIs to allow 
you to refer to endpoints which are lazily created by a <a shape="rect" 
href="component.html">Component</a> if you refer to them within <a shape="rect" 
href="routes.html">Routes</a>.</p
 ><div class="confluence-information-macro confluence-information-macro-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><h3 id="BookInOnePage-CurrentSupportedURIs">Current Supported 
URIs</h3><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" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">ahc:http[s]://hostName[:port][/resourceUri][?options] 
</script> 
-      </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" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">ahc-ws[s]://hostName[:port][/resourceUri][?options] 
</script> 
-      </div>
-     </div><p><span> <br clear="none"> </span></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;To exchange data with external 
Websocket servers 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="amqp.html">AMQP</a> 
/&#160;<code>camel-amqp</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">amqp:[queue:|topic:]destinationName[?options] 
</script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
Messaging with <a shape="rect" class="external-link" 
href="http://www.amqp.org/"; rel="nofollow">AMQP 
protocol</a></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="apns.html">APNS</a> 
/&#160;<code>camel-apns</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">apns:&amp;lt;notify|consumer&amp;gt;[?options] 
</script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
sending notifications to Apple iOS devices</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="atmosphere-websocket.html">Atmosphere-Websocket</a> <span>&#160;</span> 
<span> /&#160;<code>camel-atmosphere-websocket</code></span></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">atmosphere-websocket:///relative path[?options] 
</script> 
-      </div>
-     </div><p><span> <br clear="none"> </span></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;<span>To exchange data with external 
Websocket clients using </span> <a shape="rect" class="external-link" 
href="https://github.com/Atmosphere/atmosphere"; 
rel="nofollow">Atmosphere</a></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="atom.html">Atom</a> 
/&#160;<code>camel-atom</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">atom:atomUri[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Working 
with <a shape="rect" class="external-link" 
href="http://incubator.apache.org/abdera/";>Apache Abdera</a> for atom 
integration, such as consuming an atom feed.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" href="avro.html">Avro</a> 
/&#160;<code>camel-avro</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">avro:[transport]:[host]:[port][/messageName][?options] 
</script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Working 
with <a shape="rect" class="external-link" 
href="http://avro.apache.org/";>Apache Avro</a> for data 
serialization.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="aws-cw.html">AWS-CW</a> / <a 
shape="rect" href="aws.html">camel-aws</a></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">aws-cw://namespace[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
working with <a shape="rect" class="external-link" 
href="http://aws.amazon.com/cloudwatch/"; rel="nofollow">Amazon's CloudWatch 
(CW)</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="aws-ddb.html">AWS-DDB</a> / <a 
shape="rect" href="aws.html">camel-aws</a></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">aws-ddb://tableName[?options]</script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
working with <a shape="rect" class="external-link" 
href="http://aws.amazon.com/dynamodb/"; rel="nofollow">Amazon's DynamoDB 
(DDB)</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="aws-ddbstream.html">AWS-DDBSTREAM</a> / <a shape="rect" 
href="aws.html">camel-aws</a></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">aws-ddbstream://tableName[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
working with <a shape="rect" class="external-link" 
href="http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html";
 rel="nofollow">Amazon's DynamoDB Streams (DDB 
Streams)</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="aws-ec2.html">AWS-EC2</a> / <a 
shape="rect" href="aws.html">camel-aws</a></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">aws-ec2://label[?options]</script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
working with <a shape="rect" class="external-link" 
href="http://aws.amazon.com/ec2/"; rel="nofollow">Amazon's Elastic Compute Cloud 
(EC2)</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="aws-sdb.html">AWS-SDB</a> / <a 
shape="rect" href="aws.html">camel-aws</a></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">aws-sdb://domainName[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
working with <a shape="rect" class="external-link" 
href="http://aws.amazon.com/simpledb/"; rel="nofollow">Amazon's SimpleDB 
(SDB)</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="aws-ses.html">AWS-SES</a> / <a 
shape="rect" href="aws.html">camel-aws</a></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">aws-ses://from[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
working with <a shape="rect" class="external-link" 
href="http://aws.amazon.com/ses/"; rel="nofollow">Amazon's Simple Email Service 
(SES)</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="aws-sns.html">AWS-SNS</a> / <a 
shape="rect" href="aws.html">camel-aws</a></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">aws-sns://topicName[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
Messaging with <a shape="rect" class="external-link" 
href="http://aws.amazon.com/sns/"; rel="nofollow">Amazon's Simple Notification 
Service (SNS)</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="aws-sqs.html">AWS-SQS</a> / <a 
shape="rect" href="aws.html">camel-aws</a></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">aws-sqs://queueName[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
Messaging with <a shape="rect" class="external-link" 
href="http://aws.amazon.com/sqs/"; rel="nofollow">Amazon's Simple Queue Service 
(SQS)</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="aws-swf.html">AWS-SWF</a> / <a 
shape="rect" href="aws.html">camel-aws</a></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">aws-swf://&amp;lt;worfklow|activity&amp;gt;[?options] 
</script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
Messaging with <a shape="rect" class="external-link" 
href="http://aws.amazon.com/swf/"; rel="nofollow">Amazon's Simple Workflow 
Service (SWF)</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="aws-s3.html">AWS-S3</a> / <a 
shape="rect" href="aws.html">camel-aws</a></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">aws-s3://bucketName[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
working with <a shape="rect" class="external-link" 
href="http://aws.amazon.com/s3/"; rel="nofollow">Amazon's Simple Storage Service 
(S3)</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="bean.html">Bean</a> 
/&#160;<code>camel-core</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">bean:beanName[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Uses the 
<a shape="rect" href="bean-binding.html">Bean Binding</a> to bind message 
exchanges to beans in the <a shape="rect" href="registry.html">Registry</a>. Is 
also used for exposing and invoking POJO (Plain Old Java 
Objects).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="beanstalk.html">Beanstalk</a> 
<span> /&#160;<code>camel-beanstalk</code></span></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">beanstalk:hostname:port/tube[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
working with <a shape="rect" class="external-link" 
href="http://aws.amazon.com/elasticbeanstalk/"; rel="nofollow">Amazon's 
Beanstalk</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="bean-validator.html">Bean 
Validator</a> /&#160;<code>camel-bean-validator</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">bean-validator:label[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Validates 
the payload of a message using the Java Validation API (<a shape="rect" 
class="external-link" href="http://jcp.org/en/jsr/detail?id=303"; 
rel="nofollow">JSR 303</a> and JAXP Validation) and its reference 
implementation <a shape="rect" class="external-link" 
href="http://docs.jboss.org/hibernate/stable/validator/reference/en/html_single/";
 rel="nofollow">Hibernate Validator</a></p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" href="box.html">Box</a> 
/&#160;<code>camel-box</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">box://endpoint-prefix/endpoint?[options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
uploading, downloading and managing files, managing files, folders, groups, 
collaborations, etc. on Box.com.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span> <a shape="rect" 
href="braintree.html">Braintree</a> 
/&#160;<code>camel-braintree</code></span></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">braintree://endpoint-prefix/endpoint?[options]</script>
 
-      </div>
-     </div><p><span> <br clear="none"> </span></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><span>Component for interacting with 
Braintree Payments via Braintree Java SDK</span></p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="browse.html">Browse</a> /&#160;<code>camel-core</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">browse:someName </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Provides a 
simple <a shape="rect" href="browsableendpoint.html">BrowsableEndpoint</a> 
which can be useful for testing, visualisation tools or debugging. The 
exchanges sent to the endpoint are all available to be 
browsed.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="cache.html">Cache</a> 
/&#160;<code>camel-cache</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">cache://cacheName[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The cache 
component facilitates creation of caching endpoints and processors using <a 
shape="rect" class="external-link" href="http://ehcache.org/"; 
rel="nofollow">EHCache</a> as the cache implementation.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="cassandra.html">Cassandra</a> / <span style="color: 
rgb(0,0,0);"><code>camel-cassandraql</code></span></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">cql:localhost/keyspace</script> 
-      </div>
-     </div><p><span style="color: rgb(0,0,0);"> <br clear="none"> 
</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
integrating with <a shape="rect" class="external-link" 
href="http://cassandra.apache.org/";>Apache Cassandra</a>.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="class.html">Class</a> /&#160;<code>camel-core</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">class:className[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Uses the 
<a shape="rect" href="bean-binding.html">Bean Binding</a> to bind message 
exchanges to beans in the <a shape="rect" href="registry.html">Registry</a>. Is 
also used for exposing and invoking POJO (Plain Old Java 
Objects).</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="chronicle-engine.html">Chronicle 
Engine</a> /&#160;<code>camel-chronicle</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">chronicle-engine:addresses/path[?options]</script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><a 
shape="rect" class="external-link" 
href="https://github.com/OpenHFT/Chronicle-Engine"; rel="nofollow">Chronicle 
Engine</a><span> is a<span> high performance, low latency, reactive processing 
framework.</span></span></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="chunk.html">Chunk</a> 
/&#160;<code>camel-chunk</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">chunk:templateName[?options]</script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Generates 
a response using a <a shape="rect" class="external-link" 
href="http://www.x5software.com/chunk/examples/ChunkExample"; 
rel="nofollow">Chunk</a> template</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="cmis.html">CMIS</a> 
/&#160;<code>camel-cmis</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">cmis://cmisServerUrl[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Uses the 
<a shape="rect" class="external-link" 
href="http://chemistry.apache.org/java/opencmis.html";>Apache Chemistry</a> 
client API to interface with CMIS supporting CMS</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="cometd.html">Cometd</a> /&#160;<code>camel-cometd</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">cometd://hostName:port/channelName[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to 
deliver messages using the <a shape="rect" class="external-link" 
href="http://docs.codehaus.org/display/JETTY/Cometd+(aka+Bayeux)" 
rel="nofollow">jetty cometd implementation</a> of the <a shape="rect" 
class="external-link" 
href="http://svn.xantus.org/shortbus/trunk/bayeux/bayeux.html"; 
rel="nofollow">bayeux protocol</a></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="consul-component.html">Consul</a> 
/&#160;<code>camel-consul</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">consul:apiEndpoint[?options]</script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span>For 
interfacing with an </span><span>&#160;</span><a shape="rect" 
class="external-link" href="https://www.consul.io/"; 
rel="nofollow">Consul</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="context.html">Context</a> 
/&#160;<code>camel-context</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">context:camelContextId:localEndpointName[?options] 
</script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to 
refer to endpoints within a separate CamelContext to provide a simple <a 
shape="rect" href="context.html">black box composition</a> approach so that 
routes can be combined into a CamelContext and then used as a black box 
component inside other routes in other CamelContexts</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="controlbus-component.html">ControlBus</a> 
/&#160;<code>camel-core</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">controlbus:command[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="controlbus.html">ControlBus</a> EIP that allows to send 
messages to <a shape="rect" href="endpoint.html">Endpoint</a>s for managing and 
monitoring your Camel applications.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="couchdb.html">CouchDB</a> /&#160;<code>camel-couchdb</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">couchdb:hostName[:port]/database[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To 
integrate with <a shape="rect" class="external-link" 
href="http://couchdb.apache.org/";>Apache CouchDB</a>.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="crypto-digital-signatures.html">Crypto (Digital Signatures)</a> 
/&#160;<code>camel-crypto</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">crypto:&amp;lt;sign|verify&amp;gt;:name[?options] 
</script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Used to 
sign and verify exchanges using the Signature Service of the Java Cryptographic 
Extension.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="cxf.html">CXF</a> 
/&#160;<code>camel-cxf</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">cxf:&amp;lt;bean:cxfEndpoint|//someAddress&amp;gt;[?options]
 </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Working 
with <a shape="rect" href="http://cxf.apache.org/";>Apache CXF</a> for web 
services integration</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="cxf-bean-component.html">CXF Bean 
</a> /&#160;<code>camel-cxf</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">cxfbean:serviceBeanRef[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Proceess 
the exchange using a JAX WS or JAX RS annotated bean from the registry. 
Requires less configuration than the above CXF Component</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="cxfrs.html">CXFRS</a> /&#160;<code>camel-cxf</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">cxfrs:&amp;lt;bean:rsEndpoint|//address&amp;gt;[?options]
 </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Working 
with <a shape="rect" href="http://cxf.apache.org/";>Apache CXF</a> for REST 
services integration</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="dataformat-component.html">DataFormat</a> 
/&#160;<code>camel-core</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">dataformat:name:&amp;lt;marshal|unmarshal&amp;gt;[?options]
 </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>for 
working with <a shape="rect" href="data-format.html">Data Format</a>s as if it 
was a regular Component supporting Endpoints and URIs.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="dataset.html">DataSet</a> /&#160;<code>camel-core</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">dataset:name[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For load 
&amp; soak testing the <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/dataset/DataSet.html";>DataSet</a>
 provides a way to create huge numbers of messages for sending to <a 
shape="rect" href="components.html">Components</a> or asserting that they are 
consumed correctly</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="direct.html">Direct</a> 
/&#160;<code>camel-core</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">direct:someName[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Synchronous call to another endpoint from 
<strong>same</strong> CamelContext.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="direct-vm.html">Direct-VM</a> /&#160;<code>camel-core</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">direct-vm:someName[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Synchronous call to another endpoint in another 
CamelContext running in the same JVM.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" href="dns.html">DNS</a> 
/&#160;<code>camel-dns</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">dns:operation[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To lookup 
domain information and run DNS queries using <a shape="rect" 
class="external-link" href="http://www.xbill.org/dnsjava/"; 
rel="nofollow">DNSJava</a></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="disruptor.html">Disruptor</a> 
/&#160;<code>camel-disruptor</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">disruptor:someName[?&amp;lt;option&amp;gt;] 
disruptor-vm:someName[?&amp;lt;option&amp;gt;] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>To provide 
the implementation of <a shape="rect" href="seda.html">SEDA</a> which is based 
on <a shape="rect" class="external-link" 
href="https://github.com/LMAX-Exchange/disruptor"; 
rel="nofollow">disruptor</a></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><span> <a shape="rect" href="docker.html">Docker</a> 
/&#160;<code>camel-docker</code></span></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">docker://[operation]?[options]</script> 
-      </div>
-     </div><p><span> <br clear="none"> </span></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>&#160;To communicate with <a shape="rect" 
class="external-link" href="https://www.docker.com/"; 
rel="nofollow">Docker</a></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="dozer.html">Dozer</a> 
/&#160;<code>camel-dozer</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">dozer://name?[options]</script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;To 
convert message body using the Dozer type converter 
library.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="dropbox.html">Dropbox</a> <span> 
/&#160;<code>camel-dropbox</code></span></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">dropbox://[operation]?[options]</script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span 
style="color: rgb(0,0,0);">The&#160;</span> <strong>dropbox:</strong> <span 
style="color: rgb(0,0,0);">&#160;component allows you to treat&#160;</span> <a 
shape="rect" class="external-link" href="https://www.dropbox.com/"; 
rel="nofollow">Dropbox</a> <span style="color: rgb(0,0,0);">&#160;remote 
folders as a producer or consumer of messages.</span></p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="ejb.html">EJB</a> /&#160;<code>camel-ejb</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">ejb:ejbName[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Uses the 
<a shape="rect" href="bean-binding.html">Bean Binding</a> to bind message 
exchanges to EJBs. It works like the <a shape="rect" href="bean.html">Bean</a> 
component but just for accessing EJBs. Supports EJB 3.0 
onwards.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="ehcache.html">Ehcache</a> 
/&#160;<code>camel-ehcache</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">ehcache://cacheName[?options]</script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span>The 
cache component facilitates creation of caching endpoints and processors using 
</span><a shape="rect" class="external-link" href="http://ehcache.org/"; 
rel="nofollow">Ehcache 3</a><span> as the cache 
implementation.</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" 
href="elasticsearch.html">ElasticSearch</a> 
/&#160;<code>camel-elasticsearch</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">elasticsearch://clusterName[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
interfacing with an <a shape="rect" class="external-link" 
href="http://elasticsearch.org"; rel="nofollow">ElasticSearch</a> 
server.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
shape="rect" href="etcd.html">Etcd</a> /&#160;<code>camel-etcd</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">etcd:namespace[/path][?options]</script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p><span>For 
interfacing with an </span> <a shape="rect" class="external-link" 
href="https://coreos.com/etcd/"; rel="nofollow">Etcd</a> <span> key value 
store.</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="spring-event.html">Spring 
Event</a> /&#160;<code>camel-spring</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">spring-event://default </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Working 
with Spring ApplicationEvents</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="eventadmin.html">EventAdmin</a> 
/&#160;<code>camel-eventadmin</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">eventadmin:topic[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Receiving 
OSGi EventAdmin events</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="exec.html">Exec</a> 
/&#160;<code>camel-exec</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">exec://executable[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>For 
executing system commands</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="facebook.html">Facebook</a> 
/&#160;<code>camel-facebook</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">facebook://endpoint[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Providing 
access to all of the Facebook APIs accessible using <a shape="rect" 
class="external-link" href="http://facebook4j.org/en/index.html"; 
rel="nofollow">Facebook4J</a></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a shape="rect" href="file2.html">File</a> 
/&#160;<code>camel-core</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">file://nameOfFileOrDirectory[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Sending 
messages to a file or polling a file or directory.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a shape="rect" 
href="flatpack.html">Flatpack</a> /&#160;<code>camel-flatpack</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">flatpack:[fixed|delim]:configFile[?options] </script> 
-      </div>
-     </div></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Processing 
fixed width or delimited files or messages using the <a shape="rect" 
class="external-link" href="http://flatpack.sourceforge.net"; 
rel="nofollow">FlatPack library</a></p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a shape="rect" href="flink.html">Flink</a> 
/&#160;<code>camel-flink</code></p>
-     <div class="code panel pdl" style="border-width: 1px;">
-      <div class="codeContent panelContent pdl"> 
-       <script class="brush: plain; gutter: false; theme: Default" 
type="syntaxhighlighter">flink:dataset[?options] 
flink:datastream[?options]</script> 
-      </div>

[... 42996 lines stripped ...]

Reply via email to