You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by dk...@apache.org on 2017/12/14 14:48:47 UTC

[23/51] [abbrv] [partial] activemq-web git commit: Add body.storage type

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/cms/general-build-issues.xml
----------------------------------------------------------------------
diff --git a/cms/general-build-issues.xml b/cms/general-build-issues.xml
index f6427fe..6d6367c 100644
--- a/cms/general-build-issues.xml
+++ b/cms/general-build-issues.xml
@@ -1,4 +1,4 @@
-<div class="wiki-content maincontent"><h6 id="GeneralBuildIssues-Errorduringconfigure:&quot;error:libpthreadnotfound!&quot;">Error during configure: "error: libpthread not found!"</h6>
+<div class="wiki-content maincontent"><h6>Error during configure: "error: libpthread not found!"</h6>
 
 <p>Getting an error about libpthread not found even though its installed, in many cases indicates that the tool chain required to build the library isn't fully installed.&#160; One good place to start checking is to ensure that both 'gcc' and 'g+<span style="text-decoration: underline;">' are installed as the M4 configure macros that check for pthread related features uses 'g</span>+'. &#160; </p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/cms/general.xml
----------------------------------------------------------------------
diff --git a/cms/general.xml b/cms/general.xml
index 7892dfa..3e017ad 100644
--- a/cms/general.xml
+++ b/cms/general.xml
@@ -1,4 +1,4 @@
 <div class="wiki-content maincontent"><p>General Questions about ActiveMQ's CMS client.</p>
 
-<ul class="childpages-macro"><li><a shape="rect" href="are-there-more-faq-entries.xml">Are there more FAQ Entries</a></li><li><a shape="rect" href="what-is-activemq-cpp.xml">What is ActiveMQ CPP</a></li></ul></div>
+<structured-macro ac:macro-id="35a0132d-8bbc-4b99-9ccd-bbcf5bdf58e0" ac:name="children" ac:schema-version="1"><parameter ac:name="all">true</parameter></structured-macro></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/cms/getting-started.xml
----------------------------------------------------------------------
diff --git a/cms/getting-started.xml b/cms/getting-started.xml
index 7ab5040..15f8f9a 100644
--- a/cms/getting-started.xml
+++ b/cms/getting-started.xml
@@ -1,4 +1,5 @@
-<div class="wiki-content maincontent"><h2 id="GettingStarted-GettingStartedGuide">Getting Started Guide</h2>
+<div class="wiki-content maincontent"><h2>Getting Started Guide</h2>
 
-<p>Start off by getting a <a shape="rect" href="download.xml">Download</a> or by grabbing the <a shape="rect" href="source.xml">Source</a> and <a shape="rect" href="building.xml">Building</a> it.</p></div>
+<p>Start off by getting a <link><page ri:content-title="Download"></page></link> or by grabbing the <link><page ri:content-title="Source"></page></link> and <link><page ri:content-title="Building"></page></link> it.</p>
+</div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/cms/handling-advisory-messages.xml
----------------------------------------------------------------------
diff --git a/cms/handling-advisory-messages.xml b/cms/handling-advisory-messages.xml
index 1af52cf..a54b259 100644
--- a/cms/handling-advisory-messages.xml
+++ b/cms/handling-advisory-messages.xml
@@ -3,83 +3,76 @@
 <ul><li>See consumers, producers and connections starting and stopping</li><li>See temporary destinations being created and destroyed</li><li>Get notified messages expiring on topics and queues</li><li>Observe brokers sending messages to destinations with no consumers.</li><li>See connections starting and stopping</li></ul>
 
 
-<p>Advisory messages can be thought as some kind of administrative channel where you receive information regarding what is happening on your JMS provider along with what's happening with producers, consumers and destinations.  To learn more about the broker's advisory message support see this <a shape="rect" href="../advisory-message.xml">article</a>.</p>
+<p>Advisory messages can be thought as some kind of administrative channel where you receive information regarding what is happening on your JMS provider along with what's happening with producers, consumers and destinations.  To learn more about the broker's advisory message support see this <link><page ri:content-title="Advisory Message" ri:space-key="ActiveMQ"></page><link-body>article</link-body></link>.</p>
 
-<h3 id="HandlingAdvisoryMessages-BeforeYouBegin"><strong>Before You Begin</strong></h3>
+<h3><strong>Before You Begin</strong></h3>
 
-<p>This tutorial assumes that the reader has a working knowledge of the CMS API and knows how to build basic applications using the ActiveMQ-CPP Library.  If you aren't sure how to use the CMS API then you should first read the <a shape="rect" href="cms-api-overview.xml">CMS API Overview</a>.  The tutorial is written against the ActiveMQ-CPP 3.0 release API and while it is possible to handle advisory messages using the older ActiveMQ-CPP 2.x clients there may be some code differences which are not shown in this article.  </p>
+<p>This tutorial assumes that the reader has a working knowledge of the CMS API and knows how to build basic applications using the ActiveMQ-CPP Library.  If you aren't sure how to use the CMS API then you should first read the <link><page ri:content-title="CMS API Overview"></page><link-body>CMS API Overview</link-body></link>.  The tutorial is written against the ActiveMQ-CPP 3.0 release API and while it is possible to handle advisory messages using the older ActiveMQ-CPP 2.x clients there may be some code differences which are not shown in this article.  </p>
 
-<h3 id="HandlingAdvisoryMessages-SubscribingtoAdvisoryTopics"><strong>Subscribing to Advisory Topics</strong></h3>
+<h3><strong>Subscribing to Advisory Topics</strong></h3>
 
 <p>To receive advisory message's you first need to subscribe to the Topic that supplies the advisory message you want.  You subscribe to these Topics like you would any other destination, the trick is to use the correct name for the Topic that you want to use.  Lets first take a look at a couple of the types available for use (this is not a complete set).</p>
 
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Advisory Topics</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>properties</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Data Structure</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> ActiveMQ.Advisory.Connection </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Connection start &amp; stop messages </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> ActiveMQ.Advisory.Producer.Queue </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Producer start &amp; stop messages on a Queue </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>String='producerCount' - the number of producers</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> ProducerInfo</p></td></tr><tr><td colspan="1" rowspan="1" class=
 "confluenceTd"><p> ActiveMQ.Advisory.Producer.Topic </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Producer start &amp; stop messages on a Topic </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>String='producerCount' - the number of producers</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ProducerInfo</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> ActiveMQ.Advisory.Consumer.Queue </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Consumer start &amp; stop messages on a Queue </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>String='consumerCount' - the number of Consumers</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ConsumerInfo</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> ActiveMQ.Advisory.Consumer.Topic </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> Consumer start &amp; stop messages on a Topic </p></td><td colspan="1" rowspan="1" class="confl
 uenceTd"><p>String='consumerCount' - the number of Consumers</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>ConsumerInfo</p></td></tr></tbody></table></div>
+<table><tbody><tr><th colspan="1" rowspan="1"><p>Advisory Topics</p></th><th colspan="1" rowspan="1"><p>Description</p></th><th colspan="1" rowspan="1"><p>properties</p></th><th colspan="1" rowspan="1"><p>Data Structure</p></th></tr><tr><td colspan="1" rowspan="1"><p> ActiveMQ.Advisory.Connection </p></td><td colspan="1" rowspan="1"><p> Connection start &amp; stop messages </p></td></tr><tr><td colspan="1" rowspan="1"><p> ActiveMQ.Advisory.Producer.Queue </p></td><td colspan="1" rowspan="1"><p> Producer start &amp; stop messages on a Queue </p></td><td colspan="1" rowspan="1"><p>String='producerCount' - the number of producers</p></td><td colspan="1" rowspan="1"><p> ProducerInfo</p></td></tr><tr><td colspan="1" rowspan="1"><p> ActiveMQ.Advisory.Producer.Topic </p></td><td colspan="1" rowspan="1"><p> Producer start &amp; stop messages on a Topic </p></td><td colspan="1" rowspan="1"><p>String='producerCount' - the number of producers</p></td><td colspan="1" rowspan="1"><p>ProducerInfo
 </p></td></tr><tr><td colspan="1" rowspan="1"><p> ActiveMQ.Advisory.Consumer.Queue </p></td><td colspan="1" rowspan="1"><p> Consumer start &amp; stop messages on a Queue </p></td><td colspan="1" rowspan="1"><p>String='consumerCount' - the number of Consumers</p></td><td colspan="1" rowspan="1"><p>ConsumerInfo</p></td></tr><tr><td colspan="1" rowspan="1"><p> ActiveMQ.Advisory.Consumer.Topic </p></td><td colspan="1" rowspan="1"><p> Consumer start &amp; stop messages on a Topic </p></td><td colspan="1" rowspan="1"><p>String='consumerCount' - the number of Consumers</p></td><td colspan="1" rowspan="1"><p>ConsumerInfo</p></td></tr></tbody></table>
 
 
 <p>Now, looking at the above list lets pick one of the Topics and figure out how we would create the CMS Topic to subscribe to in order to receive the advisory messages.  Using the Java client we could create the Destination using the utility class <strong>AdvisorySupport</strong> but for now ActiveMQ-CPP doesn't provide such a utility class, hopefully we will see this added in a future release (Contributions are of course always welcomed!).</p>
 
 <p>If we had a Topic named TOPIC.FOO and we wanted to know when a producer subscribed to that Topic we would need to create a Topic object whose name is <strong>ActiveMQ.Advisory.Producer.Topic.TOPIC.FOO</strong> in order to receive the advisory message we are interested in.  We know this because we can look at the above table and see that the <strong>ActiveMQ.Advisory.Producer.Topic</strong> is informed whenever a Producer starts or stops publishing messages on a Topic and we also know that our Topic is named TOPIC.FOO, so adding them together gets us the name of our Advisory Topic, we also know this because we peaked at the AdvisorySupport.java class, and no, that's not cheating.  Below is a code snippet showing the creation of the Topic using a CMS Session:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Creating an Advisory Topic for Producers on TOPIC.FOO</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="ac0429a2-01b4-421a-8e3a-5abbe4840c4f" ac:name="code" ac:schema-version="1"><parameter ac:name="title">Creating an Advisory Topic for Producers on TOPIC.FOO</parameter><plain-text-body>
 
     std::auto_ptr&lt;cms::Topic&gt; advisories( session-&gt;createTopic(
-        &quot;ActiveMQ.Advisory.Producer.Topic.TOPIC.FOO&quot; ) );
+        "ActiveMQ.Advisory.Producer.Topic.TOPIC.FOO" ) );
 
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
 <p>Once we create the Topic for the advisory messages we want to listen for we just need to create a consumer to listen for them, the code snippet below demonstrates this:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Creating an Consumer for an Advisory Topic.</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="59084ef4-8042-4829-8a92-5ee78351e123" ac:name="code" ac:schema-version="1"><parameter ac:name="title">Creating an Consumer for an Advisory Topic.</parameter><plain-text-body>
 
 std::auto_ptr&lt;cms::MessageConsumer&gt; consumer;
 consumer.reset( session-&gt;createConsumer( advisories.get() ) );
 consumer-&gt;setMessageListener( this );
 
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
 <p>As you can see there is no difference between subscriptions to advisory topics that subscriptions to any other Destination in CMS.  In the above example we registered as an asynchronous listener, you can also use the normal blocking <strong>receive</strong> method but we prefer this method.</p>
 
