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 Tue Mar 26 
22:22:28 2019
@@ -203,17 +203,17 @@ droppable = false
   <artifactId>activemq-camel</artifactId>
   <version>5.6.0</version>
 </dependency>
-</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">
+</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/"; style="line-height: 1.42857;" 
rel="nofollow">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" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><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;
     &lt;version&gt;${camel.version}&lt;/version&gt; &lt;!-- use the same 
version as your Camel core version --&gt;
 &lt;/dependency&gt;
 </pre>
-</div></div><h3 id="BookComponentAppendix-URIformat.1">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><h3 id="BookComponentAppendix-URIformat.1">URI format</h3><div 
class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" 
data-theme="Default">amqp:[queue:|topic:]destinationName[?options]
 </pre>
-</div></div><h3 id="BookComponentAppendix-AMQPOptions">AMQP Options</h3><p>You 
can specify all of the various configuration options of the <a shape="rect" 
href="jms.html">JMS</a> component after the destination name.</p><h3 
id="BookComponentAppendix-Usage">Usage</h3><p>As AMQP component inherits from 
the JMS component. The usage of the former is almost identical to the 
latter:</p><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Using 
AMQP component</b></div><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-AMQPOptions">AMQP Options</h3><p>You 
can specify all of the various configuration options of the <a shape="rect" 
href="jms.html">JMS</a> component after the destination name.</p><h3 
id="BookComponentAppendix-Usage">Usage</h3><p>As AMQP component inherits from 
the JMS component. The usage of the former is almost identical to the 
latter:</p><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Using 
AMQP component</b></div><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">// Consuming from AMQP queue
 from("amqp:queue:incoming")
   .to(...);
@@ -221,13 +221,13 @@ from("amqp:queue:incoming")
 // Sending message to the AMQP topic
 from(...)
   .to("amqp:topic:notify");</pre>
-</div></div><h3 id="BookComponentAppendix-ConfiguringAMQPcomponent"><span 
style="line-height: 1.5;">Configuring AMQP component</span></h3><p>Starting 
from the <strong>Camel 2.16.1</strong> you can also use the 
<strong><code>AMQPComponent#amqp10Component(String 
connectionURI)</code></strong> factory method to return the <strong>AMQP 
1.0</strong> component with the pre-configured&#160;topic prefix:&#160;</p><div 
class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1px;"><b>Creating AMQP 1.0 
component</b></div><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-ConfiguringAMQPcomponent"><span 
style="line-height: 1.5;">Configuring AMQP component</span></h3><p>Starting 
from the <strong>Camel 2.16.1</strong> you can also use the 
<strong><code>AMQPComponent#amqp10Component(String 
connectionURI)</code></strong> factory method to return the <strong>AMQP 
1.0</strong> component with the pre-configured&#160;topic prefix:&#160;</p><div 
class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeHeader panelHeader 
pdl" style="border-bottom-width: 1px;"><b>Creating AMQP 1.0 
component</b></div><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default"> AMQPComponent amqp = 
AMQPComponent.amqp10Component("amqp://guest:guest@localhost:5672");</pre>
-</div></div><p>Keep in mind that starting from the 
<strong>Camel&#160;2.17</strong>&#160;the&#160;<strong><code>AMQPComponent#amqp10Component(String
 connectionURI)</code></strong>&#160;factory method has been deprecated on the 
behalf of the <strong><code>AMQPComponent#amqpComponent(String 
connectionURI)</code></strong>:&#160;</p><div class="code panel pdl conf-macro 
output-block" data-hasbody="true" data-macro-name="code" style="border-width: 
1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>Creating AMQP 1.0 component</b></div><div class="codeContent 
panelContent pdl">
+</div></div><p>Keep in mind that starting from the 
<strong>Camel&#160;2.17</strong>&#160;the&#160;<strong><code>AMQPComponent#amqp10Component(String
 connectionURI)</code></strong>&#160;factory method has been deprecated on the 
behalf of the <strong><code>AMQPComponent#amqpComponent(String 
connectionURI)</code></strong>:&#160;</p><div class="code panel pdl conf-macro 
output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>Creating AMQP 1.0 component</b></div><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">AMQPComponent amqp = 
AMQPComponent.amqpComponent("amqp://localhost:5672");
 &#160;
 AMQPComponent authorizedAmqp = 
AMQPComponent.amqpComponent("amqp://localhost:5672", "user", "password");</pre>
-</div></div><p>Starting from <strong>Camel 2.17</strong>, in order to 
automatically configure the AMQP component, you can also add an instance 
of&#160;<strong><code>org.apache.camel.component.amqp.AMQPConnectionDetails</code></strong>
 to the registry. For example for Spring Boot you just have to 
define&#160;bean:</p><div class="code panel pdl conf-macro output-block" 
data-hasbody="true" data-macro-name="code" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>AMQP 
connection details auto-configuration</b></div><div class="codeContent 
panelContent pdl">
+</div></div><p>Starting from <strong>Camel 2.17</strong>, in order to 
automatically configure the AMQP component, you can also add an instance 
of&#160;<strong><code>org.apache.camel.component.amqp.AMQPConnectionDetails</code></strong>
 to the registry. For example for Spring Boot you just have to 
