Modified: websites/production/camel/content/book-component-appendix.html
==============================================================================
--- websites/production/camel/content/book-component-appendix.html (original)
+++ websites/production/camel/content/book-component-appendix.html Thu Nov 29 
08:26:57 2018
@@ -90,7 +90,7 @@
        <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><div class="chapter conf-macro 
output-block" id="chapter-component-appendix" data-hasbody="true" 
data-macro-name="div"><h1 
id="BookComponentAppendix-ComponentAppendix">Component Appendix</h1><p>There 
now follows the documentation on each Camel component.</p><h2 
id="BookComponentAppendix-ActiveMQComponent">ActiveMQ Component</h2><p>The 
ActiveMQ component allows messages to be sent to a <a shape="rect" 
class="external-link" href="http://java.sun.com/products/jms/"; 
rel="nofollow">JMS</a> Queue or Topic or messages to be consumed from a JMS 
Queue or Topic using <a shape="rect" class="external-link" 
href="http://activemq.apache.org/"; title="The most popular and powerful open 
source message broker">Apache ActiveMQ</a>. This component is based on <a 
shape="rect" href="jms.html">JMS Component</a> and uses Spring's JMS support 
for declarative transactions, using Spring's 
<strong><code>JmsTemplate</code></strong> for sending and a 
<strong><code>MessageLis
 tenerContainer</code></strong> for consuming. All the options from the <a 
shape="rect" href="jms.html">JMS</a> component also applies for this 
component.</p><p>To use this component make sure you have the 
<strong><code>activemq.jar</code></strong> or 
<strong><code>activemq-core.jar</code></strong> on your classpath along with 
any Camel dependencies such as <strong><code>camel-core.jar</code></strong>, 
<strong><code>camel-spring.jar</code></strong> and 
<strong><code>camel-jms.jar</code></strong>.</p><parameter 
ac:name="title">Transacted and caching</parameter><rich-text-body><p>See 
section <em>Transactions and Cache Levels</em> below on <a shape="rect" 
href="jms.html">JMS</a> page if you are using transactions with <a shape="rect" 
href="jms.html">JMS</a> as it can impact performance.</p></rich-text-body><h3 
id="BookComponentAppendix-URIformat">URI 
format</h3><plain-text-body>activemq:[queue:|topic:]destinationName
+<div class="wiki-content maincontent"><div class="chapter conf-macro 
output-block" id="chapter-component-appendix" data-hasbody="true" 
data-macro-name="div"><h1 
id="BookComponentAppendix-ComponentAppendix">Component Appendix</h1><p>There 
now follows the documentation on each Camel component.</p><div 
class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 
id="BookComponentAppendix-ActiveMQComponent">ActiveMQ Component</h2><p>The 
ActiveMQ component allows messages to be sent to a <a shape="rect" 
class="external-link" href="http://java.sun.com/products/jms/"; 
rel="nofollow">JMS</a> Queue or Topic or messages to be consumed from a JMS 
Queue or Topic using <a shape="rect" class="external-link" 
href="http://activemq.apache.org/"; title="The most popular and powerful open 
source message broker">Apache ActiveMQ</a>. This component is based on <a 
shape="rect" href="jms.html">JMS Component</a> and uses Spring's JMS support 
for declarative transactions, using Spring's 
 <strong><code>JmsTemplate</code></strong> for sending and a 
<strong><code>MessageListenerContainer</code></strong> for consuming. All the 
options from the <a shape="rect" href="jms.html">JMS</a> component also applies 
for this component.</p><p>To use this component make sure you have the 
<strong><code>activemq.jar</code></strong> or 
<strong><code>activemq-core.jar</code></strong> on your classpath along with 
any Camel dependencies such as <strong><code>camel-core.jar</code></strong>, 
<strong><code>camel-spring.jar</code></strong> and 
<strong><code>camel-jms.jar</code></strong>.</p><parameter 
ac:name="title">Transacted and caching</parameter><rich-text-body><p>See 
section <em>Transactions and Cache Levels</em> below on <a shape="rect" 
href="jms.html">JMS</a> page if you are using transactions with <a shape="rect" 
href="jms.html">JMS</a> as it can impact performance.</p></rich-text-body><h3 
id="BookComponentAppendix-URIformat">URI 
format</h3><plain-text-body>activemq:[queue:|topic:]de
 stinationName
 </plain-text-body><p>Where&#160;<strong><code>destinationName</code></strong> 
is an ActiveMQ queue or topic name. By default, 
the&#160;<strong><code>destinationName</code></strong> is interpreted as a 
queue name. For example, to connect to the queue, 
<strong><code>FOO.BAR</code></strong>, use:</p><plain-text-body>activemq:FOO.BAR
 </plain-text-body><p>You can include the optional 
<strong><code>queue:</code></strong> prefix, if you 
prefer:</p><plain-text-body>activemq:queue:FOO.BAR
 </plain-text-body><p>To connect to a topic, you must include the 
<strong><code>topic:</code></strong> prefix. For example, to connect to the 
topic, <strong><code>Stocks.Prices</code></strong>, 
use:</p><plain-text-body>activemq:topic:Stocks.Prices
@@ -203,7 +203,7 @@ droppable = false
   &lt;artifactId&gt;activemq-camel&lt;/artifactId&gt;
   &lt;version&gt;5.6.0&lt;/version&gt;
 &lt;/dependency&gt;
-</plain-text-body><p><parameter ac:name=""><a shape="rect" 
href="endpoint-see-also.html">Endpoint See Also</a></parameter></p> <div 
class="error"><span class="error">Unable to render {include}</span> The 
included page could not be found.</div> <h2 
id="BookComponentAppendix-AMQP">AMQP</h2><p>The <strong style="line-height: 
1.42857;">amqp:</strong> component supports the <a shape="rect" 
class="external-link" href="http://www.amqp.org/"; rel="nofollow" 
style="line-height: 1.42857;">AMQP 1.0 protocol</a> using the JMS Client API of 
the <a shape="rect" class="external-link" 
href="https://github.com/apache/qpid-jms/"; rel="nofollow">Qpid</a> project. In 
case you want to use <strong>AMQP 0.9</strong> (in particular RabbitMQ) you 
might also be interested in the <a shape="rect" href="rabbitmq.html">Camel 
RabbitMQ</a> component. Please keep in mind that prior to the <strong>Camel 
2.17.0</strong> AMQP component supported <strong>AMQP 0.9</strong> and above, 
however since <strong>Camel 2.17.0</st
 rong> it supports only <strong>AMQP 1.0</strong>.</p><p>Maven users will need 
to add the following dependency to their <strong><code>pom.xml</code></strong> 
for this component:</p><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</plain-text-body><p><parameter ac:name=""><a shape="rect" 
href="endpoint-see-also.html">Endpoint See Also</a></parameter></p></div> <div 
class="error conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><span class="error">Unable to render {include}</span> 
The included page could not be found.</div> <div class="conf-macro 
output-block" data-hasbody="false" data-macro-name="include"><h2 
id="BookComponentAppendix-AMQP">AMQP</h2><p>The <strong style="line-height: 
1.42857;">amqp:</strong> component supports the <a shape="rect" 
class="external-link" href="http://www.amqp.org/"; rel="nofollow" 
style="line-height: 1.42857;">AMQP 1.0 protocol</a> using the JMS Client API of 
the <a shape="rect" class="external-link" 
href="https://github.com/apache/qpid-jms/"; rel="nofollow">Qpid</a> project. In 
case you want to use <strong>AMQP 0.9</strong> (in particular RabbitMQ) you 
might also be interested in the <a shape="rect" href="rabbitmq.html">Camel 
RabbitMQ</a> component. Please 
 keep in mind that prior to the <strong>Camel 2.17.0</strong> AMQP component 
