summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src/main
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2009-07-24 09:32:11 +0000
committerRobert Gemmell <robbie@apache.org>2009-07-24 09:32:11 +0000
commite72790686cd57c7c069ca5e3a9807681f9e987cb (patch)
treebe21832c1221396fbd596deabd3e0390cef0dedb /qpid/java/broker/src/main
parent3b2bba5c270839ccc91836fde3f2ba0481b3ba74 (diff)
downloadqpid-python-e72790686cd57c7c069ca5e3a9807681f9e987cb.tar.gz
QPID-2005: make the fanout exchange mbean return a single wildcard binding entry with all queues listed.
Modify the management console to auto-select the wildcard binding when the exchange is viewed. Also, suppress the warning on entering no binding key when creating a fanout exchange binding, but auto-fill the field with the wildcard for clarity. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@797387 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker/src/main')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java20
1 files changed, 15 insertions, 5 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
index 23c716a0db..fcaec8bdd0 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java
@@ -59,6 +59,8 @@ public class FanoutExchange extends AbstractExchange
@MBeanDescription("Management Bean for Fanout Exchange")
private final class FanoutExchangeMBean extends ExchangeMBean
{
+ private static final String BINDING_KEY_SUBSTITUTE = "*";
+
@MBeanConstructor("Creates an MBean for AMQ fanout exchange")
public FanoutExchangeMBean() throws JMException
{
@@ -71,15 +73,23 @@ public class FanoutExchange extends AbstractExchange
{
_bindingList = new TabularDataSupport(_bindinglistDataType);
+
+ if(_queues.isEmpty())
+ {
+ return _bindingList;
+ }
+
+ ArrayList<String> queueNames = new ArrayList<String>();
for (AMQQueue queue : _queues)
{
String queueName = queue.getName().toString();
-
- Object[] bindingItemValues = {queueName, new String[]{queueName}};
- CompositeData bindingData = new CompositeDataSupport(_bindingDataType, COMPOSITE_ITEM_NAMES, bindingItemValues);
- _bindingList.put(bindingData);
+ queueNames.add(queueName);
}
+
+ Object[] bindingItemValues = {BINDING_KEY_SUBSTITUTE, queueNames.toArray(new String[0])};
+ CompositeData bindingData = new CompositeDataSupport(_bindingDataType, COMPOSITE_ITEM_NAMES, bindingItemValues);
+ _bindingList.put(bindingData);
return _bindingList;
}
@@ -94,7 +104,7 @@ public class FanoutExchange extends AbstractExchange
try
{
- queue.bind(FanoutExchange.this, new AMQShortString(binding), null);
+ queue.bind(FanoutExchange.this, new AMQShortString(BINDING_KEY_SUBSTITUTE), null);
}
catch (AMQException ex)
{