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