diff options
Diffstat (limited to 'java/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueue.java')
-rw-r--r-- | java/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueue.java | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/java/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueue.java b/java/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueue.java index 4440d045d1..1e41a0fb3e 100644 --- a/java/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueue.java +++ b/java/broker-core/src/main/java/org/apache/qpid/server/queue/PriorityQueue.java @@ -20,23 +20,31 @@ */ package org.apache.qpid.server.queue; +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; import java.util.Map; -import java.util.UUID; public class PriorityQueue extends OutOfOrderQueue<PriorityQueueList.PriorityQueueEntry, PriorityQueue, PriorityQueueList> { - protected PriorityQueue(UUID id, - final String name, - final boolean durable, - final String owner, - final boolean autoDelete, - boolean exclusive, - final VirtualHost virtualHost, - Map<String, Object> arguments, int priorities) + + public static final int DEFAULT_PRIORITY_LEVELS = 10; + + protected PriorityQueue(VirtualHost virtualHost, + final AMQSessionModel creatingSession, + Map<String, Object> attributes) + { + super(virtualHost, creatingSession, attributes, entryList(attributes)); + } + + private static PriorityQueueList.Factory entryList(final Map<String, Object> attributes) { - super(id, name, durable, owner, autoDelete, exclusive, virtualHost, new PriorityQueueList.Factory(priorities), arguments); + final Integer priorities = MapValueConverter.getIntegerAttribute(Queue.PRIORITIES, attributes, + DEFAULT_PRIORITY_LEVELS); + + return new PriorityQueueList.Factory(priorities); } public int getPriorities() |