summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2009-07-02 19:51:33 +0000
committerRobert Gemmell <robbie@apache.org>2009-07-02 19:51:33 +0000
commitffd2710f78ab58291f9b2e282875eb67626982c2 (patch)
tree946f90540d62fb4c0165a55a5eeb695d4fc01cb9
parent5d50f406fb08204b5237c8d30fbac6a90b54f67a (diff)
downloadqpid-python-ffd2710f78ab58291f9b2e282875eb67626982c2.tar.gz
QPID-1943: expose exchange mbeans tabular/composite key values through the management interface
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/jmx_mc_gsoc09@790723 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java11
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/FanoutExchange.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java10
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java2
-rw-r--r--qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java12
6 files changed, 21 insertions, 18 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java
index 393822790a..247558bb34 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java
@@ -69,8 +69,6 @@ public abstract class AbstractExchange implements Exchange, Managable
protected abstract class ExchangeMBean extends AMQManagedObject implements ManagedExchange
{
// open mbean data types for representing exchange bindings
- protected String[] _bindingItemNames;
- protected String[] _bindingItemIndexNames;
protected OpenType[] _bindingItemTypes;
protected CompositeType _bindingDataType;
protected TabularType _bindinglistDataType;
@@ -82,17 +80,14 @@ public abstract class AbstractExchange implements Exchange, Managable
}
protected void init() throws OpenDataException
- {
- _bindingItemNames = new String[]{"Binding Key", "Queue Names"};
- _bindingItemIndexNames = new String[]{_bindingItemNames[0]};
-
+ {
_bindingItemTypes = new OpenType[2];
_bindingItemTypes[0] = SimpleType.STRING;
_bindingItemTypes[1] = new ArrayType(1, SimpleType.STRING);
_bindingDataType = new CompositeType("Exchange Binding", "Binding key and Queue names",
- _bindingItemNames, _bindingItemNames, _bindingItemTypes);
+ COMPOSITE_ITEM_NAMES, COMPOSITE_ITEM_DESCRIPTIONS, _bindingItemTypes);
_bindinglistDataType = new TabularType("Exchange Bindings", "Exchange Bindings for " + getName(),
- _bindingDataType, _bindingItemIndexNames);
+ _bindingDataType, TABULAR_UNIQUE_INDEX);
}
public ManagedObject getParentObject()
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java
index 8eba14d8b6..4b609f592b 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/DirectExchange.java
@@ -114,7 +114,7 @@ public class DirectExchange extends AbstractExchange
}
Object[] bindingItemValues = {key.toString(), queueList.toArray(new String[0])};
- CompositeData bindingData = new CompositeDataSupport(_bindingDataType, _bindingItemNames, bindingItemValues);
+ CompositeData bindingData = new CompositeDataSupport(_bindingDataType, COMPOSITE_ITEM_NAMES, bindingItemValues);
_bindingList.put(bindingData);
}
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 35a7dfa1d9..23c716a0db 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
@@ -77,7 +77,7 @@ public class FanoutExchange extends AbstractExchange
String queueName = queue.getName().toString();
Object[] bindingItemValues = {queueName, new String[]{queueName}};
- CompositeData bindingData = new CompositeDataSupport(_bindingDataType, _bindingItemNames, bindingItemValues);
+ CompositeData bindingData = new CompositeDataSupport(_bindingDataType, COMPOSITE_ITEM_NAMES, bindingItemValues);
_bindingList.put(bindingData);
}
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java
index f66e041f13..fc667db17b 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/HeadersExchange.java
@@ -84,8 +84,6 @@ public class HeadersExchange extends AbstractExchange
{
private static final Logger _logger = Logger.getLogger(HeadersExchange.class);
-
-
public static final ExchangeType<HeadersExchange> TYPE = new ExchangeType<HeadersExchange>()
{
@@ -137,17 +135,15 @@ public class HeadersExchange extends AbstractExchange
*/
protected void init() throws OpenDataException
{
- _bindingItemNames = new String[]{"Binding No", "Queue Name", "Queue Bindings"};
- _bindingItemIndexNames = new String[]{_bindingItemNames[0]};
_bindingItemTypes = new OpenType[3];
_bindingItemTypes[0] = SimpleType.INTEGER;
_bindingItemTypes[1] = SimpleType.STRING;
_bindingItemTypes[2] = new ArrayType(1, SimpleType.STRING);
_bindingDataType = new CompositeType("Exchange Binding", "Queue name and header bindings",
- _bindingItemNames, _bindingItemNames, _bindingItemTypes);
+ HEADERS_COMPOSITE_ITEM_NAMES, HEADERS_COMPOSITE_ITEM_DESC, _bindingItemTypes);
_bindinglistDataType = new TabularType("Exchange Bindings", "List of exchange bindings for " + getName(),
- _bindingDataType, _bindingItemIndexNames);
+ _bindingDataType, HEADERS_TABULAR_UNIQUE_INDEX);
}
public TabularData bindings() throws OpenDataException
@@ -180,7 +176,7 @@ public class HeadersExchange extends AbstractExchange
Object[] bindingItemValues = {count++, queueName, mappingList.toArray(new String[0])};
- CompositeData bindingData = new CompositeDataSupport(_bindingDataType, _bindingItemNames, bindingItemValues);
+ CompositeData bindingData = new CompositeDataSupport(_bindingDataType, HEADERS_COMPOSITE_ITEM_NAMES, bindingItemValues);
_bindingList.put(bindingData);
}
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
index aaf3bbdcaa..be7a1dc196 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/exchange/TopicExchange.java
@@ -336,7 +336,7 @@ public class TopicExchange extends AbstractExchange
for(Map.Entry<String, List<String>> entry : bindingData.entrySet())
{
Object[] bindingItemValues = {entry.getKey(), entry.getValue().toArray(new String[entry.getValue().size()]) };
- CompositeData bindingCompositeData = new CompositeDataSupport(_bindingDataType, _bindingItemNames, bindingItemValues);
+ CompositeData bindingCompositeData = new CompositeDataSupport(_bindingDataType, COMPOSITE_ITEM_NAMES, bindingItemValues);
_bindingList.put(bindingCompositeData);
}
diff --git a/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java b/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java
index cb3baf6ae0..c8df64549e 100644
--- a/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java
+++ b/qpid/java/management/common/src/main/java/org/apache/qpid/management/common/mbeans/ManagedExchange.java
@@ -40,6 +40,18 @@ public interface ManagedExchange
{
static final String TYPE = "Exchange";
static final int VERSION = 1;
+
+ //TabularType and contained CompositeType key/description info for DIRECT/TOPIC/FANOUT exchanges.
+ //For compatibility reasons, DONT MODIFY the existing key values if expanding the set.
+ String[] COMPOSITE_ITEM_NAMES = {"Binding Key", "Queue Names"};
+ String[] COMPOSITE_ITEM_DESCRIPTIONS = {"Binding Key", "Queue Names"};
+ String[] TABULAR_UNIQUE_INDEX = {COMPOSITE_ITEM_NAMES[0]};
+
+ //TabularType and contained CompositeType key/description info for HEADERS exchange only.
+ //For compatibility reasons, DONT MODIFY the existing key values if expanding the set.
+ String[] HEADERS_COMPOSITE_ITEM_NAMES = new String[]{"Binding No", "Queue Name", "Queue Bindings"};
+ String[] HEADERS_COMPOSITE_ITEM_DESC = new String[]{"Binding No", "Queue Name", "Queue Bindings"};
+ String[] HEADERS_TABULAR_UNIQUE_INDEX = new String[]{HEADERS_COMPOSITE_ITEM_NAMES[0]};
/**
* Returns the name of the managed exchange.