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:34 UTC

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

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-do-i-use-durable-subscribers-in-a-network-of-brokers.xml
----------------------------------------------------------------------
diff --git a/how-do-i-use-durable-subscribers-in-a-network-of-brokers.xml b/how-do-i-use-durable-subscribers-in-a-network-of-brokers.xml
index 4082c02..bcdaaab 100644
--- a/how-do-i-use-durable-subscribers-in-a-network-of-brokers.xml
+++ b/how-do-i-use-durable-subscribers-in-a-network-of-brokers.xml
@@ -2,23 +2,21 @@
 
 <p>For example, if you have two brokers A and B networked together in both directions to form a cluster, and a durable subscriber connects to broker B, a producer P on broker A will have its messages properly forwarded to broker B and the durable subscriber. However, if the subscriber disconnects and reconnects to broker A, any messages sent by P while the subscriber was away will be stuck on B until the subscriber reconnects to B. </p>
 
-<p>The solution is to use <a shape="rect" href="virtual-destinations.xml">Virtual Destinations</a></p>
+<p>The solution is to use <link><page ri:content-title="Virtual Destinations"></page></link></p>
 
-<p>Virtual topics use queues under the covers and this allows ActiveMQ to treat each subscriber as a plain old Queue subscriber. This allows ActiveMQ to replay messages that have been orphaned on another broker in the cluster using this configuration as explained in the <a shape="rect" href="networks-of-brokers.xml">Networks of Brokers</a> documentation:</p>
+<p>Virtual topics use queues under the covers and this allows ActiveMQ to treat each subscriber as a plain old Queue subscriber. This allows ActiveMQ to replay messages that have been orphaned on another broker in the cluster using this configuration as explained in the <link><page ri:content-title="Networks of Brokers"></page></link> documentation:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[    &lt;destinationPolicy&gt;
+<structured-macro ac:macro-id="ce6314bd-e55b-41ec-933d-471a912c167a" ac:name="code" ac:schema-version="1"><parameter ac:name="">xml</parameter><plain-text-body>    &lt;destinationPolicy&gt;
       &lt;policyMap&gt;
         &lt;policyEntries&gt;
-          &lt;policyEntry queue=&quot;TEST.&gt;&quot; enableAudit=&quot;false&quot;&gt;
-            &lt;conditionalNetworkBridgeFilterFactory replayWhenNoConsumers=&quot;true&quot;/&gt;
+          &lt;policyEntry queue="TEST.&gt;" enableAudit="false"&gt;
+            &lt;conditionalNetworkBridgeFilterFactory replayWhenNoConsumers="true"/&gt;
           &lt;/policyEntry&gt;
         &lt;/policyEntries&gt;
       &lt;/policyMap&gt;
-    &lt;/destinationPolicy&gt;]]></script>
-</div></div> 
+    &lt;/destinationPolicy&gt;</plain-text-body></structured-macro> 
 
 
 
-<p>Also, take a look at <a shape="rect" class="external-link" href="http://svn.apache.org/viewvc/activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/VirtualTopicNetworkClusterReactivationTest.java?view=markup">this unit test to see the full configuration and usage</a></p></div>
+<p>Also, take a look at <a shape="rect" href="http://svn.apache.org/viewvc/activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/usecases/VirtualTopicNetworkClusterReactivationTest.java?view=markup">this unit test to see the full configuration and usage</a></p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-do-i-use-ivy-with-activemq.xml
----------------------------------------------------------------------
diff --git a/how-do-i-use-ivy-with-activemq.xml b/how-do-i-use-ivy-with-activemq.xml
index 0af8af1..3574006 100644
--- a/how-do-i-use-ivy-with-activemq.xml
+++ b/how-do-i-use-ivy-with-activemq.xml
@@ -1,11 +1,10 @@
 <div class="wiki-content maincontent">
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="5ff6c8bd-e17a-4f67-a44d-35d367e4cfc3" ac:name="code" ac:schema-version="1"><plain-text-body>
 &lt;ivyconf&gt;
         &lt;!--loads properties file as ivy variables, 0..n--&gt;
-        &lt;properties file=&quot;${ivy.conf.dir}/ivyconf-file.properties&quot; /&gt;
+        &lt;properties file="${ivy.conf.dir}/ivyconf-file.properties" /&gt;
         &lt;!--configures ivy with some defaults, 0..1--&gt;
-        &lt;conf defaultResolver=&quot;localChain&quot; checkUpToDate=&quot;false&quot; /&gt;
+        &lt;conf defaultResolver="localChain" checkUpToDate="false" /&gt;
 
         &lt;!--typedef:defines new types in ivy--&gt;
         &lt;!--latest-strategies: defines latest strategies--&gt;
@@ -13,32 +12,31 @@
 
         &lt;!--defines dependency resolvers--&gt;
         &lt;resolvers&gt;
-             &lt;chain name=&quot;localChain&quot; returnFirst=&quot;false&quot;&gt;
-                 &lt;filesystem name=&quot;internal&quot; latest=&quot;latest-revision&quot;&gt;
+             &lt;chain name="localChain" returnFirst="false"&gt;
+                 &lt;filesystem name="internal" latest="latest-revision"&gt;
                         &lt;ivy     
-pattern=&quot;${repository.dir}/[organisation]/[module]/[type]s/ivy-[revision].xml&quot; /&gt;
+pattern="${repository.dir}/[organisation]/[module]/[type]s/ivy-[revision].xml" /&gt;
                         &lt;artifact
-pattern=&quot;${repository.dir}/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]&quot; /&gt;
+pattern="${repository.dir}/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]" /&gt;
                 &lt;/filesystem&gt;
-                &lt;ivyrep name=&quot;ivyrep&quot;/&gt;
+                &lt;ivyrep name="ivyrep"/&gt;
              &lt;/chain&gt;
-             &lt;ibiblio name=&quot;ibiblio&quot;
-pattern=&quot;[organisation]/jars/[module]-[revision].[ext]&quot;/&gt;
+             &lt;ibiblio name="ibiblio"
+pattern="[organisation]/jars/[module]-[revision].[ext]"/&gt;
         &lt;/resolvers&gt;
 
         &lt;!--defines rules between modules and dependency resolvers--&gt;
         &lt;modules&gt;
-                &lt;module organisation=&quot;verticon&quot; name=&quot;.*&quot;
-resolver=&quot;internal&quot; /&gt;
-                &lt;module organisation=&quot;mandarax&quot; name=&quot;.*&quot;
-resolver=&quot;internal&quot; /&gt;
-                &lt;module organisation=&quot;geronimo-spec&quot; name=&quot;.*&quot;
-resolver=&quot;ibiblio&quot; /&gt;
-                &lt;module organisation=&quot;tomcat&quot; name=&quot;.*&quot;
-resolver=&quot;ibiblio&quot; /&gt;
+                &lt;module organisation="verticon" name=".*"
+resolver="internal" /&gt;
+                &lt;module organisation="mandarax" name=".*"
+resolver="internal" /&gt;
+                &lt;module organisation="geronimo-spec" name=".*"
+resolver="ibiblio" /&gt;
+                &lt;module organisation="tomcat" name=".*"
+resolver="ibiblio" /&gt;
         &lt;/modules&gt;
 
 &lt;/ivyconf&gt;
-]]></script>
-</div></div></div>
+</plain-text-body></structured-macro></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-do-i-use-jms-efficiently.xml
----------------------------------------------------------------------
diff --git a/how-do-i-use-jms-efficiently.xml b/how-do-i-use-jms-efficiently.xml
index a3da3cb..dbecb3a 100644
--- a/how-do-i-use-jms-efficiently.xml
+++ b/how-do-i-use-jms-efficiently.xml
@@ -1,4 +1,4 @@
-<div class="wiki-content maincontent"><h2 id="HowdoIuseJMSefficiently-HowdoIuseJMSefficiently?">How do I use JMS efficiently?</h2>
+<div class="wiki-content maincontent"><h2>How do I use JMS efficiently?</h2>
 
 <p>JMS is designed for high performance. In particular its design is such that you are meant to create a number of objects up front on the startup of your application and then resuse them throughout your application. e.g. its a good idea to create upfront and then reuse the following</p>
 
@@ -9,26 +9,26 @@
 
 <p>Note a little trick - you can reuse the same MessageProducer for sending messages to different destinations; just create it with a null destination and specify it on the send method.</p>
 
-<div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>MessageProducer instances that are created with a null destination are anonymous producers and as such the broker cannot fire an advisory for producer when these are created.  This means that when the pooled MessageProducer is in use no advisories for producers will ever be sent.</p></div></div>
+<structured-macro ac:macro-id="ccc153ab-d88c-47fe-8513-11d4a6743a3b" ac:name="info" ac:schema-version="1"><rich-text-body><p>MessageProducer instances that are created with a null destination are anonymous producers and as such the broker cannot fire an advisory for producer when these are created.  This means that when the pooled MessageProducer is in use no advisories for producers will ever be sent.</p></rich-text-body></structured-macro>
 
-<h3 id="HowdoIuseJMSefficiently-UsingPoolingwithJMS">Using Pooling with JMS</h3>
+<h3>Using Pooling with JMS</h3>
 
-<p>To use JMS efficiently we recommend you use <a shape="rect" class="external-link" href="http://activemq.apache.org/camel/">Camel</a> to hide the JMS API and <a shape="rect" class="external-link" href="http://activemq.apache.org/camel/bean-integration.html">bind the messaging to your beans</a>. </p>
+<p>To use JMS efficiently we recommend you use <a shape="rect" href="http://activemq.apache.org/camel/">Camel</a> to hide the JMS API and <a shape="rect" href="http://activemq.apache.org/camel/bean-integration.html">bind the messaging to your beans</a>. </p>
 