define&#160;bean:</p><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>AMQP 
connection details auto-configuration</b></div><div class="codeContent 
panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">@Bean
 AMQPConnectionDetails amqpConnection() {
   return new AMQPConnectionDetails("amqp://lcoalhost:5672"); 
@@ -237,7 +237,7 @@ AMQPConnectionDetails amqpConnection() {
 AMQPConnectionDetails securedAmqpConnection() {
   return new AMQPConnectionDetails("amqp://lcoalhost:5672", "username", 
"password"); 
 }</pre>
-</div></div><p>&#160;</p><p>You can also rely on the <a shape="rect" 
href="properties.html">Camel properties</a> to read the AMQP connection 
details. The factory 
method&#160;<strong><code>AMQPConnectionDetails.discoverAMQP()</code></strong>&#160;attempts
 to read Camel properties in a Kubernetes-like convention, just as demonstrated 
on the snippet below:</p><p>&#160;</p><div class="code panel pdl conf-macro 
output-block" data-hasbody="true" data-macro-name="code" style="border-width: 
1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>AMQP connection details auto-configuration</b></div><div 
class="codeContent panelContent pdl">
+</div></div><p>&#160;</p><p>You can also rely on the <a shape="rect" 
href="properties.html">Camel properties</a> to read the AMQP connection 
details. The factory 
method&#160;<strong><code>AMQPConnectionDetails.discoverAMQP()</code></strong>&#160;attempts
 to read Camel properties in a Kubernetes-like convention, just as demonstrated 
on the snippet below:</p><p>&#160;</p><div class="code panel pdl conf-macro 
output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>AMQP connection details 
auto-configuration</b></div><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">export AMQP_SERVICE_HOST = 
"mybroker.com"
 export AMQP_SERVICE_PORT = "6666"
 export AMQP_SERVICE_USERNAME = "username"
@@ -250,7 +250,7 @@ AMQPConnectionDetails amqpConnection() {
   return AMQPConnectionDetails.discoverAMQP(); 
 }
 </pre>
-</div></div><h3 
id="BookComponentAppendix-ConfiguringConnectionFactory">Configuring Connection 
Factory</h3><p>Like with any other JMS-based component, usually it's important 
to configure JMS connection factory. For example, you'd like to set your broker 
URL or set proper connection credentials. Additionally, you would always want 
to set some kind of pooling (or caching) on the connection factory. An example 
of how to do both of these tasks is shown below.</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><h3 
id="BookComponentAppendix-ConfiguringConnectionFactory">Configuring Connection 
Factory</h3><p>Like with any other JMS-based component, usually it's important 
to configure JMS connection factory. For example, you'd like to set your broker 
URL or set proper connection credentials. Additionally, you would always want 
to set some kind of pooling (or caching) on the connection factory. An example 
of how to do both of these tasks is shown below.</p><div class="code panel pdl 
conf-macro output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; 
gutter: false; theme: Default" data-theme="Default">&lt;bean 
id="jmsConnectionFactory" class="org.apache.qpid.jms.JmsConnectionFactory"&gt;
   &lt;property name="remoteURI" value="amqp://localhost:5672" /&gt;
   &lt;property name="username" value="admin"/&gt;
@@ -281,15 +281,15 @@ AMQPConnectionDetails amqpConnection() {
 &lt;/camelContext&gt;
 
 </pre>
-</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">
+</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" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><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><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">
+<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" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><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>
-</div></div><p>The queue will be created if they don't already exists. You can 
append query options to the URI in the following format: 
<strong><code>?options=value&amp;option2=value&amp;...</code></strong></p><h3 
id="BookComponentAppendix-URIOptions">URI Options</h3><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>Default Value</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Context</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>accessKey</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Amazon AWS Access 
Key.</p></td></tr><tr><td colspan="1" rowspan="1" class="conflue
 nceTd"><p><code>amazonSQSClient</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Reference to a 
<strong><code>com.amazonaws.services.sqs.AmazonSQS</code></strong> in the <a 
shape="rect" href="registry.html">Registry</a>.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>amazonSQSEndpoint</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The region with which 
the&#160;<strong><code>aws-sqs</code></strong> client wants to work with. Only 
works if Camel creates the&#160;<strong><code>aws-sqs</code></strong> client, 
i.e., if you explicitly set <strong><code>amazonSQSClient</code></strong>, then 
this setting will have 
 no effect. You would have to set it on the client you create 
directly</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>attributeNames</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Consumer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>A list of attribute names to 
receive when consuming. </p><p><strong>Camel 2.17:</strong> Multiple names can 
be separated by comma. </p><p><strong>Camel 2.16</strong> or older: The type is 
a Collection so its much harder to configure and use.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>concurrentConsumers</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>1</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>Consumer</code></td><td colspan="1" 
rowspan="1" class="confluenceTd">(<strong>as of 2.15.0</strong>) Allows you to 
use multiple threads
  to poll the SQS queue to increase throughput. You must also set t<span>he 
</span><strong><code>maxMessagesPerPoll</code></strong> option for this to work 
properly.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>defaultVisibilityTimeout</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The visibility timeout (in 
seconds) to set in the 
<strong><code>com.amazonaws.services.sqs.model.CreateQueueRequest</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>delaySeconds</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Producer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.3:</strong> 
Delay sending messages for a numb
 er of seconds.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>deleteAfterRead</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Consumer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Delete message from SQS after 
it has been read (and processed by the route).</p><p>If this option is false, 
then the same objects will be retrieve over and over again on the polls. 
Therefore you need to use the <a shape="rect" 
href="idempotent-consumer.html">Idempotent Consumer EIP</a> in the route to 
filter out duplicates. You can filter using 
the&#160;<strong><code>S3Constants#BUCKET_NAME</code></strong> 
and&#160;<strong><code>S3Constants#KEY</code></strong> headers, or only 
the&#160;<strong><code>S3Constants#KEY</code></strong> 
header.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>deleteIfFiltered</code></p></td><td colspan=
 "1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Consumer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.2, 2.13.0</strong>: 
Whether or not to send the&#160;<strong><code>DeleteMessage</code></strong> to 
the SQS queue if an exchange fails to get through a 
filter.</p><p>If&#160;<strong><code>false</code></strong> and exchange does not 
make it through a Camel filter upstream in the route, then don't send 
<strong><code>DeleteMessage</code></strong>.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>extendMessageVisibility</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Consumer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> If enabled a 
scheduled background task will keep extending the message visib
 ility on SQS. This is needed if it takes a long time to process the message. 
If set to true<strong><code> visibilityTimeout</code></strong> must be 
set.</p><p>See details at <a shape="rect" class="external-link" 
href="http://docs.amazonwebservices.com/AWSSimpleQueueService/latest/APIReference/Query_QueryChangeMessageVisibility.html";
 rel="nofollow">Amazon docs</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>maximumMessageSize</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> 
The&#160;<strong><code>maximumMessageSize</code></strong> (in bytes) an SQS 
message can contain for this queue, to set in the 
<strong><code>com.amazonaws.services.sqs.model.SetQueueAttributesRequest</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd"><
 p><code>maxMessagesPerPoll</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Consumer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The maximum number of messages which can be 
received in one poll to set in the 
<strong><code>com.amazonaws.services.sqs.model.ReceiveMessageRequest</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><code>messageAttributeNames</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>null</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>Consumer</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>A list of message attribute names to 
receive when consuming. </p><p><strong>Camel 
2.17:</strong><span>&#160;</span>Multiple names can be separated by comma. 
<span>&#160;</span></p><p><span><strong>Camel 2.16</strong> or older: The type 
is a Collection so its much harder to c
 onfigure and use.</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>messageRetentionPeriod</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> 
The&#160;<strong><code>messageRetentionPeriod</code></strong> (in seconds) a 
message will be retained by SQS for this queue, to set in the 
<strong><code>com.amazonaws.services.sqs.model.SetQueueAttributesRequest</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>proxyHost</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>null</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>Shared</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><strong>Camel 2.16</strong>: Specify a proxy 
host to be used inside the client definition.</td></tr
 ><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>proxyPort</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><code>null</code></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><code>Shared</code></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><strong>Camel 2.16</strong>: Specify a proxy 
 >port to be used inside the client definition.</td></tr><tr><td colspan="1" 
 >rowspan="1" 
 >class="confluenceTd"><p><code>queueOwnerAWSAccountId</code></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
 >colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> Specify the 
 >queue owner aws account id when you need to connect the queue with different 
 >account owner.</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>policy</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p><code>null</code></p></t
 d><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.8:</strong> The policy for this queue 
to set in the 
<strong><code>com.amazonaws.services.sqs.model.SetQueueAttributesRequest</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>receiveMessageWaitTimeSeconds</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> If 
you do not specify&#160;<strong><code>WaitTimeSeconds</code></strong> in the 
request, the queue 
attribute&#160;<strong><code>ReceiveMessageWaitTimeSeconds</code></strong> is 
used to determine how long to wait.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>redrivePolicy</code></p></td><td 
colspan="1" rowspan="1" clas
 s="confluenceTd"><code>null</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>Shared</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.15</strong>: Specify the policy that send 
message to&#160;<strong><code>DeadLetter</code></strong> queue. See detail at 
<a shape="rect" class="external-link" 
href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues-redrivepolicy.html";
 rel="nofollow">Amazon docs</a>.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>region</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.12.3:</strong> Specify the queue region 
which could be used with <strong><code>queueOwnerAWSAccountId</code></strong> 
to build the service URL.<br clear="none"><strong>Note</strong>: Region will st
 ill default to&#160;<strong><code>us-east-1</code></strong> if 
&#160;<span><strong><code>queueOwnerAWSAccountId</code></strong> is not 
specified</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>secretKey</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Amazon AWS Secret Key.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>waitTimeSeconds</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Producer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> 
Duration in seconds (0 to 20) that 
the&#160;<strong><code>ReceiveMessage</code></strong> action call will wait 
until a message is in the queue to include in the respons
 e.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>visibilityTimeout</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The duration (in seconds) that the received 
messages are hidden from subsequent retrieve requests after being retrieved by 
a&#160;<strong><code>ReceiveMessage</code></strong> request. This only make 
sense if its different from 
<strong><code>defaultVisibilityTimeout</code></strong>.</p></td></tr></tbody></table></div><div
 class="confluence-information-macro confluence-information-macro-information 
conf-macro output-block" data-hasbody="true" data-macro-name="info"><p 
class="title">Required SQS component options</p><span class="aui-icon 
aui-icon-small aui-iconfont-info confluence-information-macro-icon"> 
</span><div class="confluence-information-macro-body"><p>You have 
 to provide the&#160;<strong><code>amazonSQSClient</code></strong> in the <a 
shape="rect" href="registry.html">Registry</a> or 
your&#160;<strong><code>accessKey</code></strong> 
and&#160;<strong><code>secretKey</code></strong> to access the <a shape="rect" 
class="external-link" href="http://aws.amazon.com/sqs"; rel="nofollow">Amazon's 
SQS</a>.</p></div></div><h3 id="BookComponentAppendix-BatchConsumer">Batch 
Consumer</h3><p>This component implements the <a shape="rect" 
href="batch-consumer.html">Batch Consumer</a>.</p><p>This allows you for 
instance to know how many messages exists in this batch and for instance let 
the <a shape="rect" href="aggregator.html">Aggregator</a> aggregate this number 
of messages.</p><h3 id="BookComponentAppendix-Usage.1">Usage</h3><h4 
id="BookComponentAppendix-MessageheaderssetbytheSQSproducer">Message headers 
set by the SQS producer</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Head
 er</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelAwsSqsMD5OfBody</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The MD5 checksum of the Amazon 
SQS message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelAwsSqsMessageId</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Amazon SQS message 
ID.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelAwsSqsDelaySeconds</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Since <strong>Camel 2.11</strong>, the 
delay seconds 
 that the Amazon SQS message can be see by 
others.</p></td></tr></tbody></table></div><h4 
id="BookComponentAppendix-MessageheaderssetbytheSQSconsumer">Message headers 
set by the SQS consumer</h4><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>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelAwsSqsMD5OfBody</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The MD5 checksum of the Amazon 
SQS message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelAwsSqsMessageId</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Amazon 
 SQS message ID.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelAwsSqsReceiptHandle</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Amazon SQS message receipt 
handle.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelAwsSqsAttributes</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>Map&lt;String, 
String&gt;</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The Amazon SQS message 
attributes.</p></td></tr></tbody></table></div><h4 
id="BookComponentAppendix-AdvancedAmazonSQSconfiguration">Advanced AmazonSQS 
configuration</h4><p>If your Camel Application is running behind a firewall or 
if you need to have more control over the AmazonSQS instance configuration, you 
can create your own instance:</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>The queue will be created if they don't already exists. You can 
append query options to the URI in the following format: 
<strong><code>?options=value&amp;option2=value&amp;...</code></strong></p><h3 
id="BookComponentAppendix-URIOptions">URI Options</h3><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>Default Value</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Context</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>accessKey</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Amazon AWS Access 
Key.</p></td></tr><tr><td colspan="1" rowspan="1" class="conflue
 nceTd"><p><code>amazonSQSClient</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Reference to a 
<strong><code>com.amazonaws.services.sqs.AmazonSQS</code></strong> in the <a 
shape="rect" href="registry.html">Registry</a>.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>amazonSQSEndpoint</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The region with which 
the&#160;<strong><code>aws-sqs</code></strong> client wants to work with. Only 
works if Camel creates the&#160;<strong><code>aws-sqs</code></strong> client, 
i.e., if you explicitly set <strong><code>amazonSQSClient</code></strong>, then 
this setting will have 
 no effect. You would have to set it on the client you create 
directly</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>attributeNames</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Consumer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>A list of attribute names to 
receive when consuming. </p><p><strong>Camel 2.17:</strong> Multiple names can 
be separated by comma. </p><p><strong>Camel 2.16</strong> or older: The type is 
a Collection so its much harder to configure and use.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>concurrentConsumers</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><code>1</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>Consumer</code></td><td colspan="1" 
rowspan="1" class="confluenceTd">(<strong>as of 2.15.0</strong>) Allows you to 
use multiple threads
  to poll the SQS queue to increase throughput. You must also set t<span>he 
</span><strong><code>maxMessagesPerPoll</code></strong> option for this to work 
properly.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>defaultVisibilityTimeout</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The visibility timeout (in 
seconds) to set in the 
<strong><code>com.amazonaws.services.sqs.model.CreateQueueRequest</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>delaySeconds</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Producer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.9.3:</strong> 
Delay sending messages for a numb
 er of seconds.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>deleteAfterRead</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Consumer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Delete message from SQS after 
it has been read (and processed by the route).</p><p>If this option is false, 
then the same objects will be retrieve over and over again on the polls. 
Therefore you need to use the <a shape="rect" 
href="idempotent-consumer.html">Idempotent Consumer EIP</a> in the route to 
filter out duplicates. You can filter using 
the&#160;<strong><code>S3Constants#BUCKET_NAME</code></strong> 
and&#160;<strong><code>S3Constants#KEY</code></strong> headers, or only 
the&#160;<strong><code>S3Constants#KEY</code></strong> 
header.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>deleteIfFiltered</code></p></td><td colspan=
 "1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Consumer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.12.2, 2.13.0</strong>: 
Whether or not to send the&#160;<strong><code>DeleteMessage</code></strong> to 
the SQS queue if an exchange fails to get through a 
filter.</p><p>If&#160;<strong><code>false</code></strong> and exchange does not 
make it through a Camel filter upstream in the route, then don't send 
<strong><code>DeleteMessage</code></strong>.</p></td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>extendMessageVisibility</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Consumer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.10:</strong> If enabled a 
scheduled background task will keep extending the message visib
 ility on SQS. This is needed if it takes a long time to process the message. 
If set to true<strong><code> visibilityTimeout</code></strong> must be 
set.</p><p>See details at <a shape="rect" class="external-link" 
href="http://docs.amazonwebservices.com/AWSSimpleQueueService/latest/APIReference/Query_QueryChangeMessageVisibility.html";
 rel="nofollow">Amazon docs</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>maximumMessageSize</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> 
The&#160;<strong><code>maximumMessageSize</code></strong> (in bytes) an SQS 
message can contain for this queue, to set in the 
<strong><code>com.amazonaws.services.sqs.model.SetQueueAttributesRequest</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" class="confluenceTd"><
 p><code>maxMessagesPerPoll</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Consumer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The maximum number of messages which can be 
received in one poll to set in the 
<strong><code>com.amazonaws.services.sqs.model.ReceiveMessageRequest</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><code>messageAttributeNames</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>null</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>Consumer</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>A list of message attribute names to 
receive when consuming. </p><p><strong>Camel 
2.17:</strong><span>&#160;</span>Multiple names can be separated by comma. 
<span>&#160;</span></p><p><span><strong>Camel 2.16</strong> or older: The type 
is a Collection so its much harder to c
 onfigure and use.</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>messageRetentionPeriod</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.8:</strong> 
The&#160;<strong><code>messageRetentionPeriod</code></strong> (in seconds) a 
message will be retained by SQS for this queue, to set in the 
<strong><code>com.amazonaws.services.sqs.model.SetQueueAttributesRequest</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>proxyHost</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>null</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><code>Shared</code></td><td colspan="1" 
rowspan="1" class="confluenceTd"><strong>Camel 2.16</strong>: Specify a proxy 
host to be used inside the client definition.</td></tr
 ><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>proxyPort</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><code>null</code></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><code>Shared</code></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><strong>Camel 2.16</strong>: Specify a proxy 
 >port to be used inside the client definition.</td></tr><tr><td colspan="1" 
 >rowspan="1" 
 >class="confluenceTd"><p><code>queueOwnerAWSAccountId</code></p></td><td 
 >colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td 
 >colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p><strong>Camel 2.12:</strong> Specify the 
 >queue owner aws account id when you need to connect the queue with different 
 >account owner.</p></td></tr><tr><td colspan="1" rowspan="1" 
 >class="confluenceTd"><p><code>policy</code></p></td><td colspan="1" 
 >rowspan="1" class="confluenceTd"><p><code>null</code></p></t
 d><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.8:</strong> The policy for this queue 
to set in the 
<strong><code>com.amazonaws.services.sqs.model.SetQueueAttributesRequest</code></strong>.</p></td></tr><tr><td
 colspan="1" rowspan="1" 
class="confluenceTd"><p><code>receiveMessageWaitTimeSeconds</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> If 
you do not specify&#160;<strong><code>WaitTimeSeconds</code></strong> in the 
request, the queue 
attribute&#160;<strong><code>ReceiveMessageWaitTimeSeconds</code></strong> is 
used to determine how long to wait.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>redrivePolicy</code></p></td><td 
colspan="1" rowspan="1" clas
 s="confluenceTd"><code>null</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><code>Shared</code></td><td colspan="1" rowspan="1" 
class="confluenceTd"><strong>Camel 2.15</strong>: Specify the policy that send 
message to&#160;<strong><code>DeadLetter</code></strong> queue. See detail at 
<a shape="rect" class="external-link" 
href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-queues-redrivepolicy.html";
 rel="nofollow">Amazon docs</a>.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>region</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>null</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong>Camel 2.12.3:</strong> Specify the queue region 
which could be used with <strong><code>queueOwnerAWSAccountId</code></strong> 
to build the service URL.<br clear="none"><strong>Note</strong>: Region will st
 ill default to&#160;<strong><code>us-east-1</code></strong> if 
&#160;<span><strong><code>queueOwnerAWSAccountId</code></strong> is not 
specified</span></p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>secretKey</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Amazon AWS Secret Key.</p></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>waitTimeSeconds</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>0</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Producer</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><strong>Camel 2.11:</strong> 
Duration in seconds (0 to 20) that 
the&#160;<strong><code>ReceiveMessage</code></strong> action call will wait 
until a message is in the queue to include in the respons
 e.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>visibilityTimeout</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>null</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><code>Shared</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The duration (in seconds) that the received 
messages are hidden from subsequent retrieve requests after being retrieved by 
a&#160;<strong><code>ReceiveMessage</code></strong> request. This only make 
sense if its different from 
<strong><code>defaultVisibilityTimeout</code></strong>.</p></td></tr></tbody></table></div><div
 class="confluence-information-macro confluence-information-macro-information 
conf-macro output-block" data-hasbody="true" data-macro-name="info"><p 
class="title">Required SQS component options</p><span class="aui-icon 
aui-icon-small aui-iconfont-info confluence-information-macro-icon"> 
</span><div class="confluence-information-macro-body"><p>You have 
 to provide the&#160;<strong><code>amazonSQSClient</code></strong> in the <a 
shape="rect" href="registry.html">Registry</a> or 
your&#160;<strong><code>accessKey</code></strong> 
and&#160;<strong><code>secretKey</code></strong> to access the <a shape="rect" 
class="external-link" href="http://aws.amazon.com/sqs"; rel="nofollow">Amazon's 
SQS</a>.</p></div></div><h3 id="BookComponentAppendix-BatchConsumer">Batch 
Consumer</h3><p>This component implements the <a shape="rect" 
href="batch-consumer.html">Batch Consumer</a>.</p><p>This allows you for 
instance to know how many messages exists in this batch and for instance let 
the <a shape="rect" href="aggregator.html">Aggregator</a> aggregate this number 
of messages.</p><h3 id="BookComponentAppendix-Usage.1">Usage</h3><h4 
id="BookComponentAppendix-MessageheaderssetbytheSQSproducer">Message headers 
set by the SQS producer</h4><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Head
 er</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelAwsSqsMD5OfBody</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The MD5 checksum of the Amazon 
SQS message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelAwsSqsMessageId</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Amazon SQS message 
ID.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelAwsSqsDelaySeconds</code></p></td><td 
colspan="1" rowspan="1" 
class="confluenceTd"><p><code>Integer</code></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Since <strong>Camel 2.11</strong>, the 
delay seconds 
 that the Amazon SQS message can be see by 
others.</p></td></tr></tbody></table></div><h4 
id="BookComponentAppendix-MessageheaderssetbytheSQSconsumer">Message headers 
set by the SQS consumer</h4><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>Type</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelAwsSqsMD5OfBody</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The MD5 checksum of the Amazon 
SQS message.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelAwsSqsMessageId</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Amazon 
 SQS message ID.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelAwsSqsReceiptHandle</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>String</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>The Amazon SQS message receipt 
handle.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelAwsSqsAttributes</code></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><code>Map&lt;String, 
String&gt;</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The Amazon SQS message 
attributes.</p></td></tr></tbody></table></div><h4 
id="BookComponentAppendix-AdvancedAmazonSQSconfiguration">Advanced AmazonSQS 
configuration</h4><p>If your Camel Application is running behind a firewall or 
if you need to have more control over the AmazonSQS instance configuration, you 
can create your own instance:</p><div class="code panel pdl conf-macro 
output-block" style="border-width: 1px;" data-hasbo
 dy="true" data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">AWSCredentials 
awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");
 
 ClientConfiguration clientConfiguration = new ClientConfiguration();
@@ -300,18 +300,18 @@ AmazonSQS client = new AmazonSQSClient(a
 
 registry.bind("client", client);
 </pre>
-</div></div><p>and refer to it in your Camel aws-sqs component 
configuration:</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>and refer to it in your Camel aws-sqs component 
configuration:</p><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" 
data-theme="Default">from("aws-sqs://MyQueue?amazonSQSClient=#client&amp;delay=5000&amp;maxMessagesPerPoll=5")
   .to("mock:result");
 </pre>
-</div></div><h3 
id="BookComponentAppendix-Dependencies">Dependencies</h3><p>Maven users will 
need to add the following dependency to their 
<strong><code>pom.xml</code></strong>.</p><div class="code panel pdl conf-macro 
output-block" data-hasbody="true" data-macro-name="code" style="border-width: 
1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>pom.xml</b></div><div class="codeContent panelContent pdl">
+</div></div><h3 
id="BookComponentAppendix-Dependencies">Dependencies</h3><p>Maven users will 
need to add the following dependency to their 
<strong><code>pom.xml</code></strong>.</p><div class="code panel pdl conf-macro 
output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>pom.xml</b></div><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-aws&lt;/artifactId&gt;
     &lt;version&gt;${camel-version}&lt;/version&gt;
 &lt;/dependency&gt;
 </pre>
-</div></div><p>where <strong><code>${camel-version</code>}</strong> must be 
replaced by the actual version of Camel (2.6 or higher).</p><h3 
id="BookComponentAppendix-JMS-styleSelectors">JMS-style Selectors</h3><p>SQS 
does not allow selectors, but you can effectively achieve this by using the <a 
shape="rect" href="message-filter.html">Camel Filter EIP</a> and setting an 
appropriate <strong><code>visibilityTimeout</code></strong>. When SQS 
dispatches a message, it will wait up to the visibility timeout before it will 
try to dispatch the message to a different consumer unless 
a&#160;<strong><code>DeleteMessage</code></strong> is received. By default, 
Camel will always send the&#160;<strong><code>DeleteMessage</code></strong> at 
the end of the route, unless the route ended in failure. To achieve appropriate 
filtering and not send the&#160;<strong><code>DeleteMessage</code></strong> 
even on successful completion of the route, use a Filter:</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>where <strong><code>${camel-version</code>}</strong> must be 
replaced by the actual version of Camel (2.6 or higher).</p><h3 
id="BookComponentAppendix-JMS-styleSelectors">JMS-style Selectors</h3><p>SQS 
does not allow selectors, but you can effectively achieve this by using the <a 
shape="rect" href="message-filter.html">Camel Filter EIP</a> and setting an 
appropriate <strong><code>visibilityTimeout</code></strong>. When SQS 
dispatches a message, it will wait up to the visibility timeout before it will 
try to dispatch the message to a different consumer unless 
a&#160;<strong><code>DeleteMessage</code></strong> is received. By default, 
Camel will always send the&#160;<strong><code>DeleteMessage</code></strong> at 
the end of the route, unless the route ended in failure. To achieve appropriate 
filtering and not send the&#160;<strong><code>DeleteMessage</code></strong> 
even on successful completion of the route, use a Filter:</p><div class="code 
panel pdl conf-macro output-
 block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" 
data-theme="Default">from("aws-sqs://MyQueue?amazonSQSClient=#client&amp;defaultVisibilityTimeout=5000&amp;deleteIfFiltered=false")
   .filter("${header.login} == true")
   .to("mock:result");
@@ -325,30 +325,30 @@ 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></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">
+</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" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><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();
 context.bind("bye", new SayService("Good Bye!"));
 
 CamelContext camelContext = new DefaultCamelContext(context);</pre>
-</div></div><p>{snippet:id=register|lang=java|url=camel/trunk/camel-core/src/test/java/org/apache/camel/component/pojo/PojoRouteTest.java}</p><p>Once
 an endpoint has been registered, you can build Camel routes that use it to 
process exchanges.</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>{snippet:id=register|lang=java|url=camel/trunk/camel-core/src/test/java/org/apache/camel/component/pojo/PojoRouteTest.java}</p><p>Once
 an endpoint has been registered, you can build Camel routes that use it to 
process exchanges.</p><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">camelContext.addRoutes(new 
RouteBuilder() {
     public void configure() {
         from("direct:hello").to("bean:bye");
     }
 });</pre>
-</div></div><p>A <strong>bean:</strong> endpoint cannot be defined as the 
input to the route; i.e. you cannot consume from it, you can only route from 
some inbound message <a shape="rect" href="endpoint.html">Endpoint</a> to the 
bean endpoint as output. So consider using a <strong>direct:</strong> or 
<strong>queue:</strong> endpoint as the input.</p><p>You can use the 
<code>createProxy()</code> methods on <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/bean/ProxyHelper.html";>ProxyHelper</a>
 to create a proxy that will generate BeanExchanges and send them to any 
endpoint:</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>A <strong>bean:</strong> endpoint cannot be defined as the 
input to the route; i.e. you cannot consume from it, you can only route from 
some inbound message <a shape="rect" href="endpoint.html">Endpoint</a> to the 
bean endpoint as output. So consider using a <strong>direct:</strong> or 
<strong>queue:</strong> endpoint as the input.</p><p>You can use the 
<code>createProxy()</code> methods on <a shape="rect" class="external-link" 
href="http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/component/bean/ProxyHelper.html";>ProxyHelper</a>
 to create a proxy that will generate BeanExchanges and send them to any 
endpoint:</p><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">Endpoint endpoint = 
camelContext.getEndpoint("direct:hello");
 ISay proxy = PojoComponent.createProxy(endpoint, ISay.class);
 String rc = proxy.say();
 assertEquals("Good Bye!", rc);</pre>
-</div></div><p>And the same route using Spring DSL:</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>And the same route using Spring DSL:</p><div class="code panel 
pdl conf-macro output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; 
gutter: false; theme: Default" data-theme="Default">&lt;route&gt; 
  &lt;from uri="direct:hello"&gt;
  &lt;to uri="bean:bye"/&gt;
 &lt;/route&gt;</pre>
-</div></div><h3 id="BookComponentAppendix-Beanasendpoint"><br 
clear="none">Bean as endpoint</h3><p>Camel also supports invoking <a 
shape="rect" href="bean.html">Bean</a> as an Endpoint. In the route 
below:</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><h3 id="BookComponentAppendix-Beanasendpoint"><br 
clear="none">Bean as endpoint</h3><p>Camel also supports invoking <a 
shape="rect" href="bean.html">Bean</a> as an Endpoint. In the route 
below:</p><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; 
gutter: false; theme: Default" data-theme="Default">&lt;camelContext 
xmlns="http://camel.apache.org/schema/spring"&gt;
   &lt;route&gt;
     &lt;from uri="direct:start"/&gt;
@@ -358,13 +358,13 @@ assertEquals("Good Bye!", rc);</pre>
 &lt;/camelContext&gt;
 
 &lt;bean id="myBean" 
class="org.apache.camel.spring.bind.ExampleBean"/&gt;</pre>
-</div></div><p>What happens is that when the exchange is routed to the 
<code>myBean</code> Camel will use the <a shape="rect" 
href="bean-binding.html">Bean Binding</a> to invoke the bean.<br clear="none"> 
The source for the bean is just a plain POJO:</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>What happens is that when the exchange is routed to the 
<code>myBean</code> Camel will use the <a shape="rect" 
href="bean-binding.html">Bean Binding</a> to invoke the bean.<br clear="none"> 
The source for the bean is just a plain POJO:</p><div class="code panel pdl 
conf-macro output-block" style="border-width: 1px;" data-hasbody="true" 
data-macro-name="code"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">public class ExampleBean {
     public String sayHello(String name) {
         return "Hello " + name + "!";
     }
 }</pre>
-</div></div><p>Camel will use <a shape="rect" href="bean-binding.html">Bean 
Binding</a> to invoke the <code>sayHello</code> method, by converting the 
Exchange's In body to the <code>String</code> type and storing the output of 
the method on the Exchange Out body.</p><h3 
id="BookComponentAppendix-JavaDSLbeansyntax">Java DSL bean syntax</h3><p>Java 
DSL comes with syntactic sugar for the <a shape="rect" 
href="bean.html">Bean</a> component. Instead of specifying the bean explicitly 
as the endpoint (i.e. <code>to("bean:beanName")</code>) you can use the 
following syntax:</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>Camel will use <a shape="rect" href="bean-binding.html">Bean 
Binding</a> to invoke the <code>sayHello</code> method, by converting the 
Exchange's In body to the <code>String</code> type and storing the output of 
the method on the Exchange Out body.</p><h3 
id="BookComponentAppendix-JavaDSLbeansyntax">Java DSL bean syntax</h3><p>Java 
DSL comes with syntactic sugar for the <a shape="rect" 
href="bean.html">Bean</a> component. Instead of specifying the bean explicitly 
as the endpoint (i.e. <code>to("bean:beanName")</code>) you can use the 
following syntax:</p><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">//Send message to the bean 
endpoint 
 // and invoke method resolved using Bean Binding. 
 from("direct:start").beanRef("beanName"); 
@@ -372,7 +372,7 @@ from("direct:start").beanRef("beanName")
 // Send message to the bean endpoint 
 // and invoke given method. 
 from("direct:start").beanRef("beanName", "methodName");</pre>
-</div></div><p><br clear="none">Instead of passing name of the reference to 
the bean (so that Camel will lookup for it in the registry), you can specify 
the bean itself:</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><br clear="none">Instead of passing name of the reference to 
the bean (so that Camel will lookup for it in the registry), you can specify 
the bean itself:</p><div class="code panel pdl conf-macro output-block" 
style="border-width: 1px;" data-hasbody="true" data-macro-name="code"><div 
class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">// Send message to the 
given bean instance. 
 from("direct:start").bean(new ExampleBean());
 // Explicit selection of bean method to be invoked.
@@ -386,7 +386,7 @@ from("direct:start").bean(ExampleBean.cl
 
 <h3 id="BookComponentAppendix-URIformat.4">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 class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
 browse:someName[?options]
 </pre>
@@ -396,7 +396,7 @@ browse:someName[?options]
 
 <h3 id="BookComponentAppendix-Sample">Sample</h3>
 <p>In the route below, we insert a <code>browse:</code> component to be able 
to browse the Exchanges that are passing through:</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="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
   from("activemq:order.in").to("browse:orderReceived").to("bean:processOrder");
 </pre>
@@ -404,7 +404,7 @@ browse:someName[?options]
 
 <p>We can now inspect the received exchanges from within the Java code:</p>
 
-<div class="code panel pdl conf-macro output-block" data-hasbody="true" 
data-macro-name="code" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="code panel pdl conf-macro output-block" style="border-width: 1px;" 
data-hasbody="true" data-macro-name="code"><div class="codeContent panelContent 
pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; 
gutter: false; theme: Default" data-theme="Default">
     private CamelContext context;
 
@@ -423,7 +423,7 @@ browse:someName[?options]
 
 
 <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">

[... 2903 lines stripped ...]

Reply via email to