Author: buildbot
Date: Wed Aug 16 21:20:50 2017
New Revision: 1016915

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/activemq.html
    websites/production/camel/content/book-component-appendix.html
    websites/production/camel/content/book-in-one-page.html
    websites/production/camel/content/cache/main.pageCache

Modified: websites/production/camel/content/activemq.html
==============================================================================
--- websites/production/camel/content/activemq.html (original)
+++ websites/production/camel/content/activemq.html Wed Aug 16 21:20:50 2017
@@ -85,77 +85,71 @@
        <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 
id="ActiveMQ-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>.</p><p>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 <code>JmsTemplate</code> for sending and a 
<code>MessageListenerContainer</code> 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 
<code>activemq.jar</code> or <code>activemq-core.jar</code> on your classpath 
along with any C
 amel dependencies such as <code>camel-core.jar</code>, 
<code>camel-spring.jar</code> and <code>camel-jms.jar</code>.</p><div 
class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Transacted and caching</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-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></div></div><h3 id="ActiveMQ-URIformat">URI 
format</h3><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<div class="wiki-content maincontent"><h2 
id="ActiveMQ-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>active
 mq-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><div 
class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Transacted and caching</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-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></div></div><h3 id="ActiveMQ-URIformat">URI 
format</h3><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[activemq:[queue:|topic:]destinationName
 ]]></script>
-</div></div><p>Where <strong>destinationName</strong> is an ActiveMQ queue or 
topic name. By default, the <strong>destinationName</strong> is interpreted as 
a queue name. For example, to connect to the queue, <code>FOO.BAR</code>, 
use:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><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><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[activemq:FOO.BAR
 ]]></script>
-</div></div><p>You can include the optional <code>queue:</code> prefix, if you 
prefer:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><p>You can include the optional 
<strong><code>queue:</code></strong> prefix, if you prefer:</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[activemq:queue:FOO.BAR
 ]]></script>
-</div></div><p>To connect to a topic, you must include the <code>topic:</code> 
prefix. For example, to connect to the topic, <code>Stocks.Prices</code>, 
use:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><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><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[activemq:topic:Stocks.Prices
 ]]></script>
-</div></div><h3 id="ActiveMQ-Options">Options</h3><p>See Options on the <a 
shape="rect" href="jms.html">JMS</a> component as all these options also apply 
for this component.</p><h3 
id="ActiveMQ-ConfiguringtheConnectionFactory">Configuring the Connection 
Factory</h3><p>This <a shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/activemq/trunk/activemq-camel/src/test/java/org/apache/activemq/camel/component/ActiveMQRouteTest.java";>test
 case</a> shows how to add an ActiveMQComponent to the <a shape="rect" 
href="camelcontext.html">CamelContext</a> using the <a shape="rect" 
class="external-link" 
href="http://activemq.apache.org/maven/5.5.0/activemq-camel/apidocs/org/apache/activemq/camel/component/ActiveMQComponent.html#activeMQComponent%28java.lang.String%29";><code>activeMQComponent()</code>
 method</a> while specifying the <a shape="rect" class="external-link" 
href="http://activemq.apache.org/configuring-transports.html";>brokerURL</a> 
used to connect to ActiveMQ.</p
 ><div class="code panel pdl" style="border-width: 1px;"><div 
 >class="codeContent panelContent pdl">
+</div></div><h3 id="ActiveMQ-Options">Options</h3><p>See Options on the <a 
shape="rect" href="jms.html">JMS</a> component as all these options also apply 
for this component.</p><h3 
id="ActiveMQ-ConfiguringtheConnectionFactory">Configuring the Connection 
Factory</h3><p>This <a shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/activemq/trunk/activemq-camel/src/test/java/org/apache/activemq/camel/component/ActiveMQRouteTest.java";>test
 case</a> shows how to add 
an&#160;<strong><code>ActiveMQComponent</code></strong> to the <a shape="rect" 
href="camelcontext.html">CamelContext</a> using the <a shape="rect" 
class="external-link" 
href="http://activemq.apache.org/maven/5.5.0/activemq-camel/apidocs/org/apache/activemq/camel/component/ActiveMQComponent.html#activeMQComponent%28java.lang.String%29";><code>activeMQComponent()</code>
 method</a> while specifying the <a shape="rect" class="external-link" 
href="http://activemq.apache.org/configuring-transports.html";>brokerURL<
 /a> used to connect to ActiveMQ.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[camelContext.addComponent(&quot;activemq&quot;,
 activeMQComponent(&quot;vm://localhost?broker.persistent=false&quot;));
 ]]></script>
-</div></div><h3 
id="ActiveMQ-ConfiguringtheConnectionFactoryusingSpringXML">Configuring the 
Connection Factory using Spring XML</h3><p>You can configure the ActiveMQ 
broker URL on the ActiveMQComponent as follows</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 
id="ActiveMQ-ConfiguringtheConnectionFactoryusingSpringXML">Configuring the 
Connection Factory using Spring XML</h3><p>You can configure the ActiveMQ 
broker URL on the&#160;<strong><code>ActiveMQComponent</code></strong> as 
follows</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;beans 
xmlns=&quot;http://www.springframework.org/schema/beans&quot;
-   xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-   xsi:schemaLocation=&quot;
-   http://www.springframework.org/schema/beans 
-   http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
-   http://camel.apache.org/schema/spring 
-   http://camel.apache.org/schema/spring/camel-spring.xsd&quot;&gt;
+       xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
+       xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans 
+                           
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+                           http://camel.apache.org/schema/spring 
+                           
http://camel.apache.org/schema/spring/camel-spring.xsd&quot;&gt;
 
    &lt;camelContext xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
    &lt;/camelContext&gt;
 
-   &lt;bean id=&quot;activemq&quot; 
-      
class=&quot;org.apache.activemq.camel.component.ActiveMQComponent&quot;&gt;
+   &lt;bean id=&quot;activemq&quot; 
class=&quot;org.apache.activemq.camel.component.ActiveMQComponent&quot;&gt;
       &lt;property name=&quot;brokerURL&quot; 
value=&quot;tcp://somehost:61616&quot;/&gt;
    &lt;/bean&gt;
-
 &lt;/beans&gt;
 ]]></script>
