You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2018/03/09 03:47:20 UTC

[2/3] activemq-artemis git commit: NO-JIRA review docs for content, style, & format

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/message-expiry.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/message-expiry.md b/docs/user-manual/en/message-expiry.md
index db04002..99cb73f 100644
--- a/docs/user-manual/en/message-expiry.md
+++ b/docs/user-manual/en/message-expiry.md
@@ -11,18 +11,22 @@ messages are expired, they are removed from the queue and sent to the
 expiry address. Many different queues can be bound to an expiry address.
 These *expired* messages can later be consumed for further inspection.
 
-## Message Expiry
+## Core API
 
 Using Apache ActiveMQ Artemis Core API, you can set an expiration time directly on the
 message:
 
-    // message will expire in 5000ms from now
-    message.setExpiration(System.currentTimeMillis() + 5000);
+```java
+// message will expire in 5000ms from now
+message.setExpiration(System.currentTimeMillis() + 5000);
+```
 
 JMS MessageProducer allows to set a TimeToLive for the messages it sent:
 
-    // messages sent by this producer will be retained for 5s (5000ms) before expiration
-    producer.setTimeToLive(5000);
+```java
+// messages sent by this producer will be retained for 5s (5000ms) before expiration
+producer.setTimeToLive(5000);
+```
 
 Expired messages which are consumed from an expiry address have the
 following properties:
@@ -46,10 +50,12 @@ following properties:
 
 Expiry address are defined in the address-setting configuration:
 
-    <!-- expired messages in exampleQueue will be sent to the expiry address expiryQueue -->
-    <address-setting match="exampleQueue">
-       <expiry-address>expiryQueue</expiry-address>
-    </address-setting>
+```xml
+<!-- expired messages in exampleQueue will be sent to the expiry address expiryQueue -->
+<address-setting match="exampleQueue">
+   <expiry-address>expiryQueue</expiry-address>
+</address-setting>
+```
 
 If messages are expired and no expiry address is specified, messages are
 simply removed from the queue and dropped. Address wildcards can be used

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/message-grouping.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/message-grouping.md b/docs/user-manual/en/message-grouping.md
index 1d4bcd2..5fb4255 100644
--- a/docs/user-manual/en/message-grouping.md
+++ b/docs/user-manual/en/message-grouping.md
@@ -102,17 +102,19 @@ message should take.
 Here is a sample config for each type of handler. This should be 
 configured in `broker.xml`.
 
-    <grouping-handler name="my-grouping-handler">
-       <type>LOCAL</type>
-       <address>jms</address>
-       <timeout>5000</timeout>
-    </grouping-handler>
-
-    <grouping-handler name="my-grouping-handler">
-       <type>REMOTE</type>
-       <address>jms</address>
-       <timeout>5000</timeout>
-    </grouping-handler>
+```xml
+<grouping-handler name="my-grouping-handler">
+   <type>LOCAL</type>
+   <address>jms</address>
+   <timeout>5000</timeout>
+</grouping-handler>
+
+<grouping-handler name="my-grouping-handler">
+   <type>REMOTE</type>
+   <address>jms</address>
+   <timeout>5000</timeout>
+</grouping-handler>
+```
     
  - `type` two types of handlers are supported - `LOCAL` and `REMOTE`. 
    Each cluster should choose 1 node to have a `LOCAL` grouping handler

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/messaging-concepts.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/messaging-concepts.md b/docs/user-manual/en/messaging-concepts.md
index 41733e9..582b85d 100644
--- a/docs/user-manual/en/messaging-concepts.md
+++ b/docs/user-manual/en/messaging-concepts.md
@@ -12,7 +12,7 @@ about in the messaging world.
 If you're already familiar with what a messaging system is and what it's
 capable of, then you can skip this chapter.
 
-## Messaging Concepts
+## General Concepts
 
 Messaging systems allow you to loosely couple heterogeneous systems
 together, whilst typically providing reliability, transactions and many