-<p>Alternatively try using Spring's <a shape="rect" class="external-link" href="http://static.springsource.org/spring/docs/2.5.x/reference/jms.html#jms-mdp" rel="nofollow">MessageListenerContainer</a> for consuming messages and <a shape="rect" class="external-link" href="http://static.springsource.org/spring/docs/2.5.x/reference/jms.html#jms-jmstemplate" rel="nofollow">JmsTemplate</a> for sending - but be <a shape="rect" class="external-link" href="http://activemq.apache.org/jmstemplate-gotchas.html">aware of the gotchas</a></p>
+<p>Alternatively try using Spring's <a shape="rect" href="http://static.springsource.org/spring/docs/2.5.x/reference/jms.html#jms-mdp">MessageListenerContainer</a> for consuming messages and <a shape="rect" href="http://static.springsource.org/spring/docs/2.5.x/reference/jms.html#jms-jmstemplate">JmsTemplate</a> for sending - but be <a shape="rect" href="http://activemq.apache.org/jmstemplate-gotchas.html">aware of the gotchas</a></p>
 
-<h3 id="HowdoIuseJMSefficiently-Otherperformancetips">Other performance tips</h3>
+<h3>Other performance tips</h3>
 
 <p>Also see</p>
 
-<ul><li><a shape="rect" href="should-i-use-transactions.xml">Should I use transactions</a></li><li><a shape="rect" href="should-i-use-xa.xml">Should I use XA</a></li></ul>
+<ul><li><link><page ri:content-title="Should I use transactions"></page></link></li><li><link><page ri:content-title="Should I use XA"></page></link></li></ul>
 
 
-<h3 id="HowdoIuseJMSefficiently-JavaConnectorArchitecture">Java Connector Architecture</h3>
+<h3>Java Connector Architecture</h3>
 
-<p><a shape="rect" class="external-link" href="http://java.sun.com/j2ee/connector/" rel="nofollow">Java Connector Architecture</a> supports the pooling of JMS connections, sessions and MessageListeners, parallel message processing, thread pooling and transaction &amp; exception handling, through the use of a JCA <a shape="rect" href="resource-adapter.xml">Resource Adapter</a>.</p>
+<p><a shape="rect" href="http://java.sun.com/j2ee/connector/">Java Connector Architecture</a> supports the pooling of JMS connections, sessions and MessageListeners, parallel message processing, thread pooling and transaction &amp; exception handling, through the use of a JCA <link><page ri:content-title="Resource Adapter"></page></link>.</p>
 
-<div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>All of these benefits are also available through Spring's MessageListenerContiner <strong>except</strong> for the XA transactions. If you need XA support then you must use JCA</p></div></div>
+<structured-macro ac:macro-id="9defc5ad-cad2-4c9b-a04d-f628a5477c2b" ac:name="info" ac:schema-version="1"><rich-text-body><p>All of these benefits are also available through Spring's MessageListenerContiner <strong>except</strong> for the XA transactions. If you need XA support then you must use JCA</p></rich-text-body></structured-macro>
 
-<p>Typically JCA is used in a J2EE container via MDBs; though there is a POJO Spring based <a shape="rect" href="jca-container.xml">JCA Container</a> you can use, which is simple and lightweight and easy to embed inside Tomcat or any J2SE application.</p></div>
+<p>Typically JCA is used in a J2EE container via MDBs; though there is a POJO Spring based <link><page ri:content-title="JCA Container"></page></link> you can use, which is simple and lightweight and easy to embed inside Tomcat or any J2SE application.</p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-do-i-use-log4j-jms-appender-with-activemq.xml
----------------------------------------------------------------------
diff --git a/how-do-i-use-log4j-jms-appender-with-activemq.xml b/how-do-i-use-log4j-jms-appender-with-activemq.xml
index 67dda65..8179ec5 100644
--- a/how-do-i-use-log4j-jms-appender-with-activemq.xml
+++ b/how-do-i-use-log4j-jms-appender-with-activemq.xml
@@ -1,50 +1,45 @@
-<div class="wiki-content maincontent"><p><a shape="rect" class="external-link" href="http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/JMSAppender.html">Log4j JMS appender</a> can be used to send your log messages to JMS broker. To use ActiveMQ as a destination of your messages, you need to configure JMS appender properly. The code sample below shows example configuration:</p>
+<div class="wiki-content maincontent"><p><a shape="rect" href="http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/JMSAppender.html">Log4j JMS appender</a> can be used to send your log messages to JMS broker. To use ActiveMQ as a destination of your messages, you need to configure JMS appender properly. The code sample below shows example configuration:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="1e4e9cda-6e94-4f52-9920-cdafe5b54326" ac:name="code" ac:schema-version="1"><plain-text-body>
 log4j.rootLogger=INFO, stdout, jms
 
-## Be sure that ActiveMQ messages are not logged to &#39;jms&#39; appender
+## Be sure that ActiveMQ messages are not logged to 'jms' appender
 log4j.logger.org.apache.activemq=INFO, stdout
 
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
 log4j.appender.stdout.layout.ConversionPattern=%d %-5p %c - %m%n
 
-## Configure &#39;jms&#39; appender. You&#39;ll also need jndi.properties file in order to make it work
+## Configure 'jms' appender. You'll also need jndi.properties file in order to make it work
 log4j.appender.jms=org.apache.log4j.net.JMSAppender
 log4j.appender.jms.InitialContextFactoryName=org.apache.activemq.jndi.ActiveMQInitialContextFactory
 log4j.appender.jms.ProviderURL=tcp://localhost:61616
 log4j.appender.jms.TopicBindingName=logTopic
 log4j.appender.jms.TopicConnectionFactoryBindingName=ConnectionFactory
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
 <p>The important thing is not to send ActiveMQ logs to JMS appender, as it can cause errors since the broker will want to log before the connection is established. You will also need a JNDI configuration, so that appender can find appropriate topic to send log messages to. The example <code>jndi.properties</code> file can look like this:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="c31e68dc-dc6a-4b98-a5d0-39136b232d7d" ac:name="code" ac:schema-version="1"><plain-text-body>
 topic.logTopic=logTopic
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
 <p>Finally, you can subscribe to the topic and listen for log messages:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="66ba3987-6740-460b-8c38-f1c5528edcd1" ac:name="code" ac:schema-version="1"><plain-text-body>
 public class Log4jJMSAppenderExample implements MessageListener {
 
 	public Log4jJMSAppenderExample() throws Exception {
 		// create a logTopic topic consumer
-		ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(&quot;tcp://localhost:61616&quot;);
+		ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
 		Connection conn = factory.createConnection();
 		Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
 		conn.start();
-		MessageConsumer consumer = sess.createConsumer(sess.createTopic(&quot;logTopic&quot;));
+		MessageConsumer consumer = sess.createConsumer(sess.createTopic("logTopic"));
 		consumer.setMessageListener(this);
 		// log a message
 		Logger log = Logger.getLogger(Log4jJMSAppenderExample.class);
-		log.info(&quot;Test log&quot;);
+		log.info("Test log");
 		// clean up
 		Thread.sleep(1000);
 		consumer.close();
@@ -61,34 +56,29 @@ public class Log4jJMSAppenderExample implements MessageListener {
 		try {
 			// receive log event in your consumer
 			LoggingEvent event = (LoggingEvent)((ActiveMQObjectMessage)message).getObject();
-			System.out.println(&quot;Received log [&quot; + event.getLevel() + &quot;]: &quot;+ event.getMessage());
+			System.out.println("Received log [" + event.getLevel() + "]: "+ event.getMessage());
 		} catch (Exception e) {
 			e.printStackTrace();
 		}
 	}
 }
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
 <p>Note that appender send logging event wrapped in an object message, so you can extract information such as logger name, level and of course the message.</p>
 
 <p>Starting with ActiveMQ 5.3, this example is included in the standard distribution. You can run it by executing</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="f04a5d05-04c5-4f1f-a6ba-53458c756417" ac:name="code" ac:schema-version="1"><plain-text-body>
 ant log4j-jms
-]]></script>
-</div></div>
+</plain-text-body></structured-macro>
 
 <p>inside <code>example/</code> folder. You can expect the following output as a result:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<structured-macro ac:macro-id="56c65ae1-19f4-4da9-9411-2adf43fa2cf9" ac:name="code" ac:schema-version="1"><plain-text-body>
 log4j-jms:
      [echo] Running a Log4j JMS Appender example
      [java] 2009-08-11 13:58:46,767 INFO  Log4jJMSAppenderExample - Test log
      [java] Received log [INFO]: Test log
      [java] Java Result: 1