-</div></div><h3 id="ActiveMQ-Usingconnectionpooling">Using connection 
pooling</h3><p>When sending to an ActiveMQ broker using Camel it's recommended 
to use a pooled connection factory to efficiently handle pooling of JMS 
connections, sessions and producers. This is documented on the <a shape="rect" 
class="external-link" 
href="http://activemq.apache.org/spring-support.html";>ActiveMQ Spring Support 
</a> page.</p><p>You can grab ActiveMQ's 
<code>org.apache.activemq.pool.PooledConnectionFactory</code> with 
Maven:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><h3 id="ActiveMQ-UsingConnectionPooling">Using Connection 
Pooling</h3><p>When sending to an ActiveMQ broker using Camel it's recommended 
to use a pooled connection factory to efficiently handle pooling of JMS 
connections, sessions and producers. This is documented on the <a shape="rect" 
class="external-link" 
href="http://activemq.apache.org/spring-support.html";>ActiveMQ Spring Support 
</a> page.</p><p>You can grab ActiveMQ's 
<strong><code>org.apache.activemq.pool.PooledConnectionFactory</code></strong> 
with Maven:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
    &lt;groupId&gt;org.apache.activemq&lt;/groupId&gt;
    &lt;artifactId&gt;activemq-pool&lt;/artifactId&gt;
    &lt;version&gt;5.6.0&lt;/version&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><p>And then setup the <strong>activemq</strong> Camel component as 
follows:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;bean id=&quot;jmsConnectionFactory&quot; 
-   class=&quot;org.apache.activemq.ActiveMQConnectionFactory&quot;&gt;
-   &lt;property name=&quot;brokerURL&quot; 
value=&quot;tcp://localhost:61616&quot; /&gt;
+</div></div><p>And then setup the&#160;<strong><code>activemq</code></strong> 
Camel component as follows:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;bean id=&quot;jmsConnectionFactory&quot; 
class=&quot;org.apache.activemq.ActiveMQConnectionFactory&quot;&gt;
+   &lt;property name=&quot;brokerURL&quot; 
value=&quot;tcp://localhost:61616&quot;/&gt;
 &lt;/bean&gt;
 
-&lt;bean id=&quot;pooledConnectionFactory&quot; 
-   class=&quot;org.apache.activemq.pool.PooledConnectionFactory&quot; 
init-method=&quot;start&quot; destroy-method=&quot;stop&quot;&gt;
-   &lt;property name=&quot;maxConnections&quot; value=&quot;8&quot; /&gt;
-   &lt;property name=&quot;connectionFactory&quot; 
ref=&quot;jmsConnectionFactory&quot; /&gt;
+&lt;bean id=&quot;pooledConnectionFactory&quot; 
class=&quot;org.apache.activemq.pool.PooledConnectionFactory&quot; 
init-method=&quot;start&quot; destroy-method=&quot;stop&quot;&gt;
+   &lt;property name=&quot;maxConnections&quot; value=&quot;8&quot;/&gt;
+   &lt;property name=&quot;connectionFactory&quot; 
ref=&quot;jmsConnectionFactory&quot;/&gt;
 &lt;/bean&gt;
 
-&lt;bean id=&quot;jmsConfig&quot; 
-   class=&quot;org.apache.camel.component.jms.JmsConfiguration&quot;&gt;
+&lt;bean id=&quot;jmsConfig&quot; 
class=&quot;org.apache.camel.component.jms.JmsConfiguration&quot;&gt;
    &lt;property name=&quot;connectionFactory&quot; 
ref=&quot;pooledConnectionFactory&quot;/&gt;
    &lt;property name=&quot;concurrentConsumers&quot; value=&quot;10&quot;/&gt;
 &lt;/bean&gt;
 
-&lt;bean id=&quot;activemq&quot; 
-    class=&quot;org.apache.activemq.camel.component.ActiveMQComponent&quot;&gt;
+&lt;bean id=&quot;activemq&quot; 
class=&quot;org.apache.activemq.camel.component.ActiveMQComponent&quot;&gt;
     &lt;property name=&quot;configuration&quot; ref=&quot;jmsConfig&quot;/&gt;
 
-    &lt;!-- if we are using transacted then enable CACHE_CONSUMER (if not 
using XA) to run faster
-         see more details at: http://camel.apache.org/jms
-    &lt;property name=&quot;transacted&quot; value=&quot;true&quot;/&gt;
-    &lt;property name=&quot;cacheLevelName&quot; 
value=&quot;CACHE_CONSUMER&quot; /&gt;
+    &lt;!-- If transacted=true then enable CACHE_CONSUMER (if not using XA) to 
run faster.
+         See more details at: http://camel.apache.org/jms --&gt;
+    &lt;!--
+    &lt;property name=&quot;transacted&quot; value=&quot;true&quot;/&gt;
+    &lt;property name=&quot;cacheLevelName&quot; 
value=&quot;CACHE_CONSUMER&quot;/&gt;
     --&gt;
 &lt;/bean&gt;
 ]]></script>
-</div></div><div class="confluence-information-macro 
confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Notice the <strong>init</strong> 
and <strong>destroy</strong> methods on the pooled connection factory. This is 
important to ensure the connection pool is properly started and 
shutdown.</p></div></div><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Important 
information about when using transactions</p><span class="aui-icon 
aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>If you are using transactions then 
see more details at <a shape="rect" href="jms.html">JMS</a>. And remember to 
set <code>cacheLevelName</code> to <code>CACHE_CONSUMER</code> if you are not 
using XA transactions. This can dramatically improve performance.<
 /p></div></div><p>The <code>PooledConnectionFactory</code> will then create a 
connection pool with up to 8 connections in use at the same time. Each 
connection can be shared by many sessions. There is an option named 
<code>maximumActive</code> you can use to configure the maximum number of 
sessions per connection; the default value is <code>500</code>. From 
<strong>ActiveMQ 5.7</strong> onwards the option has been renamed to better 
reflect its purpose, being named as 
<code>maximumActiveSessionPerConnection</code>. Notice the 
<code>concurrentConsumers</code> is set to a higher value than 
<code>maxConnections</code> is. This is okay, as each consumer is using a 
session, and as a session can share the same connection, we are in the safe. In 
this example we can have 8 * 500 = 4000 active sessions at the same 
time.</p><h3 id="ActiveMQ-InvokingMessageListenerPOJOsinaCamelroute">Invoking 
MessageListener POJOs in a Camel route</h3><p>The ActiveMQ component also 
provides a helper <a shape="r
 ect" href="type-converter.html">Type Converter</a> from a JMS MessageListener 
