summaryrefslogtreecommitdiff
path: root/java/management/eclipse-plugin/src
diff options
context:
space:
mode:
authorRobert Greig <rgreig@apache.org>2007-01-24 15:41:48 +0000
committerRobert Greig <rgreig@apache.org>2007-01-24 15:41:48 +0000
commitb89531eed28cf2eee4fd841be57d27c0d5bcf744 (patch)
tree3e86825d875a7cae7943ae17e0350cee5aec0bc5 /java/management/eclipse-plugin/src
parent7c43996f3c10426d6593b7224486a6b0331c7259 (diff)
downloadqpid-python-b89531eed28cf2eee4fd841be57d27c0d5bcf744.tar.gz
QPID-50 : Patch supplied by Rob Godfrey - Virtual Host implementation
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@499446 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/management/eclipse-plugin/src')
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java22
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ServerRegistry.java61
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientListener.java2
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientNotificationListener.java1
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java50
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanTypeTabControl.java14
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java55
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java130
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NotificationsTabControl.java1
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java12
-rw-r--r--java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java3
11 files changed, 250 insertions, 101 deletions
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java
index 756d404596..8817f6c2c5 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/Constants.java
@@ -32,7 +32,7 @@ public class Constants
public final static String ITEM_TYPE = "type";
public final static String SERVER = "server";
public final static String DOMAIN = "domain";
- public final static String TYPE = "mbeantype";
+ public final static String NODE_TYPE_MBEANTYPE = "mbeantype";
public final static String MBEAN = "mbean";
public final static String ATTRIBUTE = "Attribute";
public final static String ATTRIBUTES = "Attributes";
@@ -45,13 +45,14 @@ public class Constants
public final static String NAVIGATION_ROOT = "Qpid Connections";
public final static String DESCRIPTION = " Description";
-
- public final static String BROKER_MANAGER = "Broker_Manager";
- public final static String QUEUE = "Queue";
- public final static String EXCHANGE = "Exchange";
+
+ public final static String VIRTUAL_HOST = "VirtualHost";
+ public final static String MBEAN_TYPE_BROKER_MANAGER = "VirtualHost.BrokerManager";
+ public final static String MBEAN_TYPE_QUEUE = "VirtualHost.Queue";
+ public final static String MBEAN_TYPE_EXCHANGE = "VirtualHost.Exchange";
public final static String EXCHANGE_TYPE = "ExchangeType";
public final static String[] EXCHANGE_TYPE_VALUES = {"direct", "topic", "headers"};
- public final static String CONNECTION ="Connection";
+ public final static String MBEAN_TYPE_CONNECTION ="Connection";
public final static String ACTION_ADDSERVER = "New Connection";
@@ -87,4 +88,13 @@ public class Constants
public final static int OPERATION_IMPACT_ACTION = 1;
public final static int OPERATION_IMPACT_ACTIONINFO = 2;
public final static int OPERATION_IMPACT_UNKNOWN = 3;
+ public static final String NODE_TYPE_VIRTUAL_HOST = "virtualhost";
+ public static final String NODE_LABEL_QUEUES = "queues";
+ public static final String NODE_LABEL_EXCHANGES = "exchanges";
+ public static final String NODE_LABEL_CONNECTIONS = "connections";
+
+ public static final String NODE_LABEL_VIRTUAL_HOSTS = "virtual hosts";
+ public static final String TAB_LABEL_QUEUES = "queues";
+ public static final String TAB_LABEL_EXCHANGES = "exchanges";
+ public static final String TAB_LABEL_CONNECTIONS = "connections";
}
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ServerRegistry.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ServerRegistry.java
index 6fbfdcd06f..cc106c445b 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ServerRegistry.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/ServerRegistry.java
@@ -23,6 +23,10 @@ package org.apache.qpid.management.ui;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.ConcurrentHashMap;
import org.apache.qpid.management.ui.jmx.ClientListener;
import org.apache.qpid.management.ui.model.ManagedAttributeModel;
@@ -33,11 +37,11 @@ public abstract class ServerRegistry
{
private ManagedServer _managedServer = null;
// list of all Connection mbeans
- protected List<ManagedBean> _connections = new ArrayList<ManagedBean>();
+ protected ConcurrentMap<String,List<ManagedBean>> _connections = new ConcurrentHashMap<String,List<ManagedBean>>();
// list of all exchange mbeans
- protected List<ManagedBean> _exchanges = new ArrayList<ManagedBean>();
+ protected ConcurrentMap<String,List<ManagedBean>> _exchanges = new ConcurrentHashMap<String,List<ManagedBean>>();
// list of all queue mbenas
- protected List<ManagedBean> _queues = new ArrayList<ManagedBean>();
+ protected ConcurrentMap<String,List<ManagedBean>> _queues = new ConcurrentHashMap<String,List<ManagedBean>>();
public ServerRegistry()
{
@@ -61,47 +65,68 @@ public abstract class ServerRegistry
protected void addConnectionMBean(ManagedBean mbean)
{
- _connections.add(mbean);
+ String virtualHostName = mbean.getProperty("VirtualHost");
+ _connections.putIfAbsent(virtualHostName, new ArrayList<ManagedBean>());
+ List<ManagedBean> beans = _connections.get(virtualHostName);
+ beans.add(mbean);
}
protected void addExchangeMBean(ManagedBean mbean)
{
- _exchanges.add(mbean);
+ String virtualHostName = mbean.getProperty("VirtualHost");
+ _exchanges.putIfAbsent(virtualHostName, new ArrayList<ManagedBean>());
+ List<ManagedBean> beans = _exchanges.get(virtualHostName);
+ beans.add(mbean);
}
protected void addQueueMBean(ManagedBean mbean)
{
- _queues.add(mbean);
+ String virtualHostName = mbean.getProperty("VirtualHost");
+ _queues.putIfAbsent(virtualHostName, new ArrayList<ManagedBean>());
+ List<ManagedBean> beans = _queues.get(virtualHostName);
+ beans.add(mbean);
}
protected void removeConnectionMBean(ManagedBean mbean)
{
- _connections.remove(mbean);
+ String virtualHostName = mbean.getProperty("VirtualHost");
+ _connections.putIfAbsent(virtualHostName, new ArrayList<ManagedBean>());
+ List<ManagedBean> beans = _connections.get(virtualHostName);
+ beans.remove(mbean);
}
protected void removeExchangeMBean(ManagedBean mbean)
{
- _exchanges.remove(mbean);
+ String virtualHostName = mbean.getProperty("VirtualHost");
+ _exchanges.putIfAbsent(virtualHostName, new ArrayList<ManagedBean>());
+ List<ManagedBean> beans = _exchanges.get(virtualHostName);
+ beans.remove(mbean);
}
protected void removeQueueMBean(ManagedBean mbean)
{
- _queues.remove(mbean);
+ String virtualHostName = mbean.getProperty("VirtualHost");
+ _queues.putIfAbsent(virtualHostName, new ArrayList<ManagedBean>());
+ List<ManagedBean> beans = _queues.get(virtualHostName);
+ beans.remove(mbean);
}
- public List<ManagedBean> getConnections()
+ public List<ManagedBean> getConnections(String virtualHost)
{
- return _connections;
+ _connections.putIfAbsent(virtualHost, new ArrayList<ManagedBean>());
+ return _connections.get(virtualHost);
}
- public List<ManagedBean> getExchanges()
+ public List<ManagedBean> getExchanges(String virtualHost)
{
- return _exchanges;
+ _exchanges.putIfAbsent(virtualHost, new ArrayList<ManagedBean>());
+ return _exchanges.get(virtualHost);
}
- public List<ManagedBean> getQueues()
+ public List<ManagedBean> getQueues(String virtualHost)
{
- return _queues;
+ _queues.putIfAbsent(virtualHost, new ArrayList<ManagedBean>());
+ return _queues.get(virtualHost);
}
public abstract void addManagedObject(ManagedBean key);
@@ -123,11 +148,11 @@ public abstract class ServerRegistry
public abstract OperationDataModel getOperationModel(ManagedBean mbean);
- public abstract String[] getQueueNames();
+ public abstract String[] getQueueNames(String virtualHost);
- public abstract String[] getExchangeNames();
+ public abstract String[] getExchangeNames(String virtualHost);
- public abstract String[] getConnectionNames();
+ public abstract String[] getConnectionNames(String virtualHost);
public abstract List<NotificationObject> getNotifications(ManagedBean mbean);
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientListener.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientListener.java
index 00a9ae7653..6a23051a9e 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientListener.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientListener.java
@@ -43,8 +43,6 @@ public class ClientListener implements NotificationListener
public void handleNotification(Notification notification, Object handback)
{
- System.out.println("\nReceived server notification: " + notification);
-
ObjectName objName = null;
String type = notification.getType();
if (MBeanServerNotification.REGISTRATION_NOTIFICATION.equals(type))
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientNotificationListener.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientNotificationListener.java
index 31b761fcf3..c6ecda4b4c 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientNotificationListener.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/ClientNotificationListener.java
@@ -34,7 +34,6 @@ public class ClientNotificationListener extends ClientListener
public void handleNotification(Notification notification, Object handback)
{
- System.out.println("\nReceived mbean notification: " + notification);
ObjectName objName = (ObjectName)notification.getSource();
//String type = notification.getType();
getServerRegistry().addNotification(objName, notification);
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java
index c087bd2e72..727e1228f5 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/jmx/JMXServerRegistry.java
@@ -120,7 +120,8 @@ public class JMXServerRegistry extends ServerRegistry
}
catch (ListenerNotFoundException ex)
{
- System.out.println(ex.toString());
+ System.err.println(ex);
+ ex.printStackTrace();
}
}
@@ -131,15 +132,15 @@ public class JMXServerRegistry extends ServerRegistry
public void addManagedObject(ManagedBean mbean)
{
- if (Constants.QUEUE.equals(mbean.getType()) && !mbean.getName().startsWith("tmp_"))
+ if (Constants.MBEAN_TYPE_QUEUE.equals(mbean.getType()) && !mbean.getName().startsWith("tmp_"))
{
addQueueMBean(mbean);
}
- else if (Constants.EXCHANGE.equals(mbean.getType()))
+ else if (Constants.MBEAN_TYPE_EXCHANGE.equals(mbean.getType()))
{
addExchangeMBean(mbean);
}
- else if (Constants.CONNECTION.equals(mbean.getType()))
+ else if (Constants.MBEAN_TYPE_CONNECTION.equals(mbean.getType()))
{
addConnectionMBean(mbean);
}
@@ -149,11 +150,11 @@ public class JMXServerRegistry extends ServerRegistry
public void removeManagedObject(ManagedBean mbean)
{
- if (Constants.QUEUE.equals(mbean.getType()))
+ if (Constants.MBEAN_TYPE_QUEUE.equals(mbean.getType()))
removeQueueMBean(mbean);
- else if (Constants.EXCHANGE.equals(mbean.getType()))
+ else if (Constants.MBEAN_TYPE_EXCHANGE.equals(mbean.getType()))
removeExchangeMBean(mbean);
- else if (Constants.CONNECTION.equals(mbean.getType()))
+ else if (Constants.MBEAN_TYPE_CONNECTION.equals(mbean.getType()))
removeConnectionMBean(mbean);
_mbeansMap.remove(mbean.getUniqueName());
@@ -247,7 +248,6 @@ public class JMXServerRegistry extends ServerRegistry
list.add(type);
}
- System.out.println("Subscribed for notification :" + mbean.getUniqueName());
}
public boolean hasSubscribedForNotifications(ManagedBean mbean, String name, String type)
@@ -268,7 +268,6 @@ public class JMXServerRegistry extends ServerRegistry
public void removeNotificationListener(ManagedBean mbean, String name, String type) throws Exception
{
- System.out.println("Removed notification listener :" + mbean.getUniqueName() + name +type);
if (_subscribedNotificationMap.containsKey(mbean.getUniqueName()))
{
HashMap<String, List<String>> map = _subscribedNotificationMap.get(mbean.getUniqueName());
@@ -335,37 +334,40 @@ public class JMXServerRegistry extends ServerRegistry
return _operationModelMap.get(mbean.getUniqueName());
}
- public String[] getQueueNames()
+ public String[] getQueueNames(String virtualHost)
{
- String[] queues = new String[_queues.size()];
+ List<ManagedBean> queues = _queues.get(virtualHost);
+ String[] queueNames = new String[queues.size()];
int i = 0;
- for (ManagedBean mbean : _queues)
+ for (ManagedBean mbean : queues)
{
- queues[i++] = mbean.getName();
+ queueNames[i++] = mbean.getName();
}
- return queues;
+ return queueNames;
}
- public String[] getExchangeNames()
+ public String[] getExchangeNames(String virtualHost)
{
- String[] exchanges = new String[_exchanges.size()];
+ List<ManagedBean> exchanges = _exchanges.get(virtualHost);
+ String[] exchangeNames = new String[exchanges.size()];
int i = 0;
- for (ManagedBean mbean : _exchanges)
+ for (ManagedBean mbean : exchanges)
{
- exchanges[i++] = mbean.getName();
+ exchangeNames[i++] = mbean.getName();
}
- return exchanges;
+ return exchangeNames;
}
- public String[] getConnectionNames()
+ public String[] getConnectionNames(String virtualHost)
{
- String[] connections = new String[_connections.size()];
+ List<ManagedBean> connections = _connections.get(virtualHost);
+ String[] connectionNames = new String[connections.size()];
int i = 0;
- for (ManagedBean mbean : _connections)
+ for (ManagedBean mbean : connections)
{
- connections[i++] = mbean.getName();
+ connectionNames[i++] = mbean.getName();
}
- return connections;
+ return connectionNames;
}
public ClientNotificationListener getNotificationListener()
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanTypeTabControl.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanTypeTabControl.java
index 73d56634ec..d8d76058a5 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanTypeTabControl.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanTypeTabControl.java
@@ -91,7 +91,7 @@ public class MBeanTypeTabControl
for (int i = 0; i < selectedItems.length; i++)
{
String name = selectedItems[i];;
- if (Constants.QUEUE.equals(_type))
+ if (Constants.MBEAN_TYPE_QUEUE.equals(_type))
{
int endIndex = name.lastIndexOf("(");
name = name.substring(0, endIndex -1);
@@ -231,21 +231,21 @@ public class MBeanTypeTabControl
java.util.List<ManagedBean> list = null;
// populate the map and list with appropriate mbeans
- if (_type.equals(Constants.QUEUE))
+ if (_type.equals(Constants.MBEAN_TYPE_QUEUE) || _type.equals(Constants.NODE_LABEL_QUEUES))
{
- list = serverRegistry.getQueues();
+ list = serverRegistry.getQueues(MBeanView.getVirtualHostName());
items = getQueueItems(list);
_sortBySizeButton.setVisible(true);
}
- else if (_type.equals(Constants.EXCHANGE))
+ else if (_type.equals(Constants.MBEAN_TYPE_EXCHANGE) || _type.equals(Constants.NODE_LABEL_EXCHANGES))
{
- list = serverRegistry.getExchanges();
+ list = serverRegistry.getExchanges(MBeanView.getVirtualHostName());
items = getItems(list);
_sortBySizeButton.setVisible(false);
}
- else if (_type.equals(Constants.CONNECTION))
+ else if (_type.equals(Constants.MBEAN_TYPE_CONNECTION) || _type.equals(Constants.NODE_LABEL_CONNECTIONS))
{
- list = serverRegistry.getConnections();
+ list = serverRegistry.getConnections(MBeanView.getVirtualHostName());
items = getItems(list);
_sortBySizeButton.setVisible(false);
}
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java
index 62871c4c91..1622c231c6 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/MBeanView.java
@@ -74,9 +74,12 @@ public class MBeanView extends ViewPart
// TabFolder to list all the mbeans for a given mbeantype(eg Connection, Queue, Exchange)
private TabFolder typeTabFolder = null;
+ private static String _virtualHostName;
+
+
/*
- * Listener for the selection events in the navigation view
- */
+ * Listener for the selection events in the navigation view
+ */
private class SelectionListenerImpl implements ISelectionListener
{
public void selectionChanged(IWorkbenchPart part, ISelection sel)
@@ -102,11 +105,11 @@ public class MBeanView extends ViewPart
setServer();
try
{
- if (Constants.TYPE.equals(_selectedNode.getType()))
+ if (Constants.NODE_TYPE_MBEANTYPE.equals(_selectedNode.getType()))
{
refreshTypeTabFolder(_selectedNode.getName());
}
- else if (Constants.DOMAIN.equals(_selectedNode.getType()))
+ else if (Constants.NODE_TYPE_VIRTUAL_HOST.equals(_selectedNode.getType()))
{
refreshTypeTabFolder(typeTabFolder.getItem(0));
}
@@ -146,6 +149,19 @@ public class MBeanView extends ViewPart
if (parent != null && parent.getType().equals(Constants.SERVER))
_server = (ManagedServer)parent.getManagedObject();
}
+
+ TreeObject parent = _selectedNode;
+ while (parent != null && !parent.getType().equals(Constants.NODE_TYPE_VIRTUAL_HOST))
+ {
+ parent = parent.getParent();
+ }
+
+ if (parent != null)
+ {
+ _virtualHostName = parent.getName().substring(1, parent.getName().length()-1);
+ }
+
+
}
public static ManagedServer getServer()
@@ -427,15 +443,15 @@ public class MBeanView extends ViewPart
typeTabFolder.setData("CONTROLLER", controller);
TabItem tab = new TabItem(typeTabFolder, SWT.NONE);
- tab.setText(Constants.CONNECTION);
+ tab.setText(Constants.TAB_LABEL_CONNECTIONS);
tab.setControl(controller.getControl());
tab = new TabItem(typeTabFolder, SWT.NONE);
- tab.setText(Constants.EXCHANGE);
+ tab.setText(Constants.TAB_LABEL_EXCHANGES);
tab.setControl(controller.getControl());
tab = new TabItem(typeTabFolder, SWT.NONE);
- tab.setText(Constants.QUEUE);
+ tab.setText(Constants.TAB_LABEL_QUEUES);
tab.setControl(controller.getControl());
typeTabFolder.addListener(SWT.Selection, new Listener()
@@ -469,21 +485,30 @@ public class MBeanView extends ViewPart
}
typeTabFolder.setSelection(tab);
MBeanTypeTabControl controller = (MBeanTypeTabControl)typeTabFolder.getData("CONTROLLER");
- controller.refresh(tab.getText());
+ String nodeType = Constants.NODE_LABEL_CONNECTIONS;
+ if(tab.getText().equals(Constants.TAB_LABEL_QUEUES))
+ {
+ nodeType = Constants.NODE_LABEL_QUEUES;
+ }
+ else if(tab.getText().equals(Constants.TAB_LABEL_EXCHANGES))
+ {
+ nodeType = Constants.NODE_LABEL_EXCHANGES;
+ }
+ controller.refresh(nodeType);
typeTabFolder.setVisible(true);
}
- private void refreshTypeTabFolder(String type) throws Exception
+ private void refreshTypeTabFolder(String name) throws Exception
{
- if (Constants.CONNECTION.equals(type))
+ if (Constants.NODE_LABEL_CONNECTIONS.equals(name))
{
refreshTypeTabFolder(typeTabFolder.getItem(0));
}
- else if (Constants.EXCHANGE.equals(type))
+ else if (Constants.NODE_LABEL_EXCHANGES.equals(name))
{
refreshTypeTabFolder(typeTabFolder.getItem(1));
}
- else if (Constants.QUEUE.equals(type))
+ else if (Constants.NODE_LABEL_QUEUES.equals(name))
{
refreshTypeTabFolder(typeTabFolder.getItem(2));
}
@@ -516,5 +541,11 @@ public class MBeanView extends ViewPart
typeTabFolder.setVisible(false);
}
}
+
+ public static String getVirtualHostName()
+ {
+ return _virtualHostName;
+
+ }
}
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java
index ef74f0c230..fd53aa31df 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NavigationView.java
@@ -29,6 +29,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.qpid.management.ui.ApplicationRegistry;
import org.apache.qpid.management.ui.Constants;
@@ -39,6 +40,7 @@ import org.apache.qpid.management.ui.exceptions.InfoRequiredException;
import org.apache.qpid.management.ui.exceptions.ManagementConsoleException;
import org.apache.qpid.management.ui.jmx.JMXServerRegistry;
import org.apache.qpid.management.ui.jmx.MBeanUtility;
+import org.apache.qpid.management.ui.jmx.JMXManagedObject;
import org.eclipse.jface.viewers.DoubleClickEvent;
import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.IFontProvider;
@@ -266,7 +268,8 @@ public class NavigationView extends ViewPart
catch(Exception ex)
{
System.out.println("\nError in connecting to Qpid broker ");
- System.out.println("\n" + ex.toString());
+ System.out.println("\n" + ex);
+ ex.printStackTrace();
}
}
@@ -284,27 +287,66 @@ public class NavigationView extends ViewPart
// Add these three types - Connection, Exchange, Queue
// By adding these, these will always be available, even if there are no mbeans under thse types
// This is required because, the mbeans will be added from mbeanview, by selecting from the list
- TreeObject typeChild = new TreeObject(Constants.CONNECTION, Constants.TYPE);
- typeChild.setParent(domain);
- typeChild = new TreeObject(Constants.EXCHANGE, Constants.TYPE);
- typeChild.setParent(domain);
- typeChild = new TreeObject(Constants.QUEUE, Constants.TYPE);
- typeChild.setParent(domain);
-
-
+
+
+ TreeObject virtualhosts = new TreeObject(Constants.NODE_LABEL_VIRTUAL_HOSTS, Constants.NODE_TYPE_MBEANTYPE);
+ virtualhosts.setParent(domain);
+
+ Map<String, TreeObject> virtualHostMap = new HashMap<String, TreeObject>();
+
// Now populate the mbenas under those types
List<ManagedBean> mbeans = MBeanUtility.getManagedObjectsForDomain(server, domain.getName());
for (ManagedBean mbean : mbeans)
{
+
+ if(mbean.getType().equals(Constants.VIRTUAL_HOST))
+ {
+ TreeObject host = new TreeObject("[" + mbean.getName() + "]", Constants.NODE_TYPE_VIRTUAL_HOST);
+
+ virtualHostMap.put(mbean.getName(), host);
+ host.setParent(virtualhosts);
+
+ TreeObject child = new TreeObject(Constants.NODE_LABEL_CONNECTIONS, Constants.NODE_TYPE_MBEANTYPE);
+
+ child.setParent(host);
+ child = new TreeObject(Constants.NODE_LABEL_EXCHANGES, Constants.NODE_TYPE_MBEANTYPE);
+ child.setParent(host);
+ child = new TreeObject(Constants.NODE_LABEL_QUEUES, Constants.NODE_TYPE_MBEANTYPE);
+ child.setParent(host);
+
+ }
+ }
+ for (ManagedBean mbean : mbeans)
+ {
+
+
mbean.setServer(server);
- ServerRegistry serverRegistry = ApplicationRegistry.getServerRegistry(server);
- serverRegistry.addManagedObject(mbean);
+ ServerRegistry serverRegistry = ApplicationRegistry.getServerRegistry(server);
+ serverRegistry.addManagedObject(mbean);
+
+ if (mbean.getType().equals(Constants.MBEAN_TYPE_BROKER_MANAGER))
+ {
+ JMXManagedObject obj = (JMXManagedObject) mbean;
+ String host = obj.getProperty("VirtualHost");
+ TreeObject node = virtualHostMap.get(host);
+ if(node != null)
+ {
+ TreeObject beanNode = new TreeObject(mbean);
+ beanNode.setParent(node);
+ }
+ }
+
+
// Add all mbeans other than Connections, Exchanges and Queues. Because these will be added
// manually by selecting from MBeanView
- if (!(mbean.getType().equals(Constants.CONNECTION) || mbean.getType().equals(Constants.EXCHANGE) || mbean.getType().equals(Constants.QUEUE)))
+ if (!(mbean.getType().equals(Constants.MBEAN_TYPE_CONNECTION)
+ || mbean.getType().equals(Constants.MBEAN_TYPE_EXCHANGE)
+ || mbean.getType().equals(Constants.MBEAN_TYPE_QUEUE)
+ || mbean.getType().equals(Constants.VIRTUAL_HOST)
+ || mbean.getType().equals(Constants.MBEAN_TYPE_BROKER_MANAGER)))
{
- addManagedBean(domain, mbean);
+ addManagedBean(domain, mbean, virtualHostMap);
}
}
}
@@ -322,7 +364,7 @@ public class NavigationView extends ViewPart
for (TreeObject child : childNodes)
{
- if (Constants.TYPE.equals(child.getType()) && typeName.equals(child.getName()))
+ if (Constants.NODE_TYPE_MBEANTYPE.equals(child.getType()) && typeName.equals(child.getName()))
return child;
}
return null;
@@ -343,13 +385,22 @@ public class NavigationView extends ViewPart
* Adds the given MBean to the given domain node. Creates Notification node for the MBean.
* @param domain
* @param mbean mbean
+ * @param virtualHostMap
*/
- private void addManagedBean(TreeObject domain, ManagedBean mbean) throws Exception
+ private void addManagedBean(TreeObject domain, ManagedBean mbean, Map<String, TreeObject> virtualHostMap) throws Exception
{
+ JMXManagedObject obj = (JMXManagedObject) mbean;
+
+
+
String type = mbean.getType();
String name = mbean.getName();
- TreeObject typeNode = getMBeanTypeNode(domain, type);
+ String virtualHostName = obj.getProperty("VirtualHost");
+
+ TreeObject virtualHostNode = virtualHostMap.get(virtualHostName);
+
+ TreeObject typeNode = getMBeanTypeNode(virtualHostNode, getNodeLabelForType(type));
if (typeNode != null && doesMBeanNodeAlreadyExist(typeNode, name))
return;
@@ -368,8 +419,8 @@ public class NavigationView extends ViewPart
// type node does not exist. Now check if node to be created as mbeantype or MBean
if (name != null) // A managedObject with type and name
{
- typeNode = new TreeObject(type, Constants.TYPE);
- typeNode.setParent(domain);
+ typeNode = new TreeObject(type, Constants.NODE_TYPE_MBEANTYPE);
+ typeNode.setParent(virtualHostNode);
mbeanNode = new TreeObject(mbean);
mbeanNode.setParent(typeNode);
}
@@ -385,7 +436,27 @@ public class NavigationView extends ViewPart
TreeObject notificationNode = new TreeObject(Constants.NOTIFICATION, Constants.NOTIFICATION);
notificationNode.setParent(mbeanNode);
}
-
+
+ private String getNodeLabelForType(String type)
+ {
+ if(type.equals(Constants.MBEAN_TYPE_EXCHANGE))
+ {
+ return Constants.NODE_LABEL_EXCHANGES;
+ }
+ else if(type.equals(Constants.MBEAN_TYPE_QUEUE))
+ {
+ return Constants.NODE_LABEL_QUEUES;
+ }
+ else if(type.equals(Constants.MBEAN_TYPE_CONNECTION))
+ {
+ return Constants.NODE_LABEL_CONNECTIONS;
+ }
+ else
+ {
+ return type;
+ }
+ }
+
/**
* Removes all the child nodes of the given parent node
* @param parent
@@ -750,8 +821,26 @@ public class NavigationView extends ViewPart
break;
}
}
+ for (TreeObject child : domain.getChildren())
+ {
+ if (child.getName().equals(Constants.NODE_LABEL_VIRTUAL_HOSTS))
+ {
+ domain = child;
+ break;
+ }
+ }
+ Map<String, TreeObject> hostMap = new HashMap<String,TreeObject>();
+
+ for (TreeObject child: domain.getChildren())
+ {
+
+ if(child.getType().equals(Constants.NODE_TYPE_VIRTUAL_HOST))
+ {
+ hostMap.put(child.getName().substring(1,child.getName().length()-1), child);
+ }
+ }
- addManagedBean(domain, mbean);
+ addManagedBean(domain, mbean, hostMap);
_treeViewer.refresh();
}
@@ -773,7 +862,6 @@ public class NavigationView extends ViewPart
{
for (ManagedBean mbean : removalList)
{
- System.out.println("removing " + mbean.getName() + " " + mbean.getType());
TreeObject treeServerObject = _managedServerMap.get(mbean.getServer());
List<TreeObject> domains = treeServerObject.getChildren();
TreeObject domain = null;
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NotificationsTabControl.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NotificationsTabControl.java
index 3eb93f55d3..c45ad7b362 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NotificationsTabControl.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/NotificationsTabControl.java
@@ -326,7 +326,6 @@ public class NotificationsTabControl extends TabControl
Shell shell = null;
public void doubleClick(DoubleClickEvent event)
{
- System.out.println("DoubleClickEvent" + event);
display = Display.getCurrent();
shell = new Shell(display, SWT.BORDER | SWT.CLOSE | SWT.MIN |
SWT.MAX | SWT.RESIZE);
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java
index b0c67d03fe..204dd6f674 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/OperationTabControl.java
@@ -216,7 +216,7 @@ public class OperationTabControl extends TabControl
}
// Customised parameter widgets
- if (_mbean.getType().equals(Constants.EXCHANGE) &&
+ if (_mbean.getType().equals(Constants.MBEAN_TYPE_EXCHANGE) &&
"headers".equals(_mbean.getProperty(Constants.EXCHANGE_TYPE)) &&
_opData.getName().equalsIgnoreCase("createNewBinding"))
{
@@ -241,10 +241,10 @@ public class OperationTabControl extends TabControl
formData.top = new FormAttachment(0, params.indexOf(param) * heightForAParameter);
formData.left = new FormAttachment(label, 5);
formData.right = new FormAttachment(valueNumerator);
- if (param.getName().equals(Constants.QUEUE))
+ if (param.getName().equals(Constants.MBEAN_TYPE_QUEUE))
{
Combo combo = new Combo(_paramsComposite, SWT.READ_ONLY | SWT.DROP_DOWN);
- String[] items = ApplicationRegistry.getServerRegistry(_mbean).getQueueNames();
+ String[] items = ApplicationRegistry.getServerRegistry(_mbean).getQueueNames(_mbean.getProperty("VirtualHost"));
combo.setItems(items);
combo.add("Select Queue", 0);
combo.select(0);
@@ -253,10 +253,10 @@ public class OperationTabControl extends TabControl
combo.addSelectionListener(parameterSelectionListener);
valueInCombo = true;
}
- else if (param.getName().equals(Constants.EXCHANGE))
+ else if (param.getName().equals(Constants.MBEAN_TYPE_EXCHANGE))
{
Combo combo = new Combo(_paramsComposite, SWT.READ_ONLY | SWT.DROP_DOWN);
- String[] items = ApplicationRegistry.getServerRegistry(_mbean).getExchangeNames();
+ String[] items = ApplicationRegistry.getServerRegistry(_mbean).getExchangeNames(_mbean.getProperty("VirtualHost"));
combo.setItems(items);
combo.add("Select Exchange", 0);
combo.select(0);
@@ -358,7 +358,7 @@ public class OperationTabControl extends TabControl
formData.right = new FormAttachment(valueNumerator);
Combo combo = new Combo(composite, SWT.READ_ONLY | SWT.DROP_DOWN);
- String[] items = ApplicationRegistry.getServerRegistry(_mbean).getQueueNames();
+ String[] items = ApplicationRegistry.getServerRegistry(_mbean).getQueueNames(_mbean.getProperty("VirtualHost"));
combo.setItems(items);
combo.add("Select Queue", 0);
combo.select(0);
diff --git a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java
index c2066a9277..c21be5d68c 100644
--- a/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java
+++ b/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/ViewUtility.java
@@ -277,7 +277,6 @@ public class ViewUtility
// Set the index being shown.
compositeHolder.setData(INDEX, index);
- System.out.println("index :" + index);
return (CompositeData)((Map.Entry)objectData.get(index)).getValue();
}
@@ -320,7 +319,6 @@ public class ViewUtility
if (itemType.isArray())
{
OpenType type = ((ArrayType)itemType).getElementOpenType();
- System.out.println("Array Element type = " + type.getClassName());
// If Byte array and mimetype is text, convert to text string
if (type.getClassName().equals(Byte.class.getName()))
{
@@ -390,7 +388,6 @@ public class ViewUtility
try
{
String textMessage = new String(byteArray, encoding);
- System.out.println("\nMessage : \n" + textMessage + "\n");
Text valueText = toolkit.createText(compositeHolder, textMessage, SWT.READ_ONLY | SWT.BORDER |
SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);