You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2017/10/02 15:11:35 UTC

qpid-broker-j git commit: QPID-7937: [Java Broker] Rename Queue#messageGroupKey to #messageGroupKeyOverride to emphasise that the attribute is now optional

Repository: qpid-broker-j
Updated Branches:
  refs/heads/master a6a02baa7 -> b9409b6c6


QPID-7937: [Java Broker] Rename Queue#messageGroupKey to #messageGroupKeyOverride to emphasise that the attribute is now optional

* Corresponding UI, converter and upgrader changes.
* On update/converter remove messageGroupKey of JMSXGroupId so that default is used
* Changed MessageGroupQueueTest to avoid using AMQSession.


Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/b9409b6c
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/b9409b6c
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/b9409b6c

Branch: refs/heads/master
Commit: b9409b6c6414c7bbd1a251e637953150264a9836
Parents: a6a02ba
Author: Keith Wall <kw...@apache.org>
Authored: Mon Oct 2 15:28:06 2017 +0100
Committer: Keith Wall <kw...@apache.org>
Committed: Mon Oct 2 16:11:11 2017 +0100

----------------------------------------------------------------------
 .../apache/qpid/server/model/BrokerModel.java   |   1 +
 .../org/apache/qpid/server/model/Queue.java     |  25 ++-
 .../apache/qpid/server/queue/AbstractQueue.java |  10 +-
 .../AssignedConsumerMessageGroupManager.java    |  21 ++-
 .../server/queue/QueueArgumentsConverter.java   |  12 +-
 .../VirtualHostStoreUpgraderAndRecoverer.java   |   5 +
 ...irtualHostStoreUpgraderAndRecovererTest.java |  77 ++++++++
 .../VirtualHostQueueCreationTest.java           |   4 +-
 .../src/main/java/resources/addQueue.html       |  12 +-
 .../java/resources/js/qpid/management/Queue.js  |   6 +-
 .../src/main/java/resources/showQueue.html      |   4 +-
 .../concepts/Java-Broker-Concepts-Queues.xml    |  21 ++-
 .../org/apache/qpid/systest/rest/Asserts.java   |   2 +-
 .../server/queue/MessageGroupQueueTest.java     | 180 +++++++++----------
 test-profiles/CPPExcludes                       |  12 +-
 15 files changed, 247 insertions(+), 145 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/b9409b6c/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java b/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java
index a2a0464..3d21df4 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java
@@ -55,6 +55,7 @@ public final class BrokerModel extends Model
      *     Remove PreferencesProvider
      * 7.0 Remove bindings, Consumer sole parent is Queue
      *     Remodelled alternateExchange as alternateBindings
+     *     Remodelled Queue grouping attributes
      */
     public static final int MODEL_MAJOR_VERSION = 7;
     public static final int MODEL_MINOR_VERSION = 0;

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/b9409b6c/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java b/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java
index e48c54a..e878188 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/Queue.java
@@ -33,7 +33,14 @@ import org.apache.qpid.server.message.MessageDestination;
 import org.apache.qpid.server.message.MessageInfo;
 import org.apache.qpid.server.message.MessageSource;
 import org.apache.qpid.server.message.ServerMessage;
-import org.apache.qpid.server.queue.*;
+import org.apache.qpid.server.queue.BaseQueue;
+import org.apache.qpid.server.queue.CreatingLinkInfo;
+import org.apache.qpid.server.queue.MessageGroupType;
+import org.apache.qpid.server.queue.NotificationCheck;
+import org.apache.qpid.server.queue.QueueConsumer;
+import org.apache.qpid.server.queue.QueueEntry;
+import org.apache.qpid.server.queue.QueueEntryIterator;
+import org.apache.qpid.server.queue.QueueEntryVisitor;
 import org.apache.qpid.server.store.MessageDurability;
 import org.apache.qpid.server.store.MessageEnqueueRecord;
 import org.apache.qpid.server.util.Deletable;
@@ -63,7 +70,7 @@ public interface Queue<X extends Queue<X>> extends ConfiguredObject<X>,
     String ALTERNATE_BINDING = "alternateBinding";
     String EXCLUSIVE = "exclusive";
     String MESSAGE_DURABILITY = "messageDurability";
-    String MESSAGE_GROUP_KEY = "messageGroupKey";
+    String MESSAGE_GROUP_KEY_OVERRIDE = "messageGroupKeyOverride";
     String MESSAGE_GROUP_TYPE = "messageGroupType";
     String MESSAGE_GROUP_DEFAULT_GROUP = "messageGroupDefaultGroup";
     String MAXIMUM_DELIVERY_ATTEMPTS = "maximumDeliveryAttempts";
@@ -135,22 +142,26 @@ public interface Queue<X extends Queue<X>> extends ConfiguredObject<X>,
     @ManagedAttribute
     boolean isNoLocal();
 
-
-    @ManagedAttribute
-    String getMessageGroupKey();
+    @ManagedAttribute(description = "Specifies the name of the message header that provides the value for message "
+                                    + "grouping purposes. If not set, for AMQP 1.0 the value of the group-id field "
+                                    + "within the message properties is used. For AMQP 0-8..0-10, the value of the "
+                                    + "message header JMSXGroupId is used.")
+    String getMessageGroupKeyOverride();
 
     @SuppressWarnings("unused")
     @ManagedContextDefault( name = "qpid.broker_default-shared-message-group")
     String DEFAULT_SHARED_MESSAGE_GROUP = "qpid.no-group";
 
-    @ManagedAttribute( defaultValue = "${qpid.broker_default-shared-message-group}")
+    @ManagedAttribute( defaultValue = "${qpid.broker_default-shared-message-group}",
+                       description = "Fallback group used for messages without a group identifier. Used by SHARED_GROUPS only.")
     String getMessageGroupDefaultGroup();
 
     @SuppressWarnings("unused")
     @ManagedContextDefault( name = "queue.maximumDistinctGroups")
     int DEFAULT_MAXIMUM_DISTINCT_GROUPS = 255;
 