to a <a shape="rect" href="processor.html">Processor</a>. This means that the 
<a shape="rect" href="bean.html">Bean</a> component is capable of invoking any 
JMS MessageListener bean directly inside any route.</p><p>So for example you 
can create a MessageListener in JMS like this:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><div class="confluence-information-macro 
confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Notice 
the&#160;<strong><code>init</code></strong> 
and&#160;<strong><code>destroy</code></strong> methods on the pooled connection 
factory. This is important to ensure the connection pool is properly started 
and shutdown.</p></div></div><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Important 
information about when using transactions</p><span class="aui-icon 
aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>If you are using transactions then 
see more details at <a shape="rect" href="jms.html">JMS</a>. And remember to 
set <strong><code>cacheLevelName</code></strong> to 
<strong><code>CACHE_CONSUMER</code></strong> if you are 
 not using XA transactions. This can dramatically improve 
performance.</p></div></div><p>The 
<strong><code>PooledConnectionFactory</code></strong> will then create a 
connection pool with up to 8 connections in use at the same time. Each 
connection can be shared by many sessions. There is an option named 
<strong><code>maximumActive</code></strong> you can use to configure the 
maximum number of sessions per connection; the default value is 
<strong><code>500</code></strong>. From <strong>ActiveMQ 5.7</strong>: the 
option has been renamed to better reflect its purpose, being named as 
<strong><code>maximumActiveSessionPerConnection</code></strong>. Notice the 
<strong><code>concurrentConsumers</code></strong> is set to a higher value than 
<strong><code>maxConnections</code></strong> is. This is okay, as each consumer 
is using a session, and as a session can share the same connection, we are in 
the safe. In this example we can have&#160;<strong><code>8 * 500 = 
4000</code></strong> active se
 ssions at the same time.</p><h3 
id="ActiveMQ-InvokingMessageListenerPOJOsinaCamelroute">Invoking 
MessageListener POJOs in a Camel route</h3><p>The ActiveMQ component also 
provides a helper <a shape="rect" href="type-converter.html">Type Converter</a> 
from a JMS&#160;<strong><code>MessageListener</code></strong> to a <a 
shape="rect" href="processor.html">Processor</a>. This means that the <a 
shape="rect" href="bean.html">Bean</a> component is capable of invoking any 
JMS&#160;<strong><code>MessageListener</code></strong> bean directly inside any 
route.</p><p>So for example you can create 
a&#160;<strong><code>MessageListener</code></strong> in JMS like this:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[public class MyListener implements 
MessageListener {
    public void onMessage(Message jmsMessage) {
        // ...
@@ -163,42 +157,69 @@
 }
 ]]></script>
 </div></div><p>Then use it in your Camel route as follows</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;file://foo/bar&quot;).
-  bean(MyListener.class);
+<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;file://foo/bar&quot;)
+  .bean(MyListener.class);
 ]]></script>
-</div></div><p>That is, you can reuse any of the Camel <a shape="rect" 
href="components.html">Components</a> and easily integrate them into your JMS 
<code>MessageListener</code> POJO!</p><h3 
id="ActiveMQ-UsingActiveMQDestinationOptions">Using ActiveMQ Destination 
Options</h3><p><strong>Available as of ActiveMQ 5.6</strong></p><p>You can 
configure the <a shape="rect" class="external-link" 
href="http://activemq.apache.org/destination-options.html";>Destination 
Options</a> in the endpoint uri, using the "destination." prefix. For example 
to mark a consumer as exclusive, and set its prefetch size to 50, you can do as 
follows:</p><p>&#160;</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><p>That is, you can reuse any of the Camel <a shape="rect" 
href="components.html">Components</a> and easily integrate them into your 
JMS&#160;<strong><code>MessageListener</code></strong> POJO!</p><h3 
id="ActiveMQ-UsingActiveMQDestinationOptions">Using ActiveMQ Destination 
Options</h3><p><strong>Available as of ActiveMQ 5.6</strong></p><p>You can 
configure the <a shape="rect" class="external-link" 
href="http://activemq.apache.org/destination-options.html";>Destination 
Options</a> in the endpoint URI, using 
the&#160;<strong><code>destination.</code></strong> prefix. For example to mark 
a consumer as exclusive, and set its prefetch size to 
<strong><code>50</code></strong>, you can do as follows:</p><p>&#160;</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;from 
uri=&quot;activemq:foo?destination.consumer.exclusive=true&amp;amp;destination.consumer.prefetchSize=50&quot;/&gt;]]></script>
-</div></div><h3 id="ActiveMQ-ConsumingAdvisoryMessages">Consuming Advisory 
Messages</h3><p>ActiveMQ can generate <a shape="rect" class="external-link" 
href="http://activemq.apache.org/advisory-message.html";>Advisory messages </a> 
which are put in topics that you can consume. Such messages can help you send 
alerts in case you detect slow consumers or to build statistics (number of 
messages/produced per day, etc.) The following Spring DSL example shows you how 
to read messages from a topic.</p><p>The below route starts by reading the 
topic <em>ActiveMQ.Advisory.Connection</em>. To watch another topic, simply 
change the name according to the name provided in ActiveMQ Advisory Messages 
documentation. The parameter mapJmsMessage=false allows for converting the 
org.apache.activemq.command.ActiveMqMessage object from the jms queue. Next, 
the body received is converted into a String for the purposes of this example 
and a carriage return is added. Finally, the string is added to a file</p><d
 iv class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><h3 id="ActiveMQ-ConsumingAdvisoryMessages">Consuming Advisory 
Messages</h3><p>ActiveMQ can generate <a shape="rect" class="external-link" 
href="http://activemq.apache.org/advisory-message.html";>Advisory messages </a> 
which are put in topics that you can consume. Such messages can help you send 
alerts in case you detect slow consumers or to build statistics (number of 
messages/produced per day, etc.) The following Spring DSL example shows you how 
to read messages from a topic.</p><p>The below route starts by reading the 
topic <em>ActiveMQ.Advisory.Connection</em>. To watch another topic, simply 
change the name according to the name provided in ActiveMQ Advisory Messages 
documentation. The 
parameter&#160;<strong><code>mapJmsMessage=false</code></strong> allows for 
converting 
the&#160;<strong><code>org.apache.activemq.command.ActiveMqMessage</code></strong>
 object from the JMS queue. Next, the body received is converted into a String 
for the purposes of this example and a 
 carriage return is added. Finally, the string is added to a file</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;route&gt;