-]]></script>
-</div></div></div>
+</plain-text-body></structured-macro></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-do-i-use-ssl.xml
----------------------------------------------------------------------
diff --git a/how-do-i-use-ssl.xml b/how-do-i-use-ssl.xml
index b5985e4..2643dfd 100644
--- a/how-do-i-use-ssl.xml
+++ b/how-do-i-use-ssl.xml
@@ -1,61 +1,33 @@
-<div class="wiki-content maincontent"><h3 id="HowdoIuseSSL-SettinguptheKeyandTrustStores">Setting up the Key and Trust Stores</h3><p>Also see <a shape="rect" class="external-link" href="http://jakarta.apache.org/tomcat/tomcat-5.5-doc/ssl-howto.html">Tomcat's SSL instructions</a> for more info. The following was provided by Colin Kilburn. Thanks Colin!</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">ActiveMQ uses dummy credentials by default</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>ActiveMQ includes key and trust stores that reference a dummy self signed cert. When you create a broker certificate and stores for your installation, either overwrite the values in the conf directory or delete the existing dummy key and trust stores so they cannot interfere)</p></div></div><ol><li><p>Using keytool, create a certificate for the 
 broker:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[keytool -genkey -alias broker -keyalg RSA -keystore broker.ks
-]]></script>
-</div></div></li><li><p>Export the broker's certificate so it can be shared with clients:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[keytool -export -alias broker -keystore broker.ks -file broker_cert
-]]></script>
-</div></div></li><li><p>Create a certificate/keystore for the client:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[keytool -genkey -alias client -keyalg RSA -keystore client.ks]]></script>
-</div></div></li><li><p>Create a truststore for the client, and import the broker's certificate. This establishes that the client "trusts" the broker:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[keytool -import -alias broker -keystore client.ts -file broker_cert]]></script>
-</div></div></li></ol><h3 id="HowdoIuseSSL-StartingtheBroker">Starting the Broker</h3><h4 id="HowdoIuseSSL-Usingthejavax.net.ssl.*SystemProperties">Using the javax.net.ssl.* System Properties</h4><p>Before starting the broker's VM set the ACTIVEMQ_SSL_OPTS&#160;environment variable so that it knows to use the broker keystore. &#160;(note that in previous versions of ActiveMQ this property was called SSL_OPTS in some scripts. &#160;As of v5.12.0 all scripts use ACTIVEMQ_SSL_OPTS)</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[export ACTIVEMQ_SSL_OPTS = -Djavax.net.ssl.keyStore=/path/to/broker.ks -Djavax.net.ssl.keyStorePassword=password
-]]></script>
-</div></div><h4 id="HowdoIuseSSL-UsingSpringtoconfigureSSLforaBrokerinstance">Using Spring to configure SSL for a Broker instance</h4><p>Sometimes the use of javax.net.ssl.* system properties is not appropriate as they effect all SSL users in a JVM. ActiveMQ 5.2.x adds an &lt;sslContext&gt; element to the &lt;amq:broker&gt; that allows a broker specific set of SSL properties to be configured.</p><p>The SslContext <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/transport/tcp/SslContextBrokerServiceTest.java">test case</a> validates starting an SSL transport listener using the configuration specified in the broker Xbean. The SslContext element is added to the broker as follows:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;beans
-  &lt;amq:broker useJmx=&quot;false&quot; persistent=&quot;false&quot;&gt;
+<div class="wiki-content maincontent"><h3>Setting up the Key and Trust Stores</h3><p>Also see <a shape="rect" href="http://jakarta.apache.org/tomcat/tomcat-5.5-doc/ssl-howto.html">Tomcat's SSL instructions</a> for more info. The following was provided by Colin Kilburn. Thanks Colin!</p><structured-macro ac:macro-id="976b2a51-1506-40ba-ae9d-908d1a5545b2" ac:name="info" ac:schema-version="1"><parameter ac:name="title">ActiveMQ uses dummy credentials by default</parameter><rich-text-body><p>ActiveMQ includes key and trust stores that reference a dummy self signed cert. When you create a broker certificate and stores for your installation, either overwrite the values in the conf directory or delete the existing dummy key and trust stores so they cannot interfere)</p></rich-text-body></structured-macro><ol><li><p>Using keytool, create a certificate for the broker:</p><structured-macro ac:macro-id="91038e3a-caa3-4865-9974-074b6d87c07f" ac:name="code" ac:schema-version="1"><plain-text-body
 >keytool -genkey -alias broker -keyalg RSA -keystore broker.ks
+</plain-text-body></structured-macro></li><li><p>Export the broker's certificate so it can be shared with clients:</p><structured-macro ac:macro-id="be4ed62e-85bb-4c7e-b02a-70b697c0d4d9" ac:name="code" ac:schema-version="1"><plain-text-body>keytool -export -alias broker -keystore broker.ks -file broker_cert
+</plain-text-body></structured-macro></li><li><p>Create a certificate/keystore for the client:</p><structured-macro ac:macro-id="d7265148-3905-4928-a608-30e11f0a2c97" ac:name="code" ac:schema-version="1"><plain-text-body>keytool -genkey -alias client -keyalg RSA -keystore client.ks</plain-text-body></structured-macro></li><li><p>Create a truststore for the client, and import the broker's certificate. This establishes that the client "trusts" the broker:</p><structured-macro ac:macro-id="e573e708-be21-4b0f-a46d-40054c5d3e5e" ac:name="code" ac:schema-version="1"><plain-text-body>keytool -import -alias broker -keystore client.ts -file broker_cert</plain-text-body></structured-macro></li></ol><h3>Starting the Broker</h3><h4>Using the javax.net.ssl.* System Properties</h4><p>Before starting the broker's VM set the ACTIVEMQ_SSL_OPTS&#160;environment variable so that it knows to use the broker keystore. &#160;(note that in previous versions of ActiveMQ this property was called SSL_OPTS in 
 some scripts. &#160;As of v5.12.0 all scripts use ACTIVEMQ_SSL_OPTS)</p><structured-macro ac:macro-id="1b53f6c7-66f1-4df8-9aaa-371607cd3e5c" ac:name="code" ac:schema-version="1"><plain-text-body>export ACTIVEMQ_SSL_OPTS = -Djavax.net.ssl.keyStore=/path/to/broker.ks -Djavax.net.ssl.keyStorePassword=password
+</plain-text-body></structured-macro><h4>Using Spring to configure SSL for a Broker instance</h4><p>Sometimes the use of javax.net.ssl.* system properties is not appropriate as they effect all SSL users in a JVM. ActiveMQ 5.2.x adds an &lt;sslContext&gt; element to the &lt;amq:broker&gt; that allows a broker specific set of SSL properties to be configured.</p><p>The SslContext <a shape="rect" href="https://svn.apache.org/repos/asf/activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/transport/tcp/SslContextBrokerServiceTest.java">test case</a> validates starting an SSL transport listener using the configuration specified in the broker Xbean. The SslContext element is added to the broker as follows:</p><structured-macro ac:macro-id="e8315105-9b37-4739-a749-b7b7b512f6cc" ac:name="code" ac:schema-version="1"><plain-text-body>&lt;beans
+  &lt;amq:broker useJmx="false" persistent="false"&gt;
 
     &lt;amq:sslContext&gt;
       &lt;amq:sslContext
-      		keyStore=&quot;broker.ks&quot; keyStorePassword=&quot;password&quot;
-      		trustStore=&quot;client.ks&quot; trustStorePassword=&quot;password&quot;/&gt;
+      		keyStore="broker.ks" keyStorePassword="password"
+      		trustStore="client.ks" trustStorePassword="password"/&gt;
     &lt;/amq:sslContext&gt;
 
     &lt;amq:transportConnectors&gt;
-      &lt;amq:transportConnector uri=&quot;ssl://localhost:61616&quot; /&gt;
+      &lt;amq:transportConnector uri="ssl://localhost:61616" /&gt;
     &lt;/amq:transportConnectors&gt;
 
   &lt;/amq:broker&gt;
 &lt;/beans&gt;
-]]></script>
-</div></div><p>The SslContext is used to configure the <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/activemq/trunk/activemq-client/src/main/java/org/apache/activemq/transport/tcp/SslTransportFactory.java">SslTransportFactory</a> for that broker. Full details of the configuration options available can be seen in the <a shape="rect" class="external-link" href="http://activemq.apache.org/schema/core/activemq-core-5.2-SNAPSHOT.xsd">schema definition</a> or in the accessors of <a shape="rect" class="external-link" href="https://svn.apache.org/repos/asf/activemq/trunk/activemq-spring/src/main/java/org/apache/activemq/spring/SpringSslContext.java">org.apache.activemq.spring.SpringSslContext</a></p><h3 id="HowdoIuseSSL-StartingtheClient">Starting the Client</h3><p>When starting the client's VM, specify the following system properties:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[javax.net.ssl.keyStore=/path/to/client.ks
+</plain-text-body></structured-macro><p>The SslContext is used to configure the <a shape="rect" href="https://svn.apache.org/repos/asf/activemq/trunk/activemq-client/src/main/java/org/apache/activemq/transport/tcp/SslTransportFactory.java">SslTransportFactory</a> for that broker. Full details of the configuration options available can be seen in the <a shape="rect" href="http://activemq.apache.org/schema/core/activemq-core-5.2-SNAPSHOT.xsd">schema definition</a> or in the accessors of <a shape="rect" href="https://svn.apache.org/repos/asf/activemq/trunk/activemq-spring/src/main/java/org/apache/activemq/spring/SpringSslContext.java">org.apache.activemq.spring.SpringSslContext</a></p><h3>Starting the Client</h3><p>When starting the client's VM, specify the following system properties:</p><structured-macro ac:macro-id="a25e8ade-909a-4083-8e1d-dc35710cf62d" ac:name="code" ac:schema-version="1"><plain-text-body>javax.net.ssl.keyStore=/path/to/client.ks
 javax.net.ssl.keyStorePassword=password
 javax.net.ssl.trustStore=/path/to/client.ts
-]]></script>
-</div></div><div class="confluence-information-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>In Linux, do not use absolute path to keystore. By default, keytool uses ~/.keystore, but in some setups passing -Djavax.net.ssl.keyStore=/home/account/.keystore to Java VM does not work. This is not ActiveMQ specific but good to keep in mind anyway.</p></div></div><h3 id="HowdoIuseSSL-Clientcertificates">Client certificates</h3><p>If you want to verify client certificates, you need to take a few extra steps:</p><ol><li><p>Export the client's certificate so it can be shared with broker:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[keytool -export -alias client -keystore client.ks -file client_cert
-]]></script>
-</div></div></li><li><p>Create a truststore for the broker, and import the client's certificate. This establishes that the broker "trusts" the client:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[keytool -import -alias client -keystore broker.ts -file client_cert]]></script>
-</div></div></li><li><p>Add</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[-Djavax.net.ssl.trustStore=/path/to/broker.ts]]></script>
-</div></div><p>to ACTIVEMQ_SSL_OPTS</p></li><li><p>Instruct ActiveMQ to require client authentication by setting the following in activemq.xml:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[  &lt;transportConnectors&gt;
-    &lt;transportConnector name=&quot;ssl&quot; uri=&quot;ssl://localhost:61617?needClientAuth=true&quot; /&gt;
-  &lt;/transportConnectors&gt;]]></script>
-</div></div></li></ol><h3 id="HowdoIuseSSL-Certificaterevocation">Certificate revocation</h3><p>Starting with version <strong>5.12</strong>, you can define certificate revocation list (CRL) path on ssl context, so that invalid certificates can revoked</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[    &lt;sslContext&gt;
-        &lt;sslContext keyStore=&quot;org/apache/activemq/security/broker1.ks&quot;
-                    keyStorePassword=&quot;password&quot;
-                    trustStore=&quot;org/apache/activemq/security/activemq-revoke.jks&quot;
-                    trustStorePassword=&quot;password&quot;
-                    crlPath=&quot;org/apache/activemq/security/activemq-revoke.crl&quot;/&gt;
-    &lt;/sslContext&gt;]]></script>
-</div></div><p>This list is static and loaded on broker startup.</p><p>Starting with version <strong>5.14.0</strong>, you can also enable more advanced&#160;Online Certificate Status Protocol (OCSP) protocol. For that you need to configure a location for the<code> java.security</code> configuration extension by setting appropriate system properties (in <code>${ACTIVEMQ_HOME}/bin/env</code>) like</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ACTIVEMQ_SSL_OPTS=&quot;-Djava.security.properties=$ACTIVEMQ_CONF/java.security&quot;]]></script>
-</div></div><p>Then you need to configure OCSP responder properties in <code>java.security</code> file like</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ocsp.enable=true
-ocsp.responderURL=http://ocsp.example.net:80]]></script>
-</div></div><p>A demo of the broker configuration working with OCSP responder can be found at&#160;<a shape="rect" class="external-link" href="https://github.com/dejanb/sslib" rel="nofollow">https://github.com/dejanb/sslib</a></p><h3 id="HowdoIuseSSL-WorkingAroundJava7SSLBugs">Working Around Java 7 SSL Bugs</h3><p>As noted by issue AMQ-5970, it seems some versions of Java 7 have problems with SSL sessions that need to use the Diffie-Hellman cypher suite. If you run into this issue, just copy the Bouncy Castle bcprov-jdk15on-148.jar to ActiveMQ's lib directory and restart your broker.</p><h3 id="HowdoIuseSSL-Usefullinks">Useful links</h3><p>These links might also help</p><ul><li><a shape="rect" class="external-link" href="http://java.sun.com/j2se/1.4.2/docs/guide/security/jsse/JSSERefGuide.html#CreateKeystore" rel="nofollow">Sun's JSSE guide</a></li><li><a shape="rect" class="external-link" href="https://search.thawte.com/support/ssl-digital-certificates/index?page=content&amp;id=SO1
 0061" rel="nofollow">Thawte SSL Troubleshooting Tips</a></li></ul></div>
