From d139781cb32f784696056f4f00efba09f4da9c6b Mon Sep 17 00:00:00 2001 From: Robert Gemmell Date: Wed, 22 Jul 2009 13:09:44 +0000 Subject: QPID-1967: collect possible Exchange Type values from the broker instead of relying on default set within the management console git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@796693 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/qpid/server/AMQBrokerManagerMBean.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'qpid/java/broker/src/main') diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java index e29c2b52b7..d7583d9c59 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/AMQBrokerManagerMBean.java @@ -37,6 +37,9 @@ */ package org.apache.qpid.server; +import java.io.IOException; +import java.util.ArrayList; + import javax.management.JMException; import javax.management.MBeanException; import javax.management.MalformedObjectNameException; @@ -50,6 +53,7 @@ import org.apache.qpid.management.common.mbeans.annotations.MBeanDescription; import org.apache.qpid.server.exchange.Exchange; import org.apache.qpid.server.exchange.ExchangeFactory; import org.apache.qpid.server.exchange.ExchangeRegistry; +import org.apache.qpid.server.exchange.ExchangeType; import org.apache.qpid.server.management.AMQManagedObject; import org.apache.qpid.server.management.ManagedObject; import org.apache.qpid.server.queue.AMQQueue; @@ -91,6 +95,22 @@ public class AMQBrokerManagerMBean extends AMQManagedObject implements ManagedBr return _virtualHostMBean.getVirtualHost().getName(); } + /** + * Returns an array of the exchange types available for creation. + * @since Qpid JMX API 1.3 + * @throws IOException + */ + public String[] getExchangeTypes() throws IOException + { + ArrayList exchangeTypes = new ArrayList(); + for(ExchangeType ex : _exchangeFactory.getRegisteredTypes()) + { + exchangeTypes.add(ex.getName().toString()); + } + + return exchangeTypes.toArray(new String[0]); + } + /** * Creates new exchange and registers it with the registry. * -- cgit v1.2.1