-   &lt;from 
uri=&quot;activemq:topic:ActiveMQ.Advisory.Connection?mapJmsMessage=false&quot; 
/&gt;
+   &lt;from 
uri=&quot;activemq:topic:ActiveMQ.Advisory.Connection?mapJmsMessage=false&quot;/&gt;
    &lt;convertBodyTo type=&quot;java.lang.String&quot;/&gt;
    &lt;transform&gt;
       &lt;simple&gt;${in.body}&amp;#13;&lt;/simple&gt;
    &lt;/transform&gt;
-   &lt;to 
uri=&quot;file://data/activemq/?fileExist=Append&amp;amp;fileName=advisoryConnection-${date:now:yyyyMMdd}.txt&quot;
 /&gt;
+   &lt;to 
uri=&quot;file://data/activemq/?fileExist=Append&amp;amp;fileName=advisoryConnection-${date:now:yyyyMMdd}.txt&quot;/&gt;
 &lt;/route&gt;
 ]]></script>
-</div></div><p>If you consume a message on a queue, you should see the 
following files under the data/activemq folder 
:</p><p>advisoryConnection-20100312.txt<br clear="none"> 
advisoryProducer-20100312.txt</p><p>and containing string:</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[ActiveMQMessage {commandId = 0, 
responseRequired = false, 
-messageId = ID:dell-charles-3258-1268399815140
--1:0:0:0:221, originalDestination = null, originalTransactionId = null,
+</div></div><p>If you consume a message on a queue, you should see the 
following files under the&#160;<strong><code>data/activemq</code></strong> 
folder :</p><p><strong><code>advisoryConnection-20100312.txt</code></strong><br 
clear="none"><strong><code>advisoryProducer-20100312.txt</code></strong></p><p>containing
 the following string:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[ActiveMQMessage {
+commandId = 0, 
+responseRequired = false, 
+messageId = ID:dell-charles-3258-1268399815140-1:0:0:0:221, 
+originalDestination = null, 
+originalTransactionId = null,
 producerId = ID:dell-charles-3258-1268399815140-1:0:0:0, 
-destination = topic://ActiveMQ.Advisory.Connection, transactionId = null, 
-expiration = 0, timestamp = 0, arrival = 0, brokerInTime = 1268403383468, 
-brokerOutTime = 1268403383468, correlationId = null, replyTo = null, 
-persistent = false, type = Advisory, priority = 0, groupID = null, 
groupSequence = 0, 
-targetConsumerId = null, compressed = false, userID = null, content = null, 
+destination = topic://ActiveMQ.Advisory.Connection, 
+transactionId = null, 
+expiration = 0, 
+timestamp = 0, 
+arrival = 0, 
+brokerInTime = 1268403383468, 
+brokerOutTime = 1268403383468, 
+correlationId = null, 
+replyTo = null, 
+persistent = false, 
+type = Advisory, 
+priority = 0, 
+groupID = null, 
+groupSequence = 0, 
+targetConsumerId = null, 
+compressed = false, 
+userID = null, 
+content = null, 
 marshalledProperties = org.apache.activemq.util.ByteSequence@17e2705, 
-dataStructure = ConnectionInfo {commandId = 1, responseRequired = true, 
-connectionId = ID:dell-charles-3258-1268399815140-2:50, 
-clientId = ID:dell-charles-3258-1268399815140-14:0, userName = , password = 
*****, 
-brokerPath = null, brokerMasterConnector = false, manageable = true, 
-clientMaster = true}, redeliveryCounter = 0, size = 0, properties = 
-{originBrokerName=master, 
originBrokerId=ID:dell-charles-3258-1268399815140-0:0, 
-originBrokerURL=vm://master}, readOnlyProperties = true, readOnlyBody = true, 
-droppable = false}
+dataStructure = ConnectionInfo {
+  commandId = 1, 
+  responseRequired = true, 
+  connectionId = ID:dell-charles-3258-1268399815140-2:50, 
+  clientId = ID:dell-charles-3258-1268399815140-14:0, 
+  userName = , 
+  password = *****, 
+  brokerPath = null, 
+  brokerMasterConnector = false, 
+  manageable = true, 
+  clientMaster = true
+}, 
+redeliveryCounter = 0, 
+size = 0, 
+properties = { originBrokerName=master, 
originBrokerId=ID:dell-charles-3258-1268399815140-0:0, 
originBrokerURL=vm://master }, 
+readOnlyProperties = true, 
+readOnlyBody = true, 
+droppable = false
+}
 ]]></script>
-</div></div><h3 id="ActiveMQ-GettingComponentJAR">Getting Component 
JAR</h3><p>You will need this dependency</p><ul 
class="alternate"><li><code>activemq-camel</code></li></ul><p><a shape="rect" 
href="activemq.html">ActiveMQ</a> is an extension of the <a shape="rect" 
href="jms.html">JMS</a> component released with the <a shape="rect" 
class="external-link" href="http://activemq.apache.org";>ActiveMQ 
project</a>.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><h3 id="ActiveMQ-GettingComponentJAR">Getting Component 
JAR</h3><p>You will need this dependency</p><ul 
class="alternate"><li><strong><code>activemq-camel</code></strong></li></ul><p><a
 shape="rect" href="activemq.html">ActiveMQ</a> is an extension of the <a 
shape="rect" href="jms.html">JMS</a> component released with the <a 
shape="rect" class="external-link" href="http://activemq.apache.org";>ActiveMQ 
project</a>.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
   &lt;groupId&gt;org.apache.activemq&lt;/groupId&gt;
   &lt;artifactId&gt;activemq-camel&lt;/artifactId&gt;

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 Wed Aug 16 
21:20:50 2017
@@ -87,77 +87,71 @@
        <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><div class="chapter" 
id="chapter-component-appendix"><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>.</p><p>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 <code>JmsTemplate</code> for 
sending and a <code>MessageListenerContainer</code> for consuming. All the 
options from the <a shape="rect" href="j
 ms.html">JMS</a> component also applies for this component.</p><p>To use this 
component make sure you have the <code>activemq.jar</code> or 
<code>activemq-core.jar</code> on your classpath along with any Camel 
dependencies such as <code>camel-core.jar</code>, <code>camel-spring.jar</code> 
and <code>camel-jms.jar</code>.</p><div class="confluence-information-macro 
confluence-information-macro-tip"><p class="title">Transacted and 
caching</p><span class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-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></div></div><h3 id="BookComponentAppendix-URIformat">URI 
format</h3><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<div class="wiki-content maincontent"><div class="chapter" 
id="chapter-component-appendix"><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>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><div 
class="confluence-information-macro confluence-information-macro-tip"><p 
class="title">Transacted and caching</p><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-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></div></div><h3 id="BookComponentAppendix-URIformat">URI 
format</h3><div class
 ="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[activemq:[queue:|topic:]destinationName
 ]]></script>