+</plain-text-body></structured-macro><structured-macro ac:macro-id="156cab22-46c8-47ee-9d80-84f5f67aaed8" ac:name="warning" ac:schema-version="1"><parameter ac:name="">Be careful on Linux</parameter><rich-text-body><p>In Linux, do not use absolute path to keystore. By default, keytool uses ~/.keystore, but in some setups passing -Djavax.net.ssl.keyStore=/home/account/.keystore to Java VM does not work. This is not ActiveMQ specific but good to keep in mind anyway.</p></rich-text-body></structured-macro><h3>Client certificates</h3><p>If you want to verify client certificates, you need to take a few extra steps:</p><ol><li><p>Export the client's certificate so it can be shared with broker:</p><structured-macro ac:macro-id="fd39bcff-a4ce-402b-871d-d0cf04657d86" ac:name="code" ac:schema-version="1"><plain-text-body>keytool -export -alias client -keystore client.ks -file client_cert
+</plain-text-body></structured-macro></li><li><p>Create a truststore for the broker, and import the client's certificate. This establishes that the broker "trusts" the client:</p><structured-macro ac:macro-id="86e24c54-d55a-4818-8d02-45f6f0f20e80" ac:name="code" ac:schema-version="1"><plain-text-body>keytool -import -alias client -keystore broker.ts -file client_cert</plain-text-body></structured-macro></li><li><p>Add</p><structured-macro ac:macro-id="6bd663bb-0dd6-4f0d-8a17-3e9f7557b781" ac:name="code" ac:schema-version="1"><plain-text-body>-Djavax.net.ssl.trustStore=/path/to/broker.ts</plain-text-body></structured-macro><p>to ACTIVEMQ_SSL_OPTS</p></li><li><p>Instruct ActiveMQ to require client authentication by setting the following in activemq.xml:</p><structured-macro ac:macro-id="552bbf90-fc3d-4452-adb1-043f39b7a36c" ac:name="code" ac:schema-version="1"><plain-text-body>  &lt;transportConnectors&gt;
+    &lt;transportConnector name="ssl" uri="ssl://localhost:61617?needClientAuth=true" /&gt;
+  &lt;/transportConnectors&gt;</plain-text-body></structured-macro></li></ol><h3>Certificate revocation</h3><p>Starting with version <strong>5.12</strong>, you can define certificate revocation list (CRL) path on ssl context, so that invalid certificates can revoked</p><structured-macro ac:macro-id="4711bfda-6a1d-4233-801a-0294d3b0619e" ac:name="code" ac:schema-version="1"><parameter ac:name="language">xml</parameter><plain-text-body>    &lt;sslContext&gt;
+        &lt;sslContext keyStore="org/apache/activemq/security/broker1.ks"
+                    keyStorePassword="password"
+                    trustStore="org/apache/activemq/security/activemq-revoke.jks"
+                    trustStorePassword="password"
+                    crlPath="org/apache/activemq/security/activemq-revoke.crl"/&gt;
+    &lt;/sslContext&gt;</plain-text-body></structured-macro><p>This list is static and loaded on broker startup.</p><p>Starting with version <strong>5.14.0</strong>, you can also enable more advanced&#160;Online Certificate Status Protocol (OCSP) protocol. For that you need to configure a location for the<code> java.security</code> configuration extension by setting appropriate system properties (in <code>${ACTIVEMQ_HOME}/bin/env</code>) like</p><structured-macro ac:macro-id="8d57fab2-5a8b-4204-891d-94b910374942" ac:name="code" ac:schema-version="1"><plain-text-body>ACTIVEMQ_SSL_OPTS="-Djava.security.properties=$ACTIVEMQ_CONF/java.security"</plain-text-body></structured-macro><p>Then you need to configure OCSP responder properties in <code>java.security</code> file like</p><structured-macro ac:macro-id="4da0cadd-0e98-4b9e-8001-cb66c53b8c2c" ac:name="code" ac:schema-version="1"><plain-text-body>ocsp.enable=true
+ocsp.responderURL=http://ocsp.example.net:80</plain-text-body></structured-macro><p>A demo of the broker configuration working with OCSP responder can be found at&#160;<a shape="rect" href="https://github.com/dejanb/sslib">https://github.com/dejanb/sslib</a></p><h3>Working Around Java 7 SSL Bugs</h3><p>As noted by issue AMQ-5970, it seems some versions of Java 7 have problems with SSL sessions that need to use the Diffie-Hellman cypher suite. If you run into this issue, just copy the Bouncy Castle bcprov-jdk15on-148.jar to ActiveMQ's lib directory and restart your broker.</p><h3>Useful links</h3><p>These links might also help</p><ul><li><a shape="rect" href="http://java.sun.com/j2se/1.4.2/docs/guide/security/jsse/JSSERefGuide.html#CreateKeystore">Sun's JSSE guide</a></li><li><a shape="rect" href="https://search.thawte.com/support/ssl-digital-certificates/index?page=content&amp;id=SO10061">Thawte SSL Troubleshooting Tips</a></li></ul></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-do-message-groups-compare-to-selectors.xml
----------------------------------------------------------------------
diff --git a/how-do-message-groups-compare-to-selectors.xml b/how-do-message-groups-compare-to-selectors.xml
index 23adaee..756a9b0 100644
--- a/how-do-message-groups-compare-to-selectors.xml
+++ b/how-do-message-groups-compare-to-selectors.xml
@@ -17,5 +17,6 @@
 <ul><li>there's nothing to stop you accidentally creating 2 threads with the same selector - or 2 processes on the network starting up with the same selector and accidentally consuming from the same group of messages which completely breaks ordering; with message groups you don't have to worry about this - since it guarrentees that only 1 thread in your entire system will process messages from one group at once in order - irrespective how many consumers you start.</li></ul>
 
 
-<p>So in general; you can manually partition yourself using selectors. Message Groups however are a self-partitioning and auto-failvoer mechanism which also guarrentees that a single thread will process a specific message group at once, in order.</p></div>
+<p>So in general; you can manually partition yourself using selectors. Message Groups however are a self-partitioning and auto-failvoer mechanism which also guarrentees that a single thread will process a specific message group at once, in order.</p>
+</div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-do-multiple-transports-work.xml
----------------------------------------------------------------------
diff --git a/how-do-multiple-transports-work.xml b/how-do-multiple-transports-work.xml
index 2ab1a3c..c7cb62a 100644
--- a/how-do-multiple-transports-work.xml
+++ b/how-do-multiple-transports-work.xml
@@ -1,5 +1,5 @@
 <div class="wiki-content maincontent">
-<h3 id="Howdomultipletransportswork-ForActiveMQ3.x/4.x">For ActiveMQ 3.x/4.x</h3>
+<h3>For ActiveMQ 3.x/4.x</h3>
 
 
 <p>The transport a client uses to connect to the broker is just the transport your client uses. So messages the broker sends to your client will be sent over that transport. However the broker can support many transports.</p>

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-do-transactions-work.xml
----------------------------------------------------------------------
diff --git a/how-do-transactions-work.xml b/how-do-transactions-work.xml
index 863e079..f2c8cf4 100644
--- a/how-do-transactions-work.xml
+++ b/how-do-transactions-work.xml
@@ -1,2 +1,2 @@
-<div class="wiki-content maincontent"><p>There are two levels of transaction support in ActiveMQ:</p><ul><li>JMS Transactions - the&#160;<strong><code>commit()/</code></strong><strong><code>rollback()</code></strong> methods on a Session (which is like doing&#160;<strong><code>commit()/</code></strong><strong><code>rollback()</code></strong> on a JDBC connection)</li><li>XA Transactions - where the <a shape="rect" class="external-link" href="http://activemq.apache.org/maven/apidocs/src-html/org/apache/activemq/ActiveMQXASession.html">XASession</a> acts as an <a shape="rect" class="external-link" href="http://java.sun.com/j2ee/1.4/docs/api/javax/transaction/xa/XAResource.html" rel="nofollow">XAResource</a> by communicating with the Message Broker, rather like a JDBC Connection takes place in an XA transaction by communicating with the database.</li></ul><p>They are both implemented in a similar manner. When operations are carried out on a transacted (or XA transacted) session, a tran
 saction command is sent to the broker, with a unique transaction ID which is then followed by all the usual commands (send message, acknowledge message etc). When a <strong><code>commit()</code></strong> or <strong><code>rollback()</code></strong> is called on the Session, this command is sent to the broker for it to commit or rollback the transaction.</p><p>Now the operations carried out on a transacted session inside a transaction, like a send message or acknowledge message, do not really perform a real send or acknowledge until the commit occurs. So the Broker explicitly handles these cases separately - essentially buffering up the commands until the commit occurs when the messages are really sent or acknowledged.</p><p>ActiveMQ uses <a shape="rect" class="external-link" href="http://activemq.apache.org/maven/apidocs/src-html/org/apache/activemq/store/TransactionStore.html">TransactionStore</a> (implemented by all persistence adapters) to handle transactions. <strong><code>Transa
 ctionStore</code></strong> will cache all messages and ACKs until commit or rollback occurs. Besides storing messages, the broker will withhold dispatching any of the messages until the session commit. If you wanna see the code, take a look at <a shape="rect" class="external-link" href="http://activemq.apache.org/maven/apidocs/src-html/org/apache/activemq/store/memory/MemoryTransactionStore.html">MemoryTransactionStore</a> which proxies transactions for Memory and JDBC persistence adapters.&#160; The only real difference with XA transactions is that at the PREPARE stage we MUST write every command we have received (the send message or acknowledge message commands) to a persistent store so that we can recover properly.</p></div>