-    @ManagedAttribute( defaultValue = "${queue.maximumDistinctGroups}")
+    @ManagedAttribute( defaultValue = "${queue.maximumDistinctGroups}",
+                       description = "Maximum number of distinct groups.  Used by STANDARD groups only")
     int getMaximumDistinctGroups();
 
     @SuppressWarnings("unused")

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/b9409b6c/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java b/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
index 9b56cbc..91a1e2b 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
@@ -223,7 +223,7 @@ public abstract class AbstractQueue<X extends AbstractQueue<X>>
     private final long[] _lastNotificationTimes = new long[NotificationCheck.values().length];
 
     @ManagedAttributeField
-    private String _messageGroupKey;
+    private String _messageGroupKeyOverride;
     @ManagedAttributeField
     private boolean _messageGroupSharedGroups;
     @ManagedAttributeField
@@ -492,11 +492,11 @@ public abstract class AbstractQueue<X extends AbstractQueue<X>>
                 _messageGroupManager = null;
                 break;
             case STANDARD:
-                _messageGroupManager = new AssignedConsumerMessageGroupManager(getMessageGroupKey(), getMaximumDistinctGroups());
+                _messageGroupManager = new AssignedConsumerMessageGroupManager(getMessageGroupKeyOverride(), getMaximumDistinctGroups());
                 break;
             case SHARED_GROUPS:
                 _messageGroupManager =
-                        new DefinedGroupMessageGroupManager(getMessageGroupKey(), getMessageGroupDefaultGroup(), this);
+                        new DefinedGroupMessageGroupManager(getMessageGroupKeyOverride(), getMessageGroupDefaultGroup(), this);
                 break;
             default:
                 throw new IllegalArgumentException("Unknown messageGroupType type " + _messageGroupType);
@@ -3041,9 +3041,9 @@ public abstract class AbstractQueue<X extends AbstractQueue<X>>
     }
 
     @Override
