diff --git a/apache-qpid-jms-amqp-0-x/pom.xml b/apache-qpid-jms-amqp-0-x/pom.xml
new file mode 100644
index 0000000..d9db65f
--- /dev/null
+++ b/apache-qpid-jms-amqp-0-x/pom.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <parent>
+    <groupId>org.apache.qpid</groupId>
+    <artifactId>apache-qpid-jms-amqp-0-x-parent</artifactId>
+    <version>6.3.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>apache-qpid-jms-amqp-0-x</artifactId>
+  <packaging>pom</packaging>
+  <name>Apache Qpid JMS AMQP 0-x Bundles</name>
+
+  <properties>
+    <dependency-change-verification>true</dependency-change-verification>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.qpid</groupId>
+      <artifactId>qpid-client</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-jms_1.1_spec</artifactId>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <executions>
+          <execution>
+            <id>make-assembly</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+            <configuration>
+              <descriptors>
+                <descriptor>src/main/assembly/bin.xml</descriptor>
+              </descriptors>
+              <tarLongFileMode>gnu</tarLongFileMode>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
+  <profiles>
+    <profile>
+      <id>apache-release</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-assembly-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>make-src-assembly</id>
+                <phase>package</phase>
+                <goals>
+                  <goal>single</goal>
+                </goals>
+                <configuration>
+                  <descriptors>
+                    <descriptor>src/main/assembly/src.xml</descriptor>
+                  </descriptors>
+                  <tarLongFileMode>gnu</tarLongFileMode>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+</project>
diff --git a/client/src/main/assembly/LICENSE b/apache-qpid-jms-amqp-0-x/src/main/assembly/LICENSE
similarity index 100%
rename from client/src/main/assembly/LICENSE
rename to apache-qpid-jms-amqp-0-x/src/main/assembly/LICENSE
diff --git a/client/src/main/assembly/NOTICE b/apache-qpid-jms-amqp-0-x/src/main/assembly/NOTICE
similarity index 93%
rename from client/src/main/assembly/NOTICE
rename to apache-qpid-jms-amqp-0-x/src/main/assembly/NOTICE
index 88f318c..314b973 100644
--- a/client/src/main/assembly/NOTICE
+++ b/apache-qpid-jms-amqp-0-x/src/main/assembly/NOTICE
@@ -1,4 +1,4 @@
-Qpid AMQP 0-x JMS Client
+Apache Qpid JMS AMQP 0-x
 Copyright 2006-2017 The Apache Software Foundation
 
 This product includes software developed at
