Author: buildbot
Date: Thu Nov 27 16:20:55 2014
New Revision: 930784
Log:
Production update by buildbot for activemq
Modified:
websites/production/activemq/content/amqp.html
websites/production/activemq/content/cache/main.pageCache
Modified: websites/production/activemq/content/amqp.html
==============================================================================
--- websites/production/activemq/content/amqp.html (original)
+++ websites/production/activemq/content/amqp.html Thu Nov 27 16:20:55 2014
@@ -107,9 +107,11 @@
</div></div><p>This transport uses the <a shape="rect" class="external-link"
href="http://activemq.apache.org/configuring-transports.html#ConfiguringTransports-TheNIOTransport">NIO
transport</a> underneath and will generally use much less threads than the
standard connector. This connector can help if you want to use <a shape="rect"
class="external-link"
href="http://activemq.apache.org/how-do-i-configure-10s-of-1000s-of-queues-in-a-single-broker-.html">large
number of queues</a></p><h3 id="AMQP-EnablingAMQPoverSSL">Enabling AMQP over
SSL</h3><p>It's easy to configure ActiveMQ to use AMQP over a SSL connection.
All you have to do is use the <code>amqp+ssl</code> transport prefix instead of
<code>amqp</code>. For example, add the following transport configuration in
your XML file:</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[ <transportConnector
name="amqp+ssl" uri="amqp+ssl://localhost:5671"/>
]]></script>
-</div></div><ul><li>For more details on using SSL with ActiveMQ, see the
following article (<a shape="rect" class="external-link"
href="http://activemq.apache.org/how-do-i-use-ssl.html">How do I use
SSL</a>).</li></ul><h3 id="AMQP-WorkingwithDestinationswithAMQP">Working with
Destinations with AMQP</h3><p>You should prefix destination address with
`queue://` to use Queue based destinations or `topic://` to use topic based
destinations. If an AMQP address is used without the prefix, it will be used as
a Queue.</p><h3 id="AMQP-Prefetchsizeandcredit">Prefetch size and
credit</h3><p>When AMQP receiver connects to the broker, its mapped to the JMS
consumer. This JMS consumer has to have appropriate <a shape="rect"
href="what-is-the-prefetch-limit-for.html">prefetch size</a> set. That prefetch
size will be set from the receiving link credit if set or default value of 100
will be used. You can also tune a default value using <code>prefetch</code>
transport attribute, like</p><div class="co
de panel pdl" style="border-width: 1px;"><div class="codeContent panelContent
pdl">
+</div></div><ul><li>For more details on using SSL with ActiveMQ, see the
following article (<a shape="rect" class="external-link"
href="http://activemq.apache.org/how-do-i-use-ssl.html">How do I use
SSL</a>).</li></ul><h3 id="AMQP-WorkingwithDestinationswithAMQP">Working with
Destinations with AMQP</h3><p>You should prefix destination address with
`queue://` to use Queue based destinations or `topic://` to use topic based
destinations. If an AMQP address is used without the prefix, it will be used as
a Queue.</p><h3 id="AMQP-Prefetchsizeandcredit">Prefetch size and
credit</h3><p>When AMQP receiver connects to the broker, its mapped to the JMS
consumer. This JMS consumer has to have appropriate <a shape="rect"
href="what-is-the-prefetch-limit-for.html">prefetch size</a> set. <span
style="line-height: 1.4285715;">The broker will respect the credit set by the
client or use default value of 1000 if client don't set it.</span></p><p>You
can also tune a default value using <code>pref
etch</code> transport attribute, like</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[<transportConnector name="amqp"
uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600&amp;transport.prefetch=10"/>]]></script>
-</div></div><p class="p1">Note that the same value will be used for
broker-side amqp receiver link that handles incoming messages.</p><h3
id="AMQP-MappingtoJMS">Mapping to JMS</h3><p>There are three basic conversion
strategies that can be used with AMQP and interoperating with the JMS
API.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th
colspan="1" rowspan="1" class="confluenceTh"><p>Strategy</p></th><th
colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>native</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Default</strong> Wraps the bytes of the AMQP
message into a JMS BytesMessage and<br clear="none"> also maps the headers of
the AMQP message to headers on the JMS message</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>raw</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Wraps the bytes of the AMQP message into a JMS
BytesMessa
ge</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>jms</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Maps headers of the AMQP message to JMS message headers
and maps the<br clear="none"> body of the AMQP message to JMS
body</p></td></tr></tbody></table></div><p>Set the <strong>transformer</strong>
transport option on the transportConnector to the desired mapping strategy. For
example, to interoperate with JMS at the payload level, set the
<strong>transformer</strong> option to <strong>jms</strong></p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p class="p1">In this case, client preference will be ignored and
the configured value will be used.</p><p class="p1">You can also tune
broker-side amqp receiver link that handles incoming messages. It will use
credit of 1000 messages by default, but you can override this by
using <span><code>producerCredit</code> property,
like </span></p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[<transportConnector name="amqp"
uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600&amp;transport.producerCredit=10000"/>]]></script>
+</div></div><h3 id="AMQP-MappingtoJMS">Mapping to JMS</h3><p>There are three
basic conversion strategies that can be used with AMQP and interoperating with
the JMS API.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Strategy</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>native</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p><strong>Default</strong> Wraps the bytes of the AMQP
message into a JMS BytesMessage and<br clear="none"> also maps the headers of
the AMQP message to headers on the JMS message</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>raw</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Wraps the bytes of the AMQP message into a JMS
BytesMessage</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>jms</p></td><td colspan="1" rowspan="1" class="con
fluenceTd"><p>Maps headers of the AMQP message to JMS message headers and maps
the<br clear="none"> body of the AMQP message to JMS
body</p></td></tr></tbody></table></div><p>Set the <strong>transformer</strong>
transport option on the transportConnector to the desired mapping strategy. For
example, to interoperate with JMS at the payload level, set the
<strong>transformer</strong> option to <strong>jms</strong></p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<script class="theme: Default; brush: xml; gutter: false"
type="syntaxhighlighter"><![CDATA[ <transportConnector
name="amqp"
uri="amqp://localhost:5672?transport.transformer=jms"/>
]]></script>
</div></div><h4 id="AMQP-HowAMQPmessageheadersaremappedtoJMSHeaders:">How AMQP
message headers are mapped to JMS Headers:</h4><p>The following headers are
mapped regardless of the transformer used:</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>AMQP Message</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>JMS Message</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>Notes</p></th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p> </p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>JMS_AMQP_NATIVE</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Will be set to true if the transformer is 'native' or
'raw', false otherwise.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>message-format</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>JMS_AMQP_MESSAGE_FORMAT</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p> </p
></td></tr></tbody></table></div><p>The following headers are mapped if the
>transformer is 'native' or 'jms':</p><div class="table-wrap"><table
>class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
>class="confluenceTh"><p>AMQP Message</p></th><th colspan="1" rowspan="1"
>class="confluenceTh"><p>JMS Message</p></th><th colspan="1" rowspan="1"
>class="confluenceTh"><p>Notes</p></th></tr><tr><td colspan="1" rowspan="1"
>class="confluenceTd"><p>header.durable</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p>JMSDeliveryMode</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p>javax.jms.Message.DEFAULT_DELIVERY_MODE if not
>set</p></td></tr><tr><td colspan="1" rowspan="1"
>class="confluenceTd"><p>header.priority</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p>JMSPriority</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p>javax.jms.Message.DEFAULT_PRIORITY if not
>set</p></td></tr><tr><td colspan="1" rowspan="1"
>class="confluenceTd"><p>header.ttl</
p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>JMSExpiration</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>javax.jms.Message.DEFAULT_TIME_TO_LIVE if not
set</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>header.first-acquirer</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>JMS_AMQP_FirstAcquirer</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>header.deliveryCount</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>JMSXDeliveryCount</p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>delivery-annotations.<strong><span
style="text-decoration: underline;">name</span></strong></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMS_AMQP_DA_<strong><span
style="text-decoration: underline;">name</span></strong></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></td></tr><tr><td
colspan="1" r
owspan="1"
class="confluenceTd"><p>message-annotations.x-opt-jms-type</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSType</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p> </p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>message-annotations.x-opt-to-type</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Type of the
JMSDestination</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Comma separated list of 'queue', 'topic', or
'temporary', defaults to queue if not set.</p></td></tr><tr><td colspan="1"
rowspan="1"
class="confluenceTd"><p>message-annotations.x-opt-reply-type</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Type of the
JMSReplyTo</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Comma
separated list of 'queue', 'topic', or 'temporary', defaults to queue if not
set.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>message-annotations.<strong><span style="text-de
coration: underline;">name</span></strong></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>JMS_AMQP_MA_<strong><span style="text-decoration:
underline;">name</span></strong></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> </p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>application-properties.JMSXGroupID</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSXGroupID</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>application-properties.JMSXGroupSequence</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSXGroupSequence</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>application-properties.JMSXUserID</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSXUserID</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></
td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>application-properties.<strong><span
style="text-decoration: underline;">name</span></strong></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><strong><span
style="text-decoration: underline;">name</span></strong></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>properties.message-id</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>JMSMessageID</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>Auto generated if not
set</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>properties.user-id</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>JMSXUserID</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>properties.user-id is decoded as a UTF-8
String</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>properties.to</p></td><td colspan="1" rowspan="1" class
="confluenceTd"><p>JMSDestination</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>The name of the JMSDestination</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>properties.subject</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMS_AMQP_Subject</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>properties.reply-to</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSReplyTo</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The name of the
JMSReplyTo</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>properties.correlation-id</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>JMSCorrelationID</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p> </p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>properties.content-type</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>J
MS_AMQP_ContentType</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> </p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>properties.content-encoding</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>JMS_AMQP_ContentEncoding</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>properties.creation-time</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>JMSTimestamp</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p> </p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>properties.group-sequence</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>JMSXGroupSequence</p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p> </p></td></tr><tr><td
colspan="1" rowspan="1"
class="confluenceTd"><p>properties.reply-to-group-id</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>JMS_AMQP_ReplyToGroupID</p></
td><td colspan="1" rowspan="1"
class="confluenceTd"><p> </p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>footer.<strong><span style="text-decoration:
underline;">name</span></strong></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>JMS_AMQP_FT_<strong><span style="text-decoration:
underline;">name</span></strong></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> </p></td></tr></tbody></table></div><p>AMQP
property value types are converted as follows:</p><div
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>AMQP Type</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Java Type</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Notes</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>bool</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Boolean</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> </p></td></tr
><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>byte</p></td><td
>colspan="1" rowspan="1" class="confluenceTd"><p>Byte</p></td><td colspan="1"
>rowspan="1" class="confluenceTd"><p> </p></td></tr><tr><td colspan="1"
>rowspan="1" class="confluenceTd"><p>short</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p>Short</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p> </p></td></tr><tr><td colspan="1" rowspan="1"
>class="confluenceTd"><p>int</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p>Integer</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p> </p></td></tr><tr><td colspan="1" rowspan="1"
>class="confluenceTd"><p>long</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p>Long</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p> </p></td></tr><tr><td colspan="1" rowspan="1"
>class="confluenceTd"><p>ubyte</p></td><td colspan="1" rowspan="1"
>class="confluenceTd"><p>Byte or Short</p></td><td colspan="1" rowspan=
"1" class="confluenceTd"><p>Short is used if value >
Byte.MAX_VALUE</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>ushort</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Short or Integer</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Integer is used if value >
Short.MAX_VALUE</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>uint</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Integer or Long</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Long is used if value >
Integer.MAX_VALUE</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>ulong</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Long</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> </p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>double</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Double</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>&#
160;</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>float</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Float</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> </p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>symbol</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p> </p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>binary</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>String</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Hex encoding of the binary
value</p></td></tr></tbody></table></div><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><h4
id="AMQP-HowAMQPmessagesbodiesaremappedtoJMSMessages:">How AMQP messages
bodies are mapped to JMS Messages:</h4><p>If the transformer is set to 'jms',
the they type of JMS message will depend on
the body type of the AMQP message.</p><div class="table-wrap"><table
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1"
class="confluenceTh"><p>Body Type</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>JMS Message Type</p></th></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Message</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Data</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>BytesMessage</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>AmqpSequence</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>StreamMessage</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>AmqpValue holding a
null</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>Message</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>AmqpValue holding a String</p></td><td colspan="1"
rowspan="1" class="confluen
ceTd"><p>TextMessage</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>AmqpValue holding a binary</p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>BytesMessage</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p>AmqpValue holding a
list</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>StreamMessage</p></td></tr><tr><td colspan="1"
rowspan="1" class="confluenceTd"><p>AmqpValue</p></td><td colspan="1"
rowspan="1"
class="confluenceTd"><p>ObjectMessage</p></td></tr></tbody></table></div><h3
id="AMQP-AMQP1.0clientlibrary">AMQP 1.0 client library</h3><p>You can use <a
shape="rect" class="external-link" href="http://qpid.apache.org/proton/">Apache
Qpid Proton</a>.</p></div>
Modified: websites/production/activemq/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.