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]