diff --git a/client/src/main/assembly/README.txt b/apache-qpid-jms-amqp-0-x/src/main/assembly/README.txt
similarity index 100%
rename from client/src/main/assembly/README.txt
rename to apache-qpid-jms-amqp-0-x/src/main/assembly/README.txt
diff --git a/apache-qpid-jms-amqp-0-x/src/main/assembly/bin.xml b/apache-qpid-jms-amqp-0-x/src/main/assembly/bin.xml
new file mode 100644
index 0000000..baf413e
--- /dev/null
+++ b/apache-qpid-jms-amqp-0-x/src/main/assembly/bin.xml
@@ -0,0 +1,70 @@
+<?xml version='1.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.
+
+-->
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
+    <id>bin</id>
+    <formats>
+        <format>tar.gz</format>
+        <format>zip</format>
+    </formats>
+    <baseDirectory>apache-qpid-jms-0-x-${project.version}-bin</baseDirectory>
+    <fileSets>
+        <fileSet>
+            <directory>${basedir}/src/main/assembly/</directory>
+            <outputDirectory/>
+            <includes>
+                <include>README.txt</include>
+                <include>NOTICE</include>
+                <include>LICENSE</include>
+            </includes>
+            <fileMode>0644</fileMode>
+            <directoryMode>0755</directoryMode>
+        </fileSet>
+        <fileSet>
+            <directory>${basedir}/../client/example</directory>
+            <outputDirectory>example</outputDirectory>
+            <includes>
+                <include>src/**</include>
+                <include>pom.xml</include>
+                <include>README.txt</include>
+            </includes>
+            <fileMode>0644</fileMode>
+            <directoryMode>0755</directoryMode>
+        </fileSet>
+    </fileSets>
+    <dependencySets>
+        <dependencySet>
+            <outputDirectory>/lib</outputDirectory>
+            <useProjectArtifact>true</useProjectArtifact>
+        </dependencySet>
+        <dependencySet>
+            <outputDirectory>/lib</outputDirectory>
+            <useProjectArtifact>false</useProjectArtifact>
+            <scope>provided</scope>
+            <includes>
+                <include>org.apache.geronimo.specs:geronimo-jms_1.1_spec</include>
+            </includes>
+        </dependencySet>
+    </dependencySets>
+</assembly>
+
diff --git a/client/src/main/assembly/dependency-verification/DEPENDENCIES_REFERENCE b/apache-qpid-jms-amqp-0-x/src/main/assembly/dependency-verification/DEPENDENCIES_REFERENCE
similarity index 100%
rename from client/src/main/assembly/dependency-verification/DEPENDENCIES_REFERENCE
rename to apache-qpid-jms-amqp-0-x/src/main/assembly/dependency-verification/DEPENDENCIES_REFERENCE
diff --git a/apache-qpid-jms-amqp-0-x/src/main/assembly/src.xml b/apache-qpid-jms-amqp-0-x/src/main/assembly/src.xml
new file mode 100644
index 0000000..f57635c
--- /dev/null
+++ b/apache-qpid-jms-amqp-0-x/src/main/assembly/src.xml
@@ -0,0 +1,89 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!--
+  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.
+-->
+<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
+    <id>src</id>
+    <formats>
+        <format>tar.gz</format>
+    </formats>
+    <baseDirectory>apache-qpid-jms-0-x-${project.version}-src</baseDirectory>
+    <fileSets>
+        <!-- main project directory structure -->
+        <fileSet>
+            <directory>${project.basedir}/..</directory>
+            <outputDirectory>/</outputDirectory>
+            <useDefaultExcludes>true</useDefaultExcludes>
+            <excludes>
+                <!-- build output -->
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/).*${project.build.directory}.*]
+                </exclude>
+
+                <!-- NOTE: Most of the following excludes should not be required
+                     if the standard release process is followed. This is because the
+                     release plugin checks out project sources into a location like
+                     target/checkout, then runs the build from there. The result is
+                     a source-release archive that comes from a pretty clean directory
+                     structure.
+
+                     HOWEVER, if the release plugin is configured to run extra goals
+                     or generate a project website, it's definitely possible that some
+                     of these files will be present. So, it's safer to exclude them.
+                -->
+
+                <!-- IDEs -->
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?maven-eclipse\.xml]</exclude>
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.project]</exclude>
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.classpath]</exclude>
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.iws]</exclude>
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.idea(/.*)?]</exclude>
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?out(/.*)?]</exclude>
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.ipr]</exclude>
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.iml]</exclude>
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.settings(/.*)?]</exclude>
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.externalToolBuilders(/.*)?]
+                </exclude>
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.deployables(/.*)?]</exclude>
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.wtpmodules(/.*)?]</exclude>
+
+                <!-- misc -->
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?cobertura\.ser]</exclude>
+
+                <!-- release-plugin temp files -->
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?pom\.xml\.releaseBackup]</exclude>
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?release\.properties]</exclude>
+
+                <!-- jenkins workspace local repo -->
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.repository(/.*)?]</exclude>
+
+                <!-- log files -->
+                <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.log]</exclude>
+            </excludes>
+        </fileSet>
+        <fileSet>
+            <directory>${project.build.directory}/maven-shared-archive-resources/META-INF</directory>
+            <outputDirectory>/</outputDirectory>
+            <includes>
+                <!-- Only include the generated dependencies file, we maintain license and notice ourselves -->
+                <include>DEPENDENCIES</include>
+            </includes>
+        </fileSet>
+    </fileSets>
+</assembly>
diff --git a/client/example/pom.xml b/client/example/pom.xml
index 905541e..1e13c29 100644
--- a/client/example/pom.xml
+++ b/client/example/pom.xml
@@ -20,32 +20,29 @@
 
   <parent>
     <groupId>org.apache.qpid</groupId>
-    <artifactId>qpid-jms-amqp-0-x-parent</artifactId>
+    <artifactId>apache-qpid-jms-amqp-0-x-parent</artifactId>
     <version>6.3.0-SNAPSHOT</version>
     <relativePath>../../pom.xml</relativePath>
   </parent>
 
   <artifactId>qpid-client-examples</artifactId>
-  <name>Apache Qpid Client for AMQP 0-9-1/0-10 Examples</name>
-  <description>JMS client examples.</description>
+  <name>Apache Qpid JMS AMQP 0-x Examples</name>
+  <description>Apache Qpid JMS AMQP 0-x Examples</description>
 
   <dependencies>
     <dependency>
       <groupId>org.apache.qpid</groupId>
       <artifactId>qpid-client</artifactId>
-      <version>${project.version}</version>
     </dependency>
 
     <dependency>
       <groupId>org.apache.geronimo.specs</groupId>
       <artifactId>geronimo-jms_1.1_spec</artifactId>
-      <version>${geronimo-jms-1-1-version}</version>
     </dependency>
 
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
-      <version>${slf4j-version}</version>
     </dependency>
   </dependencies>
 
diff --git a/client/pom.xml b/client/pom.xml
index 2447faa..313df23 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -20,12 +20,12 @@
 
   <parent>
     <groupId>org.apache.qpid</groupId>
-    <artifactId>qpid-jms-amqp-0-x-parent</artifactId>
+    <artifactId>apache-qpid-jms-amqp-0-x-parent</artifactId>
     <version>6.3.0-SNAPSHOT</version>
   </parent>
 
   <artifactId>qpid-client</artifactId>
-  <name>Apache Qpid JMS Client for AMQP 0-9-1/0-10</name>
+  <name>Apache Qpid JMS AMQP 0-x</name>
   <description>JMS client supporting AMQP 0-8, 0-9, 0-9-1 and 0-10.</description>
 
   <properties>
@@ -119,25 +119,6 @@
         </configuration>
       </plugin>
       <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <!--version specified in parent pluginManagement -->
-        <configuration>
-          <descriptors>
-            <descriptor>src/main/assembly/qpid-client-bin.xml</descriptor>
-          </descriptors>
-        </configuration>
-        <executions>
-          <execution>
-            <id>make-assembly</id>
-            <phase>package</phase>
-            <goals>
-              <goal>single</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
         <groupId>org.apache.rat</groupId>
         <artifactId>apache-rat-plugin</artifactId>
         <configuration>
diff --git a/client/src/main/assembly/qpid-client-bin.xml b/client/src/main/assembly/qpid-client-bin.xml
deleted file mode 100644
index d4eacac..0000000
--- a/client/src/main/assembly/qpid-client-bin.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version='1.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.
-
--->
-<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" 
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">
-  <id>bin</id>
-  <formats>
-    <format>tar.gz</format>
-    <format>zip</format>
-  </formats>
-  <baseDirectory>qpid-client/${project.version}</baseDirectory>
-  <fileSets>
-    <fileSet>
-      <directory>${basedir}/src/main/assembly/</directory>
-      <outputDirectory/>
-      <includes>
-        <include>README.txt</include>
-        <include>NOTICE</include>
-        <include>LICENSE</include>
-      </includes>
-      <fileMode>0644</fileMode>
-      <directoryMode>0755</directoryMode>
-    </fileSet>
-    <fileSet>
-      <directory>${basedir}/example</directory>
-      <outputDirectory>example</outputDirectory>
-      <includes>
-        <include>src/**</include>
-        <include>pom.xml</include>
-        <include>README.txt</include>
-      </includes>
-      <fileMode>0644</fileMode>
-      <directoryMode>0755</directoryMode>
-    </fileSet>
-  </fileSets>
-  <dependencySets>
-    <dependencySet>
-      <outputDirectory>/lib</outputDirectory>
-      <useProjectArtifact>true</useProjectArtifact>
-    </dependencySet>
-    <dependencySet>
-      <outputDirectory>/lib</outputDirectory>
-      <useProjectArtifact>false</useProjectArtifact>
-      <scope>provided</scope>
-      <includes>
-        <include>org.apache.geronimo.specs:geronimo-jms_1.1_spec</include>
-      </includes>
-    </dependencySet>
-  </dependencySets>
-</assembly>
-
diff --git a/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java b/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java
index 383f551..bc2d375 100644
--- a/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java
+++ b/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java
@@ -457,7 +457,7 @@
      */
     public boolean isSupportedServerFeature(String featureName)
     {
-        // The Apache Qpid Broker for Java does not advertise features by the qpid.features property
+        // The Apache Qpid Broker-J does not advertise features by the qpid.features property
         // for AMQP protocols 0-8..0-9-1 , so for now we just hardcode JMS selectors as supported.
         return ServerPropertyNames.FEATURE_QPID_JMS_SELECTOR.equals(featureName);
     }