-</div></div><p>Where <strong>destinationName</strong> is an ActiveMQ queue or 
topic name. By default, the <strong>destinationName</strong> is interpreted as 
a queue name. For example, to connect to the queue, <code>FOO.BAR</code>, 
use:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><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><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[activemq:FOO.BAR
 ]]></script>
-</div></div><p>You can include the optional <code>queue:</code> prefix, if you 
prefer:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><p>You can include the optional 
<strong><code>queue:</code></strong> prefix, if you prefer:</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[activemq:queue:FOO.BAR
 ]]></script>
-</div></div><p>To connect to a topic, you must include the <code>topic:</code> 
prefix. For example, to connect to the topic, <code>Stocks.Prices</code>, 
use:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><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><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[activemq:topic:Stocks.Prices
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-Options">Options</h3><p>See Options 
on the <a shape="rect" href="jms.html">JMS</a> component as all these options 
also apply for this component.</p><h3 
id="BookComponentAppendix-ConfiguringtheConnectionFactory">Configuring the 
Connection Factory</h3><p>This <a shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/activemq/trunk/activemq-camel/src/test/java/org/apache/activemq/camel/component/ActiveMQRouteTest.java";>test
 case</a> shows how to add an ActiveMQComponent to the <a shape="rect" 
href="camelcontext.html">CamelContext</a> using the <a shape="rect" 
class="external-link" 
href="http://activemq.apache.org/maven/5.5.0/activemq-camel/apidocs/org/apache/activemq/camel/component/ActiveMQComponent.html#activeMQComponent%28java.lang.String%29";><code>activeMQComponent()</code>
 method</a> while specifying the <a shape="rect" class="external-link" 
href="http://activemq.apache.org/configuring-transports.html";>brokerURL</a> 
used 
 to connect to ActiveMQ.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-Options">Options</h3><p>See Options 
on the <a shape="rect" href="jms.html">JMS</a> component as all these options 
also apply for this component.</p><h3 
id="BookComponentAppendix-ConfiguringtheConnectionFactory">Configuring the 
Connection Factory</h3><p>This <a shape="rect" class="external-link" 
href="http://svn.apache.org/repos/asf/activemq/trunk/activemq-camel/src/test/java/org/apache/activemq/camel/component/ActiveMQRouteTest.java";>test
 case</a> shows how to add 
an&#160;<strong><code>ActiveMQComponent</code></strong> to the <a shape="rect" 
href="camelcontext.html">CamelContext</a> using the <a shape="rect" 
class="external-link" 
href="http://activemq.apache.org/maven/5.5.0/activemq-camel/apidocs/org/apache/activemq/camel/component/ActiveMQComponent.html#activeMQComponent%28java.lang.String%29";><code>activeMQComponent()</code>
 method</a> while specifying the <a shape="rect" class="external-link" 
href="http://activemq.apache.org/configuring-t
 ransports.html">brokerURL</a> used to connect to ActiveMQ.</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[camelContext.addComponent(&quot;activemq&quot;,
 activeMQComponent(&quot;vm://localhost?broker.persistent=false&quot;));
 ]]></script>
-</div></div><h3 
id="BookComponentAppendix-ConfiguringtheConnectionFactoryusingSpringXML">Configuring
 the Connection Factory using Spring XML</h3><p>You can configure the ActiveMQ 
broker URL on the ActiveMQComponent as follows</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h3 
id="BookComponentAppendix-ConfiguringtheConnectionFactoryusingSpringXML">Configuring
 the Connection Factory using Spring XML</h3><p>You can configure the ActiveMQ 
broker URL on the&#160;<strong><code>ActiveMQComponent</code></strong> as 
follows</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;beans 
xmlns=&quot;http://www.springframework.org/schema/beans&quot;
-   xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
-   xsi:schemaLocation=&quot;
-   http://www.springframework.org/schema/beans 
-   http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
-   http://camel.apache.org/schema/spring 
-   http://camel.apache.org/schema/spring/camel-spring.xsd&quot;&gt;
+       xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
+       xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans 
+                           
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+                           http://camel.apache.org/schema/spring 
+                           
http://camel.apache.org/schema/spring/camel-spring.xsd&quot;&gt;
 
    &lt;camelContext xmlns=&quot;http://camel.apache.org/schema/spring&quot;&gt;
    &lt;/camelContext&gt;
 
-   &lt;bean id=&quot;activemq&quot; 
-      
class=&quot;org.apache.activemq.camel.component.ActiveMQComponent&quot;&gt;
+   &lt;bean id=&quot;activemq&quot; 
class=&quot;org.apache.activemq.camel.component.ActiveMQComponent&quot;&gt;
       &lt;property name=&quot;brokerURL&quot; 
value=&quot;tcp://somehost:61616&quot;/&gt;
    &lt;/bean&gt;
-
 &lt;/beans&gt;
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-Usingconnectionpooling">Using 
connection pooling</h3><p>When sending to an ActiveMQ broker using Camel it's 
recommended to use a pooled connection factory to efficiently handle pooling of 
JMS connections, sessions and producers. This is documented on the <a 
shape="rect" class="external-link" 
href="http://activemq.apache.org/spring-support.html";>ActiveMQ Spring Support 
</a> page.</p><p>You can grab ActiveMQ's 
<code>org.apache.activemq.pool.PooledConnectionFactory</code> with 
Maven:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-UsingConnectionPooling">Using 
Connection Pooling</h3><p>When sending to an ActiveMQ broker using Camel it's 
recommended to use a pooled connection factory to efficiently handle pooling of 
JMS connections, sessions and producers. This is documented on the <a 
shape="rect" class="external-link" 
href="http://activemq.apache.org/spring-support.html";>ActiveMQ Spring Support 
</a> page.</p><p>You can grab ActiveMQ's 
<strong><code>org.apache.activemq.pool.PooledConnectionFactory</code></strong> 
with Maven:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
    &lt;groupId&gt;org.apache.activemq&lt;/groupId&gt;
    &lt;artifactId&gt;activemq-pool&lt;/artifactId&gt;
    &lt;version&gt;5.6.0&lt;/version&gt;
 &lt;/dependency&gt;
 ]]></script>
