Modified: websites/production/activemq/content/cms/handling-advisory-messages.html ============================================================================== --- websites/production/activemq/content/cms/handling-advisory-messages.html (original) +++ websites/production/activemq/content/cms/handling-advisory-messages.html Sat Jun 27 21:23:55 2015 @@ -32,15 +32,6 @@ </style> <![endif]--> - <link href='http://activemq.apache.org/styles/highlighter/styles/shCore.css' rel='stylesheet' type='text/css' /> - <link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' /> - <script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script> - <script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script> - - <script type="text/javascript"> - SyntaxHighlighter.defaults['toolbar'] = false; - SyntaxHighlighter.all(); - </script> <title> Apache ActiveMQ ™ -- Handling Advisory Messages @@ -104,7 +95,7 @@ <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="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[ +<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ std::auto_ptr<cms::Topic> advisories( session->createTopic( "ActiveMQ.Advisory.Producer.Topic.TOPIC.FOO" ) ); @@ -115,7 +106,7 @@ <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="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[ +<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ std::auto_ptr<cms::MessageConsumer> consumer; consumer.reset( session->createConsumer( advisories.get() ) ); @@ -133,7 +124,7 @@ consumer->setMessageListener( this ); <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="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[ +<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ void AdvisoryProducer::onMessage( const cms::Message* message ) { @@ -162,7 +153,7 @@ consumer->setMessageListener( this ); <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="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[ +<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ #ifndef _ACTIVEMQCPP_EXAMPLES_ADVISORIES_ADVISORYPRODUCER_H_ #define _ACTIVEMQCPP_EXAMPLES_ADVISORIES_ADVISORYPRODUCER_H_ @@ -232,7 +223,7 @@ namespace advisories { </div></div> <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="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[ +<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ #include "AdvisoryProducer.h" @@ -332,7 +323,7 @@ void AdvisoryProducer::onMessage( const <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="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[ +<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ std::auto_ptr<cms::Topic> advisories( session->createTopic( "ActiveMQ.Advisory.TempTopic,ActiveMQ.Advisory.TempQueue" ) ); @@ -347,7 +338,7 @@ consumer->setMessageListener( this ); <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="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[ +<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ //////////////////////////////////////////////////////////////////////////////// void TempDestinationAdvisoryConsumer::onMessage( const cms::Message* message ) { @@ -402,7 +393,7 @@ void TempDestinationAdvisoryConsumer::on <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="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[ +<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ if( message->getCMSType() == "Advisory" ) { @@ -422,7 +413,7 @@ else { <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="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[ +<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ if( amqMessage != NULL && amqMessage->getDataStructure() != NULL ) { std::cout << "Advisory Message contains a Command Object!" << std::endl; @@ -433,7 +424,7 @@ if( amqMessage != NULL && amqMes <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="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[ +<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ try{ @@ -473,7 +464,7 @@ try{ <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="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[ +<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ #ifndef _ACTIVEMQCPP_EXAMPLES_ADVISORIES_TEMPDESTINATIONADVISORYCONSUMER_H_ #define _ACTIVEMQCPP_EXAMPLES_ADVISORIES_TEMPDESTINATIONADVISORYCONSUMER_H_ @@ -523,7 +514,7 @@ namespace advisories { </div></div> <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="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[ +<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ #include "TempDestinationAdvisoryConsumer.h"
Modified: websites/production/activemq/content/cms/index.html ============================================================================== --- websites/production/activemq/content/cms/index.html (original) +++ websites/production/activemq/content/cms/index.html Sat Jun 27 21:23:55 2015 @@ -72,7 +72,7 @@ <tbody> <tr> <td valign="top" width="100%"> -<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.html">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.html">OpenWire</a> and <a shape="rect" href="stomp-support.html">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><img class="confluence-embedded-image" src="https://cwiki.apache.org/confluence/download/attachments/45919/ActiveMQ-CPP.png?version=3&modificationDate=1176898417000&api=v2" data-image-src="/confluence/download/attachments/45919/ActiveMQ-CPP.png?version=3&modificationDate=1176898417000&api=v2"></p><h3 id="Index-LatestNewsItems.">Latest News Items.</h3><p> +<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.html">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.html">OpenWire</a> and <a shape="rect" href="stomp-support.html">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&modificationDate=1176898417000&api=v2" data-unresolved-comment-count="0" data-linked-resource-id="4180" data-linked-resource-version="3" data-linked-resource-type=" attachment" 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> @@ -80,11 +80,11 @@ <div class="logo-heading-block"> <span class="logoBlock"> <a shape="rect" class="userLogoLink" href=" /confluence/display/~tabish121 "> - <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: tabish121" title="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.html">ActiveMQ-CPP v3.8.3 Released</a> - </span><div class="page-metadata not-personal"><a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Jul 18, 2014</div> + </span><div class="page-metadata not-personal"> <a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Jul 18, 2014</div> </div> @@ -100,11 +100,11 @@ <div class="logo-heading-block"> <span class="logoBlock"> <a shape="rect" class="userLogoLink" href=" /confluence/display/~tabish121 "> - <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: tabish121" title="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.html">ActiveMQ-CPP v3.8.2 Released</a> - </span><div class="page-metadata not-personal"><a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Dec 10, 2013</div> + </span><div class="page-metadata not-personal"> <a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Dec 10, 2013</div> </div> @@ -120,11 +120,11 @@ <div class="logo-heading-block"> <span class="logoBlock"> <a shape="rect" class="userLogoLink" href=" /confluence/display/~tabish121 "> - <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: tabish121" title="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.html">ActiveMQ-CPP v3.8.1 Released</a> - </span><div class="page-metadata not-personal"><a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Sep 19, 2013</div> + </span><div class="page-metadata not-personal"> <a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Sep 19, 2013</div> </div> @@ -140,11 +140,11 @@ <div class="logo-heading-block"> <span class="logoBlock"> <a shape="rect" class="userLogoLink" href=" /confluence/display/~tabish121 "> - <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: tabish121" title="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=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Sep 07, 2013</div> + </span><div class="page-metadata not-personal"> <a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Sep 07, 2013</div> </div> Modified: websites/production/activemq/content/cms/news.html ============================================================================== --- websites/production/activemq/content/cms/news.html (original) +++ websites/production/activemq/content/cms/news.html Sat Jun 27 21:23:55 2015 @@ -82,11 +82,11 @@ <div class="logo-heading-block"> <span class="logoBlock"> <a shape="rect" class="userLogoLink" href=" /confluence/display/~tabish121 "> - <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: tabish121" title="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.html">ActiveMQ-CPP v3.8.3 Released</a> - </span><div class="page-metadata not-personal"><a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Jul 18, 2014</div> + </span><div class="page-metadata not-personal"> <a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Jul 18, 2014</div> </div> @@ -102,11 +102,11 @@ <div class="logo-heading-block"> <span class="logoBlock"> <a shape="rect" class="userLogoLink" href=" /confluence/display/~tabish121 "> - <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: tabish121" title="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.html">ActiveMQ-CPP v3.8.2 Released</a> - </span><div class="page-metadata not-personal"><a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Dec 10, 2013</div> + </span><div class="page-metadata not-personal"> <a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Dec 10, 2013</div> </div> @@ -122,11 +122,11 @@ <div class="logo-heading-block"> <span class="logoBlock"> <a shape="rect" class="userLogoLink" href=" /confluence/display/~tabish121 "> - <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: tabish121" title="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.html">ActiveMQ-CPP v3.8.1 Released</a> - </span><div class="page-metadata not-personal"><a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Sep 19, 2013</div> + </span><div class="page-metadata not-personal"> <a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Sep 19, 2013</div> </div> @@ -142,11 +142,11 @@ <div class="logo-heading-block"> <span class="logoBlock"> <a shape="rect" class="userLogoLink" href=" /confluence/display/~tabish121 "> - <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: tabish121" title="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=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Sep 07, 2013</div> + </span><div class="page-metadata not-personal"> <a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Sep 07, 2013</div> </div> @@ -162,11 +162,11 @@ <div class="logo-heading-block"> <span class="logoBlock"> <a shape="rect" class="userLogoLink" href=" /confluence/display/~tabish121 "> - <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: tabish121" title="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.html">ActiveMQ-CPP v3.7.0 Released</a> - </span><div class="page-metadata not-personal"><a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on May 19, 2013</div> + </span><div class="page-metadata not-personal"> <a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on May 19, 2013</div> </div> @@ -182,11 +182,11 @@ <div class="logo-heading-block"> <span class="logoBlock"> <a shape="rect" class="userLogoLink" href=" /confluence/display/~tabish121 "> - <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: tabish121" title="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/03/08/activemq-cpp-v360-released.html">ActiveMQ-CPP v3.6.0 Released</a> - </span><div class="page-metadata not-personal"><a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Mar 08, 2013</div> + </span><div class="page-metadata not-personal"> <a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Mar 08, 2013</div> </div> @@ -202,11 +202,11 @@ <div class="logo-heading-block"> <span class="logoBlock"> <a shape="rect" class="userLogoLink" href=" /confluence/display/~tabish121 "> - <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: tabish121" title="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="2012/12/20/activemq-cpp-version-350-released.html">ActiveMQ-CPP version 3.5.0 Released</a> - </span><div class="page-metadata not-personal"><a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Dec 20, 2012</div> + </span><div class="page-metadata not-personal"> <a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Dec 20, 2012</div> </div> @@ -222,11 +222,11 @@ <div class="logo-heading-block"> <span class="logoBlock"> <a shape="rect" class="userLogoLink" href=" /confluence/display/~tabish121 "> - <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: tabish121" title="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="2012/10/12/activemq-cpp-v345-released.html">ActiveMQ-CPP v3.4.5 Released</a> - </span><div class="page-metadata not-personal"><a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Oct 12, 2012</div> + </span><div class="page-metadata not-personal"> <a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Oct 12, 2012</div> </div> @@ -242,11 +242,11 @@ <div class="logo-heading-block"> <span class="logoBlock"> <a shape="rect" class="userLogoLink" href=" /confluence/display/~tabish121 "> - <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: tabish121" title="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="2012/06/29/activemq-cpp-version-344-released.html">ActiveMQ-CPP Version 3.4.4 Released</a> - </span><div class="page-metadata not-personal"><a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Jun 29, 2012</div> + </span><div class="page-metadata not-personal"> <a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Jun 29, 2012</div> </div> @@ -262,11 +262,11 @@ <div class="logo-heading-block"> <span class="logoBlock"> <a shape="rect" class="userLogoLink" href=" /confluence/display/~tabish121 "> - <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: tabish121" title="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="2012/06/02/activemq-cpp-version-343-released.html">ActiveMQ-CPP Version 3.4.3 Released</a> - </span><div class="page-metadata not-personal"><a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Jun 02, 2012</div> + </span><div class="page-metadata not-personal"> <a shape="rect" class="url fn confluence-userlink" href=" /confluence/display/~tabish121 ">Timothy Bish</a> posted on Jun 02, 2012</div> </div> Modified: websites/production/activemq/content/cms/overview.html ============================================================================== --- websites/production/activemq/content/cms/overview.html (original) +++ websites/production/activemq/content/cms/overview.html Sat Jun 27 21:23:55 2015 @@ -76,7 +76,7 @@ <p>ActiveMQ CPP ships with a JMS 1.1-like API, called CMS. This helps to make your C++ client code much neater and easier to follow. In addition to CMS, ActiveMQ-CPP also provides a robust set of classes that support things such as threading, I/O, sockets, etc. You may find many of these classes useful, such as the "synchronized" macro that let's you use a Java-like synchronization on any object that implements the activemq::concurrent::Synchronizable interface.</p> -<ul class="childpages-macro"><li><a shape="rect" href="cms-api-overview.html">CMS API Overview</a></li><li><a shape="rect" href="download.html">Download</a><ul class="childpages-macro"><li><a shape="rect" href="activemq-cpp-22-release.html">ActiveMQ CPP 2.2 Release</a></li><li><a shape="rect" href="activemq-cpp-10-release.html">ActiveMQ-CPP 1.0 Release</a></li><li><a shape="rect" href="activemq-cpp-11-release.html">ActiveMQ-CPP 1.1 Release</a></li><li><a shape="rect" href="activemq-cpp-201-release.html">ActiveMQ-CPP 2.0.1 Release</a></li><li><a shape="rect" href="activemq-cpp-20-release.html">ActiveMQ-CPP 2.0 Release</a></li><li><a shape="rect" href="activemq-cpp-211-release.html">ActiveMQ-CPP 2.1.1 Release</a></li><li><a shape="rect" href="activemq-cpp-212-release.html">ActiveMQ-CPP 2.1.2 Release</a></li><li><a shape="rect" href="activemq-cpp-213-release.html">ActiveMQ-CPP 2.1.3 Release</a></li><li><a shape="rect" href="activemq-cpp-21-release.html">ActiveMQ-CPP 2.1 Release</a></li ><li><a shape="rect" href="activemq-cpp-221-release.html">ActiveMQ-CPP 2.2.1 >Release</a></li><li><a shape="rect" >href="activemq-cpp-222-release.html">ActiveMQ-CPP 2.2.2 >Release</a></li><li><a shape="rect" >href="activemq-cpp-223-release.html">ActiveMQ-CPP 2.2.3 >Release</a></li><li><a shape="rect" >href="activemq-cpp-224-release.html">ActiveMQ-CPP 2.2.4 >Release</a></li><li><a shape="rect" >href="activemq-cpp-225-release.html">ActiveMQ-CPP 2.2.5 >Release</a></li><li><a shape="rect" >href="activemq-cpp-226-release.html">ActiveMQ-CPP 2.2.6 >Release</a></li><li><a shape="rect" >href="activemq-cpp-301-release.html">ActiveMQ-CPP 3.0.1 >Release</a></li><li><a shape="rect" >href="activemq-cpp-30-release.html">ActiveMQ-CPP 3.0 Release</a></li><li><a >shape="rect" href="activemq-cpp-310-release.html">ActiveMQ-CPP 3.1.0 >Release</a></li><li><a shape="rect" >href="activemq-cpp-311-release.html">ActiveMQ-CPP 3.1.1 >Release</a></li><li><a shape="rect" >href="activemq-cpp-312-release.html">ActiveMQ-CPP 3.1.2 Rel ease</a></li><li><a shape="rect" href="activemq-cpp-313-release.html">ActiveMQ-CPP 3.1.3 Release</a></li><li><a shape="rect" href="activemq-cpp-320-release.html">ActiveMQ-CPP 3.2.0 Release</a></li><li><a shape="rect" href="activemq-cpp-321-release.html">ActiveMQ-CPP 3.2.1 Release</a></li><li><a shape="rect" href="activemq-cpp-322-release.html">ActiveMQ-CPP 3.2.2 Release</a></li><li><a shape="rect" href="activemq-cpp-323-release.html">ActiveMQ-CPP 3.2.3 Release</a></li><li><a shape="rect" href="activemq-cpp-324-release.html">ActiveMQ-CPP 3.2.4 Release</a></li><li><a shape="rect" href="activemq-cpp-325-release.html">ActiveMQ-CPP 3.2.5 Release</a></li><li><a shape="rect" href="activemq-cpp-330-release.html">ActiveMQ-CPP 3.3.0 Release</a></li><li><a shape="rect" href="activemq-cpp-340-release.html">ActiveMQ-CPP 3.4.0 Release</a></li><li><a shape="rect" href="activemq-cpp-341-release.html">ActiveMQ-CPP 3.4.1 Release</a></li><li><a shape="rect" href="activemq-cpp-342-release.html">ActiveM Q-CPP 3.4.2 Release</a></li><li><a shape="rect" href="activemq-cpp-343-release.html">ActiveMQ-CPP 3.4.3 Release</a></li><li><a shape="rect" href="activemq-cpp-344-release.html">ActiveMQ-CPP 3.4.4 Release</a></li><li><a shape="rect" href="activemq-cpp-345-release.html">ActiveMQ-CPP 3.4.5 Release</a></li><li><a shape="rect" href="activemq-cpp-350-release.html">ActiveMQ-CPP 3.5.0 Release</a></li><li><a shape="rect" href="activemq-cpp-360-release.html">ActiveMQ-CPP 3.6.0 Release</a></li><li><a shape="rect" href="activemq-cpp-370-release.html">ActiveMQ-CPP 3.7.0 Release</a></li><li><a shape="rect" href="activemq-cpp-371-release.html">ActiveMQ-CPP 3.7.1 Release</a></li><li><a shape="rect" href="activemq-cpp-380-release.html">ActiveMQ-CPP 3.8.0 Release</a></li><li><a shape="rect" href="activemq-cpp-381-release.html">ActiveMQ-CPP 3.8.1 Release</a></li><li><a shape="rect" href="activemq-cpp-382-release.html">ActiveMQ-CPP 3.8.2 Release</a></li><li><a shape="rect" href="activemq-cpp-383-releas e.html">ActiveMQ-CPP 3.8.3 Release</a></li><li><a shape="rect" href="activemq-cpp-libtool-and-packaging-notes.html">ActiveMQ-CPP, libtool and packaging notes</a><ul class="childpages-macro"><li><a shape="rect" href="activemq-cpp-product-version-number.html">ActiveMQ-CPP product version number</a></li></ul></li><li><a shape="rect" href="cms-api-10-release.html">CMS API 1.0 Release</a></li><li><a shape="rect" href="cms-api-11-release.html">CMS API 1.1 Release</a></li><li><a shape="rect" href="cms-api-12-release.html">CMS API 1.2 Release</a></li></ul></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li><li><a shape="rect" href="tutorials.html">Tutorials</a><ul class="childpages-macro"><li><a shape="rect" href="handling-advisory-messages.html">Handling Advisory Messages</a></li></ul></li></ul></div> +<ul class="childpages-macro"><li><a shape="rect" href="cms-api-overview.html">CMS API Overview</a></li><li><a shape="rect" href="download.html">Download</a><ul class="childpages-macro"><li><a shape="rect" href="activemq-cpp-22-release.html">ActiveMQ CPP 2.2 Release</a></li><li><a shape="rect" href="activemq-cpp-10-release.html">ActiveMQ-CPP 1.0 Release</a></li><li><a shape="rect" href="activemq-cpp-11-release.html">ActiveMQ-CPP 1.1 Release</a></li><li><a shape="rect" href="activemq-cpp-201-release.html">ActiveMQ-CPP 2.0.1 Release</a></li><li><a shape="rect" href="activemq-cpp-20-release.html">ActiveMQ-CPP 2.0 Release</a></li><li><a shape="rect" href="activemq-cpp-211-release.html">ActiveMQ-CPP 2.1.1 Release</a></li><li><a shape="rect" href="activemq-cpp-212-release.html">ActiveMQ-CPP 2.1.2 Release</a></li><li><a shape="rect" href="activemq-cpp-213-release.html">ActiveMQ-CPP 2.1.3 Release</a></li><li><a shape="rect" href="activemq-cpp-21-release.html">ActiveMQ-CPP 2.1 Release</a></li ><li><a shape="rect" href="activemq-cpp-221-release.html">ActiveMQ-CPP 2.2.1 >Release</a></li><li><a shape="rect" >href="activemq-cpp-222-release.html">ActiveMQ-CPP 2.2.2 >Release</a></li><li><a shape="rect" >href="activemq-cpp-223-release.html">ActiveMQ-CPP 2.2.3 >Release</a></li><li><a shape="rect" >href="activemq-cpp-224-release.html">ActiveMQ-CPP 2.2.4 >Release</a></li><li><a shape="rect" >href="activemq-cpp-225-release.html">ActiveMQ-CPP 2.2.5 >Release</a></li><li><a shape="rect" >href="activemq-cpp-226-release.html">ActiveMQ-CPP 2.2.6 >Release</a></li><li><a shape="rect" >href="activemq-cpp-301-release.html">ActiveMQ-CPP 3.0.1 >Release</a></li><li><a shape="rect" >href="activemq-cpp-30-release.html">ActiveMQ-CPP 3.0 Release</a></li><li><a >shape="rect" href="activemq-cpp-310-release.html">ActiveMQ-CPP 3.1.0 >Release</a></li><li><a shape="rect" >href="activemq-cpp-311-release.html">ActiveMQ-CPP 3.1.1 >Release</a></li><li><a shape="rect" >href="activemq-cpp-312-release.html">ActiveMQ-CPP 3.1.2 Rel ease</a></li><li><a shape="rect" href="activemq-cpp-313-release.html">ActiveMQ-CPP 3.1.3 Release</a></li><li><a shape="rect" href="activemq-cpp-320-release.html">ActiveMQ-CPP 3.2.0 Release</a></li><li><a shape="rect" href="activemq-cpp-321-release.html">ActiveMQ-CPP 3.2.1 Release</a></li><li><a shape="rect" href="activemq-cpp-322-release.html">ActiveMQ-CPP 3.2.2 Release</a></li><li><a shape="rect" href="activemq-cpp-323-release.html">ActiveMQ-CPP 3.2.3 Release</a></li><li><a shape="rect" href="activemq-cpp-324-release.html">ActiveMQ-CPP 3.2.4 Release</a></li><li><a shape="rect" href="activemq-cpp-325-release.html">ActiveMQ-CPP 3.2.5 Release</a></li><li><a shape="rect" href="activemq-cpp-330-release.html">ActiveMQ-CPP 3.3.0 Release</a></li><li><a shape="rect" href="activemq-cpp-340-release.html">ActiveMQ-CPP 3.4.0 Release</a></li><li><a shape="rect" href="activemq-cpp-341-release.html">ActiveMQ-CPP 3.4.1 Release</a></li><li><a shape="rect" href="activemq-cpp-342-release.html">ActiveM Q-CPP 3.4.2 Release</a></li><li><a shape="rect" href="activemq-cpp-343-release.html">ActiveMQ-CPP 3.4.3 Release</a></li><li><a shape="rect" href="activemq-cpp-344-release.html">ActiveMQ-CPP 3.4.4 Release</a></li><li><a shape="rect" href="activemq-cpp-345-release.html">ActiveMQ-CPP 3.4.5 Release</a></li><li><a shape="rect" href="activemq-cpp-350-release.html">ActiveMQ-CPP 3.5.0 Release</a></li><li><a shape="rect" href="activemq-cpp-360-release.html">ActiveMQ-CPP 3.6.0 Release</a></li><li><a shape="rect" href="activemq-cpp-370-release.html">ActiveMQ-CPP 3.7.0 Release</a></li><li><a shape="rect" href="activemq-cpp-371-release.html">ActiveMQ-CPP 3.7.1 Release</a></li><li><a shape="rect" href="activemq-cpp-380-release.html">ActiveMQ-CPP 3.8.0 Release</a></li><li><a shape="rect" href="activemq-cpp-381-release.html">ActiveMQ-CPP 3.8.1 Release</a></li><li><a shape="rect" href="activemq-cpp-382-release.html">ActiveMQ-CPP 3.8.2 Release</a></li><li><a shape="rect" href="activemq-cpp-383-releas e.html">ActiveMQ-CPP 3.8.3 Release</a></li><li><a shape="rect" href="activemq-cpp-384-release.html">ActiveMQ-CPP 3.8.4 Release</a></li><li><a shape="rect" href="activemq-cpp-libtool-and-packaging-notes.html">ActiveMQ-CPP, libtool and packaging notes</a><ul class="childpages-macro"><li><a shape="rect" href="activemq-cpp-product-version-number.html">ActiveMQ-CPP product version number</a></li></ul></li><li><a shape="rect" href="cms-api-10-release.html">CMS API 1.0 Release</a></li><li><a shape="rect" href="cms-api-11-release.html">CMS API 1.1 Release</a></li><li><a shape="rect" href="cms-api-12-release.html">CMS API 1.2 Release</a></li></ul></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li><li><a shape="rect" href="tutorials.html">Tutorials</a><ul class="childpages-macro"><li><a shape="rect" href="handling-advisory-messages.html">Handling Advisory Messages</a></li></ul></li></ul></div> </td> <td valign="top"> <div class="navigation">