supported <strong>AMQP 0.9</strong> and above, however since <strong>Camel 
2.17.0</strong> it supports only <strong>AMQP 1.0</strong>.</p><p>Maven users 
will need to add the following dependency to their 
<strong><code>pom.xml</code></strong> for this component:</p><div class="code 
panel pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-amqp&lt;/artifactId&gt;
@@ -284,8 +284,8 @@ AMQPConnectionDetails amqpConnection() {
 </div></div><h3 id="BookComponentAppendix-UsingamqpinsideKaraf">Using amqp 
inside Karaf</h3><p>To use the <strong><code>amqp</code></strong> component 
inside Karaf use the predefined feature called 
<strong><code>camel-amqp</code></strong> to install the necessary 
bundles.</p><p>Example:</p><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: text; 
gutter: false; theme: Default" data-theme="Default">karaf@root()&gt; repo-add 
camel
 karaf@root()&gt; feature:install camel-amqp</pre>
-</div></div><p>and the environment would be set.</p><p>Use the 
<strong><code>camel-blueprint</code></strong> 
or&#160;<strong><code>camel-spring</code></strong> features to define routes in 
those contexts.</p><p>&#160;</p><p> </p><h3 
id="BookComponentAppendix-SeeAlso">See Also</h3>
-<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul><p> </p><p>&#160;</p> 
<h2 id="BookComponentAppendix-SQSComponent">SQS 
Component</h2><p><strong>Available as of Camel 2.6</strong></p><p>The sqs 
component supports sending and receiving messages to <a shape="rect" 
class="external-link" href="http://aws.amazon.com/sqs"; rel="nofollow">Amazon's 
SQS</a> service.</p><div class="confluence-information-macro 
confluence-information-macro-information conf-macro output-block" 
data-hasbody="true" data-macro-name="info"><p 
class="title">Prerequisites</p><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>You must have a valid Amazon Web 
Services developer account, and be signed up 
 to use Amazon SQS. More information are available at <a shape="rect" 
class="external-link" href="http://aws.amazon.com/sqs"; rel="nofollow">Amazon 
SQS</a>.</p></div></div><h3 id="BookComponentAppendix-URIFormat">URI 
Format</h3><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><p>and the environment would be set.</p><p>Use the 
<strong><code>camel-blueprint</code></strong> 
or&#160;<strong><code>camel-spring</code></strong> features to define routes in 
those contexts.</p><p>&#160;</p><p> </p><div class="conf-macro output-block" 
data-hasbody="false" data-macro-name="include"><h3 
id="BookComponentAppendix-SeeAlso">See Also</h3>
+<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul></div><p> 
</p><p>&#160;</p></div> <div class="conf-macro output-block" 
data-hasbody="false" data-macro-name="include"><h2 
id="BookComponentAppendix-SQSComponent">SQS Component</h2><p><strong>Available 
as of Camel 2.6</strong></p><p>The sqs component supports sending and receiving 
messages to <a shape="rect" class="external-link" 
href="http://aws.amazon.com/sqs"; rel="nofollow">Amazon's SQS</a> 
service.</p><div class="confluence-information-macro 
confluence-information-macro-information conf-macro output-block" 
data-hasbody="true" data-macro-name="info"><p 
class="title">Prerequisites</p><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"> </span><div 
class="confluence-informati
 on-macro-body"><p>You must have a valid Amazon Web Services developer account, 
and be signed up to use Amazon SQS. More information are available at <a 
shape="rect" class="external-link" href="http://aws.amazon.com/sqs"; 
rel="nofollow">Amazon SQS</a>.</p></div></div><h3 
id="BookComponentAppendix-URIFormat">URI Format</h3><div class="code panel pdl 
conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" 
data-theme="Default">aws-sqs://queueName[?options]
 aws-sqs://queueNameOrArn[?options] (from Camel 2.18)
 </pre>
@@ -316,8 +316,8 @@ registry.bind("client", client);
   .filter("${header.login} == true")
   .to("mock:result");
 </pre>
-</div></div><p>In the above code, if an exchange doesn't have an appropriate 
header, it will not make it through the filter AND also not be deleted from the 
SQS queue. After&#160;<code>5000</code> miliseconds, the message will become 
visible to other consumers.</p><p> </p><h3 
id="BookComponentAppendix-SeeAlso.1">See Also</h3>
-<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul><p> </p><ul 
class="alternate"><li><a shape="rect" href="aws.html">AWS 
Component</a></li></ul> <h2 id="BookComponentAppendix-AtomComponent">Atom 
Component</h2><p>The <strong>atom:</strong> component is used for polling Atom 
feeds.</p><p>Camel will poll the feed every 60 seconds by default.<br 
clear="none"> <strong>Note:</strong> The component currently only supports 
polling (consuming) feeds.</p><p>Maven users will need to add the following 
dependency to their <code>pom.xml</code> for this component:</p><parameter 
ac:name="">xml</parameter><plain-text-body>&lt;dependency&gt;
+</div></div><p>In the above code, if an exchange doesn't have an appropriate 
header, it will not make it through the filter AND also not be deleted from the 
SQS queue. After&#160;<code>5000</code> miliseconds, the message will become 
visible to other consumers.</p><p> </p><div class="conf-macro output-block" 
data-hasbody="false" data-macro-name="include"><h3 
id="BookComponentAppendix-SeeAlso.1">See Also</h3>
+<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul></div><p> </p><ul 
class="alternate"><li><a shape="rect" href="aws.html">AWS 
Component</a></li></ul></div> <div class="conf-macro output-block" 
data-hasbody="false" data-macro-name="include"><h2 
id="BookComponentAppendix-AtomComponent">Atom Component</h2><p>The 
<strong>atom:</strong> component is used for polling Atom feeds.</p><p>Camel 
will poll the feed every 60 seconds by default.<br clear="none"> 
<strong>Note:</strong> The component currently only supports polling 
(consuming) feeds.</p><p>Maven users will need to add the following dependency 
to their <code>pom.xml</code> for this component:</p><parameter 
ac:name="">xml</parameter><plain-text-body>&lt;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-atom&lt;/artifactId&gt;
     &lt;version&gt;x.x.x&lt;/version&gt;
@@ -325,7 +325,7 @@ registry.bind("client", client);
 &lt;/dependency&gt;
 </plain-text-body><h3 id="BookComponentAppendix-URIformat.2">URI 
format</h3><plain-text-body>atom://atomUri[?options]
 </plain-text-body><p>Where <strong>atomUri</strong> is the URI to the Atom 
feed to poll.</p><h3 
id="BookComponentAppendix-Options.1">Options</h3><parameter 
ac:name="class">confluenceTableSmall</parameter><rich-text-body><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Property</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>splitEntries</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>If <code>true</code> Camel will 
poll the feed and for the subsequent polls return each entry poll by poll. If 
the feed contains 7 entries then Camel will return the first entry on the first 
poll, the 2nd entry on the next poll, until no more entries where as Camel will 
do a ne
 w update on the feed. If <code>false</code> then Camel will poll a fresh feed 
on every invocation.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>filter</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>true</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Is only used by the split entries to filter the entries 
to return. Camel will default use the <code>UpdateDateFilter</code> that only 
return new entries from the feed. So the client consuming from the feed never 
receives the same entry more than once. The filter will return the entries 
ordered by the newest last.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>lastUpdate</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Is only used by the filter, as the starting 
timestamp for selection never entries (uses the <code>entry.updated</code> 
timest
 amp). Syntax format is: <code>yyyy-MM-ddTHH:MM:ss</code>. Example: 
<code>2007-12-24T17:45:59</code>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>throttleEntries</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.5:</strong> Sets whether 
all entries identified in a single feed poll should be delivered immediately. 
If <code>true</code>, only one entry is processed per 
<code>consumer.delay</code>. Only applicable when <code>splitEntries</code> is 
set to <code>true</code>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>feedHeader</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Sets whether to add the Abdera Feed object 
as a header.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>sortEntries</code></
 p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>If <code>splitEntries</code> is <code>true</code>, this 
sets whether to sort those entries by updated date.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.delay</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>500</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Delay in millis between each 
poll.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.initialDelay</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>1000</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Millis before polling 
starts.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>consumer.userFixedDelay</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" r
 owspan="1" class="confluenceTd"><p>If <code>true</code>, use fixed delay 
between pools, otherwise fixed rate is used. See <a shape="rect" 
class="external-link" 
href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/ScheduledExecutorService.html";
 rel="nofollow">ScheduledExecutorService</a> in JDK for 
details.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>username</code></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.16:</strong> For basic authentication when 
polling from a HTTP feed</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><code>password</code></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.16:</strong><span> For basic 
authentication when polling from a HTTP 
feed</span></td></tr></tbody></table></div></rich-text-body><p>You can append 
query options to the URI in th
 e following format, <code>?option=value&amp;option=value&amp;...</code></p><h3 
id="BookComponentAppendix-Exchangedataformat">Exchange data format</h3><p>Camel 
will set the In body on the returned <code>Exchange</code> with the entries. 
Depending on the <code>splitEntries</code> flag Camel will either return one 
<code>Entry</code> or a <code>List&lt;Entry&gt;</code>.</p><parameter 
ac:name="class">confluenceTableSmall</parameter><rich-text-body><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Option</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Value</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Behavior</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>splitEntries</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Only a single entry from the currently 
being processed fe
 ed is set: <code>exchange.in.body(Entry)</code></p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>splitEntries</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The entire list of entries from the feed is 
set: 
<code>exchange.in.body(List&lt;Entry&gt;)</code></p></td></tr></tbody></table></div></rich-text-body><p>Camel
 can set the <code>Feed</code> object on the In header (see 
<code>feedHeader</code> option to disable this):</p><h3 
id="BookComponentAppendix-MessageHeaders">Message Headers</h3><p>Camel atom 
uses these headers.</p><parameter 
ac:name="class">confluenceTableSmall</parameter><rich-text-body><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Header</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><
 code>CamelAtomFeed</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>When consuming the 
<code>org.apache.abdera.model.Feed</code> object is set to this 
header.</p></td></tr></tbody></table></div></rich-text-body><h3 
id="BookComponentAppendix-Samples">Samples</h3><p>In this sample we poll James 
Strachan's 
blog.</p><plain-text-body>from("atom://http://macstrac.blogspot.com/feeds/posts/default";).to("seda:feeds");
-</plain-text-body><p>In this sample we want to filter only good blogs we like 
to a SEDA queue. The sample also shows how to setup Camel standalone, not 
running in any Container or using 
Spring.<plain-text-body>{snippet:id=e1|lang=java|url=camel/trunk/components/camel-atom/src/test/java/org/apache/camel/component/atom/AtomGoodBlogsTest.java}</plain-text-body><parameter
 ac:name=""><a shape="rect" href="endpoint-see-also.html">Endpoint See 
Also</a></parameter></p><ul class="alternate"><li><a shape="rect" 
href="rss.html">RSS</a></li></ul> <h2 
id="BookComponentAppendix-BeanComponent">Bean Component</h2><p>The 
<strong>bean:</strong> component binds beans to Camel message exchanges.</p><h3 
id="BookComponentAppendix-URIformat.3">URI 
format</h3><p>bean:beanID[?options]</p><p>Where <strong>beanID</strong> can be 
any string which is used to look up the bean in the <a shape="rect" 
href="registry.html">Registry</a></p><h3 
id="BookComponentAppendix-Options.2">Options</h3><p>confluenceTableSmall</
 p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>method</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The method name from the bean that will be 
invoked. If not provided, Camel will try to determine the method itself. In 
case of ambiguity an exception will be thrown. See <a shape="rect" 
href="bean-binding.html">Bean Binding</a> for more details. From <strong>Camel 
2.8</strong> onwards you can specify type qualifiers to pin-point the exact 
method to use for o
 verloaded methods. From <strong>Camel 2.9</strong> onwards you can specify 
parameter values directly in the method syntax. See more details at <a 
shape="rect" href="bean-binding.html">Bean Binding</a>.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>cache</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>If enabled, Camel will cache the result of 
the first <a shape="rect" href="registry.html">Registry</a> look-up. Cache can 
be enabled if the bean in the <a shape="rect" href="registry.html">Registry</a> 
is defined as a singleton scope.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>multiParameterArray</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>fal
 se</code></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>How to 
treat the parameters which are passed from the message body; if it is 
<code>true</code>, the In message body should be an array of 
parameters.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>bean.xxx</p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong style="line-height: 1.42857;">Camel 
2.17:</strong>&#160;To configure additional options on the create bean instance 
from the class name. For example to configure a foo option on the bean, use 
bean.foo=123.</p></td></tr></tbody></table></div><p>You can append query 
options to the URI in the following format, 
<code>?option=value&amp;option=value&amp;...</code></p><h3 
id="BookComponentAppendix-Using">Using</h3><p>The object instance that is used 
to consume messages must be explicitly registered with the 
 <a shape="rect" href="registry.html">Registry</a>. For example, if you are 
using Spring you must define the bean in the Spring configuration, 
<code>spring.xml</code>; or if you don't use Spring, by registering the bean in 
JNDI.</p><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</plain-text-body><p>In this sample we want to filter only good blogs we like 
to a SEDA queue. The sample also shows how to setup Camel standalone, not 
running in any Container or using 
Spring.<plain-text-body>{snippet:id=e1|lang=java|url=camel/trunk/components/camel-atom/src/test/java/org/apache/camel/component/atom/AtomGoodBlogsTest.java}</plain-text-body><parameter
 ac:name=""><a shape="rect" href="endpoint-see-also.html">Endpoint See 
Also</a></parameter></p><ul class="alternate"><li><a shape="rect" 
href="rss.html">RSS</a></li></ul></div> <div class="conf-macro output-block" 
data-hasbody="false" data-macro-name="include"><h2 
id="BookComponentAppendix-BeanComponent">Bean Component</h2><p>The 
<strong>bean:</strong> component binds beans to Camel message exchanges.</p><h3 
id="BookComponentAppendix-URIformat.3">URI 
format</h3><p>bean:beanID[?options]</p><p>Where <strong>beanID</strong> can be 
any string which is used to look up the bean in the <a shape="rect" 
href="registry.html">Regi
 stry</a></p><h3 
id="BookComponentAppendix-Options.2">Options</h3><p>confluenceTableSmall</p><div
 class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>method</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The method name from the bean that will be 
invoked. If not provided, Camel will try to determine the method itself. In 
case of ambiguity an exception will be thrown. See <a shape="rect" 
href="bean-binding.html">Bean Binding</a> for more details. From <strong>Camel 
2.8</
 strong> onwards you can specify type qualifiers to pin-point the exact method 
to use for overloaded methods. From <strong>Camel 2.9</strong> onwards you can 
specify parameter values directly in the method syntax. See more details at <a 
shape="rect" href="bean-binding.html">Bean Binding</a>.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>cache</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>If enabled, Camel will cache the result of 
the first <a shape="rect" href="registry.html">Registry</a> look-up. Cache can 
be enabled if the bean in the <a shape="rect" href="registry.html">Registry</a> 
is defined as a singleton scope.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>multiParameterArray</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>
 <code>boolean</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>false</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>How to treat the parameters which are passed from the 
message body; if it is <code>true</code>, the In message body should be an 
array of parameters.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>bean.xxx</p></td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong style="line-height: 1.42857;">Camel 
2.17:</strong>&#160;To configure additional options on the create bean instance 
from the class name. For example to configure a foo option on the bean, use 
bean.foo=123.</p></td></tr></tbody></table></div><p>You can append query 
options to the URI in the following format, 
<code>?option=value&amp;option=value&amp;...</code></p><h3 
id="BookComponentAppendix-Using">Using</h3><p>Th
 e object instance that is used to consume messages must be explicitly 
registered with the <a shape="rect" href="registry.html">Registry</a>. For 
example, if you are using Spring you must define the bean in the Spring 
configuration, <code>spring.xml</code>; or if you don't use Spring, by 
registering the bean in JNDI.</p><div class="code panel pdl conf-macro 
output-block" data-hasbody="true" data-macro-name="code" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">// lets populate the 
context with the services we need
 // note that we could just use a spring.xml file to avoid this step
 JndiContext context = new JndiContext();
@@ -379,7 +379,7 @@ from("direct:start").bean(new ExampleBea
 from("direct:start").bean(new ExampleBean(), "methodName");
 // Camel will create the instance of bean and cache it for you.
 from("direct:start").bean(ExampleBean.class);</pre>
-</div></div><h3 id="BookComponentAppendix-BeanBinding"><br clear="none">Bean 
Binding</h3><p>How bean methods to be invoked are chosen (if they are not 
specified explicitly through the <strong>method</strong> parameter) and how 
parameter values are constructed from the <a shape="rect" 
href="message.html">Message</a> are all defined by the <a shape="rect" 
href="bean-binding.html">Bean Binding</a> mechanism which is used throughout 
all of the various <a shape="rect" href="bean-integration.html">Bean 
Integration</a> mechanisms in Camel.</p><p><a shape="rect" 
href="endpoint-see-also.html">Endpoint See Also</a></p><ul><li><a shape="rect" 
href="class.html">Class</a> component</li><li><a shape="rect" 
href="bean-binding.html">Bean Binding</a></li><li><a shape="rect" 
href="bean-integration.html">Bean Integration</a></li></ul> <div 
class="error"><span class="error">Unable to render {include}</span> The 
included page could not be found.</div> <h2 
id="BookComponentAppendix-BrowseComponent">Brows
 e Component</h2>
+</div></div><h3 id="BookComponentAppendix-BeanBinding"><br clear="none">Bean 
Binding</h3><p>How bean methods to be invoked are chosen (if they are not 
specified explicitly through the <strong>method</strong> parameter) and how 
parameter values are constructed from the <a shape="rect" 
href="message.html">Message</a> are all defined by the <a shape="rect" 
href="bean-binding.html">Bean Binding</a> mechanism which is used throughout 
all of the various <a shape="rect" href="bean-integration.html">Bean 
Integration</a> mechanisms in Camel.</p><p><a shape="rect" 
href="endpoint-see-also.html">Endpoint See Also</a></p><ul><li><a shape="rect" 
href="class.html">Class</a> component</li><li><a shape="rect" 
href="bean-binding.html">Bean Binding</a></li><li><a shape="rect" 
href="bean-integration.html">Bean Integration</a></li></ul></div> <div 
class="error conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><span class="error">Unable to render {include}</span> 
The included page c
 ould not be found.</div> <div class="conf-macro output-block" 
data-hasbody="false" data-macro-name="include"><h2 
id="BookComponentAppendix-BrowseComponent">Browse Component</h2>
 
 <p>The Browse component 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>
 
@@ -422,8 +422,8 @@ browse:someName[?options]
 </div></div>
 
 
-<h3 id="BookComponentAppendix-SeeAlso.2">See Also</h3>
-<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul> <h2 
id="BookComponentAppendix-CacheComponent">Cache Component</h2><div 
class="confluence-information-macro confluence-information-macro-warning 
conf-macro output-block" data-hasbody="true" data-macro-name="warning"><span 
class="aui-icon aui-icon-small aui-iconfont-error 
confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>This component is deprecated. As 
of Camel 2.18.0 You should use <a shape="rect" 
href="ehcache.html">Ehcache</a>.</p></div></div><p><strong>Available as of 
Camel 2.1</strong></p><p>The <strong>cache</strong> component enables you to 
perform caching operations using EHCache as the Cache Implementation. The cache 
itself is created on demand or if a cache of 
 that name already exists then it is simply utilized with its original 
settings.</p><p>This component supports producer and event based consumer 
endpoints.</p><p>The Cache consumer is an event based consumer and can be used 
to listen and respond to specific cache activities. If you need to perform 
selections from a pre-existing cache, use the processors defined for the cache 
component.</p><p>Maven users will need to add the following dependency to their 
<code>pom.xml</code> for this component:</p><div class="code panel pdl 
conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h3 id="BookComponentAppendix-SeeAlso.2">See Also</h3>
+<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul></div></div> <div 
class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 id="BookComponentAppendix-CacheComponent">Cache 
Component</h2><div class="confluence-information-macro 
confluence-information-macro-warning conf-macro output-block" 
data-hasbody="true" data-macro-name="warning"><span class="aui-icon 
aui-icon-small aui-iconfont-error confluence-information-macro-icon"> 
</span><div class="confluence-information-macro-body"><p>This component is 
deprecated. As of Camel 2.18.0 You should use <a shape="rect" 
href="ehcache.html">Ehcache</a>.</p></div></div><p><strong>Available as of 
Camel 2.1</strong></p><p>The <strong>cache</strong> component enables you to 
perform caching operations us
 ing EHCache as the Cache Implementation. The cache itself is created on demand 
or if a cache of that name already exists then it is simply utilized with its 
original settings.</p><p>This component supports producer and event based 
consumer endpoints.</p><p>The Cache consumer is an event based consumer and can 
be used to listen and respond to specific cache activities. If you need to 
perform selections from a pre-existing cache, use the processors defined for 
the cache component.</p><p>Maven users will need to add the following 
dependency to their <code>pom.xml</code> for this component:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-cache&lt;/artifactId&gt;
@@ -584,7 +584,7 @@ browse:someName[?options]
 </div></div><p>Of course you can do the same thing in straight Java:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" 
data-theme="Default">ManagementService.registerMBeans(CacheManager.getInstance(),
 mbeanServer, true, true, true, true);
 </pre>
-</div></div><p>You can get cache hits, misses, in-memory hits, disk hits, size 
stats this way. You can also change CacheConfiguration parameters on the 
fly.</p><h3 id="BookComponentAppendix-CachereplicationCamel2.8+">Cache 
replication Camel 2.8+</h3><p>The Camel Cache component is able to distribute a 
cache across server nodes using several different replication mechanisms 
including: RMI, JGroups, JMS and Cache Server.</p><p>There are two different 
ways to make it work:</p><p><strong>1.</strong> You can configure 
<code>ehcache.xml</code> manually</p><p>OR</p><p><strong>2.</strong> You can 
configure these three options:</p><ul 
class="alternate"><li>cacheManagerFactory</li><li>eventListenerRegistry</li><li>cacheLoaderRegistry</li></ul><p>Configuring
 Camel Cache replication using the first option is a bit of hard work as you 
have to configure all caches separately. So in a situation when the all names 
of caches are not known, using <code>ehcache.xml</code> is not a good 
idea.</p><p>The
  second option is much better when you want to use many different caches as 
you do not need to define options per cache. This is because replication 
options are set per <code>CacheManager</code> and per 
<code>CacheEndpoint</code>. Also it is the only way when cache names are not 
know at the development phase.</p><div class="confluence-information-macro 
confluence-information-macro-note conf-macro output-block" data-hasbody="true" 
data-macro-name="note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>It might be useful to read the <a 
shape="rect" class="external-link" href="http://ehcache.org/documentation"; 
rel="nofollow">EHCache manual</a> to get a better understanding of the Camel 
Cache replication mechanism.</p></div></div><h4 
id="BookComponentAppendix-Example:JMScachereplication">Example: JMS cache 
replication</h4><p>JMS replication is the most powerful and secured replication 
m
 ethod. Used together with Camel Cache replication makes it also rather 
simple.<br clear="none"> An example is available on <a shape="rect" 
href="cachereplicationjmsexample.html">a separate page</a>.</p> <h2 
id="BookComponentAppendix-ClassComponent">Class 
Component</h2><p><strong>Available as of Camel 2.4</strong></p><p>The 
<strong>class:</strong> component binds beans to Camel message exchanges. It 
works in the same way as the <a shape="rect" href="bean.html">Bean</a> 
component but instead of looking up beans from a <a shape="rect" 
href="registry.html">Registry</a> it creates the bean based on the class 
name.</p><h3 id="BookComponentAppendix-URIformat.6">URI format</h3><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><p>You can get cache hits, misses, in-memory hits, disk hits, size 
stats this way. You can also change CacheConfiguration parameters on the 
fly.</p><h3 id="BookComponentAppendix-CachereplicationCamel2.8+">Cache 
replication Camel 2.8+</h3><p>The Camel Cache component is able to distribute a 
cache across server nodes using several different replication mechanisms 
including: RMI, JGroups, JMS and Cache Server.</p><p>There are two different 
ways to make it work:</p><p><strong>1.</strong> You can configure 
<code>ehcache.xml</code> manually</p><p>OR</p><p><strong>2.</strong> You can 
configure these three options:</p><ul 
class="alternate"><li>cacheManagerFactory</li><li>eventListenerRegistry</li><li>cacheLoaderRegistry</li></ul><p>Configuring
 Camel Cache replication using the first option is a bit of hard work as you 
have to configure all caches separately. So in a situation when the all names 
of caches are not known, using <code>ehcache.xml</code> is not a good 
idea.</p><p>The
  second option is much better when you want to use many different caches as 
you do not need to define options per cache. This is because replication 
options are set per <code>CacheManager</code> and per 
<code>CacheEndpoint</code>. Also it is the only way when cache names are not 
know at the development phase.</p><div class="confluence-information-macro 
confluence-information-macro-note conf-macro output-block" data-hasbody="true" 
data-macro-name="note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>It might be useful to read the <a 
shape="rect" class="external-link" href="http://ehcache.org/documentation"; 
rel="nofollow">EHCache manual</a> to get a better understanding of the Camel 
Cache replication mechanism.</p></div></div><h4 
id="BookComponentAppendix-Example:JMScachereplication">Example: JMS cache 
replication</h4><p>JMS replication is the most powerful and secured replication 
m
 ethod. Used together with Camel Cache replication makes it also rather 
simple.<br clear="none"> An example is available on <a shape="rect" 
href="cachereplicationjmsexample.html">a separate page</a>.</p></div> <div 
class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 id="BookComponentAppendix-ClassComponent">Class 
Component</h2><p><strong>Available as of Camel 2.4</strong></p><p>The 
<strong>class:</strong> component binds beans to Camel message exchanges. It 
works in the same way as the <a shape="rect" href="bean.html">Bean</a> 
component but instead of looking up beans from a <a shape="rect" 
href="registry.html">Registry</a> it creates the bean based on the class 
name.</p><h3 id="BookComponentAppendix-URIformat.6">URI format</h3><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">class:className[?options]
 </pre>
 </div></div><p>Where <strong>className</strong> is the fully qualified class 
name to create and use as bean.</p><h3 
id="BookComponentAppendix-Options.4">Options</h3><div 
class="confluenceTableSmall conf-macro output-block" data-hasbody="true" 
data-macro-name="div"><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Default</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>method</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The method name that bean will be invoked. 
If not provided, Camel will try to pick the method its
 elf. In case of ambiguity an exception is thrown. See <a shape="rect" 
href="bean-binding.html">Bean Binding</a> for more 
details.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>multiParameterArray</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>boolean</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>How to treat the parameters which are 
passed from the message body; if it is <code>true</code>, the In message body 
should be an array of parameters.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>bean.xxx</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.17:</strong> To configure additional 
options on the create bean instance from the class na
 me. For example to configure a foo option on the bean, use 
bean.foo=123.</p></td></tr></tbody></table></div></div>
@@ -618,8 +618,8 @@ browse:someName[?options]
         .to("class:org.apache.camel.component.bean.MyPrefixBean?cool=#foo")
         .to("mock:result");
 </pre>
-</div></div><p>Which will lookup a bean from the <a shape="rect" 
href="registry.html">Registry</a> with the id <code>foo</code> and invoke the 
<code>setCool</code> method on the created instance of the 
<code>MyPrefixBean</code> class.</p><div class="confluence-information-macro 
confluence-information-macro-tip conf-macro output-block" data-hasbody="true" 
data-macro-name="tip"><p class="title">See more</p><span class="aui-icon 
aui-icon-small aui-iconfont-approve confluence-information-macro-icon"> 
</span><div class="confluence-information-macro-body"><p>See more details at 
the <a shape="rect" href="bean.html">Bean</a> component as the 
<strong>class</strong> component works in much the same way.</p></div></div><p> 
</p><h3 id="BookComponentAppendix-SeeAlso.3">See Also</h3>
-<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul><p> </p><ul><li><a 
shape="rect" href="bean.html">Bean</a></li><li><a shape="rect" 
href="bean-binding.html">Bean Binding</a></li><li><a shape="rect" 
href="bean-integration.html">Bean Integration</a></li></ul> <h2 
id="BookComponentAppendix-CometdComponent">Cometd Component</h2><p>The 
<strong>cometd:</strong> component is a transport for working with the <a 
shape="rect" class="external-link" href="http://www.mortbay.org/jetty"; 
rel="nofollow">jetty</a> implementation of the <a shape="rect" 
class="external-link" 
href="http://docs.codehaus.org/display/JETTY/Cometd+%28aka+Bayeux%29"; 
rel="nofollow">cometd/bayeux protocol</a>.<br clear="none"> Using this 
component in combination with the dojo toolkit library it's possible
  to push Camel messages directly into the browser using an AJAX based 
mechanism.</p><p>Maven users will need to add the following dependency to their 
<code>pom.xml</code> for this component:</p><div class="code panel pdl 
conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>Which will lookup a bean from the <a shape="rect" 
href="registry.html">Registry</a> with the id <code>foo</code> and invoke the 
<code>setCool</code> method on the created instance of the 
<code>MyPrefixBean</code> class.</p><div class="confluence-information-macro 
confluence-information-macro-tip conf-macro output-block" data-hasbody="true" 
data-macro-name="tip"><p class="title">See more</p><span class="aui-icon 
aui-icon-small aui-iconfont-approve confluence-information-macro-icon"> 
</span><div class="confluence-information-macro-body"><p>See more details at 
the <a shape="rect" href="bean.html">Bean</a> component as the 
<strong>class</strong> component works in much the same way.</p></div></div><p> 
</p><div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h3 id="BookComponentAppendix-SeeAlso.3">See Also</h3>
+<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul></div><p> 
</p><ul><li><a shape="rect" href="bean.html">Bean</a></li><li><a shape="rect" 
href="bean-binding.html">Bean Binding</a></li><li><a shape="rect" 
href="bean-integration.html">Bean Integration</a></li></ul></div> <div 
class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 id="BookComponentAppendix-CometdComponent">Cometd 
Component</h2><p>The <strong>cometd:</strong> component is a transport for 
working with the <a shape="rect" class="external-link" 
href="http://www.mortbay.org/jetty"; rel="nofollow">jetty</a> implementation of 
the <a shape="rect" class="external-link" 
href="http://docs.codehaus.org/display/JETTY/Cometd+%28aka+Bayeux%29"; 
rel="nofollow">cometd/bayeux protocol</a>.<
 br clear="none"> Using this component in combination with the dojo toolkit 
library it's possible to push Camel messages directly into the browser using an 
AJAX based mechanism.</p><p>Maven users will need to add the following 
dependency to their <code>pom.xml</code> for this component:</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-cometd&lt;/artifactId&gt;
@@ -679,8 +679,8 @@ commetdComponent.setSslContextParameters
 ...
   &lt;to 
uri="cometds://127.0.0.1:443/service/test?baseResource=file:./target/test-classes/webapp&amp;timeout=240000&amp;interval=0&amp;maxInterval=30000&amp;multiFrameInterval=1500&amp;jsonCommented=true&amp;logLevel=2"/&gt;...
 </pre>
-</div></div><p> </p><h3 id="BookComponentAppendix-SeeAlso.4">See Also</h3>
-<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul><p> </p> <h2 
id="BookComponentAppendix-ContextComponent">Context 
Component</h2><p><strong>Available as of Camel 2.7</strong></p><div 
class="confluence-information-macro confluence-information-macro-warning 
conf-macro output-block" data-hasbody="true" data-macro-name="warning"><span 
class="aui-icon aui-icon-small aui-iconfont-error 
confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>Deprecated do NOT 
use</p></div></div><p>&#160;</p><p>The <strong>context</strong> component 
allows you to create new Camel Components from a CamelContext with a number of 
routes which is then treated as a black box, allowing you to refer to the local 
endpoints within the component from other Cam
 elContexts.</p><p>It is similar to the <a shape="rect" 
href="routebox.html">Routebox</a> component in idea, though the Context 
component tries to be really simple for end users; just a simple convention 
over configuration approach to refer to local endpoints inside the CamelContext 
Component.</p><p>Maven users will need to add the following dependency to their 
<code>pom.xml</code> for this component:</p><div class="code panel pdl 
conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p> </p><div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h3 id="BookComponentAppendix-SeeAlso.4">See Also</h3>
+<ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul></div><p> </p></div> 
<div class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 
id="BookComponentAppendix-ContextComponent">Context 
Component</h2><p><strong>Available as of Camel 2.7</strong></p><div 
class="confluence-information-macro confluence-information-macro-warning 
conf-macro output-block" data-hasbody="true" data-macro-name="warning"><span 
class="aui-icon aui-icon-small aui-iconfont-error 
confluence-information-macro-icon"> </span><div 
class="confluence-information-macro-body"><p>Deprecated do NOT 
use</p></div></div><p>&#160;</p><p>The <strong>context</strong> component 
allows you to create new Camel Components from a CamelContext with a number of 
routes which is then treated 
 as a black box, allowing you to refer to the local endpoints within the 
component from other CamelContexts.</p><p>It is similar to the <a shape="rect" 
href="routebox.html">Routebox</a> component in idea, though the Context 
component tries to be really simple for end users; just a simple convention 
over configuration approach to refer to local endpoints inside the CamelContext 
Component.</p><p>Maven users will need to add the following dependency to their 
<code>pom.xml</code> for this component:</p><div class="code panel pdl 
conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-context&lt;/artifactId&gt;
@@ -735,7 +735,7 @@ registry.bind("accounts", blackBox);
   &lt;/route&gt;
 &lt;/camelContext&gt;
 </pre>
-</div></div><h4 id="BookComponentAppendix-Namingendpoints">Naming 
endpoints</h4><p>A context component instance can have many public input and 
output endpoints that can be accessed from outside it's CamelContext. When 
there are many it is recommended that you use logical names for them to hide 
the middleware as shown above.</p><p>However when there is only one input, 
output or error/dead letter endpoint in a component we recommend using the 
common posix shell names <strong>in</strong>, <strong>out</strong> and 
<strong>err</strong></p> <h2 
id="BookComponentAppendix-CryptocomponentforDigitalSignatures">Crypto component 
for Digital Signatures</h2><p><strong>Available as of Camel 
2.3</strong></p><p>With Camel cryptographic endpoints and Java's Cryptographic 
extension it is easy to create Digital Signatures for <a shape="rect" 
href="exchange.html">Exchange</a>s. Camel provides a pair of flexible endpoints 
which get used in concert to create a signature for an exchange in one part of 
the 
 exchange's workflow and then verify the signature in a later part of the 
workflow.</p><p>Maven users will need to add the following dependency to their 
<code>pom.xml</code> for this component:</p><parameter 
ac:name="">xml</parameter><plain-text-body>&lt;dependency&gt;
+</div></div><h4 id="BookComponentAppendix-Namingendpoints">Naming 
endpoints</h4><p>A context component instance can have many public input and 
output endpoints that can be accessed from outside it's CamelContext. When 
there are many it is recommended that you use logical names for them to hide 
the middleware as shown above.</p><p>However when there is only one input, 
output or error/dead letter endpoint in a component we recommend using the 
common posix shell names <strong>in</strong>, <strong>out</strong> and 
<strong>err</strong></p></div> <div class="conf-macro output-block" 
data-hasbody="false" data-macro-name="include"><h2 
id="BookComponentAppendix-CryptocomponentforDigitalSignatures">Crypto component 
for Digital Signatures</h2><p><strong>Available as of Camel 
2.3</strong></p><p>With Camel cryptographic endpoints and Java's Cryptographic 
extension it is easy to create Digital Signatures for <a shape="rect" 
href="exchange.html">Exchange</a>s. Camel provides a pair of flexible end
 points which get used in concert to create a signature for an exchange in one 
part of the exchange's workflow and then verify the signature in a later part 
of the workflow.</p><p>Maven users will need to add the following dependency to 
their <code>pom.xml</code> for this component:</p><parameter 
ac:name="">xml</parameter><plain-text-body>&lt;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-crypto&lt;/artifactId&gt;
     &lt;version&gt;x.x.x&lt;/version&gt;
@@ -752,7 +752,7 @@ Exchange signed = getMandatoryEndpoint("
 signed.getIn().copyFrom(unsigned.getOut());
 signed.getIn().setHeader(KEYSTORE_ALIAS, "bob");
 template.send("direct:alias-verify", signed);
-</plain-text-body><p><parameter ac:name=""><a shape="rect" 
href="endpoint-see-also.html">Endpoint See Also</a></parameter></p><ul><li><a 
shape="rect" href="crypto.html">Crypto</a> Crypto is also available as a <a 
shape="rect" href="data-format.html">Data Format</a></li></ul> <h2 
id="BookComponentAppendix-CXFComponent">CXF 
Component</h2><rich-text-body><p>When using CXF as a consumer, the <a 
shape="rect" href="cxf-bean-component.html">CXF Bean Component</a> allows you 
to factor out how message payloads are received from their processing as a 
RESTful or SOAP web service. This has the potential of using a multitude of 
transports to consume web services. The bean component's configuration is also 
simpler and provides the fastest method to implement web services using Camel 
and CXF.</p></rich-text-body><rich-text-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></rich-text-body><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> </p><p>Maven users will need to add the following 
dependency to their <code>pom.xml</code> for this component:</p><parameter 
ac:name="language">xml</parameter><plain-text-body>&lt;dependency&gt;
+</plain-text-body><p><parameter ac:name=""><a shape="rect" 
href="endpoint-see-also.html">Endpoint See Also</a></parameter></p><ul><li><a 
shape="rect" href="crypto.html">Crypto</a> Crypto is also available as a <a 
shape="rect" href="data-format.html">Data Format</a></li></ul></div> <div 
class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 id="BookComponentAppendix-CXFComponent">CXF 
Component</h2><rich-text-body><p>When using CXF as a consumer, the <a 
shape="rect" href="cxf-bean-component.html">CXF Bean Component</a> allows you 
to factor out how message payloads are received from their processing as a 
RESTful or SOAP web service. This has the potential of using a multitude of 
transports to consume web services. The bean component's configuration is also 
simpler and provides the fastest method to implement web services using Camel 
and CXF.</p></rich-text-body><rich-text-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></rich-text-body><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> </p><p>Maven 
users will need to add the following dependency to their <code>pom.xml</code> 
for this component:</p><parameter 
ac:name="language">xml</parameter><plain-text-body>&lt;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-cxf&lt;/artifactId&gt;
     &lt;version&gt;x.x.x&lt;/version&gt;
@@ -891,7 +891,7 @@ template.send("direct:alias-verify", sig
      &lt;cxf:properties&gt;
        &lt;entry key="dataFormat" value="PAYLOAD"/&gt;
      &lt;/cxf:properties&gt;
-   &lt;/cxf:cxfEndpoint&gt;</plain-text-body><p>It is noted that the default 
CXF dispatch client does not send a specific SOAPAction header. Therefore, when 
the target service requires a specific SOAPAction value, it is supplied in the 
Camel header using the key SOAPAction 
(case-insensitive).</p><p>&#160;</p><p><parameter ac:name=""><a shape="rect" 
href="endpoint-see-also.html">Endpoint See Also</a></parameter></p> <h2 
id="BookComponentAppendix-CXFBeanComponent">CXF Bean Component</h2><p>The 
<strong>cxfbean:</strong> component allows other Camel endpoints to send 
exchange and invoke Web service bean objects. <strong>Currently, it only 
supports JAX-RS and JAX-WS (new to Camel 2.1) annotated service 
beans.</strong></p><rich-text-body><p><code>CxfBeanEndpoint</code> is a 
<code>ProcessorEndpoint</code> so it has no consumers. It works similarly to a 
Bean component.</p></rich-text-body><p><span style="color: rgb(0,0,0);">Maven 
users need to add the following dependency to their pom.xml t
 o use the CXF Bean Component:</span></p><parameter 
ac:name="language">xml</parameter><plain-text-body>&lt;dependency&gt;
+   &lt;/cxf:cxfEndpoint&gt;</plain-text-body><p>It is noted that the default 
CXF dispatch client does not send a specific SOAPAction header. Therefore, when 
the target service requires a specific SOAPAction value, it is supplied in the 
Camel header using the key SOAPAction 
(case-insensitive).</p><p>&#160;</p><p><parameter ac:name=""><a shape="rect" 
href="endpoint-see-also.html">Endpoint See Also</a></parameter></p></div> <div 
class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 id="BookComponentAppendix-CXFBeanComponent">CXF 
Bean Component</h2><p>The <strong>cxfbean:</strong> component allows other 
Camel endpoints to send exchange and invoke Web service bean objects. 
<strong>Currently, it only supports JAX-RS and JAX-WS (new to Camel 2.1) 
annotated service 
beans.</strong></p><rich-text-body><p><code>CxfBeanEndpoint</code> is a 
<code>ProcessorEndpoint</code> so it has no consumers. It works similarly to a 
Bean component.</p></rich-text-body><p><span styl
 e="color: rgb(0,0,0);">Maven users need to add the following dependency to 
their pom.xml to use the CXF Bean Component:</span></p><parameter 
ac:name="language">xml</parameter><plain-text-body>&lt;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-cxf&lt;/artifactId&gt;
     &lt;!-- use the same version as your Camel core version: --&gt;
@@ -902,7 +902,7 @@ template.send("direct:alias-verify", sig
 </rich-text-body><h3 id="BookComponentAppendix-Headers">Headers</h3><parameter 
ac:name="class">confluenceTableSmall</parameter><rich-text-body>
 <div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p> Name </p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p> Description </p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p> Type </p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p> Required? </p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p> Default Value </p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p> In/Out </p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p> Examples </p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>CamelHttpCharacterEncoding</code> (before 
2.0-m2: <code>CamelCxfBeanCharacterEncoding</code>) </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Character encoding </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>String</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> No </p></td><td 
colspan="1" rowspan="1" class="c
 onfluenceTd"><p> None </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> In </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> ISO-8859-1 </p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>CamelContentType</code> (before 
2.0-m2: <code>CamelCxfBeanContentType</code>) </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Content type </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>String</code> </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> No </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> *<strong>/</strong>* </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> In </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>text/xml</code> 
</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> 
CamelHttpBaseUri <br clear="none" class="atl-forced-newline">
 (2.0-m3 and before: <code>CamelCxfBeanRequestBasePath</code>) </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> The value of this header will 
be set in the CXF message as the <code>Message.BASE_PATH</code> property.  It 
is needed by CXF JAX-RS processing.  Basically, it is the scheme, host and port 
portion of the request URI. </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>String</code> </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> Yes </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> The Endpoint URI of the source endpoint in the Camel 
exchange </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> In 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" 
class="external-link" href="http://localhost:9000"; 
rel="nofollow">http://localhost:9000</a> </p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>CamelHttpPath</code> (before 2.0-m2: 
<code>CamelCxfBeanRequestPat</code>h
 ) </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Request URI's 
path </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>String</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> Yes </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> None </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> In </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> <code>consumer/123</code> </p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>CamelHttpMethod</code> 
(before 2.0-m2: <code>CamelCxfBeanVerb</code>) </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> RESTful request verb </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> <code>String</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Yes </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> None </p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p> In </p></td><td colspan="1" rowspan="1"
  class="confluenceTd"><p> <code>GET</code>, <code>PUT</code>, 
<code>POST</code>, <code>DELETE</code> </p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p> <code>CamelHttpResponseCode</code> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> HTTP response 
code </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> 
<code>Integer</code> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> No <br clear="none" class="atl-forced-newline"> 
</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> None </p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p> Out <br clear="none" 
class="atl-forced-newline"> </p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p> 200 <br clear="none" class="atl-forced-newline"> 
</p></td></tr></tbody></table></div>
-</rich-text-body><rich-text-body><p>Currently, the CXF Bean component has 
(only) been tested with the <a shape="rect" href="jetty.html">Jetty 
component</a>. It understands headers from <a shape="rect" 
href="jetty.html">Jetty component</a> without requiring 
conversion.</p></rich-text-body><h3 id="BookComponentAppendix-AWorkingSample">A 
Working Sample</h3><p>This sample shows how to create a route that starts an 
embedded Jetty HTTP server. The route sends requests to a CXF Bean and invokes 
a JAX-RS annotated service.</p><p>First, create a route as follows: The 
<code>from</code> endpoint is a Jetty HTTP endpoint that is listening on port 
9000. Notice that the <code>matchOnUriPrefix</code> option must be set to 
<code>true</code> because the RESTful request URI will not exactly match the 
endpoint's URI 
http:&#173;//localhost:9000.</p><plain-text-body>{snippet:id=routeDefinition|lang=xml|url=camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/cxfbean/CxfBean
 Test-context.xml}</plain-text-body><p>The <code>to</code> endpoint is a CXF 
Bean with bean name <code>customerServiceBean</code>. The name will be looked 
up from the registry. Next, we make sure our service bean is available in 
Spring registry. We create a bean definition in the Spring configuration. In 
this example, we create a List of service beans (of one element). We could have 
created just a single bean without a 
List.</p><plain-text-body>{snippet:id=beanDefinition|lang=xml|url=camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/cxfbean/CxfBeanTest-context.xml}</plain-text-body><p>That's
 it. Once the route is started, the web service is ready for business. A HTTP 
client can make a request and receive response.</p> <h2 
id="BookComponentAppendix-CXFRSComponent">CXFRS 
Component</h2><rich-text-body><p>When using CXF as a consumer, the <a 
shape="rect" href="cxf-bean-component.html">CXF Bean Component</a> allows you 
to factor out how message payloads ar
 e received from their processing as a RESTful or SOAP web service. This has 
the potential of using a multitude of transports to consume web services. The 
bean component's configuration is also simpler and provides the fastest method 
to implement web services using Camel and CXF.</p></rich-text-body><p>The 
<strong>cxfrs:</strong> component provides integration with <a shape="rect" 
href="http://cxf.apache.org";>Apache CXF</a> for connecting to JAX-RS 1.1 and 
2.0 services hosted in CXF.</p><p>Maven users will need to add the following 
dependency to their pom.xml for this component:</p><parameter 
ac:name="">xml</parameter><plain-text-body>&lt;dependency&gt;
+</rich-text-body><rich-text-body><p>Currently, the CXF Bean component has 
(only) been tested with the <a shape="rect" href="jetty.html">Jetty 
component</a>. It understands headers from <a shape="rect" 
href="jetty.html">Jetty component</a> without requiring 
conversion.</p></rich-text-body><h3 id="BookComponentAppendix-AWorkingSample">A 
Working Sample</h3><p>This sample shows how to create a route that starts an 
embedded Jetty HTTP server. The route sends requests to a CXF Bean and invokes 
a JAX-RS annotated service.</p><p>First, create a route as follows: The 
<code>from</code> endpoint is a Jetty HTTP endpoint that is listening on port 
9000. Notice that the <code>matchOnUriPrefix</code> option must be set to 
<code>true</code> because the RESTful request URI will not exactly match the 
endpoint's URI 
http:&#173;//localhost:9000.</p><plain-text-body>{snippet:id=routeDefinition|lang=xml|url=camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/cxfbean/CxfBean
 Test-context.xml}</plain-text-body><p>The <code>to</code> endpoint is a CXF 
Bean with bean name <code>customerServiceBean</code>. The name will be looked 
up from the registry. Next, we make sure our service bean is available in 
Spring registry. We create a bean definition in the Spring configuration. In 
this example, we create a List of service beans (of one element). We could have 
created just a single bean without a 
List.</p><plain-text-body>{snippet:id=beanDefinition|lang=xml|url=camel/trunk/components/camel-cxf/src/test/resources/org/apache/camel/component/cxf/cxfbean/CxfBeanTest-context.xml}</plain-text-body><p>That's
 it. Once the route is started, the web service is ready for business. A HTTP 
client can make a request and receive response.</p></div> <div 
class="conf-macro output-block" data-hasbody="false" 
data-macro-name="include"><h2 id="BookComponentAppendix-CXFRSComponent">CXFRS 
Component</h2><rich-text-body><p>When using CXF as a consumer, the <a 
shape="rect" href="cxf-be
 an-component.html">CXF Bean Component</a> allows you to factor out how message 
payloads are received from their processing as a RESTful or SOAP web service. 
This has the potential of using a multitude of transports to consume web 
services. The bean component's configuration is also simpler and provides the 
fastest method to implement web services using Camel and 
CXF.</p></rich-text-body><p>The <strong>cxfrs:</strong> component provides 
integration with <a shape="rect" href="http://cxf.apache.org";>Apache CXF</a> 
for connecting to JAX-RS 1.1 and 2.0 services hosted in CXF.</p><p>Maven users 
will need to add the following dependency to their pom.xml for this 
component:</p><parameter 
ac:name="">xml</parameter><plain-text-body>&lt;dependency&gt;
    &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
    &lt;artifactId&gt;camel-cxf&lt;/artifactId&gt;
    &lt;version&gt;x.x.x&lt;/version&gt;  &lt;!-- use the same version as your 
Camel core version --&gt;
@@ -932,7 +932,7 @@ Payload:
   &lt;project&gt;Apache Camel&lt;/project&gt;
 &lt;/Customer&gt;
 </plain-text-body><p>Will print the message:</p><parameter 
ac:name="language">xml</parameter><plain-text-body>Request: type=gold, 
active=true, customerData=&lt;Customer.toString() representation&gt;
-</plain-text-body><p>For more examples on how to process requests and write 
responses can be found <a shape="rect" class="external-link" 
href="https://svn.apache.org/repos/asf/camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/simplebinding/";>here</a>.</p><h3
 id="BookComponentAppendix-ConsumingaRESTRequest-DefaultBindingStyle">Consuming 
a REST Request - Default Binding Style</h3><p>The&#160;<a shape="rect" 
class="external-link" href="https://cwiki.apache.org/CXF20DOC/JAX-RS";>CXF JAXRS 
front end</a> implements the <a shape="rect" class="external-link" 
href="https://jsr311.java.net/"; rel="nofollow">JAX-RS (JSR-311) API</a>, so we 
can export the resources classes as a REST service. And we leverage the <a 
shape="rect" class="external-link" 
href="http://cwiki.apache.org/confluence/display/CXF20DOC/Invokers";>CXF Invoker 
API</a> to turn a REST request into a normal Java object method invocation.<br 
clear="none"> Unlike the <a shape="rect" href="restlet.html
 ">Camel Restlet</a>&#160;component, you don't need to specify the URI template 
within your endpoint, CXF takes care of the REST request URI to resource class 
method mapping according to the JSR-311 specification. All you need to do in 
Camel is delegate this method request to a right processor or 
endpoint.</p><p>Here is an example of a CXFRS 
route...<plain-text-body>{snippet:id=example|lang=java|url=camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsConsumerTest.java}</plain-text-body>And
 the corresponding resource class used to configure the 
endpoint...</p><parameter ac:name="title">Note about resource 
classes</parameter><rich-text-body><p>By default, JAX-RS resource classes are 
<strong>only </strong>used to configure JAX-RS properties. Methods will 
<strong>not</strong> be executed during routing of messages to the endpoint. 
Instead, it is the responsibility of the route to do all processing.</p><p>Note 
that starting from Camel 2.15 it is also s
 ufficient to provide an interface only as opposed to a no-op service 
implementation class for the default mode.</p><p>Starting from Camel 2.15, if a 
<strong>performInvocation</strong> option is enabled, the service 
implementation will be invoked first, the response will be set on the Camel 
exchange and the route execution will continue as usual. This can be useful 
for</p><p>integrating the existing JAX-RS implementations into Camel routes and 
for post-processing JAX-RS Responses in custom 
processors.</p><p>&#160;</p></rich-text-body><p><plain-text-body>{snippet:id=example|lang=java|url=camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/testbean/CustomerServiceResource.java}</plain-text-body></p><h3
 
id="BookComponentAppendix-HowtoinvoketheRESTservicethroughcamel-cxfrsproducer">How
 to invoke the REST service through camel-cxfrs producer</h3><p>The&#160;<a 
shape="rect" class="external-link" 
href="https://cwiki.apache.org/CXF20DOC/JAX-RS";>CXF JAXRS front
  end</a> implements <a shape="rect" class="external-link" 
href="https://cwiki.apache.org/CXF20DOC/JAX-RS+Client+API#JAX-RSClientAPI-Proxy-basedAPI";>a
 proxy-based client API</a>, with this API you can invoke the remote REST 
service through a proxy. The&#160;<code>camel-cxfrs</code> producer is based on 
this <a shape="rect" class="external-link" 
href="https://cwiki.apache.org/CXF20DOC/JAX-RS+Client+API#JAX-RSClientAPI-Proxy-basedAPI";>proxy
 API</a>.<br clear="none"> You just need to specify the operation name in the 
message header and prepare the parameter in the message body, the 
<span>camel-cxfrs</span>&#160;producer will generate right REST request for 
you.</p><p>Here is an 
example:<plain-text-body>{snippet:id=ProxyExample|lang=java|url=camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducerTest.java}</plain-text-body>The&#160;<a
 shape="rect" class="external-link" 
href="https://cwiki.apache.org/CXF20DOC/JAX-RS";>CXF JAXRS front end</a> also p
 rovides <a shape="rect" 
href="https://cwiki.apache.org/confluence/display/CXF20DOC/JAX-RS+Client+API#JAX-RSClientAPI-CXFWebClientAPI";>a
 http centric client API</a>.&#160;You can also invoke this API from 
<code>camel-cxfrs</code> producer. You need to specify the <a shape="rect" 
class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html#HTTP_PATH";>HTTP_PATH</a>
 and the&#160;<a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html#HTTP_METHOD";>HTTP_METHOD</a>&#160;and
 let the&#160;producer use the http centric client API by using the URI option 
<strong>httpClientAPI</strong> or by setting the message header <a shape="rect" 
class="external-link" 
href="http://camel.apache.org/maven/current/camel-cxf/apidocs/org/apache/camel/component/cxf/CxfConstants.html#CAMEL_CXF_RS_USING_HTTP_API";>CxfConstants.CAMEL_CXF_RS_USING_HTTP_API</a>.
 You can turn the response ob
 ject to the type class specified with the message header&#160;<a shape="rect" 
class="external-link" 
href="http://camel.apache.org/maven/current/camel-cxf/apidocs/org/apache/camel/component/cxf/CxfConstants.html#CAMEL_CXF_RS_RESPONSE_CLASS";>CxfConstants.CAMEL_CXF_RS_RESPONSE_CLASS</a>.<plain-text-body>{snippet:id=HttpExample|lang=java|url=camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducerTest.java}</plain-text-body>From
 Camel 2.1, we also support to specify the query parameters from cxfrs URI for 
the CXFRS http centric 
client.<plain-text-body>{snippet:id=QueryExample|lang=java|url=camel/trunk/components/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducerTest.java}</plain-text-body>To
 support the Dynamical routing, you can override the URI's query parameters by 
using the CxfConstants.CAMEL_CXF_RS_QUERY_MAP header to set the parameter map 
for it.<plain-text-body>{snippet:id=QueryMapExample|lang=java|url=camel/trunk/c
 
omponents/camel-cxf/src/test/java/org/apache/camel/component/cxf/jaxrs/CxfRsProducerTest.java}</plain-text-body></p>
 <h2 id="BookComponentAppendix-DataSetComponent">DataSet Component</h2><p><a 
shape="rect" href="testing.html">Testing</a> of distributed and asynchronous 
processing is notoriously difficult. The <a shape="rect" 
href="mock.html">Mock</a>, <a shape="rect" href="test.html">Test</a> and <a 
shape="rect" href="dataset.html">DataSet</a> endpoints work great with the <a 
shape="rect" href="testing.html">Camel Testing Framework</a> to simplify your 
unit and integration testing using <a shape="rect" 
href="enterprise-integration-patterns.html">Enterprise Integration Patterns</a> 
and Camel's large range of <a shape="rect" 
href="components.html">Components</a> together with the powerful <a 
shape="rect" href="bean-integration.html">Bean Integration</a>.</p><p>The 
DataSet component provides a mechanism to easily perform load &amp; soak 
testing of your system. It works by allowing you 
 to create <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/dataset/DataSet.html";>DataSet
 instances</a> both as a source of messages and as a way to assert that the 
data set is received.</p><p>Camel will use the <a shape="rect" 
href="log.html">throughput logger</a> when sending dataset's.</p><h3 
id="BookComponentAppendix-URIformat.13">URI format</h3><div class="code panel 
pdl conf-macro output-block" data-hasbody="true" data-macro-name="code" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">

[... 729 lines stripped ...]

Reply via email to