From 01cd3bd0acf60c139893ec5544e7575d64bd094d Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Sun, 18 Aug 2013 17:09:52 +0000 Subject: QPID-5081 : [Java Broker] Refactor Queue Creation git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1515170 13f79535-47bb-0310-9956-ffa450edef68 --- .../server/store/DurableConfigurationStoreHelper.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'qpid/java') diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DurableConfigurationStoreHelper.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DurableConfigurationStoreHelper.java index e9181c0e12..15c2c768bb 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DurableConfigurationStoreHelper.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/store/DurableConfigurationStoreHelper.java @@ -20,11 +20,14 @@ */ package org.apache.qpid.server.store; +import java.util.Arrays; import java.util.Collection; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.Map; +import java.util.Set; import org.apache.qpid.AMQStoreException; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.FieldTable; @@ -41,6 +44,10 @@ public class DurableConfigurationStoreHelper private static final String BINDING = Binding.class.getSimpleName(); private static final String EXCHANGE = Exchange.class.getSimpleName(); private static final String QUEUE = Queue.class.getSimpleName(); + private static final Set QUEUE_ARGUMENTS_EXCLUDES = new HashSet(Arrays.asList(Queue.NAME, + Queue.OWNER, + Queue.EXCLUSIVE, + Queue.ALTERNATE_EXCHANGE)); public static void updateQueue(DurableConfigurationStore store, AMQQueue queue) throws AMQStoreException { @@ -58,7 +65,10 @@ public class DurableConfigurationStoreHelper for(String attrName : availableAttrs) { - attributesMap.put(attrName, queue.getAttribute(attrName)); + if(!QUEUE_ARGUMENTS_EXCLUDES.contains(attrName)) + { + attributesMap.put(attrName, queue.getAttribute(attrName)); + } } store.update(queue.getId(), QUEUE, attributesMap); @@ -75,9 +85,13 @@ public class DurableConfigurationStoreHelper { attributesMap.put(Queue.ALTERNATE_EXCHANGE, queue.getAlternateExchange().getId()); } + for(String attrName : queue.getAvailableAttributes()) { - attributesMap.put(attrName, queue.getAttribute(attrName)); + if(!QUEUE_ARGUMENTS_EXCLUDES.contains(attrName)) + { + attributesMap.put(attrName, queue.getAttribute(attrName)); + } } store.create(queue.getId(), QUEUE,attributesMap); } -- cgit v1.2.1