diff --git a/client/src/main/java/org/apache/qpid/configuration/ClientProperties.java b/client/src/main/java/org/apache/qpid/configuration/ClientProperties.java
index daacb03..76c30a9 100644
--- a/client/src/main/java/org/apache/qpid/configuration/ClientProperties.java
+++ b/client/src/main/java/org/apache/qpid/configuration/ClientProperties.java
@@ -267,7 +267,7 @@
      * behaviour.
      *
      * Setting this system property true restores the old behaviour.  It also avoids the isBound with a null exchange
-     * that causes an error in the Apache Qpid Broker for Java (0.28 and earlier).
+     * that causes an error in the Apache Qpid Broker-J (0.28 and earlier).
      */
     public static final String QPID_USE_LEGACY_GETQUEUEDEPTH_BEHAVIOUR = "qpid.use_legacy_getqueuedepth_behavior";
 
diff --git a/doc/jms-client-0-10/pom.xml b/doc/jms-client-0-10/pom.xml
index 79c2a30..3bb1260 100644
--- a/doc/jms-client-0-10/pom.xml
+++ b/doc/jms-client-0-10/pom.xml
@@ -30,8 +30,8 @@
     </parent>
 
     <artifactId>qpid-java-doc-jms-client-0-10</artifactId>
-    <name>Apache Qpid JMS Client for AMQP 0-10 Docbook</name>
-    <description>Apache Qpid JMS client for AMQP 0-10 Documentation</description>
+    <name>Apache Qpid JMS AMQP 0-10 Docbook</name>
+    <description>Apache Qpid JMS AMQP 0-10 Documentation</description>
 
     <profiles>
         <profile>