-</div></div><p>And then setup the <strong>activemq</strong> Camel component as 
follows:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;bean id=&quot;jmsConnectionFactory&quot; 
-   class=&quot;org.apache.activemq.ActiveMQConnectionFactory&quot;&gt;
-   &lt;property name=&quot;brokerURL&quot; 
value=&quot;tcp://localhost:61616&quot; /&gt;
+</div></div><p>And then setup the&#160;<strong><code>activemq</code></strong> 
Camel component as follows:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;bean id=&quot;jmsConnectionFactory&quot; 
class=&quot;org.apache.activemq.ActiveMQConnectionFactory&quot;&gt;
+   &lt;property name=&quot;brokerURL&quot; 
value=&quot;tcp://localhost:61616&quot;/&gt;
 &lt;/bean&gt;
 
-&lt;bean id=&quot;pooledConnectionFactory&quot; 
-   class=&quot;org.apache.activemq.pool.PooledConnectionFactory&quot; 
init-method=&quot;start&quot; destroy-method=&quot;stop&quot;&gt;
-   &lt;property name=&quot;maxConnections&quot; value=&quot;8&quot; /&gt;
-   &lt;property name=&quot;connectionFactory&quot; 
ref=&quot;jmsConnectionFactory&quot; /&gt;
+&lt;bean id=&quot;pooledConnectionFactory&quot; 
class=&quot;org.apache.activemq.pool.PooledConnectionFactory&quot; 
init-method=&quot;start&quot; destroy-method=&quot;stop&quot;&gt;
+   &lt;property name=&quot;maxConnections&quot; value=&quot;8&quot;/&gt;
+   &lt;property name=&quot;connectionFactory&quot; 
ref=&quot;jmsConnectionFactory&quot;/&gt;
 &lt;/bean&gt;
 
-&lt;bean id=&quot;jmsConfig&quot; 
-   class=&quot;org.apache.camel.component.jms.JmsConfiguration&quot;&gt;
+&lt;bean id=&quot;jmsConfig&quot; 
class=&quot;org.apache.camel.component.jms.JmsConfiguration&quot;&gt;
    &lt;property name=&quot;connectionFactory&quot; 
ref=&quot;pooledConnectionFactory&quot;/&gt;
    &lt;property name=&quot;concurrentConsumers&quot; value=&quot;10&quot;/&gt;
 &lt;/bean&gt;
 
-&lt;bean id=&quot;activemq&quot; 
-    class=&quot;org.apache.activemq.camel.component.ActiveMQComponent&quot;&gt;
+&lt;bean id=&quot;activemq&quot; 
class=&quot;org.apache.activemq.camel.component.ActiveMQComponent&quot;&gt;
     &lt;property name=&quot;configuration&quot; ref=&quot;jmsConfig&quot;/&gt;
 
-    &lt;!-- if we are using transacted then enable CACHE_CONSUMER (if not 
using XA) to run faster
-         see more details at: http://camel.apache.org/jms
-    &lt;property name=&quot;transacted&quot; value=&quot;true&quot;/&gt;
-    &lt;property name=&quot;cacheLevelName&quot; 
value=&quot;CACHE_CONSUMER&quot; /&gt;
+    &lt;!-- If transacted=true then enable CACHE_CONSUMER (if not using XA) to 
run faster.
+         See more details at: http://camel.apache.org/jms --&gt;
+    &lt;!--
+    &lt;property name=&quot;transacted&quot; value=&quot;true&quot;/&gt;
+    &lt;property name=&quot;cacheLevelName&quot; 
value=&quot;CACHE_CONSUMER&quot;/&gt;
     --&gt;
 &lt;/bean&gt;
 ]]></script>
-</div></div><div class="confluence-information-macro 
confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Notice the <strong>init</strong> 
and <strong>destroy</strong> methods on the pooled connection factory. This is 
important to ensure the connection pool is properly started and 
shutdown.</p></div></div><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Important 
information about when using transactions</p><span class="aui-icon 
aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>If you are using transactions then 
see more details at <a shape="rect" href="jms.html">JMS</a>. And remember to 
set <code>cacheLevelName</code> to <code>CACHE_CONSUMER</code> if you are not 
using XA transactions. This can dramatically improve performance.<
 /p></div></div><p>The <code>PooledConnectionFactory</code> will then create a 
connection pool with up to 8 connections in use at the same time. Each 
connection can be shared by many sessions. There is an option named 
<code>maximumActive</code> you can use to configure the maximum number of 
sessions per connection; the default value is <code>500</code>. From 
<strong>ActiveMQ 5.7</strong> onwards the option has been renamed to better 
reflect its purpose, being named as 
<code>maximumActiveSessionPerConnection</code>. Notice the 
<code>concurrentConsumers</code> is set to a higher value than 
<code>maxConnections</code> is. This is okay, as each consumer is using a 
session, and as a session can share the same connection, we are in the safe. In 
this example we can have 8 * 500 = 4000 active sessions at the same 
time.</p><h3 
id="BookComponentAppendix-InvokingMessageListenerPOJOsinaCamelroute">Invoking 
MessageListener POJOs in a Camel route</h3><p>The ActiveMQ component also 
provides a helpe
 r <a shape="rect" href="type-converter.html">Type Converter</a> from a JMS 
MessageListener to a <a shape="rect" href="processor.html">Processor</a>. This 
means that the <a shape="rect" href="bean.html">Bean</a> component is capable 
of invoking any JMS MessageListener bean directly inside any route.</p><p>So 
for example you can create a MessageListener in JMS like this:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><div class="confluence-information-macro 
confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Notice 
the&#160;<strong><code>init</code></strong> 
and&#160;<strong><code>destroy</code></strong> methods on the pooled connection 
factory. This is important to ensure the connection pool is properly started 
and shutdown.</p></div></div><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Important 
information about when using transactions</p><span class="aui-icon 
aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>If you are using transactions then 
see more details at <a shape="rect" href="jms.html">JMS</a>. And remember to 
set <strong><code>cacheLevelName</code></strong> to 
<strong><code>CACHE_CONSUMER</code></strong> if you are 
 not using XA transactions. This can dramatically improve 
