Author: ritchiem
Date: Mon Apr 13 14:23:52 2009
New Revision: 764484

URL: http://svn.apache.org/viewvc?rev=764484&view=rev
Log:
QPID-1730: make it easy to configure queues, fix inheriting settings from the 
virtualhost.

AMQQueue.configure: new method
AMQQueueFactory: use AMQQueue.configure, don't set things directly
SimpleAMQQueue.configure, MockAMQQueue.configure: implement new method from the 
interface
QueueConfiguration: use VirtualHostConfiguration for default values if they're 
unset
VirtualHostConfiguration: if a queue doesn't exist, give it a default 
configuration. Add methods to get default settings for configuration items
QueueConfigurationTest: test case, checks that inheritance and defaults work 
along with explicitly set values.

merged from trunk r761721

Added:
    
qpid/branches/0.5-fix/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/QueueConfigurationTest.java
      - copied unchanged from r761721, 
qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/QueueConfigurationTest.java
Modified:
    qpid/branches/0.5-fix/qpid/   (props changed)
    qpid/branches/0.5-fix/qpid/java/broker/bin/   (props changed)
    
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
    
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java
    
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/management/
   (props changed)
    
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/
   (props changed)
    
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java
    
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java
    
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java
    
qpid/branches/0.5-fix/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java

Propchange: qpid/branches/0.5-fix/qpid/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 13 14:23:52 2009
@@ -1 +1 @@
-/qpid/trunk/qpid:742626,743015,743028-743029,743304,743306,743311,743357,744113,747363,747367,747369-747370,747376,747783,747868-747870,747875,748561,748591,748641,748680,748686,749149,749282,749285,749315,749340,749572,754934,754958,755256,757258,757270,758730,760919
+/qpid/trunk/qpid:742626,743015,743028-743029,743304,743306,743311,743357,744113,747363,747367,747369-747370,747376,747783,747868-747870,747875,748561,748591,748641,748680,748686,749149,749282,749285,749315,749340,749572,754934,754958,755256,757258,757270,758730,760919,761721

Propchange: qpid/branches/0.5-fix/qpid/java/broker/bin/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 13 14:23:52 2009
@@ -1,2 +1,2 @@
 /qpid/branches/0.5-release/qpid/java/broker/bin:757268
-/qpid/trunk/qpid/java/broker/bin:758730,760919
+/qpid/trunk/qpid/java/broker/bin:758730,760919,761721

Modified: 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java?rev=764484&r1=764483&r2=764484&view=diff
==============================================================================
--- 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
 (original)
+++ 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
 Mon Apr 13 14:23:52 2009
@@ -26,18 +26,23 @@
 
 public class QueueConfiguration
 {
-
-    // FIXME AIDAN XXX -- deal with defaults
     
     private Configuration _config;
     private String _name;
+    private VirtualHostConfiguration _vHostConfig;
 
     public QueueConfiguration(String name, Configuration config)
     {
+        _vHostConfig = virtualHostConfiguration;
         _config = config;
         _name = name;
     }
 
+    public VirtualHostConfiguration getVirtualHostConfiguration()
+    {
+        return _vHostConfig;
+    }
+
     public boolean getDurable()
     {
         return _config.getBoolean("durable" ,false);
@@ -78,29 +83,29 @@
         return _name;
     }
 
-    public long getMaximumMessageAge()
+    public int getMaximumMessageAge()
     {
-        return _config.getLong("maximumMessageAge", 0);
+        return _config.getInt("maximumMessageAge", 
_vHostConfig.getMaximumMessageAge());
     }
 
     public long getMaximumQueueDepth()
     {
-        return _config.getLong("maximumQueueDepth", 0);
+        return _config.getLong("maximumQueueDepth", 
_vHostConfig.getMaximumQueueDepth());
     }
 
     public long getMaximumMessageSize()
     {
-        return _config.getLong("maximumMessageSize", 0);
+        return _config.getLong("maximumMessageSize", 
_vHostConfig.getMaximumMessageSize());
     }
 
     public long getMaximumMessageCount()
     {
-        return _config.getLong("maximumMessageCount", 0);
+        return _config.getLong("maximumMessageCount", 
_vHostConfig.getMaximumMessageCount());
     }
 
     public long getMinimumAlertRepeatGap()
     {
-        return _config.getLong("minimumAlertRepeatGap", 0);
+        return _config.getLong("minimumAlertRepeatGap", 
_vHostConfig.getMinimumAlertRepeatGap());
     }
 
 }