+<div class="wiki-content maincontent"><p>There are two levels of transaction support in ActiveMQ:</p><ul><li>JMS Transactions - the&#160;<strong><code>commit()/</code></strong><strong><code>rollback()</code></strong> methods on a Session (which is like doing&#160;<strong><code>commit()/</code></strong><strong><code>rollback()</code></strong> on a JDBC connection)</li><li>XA Transactions - where the <a shape="rect" href="http://activemq.apache.org/maven/apidocs/src-html/org/apache/activemq/ActiveMQXASession.html">XASession</a> acts as an <a shape="rect" href="http://java.sun.com/j2ee/1.4/docs/api/javax/transaction/xa/XAResource.html">XAResource</a> by communicating with the Message Broker, rather like a JDBC Connection takes place in an XA transaction by communicating with the database.</li></ul><p>They are both implemented in a similar manner. When operations are carried out on a transacted (or XA transacted) session, a transaction command is sent to the broker, with a unique transa
 ction ID which is then followed by all the usual commands (send message, acknowledge message etc). When a <strong><code>commit()</code></strong> or <strong><code>rollback()</code></strong> is called on the Session, this command is sent to the broker for it to commit or rollback the transaction.</p><p>Now the operations carried out on a transacted session inside a transaction, like a send message or acknowledge message, do not really perform a real send or acknowledge until the commit occurs. So the Broker explicitly handles these cases separately - essentially buffering up the commands until the commit occurs when the messages are really sent or acknowledged.</p><p>ActiveMQ uses <a shape="rect" href="http://activemq.apache.org/maven/apidocs/src-html/org/apache/activemq/store/TransactionStore.html">TransactionStore</a> (implemented by all persistence adapters) to handle transactions. <strong><code>TransactionStore</code></strong> will cache all messages and ACKs until commit or rollb
 ack occurs. Besides storing messages, the broker will withhold dispatching any of the messages until the session commit. If you wanna see the code, take a look at <a shape="rect" href="http://activemq.apache.org/maven/apidocs/src-html/org/apache/activemq/store/memory/MemoryTransactionStore.html">MemoryTransactionStore</a> which proxies transactions for Memory and JDBC persistence adapters.&#160; The only real difference with XA transactions is that at the PREPARE stage we MUST write every command we have received (the send message or acknowledge message commands) to a persistent store so that we can recover properly.</p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-does-a-queue-compare-to-a-topic.xml
----------------------------------------------------------------------
diff --git a/how-does-a-queue-compare-to-a-topic.xml b/how-does-a-queue-compare-to-a-topic.xml
index 94fc25c..30167dc 100644
--- a/how-does-a-queue-compare-to-a-topic.xml
+++ b/how-does-a-queue-compare-to-a-topic.xml
@@ -1,7 +1,7 @@
-<div class="wiki-content maincontent"><h3 id="HowdoesaQueuecomparetoaTopic-Topics">Topics</h3>
+<div class="wiki-content maincontent"><h3>Topics</h3>
 <p>In JMS a Topic implements <em>publish and subscribe</em> semantics. When you publish a message it goes to all the subscribers who are interested - so zero to many subscribers will receive a copy of the message. Only subscribers who had an active subscription at the time the broker receives the message will get a copy of the message.</p>
 
-<h3 id="HowdoesaQueuecomparetoaTopic-Queues">Queues</h3>
+<h3>Queues</h3>
 <p>A JMS Queue implements <em>load balancer</em> semantics. A single message will be received by exactly one consumer. If there are no consumers available at the time the message is sent it will be kept until a consumer is available that can process the message. If a consumer receives a message and does not acknowledge it before closing then the message will be redelivered to another consumer. A queue can have many consumers with messages <em>load balanced</em> across the available consumers.</p>
 
 <p>So Queues implement a reliable load balancer in JMS.</p></div>

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-does-activemq-compare-to-amqp.xml
----------------------------------------------------------------------
diff --git a/how-does-activemq-compare-to-amqp.xml b/how-does-activemq-compare-to-amqp.xml
index c7be595..ec89dbc 100644
--- a/how-does-activemq-compare-to-amqp.xml
+++ b/how-does-activemq-compare-to-amqp.xml
@@ -1,10 +1,10 @@
-<div class="wiki-content maincontent"><p><a shape="rect" href="amqp.xml">AMQP</a> stands for the <em>Advanced Message Queue Protocol</em> and is a specification for how messaging clients and brokers can interoperate. AMQP is a specification of a wire-level protocol for client to message broker communication.  It is not a messaging system like ActiveMQ, but just a messaging protocol.</p>
+<div class="wiki-content maincontent"><p><link><page ri:content-title="AMQP"></page></link> stands for the <em>Advanced Message Queue Protocol</em> and is a specification for how messaging clients and brokers can interoperate. AMQP is a specification of a wire-level protocol for client to message broker communication.  It is not a messaging system like ActiveMQ, but just a messaging protocol.</p>
 
 <p>ActiveMQ now implements AMQP 1.0!</p>
 
 <p>ActiveMQ also supports other open wire protocols:</p>
 
-<ul><li><a shape="rect" href="openwire.xml">OpenWire</a>, a fast binary format</li><li><a shape="rect" href="stomp.xml">Stomp</a>, a simple and easily implemented text based-protocol</li><li><a shape="rect" href="mqtt.xml">MQTT</a>, a compact binary format for limited devices on an unreliable network</li></ul>
+<ul><li><link><page ri:content-title="OpenWire"></page></link>, a fast binary format</li><li><link><page ri:content-title="Stomp"></page></link>, a simple and easily implemented text based-protocol</li><li><link><page ri:content-title="MQTT"></page></link>, a compact binary format for limited devices on an unreliable network</li></ul>
 
 
 <p>Through these protocols, ActiveMQ can support clients in C, C++, C#, Ruby, Python, Perl, PHP, Pike etc. AMQP is most similar to OpenWire, because both OpenWire and AMQP are designed for high performance messaging, through a binary (rather than text-based) format. As a text-based format, STOMP is much easier to implement, but gives somewhat slower performance.</p></div>

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-does-activemq-compare-to-artemis.xml
----------------------------------------------------------------------
diff --git a/how-does-activemq-compare-to-artemis.xml b/how-does-activemq-compare-to-artemis.xml
index 892920c..2e6c9d8 100644
--- a/how-does-activemq-compare-to-artemis.xml
+++ b/how-does-activemq-compare-to-artemis.xml
@@ -1,2 +1,2 @@
-<div class="wiki-content maincontent"><p><a shape="rect" class="external-link" href="https://activemq.apache.org/artemis/">Artemis</a> is the codename used for the HornetQ code that was donated to the Apache Foundation.</p><p>It is possible that Artemis will eventually become the successor to ActiveMQ 5.x (and that it might eventually be branded as ActiveMQ 6.x), but no decision about that had been made as of April 2015 as documented in that month's <a shape="rect" class="external-link" href="http://activemq.apache.org/apache-activemq-board-report-201504-april.html">ActiveMQ Board Report</a>.</p></div>
+<div class="wiki-content maincontent"><p><a shape="rect" href="https://activemq.apache.org/artemis/">Artemis</a> is the codename used for the HornetQ code that was donated to the Apache Foundation.</p><p>It is possible that Artemis will eventually become the successor to ActiveMQ 5.x (and that it might eventually be branded as ActiveMQ 6.x), but no decision about that had been made as of April 2015 as documented in that month's <a shape="rect" href="http://activemq.apache.org/apache-activemq-board-report-201504-april.html">ActiveMQ Board Report</a>.</p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-does-activemq-compare-to-fuse-message-broker.xml
----------------------------------------------------------------------
diff --git a/how-does-activemq-compare-to-fuse-message-broker.xml b/how-does-activemq-compare-to-fuse-message-broker.xml
index dcb3d80..2d13240 100644
--- a/how-does-activemq-compare-to-fuse-message-broker.xml
+++ b/how-does-activemq-compare-to-fuse-message-broker.xml
@@ -1,2 +1,2 @@
-<div class="wiki-content maincontent"><p><a shape="rect" class="external-link" href="http://fusesource.com/products/enterprise-activemq/" rel="nofollow">Fuse Message Broker</a> is a certified distribution of Apache ActiveMQ provided by FuseSource. <a shape="rect" class="external-link" href="http://fusesource.com" rel="nofollow">FuseSource</a> does all of its development and bug fixes as part of the Apache ActiveMQ community, so there are no functional differences between the two. FuseSource may do more frequent releases than Apache, so it is possible to get bug fixes from a Fuse Message Broker release sooner than from an official Apache ActiveMQ release.</p></div>
+<div class="wiki-content maincontent"><p><a shape="rect" href="http://fusesource.com/products/enterprise-activemq/">Fuse Message Broker</a> is a certified distribution of Apache ActiveMQ provided by FuseSource. <a shape="rect" href="http://fusesource.com">FuseSource</a> does all of its development and bug fixes as part of the Apache ActiveMQ community, so there are no functional differences between the two. FuseSource may do more frequent releases than Apache, so it is possible to get bug fixes from a Fuse Message Broker release sooner than from an official Apache ActiveMQ release.</p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-does-activemq-compare-to-jbossmq.xml
----------------------------------------------------------------------
diff --git a/how-does-activemq-compare-to-jbossmq.xml b/how-does-activemq-compare-to-jbossmq.xml
index 8e4a806..bf6162a 100644
--- a/how-does-activemq-compare-to-jbossmq.xml
+++ b/how-does-activemq-compare-to-jbossmq.xml
@@ -1,17 +1,13 @@
-<div class="wiki-content maincontent"><p>There are some similarities between the two; they both support JMS 1.1 and run inside <a shape="rect" href="jboss-integration.xml">JBoss 4.x</a>.</p>
+<div class="wiki-content maincontent"><p>There are some similarities between the two; they both support JMS 1.1 and run inside <link><page ri:content-title="JBoss Integration"></page><link-body>JBoss 4.x</link-body></link>.</p>
 
 <p>However ActiveMQ does offer some specific differences and advantages (at least from our perspective)</p>
 