performance.</p></div></div><p>The 
<strong><code>PooledConnectionFactory</code></strong> will then create a 
connection pool with up to 8 connections in use at the same time. Each 
connection can be shared by many sessions. There is an option named 
<strong><code>maximumActive</code></strong> you can use to configure the 
maximum number of sessions per connection; the default value is 
<strong><code>500</code></strong>. From <strong>ActiveMQ 5.7</strong>: the 
option has been renamed to better reflect its purpose, being named as 
<strong><code>maximumActiveSessionPerConnection</code></strong>. Notice the 
<strong><code>concurrentConsumers</code></strong> is set to a higher value than 
<strong><code>maxConnections</code></strong> is. This is okay, as each consumer 
is using a session, and as a session can share the same connection, we are in 
the safe. In this example we can have&#160;<strong><code>8 * 500 = 
4000</code></strong> active se
 ssions at the same time.</p><h3 
id="BookComponentAppendix-InvokingMessageListenerPOJOsinaCamelroute">Invoking 
MessageListener POJOs in a Camel route</h3><p>The ActiveMQ component also 
provides a helper <a shape="rect" href="type-converter.html">Type Converter</a> 
from a JMS&#160;<strong><code>MessageListener</code></strong> to a <a 
shape="rect" href="processor.html">Processor</a>. This means that the <a 
shape="rect" href="bean.html">Bean</a> component is capable of invoking any 
JMS&#160;<strong><code>MessageListener</code></strong> bean directly inside any 
route.</p><p>So for example you can create 
a&#160;<strong><code>MessageListener</code></strong> in JMS like this:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[public class MyListener implements 
MessageListener {
    public void onMessage(Message jmsMessage) {
        // ...
@@ -165,42 +159,69 @@
 }
 ]]></script>
 </div></div><p>Then use it in your Camel route as follows</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;file://foo/bar&quot;).
-  bean(MyListener.class);
+<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[from(&quot;file://foo/bar&quot;)
+  .bean(MyListener.class);
 ]]></script>
-</div></div><p>That is, you can reuse any of the Camel <a shape="rect" 
href="components.html">Components</a> and easily integrate them into your JMS 
<code>MessageListener</code> POJO!</p><h3 
id="BookComponentAppendix-UsingActiveMQDestinationOptions">Using ActiveMQ 
Destination Options</h3><p><strong>Available as of ActiveMQ 
5.6</strong></p><p>You can configure the <a shape="rect" class="external-link" 
href="http://activemq.apache.org/destination-options.html";>Destination 
Options</a> in the endpoint uri, using the "destination." prefix. For example 
to mark a consumer as exclusive, and set its prefetch size to 50, you can do as 
follows:</p><p>&#160;</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+</div></div><p>That is, you can reuse any of the Camel <a shape="rect" 
href="components.html">Components</a> and easily integrate them into your 
JMS&#160;<strong><code>MessageListener</code></strong> POJO!</p><h3 
id="BookComponentAppendix-UsingActiveMQDestinationOptions">Using ActiveMQ 
Destination Options</h3><p><strong>Available as of ActiveMQ 
5.6</strong></p><p>You can configure the <a shape="rect" class="external-link" 
href="http://activemq.apache.org/destination-options.html";>Destination 
Options</a> in the endpoint URI, using 
the&#160;<strong><code>destination.</code></strong> prefix. For example to mark 
a consumer as exclusive, and set its prefetch size to 
<strong><code>50</code></strong>, you can do as follows:</p><p>&#160;</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;from 
uri=&quot;activemq:foo?destination.consumer.exclusive=true&amp;amp;destination.consumer.prefetchSize=50&quot;/&gt;]]></script>
-</div></div><h3 id="BookComponentAppendix-ConsumingAdvisoryMessages">Consuming 
Advisory Messages</h3><p>ActiveMQ can generate <a shape="rect" 
class="external-link" 
href="http://activemq.apache.org/advisory-message.html";>Advisory messages </a> 
which are put in topics that you can consume. Such messages can help you send 
alerts in case you detect slow consumers or to build statistics (number of 
messages/produced per day, etc.) The following Spring DSL example shows you how 
to read messages from a topic.</p><p>The below route starts by reading the 
topic <em>ActiveMQ.Advisory.Connection</em>. To watch another topic, simply 
change the name according to the name provided in ActiveMQ Advisory Messages 
documentation. The parameter mapJmsMessage=false allows for converting the 
org.apache.activemq.command.ActiveMqMessage object from the jms queue. Next, 
the body received is converted into a String for the purposes of this example 
and a carriage return is added. Finally, the string is added to
  a file</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-ConsumingAdvisoryMessages">Consuming 
Advisory Messages</h3><p>ActiveMQ can generate <a shape="rect" 
class="external-link" 
href="http://activemq.apache.org/advisory-message.html";>Advisory messages </a> 
which are put in topics that you can consume. Such messages can help you send 
alerts in case you detect slow consumers or to build statistics (number of 
messages/produced per day, etc.) The following Spring DSL example shows you how 
to read messages from a topic.</p><p>The below route starts by reading the 
topic <em>ActiveMQ.Advisory.Connection</em>. To watch another topic, simply 
change the name according to the name provided in ActiveMQ Advisory Messages 
documentation. The 
parameter&#160;<strong><code>mapJmsMessage=false</code></strong> allows for 
converting 
the&#160;<strong><code>org.apache.activemq.command.ActiveMqMessage</code></strong>
 object from the JMS queue. Next, the body received is converted into a String 
for the purposes of this e
 xample and a carriage return is added. Finally, the string is added to a 
file</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;route&gt;
-   &lt;from 
uri=&quot;activemq:topic:ActiveMQ.Advisory.Connection?mapJmsMessage=false&quot; 
/&gt;
+   &lt;from 
uri=&quot;activemq:topic:ActiveMQ.Advisory.Connection?mapJmsMessage=false&quot;/&gt;
    &lt;convertBodyTo type=&quot;java.lang.String&quot;/&gt;
    &lt;transform&gt;
       &lt;simple&gt;${in.body}&amp;#13;&lt;/simple&gt;
    &lt;/transform&gt;
-   &lt;to 
uri=&quot;file://data/activemq/?fileExist=Append&amp;amp;fileName=advisoryConnection-${date:now:yyyyMMdd}.txt&quot;
 /&gt;
+   &lt;to 
uri=&quot;file://data/activemq/?fileExist=Append&amp;amp;fileName=advisoryConnection-${date:now:yyyyMMdd}.txt&quot;/&gt;
 &lt;/route&gt;
 ]]></script>
