You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by bh...@apache.org on 2019/10/21 18:03:58 UTC

[qpid-dispatch] branch master updated: NO-JIRA - Update doc dir organization and remove obsolete files. This closes #585.

This is an automated email from the ASF dual-hosted git repository.

bhardesty pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git


The following commit(s) were added to refs/heads/master by this push:
     new 413bc76  NO-JIRA - Update doc dir organization and remove obsolete files. This closes #585.
413bc76 is described below

commit 413bc765f00a897ba314f4ac44e4b0656a694824
Author: Ben Hardesty <bh...@redhat.com>
AuthorDate: Thu Oct 10 12:03:21 2019 -0400

    NO-JIRA - Update doc dir organization and remove obsolete files. This closes #585.
---
 docs/books/CMakeLists.txt                          |   3 +-
 .../configuring-network-connections.adoc           |   8 +-
 .../user-guide}/configuring-router.adoc            |   4 +-
 .../creating-router-network-topology.adoc          |   6 +-
 .../user-guide}/getting-started.adoc               |  10 +-
 .../user-guide}/important-terms-concepts.adoc      |  10 +-
 .../user-guide}/overview.adoc                      |   6 +-
 .../user-guide}/planning-router-network.adoc       |   4 +-
 .../securing-incoming-client-connections.adoc      |  16 +-
 .../user-guide}/securing-network-connections.adoc  |   8 +-
 .../user-guide}/securing-outgoing-connections.adoc |  12 +-
 docs/books/{_common => common}/attributes.adoc     |   4 +-
 .../{_common => common}/document_conventions.adoc  |   0
 .../fragment-console-prereq.adoc                   |   0
 .../fragment-router-install-intro.adoc             |   0
 .../fragment-router-install-steps.adoc             |   0
 .../fragment-router-open-config-file-step.adoc     |   0
 .../fragment-router-sasl-para.adoc                 |   0
 .../fragment-start-router-service-command.adoc     |   0
 .../fragment-systemd-limitnofile-fmi.adoc          |   0
 docs/books/{_images => images}/01-peer-to-peer.png | Bin
 .../books/{_images => images}/balanced-routing.png | Bin
 .../{_images => images}/brokered-messaging.png     | Bin
 docs/books/{_images => images}/closest-routing.png | Bin
 docs/books/{_images => images}/console1.png        | Bin
 docs/books/{_images => images}/console_charts.png  | Bin
 docs/books/{_images => images}/console_entity.png  | Bin
 docs/books/{_images => images}/console_login.png   | Bin
 .../books/{_images => images}/console_overview.png | Bin
 docs/books/{_images => images}/console_schema.png  | Bin
 .../books/{_images => images}/console_topology.png | Bin
 docs/books/{_images => images}/link-routing.png    | Bin
 docs/books/{_images => images}/message-routing.png | Bin
 .../{_images => images}/multicast-routing.png      | Bin
 .../{_images => images}/path-redundancy-01.png     | Bin
 .../{_images => images}/path-redundancy-02.png     | Bin
 .../path-redundancy-temp-decoupling-01.png         | Bin
 .../path-redundancy-temp-decoupling-02.png         | Bin
 .../books/{_images => images}/sharded-queue-01.png | Bin
 .../books/{_images => images}/sharded-queue-02.png | Bin
 .../user-guide}/adding-routers-router-network.adoc |   6 +-
 .../{ => modules}/user-guide/authorization.adoc    |   0
 .../user-guide}/configuring-router-properties.adoc |   0
 ...onnecting-routers-external-amqp-containers.adoc |   0
 .../user-guide}/connecting-routers.adoc            |   0
 ...ecting-using-mutual-ssl-tls-authentication.adoc |   0
 ...cting-using-one-way-ssl-tls-authentication.adoc |   0
 ...ing-using-username-password-authentication.adoc |   0
 .../user-guide}/connection-failover.adoc           |   0
 .../books/{ => modules}/user-guide/cyrus-sasl.adoc |   0
 .../enabling-ssl-tls-client-authentication.adoc    |   2 +-
 .../user-guide}/enabling-ssl-tls-encryption.adoc   |   0
 .../enabling-username-password-authentication.adoc |   0
 .../example-router-network-topologies.adoc         |   0
 .../user-guide}/how-routers-connect-endpoints.adoc |   0
 .../user-guide}/how-routers-route-messages.adoc    |   0
 .../user-guide}/installing-router.adoc             |   0
 .../user-guide}/integrating-with-kerberos.adoc     |   0
 .../user-guide}/key-features.adoc                  |   0
 .../user-guide}/link-routing.adoc                  |   0
 .../user-guide}/listening-client-connections.adoc  |   2 +-
 docs/books/{ => modules}/user-guide/logging.adoc   |   0
 .../user-guide/managing-using-qdmanage.adoc        |   0
 .../user-guide}/message-routing.adoc               |   0
 .../user-guide/monitoring-using-qdstat.adoc        |   0
 .../user-guide}/network-topologies.adoc            |   0
 .../modules => modules/user-guide}/next-steps.adoc |   0
 .../user-guide}/overview-of-amqp.adoc              |   0
 .../{ => modules}/user-guide/reliability.adoc      |   0
 .../router-connection-considerations.adoc          |   0
 .../user-guide}/router-management.adoc             |   0
 .../router-network-security-considerations.adoc    |   0
 .../user-guide}/router-operating-modes.adoc        |   0
 .../user-guide}/router-security.adoc               |   0
 docs/books/{ => modules}/user-guide/routing.adoc   |   2 +-
 .../securing-connections-between-routers.adoc      |   2 +-
 .../user-guide}/sending-test-messages.adoc         |   0
 .../starting-router-getting-started.adoc           |   0
 .../user-guide}/starting-routers.adoc              |   0
 .../user-guide}/supported-standards-protocols.adoc |   0
 .../technical-details-specifications.adoc          |   0
 .../{ => modules}/user-guide/using-console.adoc    |   0
 .../viewing-default-router-configuration-file.adoc |   0
 .../user-guide}/what-routers-are.adoc              |   0
 docs/books/user-guide/_common                      |   1 -
 docs/books/user-guide/_images                      |   1 -
 docs/books/user-guide/assemblies/_common           |   1 -
 docs/books/user-guide/assemblies/modules           |   1 -
 docs/books/user-guide/assemblies/user-guide        |   1 +
 docs/books/user-guide/book.adoc                    |  26 +-
 docs/books/user-guide/common                       |   1 +
 .../user-guide/configuration-connections.adoc      | 125 ------
 docs/books/user-guide/configuration-reference.adoc | 226 -----------
 docs/books/user-guide/configuration-security.adoc  | 442 ---------------------
 docs/books/user-guide/getting-started.adoc         | 156 --------
 docs/books/user-guide/images                       |   1 +
 docs/books/user-guide/introduction.adoc            | 124 ------
 docs/books/user-guide/management-entities.adoc     |  24 --
 docs/books/user-guide/management.adoc              |  26 --
 docs/books/user-guide/modules/_common              |   1 -
 docs/books/user-guide/modules/_images              |   1 -
 docs/books/user-guide/modules/user-guide           |   1 +
 docs/books/user-guide/theory_of_operation.adoc     | 394 ------------------
 .../understand-router-configuration.adoc           | 342 ----------------
 104 files changed, 69 insertions(+), 1931 deletions(-)

