summaryrefslogtreecommitdiff
path: root/java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueue.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueue.java')
-rw-r--r--java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueue.java30
1 files changed, 20 insertions, 10 deletions
diff --git a/java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueue.java b/java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueue.java
index a1ff51959c..f350368634 100644
--- a/java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueue.java
+++ b/java/broker-core/src/main/java/org/apache/qpid/server/queue/ConflationQueue.java
@@ -22,22 +22,32 @@
package org.apache.qpid.server.queue;
import java.util.Map;
-import java.util.UUID;
+import org.apache.qpid.server.model.Queue;
+import org.apache.qpid.server.protocol.AMQSessionModel;
+import org.apache.qpid.server.util.MapValueConverter;
import org.apache.qpid.server.virtualhost.VirtualHost;
public class ConflationQueue extends SimpleAMQQueue<ConflationQueueList.ConflationQueueEntry, ConflationQueue, ConflationQueueList>
{
- protected ConflationQueue(UUID id,
- String name,
- boolean durable,
- String owner,
- boolean autoDelete,
- boolean exclusive,
- VirtualHost virtualHost,
- Map<String, Object> args, String conflationKey)
+ public static final String DEFAULT_LVQ_KEY = "qpid.LVQ_key";
+
+
+ protected ConflationQueue(VirtualHost virtualHost,
+ final AMQSessionModel creatingSession, Map<String, Object> attributes)
{
- super(id, name, durable, owner, autoDelete, exclusive, virtualHost, new ConflationQueueList.Factory(conflationKey), args);
+ super(virtualHost, creatingSession, attributes, entryList(attributes));
+ }
+
+ private static ConflationQueueList.Factory entryList(final Map<String, Object> attributes)
+ {
+
+ String conflationKey = MapValueConverter.getStringAttribute(Queue.LVQ_KEY,
+ attributes,
+ DEFAULT_LVQ_KEY);
+
+ // conflation key can still be null if it was present in the map with a null value
+ return new ConflationQueueList.Factory(conflationKey == null ? DEFAULT_LVQ_KEY : conflationKey);
}
public String getConflationKey()