-</div></div><p>If you consume a message on a queue, you should see the 
following files under the data/activemq folder 
:</p><p>advisoryConnection-20100312.txt<br clear="none"> 
advisoryProducer-20100312.txt</p><p>and containing string:</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[ActiveMQMessage {commandId = 0, 
responseRequired = false, 
-messageId = ID:dell-charles-3258-1268399815140
--1:0:0:0:221, originalDestination = null, originalTransactionId = null,
+</div></div><p>If you consume a message on a queue, you should see the 
following files under the&#160;<strong><code>data/activemq</code></strong> 
folder :</p><p><strong><code>advisoryConnection-20100312.txt</code></strong><br 
clear="none"><strong><code>advisoryProducer-20100312.txt</code></strong></p><p>containing
 the following string:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[ActiveMQMessage {
+commandId = 0, 
+responseRequired = false, 
+messageId = ID:dell-charles-3258-1268399815140-1:0:0:0:221, 
+originalDestination = null, 
+originalTransactionId = null,
 producerId = ID:dell-charles-3258-1268399815140-1:0:0:0, 
-destination = topic://ActiveMQ.Advisory.Connection, transactionId = null, 
-expiration = 0, timestamp = 0, arrival = 0, brokerInTime = 1268403383468, 
-brokerOutTime = 1268403383468, correlationId = null, replyTo = null, 
-persistent = false, type = Advisory, priority = 0, groupID = null, 
groupSequence = 0, 
-targetConsumerId = null, compressed = false, userID = null, content = null, 
+destination = topic://ActiveMQ.Advisory.Connection, 
+transactionId = null, 
+expiration = 0, 
+timestamp = 0, 
+arrival = 0, 
+brokerInTime = 1268403383468, 
+brokerOutTime = 1268403383468, 
+correlationId = null, 
+replyTo = null, 
+persistent = false, 
+type = Advisory, 
+priority = 0, 
+groupID = null, 
+groupSequence = 0, 
+targetConsumerId = null, 
+compressed = false, 
+userID = null, 
+content = null, 
 marshalledProperties = org.apache.activemq.util.ByteSequence@17e2705, 
-dataStructure = ConnectionInfo {commandId = 1, responseRequired = true, 
-connectionId = ID:dell-charles-3258-1268399815140-2:50, 
-clientId = ID:dell-charles-3258-1268399815140-14:0, userName = , password = 
*****, 
-brokerPath = null, brokerMasterConnector = false, manageable = true, 
-clientMaster = true}, redeliveryCounter = 0, size = 0, properties = 
-{originBrokerName=master, 
originBrokerId=ID:dell-charles-3258-1268399815140-0:0, 
-originBrokerURL=vm://master}, readOnlyProperties = true, readOnlyBody = true, 
-droppable = false}
+dataStructure = ConnectionInfo {
+  commandId = 1, 
+  responseRequired = true, 
+  connectionId = ID:dell-charles-3258-1268399815140-2:50, 
+  clientId = ID:dell-charles-3258-1268399815140-14:0, 
+  userName = , 
+  password = *****, 
+  brokerPath = null, 
+  brokerMasterConnector = false, 
+  manageable = true, 
+  clientMaster = true
+}, 
+redeliveryCounter = 0, 
+size = 0, 
+properties = { originBrokerName=master, 
originBrokerId=ID:dell-charles-3258-1268399815140-0:0, 
originBrokerURL=vm://master }, 
+readOnlyProperties = true, 
+readOnlyBody = true, 
+droppable = false
+}
 ]]></script>
-</div></div><h3 id="BookComponentAppendix-GettingComponentJAR">Getting 
Component JAR</h3><p>You will need this dependency</p><ul 
class="alternate"><li><code>activemq-camel</code></li></ul><p><a shape="rect" 
href="activemq.html">ActiveMQ</a> is an extension of the <a shape="rect" 
href="jms.html">JMS</a> component released with the <a shape="rect" 
class="external-link" href="http://activemq.apache.org";>ActiveMQ 
project</a>.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><h3 id="BookComponentAppendix-GettingComponentJAR">Getting 
Component JAR</h3><p>You will need this dependency</p><ul 
class="alternate"><li><strong><code>activemq-camel</code></strong></li></ul><p><a
 shape="rect" href="activemq.html">ActiveMQ</a> is an extension of the <a 
shape="rect" href="jms.html">JMS</a> component released with the <a 
shape="rect" class="external-link" href="http://activemq.apache.org";>ActiveMQ 
project</a>.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
   &lt;groupId&gt;org.apache.activemq&lt;/groupId&gt;
   &lt;artifactId&gt;activemq-camel&lt;/artifactId&gt;
@@ -1011,11 +1032,11 @@ template.send(&quot;direct:alias-verify&
 ]]></script>
 </div></div><p></p><h3 id="BookComponentAppendix-SeeAlso.8">See Also</h3>
 <ul><li><a shape="rect" href="configuring-camel.html">Configuring 
Camel</a></li><li><a shape="rect" 
href="component.html">Component</a></li><li><a shape="rect" 
href="endpoint.html">Endpoint</a></li><li><a shape="rect" 
href="getting-started.html">Getting Started</a></li></ul><ul><li><a 
shape="rect" href="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><div 
class="confluence-information-macro confluence-information-macro-note"><span 
class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-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 cons
 ume web services. The bean component's configuration is also simpler and 
provides the fastest method to implement web services using Camel and 
CXF.</p></div></div><div class="confluence-information-macro 
confluence-information-macro-tip"><span class="aui-icon aui-icon-small 
aui-iconfont-approve confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>When using CXF in streaming modes 
(see DataFormat option), then also read about <a shape="rect" 
href="stream-caching.html">Stream caching</a>.</p></div></div><p>The 
<strong>cxf:</strong> component provides integration with <a shape="rect" 
href="http://cxf.apache.org";>Apache CXF</a> for connecting to JAX-WS services 
hosted in CXF.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1502878713443 {padding: 0px;}
-div.rbtoc1502878713443 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1502878713443 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1502918323027 {padding: 0px;}
+div.rbtoc1502918323027 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1502918323027 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1502878713443">
+/*]]>*/</style></p><div class="toc-macro rbtoc1502918323027">
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookComponentAppendix-CXFComponent">CXF Component</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookComponentAppendix-URIformat">URI format</a></li><li><a shape="rect" 
href="#BookComponentAppendix-Options">Options</a>
 <ul class="toc-indentation"><li><a shape="rect" 
href="#BookComponentAppendix-Thedescriptionsofthedataformats">The descriptions 
of the dataformats</a>


Reply via email to