-<ul><li>ActiveMQ works great in any JVM not just inside the JBoss application server</li><li>ActiveMQ comes complete with a large number of <a shape="rect" href="cross-language-clients.xml">Cross Language Clients</a></li><li>ActiveMQ supports many different <a shape="rect" href="protocols.xml">Protocols</a> such as <a shape="rect" href="ajax.xml">Ajax</a>, <a shape="rect" href="rest.xml">REST</a>, <a shape="rect" href="stomp.xml">Stomp</a>, <a shape="rect" href="openwire.xml">OpenWire</a>, <a shape="rect" href="xmpp.xml">XMPP</a></li><li>ActiveMQ supports a large number of advanced features like <a shape="rect" href="message-groups.xml">Message Groups</a>, <a shape="rect" href="exclusive-consumer.xml">Exclusive Consumer</a>, <a shape="rect" href="composite-destinations.xml">Composite Destinations</a>, <a shape="rect" href="advisory-message.xml">Advisory Message</a> support</li><li>ActiveMQ supports reliable connections with <a shape="rect" href="configuring-transports.xml">configura
 ble</a> automatic reconnection</li><li>ActiveMQ has great <a shape="rect" href="spring-support.xml">Spring Support</a></li><li>ActiveMQ supports distributed destinations across networks</li><li>ActiveMQ is very fast; often 10x faster than JBossMQ.</li></ul>
+<ul><li>ActiveMQ works great in any JVM not just inside the JBoss application server</li><li>ActiveMQ comes complete with a large number of <link><page ri:content-title="Cross Language Clients"></page></link></li><li>ActiveMQ supports many different <link><page ri:content-title="Protocols"></page></link> such as <link><page ri:content-title="Ajax"></page></link>, <link><page ri:content-title="REST"></page></link>, <link><page ri:content-title="Stomp"></page></link>, <link><page ri:content-title="OpenWire"></page></link>, <link><page ri:content-title="XMPP"></page></link></li><li>ActiveMQ supports a large number of advanced features like <link><page ri:content-title="Message Groups"></page></link>, <link><page ri:content-title="Exclusive Consumer"></page></link>, <link><page ri:content-title="Composite Destinations"></page></link>, <link><page ri:content-title="Advisory Message"></page></link> support</li><li>ActiveMQ supports reliable connections with <link><page ri:content-title="C
 onfiguring Transports"></page><link-body>configurable</link-body></link> automatic reconnection</li><li>ActiveMQ has great <link><page ri:content-title="Spring Support"></page></link></li><li>ActiveMQ supports distributed destinations across networks</li><li>ActiveMQ is very fast; often 10x faster than JBossMQ.</li></ul>
 
 
-<h2 id="HowdoesActiveMQcomparetoJBossMQ-Performanceguides">Performance guides</h2>
+<structured-macro ac:macro-id="615ae0c7-9f69-416b-a39e-2f40b2fe9130" ac:name="include" ac:schema-version="1"><parameter ac:name=""><link><page ri:content-title="Performance report"></page></link></parameter></structured-macro>
 
-<p>If you're not convinced by performance reports then please do try running performance tests yourself. You might wanna check out our overview of <a shape="rect" href="performance.xml">Performance</a> or try using out the <a shape="rect" href="activemq-performance-module-users-manual.xml">ActiveMQ Performance Module Users Manual</a></p>
+<h2>More on JBoss Integration </h2>
 
-<p>The Commercial Providers on the <a shape="rect" href="support.xml">Support</a> page may also be able to help diagnose performance issues, suggest changes, etc...</p>
-
-<h2 id="HowdoesActiveMQcomparetoJBossMQ-MoreonJBossIntegration">More on JBoss Integration </h2>
-
-<p><a shape="rect" href="integrating-apache-activemq-with-jboss.xml">Integrating Apache ActiveMQ with JBoss</a></p></div>
+<p><link><page ri:content-title="Integrating Apache ActiveMQ with JBoss"></page></link></p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-does-activemq-compare-to-mantaray.xml
----------------------------------------------------------------------
diff --git a/how-does-activemq-compare-to-mantaray.xml b/how-does-activemq-compare-to-mantaray.xml
index c369376..7f5183d 100644
--- a/how-does-activemq-compare-to-mantaray.xml
+++ b/how-does-activemq-compare-to-mantaray.xml
@@ -1,8 +1,8 @@
-<div class="wiki-content maincontent"><p>We are obviously biased, and will tell you "just use ActiveMQ!" <img class="emoticon emoticon-smile" src="https://cwiki.apache.org/confluence/s/en_GB/5997/6f42626d00e36f53fe51440403446ca61552e2a2.1/_/images/icons/emoticons/smile.png" data-emoticon-name="smile" alt="(smile)">  But Mantaray is an OK JMS provider. The interesting thing about MantaRay is it can support a peer-based network, just as ActiveMQ does with its <a shape="rect" href="peer-transport-reference.xml">peer transport</a>.</p>
+<div class="wiki-content maincontent"><p>We are obviously biased, and will tell you "just use ActiveMQ!" <emoticon ac:name="smile"></emoticon>  But Mantaray is an OK JMS provider. The interesting thing about MantaRay is it can support a peer-based network, just as ActiveMQ does with its <link><page ri:content-title="Peer Transport Reference"></page><link-body>peer transport</link-body></link>.</p>
 
-<p>We <a shape="rect" href="performance.xml">benchmark</a> against Mantaray and other open source JMS providers and in our tests (in which we try to be as objective as possible) ActiveMQ exhibits higher performance in most scenarios.</p>
+<p>We <link><page ri:content-title="Performance"></page><link-body>benchmark</link-body></link> against Mantaray and other open source JMS providers and in our tests (in which we try to be as objective as possible) ActiveMQ exhibits higher performance in most scenarios.</p>
 
 <p>A peer transport can be useful when using non-persistent messaging. But if you want persistent messaging you often want to use a federated network with certain brokers on the network being the persistence brokers (so you can backup the file systems etc).</p>
 
-<p>The ideal topology often depends on your requirements and how you want to manage persistence and deal with hardware failures such as with <a shape="rect" href="masterslave.xml">MasterSlave</a>.</p></div>
+<p>The ideal topology often depends on your requirements and how you want to manage persistence and deal with hardware failures such as with <link><page ri:content-title="MasterSlave"></page></link>.</p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-does-activemq-compare-to-mule.xml
----------------------------------------------------------------------
diff --git a/how-does-activemq-compare-to-mule.xml b/how-does-activemq-compare-to-mule.xml
index 72ba2ef..72167d8 100644
--- a/how-does-activemq-compare-to-mule.xml
+++ b/how-does-activemq-compare-to-mule.xml
@@ -1,2 +1,2 @@
-<div class="wiki-content maincontent"><p>Apache ActiveMQ is a messaging provider, with extensive capabilities for message brokering. Mule is described as an ESB, in that it defines and executes the brokering of message exchanges among integrated software components.</p><h4 id="HowdoesActiveMQcomparetoMule-Architecture">Architecture</h4><p>Mule provides an accessible programming model for integration, designed to work well with - and leverage - other middleware technologies. For this reason, Mule does not provide a native messaging system, and it is therefore frequently used with Apache ActiveMQ.</p><p>If you use Mule to define an integration based on Apache ActiveMQ, you would use a distinct framework, (the Mule Component Model) to define interfaces for connectivity, as well as mediating activities such as transformations and exception handling. (Note that the Mule framework model presumes a SEDA process model.)Used in this manner, you could think of Mule as a library for defining t
 he interactions among components, with the advantage that it is loosely coupled to both the integrated components and the messaging infrastructure.</p><p>If you have made the choice to use Apache ActiveMQ for messaging and such loose coupling to the messaging infrastructure is not required, you can also configure ActiveMQ directly or through the <a shape="rect" class="external-link" href="http://activemq.apache.org/camel/">Apache Camel container</a>. This may give you access to message handling features not defined in the Mule framework, while still providing connectivity to non-JMS clients through ActiveMQ's numerous options for client connectivity. Working with ActiveMQ directly also allows you to take advantage of clustering and failover capabilities that lie outside the scope of the Mule Component Model.</p><h4 id="HowdoesActiveMQcomparetoMule-PointsinCommon">Points in Common</h4><p>The Mule framework is quite user-friendly, is Java-based (Mule components, called Universal Model
  Objects, are essentially POJOs), and is both flexible (deploys to virtually any Java environment) and lightweight (can be deployed in Spring). These are advantages that it shares with ActiveMQ, so it's not surprising that the two technologies were often used together, before the advent of <a shape="rect" class="external-link" href="http://activemq.apache.org/camel">Apache Camel</a></p><h4 id="HowdoesActiveMQcomparetoMule-&quot;ESB&quot;versus&quot;Messaging&quot;">"ESB" versus "Messaging"</h4><p>Mule supports a number of integration capabilities that go beyond the scope of messaging, such as BPEL-based orchestration and (SOAP-to-Java) Web Services support. These are rightly described as ESB features, in that they are more than what one would expect from a messaging platform alone. For environments with these requirements, Camel or Mule provides a good extension to the capabilities of ActiveMQ.</p><p>Additional ESB requirements, such as support for a distributed architecture and a n
 ative JBI container and components, are not supported by Mule. If you require these capabilities, we encourage you to investigate other open source ESBs that also integrate Apache ActiveMQ, such as <a shape="rect" class="external-link" href="http://servicemix.org/" rel="nofollow">Apache ServiceMix</a>, and even the <a shape="rect" class="external-link" href="http://incubator.apache.org/cxf/">Apache CXF</a> service framework.</p><h4 id="HowdoesActiveMQcomparetoMule-CommercialSupport,CopyrightandLicense">Commercial Support, Copyright and License</h4><p>Both Mule and ActiveMQ have commercial support available from companies dedicated to the technologies. The commercial support corporation for Mule (MuleSource) holds the copyright to Mule, and licenses it under an open source license adapted from the Mozilla Public License (an "MPL+" license). Apache ActiveMQ is an open source project at the Apache Software Foundation, and as such is available under the Apache License 2.0. Commercial su
 pport for ActiveMQ is provided by <a shape="rect" class="external-link" href="http://open.iona.com/" rel="nofollow">Iona plc</a>.</p></div>