diff --git a/doc/jms-client-0-10/src/docbkx/JMS-Client-0-10-Book.xml b/doc/jms-client-0-10/src/docbkx/JMS-Client-0-10-Book.xml
index 912850b..6343306 100644
--- a/doc/jms-client-0-10/src/docbkx/JMS-Client-0-10-Book.xml
+++ b/doc/jms-client-0-10/src/docbkx/JMS-Client-0-10-Book.xml
@@ -2128,7 +2128,7 @@
               The delay (in milliseconds) between the time a message is sent by a MessageProducer, and
 			  the earliest time it becomes visible to consumers on any queue onto which it has been placed. Note that
 			  this value only has an affect on brokers which support the feature (currently only the Apache Qpid
-			  Broker for Java), and only on queues where delivery delay has been enabled.
+			  Broker-J), and only on queues where delivery delay has been enabled.
 		  </entry>
 	    </row>
 		  </tbody>
diff --git a/doc/jms-client-0-8/pom.xml b/doc/jms-client-0-8/pom.xml
index 6824a62..eade22e 100644
--- a/doc/jms-client-0-8/pom.xml
+++ b/doc/jms-client-0-8/pom.xml
@@ -30,8 +30,8 @@
     </parent>
 
     <artifactId>qpid-java-doc-jms-client-0-8</artifactId>
-    <name>Apache Qpid JMS Client for AMQP 0-8, 0-9 and 0-9-1 Docbook</name>
-    <description>Apache Qpid JMS client for AMQP 0-8, 0-9 and 0-9-1 Documentation</description>
+    <name>Apache Qpid JMS AMQP 0-8, 0-9 and 0-9-1 Docbook</name>
+    <description>Apache Qpid JMS AMQP 0-8, 0-9 and 0-9-1 Documentation</description>
 
     <profiles>
         <profile>