-    public String getMessageGroupKey()
+    public String getMessageGroupKeyOverride()
     {
-        return _messageGroupKey;
+        return _messageGroupKeyOverride;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/b9409b6c/broker-core/src/main/java/org/apache/qpid/server/queue/AssignedConsumerMessageGroupManager.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/queue/AssignedConsumerMessageGroupManager.java b/broker-core/src/main/java/org/apache/qpid/server/queue/AssignedConsumerMessageGroupManager.java
index 96671e5..49293cd 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/queue/AssignedConsumerMessageGroupManager.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/queue/AssignedConsumerMessageGroupManager.java
@@ -32,7 +32,7 @@ import org.apache.qpid.server.message.AMQMessageHeader;
 
 public class AssignedConsumerMessageGroupManager implements MessageGroupManager
 {
-    private static final Logger _logger = LoggerFactory.getLogger(AssignedConsumerMessageGroupManager.class);
+    private static final Logger LOGGER = LoggerFactory.getLogger(AssignedConsumerMessageGroupManager.class);
 
 
     private final String _groupId;
@@ -58,8 +58,7 @@ public class AssignedConsumerMessageGroupManager implements MessageGroupManager
     @Override
     public boolean mightAssign(final QueueEntry entry, QueueConsumer sub)
     {
-        final AMQMessageHeader messageHeader = entry.getMessage().getMessageHeader();
-        Object groupVal = _groupId == null ? messageHeader.getGroupId() : messageHeader.getHeader(_groupId);
+        Object groupVal = getGroupValue(entry);
 
         if(groupVal == null)
         {
@@ -78,10 +77,15 @@ public class AssignedConsumerMessageGroupManager implements MessageGroupManager
         return assignMessage(sub, entry) && entry.acquire(sub);
     }
 
-    private boolean assignMessage(QueueConsumer<?,?> sub, QueueEntry entry)
+    private Object getGroupValue(final QueueEntry entry)
     {
         final AMQMessageHeader messageHeader = entry.getMessage().getMessageHeader();
-        Object groupVal = _groupId == null ? messageHeader.getGroupId() : messageHeader.getHeader(_groupId);
+        return _groupId == null ? messageHeader.getGroupId() : messageHeader.getHeader(_groupId);
+    }
+
+    private boolean assignMessage(QueueConsumer<?,?> sub, QueueEntry entry)
+    {
+        Object groupVal = getGroupValue(entry);
         if(groupVal == null)
         {
             return true;
@@ -98,7 +102,7 @@ public class AssignedConsumerMessageGroupManager implements MessageGroupManager
             {
                 if(assignedSub == null)
                 {
-                    _logger.debug("Assigning group {} to sub {}", groupVal, sub);
+                    LOGGER.debug("Assigning group {} to sub {}", groupVal, sub);
                     assignedSub = _groupMap.putIfAbsent(group, sub);
                     return assignedSub == null || assignedSub == sub;
                 }
@@ -109,7 +113,7 @@ public class AssignedConsumerMessageGroupManager implements MessageGroupManager
             }
         }
     }
-    
+
     @Override
     public QueueEntry findEarliestAssignedAvailableEntry(QueueConsumer<?,?> sub)
     {
@@ -136,8 +140,7 @@ public class AssignedConsumerMessageGroupManager implements MessageGroupManager
                 return false;
             }
 
-            final AMQMessageHeader messageHeader = entry.getMessage().getMessageHeader();
-            Object groupVal = _groupId == null ? messageHeader.getGroupId() : messageHeader.getHeader(_groupId);
+            Object groupVal = getGroupValue(entry);
             if(groupVal == null)
             {
                 return false;

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/b9409b6c/broker-core/src/main/java/org/apache/qpid/server/queue/QueueArgumentsConverter.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/queue/QueueArgumentsConverter.java b/broker-core/src/main/java/org/apache/qpid/server/queue/QueueArgumentsConverter.java
index 0c6deb9..65be871 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/queue/QueueArgumentsConverter.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/queue/QueueArgumentsConverter.java
@@ -84,7 +84,7 @@ public class QueueArgumentsConverter
      */
     private static final String QPID_NO_LOCAL = "no-local";
 
-    private static final Map<String, String> ATTRIBUTE_MAPPINGS = new LinkedHashMap<String, String>();
+    private static final Map<String, String> ATTRIBUTE_MAPPINGS = new LinkedHashMap<>();
 
     private static final String ALTERNATE_EXCHANGE = "alternateExchange";
     private static final String DEFAULT_DLQ_NAME_SUFFIX = "_DLQ";
@@ -112,7 +112,7 @@ public class QueueArgumentsConverter
 
         ATTRIBUTE_MAPPINGS.put(X_QPID_DESCRIPTION, Queue.DESCRIPTION);
 
-        ATTRIBUTE_MAPPINGS.put(QPID_GROUP_HEADER_KEY, Queue.MESSAGE_GROUP_KEY);
+        ATTRIBUTE_MAPPINGS.put(QPID_GROUP_HEADER_KEY, Queue.MESSAGE_GROUP_KEY_OVERRIDE);
         ATTRIBUTE_MAPPINGS.put(QPID_DEFAULT_MESSAGE_GROUP_ARG, Queue.MESSAGE_GROUP_DEFAULT_GROUP);
 
         ATTRIBUTE_MAPPINGS.put(QPID_NO_LOCAL, Queue.NO_LOCAL);
@@ -132,7 +132,7 @@ public class QueueArgumentsConverter
     public static Map<String,Object> convertWireArgsToModel(final String queueName,
                                                             Map<String, Object> wireArguments)
     {
-        Map<String,Object> modelArguments = new HashMap<String, Object>();
+        Map<String,Object> modelArguments = new HashMap<>();
         if(wireArguments != null)
         {
             for(Map.Entry<String,String> entry : ATTRIBUTE_MAPPINGS.entrySet())
@@ -159,6 +159,10 @@ public class QueueArgumentsConverter
             else if(wireArguments.containsKey(QPID_GROUP_HEADER_KEY))
             {
                 modelArguments.put(Queue.MESSAGE_GROUP_TYPE, MessageGroupType.STANDARD);
+                if ("JMSXGroupId".equals(wireArguments.get(QPID_GROUP_HEADER_KEY)))
+                {
+                    modelArguments.remove(Queue.MESSAGE_GROUP_KEY_OVERRIDE);
+                }
             }
 
 
@@ -211,7 +215,7 @@ public class QueueArgumentsConverter
 
     public static Map<String,Object> convertModelArgsToWire(Map<String,Object> modelArguments)
     {
-        Map<String,Object> wireArguments = new HashMap<String, Object>();
+        Map<String,Object> wireArguments = new HashMap<>();
         for(Map.Entry<String,String> entry : ATTRIBUTE_MAPPINGS.entrySet())
         {
             if(modelArguments.containsKey(entry.getValue()))

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/b9409b6c/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java b/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
index f53fa24..f212068 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecoverer.java
@@ -758,6 +758,11 @@ public class VirtualHostStoreUpgraderAndRecoverer extends AbstractConfigurationS
                     {
                         attributes.put("messageGroupType", "STANDARD");
                     }
+                    Object oldMessageGroupKey = attributes.remove("messageGroupKey");
+                    if (!"JMSXGroupId".equals(oldMessageGroupKey))
+                    {
+                        attributes.put("messageGroupKeyOverride", oldMessageGroupKey);
+                    }
                 }
                 else
                 {

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/b9409b6c/broker-core/src/test/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecovererTest.java
----------------------------------------------------------------------
diff --git a/broker-core/src/test/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecovererTest.java b/broker-core/src/test/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecovererTest.java
index f55ff86..cbfa362 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecovererTest.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/store/VirtualHostStoreUpgraderAndRecovererTest.java
@@ -199,6 +199,83 @@ public class VirtualHostStoreUpgraderAndRecovererTest extends QpidTestCase
         assertFalse("Attribute 'alternateExchange' was not removed", upgradedAttributes.containsKey("alternateExchange"));
     }
 
+    public void testUpgradeQueueSharedMessageGroupsFrom_6_1() throws Exception
+    {
+        Map<String, Object> rootAttributes = new HashMap<>();
+        rootAttributes.put("modelVersion", "6.1");
+        rootAttributes.put("name", "root");
+        ConfiguredObjectRecord rootRecord =
+                new ConfiguredObjectRecordImpl(UUID.randomUUID(), "VirtualHost", rootAttributes);
+        Map<String, Object> queueAttributes = new HashMap<>();
+        queueAttributes.put("messageGroupKey", "myheader");
+        queueAttributes.put("messageGroupSharedGroups", true);
+
+        ConfiguredObjectRecord queueRecord = new ConfiguredObjectRecordImpl(UUID.randomUUID(), "Queue", queueAttributes,
+                                                                            Collections.singletonMap(rootRecord.getType(),
+                                                                                                     rootRecord.getId()));
+
+        final Map<String, Object> exchangeAttributes = new HashMap<>();
+        exchangeAttributes.put("name", "testExchange");
+        ConfiguredObjectRecord exchangeRecord = new ConfiguredObjectRecordImpl(UUID.randomUUID(), "Exchange", exchangeAttributes,
+                                                                               Collections.singletonMap(rootRecord.getType(),
+                                                                                                        rootRecord.getId()));
+        List<ConfiguredObjectRecord> records = Arrays.asList(rootRecord, queueRecord, exchangeRecord);
+        List<ConfiguredObjectRecord> upgradedRecords =
+                _upgraderAndRecoverer.upgrade(_store, records, "VirtualHost", "modelVersion");
+
+        ConfiguredObjectRecord upgradedQueueRecord = findRecordById(queueRecord.getId(), upgradedRecords);
+        assertNotNull("Upgraded queue record not found ", upgradedQueueRecord);
+
+        Map<String, Object> upgradedAttributes = upgradedQueueRecord.getAttributes();
+        assertNotNull("Upgraded attributes not found", upgradedAttributes);
+
+        assertFalse("Attribute 'messageGroupKey' was not removed", upgradedAttributes.containsKey("messageGroupKey"));
+        assertFalse("Attribute 'messageGroupSharedGroups' was not removed", upgradedAttributes.containsKey("messageGroupSharedGroups"));
+
+        assertTrue("Attribute 'messageGroupKeyOverride' was not added", upgradedAttributes.containsKey("messageGroupKeyOverride"));
+        assertEquals("Unexpected messageGroupKeyOverride", "myheader", upgradedAttributes.get("messageGroupKeyOverride"));
+        assertTrue("Attribute 'messageGroupType' was not added", upgradedAttributes.containsKey("messageGroupType"));
+        assertEquals("Unexpected messageGroupType", "SHARED_GROUPS", upgradedAttributes.get("messageGroupType"));
+    }
+
+    public void testUpgradeQueueStandardMessageGroupsFrom_6_1() throws Exception
+    {
+        Map<String, Object> rootAttributes = new HashMap<>();
+        rootAttributes.put("modelVersion", "6.1");
+        rootAttributes.put("name", "root");
+        ConfiguredObjectRecord rootRecord =
+                new ConfiguredObjectRecordImpl(UUID.randomUUID(), "VirtualHost", rootAttributes);
+        Map<String, Object> queueAttributes = new HashMap<>();
+        queueAttributes.put("messageGroupKey", "JMSXGroupId");
+        queueAttributes.put("messageGroupSharedGroups", false);
+
+        ConfiguredObjectRecord queueRecord = new ConfiguredObjectRecordImpl(UUID.randomUUID(), "Queue", queueAttributes,
+                                                                            Collections.singletonMap(rootRecord.getType(),
+                                                                                                     rootRecord.getId()));
+
+        final Map<String, Object> exchangeAttributes = new HashMap<>();
+        exchangeAttributes.put("name", "testExchange");
+        ConfiguredObjectRecord exchangeRecord = new ConfiguredObjectRecordImpl(UUID.randomUUID(), "Exchange", exchangeAttributes,
+                                                                               Collections.singletonMap(rootRecord.getType(),
+                                                                                                        rootRecord.getId()));
+        List<ConfiguredObjectRecord> records = Arrays.asList(rootRecord, queueRecord, exchangeRecord);
+        List<ConfiguredObjectRecord> upgradedRecords =
+                _upgraderAndRecoverer.upgrade(_store, records, "VirtualHost", "modelVersion");
+
+        ConfiguredObjectRecord upgradedQueueRecord = findRecordById(queueRecord.getId(), upgradedRecords);
+        assertNotNull("Upgraded queue record not found ", upgradedQueueRecord);
+
+        Map<String, Object> upgradedAttributes = upgradedQueueRecord.getAttributes();
+        assertNotNull("Upgraded attributes not found", upgradedAttributes);
+
+        assertFalse("Attribute 'messageGroupKey' was not removed", upgradedAttributes.containsKey("messageGroupKey"));
+        assertFalse("Attribute 'messageGroupSharedGroups' was not removed", upgradedAttributes.containsKey("messageGroupSharedGroups"));
+        assertFalse("Attribute 'messageGroupKeyOverride' was added", upgradedAttributes.containsKey("messageGroupKeyOverride"));
+
+        assertTrue("Attribute 'messageGroupType' was not added", upgradedAttributes.containsKey("messageGroupType"));
+        assertEquals("Unexpected messageGroupType", "STANDARD", upgradedAttributes.get("messageGroupType"));
+    }
+
     private ConfiguredObjectRecord findRecordById(UUID id, List<ConfiguredObjectRecord> records)
     {
         for (ConfiguredObjectRecord record : records)

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/b9409b6c/broker-core/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostQueueCreationTest.java
----------------------------------------------------------------------
diff --git a/broker-core/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostQueueCreationTest.java b/broker-core/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostQueueCreationTest.java
index 0c591da..c3b5d39 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostQueueCreationTest.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/virtualhost/VirtualHostQueueCreationTest.java
@@ -178,11 +178,11 @@ public class VirtualHostQueueCreationTest extends QpidTestCase
         Map<String,Object> attributes = new HashMap<>();
         attributes.put(Queue.ID, UUID.randomUUID());
         attributes.put(Queue.NAME, getTestName());
-        attributes.put(Queue.MESSAGE_GROUP_KEY,"mykey");
+        attributes.put(Queue.MESSAGE_GROUP_KEY_OVERRIDE, "mykey");
         attributes.put(Queue.MESSAGE_GROUP_TYPE, MessageGroupType.SHARED_GROUPS);
 
         Queue<?> queue = _virtualHost.createChild(Queue.class, attributes);
-        assertEquals("mykey", queue.getAttribute(Queue.MESSAGE_GROUP_KEY));
+        assertEquals("mykey", queue.getAttribute(Queue.MESSAGE_GROUP_KEY_OVERRIDE));
         assertEquals(MessageGroupType.SHARED_GROUPS, queue.getAttribute(Queue.MESSAGE_GROUP_TYPE));
     }
 

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/b9409b6c/broker-plugins/management-http/src/main/java/resources/addQueue.html
----------------------------------------------------------------------
diff --git a/broker-plugins/management-http/src/main/java/resources/addQueue.html b/broker-plugins/management-http/src/main/java/resources/addQueue.html
index 18fd1d1..168158c 100644
--- a/broker-plugins/management-http/src/main/java/resources/addQueue.html
+++ b/broker-plugins/management-http/src/main/java/resources/addQueue.html
@@ -313,7 +313,7 @@
                     </div>
 
                     <div class="clear"></div>
-                    <div class="infoMessage">Configuring maximum delivery retries on a queue which has no alternate binding (DLQ or exchange) <br/> will result in messages being discarded after the limit is reached.</div>
+                    <div class="infoMessage">Configuring maximum delivery retries on a queue which has no alternate binding (DLQ or exchange) will result in messages being discarded after the limit is reached.</div>
 
                     <div class="clear">
                         <div class="formLabel-labelCell">Message Group Type:</div>
@@ -329,14 +329,14 @@
 
                     </div>
                     <div class="clear">
-                        <div class="formLabel-labelCell">Message Group Key:</div>
+                        <div class="formLabel-labelCell">Message Group Key Override:</div>
                         <div class="formLabel-controlCell">
-                            <input type="text" id="formAddQueue.messageGroupKey"
+                            <input type="text" id="formAddQueue.messageGroupKeyOverride"
                                    data-dojo-type="dijit/form/ValidationTextBox"
                                    data-dojo-props="
-                                      name: 'messageGroupKey',
-                                      placeHolder: 'message group key',
-                                      promptMessage: 'Name of the message property used for message grouping',
+                                      name: 'messageGroupKeyOverride',
+                                      placeHolder: 'message group key override',
+                                      promptMessage: 'Specifies the name of the message header that provides the value for message grouping purposes. If not set, for AMQP 1.0 the value of the group-id field within the message properties is used. For AMQP 0-8..0-10, the value of the message header JMSXGroupId is used.',
                                       title: 'Enter the name of the message property used for message grouping',
                                       trim: true"/>
                         </div>

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/b9409b6c/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
----------------------------------------------------------------------
diff --git a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
index 91f8793..35d24dd 100644
--- a/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
+++ b/broker-plugins/management-http/src/main/java/resources/js/qpid/management/Queue.js
@@ -410,7 +410,7 @@ define(["dojo/_base/declare",
                         "alertThresholdQueueDepthMessages",
                         "alternateBinding",
                         "messageGroups",
-                        "messageGroupKey",
+                        "messageGroupKeyOverride",
                         "messageGroupType",
                         "maximumDeliveryAttempts",
                         "holdOnPublishEnabled"]);
@@ -583,8 +583,8 @@ define(["dojo/_base/declare",
             this["messageGroupType"].innerHTML = entities.encode(messageGroupType);
             if (this.queueData["messageGroupKey"] || (messageGroupType && messageGroupType !== "NONE"))
             {
-                this.messageGroupKey.innerHTML = entities.encode(String(this.queueData["messageGroupKey"]));
-                this.messageGroups.style.display = "block";
+                this.messageGroupKeyOverride.innerHTML = entities.encode(String(this.queueData["messageGroupKeyOverride"]));
+                this.messageGroupKeyOverride.style.display = "block";
             }
             else
             {

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/b9409b6c/broker-plugins/management-http/src/main/java/resources/showQueue.html
----------------------------------------------------------------------
diff --git a/broker-plugins/management-http/src/main/java/resources/showQueue.html b/broker-plugins/management-http/src/main/java/resources/showQueue.html
index 7424614..aa3f2db 100644
--- a/broker-plugins/management-http/src/main/java/resources/showQueue.html
+++ b/broker-plugins/management-http/src/main/java/resources/showQueue.html
@@ -98,8 +98,8 @@
                 <div class="messageGroupType"></div>
             </div>
             <div class="clear">
-                <div class="messageGroupKeyLabel formLabel-labelCell ">Message Group Key:</div>
-                <div class="messageGroupKey"></div>
+                <div class="messageGroupKeyOverrideLabel formLabel-labelCell ">Message Group Key Override:</div>
+                <div class="messageGroupKeyOverride"></div>
             </div>
         </div>
         <div class="clear"></div>

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/b9409b6c/doc/java-broker/src/docbkx/concepts/Java-Broker-Concepts-Queues.xml
----------------------------------------------------------------------
diff --git a/doc/java-broker/src/docbkx/concepts/Java-Broker-Concepts-Queues.xml b/doc/java-broker/src/docbkx/concepts/Java-Broker-Concepts-Queues.xml
index 6430b7d..9e3ea19 100644
--- a/doc/java-broker/src/docbkx/concepts/Java-Broker-Concepts-Queues.xml
+++ b/doc/java-broker/src/docbkx/concepts/Java-Broker-Concepts-Queues.xml
@@ -149,14 +149,17 @@
       performed before the <emphasis>add</emphasis> operation. </para>
     <section xml:id="Java-Broker-Concepts-Queues-GroupingMessages">
       <title>Grouping Messages</title>
-      <para> In order to group messages, the application would designate a particular message header
-        as containing a message's <emphasis>group identifier</emphasis>. The group identifier stored
-        in that header field would be a string value set by the message producer. Messages from the
-        same group would have the same group identifier value. The key that identifies the header
-        must also be known to the message consumers. This allows the consumers to determine a
-        message's assigned group. </para>
-      <para> The header that is used to hold the group identifier, as well as the values used as
-        group identifiers, are totally under control of the application. </para>
+        <para>In order to group messages, JMS applications can set the JMS standard header
+            <literal>JMSXGroupId</literal> to specify the <emphasis>group identifier</emphasis>
+            when publishing messages.
+        </para>
+        <para>Alternatively, the application may designate a particular message header
+            as containing a message's <emphasis>group identifier</emphasis>. The group identifier stored
+            in that header field would be a string value set by the message producer. Messages from the
+            same group would have the same group identifier value. The key that identifies the header
+            must also be known to the message consumers. This allows the consumers to determine a
+            message's assigned group.
+        </para>
     </section>
         <section xml:id="Java-Broker-Concepts-Queues-BrokerRole">
       <title> The Role of the Broker in Message Grouping </title>
@@ -197,7 +200,7 @@
           <listitem>
             <para> In default mode, failure for a message to specify a group is treated as a desire
               for the message not to be grouped at all. Such messages will be distributed to any
-              available consumer, without the ordering quarantees imposed by grouping. </para>
+              available consumer, without the ordering guarantees imposed by grouping. </para>
           </listitem>
           <listitem>
             <para> In 'shared groups' mode (which gives the same behaviour as the Qpid C++ Broker)

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/b9409b6c/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java
----------------------------------------------------------------------
diff --git a/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java b/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java
index 1c36eec..c0cc77e 100644
--- a/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java
+++ b/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java
@@ -122,7 +122,7 @@ public class Asserts
                                         Queue.NO_LOCAL,
                                         LastValueQueue.LVQ_KEY,
                                         SortedQueue.SORT_KEY,
-                                        Queue.MESSAGE_GROUP_KEY,
+                                        Queue.MESSAGE_GROUP_KEY_OVERRIDE,
                                         Queue.MESSAGE_GROUP_TYPE,
                                         PriorityQueue.PRIORITIES,
                                         ConfiguredObject.CONTEXT,

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/b9409b6c/systests/src/test/java/org/apache/qpid/server/queue/MessageGroupQueueTest.java
----------------------------------------------------------------------
diff --git a/systests/src/test/java/org/apache/qpid/server/queue/MessageGroupQueueTest.java b/systests/src/test/java/org/apache/qpid/server/queue/MessageGroupQueueTest.java
index 577bc2d..31a7cc4 100644
--- a/systests/src/test/java/org/apache/qpid/server/queue/MessageGroupQueueTest.java
+++ b/systests/src/test/java/org/apache/qpid/server/queue/MessageGroupQueueTest.java
@@ -36,8 +36,6 @@ import javax.jms.Queue;
 import javax.jms.Session;
 
 import org.apache.qpid.QpidException;
-import org.apache.qpid.client.AMQDestination;
-import org.apache.qpid.client.AMQSession;
 import org.apache.qpid.server.model.ConfiguredObject;
 import org.apache.qpid.server.model.LifetimePolicy;
 import org.apache.qpid.test.utils.QpidBrokerTestCase;
@@ -46,31 +44,31 @@ public class MessageGroupQueueTest extends QpidBrokerTestCase
 {
     protected final String QUEUE = "MessageGroupQueue";
 
-    private Connection producerConnection;
-    private MessageProducer producer;
-    private Session producerSession;
-    private Queue queue;
-    private Connection consumerConnection;
+    private Connection _producerConnection;
+    private MessageProducer _producer;
+    private Session _producerSession;
+    private Queue _queue;
+    private Connection _consumerConnection;
 
     @Override
     public void setUp() throws Exception
     {
         super.setUp();
 
-        producerConnection = getConnection();
-        producerSession = producerConnection.createSession(true, Session.AUTO_ACKNOWLEDGE);
+        _producerConnection = getConnection();
+        _producerSession = _producerConnection.createSession(true, Session.AUTO_ACKNOWLEDGE);
 
-        producerConnection.start();
+        _producerConnection.start();
 
-        consumerConnection = getConnectionWithPrefetch(0);
+        _consumerConnection = getConnectionWithPrefetch(0);
 
     }
 
     @Override
     public void tearDown() throws Exception
     {
-        producerConnection.close();
-        consumerConnection.close();
+        _producerConnection.close();
+        _consumerConnection.close();
         super.tearDown();
     }
 
@@ -131,22 +129,22 @@ public class MessageGroupQueueTest extends QpidBrokerTestCase
 
         for (int msg = 0; msg < 4; msg++)
         {
-            producer.send(createMessage(msg, groups[msg % groups.length], useDefaultGroup));
+            _producer.send(createMessage(msg, groups[msg % groups.length], useDefaultGroup));
         }
-        producerSession.commit();
-        producer.close();
-        producerSession.close();
-        producerConnection.close();
+        _producerSession.commit();
+        _producer.close();
+        _producerSession.close();
+        _producerConnection.close();
 
-        Session cs1 = consumerConnection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
-        Session cs2 = consumerConnection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
+        Session cs1 = _consumerConnection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
+        Session cs2 = _consumerConnection.createSession(false, Session.CLIENT_ACKNOWLEDGE);
 
 
-        MessageConsumer consumer1 = cs1.createConsumer(queue);
-        MessageConsumer consumer2 = cs2.createConsumer(queue);
+        MessageConsumer consumer1 = cs1.createConsumer(_queue);
+        MessageConsumer consumer2 = cs2.createConsumer(_queue);
 
 
-        consumerConnection.start();
+        _consumerConnection.start();
         Message cs1Received = consumer1.receive(getReceiveTimeout());
         assertNotNull("Consumer 1 should have received first message", cs1Received);
 
@@ -183,33 +181,29 @@ public class MessageGroupQueueTest extends QpidBrokerTestCase
             final Map<String, Object> arguments = new HashMap<>();
             if(!useDefaultKey)
             {
-                arguments.put(org.apache.qpid.server.model.Queue.MESSAGE_GROUP_KEY, "group");
+                arguments.put(org.apache.qpid.server.model.Queue.MESSAGE_GROUP_KEY_OVERRIDE, "group");
             }
             arguments.put(ConfiguredObject.DURABLE, "false");
             arguments.put(ConfiguredObject.LIFETIME_POLICY, LifetimePolicy.DELETE_ON_NO_OUTBOUND_LINKS.toString());
             arguments.put(org.apache.qpid.server.model.Queue.MESSAGE_GROUP_TYPE, sharedGroups ? MessageGroupType.SHARED_GROUPS.name() : MessageGroupType.STANDARD.name());
 
-            createEntityUsingAmqpManagement(QUEUE, producerSession, "org.apache.qpid.Queue", arguments);
-            queue = producerSession.createQueue(isBroker10() ? QUEUE : "ADDR:"+QUEUE+" ; {assert : never, node: { type: queue } }");
+            createEntityUsingAmqpManagement(QUEUE, _producerSession, "org.apache.qpid.Queue", arguments);
+            _queue = _producerSession.createQueue(isBroker10() ? QUEUE : "ADDR:" + QUEUE + " ; {assert : never, node: { type: queue } }");
         }
         else
         {
-            final Map<String, Object> arguments = new HashMap<>();
-            arguments.put(QueueArgumentsConverter.QPID_GROUP_HEADER_KEY, "group");
+            StringBuilder sb = new StringBuilder();
+            sb.append("ADDR:");
+            sb.append(QUEUE);
+            sb.append(" ; {create : always, node: { type: queue, x-declare: { arguments: {'qpid.group_header_key' : group");
             if (sharedGroups)
             {
-                arguments.put(QueueArgumentsConverter.QPID_SHARED_MSG_GROUP, "1");
+                sb.append(", 'qpid.shared_msg_group' : 1");
             }
-            ((AMQSession) producerSession).createQueue(QUEUE, true, false, false, arguments);
-            queue = (Queue) producerSession.createQueue("direct://amq.direct/"
-                                                        + QUEUE
-                                                        + "/"
-                                                        + QUEUE
-                                                        + "?durable='false'&autodelete='true'");
-
-            ((AMQSession) producerSession).declareAndBind((AMQDestination) queue);
+            sb.append("} } } }");
+            _queue = _producerSession.createQueue(sb.toString());
         }
-        producer = producerSession.createProducer(queue);
+        _producer = _producerSession.createProducer(_queue);
     }
 
 
@@ -244,23 +238,23 @@ public class MessageGroupQueueTest extends QpidBrokerTestCase
     {
         createQueueAndProducer(sharedGroups, false);
 
-        producer.send(createMessage(1, "ONE", useDefaultGroup));
-        producer.send(createMessage(2, "ONE", useDefaultGroup));
-        producer.send(createMessage(3, "TWO", useDefaultGroup));
-        producer.send(createMessage(4, "ONE", useDefaultGroup));
+        _producer.send(createMessage(1, "ONE", useDefaultGroup));
+        _producer.send(createMessage(2, "ONE", useDefaultGroup));
+        _producer.send(createMessage(3, "TWO", useDefaultGroup));
+        _producer.send(createMessage(4, "ONE", useDefaultGroup));
 
-        producerSession.commit();
-        producer.close();
-        producerSession.close();
-        producerConnection.close();
+        _producerSession.commit();
+        _producer.close();
+        _producerSession.close();
+        _producerConnection.close();
         boolean is010 = isBroker010();
-        Session cs1 = consumerConnection.createSession(!is010, is010 ? Session.CLIENT_ACKNOWLEDGE : Session.SESSION_TRANSACTED);
-        Session cs2 = consumerConnection.createSession(!is010, is010 ? Session.CLIENT_ACKNOWLEDGE : Session.SESSION_TRANSACTED);
+        Session cs1 = _consumerConnection.createSession(!is010, is010 ? Session.CLIENT_ACKNOWLEDGE : Session.SESSION_TRANSACTED);
+        Session cs2 = _consumerConnection.createSession(!is010, is010 ? Session.CLIENT_ACKNOWLEDGE : Session.SESSION_TRANSACTED);
 
-        MessageConsumer consumer1 = cs1.createConsumer(queue);
+        MessageConsumer consumer1 = cs1.createConsumer(_queue);
 
-        consumerConnection.start();
-        MessageConsumer consumer2 = cs2.createConsumer(queue);
+        _consumerConnection.start();
+        MessageConsumer consumer2 = cs2.createConsumer(_queue);
 
         Message cs1Received = consumer1.receive(getReceiveTimeout());
         assertNotNull("Consumer 1 should have received first message", cs1Received);
@@ -361,26 +355,26 @@ public class MessageGroupQueueTest extends QpidBrokerTestCase
     {
         createQueueAndProducer(sharedGroups, false);
 
-        producer.send(createMessage(1, "ONE", useDefaultGroup));
-        producer.send(createMessage(2, "ONE", useDefaultGroup));
-        producer.send(createMessage(3, "TWO", useDefaultGroup));
-        producer.send(createMessage(4, "ONE", useDefaultGroup));
+        _producer.send(createMessage(1, "ONE", useDefaultGroup));
+        _producer.send(createMessage(2, "ONE", useDefaultGroup));
+        _producer.send(createMessage(3, "TWO", useDefaultGroup));
+        _producer.send(createMessage(4, "ONE", useDefaultGroup));
 
-        producerSession.commit();
-        producer.close();
-        producerSession.close();
-        producerConnection.close();
+        _producerSession.commit();
+        _producer.close();
+        _producerSession.close();
+        _producerConnection.close();
 
         boolean is010 = isBroker010();
-        Session cs1 = consumerConnection.createSession(!is010, is010 ? Session.CLIENT_ACKNOWLEDGE : Session.SESSION_TRANSACTED);
-        Session cs2 = consumerConnection.createSession(!is010, is010 ? Session.CLIENT_ACKNOWLEDGE : Session.SESSION_TRANSACTED);
+        Session cs1 = _consumerConnection.createSession(!is010, is010 ? Session.CLIENT_ACKNOWLEDGE : Session.SESSION_TRANSACTED);
+        Session cs2 = _consumerConnection.createSession(!is010, is010 ? Session.CLIENT_ACKNOWLEDGE : Session.SESSION_TRANSACTED);
 
 
-        MessageConsumer consumer1 = cs1.createConsumer(queue);
+        MessageConsumer consumer1 = cs1.createConsumer(_queue);
 
-        consumerConnection.start();
+        _consumerConnection.start();
 
-        MessageConsumer consumer2 = cs2.createConsumer(queue);
+        MessageConsumer consumer2 = cs2.createConsumer(_queue);
 
         Message cs1Received = consumer1.receive(getReceiveTimeout());
         assertNotNull("Consumer 1 should have received its first message", cs1Received);
@@ -470,26 +464,26 @@ public class MessageGroupQueueTest extends QpidBrokerTestCase
     {
         createQueueAndProducer(sharedGroups, useDefaultGroup);
 
-        producer.send(createMessage(1, "ONE", useDefaultGroup));
-        producer.send(createMessage(2, "TWO", useDefaultGroup));
-        producer.send(createMessage(3, "THREE", useDefaultGroup));
-        producer.send(createMessage(4, "ONE", useDefaultGroup));
+        _producer.send(createMessage(1, "ONE", useDefaultGroup));
+        _producer.send(createMessage(2, "TWO", useDefaultGroup));
+        _producer.send(createMessage(3, "THREE", useDefaultGroup));
+        _producer.send(createMessage(4, "ONE", useDefaultGroup));
 
-        producerSession.commit();
-        producer.close();
-        producerSession.close();
-        producerConnection.close();
+        _producerSession.commit();
+        _producer.close();
+        _producerSession.close();
+        _producerConnection.close();
 
         boolean is010 = isBroker010();
-        Session cs1 = consumerConnection.createSession(!is010, is010 ? Session.CLIENT_ACKNOWLEDGE : Session.SESSION_TRANSACTED);
-        Session cs2 = consumerConnection.createSession(!is010, is010 ? Session.CLIENT_ACKNOWLEDGE : Session.SESSION_TRANSACTED);
+        Session cs1 = _consumerConnection.createSession(!is010, is010 ? Session.CLIENT_ACKNOWLEDGE : Session.SESSION_TRANSACTED);
+        Session cs2 = _consumerConnection.createSession(!is010, is010 ? Session.CLIENT_ACKNOWLEDGE : Session.SESSION_TRANSACTED);
 
 
-        MessageConsumer consumer1 = cs1.createConsumer(queue);
+        MessageConsumer consumer1 = cs1.createConsumer(_queue);
 
-        consumerConnection.start();
+        _consumerConnection.start();
 
-        MessageConsumer consumer2 = cs2.createConsumer(queue);
+        MessageConsumer consumer2 = cs2.createConsumer(_queue);
 
         Message cs1Received = consumer1.receive(getReceiveTimeout());
         assertNotNull("Consumer 1 should have received its first message", cs1Received);
@@ -574,7 +568,7 @@ public class MessageGroupQueueTest extends QpidBrokerTestCase
 
     private Message createMessage(int msg, String group, final boolean useDefaultGroup) throws JMSException
     {
-        Message send = producerSession.createTextMessage("Message: " + msg);
+        Message send = _producerSession.createTextMessage("Message: " + msg);
         send.setIntProperty("msg", msg);
         send.setStringProperty(useDefaultGroup ? "JMSXGroupID" : "group", group);
 
@@ -589,7 +583,7 @@ public class MessageGroupQueueTest extends QpidBrokerTestCase
     public void testSingleSharedGroupWithMultipleConsumers() throws Exception
     {
 
-        consumerConnection = getConnectionWithPrefetch(1);
+        _consumerConnection = getConnectionWithPrefetch(1);
 
         final boolean useDefaultGroup = false;
         createQueueAndProducer(true, useDefaultGroup);
@@ -597,29 +591,29 @@ public class MessageGroupQueueTest extends QpidBrokerTestCase
         int numMessages = 100;
         SharedGroupTestMessageListener groupingTestMessageListener = new SharedGroupTestMessageListener(numMessages);
 
-        Session cs1 = consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        Session cs2 = consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        Session cs3 = consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        Session cs4 = consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Session cs1 = _consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Session cs2 = _consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Session cs3 = _consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+        Session cs4 = _consumerConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
 
-        MessageConsumer consumer1 = cs1.createConsumer(queue);
+        MessageConsumer consumer1 = cs1.createConsumer(_queue);
         consumer1.setMessageListener(groupingTestMessageListener);
-        MessageConsumer consumer2 = cs2.createConsumer(queue);
+        MessageConsumer consumer2 = cs2.createConsumer(_queue);
         consumer2.setMessageListener(groupingTestMessageListener);
-        MessageConsumer consumer3 = cs3.createConsumer(queue);
+        MessageConsumer consumer3 = cs3.createConsumer(_queue);
         consumer3.setMessageListener(groupingTestMessageListener);
-        MessageConsumer consumer4 = cs4.createConsumer(queue);
+        MessageConsumer consumer4 = cs4.createConsumer(_queue);
         consumer4.setMessageListener(groupingTestMessageListener);
-        consumerConnection.start();
+        _consumerConnection.start();
 
         for(int i = 1; i <= numMessages; i++)
         {
-            producer.send(createMessage(i, "GROUP", useDefaultGroup));
+            _producer.send(createMessage(i, "GROUP", useDefaultGroup));
         }
-        producerSession.commit();
-        producer.close();
-        producerSession.close();
-        producerConnection.close();
+        _producerSession.commit();
+        _producer.close();
+        _producerSession.close();
+        _producerConnection.close();
 
         assertTrue("Mesages not all received in the allowed timeframe", groupingTestMessageListener.waitForLatch(30));
         assertEquals("Unexpected concurrent processing of messages for the group", 0, groupingTestMessageListener.getConcurrentProcessingCases());

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/b9409b6c/test-profiles/CPPExcludes
----------------------------------------------------------------------
diff --git a/test-profiles/CPPExcludes b/test-profiles/CPPExcludes
index dde49b0..0858faf 100755
--- a/test-profiles/CPPExcludes
+++ b/test-profiles/CPPExcludes
@@ -248,15 +248,19 @@ org.apache.qpid.tests.protocol.v1_0.*
 
 org.apache.qpid.server.queue.FlowToDiskTest#*
 
-// QPID-7818: Messages published into non existing queue are discarded on 0-10 path
+# QPID-7818: Messages published into non existing queue are discarded on 0-10 path
 org.apache.qpid.systest.AnonymousProducerTest#testPublishIntoNonExistingQueue
 org.apache.qpid.systest.AnonymousProducerTest#testSyncPublishIntoNonExistingQueue
 
-// Tests require AMQP management
+# Tests require AMQP management
 org.apache.qpid.server.routing.AlternateBindingRoutingTest#*
 
-// Tests AMQP 1.0 specific routing semantics
+# Tests AMQP 1.0 specific routing semantics
 org.apache.qpid.systest.MessageRoutingTest#*
 
-// Exchange to Exchange bindings not support by CPP Broker.
+# Exchange to Exchange bindings not support by CPP Broker.
 org.apache.qpid.server.routing.ExchangeRoutingTest#*
+
+# For 0-8..0-10 these tests assume that the Broker defaults to use header JMSXGroupID which is not true for the CPP Broker.
+org.apache.qpid.server.queue.MessageGroupQueueTest#testSharedGroupSimpleGroupAssignmentWithJMSXGroupID
+org.apache.qpid.server.queue.MessageGroupQueueTest#testSimpleGroupAssignmentWithJMSXGroupID
\ No newline at end of file


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