+<div class="wiki-content maincontent"><p>Apache ActiveMQ is a messaging provider, with extensive capabilities for message brokering. Mule is described as an ESB, in that it defines and executes the brokering of message exchanges among integrated software components.</p><h4>Architecture</h4><p>Mule provides an accessible programming model for integration, designed to work well with - and leverage - other middleware technologies. For this reason, Mule does not provide a native messaging system, and it is therefore frequently used with Apache ActiveMQ.</p><p>If you use Mule to define an integration based on Apache ActiveMQ, you would use a distinct framework, (the Mule Component Model) to define interfaces for connectivity, as well as mediating activities such as transformations and exception handling. (Note that the Mule framework model presumes a SEDA process model.)Used in this manner, you could think of Mule as a library for defining the interactions among components, with the adva
 ntage that it is loosely coupled to both the integrated components and the messaging infrastructure.</p><p>If you have made the choice to use Apache ActiveMQ for messaging and such loose coupling to the messaging infrastructure is not required, you can also configure ActiveMQ directly or through the <a shape="rect" href="http://activemq.apache.org/camel/">Apache Camel container</a>. This may give you access to message handling features not defined in the Mule framework, while still providing connectivity to non-JMS clients through ActiveMQ's numerous options for client connectivity. Working with ActiveMQ directly also allows you to take advantage of clustering and failover capabilities that lie outside the scope of the Mule Component Model.</p><h4>Points in Common</h4><p>The Mule framework is quite user-friendly, is Java-based (Mule components, called Universal Model Objects, are essentially POJOs), and is both flexible (deploys to virtually any Java environment) and lightweight (ca
 n be deployed in Spring). These are advantages that it shares with ActiveMQ, so it's not surprising that the two technologies were often used together, before the advent of <a shape="rect" href="http://activemq.apache.org/camel">Apache Camel</a></p><h4>"ESB" versus "Messaging"</h4><p>Mule supports a number of integration capabilities that go beyond the scope of messaging, such as BPEL-based orchestration and (SOAP-to-Java) Web Services support. These are rightly described as ESB features, in that they are more than what one would expect from a messaging platform alone. For environments with these requirements, Camel or Mule provides a good extension to the capabilities of ActiveMQ.</p><p>Additional ESB requirements, such as support for a distributed architecture and a native JBI container and components, are not supported by Mule. If you require these capabilities, we encourage you to investigate other open source ESBs that also integrate Apache ActiveMQ, such as <a shape="rect" hre
 f="http://servicemix.org/">Apache ServiceMix</a>, and even the <a shape="rect" href="http://incubator.apache.org/cxf/">Apache CXF</a> service framework.</p><h4>Commercial Support, Copyright and License</h4><p>Both Mule and ActiveMQ have commercial support available from companies dedicated to the technologies. The commercial support corporation for Mule (MuleSource) holds the copyright to Mule, and licenses it under an open source license adapted from the Mozilla Public License (an "MPL+" license). Apache ActiveMQ is an open source project at the Apache Software Foundation, and as such is available under the Apache License 2.0. Commercial support for ActiveMQ is provided by <a shape="rect" href="http://open.iona.com/">Iona plc</a>.</p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-does-activemq-compare-to-spread-toolkit.xml
----------------------------------------------------------------------
diff --git a/how-does-activemq-compare-to-spread-toolkit.xml b/how-does-activemq-compare-to-spread-toolkit.xml
index 9651be1..1770989 100644
--- a/how-does-activemq-compare-to-spread-toolkit.xml
+++ b/how-does-activemq-compare-to-spread-toolkit.xml
@@ -1,11 +1,7 @@
 <div class="wiki-content maincontent">
-<p>Spread Toolkit is a C++ library for messaging and only has <a shape="rect" class="external-link" href="http://www.spread.org/JMS4Spread/docs/" rel="nofollow">partial support for JMS</a>. It doesn't support durable messaging, transactions, XA or full JMS 1.1. It is also dependent on a native code Spread daemon running on the machine.</p>
+<p>Spread Toolkit is a C++ library for messaging and only has <a shape="rect" href="http://www.spread.org/JMS4Spread/docs/">partial support for JMS</a>. It doesn't support durable messaging, transactions, XA or full JMS 1.1. It is also dependent on a native code Spread daemon running on the machine.</p>
 
-<p>Apache ActiveMQ on the other hand is the JMS provider used in <a shape="rect" class="external-link" href="http://geronimo.apache.org">Apache Geronimo</a> and is J2EE 1.4 certified in Geronimo and is 100% pure Java. ActiveMQ supports transient and durable messaging, transactions, XA, J2EE 1.4, JMS 1.1, JCA 1.5 as well as heaps of different features like <a shape="rect" href="message-groups.xml">Message Groups</a> and <a shape="rect" href="clustering.xml">Clustering</a></p>
+<p>Apache ActiveMQ on the other hand is the JMS provider used in <a shape="rect" href="http://geronimo.apache.org">Apache Geronimo</a> and is J2EE 1.4 certified in Geronimo and is 100% pure Java. ActiveMQ supports transient and durable messaging, transactions, XA, J2EE 1.4, JMS 1.1, JCA 1.5 as well as heaps of different features like <link><page ri:content-title="Message Groups"></page></link> and <link><page ri:content-title="Clustering"></page></link></p>
 
-<h2 id="HowdoesActiveMQcomparetoSpreadToolkit-Performanceguides">Performance guides</h2>
-
-<p>If you're not convinced by performance reports then please do try running performance tests yourself. You might wanna check out our overview of <a shape="rect" href="performance.xml">Performance</a> or try using out the <a shape="rect" href="activemq-performance-module-users-manual.xml">ActiveMQ Performance Module Users Manual</a></p>
-
-<p>The Commercial Providers on the <a shape="rect" href="support.xml">Support</a> page may also be able to help diagnose performance issues, suggest changes, etc...</p></div>
+<structured-macro ac:macro-id="3a3420b9-f796-4044-895d-6667e944d341" ac:name="include" ac:schema-version="1"><parameter ac:name=""><link><page ri:content-title="Performance report"></page></link></parameter></structured-macro></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-does-connectionfactory-relate-to-the-broker.xml
----------------------------------------------------------------------
diff --git a/how-does-connectionfactory-relate-to-the-broker.xml b/how-does-connectionfactory-relate-to-the-broker.xml
index 8465ac1..b0137a9 100644
--- a/how-does-connectionfactory-relate-to-the-broker.xml
+++ b/how-does-connectionfactory-relate-to-the-broker.xml
@@ -1,9 +1,10 @@
-<div class="wiki-content maincontent"><h2 id="HowdoesConnectionFactoryrelatetotheBroker-HowdoesConnectionFactoryrelatetotheBroker?">How does ConnectionFactory relate to the Broker?</h2>
+<div class="wiki-content maincontent"><h2>How does ConnectionFactory relate to the Broker?</h2>
 
-<p>The ConnectionFactory is a JMS specification client side interface for creating connections to a JMS broker. The Broker is a service on the network or <a shape="rect" href="how-do-i-embed-a-broker-inside-a-connection.xml">embedded in the same JVM</a> which provides the message provider. So think of the ConnectionFactory as the client API for sending and receiving messages and the broker is a server side implementation.</p>
+<p>The ConnectionFactory is a JMS specification client side interface for creating connections to a JMS broker. The Broker is a service on the network or <link><page ri:content-title="How do I embed a Broker inside a Connection"></page><link-body>embedded in the same JVM</link-body></link> which provides the message provider. So think of the ConnectionFactory as the client API for sending and receiving messages and the broker is a server side implementation.</p>
 
-<h3 id="HowdoesConnectionFactoryrelatetotheBroker-SeeAlso">See Also</h3>
+<h3>See Also</h3>
+
+<ul><li><link><page ri:content-title="How do I create new destinations"></page></link></li><li><link><page ri:content-title="How do I embed a Broker inside a Connection"></page></link></li><li><link><page ri:content-title="What are administered objects"></page></link></li></ul>
 
-<ul><li><a shape="rect" href="how-do-i-create-new-destinations.xml">How do I create new destinations</a></li><li><a shape="rect" href="how-do-i-embed-a-broker-inside-a-connection.xml">How do I embed a Broker inside a Connection</a></li><li><a shape="rect" href="what-are-administered-objects.xml">What are administered objects</a></li></ul>
 </div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-does-jms-compare-with-email.xml