diff --git a/doc/jms-client-0-8/src/docbkx/JMS-Client-Binding-URL.xml b/doc/jms-client-0-8/src/docbkx/JMS-Client-Binding-URL.xml
index c0671f8..e695537 100644
--- a/doc/jms-client-0-8/src/docbkx/JMS-Client-Binding-URL.xml
+++ b/doc/jms-client-0-8/src/docbkx/JMS-Client-Binding-URL.xml
@@ -157,7 +157,7 @@
                 <entry><para>The delay (in milliseconds) between the time a message is sent by a MessageProducer, and
                     the earliest time it becomes visible to consumers on any queue onto which it has been placed. Note that
                     this value only has an affect on brokers which support the feature (currently only the Apache Qpid
-                    Broker for Java), and only on queues where delivery delay has been enabled.</para></entry>
+                    Broker-J), and only on queues where delivery delay has been enabled.</para></entry>
             </row>
         </tbody>
       </tgroup>
diff --git a/doc/jms-client-0-8/src/docbkx/JMS-Client-Book.xml b/doc/jms-client-0-8/src/docbkx/JMS-Client-Book.xml
index 454cc04..76e584d 100644
--- a/doc/jms-client-0-8/src/docbkx/JMS-Client-Book.xml
+++ b/doc/jms-client-0-8/src/docbkx/JMS-Client-Book.xml
@@ -21,7 +21,7 @@
 -->
 
 <book xmlns="http://docbook.org/ns/docbook" version="5.0">
-    <title>Apache Qpid JMS Client for AMQP protocols 0-8, 0-9 and 0-9-1</title>
+    <title>Apache Qpid JMS AMQP 0-8/0-9/0-9-1</title>
 
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="JMS-Client-Introduction.xml"/>
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="JMS-Client-Document-Scope-And-Intended-Audience.xml"/>
diff --git a/doc/jms-client-0-8/src/docbkx/JMS-Client-Introduction.xml b/doc/jms-client-0-8/src/docbkx/JMS-Client-Introduction.xml
index 95dbdb9..26548aa 100644
--- a/doc/jms-client-0-8/src/docbkx/JMS-Client-Introduction.xml
+++ b/doc/jms-client-0-8/src/docbkx/JMS-Client-Introduction.xml
@@ -22,11 +22,11 @@
 
 <chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="JMS-Client-0-8-Introduction">
   <title>Introduction</title>
-  <para>Apache Qpid JMS client for AMQP 0-9-1/0-10 is an implementation of <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${oracleJmsSpec}">JMS specification
+  <para>Apache Qpid JMS AMQP 0-8/0-9-1/0-10 is an implementation of <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${oracleJmsSpec}">JMS specification
       1.1</link>. It utilises an <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${amqpSrc}">AMQP</link> transport layer for the performing of messaging operations.
     The client is intended to be used for writing of JMS compatible messaging applications. Such
     applications can send and receive messages via any AMQP-compatible brokers like RabbitMQ,
-    Apache Qpid Broker for Java which supports AMQP protocols 0-8, 0-9, or 0-9-1.</para>
+    Apache Qpid Broker-J which supports AMQP protocols 0-8, 0-9, or 0-9-1.</para>
   <para>The Client hides the details of AMQP transport implementation behind the JMS API.
     Thus, the developers need only to be familiar with JMS API in order to use the client. However,
     the knowledge of the basic concepts of AMQP protocols can help developers in writing reliable
diff --git a/doc/jms-client-0-8/src/docbkx/JMS-Client-Message-Encryption.xml b/doc/jms-client-0-8/src/docbkx/JMS-Client-Message-Encryption.xml
index 654cead..90e4766 100644
--- a/doc/jms-client-0-8/src/docbkx/JMS-Client-Message-Encryption.xml
+++ b/doc/jms-client-0-8/src/docbkx/JMS-Client-Message-Encryption.xml
@@ -53,7 +53,7 @@
         </para>
         <para>
             In order to send an encrypted message it is necessary to know the Certificates of the intended recipients.