Modified: 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java?rev=764484&r1=764483&r2=764484&view=diff
==============================================================================
--- 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java
 (original)
+++ 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/VirtualHostConfiguration.java
 Mon Apr 13 14:23:52 2009
@@ -116,8 +116,79 @@
                return _queues.keySet().toArray(new String[_queues.size()]);
        }
 
-       public QueueConfiguration getQueueConfiguration(String queueName)
-       {
-               return _queues.get(queueName);
-       }
+    public List getExchanges()
+    {
+        return _config.getList("exchanges.exchange.name");
+    }
+
+    public ExchangeConfiguration getExchangeConfiguration(String exchangeName)
+    {
+        return _exchanges.get(exchangeName);
+    }
+
+    public String[] getQueueNames()
+    {
+        return _queues.keySet().toArray(new String[_queues.size()]);
+    }
+
+    public QueueConfiguration getQueueConfiguration(String queueName)
+    {
+        // We might be asked for the config for a queue we don't know about,
+        // such as one that's been dynamically created. Those get the defaults 
by default.
+        if (_queues.containsKey(queueName)) 
+        {
+            return _queues.get(queueName);
+        } 
+        else
+        {
+            return new QueueConfiguration(queueName, new 
PropertiesConfiguration(), this);
+        }
+    }
+
+    public long getMemoryUsageMaximum()
+    {
+        return _config.getLong("queues.maximumMemoryUsage", 0);
+    }
+
+    public long getMemoryUsageMinimum()
+    {
+        return _config.getLong("queues.minimumMemoryUsage", 0);
+    }
+
+    public ServerConfiguration getServerConfiguration()
+    {
+        return _serverConfiguration;
+    }
+
+    public static final String FLOW_TO_DISK_PATH = "flowToDiskPath";
+    public String getFlowToDiskLocation()
+    {
+        return _config.getString(FLOW_TO_DISK_PATH, 
getServerConfiguration().getQpidWork());
+    }
+
+    public int getMaximumMessageAge()
+    {
+        return _config.getInt("queues.maximumMessageAge", 0);
+    }
+
+    public Long getMaximumQueueDepth()
+    {
+        return _config.getLong("queues.maximumQueueDepth", 0);
+    }
+
+    public Long getMaximumMessageSize()
+    {
+        return _config.getLong("queues.maximumMessageSize", 0);
+    }
+
+    public Long getMaximumMessageCount()
+    {
+        return _config.getLong("queues.maximumMessageCount", 0);
+    }
+
+    public Long getMinimumAlertRepeatGap()
+    {
+        return _config.getLong("queues.minimumAlertRepeatGap", 0);
+    }
+
 }

Propchange: 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/management/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 13 14:23:52 2009
@@ -1,2 +1,2 @@
 
/qpid/branches/0.5-release/qpid/java/broker/src/main/java/org/apache/qpid/server/management:757268
-/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management:758730,760919
+/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/management:758730,760919,761721

Propchange: 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Apr 13 14:23:52 2009
@@ -1,2 +1,2 @@
 
/qpid/branches/0.5-release/qpid/java/broker/src/main/java/org/apache/qpid/server/queue:757257
-/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue:757270,758730,760919
+/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/queue:757270,758730,760919,761721