@@ -57,7 +57,7 @@ messaging (also known as *point-to-point messaging*) and [publish
 subscribe](https://en.wikipedia.org/wiki/Publish_subscribe) messaging.
 We'll summarise them briefly here:
 
-### The Message Queue Pattern
+### Point-to-Point
 
 With this type of messaging you send a message to a queue. The message
 is then typically persisted to provide a guarantee of delivery, then
@@ -97,7 +97,7 @@ forgotten about. Often the send to the warehouse system, update in
 database and acknowledgement will be completed in a single transaction
 to ensure [ACID](https://en.wikipedia.org/wiki/ACID) properties.
 
-### The Publish-Subscribe Pattern
+### Publish-Subscribe
 
 With publish-subscribe messaging many senders can send messages to an
 entity on the server, often called a *topic* (e.g. in the JMS world).

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/paging.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/paging.md b/docs/user-manual/en/paging.md
index 8336435..a6ce648 100644
--- a/docs/user-manual/en/paging.md
+++ b/docs/user-manual/en/paging.md
@@ -35,7 +35,7 @@ Consumers with selectors will also navigate through the page-files and it will i
 
 
 
-## Configuration
+### Configuration
 
 You can configure the location of the paging folder
 
@@ -68,18 +68,20 @@ that address alone goes into page mode.
 > total overall size of all matching addresses is limited to
 > max-size-bytes.
 
-## Configuration
+### Configuration
 
 Configuration is done at the address settings, done at the main
 configuration file (`broker.xml`).
 
-    <address-settings>
-       <address-setting match="jms.someaddress">
-          <max-size-bytes>104857600</max-size-bytes>
-          <page-size-bytes>10485760</page-size-bytes>
-          <address-full-policy>PAGE</address-full-policy>
-       </address-setting>
-    </address-settings>
+```xml
+<address-settings>
+   <address-setting match="jms.someaddress">
+      <max-size-bytes>104857600</max-size-bytes>
+      <page-size-bytes>10485760</page-size-bytes>
+      <address-full-policy>PAGE</address-full-policy>
+   </address-setting>
+</address-settings>
+```
 
 This is the list of available parameters on the address settings.
 

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/persistence.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/persistence.md b/docs/user-manual/en/persistence.md
index 063311d..e48f785 100644
--- a/docs/user-manual/en/persistence.md
+++ b/docs/user-manual/en/persistence.md
@@ -1,16 +1,14 @@
 # Persistence
 
-In this chapter we will describe how persistence works with Apache ActiveMQ Artemis and
-how to configure it.
+Apache ActiveMQ Artemis ships with two persistence options.  The file journal which is 
+highly optimized for the messaging use case and gives great performance, and also the
+JDBC Store, which uses JDBC to connect to a database of your choice.  The JDBC Store is 
+still under development, but it is possible to use it's journal features, (essentially 
+everything except for paging and large messages).
 
-Apache ActiveMQ Artemis ships with two persistence options.  The Apache ActiveMQ Artemis File journal
-which is highly optimized for the messaging use case and gives great performance, and also Apache Artemis
-JDBC Store, which uses JDBC to connect to a database of your choice.  The JDBC Store is still under development,
-but it is possible to use it's journal features, (essentially everything except for paging and large messages).
+## File Journal (Default)
 
-## Apache ActiveMQ Artemis File Journal (Default)
-
-An Apache ActiveMQ Artemis file journal is an *append only* journal. It consists of a set of
+The file journal is an *append only* journal. It consists of a set of
 files on disk. Each file is pre-created to a fixed size and initially
 filled with padding. As operations are performed on the server, e.g. add
 message, update message, delete message, records are appended to the
@@ -45,49 +43,50 @@ The majority of the journal is written in Java, however we abstract out
 the interaction with the actual file system to allow different pluggable
 implementations. Apache ActiveMQ Artemis ships with two implementations:
 
--   Java [NIO](https://en.wikipedia.org/wiki/New_I/O).
+### Java [NIO](https://en.wikipedia.org/wiki/New_I/O)
 
-    The first implementation uses standard Java NIO to interface with
-    the file system. This provides extremely good performance and runs
-    on any platform where there's a Java 6+ runtime.
+The first implementation uses standard Java NIO to interface with
+the file system. This provides extremely good performance and runs
+on any platform where there's a Java 6+ runtime.
 
--   Linux Asynchronous IO
+### Linux Asynchronous IO
 
-    The second implementation uses a thin native code wrapper to talk to
-    the Linux asynchronous IO library (AIO). With AIO, Apache ActiveMQ Artemis will be
-    called back when the data has made it to disk, allowing us to avoid
-    explicit syncs altogether and simply send back confirmation of
-    completion when AIO informs us that the data has been persisted.
+The second implementation uses a thin native code wrapper to talk to
+the Linux asynchronous IO library (AIO). With AIO, Apache ActiveMQ Artemis will be
+called back when the data has made it to disk, allowing us to avoid
+explicit syncs altogether and simply send back confirmation of
+completion when AIO informs us that the data has been persisted.
 
-    Using AIO will typically provide even better performance than using
-    Java NIO.
+Using AIO will typically provide even better performance than using Java NIO.
 
-    The AIO journal is only available when running Linux kernel 2.6 or
-    later and after having installed libaio (if it's not already
-    installed). For instructions on how to install libaio please see Installing AIO section.
+The AIO journal is only available when running Linux kernel 2.6 or
+later and after having installed libaio (if it's not already
+installed). For instructions on how to install libaio please see Installing AIO section.
 
-    Also, please note that AIO will only work with the following file
-    systems: ext2, ext3, ext4, jfs, xfs and NFSV4.
+Also, please note that AIO will only work with the following file
+systems: ext2, ext3, ext4, jfs, xfs and NFSV4.
 
-    For more information on libaio please see [lib AIO](libaio.md).
+For more information on libaio please see [lib AIO](libaio.md).
 
-    libaio is part of the kernel project.
+libaio is part of the kernel project.
     
--   [Memory mapped](https://en.wikipedia.org/wiki/Memory-mapped_file).
+### [Memory mapped](https://en.wikipedia.org/wiki/Memory-mapped_file)
 
-    The third implementation uses a file-backed [READ_WRITE](https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.MapMode.html#READ_WRITE)
-    memory mapping against the OS page cache to interface with the file system.
+The third implementation uses a file-backed [READ_WRITE](https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.MapMode.html#READ_WRITE)
+memory mapping against the OS page cache to interface with the file system.
     
-    This provides extremely good performance (especially under strictly process failure durability requirements), 
-    almost zero copy (actually *is* the kernel page cache) and zero garbage (from the Java HEAP perspective) operations and runs 
-    on any platform where there's a Java 4+ runtime.
+This provides extremely good performance (especially under strictly process failure durability requirements), 
+almost zero copy (actually *is* the kernel page cache) and zero garbage (from the Java HEAP perspective) operations and runs 
+on any platform where there's a Java 4+ runtime.
     
-    Under power failure durability requirements it will perform at least on par with the NIO journal with the only 
-    exception of Linux OS with kernel less or equals 2.6, in which the [*msync*](https://docs.oracle.com/javase/8/docs/api/java/nio/MappedByteBuffer.html#force%28%29)) implementation necessary to ensure 
-    durable writes was different (and slower) from the [*fsync*](https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html#force%28boolean%29) used is case of NIO journal.
+Under power failure durability requirements it will perform at least on par with the NIO journal with the only 
+exception of Linux OS with kernel less or equals 2.6, in which the [*msync*](https://docs.oracle.com/javase/8/docs/api/java/nio/MappedByteBuffer.html#force%28%29)) implementation necessary to ensure 
+durable writes was different (and slower) from the [*fsync*](https://docs.oracle.com/javase/8/docs/api/java/nio/channels/FileChannel.html#force%28boolean%29) used is case of NIO journal.
     
-    It benefits by the configuration of OS [huge pages](https://en.wikipedia.org/wiki/Page_%28computer_memory%29),
-    in particular when is used a big number of journal files and sizing them as multiple of the OS page size in bytes.    
+It benefits by the configuration of OS [huge pages](https://en.wikipedia.org/wiki/Page_%28computer_memory%29),
+in particular when is used a big number of journal files and sizing them as multiple of the OS page size in bytes.    
+
+### Standard Files
 
 The standard Apache ActiveMQ Artemis core server uses two instances of the journal:
 
@@ -128,7 +127,7 @@ If no persistence is required at all, Apache ActiveMQ Artemis can also be config
 not to persist any data at all to storage as discussed in the Configuring
 the broker for Zero Persistence section.
 
-### Configuring the bindings journal
+#### Configuring the bindings journal
 
 The bindings journal is configured using the following attributes in
 `broker.xml`
@@ -145,11 +144,11 @@ The bindings journal is configured using the following attributes in
     `bindings-directory` if it does not already exist. The default value
     is `true`
 
-### Configuring the jms journal
+#### Configuring the jms journal
 
 The jms config shares its configuration with the bindings journal.
 
-### Configuring the message journal
+#### Configuring the message journal
 
 The message journal is configured using the following attributes in
 `broker.xml`
@@ -308,7 +307,7 @@ The message journal is configured using the following attributes in
     This is particular effective for `NIO` and `MAPPED` journals, which rely on 
      *fsync*/*msync* to force write changes to disk.
 
-### An important note on disabling `journal-datasync`.
+#### Note on disabling `journal-datasync`
 
 > Any modern OS guarantees that on process failures (i.e. crash) all the uncommitted changes
 > to the page cache will be flushed to the file system, maintaining coherence between 
@@ -320,7 +319,7 @@ The message journal is configured using the following attributes in
 > effectiveness of the journal operations, capable of exploiting 
 > the read caching and write combining features provided by the OS's kernel page cache subsystem.
 
-### An important note on disabling disk write cache.
+### Note on disabling disk write cache
 
 > **Warning**
 >
@@ -379,7 +378,7 @@ Using aptitude, (e.g. on Ubuntu or Debian system):
 
     apt-get install libaio
 
-## Apache ActiveMQ Artemis JDBC Persistence
+## JDBC Persistence
 
 WARNING: The Apache ActiveMQ Artemis JDBC persistence store is under development and is included for evaluation purposes.
 
@@ -411,16 +410,16 @@ To configure Apache ActiveMQ Artemis to use a database for persisting messages a
 2. Create a store element in your broker.xml config file under the ```<core>``` element.  For example:
 
 ```xml
-      <store>
-         <database-store>
-            <jdbc-connection-url>jdbc:derby:data/derby/database-store;create=true</jdbc-connection-url>
-            <bindings-table-name>BINDINGS_TABLE</bindings-table-name>
-            <message-table-name>MESSAGE_TABLE</message-table-name>
-            <page-store-table-name>MESSAGE_TABLE</page-store-table-name>
-            <large-message-table-name>LARGE_MESSAGES_TABLE</large-message-table-name>
-            <jdbc-driver-class-name>org.apache.derby.jdbc.EmbeddedDriver</jdbc-driver-class-name>
-         </database-store>
-      </store>
+<store>
+   <database-store>
+      <jdbc-connection-url>jdbc:derby:data/derby/database-store;create=true</jdbc-connection-url>
+      <bindings-table-name>BINDINGS_TABLE</bindings-table-name>
+      <message-table-name>MESSAGE_TABLE</message-table-name>
+      <page-store-table-name>MESSAGE_TABLE</page-store-table-name>
+      <large-message-table-name>LARGE_MESSAGES_TABLE</large-message-table-name>
+      <jdbc-driver-class-name>org.apache.derby.jdbc.EmbeddedDriver</jdbc-driver-class-name>
+   </database-store>
+</store>
 ```
 
 -   `jdbc-connection-url`
@@ -469,7 +468,7 @@ To configure Apache ActiveMQ Artemis to use a database for persisting messages a
 
 Note that some DBMS (e.g. Oracle, 30 chars) have restrictions on the size of table names, this should be taken into consideration when configuring table names for the Artemis database store, pay particular attention to the page store table name, which can be appended with a unique ID of up to 20 characters.  (for Oracle this would mean configuring a page-store-table-name of max size of 10 chars).
 
-## Configuring Apache ActiveMQ Artemis for Zero Persistence
+## Zero Persistence
 
 In some situations, zero persistence is sometimes required for a
 messaging system. Configuring Apache ActiveMQ Artemis to perform zero persistence is

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/pre-acknowledge.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/pre-acknowledge.md b/docs/user-manual/en/pre-acknowledge.md
index a4046ea..d328d8b 100644
--- a/docs/user-manual/en/pre-acknowledge.md
+++ b/docs/user-manual/en/pre-acknowledge.md
@@ -48,8 +48,10 @@ to `true`.
 Alternatively, when using the JMS API, create a JMS Session with the
 `ActiveMQSession.PRE_ACKNOWLEDGE` constant.
 
-    // messages will be acknowledge on the server *before* being delivered to the client
-    Session session = connection.createSession(false, ActiveMQJMSConstants.PRE_ACKNOWLEDGE);
+```java
+// messages will be acknowledge on the server *before* being delivered to the client
+Session session = connection.createSession(false, ActiveMQJMSConstants.PRE_ACKNOWLEDGE);
+```
 
 ## Individual Acknowledge
 

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/protocols-interoperability.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/protocols-interoperability.md b/docs/user-manual/en/protocols-interoperability.md
index bbb1ca2..8ce73c4 100644
--- a/docs/user-manual/en/protocols-interoperability.md
+++ b/docs/user-manual/en/protocols-interoperability.md
@@ -26,20 +26,22 @@ protocol on a particular acceptor simply add a url parameter "protocol=AMQP,STOM
 of the parameter is a comma separated list of protocol names.  If the protocol parameter is omitted from the url all
 protocols are enabled.
 
-    <!-- The following example enables only MQTT on port 1883 -->
-    <acceptors>
-       <acceptor>tcp://localhost:1883?protocols=MQTT</acceptor>
-    </acceptors>
-
-    <!-- The following example enables MQTT and AMQP on port 61617 -->
-    <acceptors>
-       <acceptor>tcp://localhost:1883?protocols=MQTT,AMQP</acceptor>
-    </acceptors>
-
-    <!-- The following example enables all protocols on 61616 -->
-    <acceptors>
-       <acceptor>tcp://localhost:61616</acceptor>
-    </acceptors>
+```xml
+<!-- The following example enables only MQTT on port 1883 -->
+<acceptors>
+   <acceptor>tcp://localhost:1883?protocols=MQTT</acceptor>
+</acceptors>
+
+<!-- The following example enables MQTT and AMQP on port 61617 -->
+<acceptors>
+   <acceptor>tcp://localhost:1883?protocols=MQTT,AMQP</acceptor>
+</acceptors>
+
+<!-- The following example enables all protocols on 61616 -->
+<acceptors>
+   <acceptor>tcp://localhost:61616</acceptor>
+</acceptors>
+```
 
 ## AMQP
 
@@ -48,7 +50,9 @@ Apache ActiveMQ Artemis supports the [AMQP
 specification. To enable AMQP you must configure a Netty Acceptor to
 receive AMQP clients, like so:
 
-    <acceptor name="amqp-acceptor">tcp://localhost:5672?protocols=AMQP</acceptor>
+```xml
+<acceptor name="amqp-acceptor">tcp://localhost:5672?protocols=AMQP</acceptor>
+```
 
 
 Apache ActiveMQ Artemis will then accept AMQP 1.0 clients on port 5672 which is the
@@ -135,8 +139,9 @@ Apache ActiveMQ Artemis now supports the
 Apache ActiveMQ 5.x JMS client can talk directly to an Apache ActiveMQ Artemis server. To enable
 OpenWire support you must configure a Netty Acceptor, like so:
 
-    <acceptor name="openwire-acceptor">tcp://localhost:61616?protocols=OPENWIRE</acceptor>
-
+```xml
+<acceptor name="openwire-acceptor">tcp://localhost:61616?protocols=OPENWIRE</acceptor>
+```
 
 The Apache ActiveMQ Artemis server will then listens on port 61616 for incoming
 openwire commands. Please note the "protocols" is not mandatory here.
@@ -219,7 +224,9 @@ For example, the default 5.x virtual topic with consumer prefix of ```Consumer.*
 the url significant characters ```>;``` are escaped with their hex code points. 
 In an acceptor url it would be:
 
-     <acceptor name="artemis">tcp://127.0.0.1:61616?protocols=OPENWIRE;virtualTopicConsumerWildcards=Consumer.*.%3E%3B2</acceptor>
+```xml
+<acceptor name="artemis">tcp://127.0.0.1:61616?protocols=OPENWIRE;virtualTopicConsumerWildcards=Consumer.*.%3E%3B2</acceptor>
+```
 
 This will translate ```Consumer.A.VirtualTopic.Orders``` into a FQQN of ```VirtualTopic.Orders::Consumer.A``` using the
 int component ```2``` of the configuration to identify the consumer queue as the first two paths of the destination.
@@ -339,7 +346,9 @@ Apache ActiveMQ Artemis provides native support for Stomp. To be able to send an
 receive Stomp messages, you must configure a `NettyAcceptor` with a
 `protocols` parameter set to have `stomp`:
 
-    <acceptor name="stomp-acceptor">tcp://localhost:61613?protocols=STOMP</acceptor>
+```xml
+<acceptor name="stomp-acceptor">tcp://localhost:61613?protocols=STOMP</acceptor>
+```
 
 With this configuration, Apache ActiveMQ Artemis will accept Stomp connections on the
 port `61613` (which is the default port of the Stomp brokers).
@@ -425,7 +434,9 @@ configure your stomp acceptor with the "connectionTtl" property, which
 is used to set the ttl for connections that are created from that acceptor.
 For example:
 
-    <acceptor name="stomp-acceptor">tcp://localhost:61613?protocols=STOMP;connectionTtl=20000</acceptor>
+```xml
+<acceptor name="stomp-acceptor">tcp://localhost:61613?protocols=STOMP;connectionTtl=20000</acceptor>
+```
 
 The above configuration will make sure that any Stomp connection that is
 created from that acceptor and does not include a `heart-beat` header
@@ -550,19 +561,19 @@ the queue used for the durable subscription in a deterministic way (i.e. using t
 subscription on the address `myAddress` with a client-id of `myclientid` and a subscription
 name of `mysubscription` then configure the durable subscription:
 
-~~~
-   <core xmlns="urn:activemq:core">
-      ...
-      <addresses>
-         <address name="myAddress">
-            <multicast>
-               <queue name="myclientid.mysubscription"/>
-            </multicast>
-         </address>
-      </addresses>
-      ...
-   </core>
-~~~
+```xml
+<core xmlns="urn:activemq:core">
+   ...
+   <addresses>
+      <address name="myAddress">
+         <multicast>
+            <queue name="myclientid.mysubscription"/>
+         </multicast>
+      </address>
+   </addresses>
+   ...
+</core>
+```
 
 ### Handling of Large Messages with Stomp
 
@@ -572,7 +583,9 @@ prevent this situation from happening, Apache ActiveMQ Artemis provides a stomp
 configuration attribute `stompMinLargeMessageSize`. This attribute
 can be configured inside a stomp acceptor, as a parameter. For example:
 
-       <acceptor name="stomp-acceptor">tcp://localhost:61613?protocols=STOMP;stompMinLargeMessageSize=10240</acceptor>
+```xml
+<acceptor name="stomp-acceptor">tcp://localhost:61613?protocols=STOMP;stompMinLargeMessageSize=10240</acceptor>
+```
 
 The type of this attribute is integer. When this attributed is
 configured, Apache ActiveMQ Artemis server will check the size of the body of each
@@ -596,7 +609,9 @@ support Web Sockets can send and receive Stomp messages from Apache ActiveMQ Art
 
 Stomp over Web Sockets is supported via the normal Stomp acceptor:
 
-    <acceptor name="stomp-ws-acceptor">tcp://localhost:61614?protocols=STOMP</acceptor>
+```xml
+<acceptor name="stomp-ws-acceptor">tcp://localhost:61614?protocols=STOMP</acceptor>
+```
 
 With this configuration, Apache ActiveMQ Artemis will accept Stomp connections over Web
 Sockets on the port `61614`. Web browser can

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/resource-limits.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/resource-limits.md b/docs/user-manual/en/resource-limits.md
index 443838f..7939dc7 100644
--- a/docs/user-manual/en/resource-limits.md
+++ b/docs/user-manual/en/resource-limits.md
@@ -10,12 +10,14 @@ configure such limits.
 
 Here is an example of the XML used to set resource limits:
 
-    <resource-limit-settings>
-       <resource-limit-setting match="myUser">
-          <max-connections>5</max-connections>
-          <max-queues>3</max-queues>
-       </resource-limit-setting>
-    </resource-limit-settings>
+```xml
+<resource-limit-settings>
+   <resource-limit-setting match="myUser">
+      <max-connections>5</max-connections>
+      <max-queues>3</max-queues>
+   </resource-limit-setting>
+</resource-limit-settings>
+```
 
 Unlike the `match` from `address-setting`, this `match` does not use
 any wild-card syntax. It's a simple 1:1 mapping of the limits to a user.

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/scheduled-messages.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/scheduled-messages.md b/docs/user-manual/en/scheduled-messages.md
index b7c2d7e..6dff58a 100644
--- a/docs/user-manual/en/scheduled-messages.md
+++ b/docs/user-manual/en/scheduled-messages.md
@@ -15,7 +15,7 @@ The specified value must be a positive `long` corresponding to the time
 the message must be delivered (in milliseconds). An example of sending a
 scheduled message using the JMS API is as follows.
 
-``` java
+```java
 TextMessage message = session.createTextMessage("This is a scheduled message message which will be delivered in 5 sec.");
 message.setLongProperty("_AMQ_SCHED_DELIVERY", System.currentTimeMillis() + 5000);
 producer.send(message);

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/security.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/security.md b/docs/user-manual/en/security.md
index 82b062d..8bbcb38 100644
--- a/docs/user-manual/en/security.md
+++ b/docs/user-manual/en/security.md
@@ -811,7 +811,7 @@ For example, if a class full name is "org.apache.pkg1.Class1", some matching ent
 
 A `*` means 'match-all' in a black or white list.
 
-### Specifying black list and white list via Connection Factories
+### Config via Connection Factories
 
 To specify the white and black lists one can use the URL parameters
 `deserializationBlackList` and `deserializationWhiteList`. For example,
@@ -823,7 +823,7 @@ The above statement creates a factory that has a black list contains two
 forbidden packages, "org.apache.pkg1" and "org.some.pkg2", separated by a
 comma.
 
-### Specifying black list and white list via system properties
+### Config via system properties
 
 There are two system properties available for specifying black list and white list:
 
@@ -833,7 +833,7 @@ There are two system properties available for specifying black list and white li
 Once defined, all JMS object message deserialization in the VM is subject to checks against the two lists. However if you create a ConnectionFactory
 and set a new set of black/white lists on it, the new values will override the system properties.
 
-### Specifying black list and white list for resource adapters
+### Config for resource adapters
 
 Message beans using a JMS resource adapter to receive messages can also control their object deserialization via properly configuring relevant
 properties for their resource adapters. There are two properties that you can configure with connection factories in a resource adapter:
@@ -843,7 +843,7 @@ properties for their resource adapters. There are two properties that you can co
 
 These properties, once specified, are eventually set on the corresponding internal factories.
 
-### Specifying black list and white list for REST interface
+### Config for REST interface
 
 Apache Artemis REST interface ([Rest](rest.md)) allows interactions between jms client and rest clients.
 It uses JMS ObjectMessage to wrap the actual user data between the 2 types of clients and deserialization

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/send-guarantees.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/send-guarantees.md b/docs/user-manual/en/send-guarantees.md
index dc08ea1..79b9097 100644
--- a/docs/user-manual/en/send-guarantees.md
+++ b/docs/user-manual/en/send-guarantees.md
@@ -1,6 +1,6 @@
-# Guarantees of sends and commits
+# Guarantees of Sends and Commits
 
-## Guarantees of Transaction Completion
+## Transaction Completion
 
 When committing or rolling back a transaction with Apache ActiveMQ Artemis, the request
 to commit or rollback is sent to the server, and the call will block on
@@ -24,7 +24,7 @@ of some loss of transaction durability.
 
 This parameter is set in `broker.xml`
 
-## Guarantees of Non Transactional Message Sends
+## Non Transactional Message Sends
 
 If you are sending messages to a server using a non transacted session,
 Apache ActiveMQ Artemis can be configured to block the call to send until the message
@@ -61,7 +61,7 @@ send a response back to the client until the message has been persisted
 and the server has a guarantee that the data has been persisted to disk.
 The default value for this parameter is `true`.
 
-## Guarantees of Non Transactional Acknowledgements
+## Non Transactional Acknowledgements
 
 If you are acknowledging the delivery of a message at the client side
 using a non transacted session, Apache ActiveMQ Artemis can be configured to block the
@@ -114,8 +114,6 @@ The window size for send acknowledgements is determined by the
 confirmation-window-size parameter on the connection factory or client
 session factory. Please see [Client Reconnection and Session Reattachment](client-reconnection.md) for more info on this.
 
-# Asynchronous Send Acknowledgements
-
 To use the feature using the core API, you implement the interface
 `org.apache.activemq.artemis.api.core.client.SendAcknowledgementHandler` and set
 a handler instance on your `ClientSession`.

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/slow-consumers.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/slow-consumers.md b/docs/user-manual/en/slow-consumers.md
index afca530..49d5141 100644
--- a/docs/user-manual/en/slow-consumers.md
+++ b/docs/user-manual/en/slow-consumers.md
@@ -12,7 +12,7 @@ non-durable JMS subscriber would allow the broker to remove the
 subscription and all of its messages freeing up valuable server
 resources.
 
-## Configuration required for detecting slow consumers
+## Required Configuration
 
 By default the server will not detect slow consumers. If slow consumer
 detection is desired then see [address model chapter](address-model.md)

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/spring-integration.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/spring-integration.md b/docs/user-manual/en/spring-integration.md
index 718ecf6..9c7c939 100644
--- a/docs/user-manual/en/spring-integration.md
+++ b/docs/user-manual/en/spring-integration.md
@@ -13,21 +13,23 @@ automatically populate the Spring context with references to those beans
 so that you can use them. Below is an example Spring JMS bean file
 taking advantage of this feature:
 
-    <beans xmlns="http://www.springframework.org/schema/beans"
-        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-        xsi:schemaLocation="http://www.springframework.org/schema/beans
-            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
+```xml
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+                           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 
-       <bean id="EmbeddedJms" class="org.apache.activemq.integration.spring.SpringJmsBootstrap" init-method="start"/>
+   <bean id="EmbeddedJms" class="org.apache.activemq.integration.spring.SpringJmsBootstrap" init-method="start"/>
 
-       <bean id="listener" class="org.apache.activemq.tests.integration.spring.ExampleListener"/>
+   <bean id="listener" class="org.apache.activemq.tests.integration.spring.ExampleListener"/>
 
-       <bean id="listenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
-          <property name="connectionFactory" ref="ConnectionFactory"/>
-          <property name="destination" ref="/queue/exampleQueue"/>
-          <property name="messageListener" ref="listener"/>
-       </bean>
-    </beans>
+   <bean id="listenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
+      <property name="connectionFactory" ref="ConnectionFactory"/>
+      <property name="destination" ref="/queue/exampleQueue"/>
+      <property name="messageListener" ref="listener"/>
+   </bean>
+</beans>
+```
 
 As you can see, the `listenerContainer` bean references the components
 defined in the `activemq-jms.xml` file. The `SpringJmsBootstrap` class

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/syntax.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/syntax.md b/docs/user-manual/en/syntax.md
index 6e81a34..71db615 100644
--- a/docs/user-manual/en/syntax.md
+++ b/docs/user-manual/en/syntax.md
@@ -3,10 +3,12 @@
 ### Header 3     
 #### Header 4
 
-    <xml>somexml</xml>
+```xml
+<xml>somexml</xml>
+```
     
-``` java
- Somejava s = new SomeJava();
+```java
+Somejava s = new SomeJava();
 ```
  
 > **Note**

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/tomcat.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/tomcat.md b/docs/user-manual/en/tomcat.md
index ac6befa..f41e087 100644
--- a/docs/user-manual/en/tomcat.md
+++ b/docs/user-manual/en/tomcat.md
@@ -1,15 +1,15 @@
-# Apache ActiveMQ Artemis - Apache Tomcat Support
+# Apache Tomcat Support
 
 
-##Apache Tomcat resource context client configuration
+## Resource Context Client Configuration
 
 Apache ActiveMQ Artemis provides support for configuring the client, in the tomcat resource context.xml of Tomcat container.
 
 This is very similar to the way this is done in ActiveMQ 5.x so anyone migrating should find this familiar.
 Please note though the connection url and properties that can be set for ActiveMQ Artemis are different please see [Migration Documentation](https://activemq.apache.org/artemis/migration/)
 
-#### Example of Connection Factory
-````
+### Example of Connection Factory
+```xml
 <Context>
     ...
   <Resource name="jms/ConnectionFactory" auth="Container" type="org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory" description="JMS Connection Factory"
@@ -18,9 +18,9 @@ Please note though the connection url and properties that can be set for ActiveM
 </Context>
 ````
 
-#### Example of Destination (Queue and Topic)
+### Example of Destination (Queue and Topic)
 
-````
+```xml
 <Context>
   ...
   <Resource name="jms/ExampleQueue" auth="Container" type="org.apache.activemq.artemis.jms.client.ActiveMQQueue" description="JMS Queue"
@@ -32,8 +32,8 @@ Please note though the connection url and properties that can be set for ActiveM
 </Context>
 ````
 
-#### Example Tomcat App
+## Example Tomcat App
 
-A sample tomcat app with the container context configured as an example can be seen here: 
+A sample Tomcat app with the container context configured as an example can be seen here: 
 
 /examples/features/sub-modules/tomcat
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/tools.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/tools.md b/docs/user-manual/en/tools.md
index 8ea57ea..4a6aa0d 100644
--- a/docs/user-manual/en/tools.md
+++ b/docs/user-manual/en/tools.md
@@ -1,12 +1,9 @@
 # Tools
 
-
 You can use the artemis cli interface to execute data maintenance tools:
 
-
 This is a list of sub-commands available
 
-
 Name | Description
 :--- | :---
 exp     | Export the message data using a special and independent XML format
@@ -15,9 +12,6 @@ data     | Prints a report about journal records and summary of existent records
 encode | shows an internal format of the journal encoded to String
 decode | imports the internal journal format from encode
 
-
-
-
 You can use the help at the tool for more information on how to execute each of the tools. For example:
 
 ```
@@ -219,6 +213,4 @@ COMMANDS
 
             With --bindings option, The folder used for bindings (default from
             broker.xml)
-
-
 ```
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/undelivered-messages.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/undelivered-messages.md b/docs/user-manual/en/undelivered-messages.md
index 275ab44..6156c8f 100644
--- a/docs/user-manual/en/undelivered-messages.md
+++ b/docs/user-manual/en/undelivered-messages.md
@@ -35,16 +35,17 @@ consuming valuable CPU and network resources.
 
 Delayed redelivery is defined in the address-setting configuration:
 
-    <!-- delay redelivery of messages for 5s -->
-    <address-setting match="exampleQueue">
-    <!-- default is 1.0 -->
-    <redelivery-delay-multiplier>1.5</redelivery-delay-multiplier>
-    <!-- default is 0 (no delay) -->
-    <redelivery-delay>5000</redelivery-delay>
-    <!-- default is redelivery-delay * 10 -->
-    <max-redelivery-delay>50000</max-redelivery-delay>
-
-    </address-setting>
+```xml
+<!-- delay redelivery of messages for 5s -->
+<address-setting match="exampleQueue">
+   <!-- default is 1.0 -->
+   <redelivery-delay-multiplier>1.5</redelivery-delay-multiplier>
+   <!-- default is 0 (no delay) -->
+   <redelivery-delay>5000</redelivery-delay>
+   <!-- default is redelivery-delay * 10 -->
+   <max-redelivery-delay>50000</max-redelivery-delay>
+</address-setting>
+```
 
 If a `redelivery-delay` is specified, Apache ActiveMQ Artemis will wait this delay
 before redelivering the messages.
@@ -102,12 +103,14 @@ from the dead letter address for further inspection.
 
 Dead letter address is defined in the address-setting configuration:
 
-    <!-- undelivered messages in exampleQueue will be sent to the dead letter address
-    deadLetterQueue after 3 unsuccessful delivery attempts -->
-    <address-setting match="exampleQueue">
-    <dead-letter-address>deadLetterQueue</dead-letter-address>
-    <max-delivery-attempts>3</max-delivery-attempts>
-    </address-setting>
+```xml
+<!-- undelivered messages in exampleQueue will be sent to the dead letter address
+deadLetterQueue after 3 unsuccessful delivery attempts -->
+<address-setting match="exampleQueue">
+   <dead-letter-address>deadLetterQueue</dead-letter-address>
+   <max-delivery-attempts>3</max-delivery-attempts>
+</address-setting>
+```
 
 If a `dead-letter-address` is not specified, messages will removed after
 `max-delivery-attempts` unsuccessful attempts.
@@ -167,4 +170,6 @@ due to performance implications.
 To enable it, set `persist-delivery-count-before-delivery` to `true` in
 `broker.xml`:
 
-    <persist-delivery-count-before-delivery>true</persist-delivery-count-before-delivery>
+```xml
+<persist-delivery-count-before-delivery>true</persist-delivery-count-before-delivery>
+```

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/upgrading.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/upgrading.md b/docs/user-manual/en/upgrading.md
index 2121c26..e564f49 100644
--- a/docs/user-manual/en/upgrading.md
+++ b/docs/user-manual/en/upgrading.md
@@ -17,9 +17,12 @@ To create an Artemis broker instance navigate into the Artemis home folder and r
 > downloaded. This separation allows you run multiple broker instances with the same
 > Artemis "home" for example. It also simplifies updating to newer versions of Artemis.
 
-Because of this separation it's very easy to upgrade Artemis in most cases. Upgrading
-may require some specific steps noted in the [versions](versions.md), but the general 
-process is as follows:
+Because of this separation it's very easy to upgrade Artemis in most cases. 
+
+## General Upgrade Procedure
+
+Upgrading may require some specific steps noted in the [versions](versions.md), but the 
+general process is as follows:
 
 1. Navigate to the `etc` folder of the broker instance that's being upgraded
 1. Open `artemis.profile` (`artemis.profile.cmd` on Windows). It contains a property 

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/using-core.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/using-core.md b/docs/user-manual/en/using-core.md
index e256e5e..78c08a5 100644
--- a/docs/user-manual/en/using-core.md
+++ b/docs/user-manual/en/using-core.md
@@ -174,7 +174,7 @@ receive a message. Logically it's comprised of two sections: firstly
 setting up the producer to write a message to an *addresss*, and
 secondly, creating a *queue* for the consumer, creating the consumer and
 *starting* it.
-``` java
+```java
 ServerLocator locator = ActiveMQClient.createServerLocatorWithoutHA(new TransportConfiguration(
                                            InVMConnectorFactory.class.getName()));
 

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/using-jms.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/using-jms.md b/docs/user-manual/en/using-jms.md
index f251658..bf654b9 100644
--- a/docs/user-manual/en/using-jms.md
+++ b/docs/user-manual/en/using-jms.md
@@ -19,8 +19,7 @@ server for JMS and creating a simple JMS program. We'll also show how to
 configure and use JNDI, and also how to use JMS with Apache ActiveMQ Artemis without
 using any JNDI.
 
-A simple ordering system
-========================
+## A simple ordering system
 
 For this chapter we're going to use a very simple ordering system as our
 example. It is a somewhat contrived example because of its extreme
@@ -36,8 +35,7 @@ restart or crash. We also want to pre-deploy the queue, i.e. specify the
 queue in the server configuration so it is created automatically
 without us having to explicitly create it from the client.
 
-JNDI Configuration
-==================
+## JNDI Configuration
 
 The JMS specification establishes the convention that *administered
 objects* (i.e. JMS queue, topic and connection factory instances) are
@@ -57,8 +55,7 @@ kinds of administered objects and how to configure them.
 > to an application server (e.g. Wildfly) the application server itself
 > will almost certainly provide a JNDI client with its own properties.
 
-ConnectionFactory JNDI
-----------------------
+### ConnectionFactory JNDI
 
 A JMS connection factory is used by the client to make connections to
 the server. It knows the location of the server it is connecting to, as
@@ -206,7 +203,9 @@ The property *value* should be the name of the queue hosted by the
 Apache ActiveMQ Artemis server. For example, if the server had a JMS queue configured
 like so:
 
-    <queue name="OrderQueue"/>
+```xml
+<queue name="OrderQueue"/>
+```
 
 And if the client wanted to bind this queue to "queues/OrderQueue" then
 the JNDI properties would be configured like so:
@@ -231,7 +230,7 @@ First we'll create a JNDI initial context from which to lookup our JMS
 objects. If the above properties are set in `jndi.properties` and it is
 on the classpath then any new, empty `InitialContext` will be
 initialized using those properties:
-``` java
+```java
 InitialContext ic = new InitialContext();
 
 //Now we'll look up the connection factory from which we can create
@@ -289,7 +288,7 @@ see the examples directory in the distribution.
 > your application will perform very poorly. This is discussed further
 > in the section on performance tuning [Performance Tuning](perf-tuning.md).
 
-### Directly instantiating JMS Resources without using JNDI
+## Directly instantiating JMS Resources without using JNDI
 
 Although it is a very common JMS usage pattern to lookup JMS
 *Administered Objects* (that's JMS Queue, Topic and ConnectionFactory
@@ -311,7 +310,7 @@ Utility class, note we need to provide connection parameters and specify
 which transport we are using, for more information on connectors please
 see [Configuring the Transport](configuring-transports.md).
 
-``` java
+```java
 TransportConfiguration transportConfiguration = new TransportConfiguration(NettyConnectorFactory.class.getName());
 
 ConnectionFactory cf = ActiveMQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.CF,transportConfiguration);
@@ -354,7 +353,7 @@ TextMessage receivedMessage = (TextMessage)consumer.receive();
 System.out.println("Got order: " + receivedMessage.getText());
 ```
 
-### Setting The Client ID
+## Setting The Client ID
 
 This represents the client id for a JMS client and is needed for
 creating durable subscriptions. It is possible to configure this on the
@@ -362,7 +361,7 @@ connection factory and can be set via the `clientId` element. Any
 connection created by this connection factory will have this set as its
 client id.
 
-### Setting The Batch Size for DUPS_OK
+## Setting The Batch Size for DUPS_OK
 
 When the JMS acknowledge mode is set to `DUPS_OK` it is possible to
 configure the consumer so that it sends acknowledgements in batches
@@ -370,7 +369,7 @@ rather that one at a time, saving valuable bandwidth. This can be
 configured via the connection factory via the `dupsOkBatchSize`
 element and is set in bytes. The default is 1024 \* 1024 bytes = 1 MiB.
 
-### Setting The Transaction Batch Size
+## Setting The Transaction Batch Size
 
 When receiving messages in a transaction it is possible to configure the
 consumer to send acknowledgements in batches rather than individually
@@ -378,7 +377,7 @@ saving valuable bandwidth. This can be configured on the connection
 factory via the `transactionBatchSize` element and is set in bytes.
 The default is 1024 \* 1024.
 
-### Setting The Destination Cache
+## Setting The Destination Cache
 
 Many frameworks such as Spring resolve the destination by name on every operation,
 this can cause a performance issue and extra calls to the broker, 

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/using-server.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/using-server.md b/docs/user-manual/en/using-server.md
index 691d73e..dea7693 100644
--- a/docs/user-manual/en/using-server.md
+++ b/docs/user-manual/en/using-server.md
@@ -12,44 +12,44 @@ with a JMS Service enabled.
 This document will refer to the full path of the directory where the ActiveMQ
 distribution has been extracted to as `${ARTEMIS_HOME}` directory.
 
-Installation
-============
+## Installation
 
 After downloading the distribution, the following highlights some important folders on the distribution:
 
              |___ bin
              |
-             |___ web
-             |      |___ user-manual
-             |      |___ api
-             |
              |___ examples
-             |      |___ core
-             |      |___ javaee
-             |      |___ jms
+             |      |___ common
+             |      |___ features
+             |      |___ perf
+             |      |___ protocols
              |
              |___ lib
+             |      |___ client
              |
              |___ schema
+             |
+             |___ web
+                    |___ api
+                    |___ hacking-guide
+                    |___ migration-guide
+                    |___ user-manual
 
 
--   `bin` -- binaries and scripts needed to run ActiveMQ Artemis.
-
--   `web` -- The folder where the web context is loaded when ActiveMQ Artemis runs.
+-   `bin` - binaries and scripts needed to run ActiveMQ Artemis.
 
--   `user-manual` -- The user manual is placed under the web folder.
+-   `examples` - All manner of examples. Please refer to the [examples](examples.md)
+    chapter for details on how to run them.
 
--   `api` -- The api documentation is placed under the web folder
+-   `lib` - jars and libraries needed to run ActiveMQ Artemis
 
--   `examples` -- JMS and Java EE examples. Please refer to the 'running
-    examples' chapter for details on how to run them.
+-   `schema` - XML Schemas used to validate ActiveMQ Artemis configuration files
 
--   `lib` -- jars and libraries needed to run ActiveMQ Artemis
+-   `web` - The folder where the web context is loaded when the broker runs.
 
--   `licenses` -- licenses for ActiveMQ Artemis
+-   `api` - The api documentation is placed under the web folder.
 
--   `schemas` -- XML Schemas used to validate ActiveMQ Artemis configuration
-    files
+-   `user-manual` - The user manual is placed under the web folder.
 
 
 ## Creating a Broker Instance
@@ -77,7 +77,7 @@ A broker instance directory will contain the following sub directories:
 At this point you may want to adjust the default configuration located in
 the `etc` directory.
 
-###Options
+### Options
 There are several options you can use when creating an instance.
 
 For a full list of updated properties always use:
@@ -320,7 +320,7 @@ Some of these properties may be mandatory in certain configurations and the syst
 ```
 
 
-### Starting and Stopping a Broker Instance
+## Starting and Stopping a Broker Instance
 
 Assuming you created the broker instance under `/var/lib/mybroker` all you need
 to do start running the broker instance is execute:
@@ -359,22 +359,6 @@ would for any Java program.
 If you wish to add any more JVM arguments or tune the existing ones, the
 run scripts are the place to do it.
 
-## Pre-configured Options
-
-The distribution contains several standard configuration sets for
-running:
-
--   Non clustered stand-alone.
-
--   Clustered stand-alone
-
--   Replicated stand-alone
-
--   Shared-store stand-alone
-
-You can of course create your own configuration and specify any
-configuration when running the run script.
-
 ## Library Path
 
 If you're using the [Asynchronous IO Journal](libaio.md) on Linux,
@@ -419,27 +403,40 @@ respectively. It is also possible to not supply a default. i.e.
 `${activemq.remoting.netty.host}`, however the system property *must* be
 supplied in that case.
 
-## Bootstrap File
+### Bootstrap configuration file
 
 The stand-alone server is basically a set of POJOs which are
 instantiated by Airline commands.
 
 The bootstrap file is very simple. Let's take a look at an example:
 
-    <broker xmlns="http://activemq.org/schema">
+```xml
+<broker xmlns="http://activemq.org/schema">
 
-       <file:core configuration="${activemq.home}/config/stand-alone/non-clustered/broker.xml"></core>
+   <jaas-security domain="activemq"/>
 
-       <basic-security/>
+   <server configuration="file:/path/to/broker.xml"/>
+
+   <web bind="http://localhost:8161" path="web">
+       <app url="activemq-branding" war="activemq-branding.war"/>
+       <app url="artemis-plugin" war="artemis-plugin.war"/>
+       <app url="console" war="console.war"/>
+   </web>
+</broker>
+```
 
-    </broker>
 
--   core - Instantiates a core server using the configuration file from the
+-   `server` - Instantiates a core server using the configuration file from the
     `configuration` attribute. This is the main broker POJO necessary to
-    do all the real messaging work.  In addition all JMS objects such as:
-    Queues, Topics and ConnectionFactory instances are configured here.
+    do all the real messaging work.
+
+-   `jaas-security` - Configures security for the server. The `domain` attribute
+    refers to the relevant login module entry in `login.config`.
+
+-   `web` - Configures an embedded Jetty instance to serve web applications like
+    the admin console.
 
-## The main configuration file.
+### Broker configuration file
 
 The configuration for the Apache ActiveMQ Artemis core server is contained in
 `broker.xml`. This is what the FileConfiguration bean
@@ -452,8 +449,7 @@ is a valid configuration file. The different configuration will be
 explained throughout the manual or you can refer to the configuration
 reference [here](configuration-index.md).
 
-Windows Server
-==============
+## Windows Server
 
 On windows you will have the option to run ActiveMQ Artemis as a service.
 Just use the following command to install it:

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/versions.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/versions.md b/docs/user-manual/en/versions.md
index 6b8b02b..84bcd50 100644
--- a/docs/user-manual/en/versions.md
+++ b/docs/user-manual/en/versions.md
@@ -13,13 +13,13 @@ This chapter provides the information for each release:
 [Full release notes](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315920&version=12342127).
 
 Highlights:
-- [Exclusive consumers](address-model.md).
+- [Exclusive consumers](exclusive-queues.md).
 - Equivalent ActiveMQ 5.x Virtual Topic naming abilities.
 - SSL Certificate revocation list.
 - [Last-value queue](last-value-queues.md) support for OpenWire.
 - Support [masked passwords](masking-passwords.md) in bootstrap.xm and login.config
-- Configurable [broker plugin](broker-plugins.md) implementation for logging various broker events (i.e. `LoggingActiveMQServerPlugin`).
-- Option to use OpenSSL provider for Netty.
+- Configurable [broker plugin](broker-plugins.md#using-the-loggingactivemqserverplugin) implementation for logging various broker events (i.e. `LoggingActiveMQServerPlugin`).
+- Option to use OpenSSL provider for Netty via the [`sslProvider`](configuring-transports.md#configuring-netty-ssl) URL parameter.
 - Enable [splitting of broker.xml into multiple files](configuration-index.md).
 - Enhanced message count and size metrics for queues.
 
@@ -28,8 +28,8 @@ Highlights:
 [Full release notes](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315920&version=12341540).
 
 Highlights:
-- [JMX configuration via XML](management.md) rather than having to use system properties via command line or start script.
-- Configuration of [max frame payload length for STOMP web-socket](protocols-interoperability.md).
+- [JMX configuration via XML](management.md#role-based-authorisation-for-jmx) rather than having to use system properties via command line or start script.
+- Configuration of [max frame payload length for STOMP web-socket](protocols-interoperability.md#stomp-over-web-sockets).
 - Ability to configure HA using JDBC persistence.
 - Implement [role-based access control for management objects](management.md).
 
@@ -60,7 +60,7 @@ Highlights:
 Highlights:
 - [Web admin console](management-console.md)!
 - [Critical Analysis](critical-analysis.md) and deadlock detection on broker
-- Support [Netty native kqueue](configuring-transports.md) on Mac.
+- Support [Netty native kqueue](configuring-transports.md#macos-native-transport) on Mac.
 - [Last-value queue](last-value-queues.md) for AMQP
 
 #### Upgrading from 2.2.0
@@ -78,8 +78,8 @@ Highlights:
 Highlights:
 - Scheduled messages with the STOMP protocol.
 - Support for JNDIReferenceFactory and JNDIStorable.
-- Ability to delete queues and addresses when broker.xml changes.
-- Client authentication via Kerberos TLS Cipher Suites (RFC 2712).
+- Ability to delete queues and addresses when [broker.xml changes](config-reload.md).
+- [Client authentication via Kerberos TLS Cipher Suites (RFC 2712)](security.md#kerberos-authentication).
 
 
 ## 2.1.0
@@ -88,7 +88,7 @@ Highlights:
 
 Highlights:
 - [Broker plugin support](broker-plugins.md).
-- Support [Netty native epoll](configuring-transports.md) on Linux.
+- Support [Netty native epoll](configuring-transports.md#linux-native-transport) on Linux.
 - Ability to configure arbitrary security role mappings.
 - AMQP performance improvements.
 
@@ -103,7 +103,7 @@ Highlights:
   - Support for additional messaging use-cases.
   - Eliminates confusing JMS-specific queue naming conventions (i.e. "jms.queue." & "jms.topic." prefixes).
 - Pure encoding of messages so protocols like AMQP don't need to convert messages to "core" format unless absolutely necessary.
-- ["MAPPED" journal type](persistence.md) for increased performance in certain use-cases.
+- ["MAPPED" journal type](persistence.md#memory-mapped) for increased performance in certain use-cases.
 
 
 ## 1.5.6

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/wildcard-routing.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/wildcard-routing.md b/docs/user-manual/en/wildcard-routing.md
index 12facd0..96540f3 100644
--- a/docs/user-manual/en/wildcard-routing.md
+++ b/docs/user-manual/en/wildcard-routing.md
@@ -14,9 +14,11 @@ messages which are sent to a *hierarchy* of addresses.
 
 This functionality is enabled by default. To turn it off add the following to the `broker.xml` configuration.
 
-      <wildcard-addresses>
-        <routing-enabled>false</routing-enabled>
-      </wildcard-addresses>
+```xml
+<wildcard-addresses>
+   <routing-enabled>false</routing-enabled>
+</wildcard-addresses>
+```
 
 For more information on the wild card syntax and how to configure it, take a look at [wildcard syntax](wildcard-syntax.md) chapter,
 also see the topic hierarchy example in the [examples](examples.md).

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/86c9e726/docs/user-manual/en/wildcard-syntax.md
----------------------------------------------------------------------
diff --git a/docs/user-manual/en/wildcard-syntax.md b/docs/user-manual/en/wildcard-syntax.md
index 2d5451d..cc566a4 100644
--- a/docs/user-manual/en/wildcard-syntax.md
+++ b/docs/user-manual/en/wildcard-syntax.md
@@ -1,4 +1,4 @@
-# Understanding the Apache ActiveMQ Artemis Wildcard Syntax
+# Wildcard Syntax
 
 Apache ActiveMQ Artemis uses a specific syntax for representing wildcards in security
 settings, address settings and when creating consumers.
@@ -26,16 +26,18 @@ The wildcard 'news.\*' would match 'news.europe', but not
 The wildcard 'news.\*.sport' would match 'news.europe.sport' and also
 'news.usa.sport', but not 'news.europe.politics'.
 
-## Configuring Wildcard syntax
+## Customizing the Syntax
 
 It's possible to further configure the syntax of the wildcard addresses using the broker configuration. 
 For that, the `<wildcard-addresses>` configuration tag is used.
 
-      <wildcard-addresses>
-        <routing-enabled>true</routing-enabled>
-        <delimiter>.</delimiter>
-        <any-words>#</any-words>
-        <single-word>*</single-word>
-      </wildcard-addresses>
+```xml
+<wildcard-addresses>
+   <routing-enabled>true</routing-enabled>
+   <delimiter>.</delimiter>
+   <any-words>#</any-words>
+   <single-word>*</single-word>
+</wildcard-addresses>
+```
 
 The example above shows the default configuration.
\ No newline at end of file