-            Certificates can be distributed either through out-of-band mechanisms, or the Apache Qpid Broker for Java can be used
+            Certificates can be distributed either through out-of-band mechanisms, or the Apache Qpid Broker-J can be used
             to distribute them to clients.
         </para>
         <para>
@@ -87,7 +87,7 @@
             <programlisting>amqp://username:password@clientid/test?brokerlist='tcp://localhost:5672?encryption_trust_store='/home/qpid/certificates.jks'&amp;encryption_trust_store_password='password''</programlisting>
             <para>
                 Alternatively, where available, you can configure the broker to distribute certificates from a trust
-                store (this is currently only available in the Apache Qpid Broker for Java). In order to use this method, the broker
+                store (this is currently only available in the Apache Qpid Broker-J). In order to use this method, the broker
                 details in the connection url must contain the correctly configured
                 <link linkend="JMS-Client-0-8-Connection-URL-BrokerOptions-EncryptionRemoteTrustStore">encryption_remote_trust_store</link>
                 option. Such a connection URL might look somthing like:
@@ -187,7 +187,7 @@
         <section xml:id="JMS-Client-Message-Encryption-Example-Introduction">
             <title>Introduction</title>
             <para>
-                In this example we will setup the Qpid Broker for Java and two clients who will send each other encrypted messages.
+                In this example we will setup the Qpid Broker-J and two clients who will send each other encrypted messages.
                 The clients will use self signed certificates and the certificates will be distributed by the Broker.
             </para>
         </section>
diff --git a/doc/jms-client-0-8/src/docbkx/JMS-Client-Understanding.xml b/doc/jms-client-0-8/src/docbkx/JMS-Client-Understanding.xml
index 0867d4f..1a9669d 100644
--- a/doc/jms-client-0-8/src/docbkx/JMS-Client-Understanding.xml
+++ b/doc/jms-client-0-8/src/docbkx/JMS-Client-Understanding.xml
@@ -65,7 +65,7 @@
         </imageobject>
       </mediaobject>
     </figure>
-    <para>Note that the Apache Qpid Broker for Java does not present a JNDI interface to the application.</para>
+    <para>Note that the Apache Qpid Broker-J does not present a JNDI interface to the application.</para>
   </section>
   <section xml:id="JMS-Client-0-8-Client-Understanding-Connection">
     <title>Connection</title>
@@ -343,7 +343,7 @@
       and a <emphasis>routing key</emphasis> included with each message.</para>
     <para>To understand how this mechanism is used to deliver messages to queues and topics, see
         <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${qpidJavaBrokerBook}Java-Broker-Concepts-Exchanges.html">Exchanges</link>
-      within the Apache Qpid Broker for Java book.</para>
+      within the Apache Qpid Broker-J book.</para>
     <para>It is important to understand that when synchronous publish is not exlicitly enabled,
       <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${oracleJeeDocUrl}javax/jms/MessageProducer.html#send(javax.jms.Message)">MessageProducer#send()</link> is <emphasis>asynchronous</emphasis> in nature. When #send()
       returns to the application, the application cannot be certain if the Broker has received the
@@ -387,7 +387,7 @@
         requires support for the corresponding feature by the Broker.</para>
       <para>To enable or disable from the client, use the Connection URL option <link linkend="JMS-Client-0-8-Connection-URL-ConnectionOptions-CloseWhenNoRoute"><literal>closeWhenNoRoute</literal></link>.</para>
       <para>See <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${qpidJavaBrokerBook}Java-Broker-Runtime-Close-Connection-When-No-Route.html">
-          Closing client connections on unroutable mandatory messages</link> within the Apache Qpid Broker for Java
+          Closing client connections on unroutable mandatory messages</link> within the Apache Qpid Broker-J
         book for full details of the functioning of this feature.</para>
     </section>
     <section xml:id="JMS-Client-0-8-Client-Understanding-MessageProducer-ImmediateMessage">