diff --git a/docs/books/CMakeLists.txt b/docs/books/CMakeLists.txt
index b30c99d..2f99200 100644
--- a/docs/books/CMakeLists.txt
+++ b/docs/books/CMakeLists.txt
@@ -47,7 +47,7 @@ if (ASCIIDOCTOR_EXE)
   add_custom_command (
     OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/user-guide/index.html
     COMMAND ${ASCIIDOCTOR_EXE} ${CMAKE_CURRENT_SOURCE_DIR}/user-guide/book.adoc -o user-guide/index.html
-    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/user-guide/*.adoc ${CMAKE_CURRENT_SOURCE_DIR}/user-guide/modules/*.adoc ${CMAKE_CURRENT_SOURCE_DIR}/user-guide/assemblies/*.adoc
+    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/user-guide/*.adoc
     )
 
   add_custom_target (books DEPENDS ${books})
@@ -55,4 +55,3 @@ if (ASCIIDOCTOR_EXE)
 else ()
   message (STATUS "AsciiDoctor not found: Not generating books")
 endif ()
-
diff --git a/docs/books/user-guide/assemblies/configuring-network-connections.adoc b/docs/books/assemblies/user-guide/configuring-network-connections.adoc
similarity index 85%
rename from docs/books/user-guide/assemblies/configuring-network-connections.adoc
rename to docs/books/assemblies/user-guide/configuring-network-connections.adoc
index 74a21ed..ef00c70 100644
--- a/docs/books/user-guide/assemblies/configuring-network-connections.adoc
+++ b/docs/books/assemblies/user-guide/configuring-network-connections.adoc
@@ -34,13 +34,13 @@ You can configure the following types of connections:
 `route-container`:: The connection is for a broker or other resource that holds known addresses.
 
 // Connecting routers
-include::modules/connecting-routers.adoc[leveloffset=+1]
+include::../../modules/user-guide/connecting-routers.adoc[leveloffset=+1]
 
 // Listening for client connections
-include::modules/listening-client-connections.adoc[leveloffset=+1]
+include::../../modules/user-guide/listening-client-connections.adoc[leveloffset=+1]
 
 // Creating a connection to an external AMQP container
-include::modules/connecting-routers-external-amqp-containers.adoc[leveloffset=+1]
+include::../../modules/user-guide/connecting-routers-external-amqp-containers.adoc[leveloffset=+1]
 
 // Connection failover
-include::modules/connection-failover.adoc[leveloffset=+1]
+include::../../modules/user-guide/connection-failover.adoc[leveloffset=+1]
diff --git a/docs/books/user-guide/assemblies/configuring-router.adoc b/docs/books/assemblies/user-guide/configuring-router.adoc
similarity index 90%
rename from docs/books/user-guide/assemblies/configuring-router.adoc
rename to docs/books/assemblies/user-guide/configuring-router.adoc
index 25b15a6..0f01526 100644
--- a/docs/books/user-guide/assemblies/configuring-router.adoc
+++ b/docs/books/assemblies/user-guide/configuring-router.adoc
@@ -35,7 +35,7 @@ You can configure the following entities:
 * Logging
 
 // Configuring router properties
-include::modules/configuring-router-properties.adoc[leveloffset=+1]
+include::../../modules/user-guide/configuring-router-properties.adoc[leveloffset=+1]
 
 // Configuring network connections
 include::configuring-network-connections.adoc[leveloffset=+1]
@@ -44,4 +44,4 @@ include::configuring-network-connections.adoc[leveloffset=+1]
 include::securing-network-connections.adoc[leveloffset=+1]
 
 // Authorizing access to messaging resources
-include::../authorization.adoc[leveloffset=+1]
+include::../../modules/user-guide/authorization.adoc[leveloffset=+1]
diff --git a/docs/books/user-guide/assemblies/creating-router-network-topology.adoc b/docs/books/assemblies/user-guide/creating-router-network-topology.adoc
similarity index 88%
rename from docs/books/user-guide/assemblies/creating-router-network-topology.adoc
rename to docs/books/assemblies/user-guide/creating-router-network-topology.adoc
index ae7242c..6064f9b 100644
--- a/docs/books/user-guide/assemblies/creating-router-network-topology.adoc
+++ b/docs/books/assemblies/user-guide/creating-router-network-topology.adoc
@@ -30,11 +30,11 @@ With {RouterName}, the router network topology is independent from the message r
 
 To create the router network topology, complete the following:
 
-. xref:planning-router-network-router[Plan the router network].
+. xref:planning-router-network-{context}[Plan the router network].
 +
 You should understand the different router operating modes you can deploy in your topology, and be aware of security requirements for the interior portion of the router network.
 
-. xref:adding-routers-router-network-router[Build the router network by adding routers one at a time].
+. xref:adding-routers-router-network-{context}[Build the router network by adding routers one at a time].
 +
 For each router, you must configure the following:
 
@@ -46,4 +46,4 @@ For each router, you must configure the following:
 include::planning-router-network.adoc[leveloffset=+1]
 
 // Adding routers to the router network
-include::modules/adding-routers-router-network.adoc[leveloffset=+1]
+include::../../modules/user-guide/adding-routers-router-network.adoc[leveloffset=+1]
diff --git a/docs/books/user-guide/assemblies/getting-started.adoc b/docs/books/assemblies/user-guide/getting-started.adoc
similarity index 75%
rename from docs/books/user-guide/assemblies/getting-started.adoc
rename to docs/books/assemblies/user-guide/getting-started.adoc
index c1e325a..a5b987b 100644
--- a/docs/books/user-guide/assemblies/getting-started.adoc
+++ b/docs/books/assemblies/user-guide/getting-started.adoc
@@ -27,16 +27,16 @@ under the License
 This section shows you how to install {RouterName} on a single host, start the router with the default configuration settings, and distribute messages between two clients.
 
 // Installing Dispatch Router
-include::modules/installing-router.adoc[leveloffset=+1]
+include::../../modules/user-guide/installing-router.adoc[leveloffset=+1]
 
 // Viewing the default router configuration file
-include::modules/viewing-default-router-configuration-file.adoc[leveloffset=+1]
+include::../../modules/user-guide/viewing-default-router-configuration-file.adoc[leveloffset=+1]
 
 // Starting the router
-include::modules/starting-router-getting-started.adoc[leveloffset=+1]
+include::../../modules/user-guide/starting-router-getting-started.adoc[leveloffset=+1]
 
 // Sending some test messages
-include::modules/sending-test-messages.adoc[leveloffset=+1]
+include::../../modules/user-guide/sending-test-messages.adoc[leveloffset=+1]
 
 // Next steps
-include::modules/next-steps.adoc[leveloffset=+1]
+include::../../modules/user-guide/next-steps.adoc[leveloffset=+1]
diff --git a/docs/books/user-guide/assemblies/important-terms-concepts.adoc b/docs/books/assemblies/user-guide/important-terms-concepts.adoc
similarity index 74%
rename from docs/books/user-guide/assemblies/important-terms-concepts.adoc
rename to docs/books/assemblies/user-guide/important-terms-concepts.adoc
index 83a42ff..d03c21c 100644
--- a/docs/books/user-guide/assemblies/important-terms-concepts.adoc
+++ b/docs/books/assemblies/user-guide/important-terms-concepts.adoc
@@ -26,14 +26,14 @@ under the License
 
 Before using {RouterName}, you should be familiar with AMQP and understand some key concepts about {RouterName}.
 
-include::modules/overview-of-amqp.adoc[leveloffset=+1]
+include::../../modules/user-guide/overview-of-amqp.adoc[leveloffset=+1]
 
-include::modules/what-routers-are.adoc[leveloffset=+1]
+include::../../modules/user-guide/what-routers-are.adoc[leveloffset=+1]
 
 // include::modules/how-routers-connect-endpoints.adoc[leveloffset=+1]
 
-include::modules/how-routers-route-messages.adoc[leveloffset=+1]
+include::../../modules/user-guide/how-routers-route-messages.adoc[leveloffset=+1]
 
-include::modules/router-security.adoc[leveloffset=+1]
+include::../../modules/user-guide/router-security.adoc[leveloffset=+1]
 
-include::modules/router-management.adoc[leveloffset=+1]
+include::../../modules/user-guide/router-management.adoc[leveloffset=+1]
diff --git a/docs/books/user-guide/assemblies/overview.adoc b/docs/books/assemblies/user-guide/overview.adoc
similarity index 83%
rename from docs/books/user-guide/assemblies/overview.adoc
rename to docs/books/assemblies/user-guide/overview.adoc
index 3474443..0384c11 100644
--- a/docs/books/user-guide/assemblies/overview.adoc
+++ b/docs/books/assemblies/user-guide/overview.adoc
@@ -26,10 +26,10 @@ under the License
 
 {RouterName} is a lightweight AMQP message router for building scalable, available, and performant messaging networks.
 
-include::modules/key-features.adoc[leveloffset=+1]
+include::../../modules/user-guide/key-features.adoc[leveloffset=+1]
 
-include::modules/supported-standards-protocols.adoc[leveloffset=+1]
+include::../../modules/user-guide/supported-standards-protocols.adoc[leveloffset=+1]
 
 include::important-terms-concepts.adoc[leveloffset=+1]
 
-include::_common/document_conventions.adoc[leveloffset=+1]
+include::../../common/document_conventions.adoc[leveloffset=+1]
diff --git a/docs/books/user-guide/assemblies/planning-router-network.adoc b/docs/books/assemblies/user-guide/planning-router-network.adoc
similarity index 88%
rename from docs/books/user-guide/assemblies/planning-router-network.adoc
rename to docs/books/assemblies/user-guide/planning-router-network.adoc
index 36f0268..2cd0ec3 100644
--- a/docs/books/user-guide/assemblies/planning-router-network.adoc
+++ b/docs/books/assemblies/user-guide/planning-router-network.adoc
@@ -27,10 +27,10 @@ under the License
 To plan your router network and design the network topology, you must first understand the different router modes and how you can use them to create different types of networks.
 
 // Router operating modes
-include::modules/router-operating-modes.adoc[leveloffset=+1]
+include::../../modules/user-guide/router-operating-modes.adoc[leveloffset=+1]
 
 // Security considerations
-include::modules/router-network-security-considerations.adoc[leveloffset=+1]
+include::../../modules/user-guide/router-network-security-considerations.adoc[leveloffset=+1]
 
 // Example router network topologies
 // include::modules/example-router-network-topologies.adoc[leveloffset=+1]
diff --git a/docs/books/user-guide/assemblies/securing-incoming-client-connections.adoc b/docs/books/assemblies/user-guide/securing-incoming-client-connections.adoc
similarity index 65%
rename from docs/books/user-guide/assemblies/securing-incoming-client-connections.adoc
rename to docs/books/assemblies/user-guide/securing-incoming-client-connections.adoc
index b3d77c1..f95ca6c 100644
--- a/docs/books/user-guide/assemblies/securing-incoming-client-connections.adoc
+++ b/docs/books/assemblies/user-guide/securing-incoming-client-connections.adoc
@@ -26,19 +26,19 @@ under the License
 
 You can use SSL/TLS and SASL to provide the appropriate level of security for client traffic into the router network. You can use the following methods to secure incoming connections to a router from AMQP clients, external containers, or edge routers:
 
-* xref:enabling-ssl-tls-encryption-router[Enabling SSL/TLS encryption]
-* xref:enabling-ssl-tls-client-authentication-router[Enabling SSL/TLS client authentication]
-* xref:enabling-username-password-authentication-router[Enabling user name and password authentication]
-* xref:integrating-with-kerberos-router[Integrating with Kerberos]
+* xref:enabling-ssl-tls-encryption-{context}[Enabling SSL/TLS encryption]
+* xref:enabling-ssl-tls-client-authentication-{context}[Enabling SSL/TLS client authentication]
+* xref:enabling-username-password-authentication-{context}[Enabling user name and password authentication]
+* xref:integrating-with-kerberos-{context}[Integrating with Kerberos]
 
 // Enabling SSL/TLS encryption
-include::modules/enabling-ssl-tls-encryption.adoc[leveloffset=+1]
+include::../../modules/user-guide/enabling-ssl-tls-encryption.adoc[leveloffset=+1]
 
 // Enabling SSL/TLS client authentication
-include::modules/enabling-ssl-tls-client-authentication.adoc[leveloffset=+1]
+include::../../modules/user-guide/enabling-ssl-tls-client-authentication.adoc[leveloffset=+1]
 
 // Enabling username/password authentication
-include::modules/enabling-username-password-authentication.adoc[leveloffset=+1]
+include::../../modules/user-guide/enabling-username-password-authentication.adoc[leveloffset=+1]
 
 // Integrating with Kerberos
-include::modules/integrating-with-kerberos.adoc[leveloffset=+1]
+include::../../modules/user-guide/integrating-with-kerberos.adoc[leveloffset=+1]
diff --git a/docs/books/user-guide/assemblies/securing-network-connections.adoc b/docs/books/assemblies/user-guide/securing-network-connections.adoc
similarity index 83%
rename from docs/books/user-guide/assemblies/securing-network-connections.adoc
rename to docs/books/assemblies/user-guide/securing-network-connections.adoc
index 846e50a..d194714 100644
--- a/docs/books/user-guide/assemblies/securing-network-connections.adoc
+++ b/docs/books/assemblies/user-guide/securing-network-connections.adoc
@@ -31,12 +31,12 @@ You can configure {RouterName} to communicate with clients, routers, and brokers
 
 To secure the router network, you configure SSL/TLS, SASL (or a combination of both) to secure each of the following types of connections:
 
-* xref:securing-connections-between-routers-router[Connections between routers]
-* xref:securing-incoming-client-connections-router[Incoming client connections]
-* xref:securing-outgoing-connections-router[Outgoing connections]
+* xref:securing-connections-between-routers-{context}[Connections between routers]
+* xref:securing-incoming-client-connections-{context}[Incoming client connections]
+* xref:securing-outgoing-connections-{context}[Outgoing connections]
 
 // Securing connections between routers
-include::modules/securing-connections-between-routers.adoc[leveloffset=+1]
+include::../../modules/user-guide/securing-connections-between-routers.adoc[leveloffset=+1]
 
 // Securing incoming client connections
 include::securing-incoming-client-connections.adoc[leveloffset=+1]
diff --git a/docs/books/user-guide/assemblies/securing-outgoing-connections.adoc b/docs/books/assemblies/user-guide/securing-outgoing-connections.adoc
similarity index 66%
rename from docs/books/user-guide/assemblies/securing-outgoing-connections.adoc
rename to docs/books/assemblies/user-guide/securing-outgoing-connections.adoc
index a0c0c7d..5856c48 100644
--- a/docs/books/user-guide/assemblies/securing-outgoing-connections.adoc
+++ b/docs/books/assemblies/user-guide/securing-outgoing-connections.adoc
@@ -28,15 +28,15 @@ If a router is configured to create connections to external AMQP containers (suc
 
 You can configure a router to create outgoing connections using:
 
-* xref:connecting-using-one-way-ssl-tls-authentication-router[SSL/TLS encryption (one-way authentication)]
-* xref:connecting-using-mutual-ssl-tls-authentication-router[SSL/TLS mutual authentication]
-* xref:connecting-using-username-password-authentication-router[User name and password authentication (with or without SSL/TLS encryption)]
+* xref:connecting-using-one-way-ssl-tls-authentication-{context}[SSL/TLS encryption (one-way authentication)]
+* xref:connecting-using-mutual-ssl-tls-authentication-{context}[SSL/TLS mutual authentication]
+* xref:connecting-using-username-password-authentication-{context}[User name and password authentication (with or without SSL/TLS encryption)]
 
 // Connecting using SSL/TLS encryption
-include::modules/connecting-using-one-way-ssl-tls-authentication.adoc[leveloffset=+1]
+include::../../modules/user-guide/connecting-using-one-way-ssl-tls-authentication.adoc[leveloffset=+1]
 
 // Connecting using SSL/TLS mutual authentication
-include::modules/connecting-using-mutual-ssl-tls-authentication.adoc[leveloffset=+1]
+include::../../modules/user-guide/connecting-using-mutual-ssl-tls-authentication.adoc[leveloffset=+1]
 
 // Connecting using user name and password authentication
-include::modules/connecting-using-username-password-authentication.adoc[leveloffset=+1]
+include::../../modules/user-guide/connecting-using-username-password-authentication.adoc[leveloffset=+1]
diff --git a/docs/books/_common/attributes.adoc b/docs/books/common/attributes.adoc
similarity index 98%
rename from docs/books/_common/attributes.adoc
rename to docs/books/common/attributes.adoc
index 0f9818c..cf47244 100644
--- a/docs/books/_common/attributes.adoc
+++ b/docs/books/common/attributes.adoc
@@ -23,7 +23,7 @@ under the License
 :doctype: article
 :experimental:
 :idprefix:
-:imagesdir: _images
+:imagesdir: images
 :numbered:
 :sectanchors!:
 :sectnums:
@@ -39,7 +39,7 @@ under the License
 :RouterLongName: {ProductName} Dispatch Router
 :ClientAmqpPythonName: {ProductName} Proton Python
 :ConsoleName: {RouterLongName} Console
-:FragmentDir: _common
+:FragmentDir: ../../common
 :RouterName: Dispatch Router
 :RouterSchemaDir: ../../build/doc/book
 :RouterConfigFile: /etc/qpid-dispatch/qdrouterd.conf
diff --git a/docs/books/_common/document_conventions.adoc b/docs/books/common/document_conventions.adoc
similarity index 100%
rename from docs/books/_common/document_conventions.adoc
rename to docs/books/common/document_conventions.adoc
diff --git a/docs/books/_common/fragment-console-prereq.adoc b/docs/books/common/fragment-console-prereq.adoc
similarity index 100%
rename from docs/books/_common/fragment-console-prereq.adoc
rename to docs/books/common/fragment-console-prereq.adoc
diff --git a/docs/books/_common/fragment-router-install-intro.adoc b/docs/books/common/fragment-router-install-intro.adoc
similarity index 100%
rename from docs/books/_common/fragment-router-install-intro.adoc
rename to docs/books/common/fragment-router-install-intro.adoc
diff --git a/docs/books/_common/fragment-router-install-steps.adoc b/docs/books/common/fragment-router-install-steps.adoc
similarity index 100%
rename from docs/books/_common/fragment-router-install-steps.adoc
rename to docs/books/common/fragment-router-install-steps.adoc
diff --git a/docs/books/_common/fragment-router-open-config-file-step.adoc b/docs/books/common/fragment-router-open-config-file-step.adoc
similarity index 100%
rename from docs/books/_common/fragment-router-open-config-file-step.adoc
rename to docs/books/common/fragment-router-open-config-file-step.adoc
diff --git a/docs/books/_common/fragment-router-sasl-para.adoc b/docs/books/common/fragment-router-sasl-para.adoc
similarity index 100%
rename from docs/books/_common/fragment-router-sasl-para.adoc
rename to docs/books/common/fragment-router-sasl-para.adoc
diff --git a/docs/books/_common/fragment-start-router-service-command.adoc b/docs/books/common/fragment-start-router-service-command.adoc
similarity index 100%
rename from docs/books/_common/fragment-start-router-service-command.adoc
rename to docs/books/common/fragment-start-router-service-command.adoc
diff --git a/docs/books/_common/fragment-systemd-limitnofile-fmi.adoc b/docs/books/common/fragment-systemd-limitnofile-fmi.adoc
similarity index 100%
rename from docs/books/_common/fragment-systemd-limitnofile-fmi.adoc
rename to docs/books/common/fragment-systemd-limitnofile-fmi.adoc
diff --git a/docs/books/_images/01-peer-to-peer.png b/docs/books/images/01-peer-to-peer.png
similarity index 100%
rename from docs/books/_images/01-peer-to-peer.png
rename to docs/books/images/01-peer-to-peer.png
diff --git a/docs/books/_images/balanced-routing.png b/docs/books/images/balanced-routing.png
similarity index 100%
rename from docs/books/_images/balanced-routing.png
rename to docs/books/images/balanced-routing.png
diff --git a/docs/books/_images/brokered-messaging.png b/docs/books/images/brokered-messaging.png
similarity index 100%
rename from docs/books/_images/brokered-messaging.png
rename to docs/books/images/brokered-messaging.png
diff --git a/docs/books/_images/closest-routing.png b/docs/books/images/closest-routing.png
similarity index 100%
rename from docs/books/_images/closest-routing.png
rename to docs/books/images/closest-routing.png
diff --git a/docs/books/_images/console1.png b/docs/books/images/console1.png
similarity index 100%
rename from docs/books/_images/console1.png
rename to docs/books/images/console1.png
diff --git a/docs/books/_images/console_charts.png b/docs/books/images/console_charts.png
similarity index 100%
rename from docs/books/_images/console_charts.png
rename to docs/books/images/console_charts.png
diff --git a/docs/books/_images/console_entity.png b/docs/books/images/console_entity.png
similarity index 100%
rename from docs/books/_images/console_entity.png
rename to docs/books/images/console_entity.png
diff --git a/docs/books/_images/console_login.png b/docs/books/images/console_login.png
similarity index 100%
rename from docs/books/_images/console_login.png
rename to docs/books/images/console_login.png
diff --git a/docs/books/_images/console_overview.png b/docs/books/images/console_overview.png
similarity index 100%
rename from docs/books/_images/console_overview.png
rename to docs/books/images/console_overview.png
diff --git a/docs/books/_images/console_schema.png b/docs/books/images/console_schema.png
similarity index 100%
rename from docs/books/_images/console_schema.png
rename to docs/books/images/console_schema.png
diff --git a/docs/books/_images/console_topology.png b/docs/books/images/console_topology.png
similarity index 100%
rename from docs/books/_images/console_topology.png
rename to docs/books/images/console_topology.png
diff --git a/docs/books/_images/link-routing.png b/docs/books/images/link-routing.png
similarity index 100%
rename from docs/books/_images/link-routing.png
rename to docs/books/images/link-routing.png
diff --git a/docs/books/_images/message-routing.png b/docs/books/images/message-routing.png
similarity index 100%
rename from docs/books/_images/message-routing.png
rename to docs/books/images/message-routing.png
diff --git a/docs/books/_images/multicast-routing.png b/docs/books/images/multicast-routing.png
similarity index 100%
rename from docs/books/_images/multicast-routing.png
rename to docs/books/images/multicast-routing.png
diff --git a/docs/books/_images/path-redundancy-01.png b/docs/books/images/path-redundancy-01.png
similarity index 100%
rename from docs/books/_images/path-redundancy-01.png
rename to docs/books/images/path-redundancy-01.png
diff --git a/docs/books/_images/path-redundancy-02.png b/docs/books/images/path-redundancy-02.png
similarity index 100%
rename from docs/books/_images/path-redundancy-02.png
rename to docs/books/images/path-redundancy-02.png
diff --git a/docs/books/_images/path-redundancy-temp-decoupling-01.png b/docs/books/images/path-redundancy-temp-decoupling-01.png
similarity index 100%
rename from docs/books/_images/path-redundancy-temp-decoupling-01.png
rename to docs/books/images/path-redundancy-temp-decoupling-01.png
diff --git a/docs/books/_images/path-redundancy-temp-decoupling-02.png b/docs/books/images/path-redundancy-temp-decoupling-02.png
similarity index 100%
rename from docs/books/_images/path-redundancy-temp-decoupling-02.png
rename to docs/books/images/path-redundancy-temp-decoupling-02.png
diff --git a/docs/books/_images/sharded-queue-01.png b/docs/books/images/sharded-queue-01.png
similarity index 100%
rename from docs/books/_images/sharded-queue-01.png
rename to docs/books/images/sharded-queue-01.png
diff --git a/docs/books/_images/sharded-queue-02.png b/docs/books/images/sharded-queue-02.png
similarity index 100%
rename from docs/books/_images/sharded-queue-02.png
rename to docs/books/images/sharded-queue-02.png
diff --git a/docs/books/user-guide/modules/adding-routers-router-network.adoc b/docs/books/modules/user-guide/adding-routers-router-network.adoc
similarity index 90%
rename from docs/books/user-guide/modules/adding-routers-router-network.adoc
rename to docs/books/modules/user-guide/adding-routers-router-network.adoc
index 06df572..bd6c2c9 100644
--- a/docs/books/user-guide/modules/adding-routers-router-network.adoc
+++ b/docs/books/modules/user-guide/adding-routers-router-network.adoc
@@ -34,11 +34,11 @@ This procedure describes the workflow required to add a router to the router net
 
 .Procedure
 
-. xref:configuring-router-properties-router[Configure essential router properties].
+. xref:configuring-router-properties-{context}[Configure essential router properties].
 +
 To participate in a router network, a router must be configured with a unique ID and an operating mode.
 
-. xref:configuring-network-connections-router[Configure network connections].
+. xref:configuring-network-connections-{context}[Configure network connections].
 
 .. Connect the router to any other routers in the router network.
 +
@@ -48,7 +48,7 @@ Repeat this step for each additional router to which you want to connect this ro
 
 .. If the router should connect to an external AMQP container (such as a message broker), configure the connection.
 
-. xref:securing-network-connections-router[Secure each of the connections that you configured in the previous step].
+. xref:securing-network-connections-{context}[Secure each of the connections that you configured in the previous step].
 
 . (Optional) Configure any additional properties.
 +
diff --git a/docs/books/user-guide/authorization.adoc b/docs/books/modules/user-guide/authorization.adoc
similarity index 100%
rename from docs/books/user-guide/authorization.adoc
rename to docs/books/modules/user-guide/authorization.adoc
diff --git a/docs/books/user-guide/modules/configuring-router-properties.adoc b/docs/books/modules/user-guide/configuring-router-properties.adoc
similarity index 100%
rename from docs/books/user-guide/modules/configuring-router-properties.adoc
rename to docs/books/modules/user-guide/configuring-router-properties.adoc
diff --git a/docs/books/user-guide/modules/connecting-routers-external-amqp-containers.adoc b/docs/books/modules/user-guide/connecting-routers-external-amqp-containers.adoc
similarity index 100%
rename from docs/books/user-guide/modules/connecting-routers-external-amqp-containers.adoc
rename to docs/books/modules/user-guide/connecting-routers-external-amqp-containers.adoc
diff --git a/docs/books/user-guide/modules/connecting-routers.adoc b/docs/books/modules/user-guide/connecting-routers.adoc
similarity index 100%
rename from docs/books/user-guide/modules/connecting-routers.adoc
rename to docs/books/modules/user-guide/connecting-routers.adoc
diff --git a/docs/books/user-guide/modules/connecting-using-mutual-ssl-tls-authentication.adoc b/docs/books/modules/user-guide/connecting-using-mutual-ssl-tls-authentication.adoc
similarity index 100%
rename from docs/books/user-guide/modules/connecting-using-mutual-ssl-tls-authentication.adoc
rename to docs/books/modules/user-guide/connecting-using-mutual-ssl-tls-authentication.adoc
diff --git a/docs/books/user-guide/modules/connecting-using-one-way-ssl-tls-authentication.adoc b/docs/books/modules/user-guide/connecting-using-one-way-ssl-tls-authentication.adoc
similarity index 100%
rename from docs/books/user-guide/modules/connecting-using-one-way-ssl-tls-authentication.adoc
rename to docs/books/modules/user-guide/connecting-using-one-way-ssl-tls-authentication.adoc
diff --git a/docs/books/user-guide/modules/connecting-using-username-password-authentication.adoc b/docs/books/modules/user-guide/connecting-using-username-password-authentication.adoc
similarity index 100%
rename from docs/books/user-guide/modules/connecting-using-username-password-authentication.adoc
rename to docs/books/modules/user-guide/connecting-using-username-password-authentication.adoc
diff --git a/docs/books/user-guide/modules/connection-failover.adoc b/docs/books/modules/user-guide/connection-failover.adoc
similarity index 100%
rename from docs/books/user-guide/modules/connection-failover.adoc
rename to docs/books/modules/user-guide/connection-failover.adoc
diff --git a/docs/books/user-guide/cyrus-sasl.adoc b/docs/books/modules/user-guide/cyrus-sasl.adoc
similarity index 100%
rename from docs/books/user-guide/cyrus-sasl.adoc
rename to docs/books/modules/user-guide/cyrus-sasl.adoc
diff --git a/docs/books/user-guide/modules/enabling-ssl-tls-client-authentication.adoc b/docs/books/modules/user-guide/enabling-ssl-tls-client-authentication.adoc
similarity index 96%
rename from docs/books/user-guide/modules/enabling-ssl-tls-client-authentication.adoc
rename to docs/books/modules/user-guide/enabling-ssl-tls-client-authentication.adoc
index 78bbb34..2951958 100644
--- a/docs/books/user-guide/modules/enabling-ssl-tls-client-authentication.adoc
+++ b/docs/books/modules/user-guide/enabling-ssl-tls-client-authentication.adoc
@@ -30,7 +30,7 @@ In addition to SSL/TLS encryption, you can also use SSL/TLS to authenticate an i
 
 * SSL/TLS encryption must be configured.
 +
-For more information, see xref:enabling-ssl-tls-encryption-router[].
+For more information, see xref:enabling-ssl-tls-encryption-{context}[].
 
 * The client must have an X.509 certificate that it can use to authenticate to the router.
 
diff --git a/docs/books/user-guide/modules/enabling-ssl-tls-encryption.adoc b/docs/books/modules/user-guide/enabling-ssl-tls-encryption.adoc
similarity index 100%
rename from docs/books/user-guide/modules/enabling-ssl-tls-encryption.adoc
rename to docs/books/modules/user-guide/enabling-ssl-tls-encryption.adoc
diff --git a/docs/books/user-guide/modules/enabling-username-password-authentication.adoc b/docs/books/modules/user-guide/enabling-username-password-authentication.adoc
similarity index 100%
rename from docs/books/user-guide/modules/enabling-username-password-authentication.adoc
rename to docs/books/modules/user-guide/enabling-username-password-authentication.adoc
diff --git a/docs/books/user-guide/modules/example-router-network-topologies.adoc b/docs/books/modules/user-guide/example-router-network-topologies.adoc
similarity index 100%
rename from docs/books/user-guide/modules/example-router-network-topologies.adoc
rename to docs/books/modules/user-guide/example-router-network-topologies.adoc
diff --git a/docs/books/user-guide/modules/how-routers-connect-endpoints.adoc b/docs/books/modules/user-guide/how-routers-connect-endpoints.adoc
similarity index 100%
rename from docs/books/user-guide/modules/how-routers-connect-endpoints.adoc
rename to docs/books/modules/user-guide/how-routers-connect-endpoints.adoc
diff --git a/docs/books/user-guide/modules/how-routers-route-messages.adoc b/docs/books/modules/user-guide/how-routers-route-messages.adoc
similarity index 100%
rename from docs/books/user-guide/modules/how-routers-route-messages.adoc
rename to docs/books/modules/user-guide/how-routers-route-messages.adoc
diff --git a/docs/books/user-guide/modules/installing-router.adoc b/docs/books/modules/user-guide/installing-router.adoc
similarity index 100%
rename from docs/books/user-guide/modules/installing-router.adoc
rename to docs/books/modules/user-guide/installing-router.adoc
diff --git a/docs/books/user-guide/modules/integrating-with-kerberos.adoc b/docs/books/modules/user-guide/integrating-with-kerberos.adoc
similarity index 100%
rename from docs/books/user-guide/modules/integrating-with-kerberos.adoc
rename to docs/books/modules/user-guide/integrating-with-kerberos.adoc
diff --git a/docs/books/user-guide/modules/key-features.adoc b/docs/books/modules/user-guide/key-features.adoc
similarity index 100%
rename from docs/books/user-guide/modules/key-features.adoc
rename to docs/books/modules/user-guide/key-features.adoc
diff --git a/docs/books/user-guide/modules/link-routing.adoc b/docs/books/modules/user-guide/link-routing.adoc
similarity index 100%
rename from docs/books/user-guide/modules/link-routing.adoc
rename to docs/books/modules/user-guide/link-routing.adoc
diff --git a/docs/books/user-guide/modules/listening-client-connections.adoc b/docs/books/modules/user-guide/listening-client-connections.adoc
similarity index 97%
rename from docs/books/user-guide/modules/listening-client-connections.adoc
rename to docs/books/modules/user-guide/listening-client-connections.adoc
index 9f0b4ca..a35bff6 100644
--- a/docs/books/user-guide/modules/listening-client-connections.adoc
+++ b/docs/books/modules/user-guide/listening-client-connections.adoc
@@ -57,5 +57,5 @@ listener {
 +
 `[(amqp|amqps|ws|wss)://](__HOST__|__IP ADDRESS__)[:port]`
 +
-For more information, see xref:connection-failover-router[].
+For more information, see xref:connection-failover-{context}[].
 --
diff --git a/docs/books/user-guide/logging.adoc b/docs/books/modules/user-guide/logging.adoc
similarity index 100%
rename from docs/books/user-guide/logging.adoc
rename to docs/books/modules/user-guide/logging.adoc
diff --git a/docs/books/user-guide/managing-using-qdmanage.adoc b/docs/books/modules/user-guide/managing-using-qdmanage.adoc
similarity index 100%
rename from docs/books/user-guide/managing-using-qdmanage.adoc
rename to docs/books/modules/user-guide/managing-using-qdmanage.adoc
diff --git a/docs/books/user-guide/modules/message-routing.adoc b/docs/books/modules/user-guide/message-routing.adoc
similarity index 100%
rename from docs/books/user-guide/modules/message-routing.adoc
rename to docs/books/modules/user-guide/message-routing.adoc
diff --git a/docs/books/user-guide/monitoring-using-qdstat.adoc b/docs/books/modules/user-guide/monitoring-using-qdstat.adoc
similarity index 100%
rename from docs/books/user-guide/monitoring-using-qdstat.adoc
rename to docs/books/modules/user-guide/monitoring-using-qdstat.adoc
diff --git a/docs/books/user-guide/modules/network-topologies.adoc b/docs/books/modules/user-guide/network-topologies.adoc
similarity index 100%
rename from docs/books/user-guide/modules/network-topologies.adoc
rename to docs/books/modules/user-guide/network-topologies.adoc
diff --git a/docs/books/user-guide/modules/next-steps.adoc b/docs/books/modules/user-guide/next-steps.adoc
similarity index 100%
rename from docs/books/user-guide/modules/next-steps.adoc
rename to docs/books/modules/user-guide/next-steps.adoc
diff --git a/docs/books/user-guide/modules/overview-of-amqp.adoc b/docs/books/modules/user-guide/overview-of-amqp.adoc
similarity index 100%
rename from docs/books/user-guide/modules/overview-of-amqp.adoc
rename to docs/books/modules/user-guide/overview-of-amqp.adoc
diff --git a/docs/books/user-guide/reliability.adoc b/docs/books/modules/user-guide/reliability.adoc
similarity index 100%
rename from docs/books/user-guide/reliability.adoc
rename to docs/books/modules/user-guide/reliability.adoc
diff --git a/docs/books/user-guide/modules/router-connection-considerations.adoc b/docs/books/modules/user-guide/router-connection-considerations.adoc
similarity index 100%
rename from docs/books/user-guide/modules/router-connection-considerations.adoc
rename to docs/books/modules/user-guide/router-connection-considerations.adoc
diff --git a/docs/books/user-guide/modules/router-management.adoc b/docs/books/modules/user-guide/router-management.adoc
similarity index 100%
rename from docs/books/user-guide/modules/router-management.adoc
rename to docs/books/modules/user-guide/router-management.adoc
diff --git a/docs/books/user-guide/modules/router-network-security-considerations.adoc b/docs/books/modules/user-guide/router-network-security-considerations.adoc
similarity index 100%
rename from docs/books/user-guide/modules/router-network-security-considerations.adoc
rename to docs/books/modules/user-guide/router-network-security-considerations.adoc
diff --git a/docs/books/user-guide/modules/router-operating-modes.adoc b/docs/books/modules/user-guide/router-operating-modes.adoc
similarity index 100%
rename from docs/books/user-guide/modules/router-operating-modes.adoc
rename to docs/books/modules/user-guide/router-operating-modes.adoc
diff --git a/docs/books/user-guide/modules/router-security.adoc b/docs/books/modules/user-guide/router-security.adoc
similarity index 100%
rename from docs/books/user-guide/modules/router-security.adoc
rename to docs/books/modules/user-guide/router-security.adoc
diff --git a/docs/books/user-guide/routing.adoc b/docs/books/modules/user-guide/routing.adoc
similarity index 99%
rename from docs/books/user-guide/routing.adoc
rename to docs/books/modules/user-guide/routing.adoc
index c904d87..c0d6577 100644
--- a/docs/books/user-guide/routing.adoc
+++ b/docs/books/modules/user-guide/routing.adoc
@@ -563,7 +563,7 @@ it receives the messages stored at the fallback destination.
 
 * The router is connected to a broker.
 +
-For more information, see xref:connecting-to-external-amqp-containers-router[].
+For more information, see xref:connecting-to-external-amqp-containers-{context}[].
 
 .Procedure
 
diff --git a/docs/books/user-guide/modules/securing-connections-between-routers.adoc b/docs/books/modules/user-guide/securing-connections-between-routers.adoc
similarity index 98%
rename from docs/books/user-guide/modules/securing-connections-between-routers.adoc
rename to docs/books/modules/user-guide/securing-connections-between-routers.adoc
index f69c2f8..de14ed5 100644
--- a/docs/books/user-guide/modules/securing-connections-between-routers.adoc
+++ b/docs/books/modules/user-guide/securing-connections-between-routers.adoc
@@ -38,7 +38,7 @@ This procedure describes how to secure a connection between two interior routers
 
 * An inter-router connection must exist between the routers.
 +
-For more information, see xref:connecting-routers-router[].
+For more information, see xref:connecting-routers-{context}[].
 
 .Procedure
 
diff --git a/docs/books/user-guide/modules/sending-test-messages.adoc b/docs/books/modules/user-guide/sending-test-messages.adoc
similarity index 100%
rename from docs/books/user-guide/modules/sending-test-messages.adoc
rename to docs/books/modules/user-guide/sending-test-messages.adoc
diff --git a/docs/books/user-guide/modules/starting-router-getting-started.adoc b/docs/books/modules/user-guide/starting-router-getting-started.adoc
similarity index 100%
rename from docs/books/user-guide/modules/starting-router-getting-started.adoc
rename to docs/books/modules/user-guide/starting-router-getting-started.adoc
diff --git a/docs/books/user-guide/modules/starting-routers.adoc b/docs/books/modules/user-guide/starting-routers.adoc
similarity index 100%
rename from docs/books/user-guide/modules/starting-routers.adoc
rename to docs/books/modules/user-guide/starting-routers.adoc
diff --git a/docs/books/user-guide/modules/supported-standards-protocols.adoc b/docs/books/modules/user-guide/supported-standards-protocols.adoc
similarity index 100%
rename from docs/books/user-guide/modules/supported-standards-protocols.adoc
rename to docs/books/modules/user-guide/supported-standards-protocols.adoc
diff --git a/docs/books/user-guide/technical-details-specifications.adoc b/docs/books/modules/user-guide/technical-details-specifications.adoc
similarity index 100%
rename from docs/books/user-guide/technical-details-specifications.adoc
rename to docs/books/modules/user-guide/technical-details-specifications.adoc
diff --git a/docs/books/user-guide/using-console.adoc b/docs/books/modules/user-guide/using-console.adoc
similarity index 100%
rename from docs/books/user-guide/using-console.adoc
rename to docs/books/modules/user-guide/using-console.adoc
diff --git a/docs/books/user-guide/modules/viewing-default-router-configuration-file.adoc b/docs/books/modules/user-guide/viewing-default-router-configuration-file.adoc
similarity index 100%
rename from docs/books/user-guide/modules/viewing-default-router-configuration-file.adoc
rename to docs/books/modules/user-guide/viewing-default-router-configuration-file.adoc
diff --git a/docs/books/user-guide/modules/what-routers-are.adoc b/docs/books/modules/user-guide/what-routers-are.adoc
similarity index 100%
rename from docs/books/user-guide/modules/what-routers-are.adoc
rename to docs/books/modules/user-guide/what-routers-are.adoc
diff --git a/docs/books/user-guide/_common b/docs/books/user-guide/_common
deleted file mode 120000
index 7c77149..0000000
--- a/docs/books/user-guide/_common
+++ /dev/null
@@ -1 +0,0 @@
-../_common
\ No newline at end of file
diff --git a/docs/books/user-guide/_images b/docs/books/user-guide/_images
deleted file mode 120000
index 6d8b580..0000000
--- a/docs/books/user-guide/_images
+++ /dev/null
@@ -1 +0,0 @@
-../_images
\ No newline at end of file
diff --git a/docs/books/user-guide/assemblies/_common b/docs/books/user-guide/assemblies/_common
deleted file mode 120000
index 739f516..0000000
--- a/docs/books/user-guide/assemblies/_common
+++ /dev/null
@@ -1 +0,0 @@
-../../_common
\ No newline at end of file
diff --git a/docs/books/user-guide/assemblies/modules b/docs/books/user-guide/assemblies/modules
deleted file mode 120000
index 464b823..0000000
--- a/docs/books/user-guide/assemblies/modules
+++ /dev/null
@@ -1 +0,0 @@
-../modules
\ No newline at end of file
diff --git a/docs/books/user-guide/assemblies/user-guide b/docs/books/user-guide/assemblies/user-guide
new file mode 120000
index 0000000..04e9cfd
--- /dev/null
+++ b/docs/books/user-guide/assemblies/user-guide
@@ -0,0 +1 @@
+../../assemblies/user-guide
\ No newline at end of file
diff --git a/docs/books/user-guide/book.adoc b/docs/books/user-guide/book.adoc
index d291db5..981d191 100644
--- a/docs/books/user-guide/book.adoc
+++ b/docs/books/user-guide/book.adoc
@@ -17,37 +17,37 @@ specific language governing permissions and limitations
 under the License
 ////
 
-include::_common/attributes.adoc[]
+include::common/attributes.adoc[]
 
-:context: router
+:context: qdr
 
 = {RouterBook}
 
 // Overview
-include::assemblies/overview.adoc[leveloffset=+1]
+include::assemblies/user-guide/overview.adoc[leveloffset=+1]
 
 // Getting started
-include::assemblies/getting-started.adoc[leveloffset=+1]
+include::assemblies/user-guide/getting-started.adoc[leveloffset=+1]
 
 // Configuring a router network topology
-include::assemblies/creating-router-network-topology.adoc[leveloffset=+1]
+include::assemblies/user-guide/creating-router-network-topology.adoc[leveloffset=+1]
 
 // Configuring a router
-include::assemblies/configuring-router.adoc[leveloffset=+1]
+include::assemblies/user-guide/configuring-router.adoc[leveloffset=+1]
 
 // Routing messages through the router network
-include::routing.adoc[leveloffset=+1]
+include::modules/user-guide/routing.adoc[leveloffset=+1]
 
 [id="monitoring-managing-router-network"]
 == Monitoring and managing the router network
-include::modules/starting-routers.adoc[leveloffset=+2]
-include::logging.adoc[leveloffset=+2]
-include::using-console.adoc[leveloffset=+2]
-include::monitoring-using-qdstat.adoc[leveloffset=+2]
-include::managing-using-qdmanage.adoc[leveloffset=+2]
+include::modules/user-guide/starting-routers.adoc[leveloffset=+2]
+include::modules/user-guide/logging.adoc[leveloffset=+2]
+include::modules/user-guide/using-console.adoc[leveloffset=+2]
+include::modules/user-guide/monitoring-using-qdstat.adoc[leveloffset=+2]
+include::modules/user-guide/managing-using-qdmanage.adoc[leveloffset=+2]
 
 // Technical Details and Specifications
-include::technical-details-specifications.adoc[leveloffset=+1]
+include::modules/user-guide/technical-details-specifications.adoc[leveloffset=+1]
 
 // Revision information
 include::revision-info.adoc[]
diff --git a/docs/books/user-guide/common b/docs/books/user-guide/common
new file mode 120000
index 0000000..60d3b0a
--- /dev/null
+++ b/docs/books/user-guide/common
@@ -0,0 +1 @@
+../common
\ No newline at end of file
diff --git a/docs/books/user-guide/configuration-connections.adoc b/docs/books/user-guide/configuration-connections.adoc
deleted file mode 100644
index 75b444c..0000000
--- a/docs/books/user-guide/configuration-connections.adoc
+++ /dev/null
@@ -1,125 +0,0 @@
-////
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License
-////
-
-[id='router-network-connections']
-= Network Connections
-
-Connections define how the router communicates with clients, other routers, and brokers. You can configure _incoming connections_ to define how the router listens for data from clients and other routers, and you can configure _outgoing connections_ to define how the router sends data to other routers and brokers.
-
-[id='adding-incoming-connections']
-== Listening for Incoming Connections
-
-{RouterName} provides _listeners_ that accept client connections.
-A client connecting to a router listener uses the
-same methods that it would use to connect to a broker. From the
-client's perspective, the router connection and link establishment are
-identical to broker connection and link establishment.
-
-Several types of listeners are defined by their role.
-
-[options="header",cols="20,80"]
-|===
-| Role | Description
-| normal | The connection is used for AMQP clients using normal message delivery.
-| inter-router | The connection is assumed to be to another interior router in the network.  Inter-router discovery and routing protocols can only be used over inter-router connections.
-| route-container | The connection is a broker or other resource that holds known addresses. The router will use this connection to create links as necessary. The addresses are available for routing only after the remote resource has created a connection.
-| edge | The connection is between an edge router and an interior router.
-|===
-
-.Procedure
-
-. In the router's configuration file, add a `listener`:
-+
---
-[options="nowrap",subs="+quotes"]
-----
-listener {
-    host: _HOST_NAME/ADDRESS_
-    port: _PORT_NUMBER/NAME_
-    ...
-}
-----
-
-`host`:: Either an IP address (IPv4 or IPv6) or hostname on which the router should listen for incoming connections.
-`port`:: The port number or symbolic service name on which the router should listen for incoming connections.
-
-For information about additional attributes, see link:{qdrouterdConfManPageUrl}#_listener[listener] in the `qdrouterd.conf` man page.
---
-
-. If necessary, xref:securing-incoming-connections[secure the connection].
-+
-If you have set up SSL/TLS or SASL in your environment, you can configure the router to only accept encrypted or authenticated communication on this connection.
-
-. If you want the router to listen for incoming connections on additional hosts or ports, configure an additional `listener` entity for each host and port.
-
-[id='adding-outgoing-connections']
-== Adding Outgoing Connections
-
-You can configure {RouterName} to create outbound connections to
-messaging brokers or other AMQP entities using _connectors_. A
-connector is defined with the network address of the broker and the
-name or names of the resources that are available in that broker. When
-a router connects to a broker through a connector, it uses the same
-methods a normal messaging client would use when connecting to the
-broker.
-
-Several types of connectors are defined by their role.
-
-[options="header",cols="20,80"]
-|===
-| Role | Description
-| normal | The connection is used for AMQP clients using normal message delivery. On this connector the router will initiate the connection but it will never create any links. Links are to be created by the peer that accepts the connection.
-| inter-router | The connection is assumed to be to another interior router in the network.  Inter-router discovery and routing protocols can only be used over inter-router connections.
-| route-container | The connection is to a broker or other resource that holds known addresses. The router will use this connection to create links as necessary. The addresses are available for routing only after the router has created a connection to the remote resource.
-| edge | The connection is between an edge router and an interior router.
-|===
-
-// Adding this here for now; in the future it might be better to have separate procedures for creating inter-router and route-container connections.
-When a router connects to a broker, the broker might provide backup connection data that the router can use if the primary connection fails. If the primary connection fails, the router attempts to reconnect by using a combination of the primary and -- if provided -- backup connections in round-robin fashion until the connection is successful. For more information about viewing the backup connection data provided by the broker, see xref:managing-connectors[].
-
-.Procedure
-
-. In the router's configuration file, add a `connector`:
-+
---
-[options="nowrap",subs="+quotes"]
-----
-connector {
-    name: _NAME_
-    host: _HOST_NAME/ADDRESS_
-    port: _PORT_NUMBER/NAME_
-    ...
-}
-----
-
-`name`:: The name of the `connector`. You should specify a name that describes the entity to which the connector connects. This name is used by configured addresses (for example, a `linkRoute` entity) in order to specify which connection should be used for them.
-`host`:: Either an IP address (IPv4 or IPv6) or hostname on which the router should connect.
-`port`:: The port number or symbolic service name on which the router should connect.
-
-For information about additional attributes, see link:{qdrouterdConfManPageUrl}#_connector[connector] in the `qdrouterd.conf` man page.
---
-
-. If necessary, xref:securing-outgoing-connections[secure the connection].
-+
-If you have set up SSL/TLS or SASL in your environment, you can configure the router to only send encrypted or authenticated communication on this connection.
-
-. For each remaining router or broker to which this router should connect, configure an additional `connector` entity.
-
-
-include::modules/connection-failover.adoc[leveloffset=+1]
diff --git a/docs/books/user-guide/configuration-reference.adoc b/docs/books/user-guide/configuration-reference.adoc
deleted file mode 100644
index 7cbe31f..0000000
--- a/docs/books/user-guide/configuration-reference.adoc
+++ /dev/null
@@ -1,226 +0,0 @@
-////
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License
-////
-
-[id='router-configuration-reference']
-
-// This config reference could stand to be cleaned up. Also, some of the introductory content is no longer necessary since it's covered in the introductory chapter about configuration. We should just link to it instead of repeating it here.
-
-= Configuration Reference
-
-The {RouterName} component behavior is totally configurable using a configuration file which can be passed as parameter (with the `--conf` option) on the command line when running it. After installation, a default configuration file is placed at the following path :
-
-[options="nowrap"]
-----
-[install-prefix]/etc/qpid-dispatch/qdrouterd.conf
-----
-
-This file is used when the router is started without specify configuration file path on the command line and when it is started as a service. In case of starting router on the command line the configuration file can be placed anywhere on the file system.
-
-== Configuration File
-
-The configuration file is made up of sections with following syntax :
-
-[options="nowrap"]
-----
-sectionName {
-    attributeName: attributeValue
-    attributeName: attributeValue
-    ...
-}
-----
-
-A section could be referenced by another section using its `name` attribute. An example is the _sslProfile_ section which describes attributes for setting SSL/TLS configuration and can be applied to one or more _listener_ and _connector_ sections.
-
-[options="nowrap"]
-----
-sslProfile {
-    name: ssl-profile-one
-    caCertFile: ca-certificate-1.pem
-    certFile: server-certificate-1.pem
-    privateKeyFile: server-private-key.pem
-}
-
-listener {
-    sslProfile: ssl-profile-one
-    host: 0.0.0.0
-    port: amqp
-    saslMechanisms: ANONYMOUS
-}
-----
-
-In the above example, the _sslProfile_ section named _ssl-profile-one_ is used to define the _sslProfile_ attribute for the _listener_ section.
-
-=== Configuration Sections
-
-[id='router-configuration-file-sslprofile']
-==== sslProfile
-
-Attributes for setting SSL/TLS configuration for connections.
-
-* *_caCertFile_* (path) : The absolute path to the database that contains the public certificates of trusted certificate authorities (CA).
-* *_certFile_* (path) : The absolute path to the file containing the PEM-formatted public certificate to be used on the local end of any connections using this profile.
-* *_privateKeyFile_* (path) : The absolute path to the file containing the PEM-formatted private key for the above certificate.
-* *_passwordFile_* (path) : (DEPRECATED) If the above private key is password protected, this is the absolute path to the file containing the password that unlocks the certificate key. This file should be permission protected to limit access. This has been deprecated. Use the file: prefix in the password field to specify the absolute path of the file containing the password. If both password and passwordFile are provided, the passwordFile is ignored.
-* *_password_* (string) : Password that unlocks the certificate key. Supports three prefixes namely - env:, file: pass:. Also supports the legacy literal: prefix. env:var obtains the password from the environment variable var. Since the environment of other processes is visible on certain platforms (e.g. ps under certain Unix OSes) this option should be used with caution. file:absolutepath obtains password from the absolute path of the file containing the password. This option is the saf [...]
-* *_uidFormat_* (string) : A list of x509 client certificate fields that will be used to build a string that will uniquely identify the client certificate owner. For example, a value of ‘cou’ indicates that the uid will consist of c - common name concatenated with o - organization-company name concatenated with u - organization unit; or a value of ‘oF’ indicates that the uid will consist of o (organization name) concatenated with F (the sha256 fingerprint of the entire certificate) . All [...]
-* *_uidNameMappingFile_* (string) : The absolute path to the file containing the unique id to display name mapping.
-* *_name_* (string) : The name of the profile used for referencing it from _listener_ and _connector_ sections.
-
-*Used by* : _listener_, _connector_.
-
-[id='router-configuration-file-router']
-==== router
-
-Describe main information about the router related to identity, internal processes and inter routers communication.
-
-
-* *_id_* (string) : Router’s unique identity. It is required and the router will fail to start without it.
-* *_mode_* (One of [`standalone`, `interior`, `edge`], default=`standalone`) : In standalone mode, the router operates as a single component. It does not participate in the routing protocol and therefore will not cooperate with other routers. In interior mode, the router operates in cooperation with other interior routers in an interconnected network.  In edge mode, the router may create one or more connections (of role 'edge') to interior routers and participate normally in the network. [...]
-* *_helloIntervalSeconds_* (integer, default=`1`) : Interval in seconds between HELLO messages sent to neighbor routers in order to announce its presence (as a keep alive).
-* *_helloMaxAgeSeconds_* (integer, default=`3`) : Time in seconds after which a neighbor router is declared lost if no HELLO is received.
-* *_raIntervalSeconds_* (integer, default=`30`) : Interval in seconds between Router-Advertisements sent to all routers in a stable network.
-* *_raIntervalFluxSeconds_* (integer, default=`4`) : Interval in seconds between Router-Advertisements sent to all routers during topology fluctuations.
-* *_remoteLsMaxAgeSeconds_* (integer, default=`60`) : Time in seconds after which link state is declared stale if no RA is received.
-* *_workerThreads_* (integer, default=`4`) : The number of threads that will be created to process message traffic and other application work (timers, non-amqp file descriptors, and so on).
-* *_debugDump_* (path) : The absolute path for a file to dump debugging information that can’t be logged normally.
-* *_saslConfigDir_* (path) : The absolute path to the SASL configuration file.
-* *_saslConfigName_* (string, default=`qdrouterd`) : Name of the SASL configuration. This string + ‘.conf’ is the name of the configuration file.
-
-[id='router-configuration-file-listener']
-==== listener
-
-Listens for incoming connections to the router.
-
-* *_host_* (string, default=`127.0.0.1`) : IP address: ipv4 or ipv6 literal or a hostname.
-* *_port_* (string, default=`amqp`) : Port number or symbolic service name.
-* *_protocolFamily_* (One of [`IPv4`, `IPv6`]) : IPv4: Internet Protocol version 4; IPv6: Internet Protocol version 6. If not specified, the protocol family will be automatically determined from the address.
-* *_role_* (One of [`normal`, `inter-router`, `route-container`, `edge`], default=`normal`) : The role of an established connection. In the normal role, the connection is assumed to be used for AMQP clients that are doing normal message delivery over the connection. In the inter-router role, the connection is assumed to be to another interior router in the network. Inter-router discovery and routing protocols can only be used over inter-router connections. The route-container role can be [...]
-* *_cost_* (integer, default=`1`) : For the `inter-route` role only. This value assigns a cost metric to the inter-router connection. The default (and minimum) value is one. Higher values represent higher costs. The cost is used to influence the routing algorithm as it attempts to use the path with the lowest total cost from ingress to egress.
-* *_saslMechanisms_* (string) : Space separated list of accepted SASL authentication mechanisms.
-* *_authenticatePeer_* (boolean) : yes: Require the peer’s identity to be authenticated; no: Do not require any authentication.
-* *_requireEncryption_* (boolean) : yes: Require the connection to the peer to be encrypted; no: Permit non-encrypted communication with the peer. It is related to SASL mechanisms which support encryption.
-* *_requireSsl_* (boolean) : yes: Require the use of SSL/TLS on the connection; no: Allow clients to connect without SSL/TLS.
-* *_trustedCertsFile_* (path) : This optional setting can be used to reduce the set of available CAs for client authentication. If used, this setting must provide an absolute path to a PEM file that contains the trusted certificates.
-* *_maxFrameSize_* (integer, default=`16384`) : Defaults to 16384. If specified, it is the maximum frame size in octets that will be used in the connection-open negotiation with a connected peer. The frame size is the largest contiguous set of uninterrupted data that can be sent for a message delivery over the connection. Interleaving of messages on different links is done at frame granularity.
-* *_idleTimeoutSeconds_* : (integer, default=`16`) : The idle timeout, in seconds, for connections through this listener. If no frames are received on the connection for this time interval, the connection shall be closed.
-* *_initialHandshakeTimeoutSeconds_* (integer, default=`0`): The number of seconds after a connection transport is established that the router waits for the connecting client to complete the initial handshake and send the `AMQP OPEN` frame. If this timeout is exceeded, the connection is dropped. The default value is `0`, which means that no timeout is applied.
-* *_stripAnnotations_* (One of [`in`, `out`, `both`, `no`], default=`both`) : in: Strip the dispatch router specific annotations only on ingress; out: Strip the dispatch router specific annotations only on egress; both: Strip the dispatch router specific annotations on both ingress and egress; no - do not strip dispatch router specific annotations.
-* *_linkCapacity_* (integer) : The capacity of links within this connection, in terms of message deliveries. The capacity is the number of messages that can be in-flight concurrently for each link.
-* *_sslProfile_* (string) : The name of the _sslProfile_ entity to use in order to have SSL/TLS configuration.
-* *_http_* (boolean): If set to `yes`, the listener will accept HTTP connections using AMQP over WebSockets.
-
-[id='router-configuration-file-connector']
-==== connector
-
-Establishes an outgoing connection from the router.
-
-* *_name_* (string) : Name using to reference the connector in the configuration file for example for a link routing to queue on a broker.
-* *_host_* (string, default=`127.0.0.1`) : IP address: ipv4 or ipv6 literal or a hostname.
-* *_port_* (string, default=`amqp`) : Port number or symbolic service name.
-* *_protocolFamily_* (One of [`IPv4`, `IPv6`]) : IPv4: Internet Protocol version 4; IPv6: Internet Protocol version 6. If not specified, the protocol family will be automatically determined from the address.
-* *_role_* (One of [`normal`, `inter-router`, `route-container`], default=`normal`) : The role of an established connection. In the normal role, the connection is assumed to be used for AMQP clients that are doing normal message delivery over the connection. In the inter-router role, the connection is assumed to be to another router in the network. Inter-router discovery and routing protocols can only be used over inter-router connections. route-container role can be used for router-cont [...]
-* *_cost_* (integer, default=`1`) : For the ‘inter-router’ role only. This value assigns a cost metric to the inter-router connection. The default (and minimum) value is one. Higher values represent higher costs. The cost is used to influence the routing algorithm as it attempts to use the path with the lowest total cost from ingress to egress.
-* *_saslMechanisms_* (string) : Space separated list of accepted SASL authentication mechanisms.
-* *_allowRedirect_* (boolean, default=True) : Allow the peer to redirect this connection to another address.
-* *_maxFrameSize_* (integer, default=`65536`) : Maximum frame size in octets that will be used in the connection-open negotiation with a connected peer. The frame size is the largest contiguous set of uninterrupted data that can be sent for a message delivery over the connection. Interleaving of messages on different links is done at frame granularity.
-* *_idleTimeoutSeconds_* (integer, default=`16`) : The idle timeout, in seconds, for connections through this connector. If no frames are received on the connection for this time interval, the connection shall be closed.
-* *_stripAnnotations_* (One of [`in`, `out`, `both`, `no`], default=`both`) : in: Strip the dispatch router specific annotations only on ingress; out: Strip the dispatch router specific annotations only on egress; both: Strip the dispatch router specific annotations on both ingress and egress; no - do not strip dispatch router specific annotations.
-* *_linkCapacity_* (integer) : The capacity of links within this connection, in terms of message deliveries. The capacity is the number of messages that can be in-flight concurrently for each link.
-* *_verifyHostname_* (boolean, default=True) : yes: Ensures that when initiating a connection (as a client) the hostname in the URL to which this connector connects to matches the hostname in the digital certificate that the peer sends back as part of the SSL/TLS connection; no: Does not perform hostname verification
-* *_saslUsername_* (string) : The username that the connector is using to connect to a peer.
-* *_saslPassword_* (string) : The password that the connector is using to connect to a peer. You can specify the password by specifying an environment variable that stores the password, a file that stores the password, or by entering the password in clear text. To use an environment variable, specify "saslPassword: env:". Use this option with caution, because the environment of other processes is visible on certain platforms (for example, "ps" on certain Unix OSs). To use a file, specify [...]
-* *_sslProfile_* (string) : The name of the _sslProfile_ entity to use in order to have SSL/TLS configuration.
-
-[id='router-configuration-file-log']
-==== log
-
-Configure logging for a particular module which is part of the router. You can use the UPDATE operation to change log settings while the router is running.
-
-* *_module_* (One of [`ROUTER`, `ROUTER_HELLO`, `ROUTER_LS`, `ROUTER_MA`, `MESSAGE`, `SERVER`, `AGENT`, `CONTAINER`, `ERROR`, `POLICY`, `DEFAULT`], required) : Module to configure. The special module `DEFAULT` specifies defaults for all modules.
-* *_enable_* (string, default=`default`, required) Levels are: `trace`, `debug`, `info`, `notice`, `warning`, `error`, `critical`. The enable string is a comma-separated list of levels. A level may have a trailing `+` to enable that level and above. For example `trace,debug,warning+` means enable trace, debug, warning, error and critical. The value ‘none’ means disable logging for the module. The value `default` means use the value from the `DEFAULT` module.
-* *_includeTimestamp_* (boolean) : Include timestamp in log messages.
-* *_includeSource_* (boolean) : Include source file and line number in log messages.
-* *_outputFile_* (string) : Where to send log messages. Can be `stderr`, `syslog` or a file name.
-
-[id='router-configuration-file-address']
-==== address
-
-Entity type for address configuration. This is used to configure the treatment of message-routed deliveries within a particular address-space. The configuration controls distribution and address phasing.
-
-* *_prefix_* (string, required) : The address prefix for the configured settings.
-* *_distribution_* (One of [`multicast`, `closest`, `balanced`], default=`balanced`) : Treatment of traffic associated with the address.
-* *_waypoint_* (boolean) : Designates this address space as being used for waypoints. This will cause the proper address-phasing to be used.
-* *_ingressPhase_* (integer) : Advanced - Override the ingress phase for this address.
-* *_egressPhase_* (integer) : Advanced - Override the egress phase for this address.
-
-[id='router-configuration-file-linkroute']
-==== linkRoute
-
-Entity type for link-route configuration. This is used to identify remote containers that shall be destinations for routed link-attaches. The link-routing configuration applies to an addressing space defined by a prefix.
-
-* *_prefix_* (string, required) : The address prefix for the configured settings.
-* *_containerId_* (string) : it specifies that the link route will be activated if a remote container will provide a container-id matching with this value.
-* *_connection_* (string) : The name from a connector or listener.
-* *_distribution_* (One of [`linkBalanced`], default=`linkBalanced`) : Treatment of traffic associated with the address.
-* *_direction_* (One of [`in`, `out`], required) : The permitted direction of links. It is defined from a router point of view so ‘in’ means client senders (router ingress) and ‘out’ means client receivers (router egress).
-
-[id='router-configuration-file-autolink']
-==== autoLink
-
-Entity type for configuring auto-links. Auto-links are links whose lifecycle is managed by the router. These are typically used to attach to waypoints on remote containers (brokers, and so on.).
-
-* *_address_* (string, required) : The address of the provisioned object.
-* *_direction_* (One of [`in`, `out`], required) : The direction of the link to be created. In means into the router, out means out of the router.
-* *_phase_* (integer) : The address phase for this link. Defaults to `0` for `out` links and `1` for `in` links.
-* *_containerId_* (string) : ContainerID for the target container.
-* *_connection_* (string) : The name from a connector or listener.
-* *_externalAddress_* (string) : An alternate address of the node on the remote container.  This is used if the node has a different address than the address used internally by the router to route deliveries.
-
-==== console
-
-Start a websocket/tcp proxy and http file server to serve the web console.
-
-* *_listener_* (string) : The name of the listener to send the proxied tcp traffic to.
-* *_wsport_* (integer, default=`5673`) : The port on which to listen for websocket traffic.
-* *_proxy_* (string) : The full path to the proxy program to run.
-* *_home_* (string) : The full path to the html/css/js files for the console.
-* *_args_* (string) : Optional args to pass to the proxy program for logging, authentication, and so on.
-
-==== policy
-
-Defines global connection limit
-
-* *_maximumConnections_* (integer) : Global maximum number of concurrent client connections allowed. Zero implies no limit. This limit is always enforced even if no other policy settings have been defined.
-* *_enableAccessRules_* (boolean) : Enable user rule set processing and connection denial.
-* *_policyFolder_* (path) : The absolute path to a folder that holds policyRuleset definition .json files. For a small system the rulesets may all be defined in this file. At a larger scale it is better to have the policy files in their own folder and to have none of the rulesets defined here. All rulesets in all .json files in this folder are processed.
-* *_defaultApplication_* (string) : Application policyRuleset to use for connections with no open.hostname or a hostname that does not match any existing policy. For users that don’t wish to use open.hostname or any multi-tennancy feature, this default policy can be the only policy in effect for the network.
-* *_defaultApplicationEnabled_* (boolean) : Enable defaultApplication policy fallback logic.
-
-==== policyRuleset
-
-Per application definition of the locations from which users may connect and the groups to which users belong.
-
-* *_maxConnections_* (integer) : Maximum number of concurrent client connections allowed. Zero implies no limit.
-* *_maxConnPerUser_* (integer) : Maximum number of concurrent client connections allowed for any single user. Zero implies no limit.
-* *_maxConnPerHost_* (integer) : Maximum number of concurrent client connections allowed for any remote host. Zero implies no limit.
-* *_userGroups_* (map) : A map where each key is a user group name and the corresponding value is a CSV string naming the users in that group. Users who are assigned to one or more groups are deemed ‘restricted’. Restricted users are subject to connection ingress policy and are assigned policy settings based on the assigned user groups. Unrestricted users may be allowed or denied. If unrestricted users are allowed to connect then they are assigned to user group default.
-* *_ingressHostGroups_* (map) : A map where each key is an ingress host group name and the corresponding value is a CSV string naming the IP addresses or address ranges in that group. IP addresses may be FQDN strings or numeric IPv4 or IPv6 host addresses. A host range is two host addresses of the same address family separated with a hyphen. The wildcard host address ‘*’ represents any host address.
-* *_ingressPolicies_* (map) : A map where each key is a user group name and the corresponding value is a CSV string naming the ingress host group names that restrict the ingress host for the user group. Users who are members of the user group are allowed to connect only from a host in one of the named ingress host groups.
-* *_connectionAllowDefault_* (boolean) : Unrestricted users, those who are not members of a defined user group, are allowed to connect to this application. Unrestricted users are assigned to the ‘default’ user group and receive ‘default’ settings.
-* *_settings_* (map) : A map where each key is a user group name and the value is a map of the corresponding settings for that group.
diff --git a/docs/books/user-guide/configuration-security.adoc b/docs/books/user-guide/configuration-security.adoc
deleted file mode 100644
index f66eec7..0000000
--- a/docs/books/user-guide/configuration-security.adoc
+++ /dev/null
@@ -1,442 +0,0 @@
-////
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License
-////
-
-[id='security-config']
-= Security
-
-Securing your router network involves configuring authentication and authorization. You can authenticate and encrypt the router's connections using SSL/TLS or SASL. Additionally, you can authorize access to messaging resources by setting user connection restrictions and defining AMQP resource access control.
-
-[id='authenticating-remote-peers']
-== Authenticating Remote Peers
-
-You can configure {RouterName} to communicate with clients, routers, and brokers in a secure way by authenticating and encrypting the router's connections. {RouterName} supports the following security protocols:
-
-* _SSL/TLS_ for certificate-based encryption and mutual authentication
-* _SASL_ for authentication and payload encryption
-
-[id='setting-up-ssl-for-encryption-and-authentication']
-=== Setting Up SSL/TLS for Encryption and Authentication
-
-Before you can secure incoming and outgoing connections using SSL/TLS encryption and authentication, you must first set up the SSL/TLS profile in the router's configuration file.
-
-.Prerequisites
-
-You must have the following files in PEM format:
-
-* An X.509 CA certificate (used for signing the router certificate for the SSL/TLS server authentication feature).
-* A private key (with or without password protection) for the router.
-* An X.509 router certificate signed by the X.509 CA certificate.
-
-.Procedure
-
-* In the router's configuration file, add an `sslProfile` section:
-+
---
-[options="nowrap",subs="+quotes"]
-----
-sslProfile {
-    name: _NAME_
-    ciphers: _CIPHERS_
-    protocols: _PROTOCOL_
-    caCertFile: _PATH_.pem
-    certFile: _PATH_.pem
-    privateKeyFile: _PATH_.pem
-    password: _PASSWORD/PATH_TO_PASSWORD_FILE_
-    ...
-}
-----
-
-`name`:: A name for the SSL/TLS profile. You can use this name to refer to the profile from the incoming and outgoing connections.
-+
-For example:
-+
-[options="nowrap"]
-----
-name: router-ssl-profile
-----
-
-`ciphers`:: The SSL cipher suites that can be used by this SSL/TLS profile. If certain ciphers are unsuitable for your environment, you can use this attribute to restrict them from being used.
-+
-To enable a cipher list, enter one or more cipher strings separated by colons (`:`).
-+
-.Enabling a Cipher List
-====
-[options="nowrap"]
-----
-ciphers: ALL:!aNULL:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
-----
-====
-+
-To see the full list of available ciphers, use the `openssl ciphers` command. For more information about each cipher, see the link:https://www.openssl.org/docs/manmaster/man1/ciphers.html[ciphers man page^].
-
-`protocols`:: The SSL/TLS protocols that this router can use. You can specify a list of one or more of the following values: TLSv1, TLSv1.1, or TLSv1.2.
-+
-To specify multiple protocols, separate the protocols with a space.
-+
-.Specifying Multiple Protocols
-====
-This example permits the SSL/TLS profile to use TLS v1.1 and TLS v1.2 only:
-
-[options="nowrap"]
-----
-protocols: TLSv1.1 TLSv1.2
-----
-====
-+
-If you do not specify a value, the router will use the TLS protocol specified by the system-wide configuration.
-+
-[NOTE]
-====
-When setting the TLS protocol versions for the router, you should also consider the TLS protocol version (or versions) used by your client applications. If a subset of TLS protocol versions does not exist between a client and the router, the client will not be able to connect to the router.
-====
-
-`caCertFile`:: The absolute path to the file that contains the public certificates of trusted certificate authorities (CA).
-+
-For example:
-+
-[options="nowrap"]
-----
-caCertFile: /qdrouterd/ssl_certs/ca-cert.pem
-----
-
-`certFile`:: The absolute path to the file containing the PEM-formatted public certificate to be used on the local end of any connections using this profile.
-+
-For example:
-+
-[options="nowrap"]
-----
-certFile: /qdrouterd/ssl_certs/router-cert-pwd.pem
-----
-
-`privateKeyFile`:: The absolute path to the file containing the PEM-formatted private key for the above certificate.
-+
-For example:
-+
-[options="nowrap"]
-----
-privateKeyFile: /qdrouterd/ssl_certs/router-key-pwd.pem
-----
-
-`passwordFile` or `password`:: If the private key is password-protected, you must provide the password by either specifying the absolute path to a file containing the password that unlocks the certificate key, or entering the password directly in the configuration file. Entering the password directly in the configuration file is unsafe. passwordFile has been deprecated. Use password.
-+
-For example:
-+
-[options="nowrap"]
-----
-password: routerKeyPassword
-----
-
-For information about additional `sslProfile` attributes, see link:{qdrouterdConfManPageUrl}#_sslprofile[sslProfile] in the `qdrouterd.conf` man page.
---
-
-[id='setting-up-sasl-for-authentication-and-payload-encryption']
-=== Setting Up SASL for Authentication and Payload Encryption
-
-If you plan to use SASL to authenticate connections, you must first add the SASL attributes to the `router` entity in the router's configuration file. These attributes define a set of SASL parameters that can be used by the router's incoming and outgoing connections.
-
-.Prerequisites
-
-Before you can set up SASL, you must have the following:
-
-* xref:generating-sasl-database[The SASL database is generated.]
-* xref:configuring-sasl-database[The SASL configuration file is configured.]
-* The Cyrus SASL plugin is installed for each SASL mechanism you plan to use.
-+
-Cyrus SASL uses plugins to support specific SASL mechanisms. Before you can use a particular SASL mechanism, the relevant plugin must be installed. For example, you need the `cyrus-sasl-plain` plugin to use SASL PLAIN authentication.
-+
---
-// Note about searching for an installing SASL plugins.
-include::{FragmentDir}/fragment-router-sasl-para.adoc[]
---
-
-.Procedure
-
-* In the router's configuration file, add the following attributes to the `router` section:
-+
---
-[options="nowrap",subs="+quotes"]
-----
-router {
-    ...
-    saslConfigDir: _PATH_
-    saslConfigName: _FILE_NAME_
-}
-----
-
-`saslConfigDir`:: The absolute path to the SASL configuration file.
-+
-For example:
-+
-[options="nowrap"]
-----
-saslConfigDir: /qdrouterd/security
-----
-
-`saslConfigName`:: The name of the SASL configuration file. This name should _not_ include the `.conf` file extension.
-+
-For example:
-+
-[options="nowrap"]
-----
-saslConfigName: qdrouterd_sasl
-----
---
-
-[id='securing-incoming-connections']
-=== Securing Incoming Connections
-
-You can secure incoming connections by configuring each connection's `listener` entity for encryption, authentication, or both.
-
-.Prerequisites
-
-Before securing incoming connections, the security protocols you plan to use should be set up.
-
-.Choices
-
-* xref:adding-ssl-encryption-to-incoming-connection[Add SSL/TLS encryption]
-* xref:adding-sasl-authentication-to-incoming-connection[Add SASL authentication]
-* xref:adding-ssl-client-authentication-to-incoming-connection[Add SSL/TLS client authentication]
-* xref:adding-sasl-payload-encryption-to-incoming-connection[Add SASL payload encryption]
-
-[id='adding-ssl-encryption-to-incoming-connection']
-==== Adding SSL/TLS Encryption to an Incoming Connection
-
-You can configure an incoming connection to accept encrypted connections only. By adding SSL/TLS encryption, to connect to this router, a remote peer must first start an SSL/TLS handshake with the router and be able to validate the server certificate received by the router during the handshake.
-
-.Procedure
-
-* In the router's configuration file, add the following attributes to the connection's `listener` entity:
-+
---
-[options="nowrap",subs="+quotes"]
-----
-listener {
-    ...
-    sslProfile: _SSL_PROFILE_NAME_
-    requireSsl: yes
-}
-----
-
-`sslProfile`:: The name of the SSL/TLS profile you set up.
-
-`requireSsl`:: Enter `yes` to require all clients connecting to the router on this connection to use encryption.
---
-
-[id='adding-sasl-authentication-to-incoming-connection']
-==== Adding SASL Authentication to an Incoming Connection
-
-You can configure an incoming connection to authenticate the client using SASL. You can use SASL authentication with or without SSL/TLS encryption.
-
-.Procedure
-
-* In the router's configuration file, add the following attributes to the connection's `listener` section:
-+
---
-[options="nowrap",subs="+quotes"]
-----
-listener {
-    ...
-    authenticatePeer: yes
-    saslMechanisms: _MECHANISMS_
-}
-----
-
-`authenticatePeer`:: Set this attribute to `yes` to require the router to authenticate the identity of a remote peer before it can use this incoming connection.
-
-`saslMechanisms`:: The SASL authentication mechanism (or mechanisms) to use for peer authentication. You can choose any of the Cyrus SASL authentication mechanisms _except_ for `ANONYMOUS`. To specify multiple authentication mechanisms, separate each mechanism with a space.
-+
-For a full list of supported Cyrus SASL authentication mechanisms, see link:https://www.cyrusimap.org/sasl/sasl/authentication_mechanisms.html[Authentication Mechanisms^].
---
-
-[id='adding-ssl-client-authentication-to-incoming-connection']
-==== Adding SSL/TLS Client Authentication to an Incoming Connection
-
-You can configure an incoming connection to authenticate the client using SSL/TLS.
-
-The base SSL/TLS configuration provides content encryption and server authentication, which means that remote peers can verify the router's identity, but the router cannot verify a peer's identity.
-
-However, you can require an incoming connection to use SSL/TLS client authentication, which means that remote peers must provide an additional certificate to the router during the SSL/TLS handshake. By using this certificate, the router can verify the client's identity without using a username and password.
-
-You can use SSL/TLS client authentication with or without SASL authentication.
-
-.Procedure
-
-* In the router's configuration, file, add the following attribute to the connection's `listener` entity:
-+
---
-[options="nowrap"]
-----
-listener {
-    ...
-    authenticatePeer: yes
-}
-----
-
-`authenticatePeer`:: Set this attribute to `yes` to require the router to authenticate the identity of a remote peer before it can use this incoming connection.
---
-
-[id='adding-sasl-payload-encryption-to-incoming-connection']
-==== Adding SASL Payload Encryption to an Incoming Connection
-
-If you do not use SSL/TLS, you can still encrypt the incoming connection by using SASL payload encryption.
-
-.Procedure
-
-* In the router's configuration file, add the following attributes to the connection's `listener` section:
-+
---
-[options="nowrap",subs="+quotes"]
-----
-listener {
-    ...
-    requireEncryption: yes
-    saslMechanisms: _MECHANISMS_
-}
-----
-
-`requireEncryption`:: Set this attribute to `yes` to require the router to use SASL payload encryption for the connection.
-
-`saslMechanisms`:: The SASL mechanism to use. You can choose any of the Cyrus SASL authentication mechanisms. To specify multiple authentication mechanisms, separate each mechanism with a space.
-+
-For a full list of supported Cyrus SASL authentication mechanisms, see link:https://www.cyrusimap.org/sasl/sasl/authentication_mechanisms.html[Authentication Mechanisms^].
---
-
-[id='securing-outgoing-connections']
-=== Securing Outgoing Connections
-
-You can secure outgoing connections by configuring each connection's `connector` entity for encryption, authentication, or both.
-
-.Prerequisites
-
-Before securing outgoing connections, the security protocols you plan to use should be set up.
-
-.Choices
-
-* xref:adding-ssl-authentication-to-outgoing-connection[Add SSL/TLS authentication]
-* xref:adding-sasl-authentication-to-outgoing-connection[Add SASL authentication]
-
-[id='adding-ssl-authentication-to-outgoing-connection']
-==== Adding SSL/TLS Client Authentication to an Outgoing Connection
-
-If an outgoing connection connects to an external client configured with mutual authentication, you should ensure that the outgoing connection is configured to provide the external client with a valid security certificate during the SSL/TLS handshake.
-
-You can use SSL/TLS client authentication with or without SASL authentication.
-
-.Procedure
-
-* In the router's configuration file, add the `sslProfile` attribute to the connection's `connector` entity:
-+
---
-[options="nowrap",subs="+quotes"]
-----
-connector {
-    ...
-    sslProfile: _SSL_PROFILE_NAME_
-}
-----
-
-`sslProfile`:: The name of the SSL/TLS profile you set up.
---
-
-[id='adding-sasl-authentication-to-outgoing-connection']
-==== Adding SASL Authentication to an Outgoing Connection
-
-You can configure an outgoing connection to provide authentication credentials to the external container. You can use SASL authentication with or without SSL/TLS encryption.
-
-.Procedure
-
-* In the router's configuration file, add the `saslMechanisms` attribute to the connection's `connector` entity:
-+
---
-[options="nowrap",subs="+quotes"]
-----
-connector {
-    ...
-    saslMechanisms: _MECHANISMS_
-    saslUsername: _USERNAME_
-    saslPassword: _PASSWORD_
-}
-----
-
-`saslMechanisms`:: One or more SASL mechanisms to use to authenticate the router to the external container. You can choose any of the Cyrus SASL authentication mechanisms. To specify multiple authentication mechanisms, separate each mechanism with a space.
-+
-For a full list of supported Cyrus SASL authentication mechanisms, see link:https://www.cyrusimap.org/sasl/sasl/authentication_mechanisms.html[Authentication Mechanisms^].
-`saslUsername`:: If any of the SASL mechanisms uses username/password authentication, then provide the username to connect to the external container.
-`saslPassword`:: If any of the SASL mechanisms uses username/password authentication, then provide the password to connect to the external container. You can specify the password by specifying an environment variable that stores the password, a file that stores the password, or by entering the password in clear text. To use an environment variable, specify "saslPassword: env:". Use this option with caution, because the environment of other processes is visible on certain platforms (for e [...]
---
-
-[id='integrating-with-kerberos']
-=== Integrating with Kerberos
-
-By using the `GSSAPI` SASL mechanism, you can configure {RouterName} to authenticate incoming connections using Kerberos.
-
-.Prerequisites
-
-* A Kerberos infrastructure must be deployed in your environment.
-
-* In the Kerberos environment, a service principal of `amqp/_HOSTNAME_@_REALM_` must be configured.
-+
-This is the service principal that {RouterName} uses.
-
-* The `cyrus-sasl-gssapi` package must be installed on each client and router host machine.
-
-* xref:setting-up-sasl-for-authentication-and-payload-encryption[SASL must be set up for {RouterName}].
-
-.Procedure
-
-. On the router's host machine, open the `/etc/sasl2/qdrouterd.conf` configuration file.
-+
---
-.An `/etc/sasl2/qdrouterd.conf` Configuration File
-====
-[options="nowrap"]
-----
-pwcheck_method: auxprop
-auxprop_plugin: sasldb
-sasldb_path: qdrouterd.sasldb
-keytab: /etc/krb5.keytab
-mech_list: ANONYMOUS DIGEST-MD5 EXTERNAL PLAIN GSSAPI
-----
-====
---
-
-. Verify the following:
-** The `mech_list` attribute contains the `GSSAPI` mechanism.
-** The `keytab` attribute points to the location of the keytab file.
-
-
-. Open the router's configuration file.
-
-. For each incoming connection that should use Kerberos for authentication, set the router's `listener` to use the `GSSAPI` mechanism.
-+
---
-.A `listener` in the Router Configuration File
-====
-[options="nowrap"]
-----
-listener {
-    ...
-    authenticatePeer: yes
-    saslMechanisms: GSSAPI
-}
-----
-====
-
-For more information about these attributes, see xref:adding-sasl-authentication-to-incoming-connection[].
---
diff --git a/docs/books/user-guide/getting-started.adoc b/docs/books/user-guide/getting-started.adoc
deleted file mode 100644
index c937257..0000000
--- a/docs/books/user-guide/getting-started.adoc
+++ /dev/null
@@ -1,156 +0,0 @@
-////
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License
-////
-
-[id='getting-started']
-= Getting Started
-
-Before configuring {RouterName}, you should understand how to start the router, how it is configured by default, and how to use it in a simple peer-to-peer configuration. 
-
-[id='starting-the-router']
-== Starting the Router
-
-.Procedure
-
-// Step 1 for starting the router.
-include::{FragmentDir}/fragment-starting-router-step.adoc[]
-+
-[NOTE]
-====
-You can specify a different configuration file with which to start the router. For more information, see xref:methods-for-changing-router-configuration[_Changing a Router's Configuration_].
-====
-+
-The router starts, using the default configuration file stored at `/etc/qpid-dispatch/qdrouterd.conf`. 
-
-. View the log to verify the router status:
-+
-[options="nowrap"]
-----
-$ qdstat --log
-----
-+
-This example shows that the router was correctly installed, is running, and is ready to route traffic between clients:
-+
-[options="nowrap"]
-----
-$ qdstat --log
-Fri May 20 09:38:03 2017 SERVER (info) Container Name: Router.A // <1>
-Fri May 20 09:38:03 2017 ROUTER (info) Router started in Standalone mode // <2>
-Fri May 20 09:38:03 2017 ROUTER (info) Router Core thread running. 0/Router.A
-Fri May 20 09:38:03 2017 ROUTER (info) In-process subscription M/$management
-Fri May 20 09:38:03 2017 AGENT (info) Activating management agent on $_management_internal // <3>
-Fri May 20 09:38:03 2017 ROUTER (info) In-process subscription L/$management
-Fri May 20 09:38:03 2017 ROUTER (info) In-process subscription L/$_management_internal
-Fri May 20 09:38:03 2017 DISPLAYNAME (info) Activating DisplayNameService on $displayname
-Fri May 20 09:38:03 2017 ROUTER (info) In-process subscription L/$displayname
-Fri May 20 09:38:03 2017 CONN_MGR (info) Configured Listener: 0.0.0.0:amqp proto=any role=normal // <4>
-Fri May 20 09:38:03 2017 POLICY (info) Policy configured maximumConnections: 0, policyFolder: '', access rules enabled: 'false'
-Fri May 20 09:38:03 2017 POLICY (info) Policy fallback defaultApplication is disabled
-Fri May 20 09:38:03 2017 SERVER (info) Operational, 4 Threads Running // <5>
-----
-<1> The name of this router instance.
-<2> By default, the router starts in _standalone_ mode, which means that it cannot connect to other routers or be used in a router network.
-<3> The management agent. It provides the `$management` address, through which management tools such as `qdmanage` and `qdstat` can perform create, read, update, and delete (CRUD) operations on the router. As an AMQP endpoint, the management agent supports all operations defined by the link:https://www.oasis-open.org/committees/download.php/54441/AMQP%20Management%20v1.0%20WD09[AMQP management specification (Draft 9)].
-<4> A listener is started on all available network interfaces and listens for connections on the standard AMQP port (5672, which is not encrypted).
-<5> Threads for handling message traffic and all other internal operations.
- 
-== Routing Messages in a Peer-to-Peer Configuration
-
-// XXX Calling this peer-to-peer poses some problems.  It's also
-// technically client-server in this instance, and most people think
-// those two things are exclusive.
-
-This example demonstrates how the router can connect clients by receiving and sending messages between them. It uses the router's default configuration file and does not require a broker.
-
-.Peer-to-peer Communication
-image::01-peer-to-peer.png[Peer-to-peer Communication, align="center"]
-
-As the diagram indicates, the configuration consists of an {RouterName} component with two clients connected to it: a sender and a receiver. The receiver wants to receive messages on a specific address, and the sender sends
-messages to that address. 
-
-A broker is not used in this example, so there is no _"store and forward"_ mechanism in the middle. Instead, the messages flow from sender to receiver only if the receiver is online, and the sender can confirm that the messages have arrived at their destination.
-
-This example uses a {ClientAmqpPythonName} client to start a receiver client, and then send five messages from the sender client.
-
-.Prerequisites
-
-{ClientAmqpPythonName} must be installed before you can complete the peer-to-peer routing example. For more information, see {ClientAmqpPythonUrl}.
-
-.Procedure
-
-. xref:starting-the-receiver-client[Start the receiver client].
-. xref:sending-messages[Send messages].
-
-[id='starting-the-receiver-client']
-=== Starting the Receiver Client
-
-In this example, the receiver client is started first. This means that the messages will be sent as soon as the sender client is started.
-
-[NOTE]
-====
-In practice, the order in which you start senders and receivers does not matter. In both cases, messages will be sent as soon as the receiver comes online.
-====
-
-.Procedure
-
-* To start the receiver by using the Python receiver client, navigate to the Python examples directory and run the `simple_recv.py` example:
-+
---
-[options="nowrap",subs="+quotes"]
-----
-$ cd __INSTALL_DIR__/examples/python/
-$ python simple_recv.py -a 127.0.0.1:5672/examples -m 5
-----
-
-This command starts the receiver and listens on the default address (`127.0.0.1:5672/examples`). The receiver is also set to receive a maximum of five messages.
---
-
-[id='sending-messages']
-=== Sending Messages
-
-After starting the receiver client, you can send messages from the sender. These messages will travel through the router to the receiver.
-
-.Procedure
-
-* In a new terminal window, navigate to the Python examples directory and run the `simple_send.py` example:
-+
---
-[options="nowrap",subs="+quotes"]
-----
-$ cd __INSTALL_DIR__/examples/python/
-$ python simple_send.py -a 127.0.0.1:5672/examples -m 5
-----
-
-This command sends five auto-generated messages to the default address (`127.0.0.1:5672/examples`) and then confirms that they were delivered and acknowledged by the receiver:
-
-[options="nowrap"]
-----
-all messages confirmed
-----
-
-The receiver client receives the messages and displays their content:
-
-[options="nowrap"]
-----
-{u'sequence': 1L}
-{u'sequence': 2L}
-{u'sequence': 3L}
-{u'sequence': 4L}
-{u'sequence': 5L}
-----
---
diff --git a/docs/books/user-guide/images b/docs/books/user-guide/images
new file mode 120000
index 0000000..5e67573
--- /dev/null
+++ b/docs/books/user-guide/images
@@ -0,0 +1 @@
+../images
\ No newline at end of file
diff --git a/docs/books/user-guide/introduction.adoc b/docs/books/user-guide/introduction.adoc
deleted file mode 100644
index 37eb37c..0000000
--- a/docs/books/user-guide/introduction.adoc
+++ /dev/null
@@ -1,124 +0,0 @@
-////
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License
-////
-
-[id='introduction']
-= Introduction
-
-[id='overview']
-== Overview
-
-The {RouterName} is an AMQP message router that provides
-advanced interconnect capabilities. It allows flexible routing of
-messages between any AMQP-enabled endpoints, whether they be clients,
-servers, brokers or any other entity that can send or receive standard
-AMQP messages.
-
-A messaging client can make a single AMQP connection into a messaging
-bus built of {RouterName} routers and, over that connection, exchange
-messages with one or more message brokers, and at the same time exchange
-messages directly with other endpoints without involving a broker at
-all.
-
-The router is an intermediary for messages but it is _not_ a broker. It
-does not _take responsibility for_ messages. It will, however, propagate
-settlement and disposition across a network such that delivery
-guarantees are met. In other words: the router network will deliver the
-message, possibly via several intermediate routers, _and_ it will route
-the acknowledgement of that message by the ultimate receiver back across
-the same path. This means that _responsibility_ for the message is
-transfered from the original sender to the ultimate receiver __as if
-they were directly connected__. However this is done via a flexible
-network that allows highly configurable routing of the message
-transparent to both sender and receiver.
-
-There are some patterns where this enables "brokerless messaging"
-approaches that are preferable to brokered approaches. In other cases a
-broker is essential (in particular where you need the separation of
-responsibility and/or the buffering provided by store-and-forward) but a
-dispatch network can still be useful to tie brokers and clients together
-into patterns that are difficult with a single broker.
-
-For a "brokerless" example, consider the common brokered implementation
-of the request-response pattern, a client puts a request on a queue and
-then waits for a reply on another queue. In this case the broker can be
-a hindrance - the client may want to know immediately if there is nobody
-to serve the request, but typically it can only wait for a timeout to
-discover this. With a {RouterName} network, the client can be informed
-immediately if its message cannot be delivered because nobody is
-listening. When the client receives acknowledgement of the request it
-knows not just that it is sitting on a queue, but that it has actually
-been received by the server.
-
-For an exampe of using {RouterName} to enhance the use of brokers, consider
-using an array of brokers to implement a scalable distributed work
-queue. A dispatch network can make this appear as a single queue, with
-senders publishing to a single address and receivers subscribing to a
-single address. The dispatch network can distribute work to any broker
-in the array and collect work from any broker for any receiver. Brokers
-can be shut down or added without affecting clients. This elegantly
-solves the common difficulty of "stuck messages" when implementing this
-pattern with brokers alone. If a receiver is connected to a broker that
-has no messages, but there are messages on another broker, you have to
-somehow transfer them or leave them "stuck". With a {RouterName} network,
-_all_ the receivers are connected to _all_ the brokers. If there is a
-message anywhere it can be delivered to any receiver.
-
-{RouterName} is meant to be deployed in topologies of multiple routers,
-preferably with redundant paths. It uses link-state routing protocols
-and algorithms (similar to OSPF or IS-IS from the networking world) to
-calculate the best path from every point to every other point and to
-recover quickly from failures. It does not need to use clustering for
-high availability; rather, it relies on redundant paths to provide
-continued connectivity in the face of system or network failure. Because
-it never takes responsibility for messages it is effectively stateless.
-Messages not delivered to their final destination will not be
-acknowledged to the sender and therefore the sender can re-send such
-messages if it is disconnected from the network.
-
-[id='benefits']
-== Benefits
-
-Simplifies connectivity
-
-* An endpoint can do all of its messaging through a single transport
-connection
-* Avoid opening holes in firewalls for incoming connections
-
-Provides messaging connectivity where there is no TCP/IP connectivity
-
-* A server or broker can be in a private IP network (behind a NAT
-firewall) and be accessible by messaging endpoints in other networks
-(learn more).
-
-Simplifies reliability
-
-* Reliability and availability are provided using redundant topology,
-not server clustering
-* Reliable end-to-end messaging without persistent stores
-* Use a message broker only when you need store-and-forward semantics
-
-[id='features']
-== Features
-
-* Can be deployed stand-alone or in a network of routers
-** Supports arbitrary network topology - no restrictions on redundancy
-+
-- Automatic route computation - adjusts quickly to changes in topology
-* Provides remote access to brokers or other AMQP servers
-* Security
diff --git a/docs/books/user-guide/management-entities.adoc b/docs/books/user-guide/management-entities.adoc
deleted file mode 100644
index 3f677e3..0000000
--- a/docs/books/user-guide/management-entities.adoc
+++ /dev/null
@@ -1,24 +0,0 @@
-////
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License
-////
-
-= Management Entities
-
-The {RouterName} management schema provides a set of management entities that you can use to configure and operate a router.
-
-For details about the management entities, see {ManagementEntitiesLink}.
\ No newline at end of file
diff --git a/docs/books/user-guide/management.adoc b/docs/books/user-guide/management.adoc
deleted file mode 100644
index b5e1f2a..0000000
--- a/docs/books/user-guide/management.adoc
+++ /dev/null
@@ -1,26 +0,0 @@
-////
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License
-////
-
-= Managing the router network
-
-// Managing Using qdmanage
-include::managing-using-qdmanage.adoc[leveloffset=+1]
-
-// Management Entities
-include::management-entities.adoc[leveloffset=+1]
diff --git a/docs/books/user-guide/modules/_common b/docs/books/user-guide/modules/_common
deleted file mode 120000
index 739f516..0000000
--- a/docs/books/user-guide/modules/_common
+++ /dev/null
@@ -1 +0,0 @@
-../../_common
\ No newline at end of file
diff --git a/docs/books/user-guide/modules/_images b/docs/books/user-guide/modules/_images
deleted file mode 120000
index fe463e8..0000000
--- a/docs/books/user-guide/modules/_images
+++ /dev/null
@@ -1 +0,0 @@
-../../_images
\ No newline at end of file
diff --git a/docs/books/user-guide/modules/user-guide b/docs/books/user-guide/modules/user-guide
new file mode 120000
index 0000000..9802c15
--- /dev/null
+++ b/docs/books/user-guide/modules/user-guide
@@ -0,0 +1 @@
+../../modules/user-guide
\ No newline at end of file
diff --git a/docs/books/user-guide/theory_of_operation.adoc b/docs/books/user-guide/theory_of_operation.adoc
deleted file mode 100644
index d3e7a49..0000000
--- a/docs/books/user-guide/theory_of_operation.adoc
+++ /dev/null
@@ -1,394 +0,0 @@
-////
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License
-////
-
-= Theory of Operation
-
-This section introduces some key concepts about the router.
-
-== Overview
-
-The {RouterName} is an _application layer_ program running as a normal
-user program or as a daemon.
-
-{RouterName} accepts AMQP connections from clients and creates AMQP
-connections to brokers or AMQP-based services. {RouterName} classifies
-incoming AMQP messages and routes the
-messages between message producers and message consumers.
-
-{RouterName} is meant to be deployed in topologies of multiple routers,
-preferably with redundant paths. It uses link-state routing protocols
-and algorithms similar to OSPF or IS-IS from the networking world to
-calculate the best path from every message source to every message
-destination and to recover quickly from failures. {RouterName} relies on
-redundant network paths to provide continued connectivity in the face
-of system or network failure.
-
-A messaging client can make a single AMQP connection into a messaging
-bus built with routers and, over that connection, exchange messages
-with one or more message brokers connected to any router in the
-network. At the same time the client can exchange messages directly
-with other endpoints without involving a broker at all.
-
-== Connections
-
-{RouterName} connects clients, servers, AMQP services, and other
-routers through network connections.
-
-=== Listener
-
-{RouterName} provides _listeners_ that accept client connections.
-A client connecting to a router listener uses the
-same methods that it would use to connect to a broker. From the
-client's perspective the router connection and link establishment are
-identical to broker connection and link establishment.
-
-Several types of listeners are defined by their role.
-
-[cols="20,80"]
-|===
-| Role | Description
-| normal | The connection is used for AMQP clients using normal message delivery.
-| inter-router | The connection is assumed to be to another router in the network.  Inter-router discovery and routing protocols can only be used over inter-router connections.
-| route-container | The connection is a broker or other resource that holds known addresses. The router will use this connection to create links as necessary. The addresses are available for routing only after the remote resource has created a connection.
-| edge | The connection is between an edge router and an interior router.
-|===
-
-=== Connector
-
-{RouterName} can also be configured to create outbound connections to
-messaging brokers or other AMQP entities using _connectors_. A
-connector is defined with the network address of the broker and the
-name or names of the resources that are available in that broker. When
-a router connects to a broker through a connector it uses the same
-methods a normal messaging client would use when connecting to the
-broker.
-
-Several types of connectors are defined by their role.
-
-[cols="20,80"]
-|===
-| Role | Description
-| normal | The connection is used for AMQP clients using normal message delivery. On this connector the router will initiate the connection but it will never create any links. Links are to be created by the peer that accepts the connection.
-| inter-router | The connection is assumed to be to another router in the network.  Inter-router discovery and routing protocols can only be used over inter-router connections.
-| route-container | The connection is to a broker or other resource that holds known addresses. The router will use this connection to create links as necessary. The addresses are available for routing only after the router has created a connection to the remote resource.
-| edge | The connection is between an edge router and an interior router.
-|===
-
-== Addresses
-
-AMQP addresses are used to control the flow of messages across a
-network of routers. Addresses are used in a number of different places
-in the AMQP 1.0 protocol. They can be used in a specific message in
-the _to_ and _reply-to_ fields of a message's properties. They are also
-used during the creation of links in the _address_ field of a _source_ or
-a _target_.
-
-[NOTE]
-====
-Addresses in this discussion refer to AMQP protocol addresses and not
-to TCP/IP network addresses. TCP/IP network addresses are used by
-messaging clients, brokers, and routers to create AMQP connections.
-AMQP protocol addresses are the names of source and destination
-endpoints for messages within the messaging network.
-====
-
-Addresses designate various kinds of entities in a messaging network:
-
-* Endpoint processes that consume data or offer a service
-* Topics that match multiple consumers to multiple producers
-* Entities within a messaging broker:
-** Queues
-** Durable Topics
-** Exchanges
-
-The syntax of an AMQP address is opaque as far as the router network
-is concerned. A syntactical structure may be used by the administrator
-who creates addresses but the router treats them as opaque
-strings.
-
-{RouterName} maintains several classes of address based on how the address is
-configured or discovered.
-
-[cols="25,75"]
-|===
-| Address Type | Description
-| mobile | The address is a rendezvous point between senders and receivers. The router aggregates and serializes messages from senders and distributes messages to receivers.
-| link route | The address defines a private messaging path between a sender and a receiver. The router simply passes messages between the end points.
-|===
-
-=== Mobile Addresses
-
-Routers consider addresses to be mobile such that any users of an
-address may be directly connected to any router in a network and may
-move around the topology. In cases where messages are broadcast to or
-balanced across multiple consumers, the address users may be connected
-to multiple routers in the network.
-
-Mobile addresses are rendezvous points for senders and receivers.
-Messages arrive at the mobile address and are dispatched to their
-destinations according to the routing defined for the mobile address.
-The details of these routing patterns are discussed later.
-
-Mobile addresses may be discovered during normal router operation or
-configured through management settings.
-
-==== Discovered Mobile Addresses
-
-Mobile addresses are created when a client creates a link to a source
-or destination address that is unknown to the router network.
-
-Suppose a service provider wants to offer _my-service_ that clients
-may use. The service provider must open a receiver link with source
-address _my-service_.  The router creates a mobile address
-_my-service_ and propagates the address so that it is known to every
-router in the network.
-
-Later a client wants to use the service and creates a sending link
-with target address _my-service_. The router matches the service
-provider's receiver having source address _my-service_ to the client's
-sender having target address _my-service_ and routes messages between
-the two.
-
-Any number of other clients can create links to the service as
-well. The clients do not have to know where in the router network the
-service provider is physically located nor are the clients required to
-connect to a specific router to use the service. Regardless of how
-many clients are using the service the service provider needs only a
-single connection and link into the router network.
-
-Another view of this same scenario is when a client tries to use the
-service before service provider has connected to the network. In this
-case the router network creates the mobile address _my-service_ as
-before. However, since the mobile address has only client sender links
-and no receiver links the router stalls the clients and prevents them
-from sending any messages.  Later, after the service provider connects
-and creates the receiver link, the router will issue credits to the
-clients and the messages will begin to flow between the clients and
-the service.
-
-The service provider can connect, disconnect, and reconnect from a
-different location without having to change any of the clients or
-their connections.  Imagine having the service running on a
-laptop. One day the connection is from corporate headquarters and the
-next day the connection is from some remote location. In this case the
-service provider's computer will typically have different host IP
-addresses for each connection. Using the router network the service
-provider connects to the router network and offers the named service
-and the clients connect to the router network and consume from the
-named service. The router network routes messages between the mobile
-addresses effectively masking host IP addresses of the service
-provider and the client systems.
-
-==== Configured Mobile Addresses
-
-Mobile addresses may be configured using the router _autoLink_
-object. An address created via an _autoLink_ represents a queue,
-topic, or other service in an external broker. Logically the
-_autoLink_ addresses are treated by the router network as if the
-broker had connected to the router and offered the services itself.
-
-For each configured mobile address the router will create a single
-link to the external resource. Messages flow between sender links and
-receiver links the same regardless if the mobile address was
-discovered or configured.
-
-Multiple _autoLink_ objects may define the same address on multiple
-brokers.  In this case the router network creates a sharded resource
-split between the brokers. Any client can seamlessly send and receive
-messages from either broker.
-
-Note that the brokers do not need to be clustered or federated to
-receive this treatment. The brokers may even be from different vendors
-or be different versions of the same broker yet still work together to
-provide a larger service platform.
-
-=== Link Route Addresses
-
-Link route addresses may be configured using the router _linkRoute_
-object. An link route address represents a queue, topic, or other
-service in an external broker similar to addresses configured by
-_autoLink_ objects. For link route addresses the router propagates a
-separate link attachment to the broker resource for each incoming
-client link. The router does not automatically create any links to the
-broker resource.
-
-Using link route addresses the router network does not participate in
-aggregated message distribution. The router simply passes message
-delivery and settlement between the two end points.
-
-== Message Routing
-
-Addresses have semantics associated with them that are assigned when
-the address is provisioned or discovered.  The semantics of an address
-control how routers behave when they see the address being
-used. Address semantics include the following considerations:
-
-* Routing pattern - balanced, closest, multicast
-* Routing mechanism - message routed, link routed
-
-// * TODO: describe these???
-// * Undeliverable action - drop, hold and retry, redirect
-// * Reliability - N destinations, etc.
-
-=== Routing Patterns
-
-Routing patterns define the paths that a message with a mobile address
-can take across a network. These routing patterns can be used for both
-direct routing, in which the router distributes messages between
-clients without a broker, and indirect routing, in which the router
-enables clients to exchange messages through a broker.
-
-Note that the routing patterns fall into two categories:  Anycast
-(Balanced and Closest) and Multicast.  There is no concept of
-"unicast" in which there is only one consumer for an address.
-
-Anycast distribution delivers each message to one consumer whereas
-multicast distribution delivers each message to all consumers.
-
-Anycast delivery is reliable when the message deliveries are
-unsettled. There is a reliability contract that the router network
-abides by when delivering unsettled messages to anycast addresses.
-For every such delivery sent by a producer, the router network
-guarantees that one of the following outcomes will occur:
-
-* The delivery shall be settled with ACCEPTED or REJECTED disposition where the disposition is supplied by the consumer.
-
-* The delivery shall be settled with RELEASED disposition, meaning that the message was not delivered to any consumer.
-
-* The delivery shall be settled with MODIFIED disposition, meaning that the message may have been delivered to a consumer but should be considered in-doubt and re-sent.
-
-* The connection to the producer shall be dropped, signifying that all unsettled deliveries should now be considered in-doubt by the producer and later re-sent.
-
-Multicast delivery is not reliable. If a producer sends an unsettled delivery, the disposition may be ACCEPTED or RELEASED.
-
-* If ACCEPTED, there is no guarantee that the message was delivered to any consumer.
-
-* If RELEASED, the message was definitely not delivered to any consumer.
-
-==== Balanced
-
-An anycast method which allows multiple receivers to use the same
-address. In this case, messages (or links) are routed to exactly one
-of the receivers and the network attempts to balance the traffic load
-across the set of receivers using the same address. This routing
-delivers messages to receivers based on how quickly they settle the
-deliveries. Faster receivers get more messages.
-
-==== Closest
-
-An anycast method in which even if there are more receivers for the
-same address, every message is sent along the shortest path to reach
-the destination. This means that only one receiver will get the
-message. Each message is delivered to the closest receivers in terms
-of topology cost. If there are multiple receivers with the same lowest
-cost, deliveries will be spread evenly among those receivers.
-
-==== Multicast
-
-Having multiple consumers on the same address at the same time,
-messages are routed such that each consumer receives one copy of the
-message.
-
-
-=== Routing Mechanisms
-
-The fact that addresses can be used in different ways suggests that
-message routing can be accomplished in different ways. Before going
-into the specifics of the different routing mechanisms, it would be
-good to first define what is meant by the term _routing_:
-
-    In a network built of multiple, interconnected routers 'routing'
-    determines which connection to use to send a message directly
-    to its destination or one step closer to its destination.
-
-Each router serves as the terminus of a collection of incoming and
-outgoing links. Some of the links are designated for message routing,
-and others are designated for link routing. In both cases, the links
-either connect directly to endpoints that produce and consume
-messages, or they connect to other routers in the network along
-previously established connections.
-
-==== Message Routed
-
-Message routing occurs upon delivery of a message and is done based on
-the address in the message's _to_ field.
-
-When a delivery arrives on an incoming message-routing link, the
-router extracts the address from the delivered message's _to_ field and
-looks the address up in its routing table. The lookup results in zero
-or more outgoing links onto which the message shall be resent.
-
-Message routing can also occur without an address in the
-message's _to_ field if the incoming link has a target address. In
-fact, if the sender uses a link with a target address, the _to_ field
-shall be ignored even if used.
-
-==== Link Routed
-
-Link routing occurs when a new link is attached to the router across
-one of its AMQP connections. It is done based on the _target.address_
-field of an inbound link and the _source.address_ field of an outbound
-link.
-
-Link routing uses the same routing table that message routing
-uses. The difference is that the routing occurs during the link-attach
-operation, and link attaches are propagated along the appropriate path
-to the destination. What results is a chain of links, connected
-end-to-end, from source to destination. It is similar to a virtual
-circuit in a telecom system.
-
-Each router in the chain holds pairs of link termini that are tied
-together. The router then simply exchanges all deliveries, delivery
-state changes, and link state changes between the two termini.
-
-The endpoints that use the link chain do not see any difference in
-behavior between a link chain and a single point-to-point link. All of
-the features available in the link protocol (flow control,
-transactional delivery, etc.) are available over a routed link-chain.
-
-=== Message Settlement
-
-Messages may be delivered with varying degrees of reliability.
-
-* At most once
-* At least once
-* Exactly once
-
-The reliability is negotiated between the client and server during
-link establishment. The router handles all levels of reliability by treating
-messages as either _pre-settled_ or _unsettled_.
-
-[cols="20,80"]
-|===
-| Delivery | Handling
-| pre-settled | If the arriving delivery is pre-settled (i.e., fire and forget), the incoming delivery shall be settled by the router, and the outgoing deliveries shall also be pre-settled. In other words, the pre-settled nature of the message delivery is propagated across the network to the message's destination.
-| unsettled | Unsettled delivery is also propagated across the network. Because unsettled delivery records cannot be discarded, the router tracks the incoming deliveries and keeps the association of the incoming deliveries to the resulting outgoing deliveries. This kept association allows the router to continue to propagate changes in delivery state (settlement and disposition) back and forth along the path which the message traveled.
-|===
-
-== Security
-
-{RouterName} uses the SSL protocol and related certificates and SASL
-protocol mechanisms to encrypt and authenticate remote peers. Router
-listeners act as network servers and router connectors act as network
-clients. Both connection types may be configured securely with SSL
-and SASL.
-
-The router `policy` module is an optional authorization mechanism
-enforcing user connection restrictions and AMQP resource access
-control.
diff --git a/docs/books/user-guide/understand-router-configuration.adoc b/docs/books/user-guide/understand-router-configuration.adoc
deleted file mode 100644
index d742447..0000000
--- a/docs/books/user-guide/understand-router-configuration.adoc
+++ /dev/null
@@ -1,342 +0,0 @@
-////
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License
-////
-
-[id='router-configuration']
-= Configuration
-
-Before starting {RouterName}, you should understand where the router's configuration file is stored, how the file is structured, and the methods you can use to modify it.
-
-== Accessing the Router Configuration File
-
-The router's configuration is defined in the router configuration file. You can access this file to view and modify that configuration.
-
-.Procedure
-
-* Open the following file: `/etc/qpid-dispatch/qdrouterd.conf`.
-+
---
-When {RouterName} is installed, `qdrouterd.conf` is installed in this directory by default. When the router is started, it runs with the settings defined in this file.
-
-For more information about the router configuration file (including available entities and attributes), see the {qdrouterdManPageLink}.
---
-
-== How the Router Configuration File is Structured
-
-Before you can make changes to a router configuration file, you should understand how the file is structured.
-
-The configuration file contains sections. A section is a configurable entity, and it contains a set of attribute name-value pairs that define the settings for that entity. The syntax is as follows:
-
-[options="nowrap"]
-----
-sectionName {
-    attributeName: attributeValue
-    attributeName: attributeValue
-    ...
-}
-----
-
-[id='methods-for-using-pattern-matching']
-== Methods for Using Pattern Matching and Wildcards
-
-The router configuration file supports pattern matching and wildcards to enable you to match multiple values for certain attributes. However, the syntax varies based on the type of entity that you are configuring. 
-
-[id='router-address-pattern-matching']
-=== Pattern Matching for Addresses
-
-In some router configuration scenarios, you might need to use pattern matching to match a range of addresses rather than a single, literal address. Address patterns match any address that corresponds to the pattern.
-
-An address pattern is a sequence of tokens (typically words) that are delimited by either `.` or `/` characters. They also can contain special wildcard characters that represent words:
-
-* `*` represents exactly one word
-* `#` represents zero or more words
-
-.Address Pattern
-====
-This address contains two tokens, separated by the `/` delimiter:
-
-`my/address`
-====
-
-.Address Pattern with Wildcard
-====
-This address contains three tokens. The `*` is a wildcard, representing any single word that might be between `my` and `address`:
-
-`my/*/address`
-====
-
-The following table shows some address patterns and examples of the addresses that would match them:
-
-[options="header"]
-|===
-| This pattern... | Matches... | But not...
-
-a| `news/*`
-a| `news/europe`
-
-`news/usa`
-a| `news`
-
-`news/usa/sports`
-
-a| `news/#`
-a| `news`
-
-`news/europe`
-
-`news/usa/sports`
-a| `europe`
-
-`usa`
-
-a| `news/europe/#`
-a| `news/europe`
-
-`news/europe/sports`
-
-`news/europe/politics/fr`
-a| `news/usa`
-
-`europe`
-
-a| `news/*/sports`
-a| `news/europe/sports` 
-
-`news/usa/sports`
-a| `news`
-
-`news/europe/fr/sports`
-
-|===
-
-[id='pattern-matching-vhost-policy-hostnames']
-=== Pattern Matching for Vhost Policy Hostnames
-
-In a vhost policy, vhost hostnames can be either literal hostnames or patterns that cover a range of hostnames.
-
-A hostname pattern is a sequence of words with one or more of the following wildcard characters:
-
-* `*` represents exactly one word
-* `#` represents zero or more words
-
-The following table shows some examples of hostname patterns:
-
-[options="header"]
-|===
-| This pattern... | Matches... | But not...
-
-a| `*.example.com` 
-a| `www.example.com` 
-a| `example.com`
-`srv2.www.example.com`
-
-a| `#.example.com` 
-a| `example.com`
-`www.example.com`
-`a.b.c.d.example.com`
-a| `myhost.com`
-
-a| `www.*.test.example.com`
-a| `www.a.test.example.com`
-a| `www.test.example.com`
-`www.a.b.c.test.example.com`
-
-a| `www.#.test.example.com` 
-a| `www.test.example.com`
-`www.a.test.example.com`
-`www.a.b.c.test.example.com`
-a| `test.example.com`
-|===
-
-Vhost hostname pattern matching applies the following precedence rules:
-
-[options="header"]
-|===
-| Policy pattern | Precedence
-| Exact match | High
-| *           | Medium
-| #           | Low
-|===
-
-[NOTE]
-====
-{RouterName} does not permit you to create vhost hostname patterns that conflict with existing patterns. This includes patterns that can be reduced to be the same as an existing pattern. For example, you would not be able to create the `\#.#.\#.#.com` pattern if `#.com` already exists.
-====
-
-[id='methods-for-changing-router-configuration']
-== Changing a Router's Configuration
-
-You can use different methods for changing a router's configuration based on whether the router is currently running, and whether you want the change to take effect immediately.
-
-.Choices
-* xref:making-permanent-change-to-router-configuration[Make a permanent change to the router's configuration].
-* xref:changing-configuration-for-running-router[Change the configuration for a running router.]
-
-[id='making-permanent-change-to-router-configuration']
-=== Making a Permanent Change to the Router's Configuration
-
-You can make a permanent change to the router's configuration by editing the router's configuration file directly. You must restart the router for the changes to take effect, but the changes will be saved even if the router is stopped.
-
-.Procedure
-
-. Do one of the following:
-+
-* Edit the default configuration file (`/etc/qpid-dispatch/qdrouterd.conf`).
-* Create a new configuration file.
-
-. Start (or restart) the router.
-+
-If you created a new configuration file, you must specify the path using the `--conf` parameter. For example, the following command starts the router with a non-default configuration file:
-+
-[options="nowrap"]
-----
-$ sudo qdrouterd -d --conf /etc/qpid-dispatch/new-configuration-file.conf
-----
-
-[id='changing-configuration-for-running-router']
-=== Changing the Configuration for a Running Router
-
-If the router is running, you can change its configuration on the fly. The changes you make take effect immediately, but are lost if the router is stopped.
-
-.Procedure
-
-* Use `qdmanage` to change the configuration.
-+
-For more information about using `qdmanage`, see xref:managing-router[Managing {RouterName} Using _qdmanage_].
-
-== Default Configuration Settings
-
-The router's configuration file controls the way in which the router functions. The default configuration file contains the minimum number of settings required for the router to run. As you become more familiar with the router, you can add to or change these settings, or create your own configuration files.
-
-When you installed {RouterName}, the default configuration file was added at the following path: `/etc/qpid-dispatch/qdrouterd.conf`. It includes some basic configuration settings that define the router's operating mode, how it listens for incoming connections, and routing patterns for the message routing mechanism.
-
-.Default Configuration File
-
-[options="nowrap"]
-----
-router {
-    mode: standalone // <1>
-    id: Router.A // <2>
-}
-
-listener { // <3>
-    host: 0.0.0.0 // <4>
-    port: amqp // <5>
-    authenticatePeer: no // <6>
-}
-
-address { // <7>
-    prefix: closest
-    distribution: closest
-}
-
-address {
-    prefix: multicast
-    distribution: multicast
-}
-
-address {
-    prefix: unicast
-    distribution: closest
-}
-
-address {
-    prefix: exclusive
-    distribution: closest
-}
-
-address {
-    prefix: broadcast
-    distribution: multicast
-}
-----
-<1> By default, the router operates in _standalone_ mode. This means that it can only communicate with endpoints that are directly connected to it. It cannot connect to other routers, or participate in a router network.
-<2> The unique identifier of the router. This ID is used as the `container-id` (container name) at the AMQP protocol level. It is required, and the router will not start if this attribute is not defined.
-<3> The `listener` entity handles incoming connections from client endpoints.
-<4> The IP address on which the router will listen for incoming connections. By default, the router is configured to listen on all network interfaces.
-<5> The port on which the router will listen for incoming connections. By default, the default AMQP port (5672) is specified with a symbolic service name.
-<6> Specifies whether the router should authenticate peers before they can connect to the router. By default, peer authentication is not required.
-<7> By default, the router is configured to use the message routing mechanism. Each `address` entity defines how messages that are received with a particular address `prefix` should be distributed. For example, all messages with addresses that start with `closest` will be distributed using the `closest` distribution pattern.
-
-[NOTE]
-====
-If a client requests a message with an address that is not defined in the router's configuration file, the `balanced` distribution pattern will be used automatically.
-====
-
-== Setting Essential Configuration Properties
-
-The router's default configuration settings enable the router to run with minimal configuration. However, you may need to change some of these settings for the router to run properly in your environment.
-
-.Procedure
-
-. Open the router's configuration file.
-+
-If you are changing the router's default configuration file, the file is located at `/etc/qpid-dispatch/qdrouterd.conf`.
-
-. To define essential router information, change the following attributes as needed in the `router` section:
-+
---
-[options="nowrap",subs="+quotes"]
-----
-router {
-    mode: _STANDALONE/INTERIOR/EDGE_
-    id: _ROUTER_ID_
-}
-----
-
-`mode`:: Specify one of the following modes:
-+
-* `standalone` - Use this mode if the router does not communicate with
-other routers and is not part of a router network. When operating in
-this mode, the router only routes messages between directly connected
-endpoints. 
-* `interior` - Use this mode if the router is part of a router network
-and needs to collaborate with other routers.
-* `edge` - Use this mode if the router is an edge router that will
-connect to a network of interior routers.
-
-`id`:: The unique
-identifier for the router. This ID will also be the container name at
-the AMQP protocol level.
-
-For information about additional attributes, see link:{qdrouterdConfManPageUrl}#_router[router] in the `qdrouterd.conf` man page.
---
-
-. If necessary for your environment, secure the router.
-+
---
-* xref:setting-up-ssl-for-encryption-and-authentication[Set up SSL/TLS for encryption, authentication, or both]
-* xref:setting-up-sasl-for-authentication-and-payload-encryption[Set up SASL for authentication and payload encryption]
---
-
-. Connect the router to other routers, clients, and brokers.
-+
---
-* xref:adding-incoming-connections[Add incoming connections]
-* xref:adding-outgoing-connections[Add outgoing connections]
---
-
-. Set up routing for your environment:
-+
---
-* xref:routing-messages-between-clients[Configure the router to route messages between clients directly]
-* xref:routing-messages-through-broker[Configure the router to route messages through a broker queue]
-* xref:creating-link-route[Create a link route to define a private messaging path between endpoints]
---
-
-. xref:logging[Set up logging].


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org