diff options
author | Robert Greig <rgreig@apache.org> | 2007-01-24 15:41:48 +0000 |
---|---|---|
committer | Robert Greig <rgreig@apache.org> | 2007-01-24 15:41:48 +0000 |
commit | b89531eed28cf2eee4fd841be57d27c0d5bcf744 (patch) | |
tree | 3e86825d875a7cae7943ae17e0350cee5aec0bc5 /java/management/eclipse-plugin/src | |
parent | 7c43996f3c10426d6593b7224486a6b0331c7259 (diff) | |
download | qpid-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')
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); |