@@ -414,7 +414,7 @@
         feature requires support for the corresponding feature by the Broker.</para>
       <para>To control the timeout use System property <link linkend="JMS-Client-0-8-System-Properties-FlowControlWaitFailure"><literal>qpid.flow_control_wait_failure</literal></link>. To control the frequency with
         which warnings are logged whilst a Session is blocked, use System property <link linkend="JMS-Client-0-8-System-Properties-FlowControlWaitNotifyPeriod"><literal>qpid.flow_control_wait_notify_period</literal></link></para>
-      <para>See <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${qpidJavaBrokerBook}Java-Broker-Runtime-Disk-Space-Management.html#Qpid-Producer-Flow-Control"> Producer Flow Control</link> within the Apache Qpid Broker for Java book for full details of the
+      <para>See <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${qpidJavaBrokerBook}Java-Broker-Runtime-Disk-Space-Management.html#Qpid-Producer-Flow-Control"> Producer Flow Control</link> within the Apache Qpid Broker-Java book for full details of the
         functioning of this feature.</para>
     </section>
   </section>
@@ -480,7 +480,7 @@
       <para>When using this feature, the application must either set system property <link linkend="JMS-Client-0-8-System-Properties-RejectBehaviour">qpid.reject.behaviour</link> or
         the Binding URL option <link linkend="JMS-Client-0-8-Binding-URL-Options-RejectBehaviour"><literal>rejectbehaviour</literal></link> to the value
         <literal>server</literal>.</para>
-      <para>See <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${qpidJavaBrokerBook}Java-Broker-Runtime-Handling-Undeliverable-Messages.html#Java-Broker-Runtime-Handling-Undeliverable-Messages-Maximum-Delivery-Count"> Handling Undeliverable Messages</link> within the Apache Qpid Broker for Java book for full details of
+      <para>See <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="${qpidJavaBrokerBook}Java-Broker-Runtime-Handling-Undeliverable-Messages.html#Java-Broker-Runtime-Handling-Undeliverable-Messages-Maximum-Delivery-Count"> Handling Undeliverable Messages</link> within the Apache Qpid Broker-J book for full details of
         the functioning of this feature.</para>
       <note>
         <para>The optional JMS message header <literal>JMSXDeliveryCount</literal> is
diff --git a/doc/pom.xml b/doc/pom.xml
index a9e4913..601a9b2 100644
--- a/doc/pom.xml
+++ b/doc/pom.xml
@@ -25,7 +25,7 @@
 
     <parent>
         <groupId>org.apache.qpid</groupId>
-        <artifactId>qpid-jms-amqp-0-x-parent</artifactId>
+        <artifactId>apache-qpid-jms-amqp-0-x-parent</artifactId>
         <version>6.3.0-SNAPSHOT</version>
     </parent>
 
diff --git a/pom.xml b/pom.xml
index ff2c673..2b870b0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,11 +25,11 @@
   </parent>
 
   <groupId>org.apache.qpid</groupId>
-  <artifactId>qpid-jms-amqp-0-x-parent</artifactId>
+  <artifactId>apache-qpid-jms-amqp-0-x-parent</artifactId>
   <version>6.3.0-SNAPSHOT</version>
   <packaging>pom</packaging>
 
-  <name>Apache Qpid JMS AMQP 0-x</name>
+  <name>Apache Qpid JMS AMQP 0-x Parent</name>
   <url>http://qpid.apache.org/components</url>
   <description>Apache Qpid JMS AMQP 0-x</description>
   <inceptionYear>2006</inceptionYear>
@@ -113,6 +113,7 @@
   </properties>
 
   <modules>
+    <module>apache-qpid-jms-amqp-0-x</module>
     <module>client</module>
     <module>client/example</module>
     <module>doc</module>
@@ -121,6 +122,18 @@
   <dependencyManagement>
     <dependencies>
       <dependency>
+        <groupId>org.apache.qpid</groupId>
+        <artifactId>qpid-client</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>org.apache.qpid</groupId>
+        <artifactId>qpid-client-examples</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+
+      <dependency>
         <groupId>org.apache.geronimo.specs</groupId>
         <artifactId>geronimo-jms_1.1_spec</artifactId>
         <version>${geronimo-jms-1-1-version}</version>