-<h3 id="HandlingAdvisoryMessages-DealingwithincomingAdvisoryMessages"><strong>Dealing with incoming Advisory Messages</strong></h3>
+<h3><strong>Dealing with incoming Advisory Messages</strong></h3>
 
 <p>Every Advisory has the message type 'Advisory' and some predefined message properties, to check a CMS Message for this type you would call the <strong>getCMSType</strong> method on a Message object.  In some cases you will know that the only message you are going to receive are advisory messages because your client only subscribes to advisory topics, other times you might have wired multiple MessageConsumers to the same MessageListener in which case you will have to check the message tppe.  Once you know you are dealing with an advisory message then you can start to inspect it to determine what sort of message it is and extract the data that is meaningful to your application.</p>
 
 <p>Many of the advisory messages store meaningful data in the Message properties, for instance the Consumer Start / Stop advisory message contains an element with the key <strong>consumerCount</strong> which is populated with the current number of active consumers on the Topic or Queue in question.  Lets take a look at a code snippet now that checks the messages received in an onMessage callback to see if its an advisory message and acts on it if it is:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Using the CMS Type to determine if a Message is an Advisory</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="c025c6dd-e89f-4115-a690-58e22829e2f8" ac:name="code" ac:schema-version="1"><parameter ac:name="title">Using the CMS Type to determine if a Message is an Advisory</parameter><plain-text-body>
 
  void AdvisoryProducer::onMessage( const cms::Message* message ) {
 
-     if( message-&gt;getCMSType() == &quot;Advisory&quot; ) {
+     if( message-&gt;getCMSType() == "Advisory" ) {
 
-         std::cout &lt;&lt; &quot;Received an Advisory Message!&quot; &lt;&lt; std::endl;
+         std::cout &lt;&lt; "Received an Advisory Message!" &lt;&lt; std::endl;
 
-         if( message-&gt;propertyExists( &quot;consumerCount&quot; ) ) {
+         if( message-&gt;propertyExists( "consumerCount" ) ) {
 
-             std::string consumerCount = message-&gt;getStringProperty( &quot;consumerCount&quot; );
-             std::cout &lt;&lt; &quot;Number of Consumers = &quot; &lt;&lt; consumerCount &lt;&lt; std::endl;
+             std::string consumerCount = message-&gt;getStringProperty( "consumerCount" );
+             std::cout &lt;&lt; "Number of Consumers = " &lt;&lt; consumerCount &lt;&lt; std::endl;
  
              // Do Something Meaningful here....
          }
 
      } else {
-         std::cout &lt;&lt; &quot;Received a Non-Advisory Message!&quot; &lt;&lt; std::endl;
+         std::cout &lt;&lt; "Received a Non-Advisory Message!" &lt;&lt; std::endl;
      }
  }
 
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
-<h3 id="HandlingAdvisoryMessages-CompleteExample:ProducerthatonlyProduceswhenthereisaConsumer"><strong>Complete Example: Producer that only Produces when there is a Consumer</strong></h3>
+<h3><strong>Complete Example: Producer that only Produces when there is a Consumer</strong></h3>
 
 <p>Now that you've seen the basics of advisory message processing its time to show you a complete example that demonstrates what you can do with advisory messages.  The following code shows a class header and source file that implements a basic CMS Producer that will send heart beat message to a Topic called <strong>HEART-BEAT-CHANNEL</strong> only when there are active consumers, otherwise it sits idle.</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>AdvisoryProducer Header file</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="d44fac8d-a18d-433f-99fb-bb8af9d942f8" ac:name="code" ac:schema-version="1"><parameter ac:name="title">AdvisoryProducer Header file</parameter><plain-text-body>
 
 #ifndef _ACTIVEMQCPP_EXAMPLES_ADVISORIES_ADVISORYPRODUCER_H_
 #define _ACTIVEMQCPP_EXAMPLES_ADVISORIES_ADVISORYPRODUCER_H_
@@ -145,13 +138,11 @@ namespace advisories {
 
 #endif /* _ACTIVEMQCPP_EXAMPLES_ADVISORIES_ADVISORYPRODUCER_H_ */
 
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>AdvisoryProducer Source file</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="f39527c7-13c5-47cc-b854-cd091268e6b0" ac:name="code" ac:schema-version="1"><parameter ac:name="title">AdvisoryProducer Source file</parameter><plain-text-body>
 
-#include &quot;AdvisoryProducer.h&quot;
+#include "AdvisoryProducer.h"
 
 #include &lt;cms/Topic.h&gt;
 #include &lt;cms/Message.h&gt;
@@ -172,13 +163,13 @@ AdvisoryProducer::AdvisoryProducer( cms::Session* session ) : shutdownLatch(1) {
 
     if( session == NULL ) {
         throw NullPointerException(
-            __FILE__, __LINE__, &quot;Session Object passed was Null.&quot; );
+            __FILE__, __LINE__, "Session Object passed was Null." );
     }
 
     std::auto_ptr&lt;cms::Topic&gt; destination( session-&gt;createTopic(
-        &quot;HEART-BEAT-CHANNEL&quot; ) );
+        "HEART-BEAT-CHANNEL" ) );
     std::auto_ptr&lt;cms::Topic&gt; advisories( session-&gt;createTopic(
-        &quot;ActiveMQ.Advisory.Consumer.Topic.HEART-BEAT-CHANNEL&quot; ) );
+        "ActiveMQ.Advisory.Consumer.Topic.HEART-BEAT-CHANNEL" ) );
 
     this-&gt;shutdown = false;
     this-&gt;consumerOnline = false;