Modified: 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java?rev=764484&r1=764483&r2=764484&view=diff
==============================================================================
--- 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java
 (original)
+++ 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueue.java
 Mon Apr 13 14:23:52 2009
@@ -214,4 +214,6 @@
     {
         public void doTask(AMQQueue queue) throws AMQException;
     }
+
+    void configure(QueueConfiguration config);
 }

Modified: 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java?rev=764484&r1=764483&r2=764484&view=diff
==============================================================================
--- 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java
 (original)
+++ 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/AMQQueueFactory.java
 Mon Apr 13 14:23:52 2009
@@ -80,11 +80,7 @@
         }
 
         AMQQueue q = createAMQQueueImpl(queueName, durable, owner, autodelete, 
host, arguments);
-        q.setMaximumMessageAge(config.getMaximumMessageAge());
-        q.setMaximumQueueDepth(config.getMaximumQueueDepth());
-        q.setMaximumMessageSize(config.getMaximumMessageSize());
-        q.setMaximumMessageCount(config.getMaximumMessageCount());
-        q.setMinimumAlertRepeatGap(config.getMinimumAlertRepeatGap());
+        q.configure(config);
         return q;
     }
 }

Modified: 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java?rev=764484&r1=764483&r2=764484&view=diff
==============================================================================
--- 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java
 (original)
+++ 
qpid/branches/0.5-fix/qpid/java/broker/src/main/java/org/apache/qpid/server/queue/SimpleAMQQueue.java
 Mon Apr 13 14:23:52 2009
@@ -19,6 +19,7 @@
 import org.apache.qpid.framing.FieldTable;
 import org.apache.qpid.pool.ReadWriteRunnable;
 import org.apache.qpid.pool.ReferenceCountingExecutorService;
+import org.apache.qpid.server.configuration.QueueConfiguration;
 import org.apache.qpid.server.exchange.Exchange;
 import org.apache.qpid.server.management.ManagedObject;
 import org.apache.qpid.server.output.ProtocolOutputConverter;
@@ -1584,4 +1585,18 @@
         }
         return ids;
     }
+
+    public void configure(QueueConfiguration config)
+    {
+        if (config != null)
+        {
+            setMaximumMessageAge(config.getMaximumMessageAge());
+            setMaximumQueueDepth(config.getMaximumQueueDepth());
+            setMaximumMessageSize(config.getMaximumMessageSize());
+            setMaximumMessageCount(config.getMaximumMessageCount());
+            setMinimumAlertRepeatGap(config.getMinimumAlertRepeatGap());
+            setMemoryUsageMaximum(config.getMemoryUsageMaximum());
+            setMemoryUsageMinimum(config.getMemoryUsageMinimum());
+        }
+    }
 }

Modified: 
qpid/branches/0.5-fix/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/0.5-fix/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java?rev=764484&r1=764483&r2=764484&view=diff
==============================================================================
--- 
qpid/branches/0.5-fix/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java
 (original)
+++ 
qpid/branches/0.5-fix/qpid/java/broker/src/test/java/org/apache/qpid/server/queue/MockAMQQueue.java
 Mon Apr 13 14:23:52 2009
@@ -22,8 +22,9 @@
 
 import org.apache.qpid.framing.AMQShortString;
 import org.apache.qpid.framing.FieldTable;
-import org.apache.qpid.server.virtualhost.VirtualHost;
 import org.apache.qpid.server.configuration.QueueConfiguration;
+import org.apache.qpid.server.configuration.ServerConfiguration;
+import org.apache.qpid.server.configuration.VirtualHostConfiguration;
 import org.apache.qpid.server.exchange.Exchange;
 import org.apache.qpid.server.subscription.Subscription;
 import org.apache.qpid.server.store.StoreContext;
@@ -325,4 +326,9 @@
         
     }
 
+    public void configure(QueueConfiguration config)
+    {
+        
+    }
+
 }



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to