----------------------------------------------------------------------
diff --git a/how-does-jms-compare-with-email.xml b/how-does-jms-compare-with-email.xml
index a23fdcc..6df5b80 100644
--- a/how-does-jms-compare-with-email.xml
+++ b/how-does-jms-compare-with-email.xml
@@ -1,7 +1,7 @@
 <div class="wiki-content maincontent">
 <p>Certainly they both do similar things.  The main difference between them is their history and design criteria. </p>
 
-<p>JMS has a bunch of different qualities of service (durable v non-durable, queue v topic) designed for very high performance messaging with low latency together with reliability. Email is designed for connectivitiy on the web. So they have different design trade offs. e.g. its not a big deal to get multiple copies of an email (which I get fairly often if I loose a connection with an email server over POP for example). It would be a major disaster to get 2 copies of the "remove $1000 from my bank account" messages <img class="emoticon emoticon-smile" src="https://cwiki.apache.org/confluence/s/en_GB/5997/6f42626d00e36f53fe51440403446ca61552e2a2.1/_/images/icons/emoticons/smile.png" data-emoticon-name="smile" alt="(smile)"></p>
+<p>JMS has a bunch of different qualities of service (durable v non-durable, queue v topic) designed for very high performance messaging with low latency together with reliability. Email is designed for connectivitiy on the web. So they have different design trade offs. e.g. its not a big deal to get multiple copies of an email (which I get fairly often if I loose a connection with an email server over POP for example). It would be a major disaster to get 2 copies of the "remove $1000 from my bank account" messages <emoticon ac:name="smile"></emoticon></p>
 
 <p>The main reasons for using JMS is performance (throughput &amp; latency), together with support for transactions &amp; XA together with avoiding duplicates and message loss.</p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-does-openwire-compare-to-stomp.xml
----------------------------------------------------------------------
diff --git a/how-does-openwire-compare-to-stomp.xml b/how-does-openwire-compare-to-stomp.xml
index 8f0af69..79fe8cb 100644
--- a/how-does-openwire-compare-to-stomp.xml
+++ b/how-does-openwire-compare-to-stomp.xml
@@ -1,5 +1,5 @@
-<div class="wiki-content maincontent"><p><a shape="rect" href="openwire.xml">OpenWire</a> is the native protocol that Apache ActiveMQ uses. It is designed for performance and size on the wire - sacrificing some ease of implementation with higher performance and reduced network bandwidth as a priority. OpenWire was first released in Apache ActiveMQ 4.0.</p>
+<div class="wiki-content maincontent"><p><link><page ri:content-title="OpenWire"></page></link> is the native protocol that Apache ActiveMQ uses. It is designed for performance and size on the wire - sacrificing some ease of implementation with higher performance and reduced network bandwidth as a priority. OpenWire was first released in Apache ActiveMQ 4.0.</p>
 
-<p><a shape="rect" href="stomp.xml">Stomp</a> is a simpler text based protocol which is designed to be very simple to implement in a few hours in any language or platform (e.g. you can use a telnet client to communicate via Stomp). A Stomp client is not going to be as efficient as an client that uses<br clear="none">
+<p><link><page ri:content-title="Stomp"></page></link> is a simpler text based protocol which is designed to be very simple to implement in a few hours in any language or platform (e.g. you can use a telnet client to communicate via Stomp). A Stomp client is not going to be as efficient as an client that uses<br clear="none">
 OpenWire, but it much simpler so you can generally be up and running with it much quicker.</p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-does-the-journal-work.xml
----------------------------------------------------------------------
diff --git a/how-does-the-journal-work.xml b/how-does-the-journal-work.xml
index 71ae34a..b756f47 100644
--- a/how-does-the-journal-work.xml
+++ b/how-does-the-journal-work.xml
@@ -1,3 +1,3 @@
 <div class="wiki-content maincontent">
-<p>See the description <a shape="rect" href="persistence.xml">here</a></p></div>
+<p>See the description <link><page ri:content-title="Persistence"></page><link-body>here</link-body></link></p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-does-the-website-work.xml
----------------------------------------------------------------------
diff --git a/how-does-the-website-work.xml b/how-does-the-website-work.xml
index 9d9fd7d..6e39830 100644
--- a/how-does-the-website-work.xml
+++ b/how-does-the-website-work.xml
@@ -1,9 +1,9 @@
-<div class="wiki-content maincontent"><p>This website is actually rendered from the Wiki contents that you can <a shape="rect" href="how-do-i-edit-the-website.xml">edit</a>.  <br clear="none">
+<div class="wiki-content maincontent"><p>This website is actually rendered from the Wiki contents that you can <link><page ri:content-title="How do I edit the website"></page><link-body>edit</link-body></link>.  <br clear="none">
 When viewing a page on the static HTML website you can click on the <strong>edit</strong> link (bottom of the page) and you can edit the page. </p>
 
-<p>Other useful <a shape="rect" href="site.xml">Site links</a> are</p>
+<p>Other useful <link><page ri:content-title="Site"></page><link-body>Site links</link-body></link> are</p>
 
-<ul class="childpages-macro"><li><a shape="rect" href="banner.xml">Banner</a></li><li><a shape="rect" href="navigation.xml">Navigation</a></li><li><a shape="rect" href="quicklinks.xml">QuickLinks</a></li><li><a shape="rect" href="siteindex.xml">SiteIndex</a></li><li><a shape="rect" href="sitemap.xml">SiteMap</a></li></ul>
+<structured-macro ac:macro-id="d6f12256-015e-46f5-91b7-1ba114ec712e" ac:name="include" ac:schema-version="1"><parameter ac:name=""><link><page ri:content-title="Site"></page></link></parameter></structured-macro>
 
 <p>Note that it takes a little while to update the Apache site at <a shape="rect" class="external-link" href="http://activemq.apache.org/">http://activemq.apache.org/</a> due to caching. Though this site usually updates quickly: <a shape="rect" class="external-link" href="http://cwiki.apache.org/ACTIVEMQ/">http://cwiki.apache.org/ACTIVEMQ/</a></p></div>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-does-xbean-compare-to-spring-2.xml
----------------------------------------------------------------------
diff --git a/how-does-xbean-compare-to-spring-2.xml b/how-does-xbean-compare-to-spring-2.xml
index 669ca9c..b43b187 100644
--- a/how-does-xbean-compare-to-spring-2.xml
+++ b/how-does-xbean-compare-to-spring-2.xml
@@ -1,17 +1,17 @@
-<div class="wiki-content maincontent"><p>Spring 2.0 has introduced the ability to handle custom XML languages inside the spring.xml. This is something we developed <a shape="rect" class="external-link" href="http://geronimo.apache.org/xbean/">XBean</a> for way back in the Spring 1.x days.</p>
+<div class="wiki-content maincontent"><p>Spring 2.0 has introduced the ability to handle custom XML languages inside the spring.xml. This is something we developed <a shape="rect" href="http://geronimo.apache.org/xbean/">XBean</a> for way back in the Spring 1.x days.</p>
 
 <p>The Spring hook requires component developers to write their own XML handling, processing DOMs and so forth. On various projects like ActiveMQ, Jencks, Jetty, ServiceMix, XFire - we didn't want to have to spend time hand-crafting parsing of XML code. So XBean is used to auto-create the parsing code along with an XSD and reference documentation for how to configure these services in custom XML languages.</p>
 
 <p>So you can think of XBean as being like a JAXB2 tool for working inside Spring XML files</p>
 
-<h3 id="HowdoesXBeancomparetoSpring2-Springversionssupported">Spring versions supported</h3>
+<h3>Spring versions supported</h3>
 
 <p>So you can use XBean in Spring 1.x or Spring 2.x (for Spring 2.0 support you need XBean 2.6 or later along with the matching release of ActiveMQ).</p>
 
 <p>If you are using Spring 1.x you use the XBean versions of the Spring ApplicationContext classes. In Spring 2.0 the XBean functionality works perfectly fine inside a regular spring.xml file. The only main difference between using the XBean ApplicationContext files and the Spring ones is that the Spring ones mandate validation, so your XML must include all the XSD information (which is handy for IDE completion anyway) whereas this is not mandatory in the XBean configuraiton files.</p>
 
 
-<h3 id="HowdoesXBeancomparetoSpring2-Examples">Examples</h3>
+<h3>Examples</h3>
 
 <p>Here's a regular Spring 2 XML file using ActiveMQ's XML inside it to configure a broker &amp; destinations &amp; a connection factory</p>
 

http://git-wip-us.apache.org/repos/asf/activemq-web/blob/7a7d976c/how-fast-is-activemq.xml
----------------------------------------------------------------------
diff --git a/how-fast-is-activemq.xml b/how-fast-is-activemq.xml
index b51ea90..4d2e421 100644
--- a/how-fast-is-activemq.xml
+++ b/how-fast-is-activemq.xml
@@ -1,10 +1,6 @@
-<div class="wiki-content maincontent"><h2 id="HowfastisActiveMQ-HowfastisActiveMQ?">How fast is ActiveMQ?</h2>
+<div class="wiki-content maincontent"><h2>How fast is ActiveMQ?</h2>
 
-<p>It all depends on the configuration, the operating system, hardware, JVM, JVM configuration and what you're doing. For more details see <a shape="rect" href="performance.xml">Performance</a></p>
+<p>It all depends on the configuration, the operating system, hardware, JVM, JVM configuration and what you're doing. For more details see <link><page ri:content-title="Performance"></page></link></p>
 
-<h2 id="HowfastisActiveMQ-Performanceguides">Performance guides</h2>
-
-<p>If you're not convinced by performance reports then please do try running performance tests yourself. You might wanna check out our overview of <a shape="rect" href="performance.xml">Performance</a> or try using out the <a shape="rect" href="activemq-performance-module-users-manual.xml">ActiveMQ Performance Module Users Manual</a></p>
-
-<p>The Commercial Providers on the <a shape="rect" href="support.xml">Support</a> page may also be able to help diagnose performance issues, suggest changes, etc...</p></div>
+<structured-macro ac:macro-id="47f7b2f3-f9ea-4700-bec0-7e30bf92562a" ac:name="include" ac:schema-version="1"><parameter ac:name=""><link><page ri:content-title="Performance report"></page></link></parameter></structured-macro></div>