@@ -207,7 +198,7 @@ void AdvisoryProducer::run() {
         if( this-&gt;consumerOnline ) {
 
             std::auto_ptr&lt;cms::TextMessage&gt; message(
-                this-&gt;session-&gt;createTextMessage( &quot;Alive&quot; ) );
+                this-&gt;session-&gt;createTextMessage( "Alive" ) );
 
             this-&gt;producer-&gt;send( message.get() );
 
@@ -221,63 +212,59 @@ void AdvisoryProducer::run() {
 ////////////////////////////////////////////////////////////////////////////////
 void AdvisoryProducer::onMessage( const cms::Message* message ) {
 
-    if( message-&gt;getCMSType() == &quot;Advisory&quot; ) {
+    if( message-&gt;getCMSType() == "Advisory" ) {
 
-        std::cout &lt;&lt; &quot;Received an Advisory Message!&quot; &lt;&lt; std::endl;
+        std::cout &lt;&lt; "Received an Advisory Message!" &lt;&lt; std::endl;
 
-        if( message-&gt;propertyExists( &quot;consumerCount&quot; ) ) {
+        if( message-&gt;propertyExists( "consumerCount" ) ) {
 
-            std::string consumerCount = message-&gt;getStringProperty( &quot;consumerCount&quot; );
-            std::cout &lt;&lt; &quot;Number of Consumers = &quot; &lt;&lt; consumerCount &lt;&lt; std::endl;
+            std::string consumerCount = message-&gt;getStringProperty( "consumerCount" );
+            std::cout &lt;&lt; "Number of Consumers = " &lt;&lt; consumerCount &lt;&lt; std::endl;
             this-&gt;consumerOnline = Integer::parseInt( consumerCount ) &gt; 0 ? true : false;
         }
 
     } else {
-        std::cout &lt;&lt; &quot;Received a Non-Advisory Message!&quot; &lt;&lt; std::endl;
+        std::cout &lt;&lt; "Received a Non-Advisory Message!" &lt;&lt; std::endl;
     }
 }
 
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
-<h3 id="HandlingAdvisoryMessages-*AdvancedTopic*DealingwithCommandObjectsinAdvisories">*<strong>Advanced Topic</strong>* Dealing with Command Objects in Advisories </h3>
+<h3>*<strong>Advanced Topic</strong>* Dealing with Command Objects in Advisories </h3>
 
-<p>If you read the ActiveMQ Advisory Message <a shape="rect" href="../advisory-message.xml">article</a> mentioned at the start of this tutorial then you know that certain advisory messages can contain an embedded command object.  If you didn't read that <a shape="rect" href="../advisory-message.xml">article</a> then this section is going to be very confusing, so go read it.  We can access those command object in CMS with a little work which means we can take full advantage of the Advisory Message feature.</p>
+<p>If you read the ActiveMQ Advisory Message <link><page ri:content-title="Advisory Message" ri:space-key="ActiveMQ"></page><link-body>article</link-body></link> mentioned at the start of this tutorial then you know that certain advisory messages can contain an embedded command object.  If you didn't read that <link><page ri:content-title="Advisory Message" ri:space-key="ActiveMQ"></page><link-body>article</link-body></link> then this section is going to be very confusing, so go read it.  We can access those command object in CMS with a little work which means we can take full advantage of the Advisory Message feature.</p>
 
-<p>All Advisory Messages are sent as a basic ActiveMQMessage to your client.  The underlying type hierarchy in ActiveMQ-CPP is the same as that of ActiveMQ so the names of the embedded command objects you saw in the Advisory <a shape="rect" href="../advisory-message.xml">article</a> are the same and they contain mostly the same information, although sometimes the information is encoded in a more C++ friendly or unfriendly way depending on your point of view. </p>
+<p>All Advisory Messages are sent as a basic ActiveMQMessage to your client.  The underlying type hierarchy in ActiveMQ-CPP is the same as that of ActiveMQ so the names of the embedded command objects you saw in the Advisory <link><page ri:content-title="Advisory Message" ri:space-key="ActiveMQ"></page><link-body>article</link-body></link> are the same and they contain mostly the same information, although sometimes the information is encoded in a more C++ friendly or unfriendly way depending on your point of view. </p>
 
 <p>To demonstrate how we can access the command objects lets try and create a client application that listens to the Broker for advisories that indicate that Temporary Destinations have either been created or destroyed.  The Broker will publish advisory messages to the "ActiveMQ.Advisory.TempTopic" and "ActiveMQ.Advisory.TempQueue" Topics whenever the corresponding Temporary Destination is created or destroyed and the command object will be of type DestinationInfo.  The DestinationInfo object contains a Destination object describing the Destination in question and an Operation Type value telling whether the command is a create or destroy command.  First lets look at how we subscribe to this Advisory Topic:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Subscribing to a Composite Advisory Topic</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="f9da7b3c-4eca-4a1b-809e-4775cc6a1abb" ac:name="code" ac:schema-version="1"><parameter ac:name="title">Subscribing to a Composite Advisory Topic</parameter><plain-text-body>
 
 std::auto_ptr&lt;cms::Topic&gt; advisories( session-&gt;createTopic(
-    &quot;ActiveMQ.Advisory.TempTopic,ActiveMQ.Advisory.TempQueue&quot; ) );
+    "ActiveMQ.Advisory.TempTopic,ActiveMQ.Advisory.TempQueue" ) );
 
 std::auto_ptr&lt;cms::MessageConsumer&gt; consumer;
 consumer.reset( session-&gt;createConsumer( advisories.get() ) );
 consumer-&gt;setMessageListener( this );
 
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
 <p>As you can see in the above code snippet we just create a new Topic object whose name is a composite of the two Topics we want to subscribe on, this will allow our single <strong>MessageConsumer</strong> instance to receive both Temporary Topic and Temporary Queue advisories.  As before we also create a <strong>MessageConsumer</strong> and register our class' instance as the asynchronous listener.  Now all that's left is to implement the <strong>onMessage</strong> method of the <strong>MessageListener</strong> interface, lets take a look at that code now:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Processing an Advisory message with an embedded command object</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="dd78c039-6792-46b6-abf3-1a4163c4b4da" ac:name="code" ac:schema-version="1"><parameter ac:name="title">Processing an Advisory message with an embedded command object</parameter><plain-text-body>
 
 ////////////////////////////////////////////////////////////////////////////////
 void TempDestinationAdvisoryConsumer::onMessage( const cms::Message* message ) {
 
-    if( message-&gt;getCMSType() == &quot;Advisory&quot; ) {
+    if( message-&gt;getCMSType() == "Advisory" ) {
 
-        std::cout &lt;&lt; &quot;Received an Advisory Message!&quot; &lt;&lt; std::endl;
+        std::cout &lt;&lt; "Received an Advisory Message!" &lt;&lt; std::endl;
 
         const ActiveMQMessage* amqMessage =
             dynamic_cast&lt;const ActiveMQMessage*&gt;( message );
 
         if( amqMessage != NULL &amp;&amp; amqMessage-&gt;getDataStructure() != NULL ) {
-            std::cout &lt;&lt; &quot;Advisory Message contains a Command Object!&quot; &lt;&lt; std::endl;
+            std::cout &lt;&lt; "Advisory Message contains a Command Object!" &lt;&lt; std::endl;
 
             try {
 
@@ -287,43 +274,41 @@ void TempDestinationAdvisoryConsumer::onMessage( const cms::Message* message ) {
                 unsigned char operationType = info-&gt;getOperationType();
 
                 if( operationType == ActiveMQConstants::DESTINATION_REMOVE_OPERATION ) {
-                    std::cout &lt;&lt; &quot;Temporary Destination {&quot;
+                    std::cout &lt;&lt; "Temporary Destination {"
                               &lt;&lt; info-&gt;getDestination()-&gt;getPhysicalName()
-                              &lt;&lt; &quot;} Removed.&quot;
+                              &lt;&lt; "} Removed."
                               &lt;&lt; std::endl;
                 } else if( operationType == ActiveMQConstants::DESTINATION_ADD_OPERATION ) {
-                    std::cout &lt;&lt; &quot;Temporary Destination {&quot;
+                    std::cout &lt;&lt; "Temporary Destination {"
                               &lt;&lt; info-&gt;getDestination()-&gt;getPhysicalName()
-                              &lt;&lt; &quot;} Added.&quot;
+                              &lt;&lt; "} Added."
                               &lt;&lt; std::endl;
                 } else {
-                    std::cout &lt;&lt; &quot;ERROR: I have no Idea what just happened!&quot;
+                    std::cout &lt;&lt; "ERROR: I have no Idea what just happened!"
                               &lt;&lt; std::endl;
                 }
 
             } catch( ClassCastException&amp; ex ) {
-                std::cout &lt;&lt; &quot;ERROR: Expected the Command to be a DestinationInfo, &quot;
-                          &lt;&lt; &quot;it wasn&#39;t so PANIC!!&quot;
+                std::cout &lt;&lt; "ERROR: Expected the Command to be a DestinationInfo, "
+                          &lt;&lt; "it wasn't so PANIC!!"
                           &lt;&lt; std::endl;
             }
         }
 
     } else {
-        std::cout &lt;&lt; &quot;Received a Non-Advisory Message!&quot; &lt;&lt; std::endl;
+        std::cout &lt;&lt; "Received a Non-Advisory Message!" &lt;&lt; std::endl;
     }
 }
 
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
 <p>Fortunately for use the code above looks more complicated than it really is, lets walk through it a bit more slowly now to understand what is going on:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Getting to the ActiveMQMessage object</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="acb1797e-d657-4a65-8b8a-54144ec26fa3" ac:name="code" ac:schema-version="1"><parameter ac:name="title">Getting to the ActiveMQMessage object</parameter><plain-text-body>
 
-if( message-&gt;getCMSType() == &quot;Advisory&quot; ) {
+if( message-&gt;getCMSType() == "Advisory" ) {
 
-    std::cout &lt;&lt; &quot;Received an Advisory Message!&quot; &lt;&lt; std::endl;
+    std::cout &lt;&lt; "Received an Advisory Message!" &lt;&lt; std::endl;
 
     const ActiveMQMessage* amqMessage =
         dynamic_cast&lt;const ActiveMQMessage*&gt;( message );
@@ -331,26 +316,22 @@ if( message-&gt;getCMSType() == &quot;Advisory&quot; ) {
     ... Other scary code comes next...
 
 else {
-    std::cout &lt;&lt; &quot;Received a Non-Advisory Message!&quot; &lt;&lt; std::endl;
+    std::cout &lt;&lt; "Received a Non-Advisory Message!" &lt;&lt; std::endl;
 }
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
 <p>The first thing we need to do is check that we received an advisory message, ActiveMQ encodes the Message Type as "Advisory" so that's easy enough.  We don't technically need to do this here since our consumer only listens on an advisory Topic but its not a bad idea to check.  Once we know its an advisory message we know that the message pointer should be of type ActiveMQMessage under that generic cms::Message disguise its wearing so we use a <strong>dynamic_cast</strong> to convert it.  Now that we've converted to an ActiveMQMessage what's next, well lets take a look:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Checking for an embedded command object</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="e2c6ec28-d857-4f19-bdfa-58b3b4d1ec3d" ac:name="code" ac:schema-version="1"><parameter ac:name="title">Checking for an embedded command object</parameter><plain-text-body>
 
 if( amqMessage != NULL &amp;&amp; amqMessage-&gt;getDataStructure() != NULL ) {
-    std::cout &lt;&lt; &quot;Advisory Message contains a Command Object!&quot; &lt;&lt; std::endl;
+    std::cout &lt;&lt; "Advisory Message contains a Command Object!" &lt;&lt; std::endl;
 
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
 <p>Every ActiveMQMessage derived object has a method called <strong>getDataStructure</strong> which can be used for all sorts of useful things, here we are trying to see if there is a command object contained in this message, and you guessed it, the getDataStructure method will tell us if there is one.  If there is then we can move onto checking for a DestinationInfo object:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Getting to the DestinationInfo object</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="63c3b5de-08b6-4727-a368-2e9ae4602a8a" ac:name="code" ac:schema-version="1"><parameter ac:name="title">Getting to the DestinationInfo object</parameter><plain-text-body>
 
 try{
 
@@ -360,37 +341,35 @@ try{
     unsigned char operationType = info-&gt;getOperationType();
 
     if( operationType == ActiveMQConstants::DESTINATION_REMOVE_OPERATION ) {
-        std::cout &lt;&lt; &quot;Temporary Destination {&quot;
+        std::cout &lt;&lt; "Temporary Destination {"
                   &lt;&lt; info-&gt;getDestination()-&gt;getPhysicalName()
-                  &lt;&lt; &quot;} Removed.&quot;
+                  &lt;&lt; "} Removed."
                   &lt;&lt; std::endl;
     } else if( operationType == ActiveMQConstants::DESTINATION_ADD_OPERATION ) {
-        std::cout &lt;&lt; &quot;Temporary Destination {&quot;
+        std::cout &lt;&lt; "Temporary Destination {"
                   &lt;&lt; info-&gt;getDestination()-&gt;getPhysicalName()
-                  &lt;&lt; &quot;} Added.&quot;
+                  &lt;&lt; "} Added."
                   &lt;&lt; std::endl;
      } else {
-        std::cout &lt;&lt; &quot;ERROR: I have no Idea what just happened!&quot;
+        std::cout &lt;&lt; "ERROR: I have no Idea what just happened!"
                   &lt;&lt; std::endl;
      }
 
 } catch( ClassCastException&amp; ex ) {
-    std::cout &lt;&lt; &quot;ERROR: Expected the Command to be a DestinationInfo, &quot;
-              &lt;&lt; &quot;it wasn&#39;t so PANIC!!&quot;
+    std::cout &lt;&lt; "ERROR: Expected the Command to be a DestinationInfo, "
+              &lt;&lt; "it wasn't so PANIC!!"
               &lt;&lt; std::endl;
 }
 
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
 <p>First thing you are probably asking about this code snippet is "what is that Pointer thing?", that is a thread safe smart pointer that is used internally by ActiveMQ-CPP to manage all the pointers that make up the cms::Message objects among other things.  We create an instance of a Pointer&lt;DestinationInfo&gt; type which will pointer to our DestinationInfo command if the dynamicCast method is able to make that conversion, if not a ClassCastException is thrown.  Once we have the DestinationInfo pointer we can retrieve the Operation Type of the command and then compare it to the constants in ActiveMQConstants to see what is being done to the Destination.  There are only two operation types, add and remove, but since the DestinationInfo object encodes the operation type value as an unsigned char we provide a fall-back case to alert us to that error.  We are almost done now, all that remains is to output what happened, and also let the user know what the name of the Destination is,
  the <strong>getPhysicalName</strong> method in the Destination class tells us that.  You could also find out whether the Destination is a Topic or a Queue using the Destination object, we leave that as an exercise to the reader.</p>
 
-<h3 id="HandlingAdvisoryMessages-CompleteExample:ConsumerthatlistensforCreationandDestructionofTemporaryDestinations"><strong>Complete Example: Consumer that listens for Creation and Destruction of Temporary Destinations</strong></h3>
+<h3><strong>Complete Example: Consumer that listens for Creation and Destruction of Temporary Destinations</strong></h3>
 
 <p>The complete code of our client application is shown below, you can also find this code as well as a simple client that creates both a Temporary Topic and a Temporary Queue in the examples folder in the source distribution.</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>TempDestinationAdvisoryConsumer Header File</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="2068fff3-c58c-4fa8-86b4-98f4a0c68521" ac:name="code" ac:schema-version="1"><parameter ac:name="title">TempDestinationAdvisoryConsumer Header File</parameter><plain-text-body>
 
 #ifndef _ACTIVEMQCPP_EXAMPLES_ADVISORIES_TEMPDESTINATIONADVISORYCONSUMER_H_
 #define _ACTIVEMQCPP_EXAMPLES_ADVISORIES_TEMPDESTINATIONADVISORYCONSUMER_H_
@@ -436,13 +415,11 @@ namespace advisories {
 
 #endif /* _ACTIVEMQCPP_EXAMPLES_ADVISORIES_TEMPDESTINATIONADVISORYCONSUMER_H_ */
 
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>TempDestinationAdvisoryConsumer Source File</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="0270a8c8-0536-45aa-af59-f5e69fbdcd5b" ac:name="code" ac:schema-version="1"><parameter ac:name="title">TempDestinationAdvisoryConsumer Source File</parameter><plain-text-body>
 
-#include &quot;TempDestinationAdvisoryConsumer.h&quot;
+#include "TempDestinationAdvisoryConsumer.h"
 
 #include &lt;cms/Topic.h&gt;
 #include &lt;cms/Message.h&gt;
@@ -470,11 +447,11 @@ TempDestinationAdvisoryConsumer::TempDestinationAdvisoryConsumer( cms::Session*
 
     if( session == NULL ) {
         throw NullPointerException(
-            __FILE__, __LINE__, &quot;Session Object passed was Null.&quot; );
+            __FILE__, __LINE__, "Session Object passed was Null." );
     }
 
     std::auto_ptr&lt;cms::Topic&gt; advisories( session-&gt;createTopic(
-        &quot;ActiveMQ.Advisory.TempTopic,ActiveMQ.Advisory.TempQueue&quot; ) );
+        "ActiveMQ.Advisory.TempTopic,ActiveMQ.Advisory.TempQueue" ) );
 
     this-&gt;session = session;
     this-&gt;consumer.reset( session-&gt;createConsumer( advisories.get() ) );
@@ -488,15 +465,15 @@ TempDestinationAdvisoryConsumer::~TempDestinationAdvisoryConsumer() {
 ////////////////////////////////////////////////////////////////////////////////
 void TempDestinationAdvisoryConsumer::onMessage( const cms::Message* message ) {
 
-    if( message-&gt;getCMSType() == &quot;Advisory&quot; ) {
+    if( message-&gt;getCMSType() == "Advisory" ) {
 
-        std::cout &lt;&lt; &quot;Received an Advisory Message!&quot; &lt;&lt; std::endl;
+        std::cout &lt;&lt; "Received an Advisory Message!" &lt;&lt; std::endl;
 
         const ActiveMQMessage* amqMessage =
             dynamic_cast&lt;const ActiveMQMessage*&gt;( message );
 
         if( amqMessage != NULL &amp;&amp; amqMessage-&gt;getDataStructure() != NULL ) {
-            std::cout &lt;&lt; &quot;Advisory Message contains a Command Object!&quot; &lt;&lt; std::endl;
+            std::cout &lt;&lt; "Advisory Message contains a Command Object!" &lt;&lt; std::endl;
 
             try {
 
@@ -506,32 +483,31 @@ void TempDestinationAdvisoryConsumer::onMessage( const cms::Message* message ) {
                 unsigned char operationType = info-&gt;getOperationType();
 
                 if( operationType == ActiveMQConstants::DESTINATION_REMOVE_OPERATION ) {
-                    std::cout &lt;&lt; &quot;Temporary Destination {&quot;
+                    std::cout &lt;&lt; "Temporary Destination {"
                               &lt;&lt; info-&gt;getDestination()-&gt;getPhysicalName()
-                              &lt;&lt; &quot;} Removed.&quot;
+                              &lt;&lt; "} Removed."
                               &lt;&lt; std::endl;
                 } else if( operationType == ActiveMQConstants::DESTINATION_ADD_OPERATION ) {
-                    std::cout &lt;&lt; &quot;Temporary Destination {&quot;
+                    std::cout &lt;&lt; "Temporary Destination {"
                               &lt;&lt; info-&gt;getDestination()-&gt;getPhysicalName()
-                              &lt;&lt; &quot;} Added.&quot;
+                              &lt;&lt; "} Added."
                               &lt;&lt; std::endl;
                 } else {
-                    std::cout &lt;&lt; &quot;ERROR: I have no Idea what just happened!&quot;
+                    std::cout &lt;&lt; "ERROR: I have no Idea what just happened!"
                               &lt;&lt; std::endl;
                 }
 
             } catch( ClassCastException&amp; ex ) {
-                std::cout &lt;&lt; &quot;ERROR: Expected the Command to be a DestinationInfo, &quot;
-                          &lt;&lt; &quot;it wasn&#39;t so PANIC!!&quot;
+                std::cout &lt;&lt; "ERROR: Expected the Command to be a DestinationInfo, "
+                          &lt;&lt; "it wasn't so PANIC!!"
                           &lt;&lt; std::endl;
             }
         }
 
     } else {
-        std::cout &lt;&lt; &quot;Received a Non-Advisory Message!&quot; &lt;&lt; std::endl;
+        std::cout &lt;&lt; "Received a Non-Advisory Message!" &lt;&lt; std::endl;
     }
 }
 
-]]></script>
-</div></div></div>
+</plain-text-body></structured-macro></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/cms/how-do-i-prevent-autoconf-from-enabling-openssl-support.xml
----------------------------------------------------------------------
diff --git a/cms/how-do-i-prevent-autoconf-from-enabling-openssl-support.xml b/cms/how-do-i-prevent-autoconf-from-enabling-openssl-support.xml
index 99c203f..d490535 100644
--- a/cms/how-do-i-prevent-autoconf-from-enabling-openssl-support.xml
+++ b/cms/how-do-i-prevent-autoconf-from-enabling-openssl-support.xml
@@ -1,7 +1,6 @@
 <div class="wiki-content maincontent"><p>In some cases you may not want to build in support for OpenSSL, since the Autotools script do this automatically we have provided a means to disable this, just add the <em>disable-ssl</em> options to your configure and no SSL support will be added:</p>
 
-<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
-<pre>./configure --disable-ssl
-</pre>
-</div></div></div>
+<structured-macro ac:macro-id="b274ecb8-c81f-4c58-93c0-7c845fe29265" ac:name="noformat" ac:schema-version="1"><plain-text-body>
+./configure --disable-ssl
+</plain-text-body></structured-macro></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/cms/how-do-i-use-the-ssl-transport.xml
----------------------------------------------------------------------
diff --git a/cms/how-do-i-use-the-ssl-transport.xml b/cms/how-do-i-use-the-ssl-transport.xml
index b32da0f..0e0054f 100644
--- a/cms/how-do-i-use-the-ssl-transport.xml
+++ b/cms/how-do-i-use-the-ssl-transport.xml
@@ -1,33 +1,30 @@
-<div class="wiki-content maincontent"><p>The first thing you need to do in order to use the SSL Transport in ActiveMQ-CPP is to build the library with SSL support enabled, for that see the <a shape="rect" href="building-faqs.xml">Build FAQs</a>.</p>
+<div class="wiki-content maincontent"><p>The first thing you need to do in order to use the SSL Transport in ActiveMQ-CPP is to build the library with SSL support enabled, for that see the <link><page ri:content-title="Building FAQs"></page><link-body>Build FAQs</link-body></link>.</p>
 
 <p>Once you have a build that supports the SSL protocol then its pretty simple, just replace the use of the <em>TCP</em> Transport in your connection URI with SSL, for example:  </p>
 
-<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
-<pre>tcp://broker1:61616
-</pre>
-</div></div>
+<structured-macro ac:macro-id="52f589ed-9f33-48fd-967b-efabc07ffa0c" ac:name="noformat" ac:schema-version="1"><plain-text-body>
+tcp://broker1:61616
+</plain-text-body></structured-macro>
 
 <p>becomes:</p>
 
-<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
-<pre>ssl://broker1:61616
-</pre>
-</div></div>
+<structured-macro ac:macro-id="859b73ed-9e01-48b7-86ce-19bcdab4acb2" ac:name="noformat" ac:schema-version="1"><plain-text-body>
+ssl://broker1:61616
+</plain-text-body></structured-macro>
 
 <p>You should note that in order to validate that the certificate that the broker sends is the one we want we must validate the "Common Name (CN)" field from the certificate against the host-name in the URI.  If you have trouble connecting to the broker one of the first things to check it if your host-name matches the broker certificate common name.</p>
 
 <p>That's almost it, there's just a couple other things you need might need to do.  The SSL transport needs to know whether or not to trust the certificate that the Broker sends to it, for this you need to set a property in the Decaf library (this is the native library ActiveMQ-CPP uses for cross platform support).  The property you set tells the library where to find either the Broker's Certificate or the Certificate of the Authority that signed the broker's certificate.  If you are using the Failover Transport (which you should be) in conjunction with the SSL Transport then its best to set the property to point to the certificate that signed all your broker's certificates.  Here's what the code looks like:</p>
 
-<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
-<pre>
+<structured-macro ac:macro-id="f9f78a4d-7595-4914-843a-687c8868dfd4" ac:name="noformat" ac:schema-version="1"><plain-text-body>
+
 #include &lt;decaf/lang/System.h&gt;
 
 ...
 
 decaf::lang::System::setProperty( "decaf.net.ssl.trustStore", "&lt;path to Certificate file&gt;/certificate.pem" );
 
-</pre>
-</div></div>
+</plain-text-body></structured-macro>
 
 <p>One thing to note here is that since we are using OpenSSL as our SSL Engine the Certificate needs to be in PEM format.</p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/cms/index.xml
----------------------------------------------------------------------
diff --git a/cms/index.xml b/cms/index.xml
index 7407747..3df83c7 100644
--- a/cms/index.xml
+++ b/cms/index.xml
@@ -1,84 +1,2 @@
-<div class="wiki-content maincontent"><p>CMS (stands for C++ Messaging Service) is a JMS-like API for C++ for interfacing with Message Brokers such as <a shape="rect" class="external-link" href="http://activemq.apache.org">Apache ActiveMQ</a>. CMS helps to make your C++ client code much neater and easier to follow. To get a better feel for CMS try the <a shape="rect" href="api.xml">API</a> Reference. ActiveMQ-CPP is a client only library, a message broker such as <a shape="rect" class="external-link" href="http://activemq.apache.org">Apache ActiveMQ</a> is still needed for your clients to communicate.</p><p>Our implementation of CMS is called ActiveMQ-CPP, which has an architecture that allows for pluggable transports and wire formats. Currently we support the <a shape="rect" href="openwire-support.xml">OpenWire</a> and <a shape="rect" href="stomp-support.xml">Stomp</a> protocols, both over TCP and SSL, we also now support a Failover Transport for more reliable client operation. In 
 addition to CMS, ActiveMQ-CPP also provides a robust set of classes that support platform independent constructs such as threading, I/O, sockets, etc. You may find many of these utilities very useful, such as a Java like Thread class or the "synchronized" macro that let's you use a Java-like synchronization on any object that implements the activemq::concurrent::Synchronizable interface. ActiveMQ-CPP is released under the <a shape="rect" class="external-link" href="http://www.apache.org/">Apache</a> <a shape="rect" class="external-link" href="http://www.apache.org/licenses/LICENSE-2.0.html">2.0 License</a></p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="index.data/ActiveMQ-CPP.png" data-image-src="/confluence/download/attachments/45919/ActiveMQ-CPP.png?version=3&amp;modificationDate=1176898417000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="4180" data-linked-resource-version="3" data-linked-resource-type="att
 achment" data-linked-resource-default-alias="ActiveMQ-CPP.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="45919" data-linked-resource-container-version="55"></span></p><h3 id="Index-LatestNewsItems.">Latest News Items.</h3><p>    
-
-    
-        
-</p><div class="blog-post-listing">
-            <div class="logo-heading-block">
-            <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~tabish121">
-               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: tabish121" title="tabish121">
-           </a>            </span>
-            <span class="blogHeading">
-                <a shape="rect" class="blogHeading" href="2017/02/24/activemq-cpp-v394-released.xml">ActiveMQ-CPP v3.9.4 Released</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~tabish121">Timothy Bish</a> posted on Feb 24, 2017</div>
-            
-        </div>
-    
-    <div class="wiki-content">
-        <div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><p>The next release of ActiveMQ-CPP is out featuring a small fix to ensure failed producer create throws an exception, grab the source bundle <a shape="rect" class="external-link" href="http://activemq.apache.org/cms/activemq-cpp-394-release.html">here</a>.</p></div></div></div></div></div></div>
-    </div>
-    
-        
-    </div>
-    
-        
-<div class="blog-post-listing">
-            <div class="logo-heading-block">
-            <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~tabish121">
-               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: tabish121" title="tabish121">
-           </a>            </span>
-            <span class="blogHeading">
-                <a shape="rect" class="blogHeading" href="2016/04/01/activemq-cpp-v393-released.xml">ActiveMQ-CPP v3.9.3 Released</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~tabish121">Timothy Bish</a> posted on Apr 01, 2016</div>
-            
-        </div>
-    
-    <div class="wiki-content">
-        <div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><p>The next release of ActiveMQ-CPP is out featuring a small fix to ensure failed producer create throws an exception, grab the source bundle <a shape="rect" class="external-link" href="http://activemq.apache.org/cms/activemq-cpp-393-release.html">here</a>.</p></div></div></div></div></div>
-    </div>
-    
-        
-    </div>
-    
-        
-<div class="blog-post-listing">
-            <div class="logo-heading-block">
-            <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~tabish121">
-               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: tabish121" title="tabish121">
-           </a>            </span>
-            <span class="blogHeading">
-                <a shape="rect" class="blogHeading" href="2016/02/09/activemq-cpp-v392-released.xml">ActiveMQ-CPP v3.9.2 Released</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~tabish121">Timothy Bish</a> posted on Feb 09, 2016</div>
-            
-        </div>
-    
-    <div class="wiki-content">
-        <div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><p>The next release of ActiveMQ-CPP is out featuring a small STOMP protocol fix, grab the source bundle <a shape="rect" class="external-link" href="http://activemq.apache.org/cms/activemq-cpp-392-release.html">here</a>.</p></div></div></div></div>
-    </div>
-    
-        
-    </div>
-    
-        
-<div class="blog-post-listing">
-            <div class="logo-heading-block">
-            <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~tabish121">
-               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: tabish121" title="tabish121">
-           </a>            </span>
-            <span class="blogHeading">
-                <a shape="rect" class="blogHeading" href="2015/12/04/activemq-cpp-v391-released.xml">ActiveMQ-CPP v3.9.1 Released</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~tabish121">Timothy Bish</a> posted on Dec 04, 2015</div>
-            
-        </div>
-    
-    <div class="wiki-content">
-        <div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><p>The next release of ActiveMQ-CPP is out featuring a critical memory leak fix, grab the source bundle <a shape="rect" class="external-link" href="http://activemq.apache.org/cms/activemq-cpp-391-release.html">here</a>.</p></div></div></div>
-    </div>
-    
-        
-    </div>
-    <h3 id="Index-ToseeolderNewspostings.">To see older News postings.</h3><ul><li><a shape="rect" href="news.xml">Get all the Apache ActiveMQ-CPP News Here!</a></li></ul></div>
+<div class="wiki-content maincontent"><p>CMS (stands for C++ Messaging Service) is a JMS-like API for C++ for interfacing with Message Brokers such as <a shape="rect" href="http://activemq.apache.org">Apache ActiveMQ</a>. CMS helps to make your C++ client code much neater and easier to follow. To get a better feel for CMS try the <link><page ri:content-title="API"></page></link> Reference. ActiveMQ-CPP is a client only library, a message broker such as <a shape="rect" href="http://activemq.apache.org">Apache ActiveMQ</a> is still needed for your clients to communicate.</p><p>Our implementation of CMS is called ActiveMQ-CPP, which has an architecture that allows for pluggable transports and wire formats. Currently we support the <link><page ri:content-title="OpenWire Support"></page><plain-text-link-body>OpenWire</plain-text-link-body></link> and <link><page ri:content-title="Stomp Support"></page><plain-text-link-body>Stomp</plain-text-link-body></link> protocols, both over TCP and 
 SSL, we also now support a Failover Transport for more reliable client operation. In addition to CMS, ActiveMQ-CPP also provides a robust set of classes that support platform independent constructs such as threading, I/O, sockets, etc. You may find many of these utilities very useful, such as a Java like Thread class or the "synchronized" macro that let's you use a Java-like synchronization on any object that implements the activemq::concurrent::Synchronizable interface. ActiveMQ-CPP is released under the <a shape="rect" href="http://www.apache.org/">Apache</a> <a shape="rect" href="http://www.apache.org/licenses/LICENSE-2.0.html">2.0 License</a></p><p><image><attachment ri:filename="ActiveMQ-CPP.png"></attachment></image></p><h3>Latest News Items.</h3><p><structured-macro ac:macro-id="6bca84f5-0f2c-4d7e-b7b6-b55e56478097" ac:name="blog-posts" ac:schema-version="1"><parameter ac:name="">4</parameter></structured-macro></p><h3>To see older News postings.</h3><ul><li><link><page ri:co
 ntent-title="News"></page><plain-text-link-body>Get all the Apache ActiveMQ-CPP News Here!</plain-text-link-body></link></li></ul></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/cms/mailing-lists.xml
----------------------------------------------------------------------
diff --git a/cms/mailing-lists.xml b/cms/mailing-lists.xml
index 240f33b..075cb46 100644
--- a/cms/mailing-lists.xml
+++ b/cms/mailing-lists.xml
@@ -1,11 +1,11 @@
-<div class="wiki-content maincontent"><p>The following mailing lists are available. Before posting you might want to read the <a shape="rect" class="unresolved" href="#">Tips for getting help</a>.</p>
+<div class="wiki-content maincontent"><p>The following mailing lists are available. Before posting you might want to read the <link><page ri:content-title="Tips for getting help"></page></link>.</p>
 
-<h2 id="MailingLists-ApacheMailingLists">Apache Mailing Lists</h2>
+<h2>Apache Mailing Lists</h2>
 
-<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> List Name </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Subscribe </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Unsubscribe </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Archive </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Nabble (Online Forums) </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> activemq User List </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" class="external-link" href="mailto:users-subscribe@activemq.apache.org" rel="nofollow">Subscribe</a> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" class="external-link" href="mailto:users-unsubscribe@activemq.apache.org" rel="nofollow">Unsubscribe</a> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" class="external-link" href="http://ma
 il-archives.apache.org/mod_mbox/activemq-users/">Archive</a> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" class="external-link" href="http://www.nabble.com/ActiveMQ---User-f2356.html" rel="nofollow">Nabble</a> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> activemq Developer List </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" class="external-link" href="mailto:dev-subscribe@activemq.apache.org" rel="nofollow">Subscribe</a> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" class="external-link" href="mailto:dev-unsubscribe@activemq.apache.org" rel="nofollow">Unsubscribe</a> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" class="external-link" href="http://mail-archives.apache.org/mod_mbox/activemq-dev/">Archive</a> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" class="external-link" href="http://www.nabble.com
 /ActiveMQ---Dev-f2355.html" rel="nofollow">Nabble</a> </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> activemq SCM List </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" class="external-link" href="mailto:commits-subscribe@activemq.apache.org" rel="nofollow">Subscribe</a> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" class="external-link" href="mailto:commits-unsubscribe@activemq.apache.org" rel="nofollow">Unsubscribe</a> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> <a shape="rect" class="external-link" href="http://mail-archives.apache.org/mod_mbox/activemq-commits/">Archive</a> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr></tbody></table></div>
+<table><tbody><tr><th colspan="1" rowspan="1"><p> List Name </p></th><th colspan="1" rowspan="1"><p> Subscribe </p></th><th colspan="1" rowspan="1"><p> Unsubscribe </p></th><th colspan="1" rowspan="1"><p> Archive </p></th><th colspan="1" rowspan="1"><p> Nabble (Online Forums) </p></th></tr><tr><td colspan="1" rowspan="1"><p> activemq User List </p></td><td colspan="1" rowspan="1"><p> <a shape="rect" href="mailto:users-subscribe@activemq.apache.org">Subscribe</a> </p></td><td colspan="1" rowspan="1"><p> <a shape="rect" href="mailto:users-unsubscribe@activemq.apache.org">Unsubscribe</a> </p></td><td colspan="1" rowspan="1"><p> <a shape="rect" href="http://mail-archives.apache.org/mod_mbox/activemq-users/">Archive</a> </p></td><td colspan="1" rowspan="1"><p> <a shape="rect" href="http://www.nabble.com/ActiveMQ---User-f2356.html">Nabble</a> </p></td></tr><tr><td colspan="1" rowspan="1"><p> activemq Developer List </p></td><td colspan="1" rowspan="1"><p> <a shape="rect" href="mailto:dev-
 subscribe@activemq.apache.org">Subscribe</a> </p></td><td colspan="1" rowspan="1"><p> <a shape="rect" href="mailto:dev-unsubscribe@activemq.apache.org">Unsubscribe</a> </p></td><td colspan="1" rowspan="1"><p> <a shape="rect" href="http://mail-archives.apache.org/mod_mbox/activemq-dev/">Archive</a> </p></td><td colspan="1" rowspan="1"><p> <a shape="rect" href="http://www.nabble.com/ActiveMQ---Dev-f2355.html">Nabble</a> </p></td></tr><tr><td colspan="1" rowspan="1"><p> activemq SCM List </p></td><td colspan="1" rowspan="1"><p> <a shape="rect" href="mailto:commits-subscribe@activemq.apache.org">Subscribe</a> </p></td><td colspan="1" rowspan="1"><p> <a shape="rect" href="mailto:commits-unsubscribe@activemq.apache.org">Unsubscribe</a> </p></td><td colspan="1" rowspan="1"><p> <a shape="rect" href="http://mail-archives.apache.org/mod_mbox/activemq-commits/">Archive</a> </p></td><td colspan="1" rowspan="1"><p>&#160;</p></td></tr></tbody></table>
 
 
-<h3 id="MailingLists-DiscussionForums">Discussion Forums</h3>
+<h3>Discussion Forums</h3>
 
-<p>If you prefer you could use our <a shape="rect" href="discussion-forums.xml">Discussion Forums</a> which are sync'd with the above mailing lists.</p></div>
+<p>If you prefer you could use our <link><page ri:content-title="Discussion Forums"></page></link> which are sync'd with the above mailing lists.</p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/cms/navigation.xml
----------------------------------------------------------------------
diff --git a/cms/navigation.xml b/cms/navigation.xml
index 20c7883..2a377e9 100644
--- a/cms/navigation.xml
+++ b/cms/navigation.xml
@@ -1,40 +1,41 @@
-<div class="wiki-content maincontent"><h3 id="Navigation-Overview"><a shape="rect" href="index.xml">Overview</a></h3>
+<div class="wiki-content maincontent"><h3><link><page ri:content-title="Index"></page><link-body>Overview</link-body></link></h3>
 
-<ul class="alternate"><li><a shape="rect" href="index.xml">Index</a></li><li><a shape="rect" href="news.xml">News</a></li><li><a shape="rect" href="getting-started.xml">Getting Started</a></li><li><a shape="rect" href="tutorials.xml">Tutorials</a></li><li><a shape="rect" href="api.xml">API</a></li><li><a shape="rect" href="faq.xml">FAQ</a></li><li><a shape="rect" href="download.xml">Download</a></li></ul>
+<ul class="alternate"><li><link><page ri:content-title="Index"></page></link></li><li><link><page ri:content-title="News"></page></link></li><li><link><page ri:content-title="Getting Started"></page></link></li><li><link><page ri:content-title="Tutorials"></page></link></li><li><link><page ri:content-title="API"></page></link></li><li><link><page ri:content-title="FAQ"></page></link></li><li><link><page ri:content-title="Download"></page></link></li></ul>
 
 
-<h3 id="Navigation-Connectivity"><a shape="rect" href="connectivity.xml">Connectivity</a></h3>
+<h3><link><page ri:content-title="Connectivity"></page></link></h3>
 
-<ul class="alternate"><li><a shape="rect" href="stomp-support.xml">Stomp</a></li><li><a shape="rect" href="openwire-support.xml">OpenWire</a></li></ul>
+<ul class="alternate"><li><link><page ri:content-title="Stomp Support"></page><link-body>Stomp</link-body></link></li><li><link><page ri:content-title="OpenWire Support"></page><link-body>OpenWire</link-body></link></li></ul>
 
 
-<h3 id="Navigation-UsingActiveMQ-CPP"><a shape="rect" href="using-activemq-cpp.xml">Using ActiveMQ-CPP</a></h3>
+<h3><link><page ri:content-title="Using ActiveMQ-CPP"></page></link></h3>
 
-<ul class="alternate"><li><a shape="rect" href="getting-started.xml">Getting Started</a></li><li><a shape="rect" href="cms-api-overview.xml">CMS API Overview</a></li><li><a shape="rect" href="example.xml">Example</a></li><li><a shape="rect" href="configuring.xml">Configuring</a></li></ul>
+<ul class="alternate"><li><link><page ri:content-title="Getting Started"></page></link></li><li><link><page ri:content-title="CMS API Overview"></page></link></li><li><link><page ri:content-title="Example"></page></link></li><li><link><page ri:content-title="Configuring"></page></link></li></ul>
 
 
-<h3 id="Navigation-Search">Search</h3>
+<h3>Search</h3>
 
-<p></p><p>
-</p><div>
-<form enctype="application/x-www-form-urlencoded" method="get" action="http://www.google.com/search" style="font-size: 10px;">
-<input type="hidden" name="ie" value="UTF-8">
-<input type="hidden" name="oe" value="UTF-8">
-  <input maxlength="255" type="text" name="q" size="15" value="value"><br clear="none">
-  <input type="submit" name="btnG" value="Search">
-  <input type="hidden" name="domains" value="activemq.apache.org">
-  <input type="hidden" name="sitesearch" value="activemq.apache.org">
-</form>
-</div>
-<p></p>
+<p></p><p><structured-macro ac:macro-id="a6958b0d-f81f-414e-a092-9833bafc9aea" ac:name="html" ac:schema-version="1"><plain-text-body>
+&lt;DIV&gt;
+&lt;FORM action="http://www.google.com/search" method="get" style="font-size: 10px;"&gt;
+&lt;INPUT name="ie" type="hidden" value="UTF-8"&gt;&lt;/INPUT&gt;
+&lt;INPUT name="oe" type="hidden" value="UTF-8"&gt;&lt;/INPUT&gt;
+  &lt;INPUT maxlength="255" name="q" size="15" type="text" value&gt;&lt;/INPUT&gt;&lt;BR&gt;&lt;/BR&gt;
+  &lt;INPUT name="btnG" type="submit" value="Search"&gt;&lt;/INPUT&gt;
+  &lt;INPUT name="domains" type="hidden" value="activemq.apache.org"&gt;&lt;/INPUT&gt;
+  &lt;INPUT name="sitesearch" type="hidden" value="activemq.apache.org"&gt;&lt;/INPUT&gt;
+&lt;/FORM&gt;
+&lt;/DIV&gt;
+</plain-text-body></structured-macro></p><p></p>
 
-<h3 id="Navigation-Community"><a shape="rect" href="community.xml">Community</a></h3>
+<h3><link><page ri:content-title="Community"></page></link></h3>
 
-<ul class="alternate"><li><a shape="rect" href="support.xml">Support</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/contributing.html">Contributing</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/discussion-forums.html">Discussion Forums</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/mailing-lists.html">Mailing Lists</a></li><li><a shape="rect" class="external-link" href="irc://irc.codehaus.org/activemq" rel="nofollow">IRC</a></li><li><a shape="rect" class="external-link" href="http://servlet.uwyn.com/drone/log/hausbot/activemq" rel="nofollow">IRC Log</a></li><li><a shape="rect" href="site.xml">Site</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/team.html">Team</a></li></ul>
+<ul class="alternate"><li><link><page ri:content-title="Support"></page></link></li><li><a shape="rect" href="http://activemq.apache.org/contributing.html">Contributing</a></li><li><a shape="rect" href="http://activemq.apache.org/discussion-forums.html">Discussion Forums</a></li><li><a shape="rect" href="http://activemq.apache.org/mailing-lists.html">Mailing Lists</a></li><li><a shape="rect" href="irc://irc.codehaus.org/activemq">IRC</a></li><li><a shape="rect" href="http://servlet.uwyn.com/drone/log/hausbot/activemq">IRC Log</a></li><li><link><page ri:content-title="Site"></page></link></li><li><a shape="rect" href="http://activemq.apache.org/team.html">Team</a></li></ul>
 
 
 
-<h3 id="Navigation-Developers"><a shape="rect" href="developers.xml">Developers</a></h3>
+<h3><link><page ri:content-title="Developers"></page></link></h3>
 
-<ul class="alternate"><li><a shape="rect" href="source.xml">Source</a></li><li><a shape="rect" href="building.xml">Building</a></li><li><a shape="rect" href="creating-distributions.xml">Creating Distributions</a></li></ul></div>
+<ul class="alternate"><li><link><page ri:content-title="Source"></page></link></li><li><link><page ri:content-title="Building"></page></link></li><li><link><page ri:content-title="Creating Distributions"></page></link></li></ul>
+</div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/cms/news.xml
----------------------------------------------------------------------
diff --git a/cms/news.xml b/cms/news.xml
index 60beb7f..e9dd923 100644
--- a/cms/news.xml
+++ b/cms/news.xml
@@ -1,206 +1,4 @@
-<div class="wiki-content maincontent"><h3 id="News-ActiveMQ-CPPNews">ActiveMQ-CPP News</h3>
+<div class="wiki-content maincontent"><h3>ActiveMQ-CPP News</h3>
 
-    
-
-    
-        
-<div class="blog-post-listing">
-            <div class="logo-heading-block">
-            <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~tabish121">
-               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: tabish121" title="tabish121">
-           </a>            </span>
-            <span class="blogHeading">
-                <a shape="rect" class="blogHeading" href="2017/02/24/activemq-cpp-v394-released.xml">ActiveMQ-CPP v3.9.4 Released</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~tabish121">Timothy Bish</a> posted on Feb 24, 2017</div>
-            
-        </div>
-    
-    <div class="wiki-content">
-        <div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><p>The next release of ActiveMQ-CPP is out featuring a small fix to ensure failed producer create throws an exception, grab the source bundle <a shape="rect" class="external-link" href="http://activemq.apache.org/cms/activemq-cpp-394-release.html">here</a>.</p></div></div></div></div></div></div>
-    </div>
-    
-        
-    </div>
-    
-        
-<div class="blog-post-listing">
-            <div class="logo-heading-block">
-            <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~tabish121">
-               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: tabish121" title="tabish121">
-           </a>            </span>
-            <span class="blogHeading">
-                <a shape="rect" class="blogHeading" href="2016/04/01/activemq-cpp-v393-released.xml">ActiveMQ-CPP v3.9.3 Released</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~tabish121">Timothy Bish</a> posted on Apr 01, 2016</div>
-            
-        </div>
-    
-    <div class="wiki-content">
-        <div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><p>The next release of ActiveMQ-CPP is out featuring a small fix to ensure failed producer create throws an exception, grab the source bundle <a shape="rect" class="external-link" href="http://activemq.apache.org/cms/activemq-cpp-393-release.html">here</a>.</p></div></div></div></div></div>
-    </div>
-    
-        
-    </div>
-    
-        
-<div class="blog-post-listing">
-            <div class="logo-heading-block">
-            <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~tabish121">
-               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: tabish121" title="tabish121">
-           </a>            </span>
-            <span class="blogHeading">
-                <a shape="rect" class="blogHeading" href="2016/02/09/activemq-cpp-v392-released.xml">ActiveMQ-CPP v3.9.2 Released</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~tabish121">Timothy Bish</a> posted on Feb 09, 2016</div>
-            
-        </div>
-    
-    <div class="wiki-content">
-        <div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><p>The next release of ActiveMQ-CPP is out featuring a small STOMP protocol fix, grab the source bundle <a shape="rect" class="external-link" href="http://activemq.apache.org/cms/activemq-cpp-392-release.html">here</a>.</p></div></div></div></div>
-    </div>
-    
-        
-    </div>
-    
-        
-<div class="blog-post-listing">
-            <div class="logo-heading-block">
-            <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~tabish121">
-               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: tabish121" title="tabish121">
-           </a>            </span>
-            <span class="blogHeading">
-                <a shape="rect" class="blogHeading" href="2015/12/04/activemq-cpp-v391-released.xml">ActiveMQ-CPP v3.9.1 Released</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~tabish121">Timothy Bish</a> posted on Dec 04, 2015</div>
-            
-        </div>
-    
-    <div class="wiki-content">
-        <div class="wiki-content"><div class="wiki-content"><div class="wiki-content"><p>The next release of ActiveMQ-CPP is out featuring a critical memory leak fix, grab the source bundle <a shape="rect" class="external-link" href="http://activemq.apache.org/cms/activemq-cpp-391-release.html">here</a>.</p></div></div></div>
-    </div>
-    
-        
-    </div>
-    
-        
-<div class="blog-post-listing">
-            <div class="logo-heading-block">
-            <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~tabish121">
-               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: tabish121" title="tabish121">
-           </a>            </span>
-            <span class="blogHeading">
-                <a shape="rect" class="blogHeading" href="2015/08/16/activemq-cpp-v390-released.xml">ActiveMQ-CPP v3.9.0 Released</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~tabish121">Timothy Bish</a> posted on Aug 16, 2015</div>
-            
-        </div>
-    
-    <div class="wiki-content">
-        <div class="wiki-content"><div class="wiki-content"><p>The next release of ActiveMQ-CPP is out featuring a critical memory leak fix, grab the source bundle <a shape="rect" class="external-link" href="http://activemq.apache.org/cms/activemq-cpp-390-release.html">here</a>.</p></div></div>
-    </div>
-    
-        
-    </div>
-    
-        
-<div class="blog-post-listing">
-            <div class="logo-heading-block">
-            <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~tabish121">
-               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: tabish121" title="tabish121">
-           </a>            </span>
-            <span class="blogHeading">
-                <a shape="rect" class="blogHeading" href="2014/07/18/activemq-cpp-v383-released.xml">ActiveMQ-CPP v3.8.3 Released</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~tabish121">Timothy Bish</a> posted on Jul 18, 2014</div>
-            
-        </div>
-    
-    <div class="wiki-content">
-        <div class="wiki-content"><p>The next release of ActiveMQ-CPP is out featuring a critical memory leak fix, grab the source bundle <a shape="rect" href="https://cwiki.apache.org/confluence/display/AMQCPP/ActiveMQ-CPP+3.8.3+Release">here</a>.</p></div>
-    </div>
-    
-        
-    </div>
-    
-        
-<div class="blog-post-listing">
-            <div class="logo-heading-block">
-            <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~tabish121">
-               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: tabish121" title="tabish121">
-           </a>            </span>
-            <span class="blogHeading">
-                <a shape="rect" class="blogHeading" href="2013/12/10/activemq-cpp-v382-released.xml">ActiveMQ-CPP v3.8.2 Released</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~tabish121">Timothy Bish</a> posted on Dec 10, 2013</div>
-            
-        </div>
-    
-    <div class="wiki-content">
-        <p>The next release of ActiveMQ-CPP is out featuring a critical memory leak fix, grab the source bundle <a shape="rect" href="activemq-cpp-382-release.xml">here</a>.</p>
-    </div>
-    
-        
-    </div>
-    
-        
-<div class="blog-post-listing">
-            <div class="logo-heading-block">
-            <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~tabish121">
-               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: tabish121" title="tabish121">
-           </a>            </span>
-            <span class="blogHeading">
-                <a shape="rect" class="blogHeading" href="2013/09/19/activemq-cpp-v381-released.xml">ActiveMQ-CPP v3.8.1 Released</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~tabish121">Timothy Bish</a> posted on Sep 19, 2013</div>
-            
-        </div>
-    
-    <div class="wiki-content">
-        <p>The next release of ActiveMQ-CPP is out featuring a critical memory leak fix, grab the source bundle <a shape="rect" href="activemq-cpp-381-release.xml">here</a>.</p>
-    </div>
-    
-        
-    </div>
-    
-        
-<div class="blog-post-listing">
-            <div class="logo-heading-block">
-            <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~tabish121">
-               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: tabish121" title="tabish121">
-           </a>            </span>
-            <span class="blogHeading">
-                <a shape="rect" class="blogHeading" href="/confluence/pages/viewpage.action?pageId=34019221">ActiveMQ-CPP v3.8.0 Released.</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~tabish121">Timothy Bish</a> posted on Sep 07, 2013</div>
-            
-        </div>
-    
-    <div class="wiki-content">
-        <p>The next release of ActiveMQ-CPP is out featuring a lot of stability fixes and a few new features. Download your copy from <a shape="rect" href="activemq-cpp-380-release.xml">here</a>.</p>
-    </div>
-    
-        
-    </div>
-    
-        
-<div class="blog-post-listing">
-            <div class="logo-heading-block">
-            <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~tabish121">
-               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: tabish121" title="tabish121">
-           </a>            </span>
-            <span class="blogHeading">
-                <a shape="rect" class="blogHeading" href="2013/05/19/activemq-cpp-v370-released.xml">ActiveMQ-CPP v3.7.0 Released</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~tabish121">Timothy Bish</a> posted on May 19, 2013</div>
-            
-        </div>
-    
-    <div class="wiki-content">
-        <p>The next release of ActiveMQ-CPP is out featuring a lot of stability fixes. Download your copy from <a shape="rect" href="activemq-cpp-370-release.xml">here</a>.</p>
-    </div>
-    
-        
-    </div>
-    </div>
+<structured-macro ac:macro-id="e56c7a5a-74fb-481b-8683-b438708ab851" ac:name="blog-posts" ac:schema-version="1"><parameter ac:name="">10</parameter></structured-macro></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/cms/openssl-support.xml
----------------------------------------------------------------------
diff --git a/cms/openssl-support.xml b/cms/openssl-support.xml
index 5240f0f..efe67f2 100644
--- a/cms/openssl-support.xml
+++ b/cms/openssl-support.xml
@@ -1,3 +1,3 @@
 <div class="wiki-content maincontent"><p>This section covers building the ActiveMQ-CPP Library with support for SSL using the OpenSSL library</p>
-<ul class="childpages-macro"><li><a shape="rect" href="enable-openssl-support-with-autotools.xml">Enable OpenSSL support with autotools</a></li><li><a shape="rect" href="how-do-i-prevent-autoconf-from-enabling-openssl-support.xml">How do I prevent autoconf from enabling OpenSSL support</a></li><li><a shape="rect" href="how-to-enable-ssl-support-on-windows.xml">How to enable SSL support on Windows</a></li></ul></div>
+<structured-macro ac:macro-id="91699896-dbbe-43e4-b0fe-3ca45b430706" ac:name="children" ac:schema-version="1"><parameter ac:name="all">true</parameter></structured-macro></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/cms/openwire-support.xml
----------------------------------------------------------------------
diff --git a/cms/openwire-support.xml b/cms/openwire-support.xml
index 4fe5ea4..e99adf5 100644
--- a/cms/openwire-support.xml
+++ b/cms/openwire-support.xml
@@ -1,5 +1,6 @@
-<div class="wiki-content maincontent"><h2 id="OpenWireSupport-ActiveMQ-CPPOpenWireSupport">ActiveMQ-CPP OpenWire Support</h2>
+<div class="wiki-content maincontent"><h2>ActiveMQ-CPP OpenWire Support</h2>
 
-<p><a shape="rect" class="external-link" href="http://activemq.apache.org/openwire.html">OpenWire</a> is the native protocol used by the <a shape="rect" class="external-link" href="http://activemq.apache.org/">ActiveMQ</a>.  As of version 2.0, ActiveMQ-CPP supports the OpenWire protocol, with a few exceptions.</p>
-<ul><li>ObjectMessage - We cannot reconstruct the object(s) contained in an ObjectMessage in C++, so if your application is subscribed to a queue or topic that has an ObjectMessage sent to it, you will receive the message but will not be able to extract an Object from it.</li></ul></div>
+<p><a shape="rect" href="http://activemq.apache.org/openwire.html">OpenWire</a> is the native protocol used by the <a shape="rect" href="http://activemq.apache.org/">ActiveMQ</a>.  As of version 2.0, ActiveMQ-CPP supports the OpenWire protocol, with a few exceptions.</p>
+<ul><li>ObjectMessage - We cannot reconstruct the object(s) contained in an ObjectMessage in C++, so if your application is subscribed to a queue or topic that has an ObjectMessage sent to it, you will receive the message but will not be able to extract an Object from it.</li></ul>
+</div>