📄 genericjmxmodel.java
字号:
/*------------------------------------------------------------------------------Name: GenericJmxModel.javaProject: xmlBlaster.orgCopyright: xmlBlaster.org, see xmlBlaster-LICENSE file------------------------------------------------------------------------------*/package org.xmlBlaster.jmxgui.plugins;import org.xmlBlaster.jmxgui.*;import javax.management.ObjectName;import javax.management.MBeanAttributeInfo;import javax.management.MalformedObjectNameException;import java.util.Vector;import java.util.HashMap;import org.xmlBlaster.client.jmx.*;import java.rmi.*;/** * Model that wraps key-value pairs from MBeans that are exposed for management */public class GenericJmxModel extends javax.swing.table.AbstractTableModel{ protected Vector vecMBeans; protected ConnectorClient connectorClient = null; protected AsyncMBeanServer aServer = null; protected ObjectName RequestBroker = null; private HashMap hmtable = new HashMap(); private String objectName =""; private String className=""; public GenericJmxModel(ConnectorClient connectorClient, String objectName, String className) { this.objectName = objectName; this.connectorClient = connectorClient; this.className = className; loadData(); } public void loadData() { try { ObjectName name = new ObjectName(objectName); boolean isLoaded = ((Boolean) (connectorClient.getServer().isRegistered(name).get())).booleanValue(); if (!isLoaded) { loadMBean(objectName, className); } } catch (Exception ex) { ex.printStackTrace(); } exploreMBeans(); fillHashMap(); } public void fillHashMap() { for (int i = 0; i<vecMBeans.size(); i++) { try { hmtable.put(new Integer(i), aServer.getAttribute(RequestBroker, (String) vecMBeans.get(i)).get()); } catch (RemoteException ex) { } } } public void exploreMBeans() { vecMBeans = new Vector(); try { aServer= connectorClient.getServer(); } catch (ConnectorException ex) { ex.printStackTrace(); } try { RequestBroker = new ObjectName(objectName); } catch (MalformedObjectNameException ex) { } MBeanAttributeInfo[] attrInfo = connectorClient.exploreMBeansByObjectName(objectName); for (int i =0; i<attrInfo.length; i++) { vecMBeans.addElement(attrInfo[i].getName()); } } public void loadMBean(String myObjectName, String className) { try { AsyncMBeanServer server = connectorClient.getServer(); server.createMBean(className, new ObjectName(myObjectName)); } catch (Exception ex) { ex.printStackTrace(); } }//Swing implementation public boolean isCellEditable (int i, int j) { return false; } public int getRowCount() { return vecMBeans.size(); } public int getColumnCount() { return 2; } public Object getValueAt(int row, int column) { Object obj = new Object(); if (column == 0) { obj = vecMBeans.get(row); } if (column == 1) { try { obj = hmtable.get(new Integer(row)); } catch (Exception ex) { ex.printStackTrace(); } } return obj; } public String getColumnName(int columnIndex) { String name = ""; if (columnIndex==0) { name= "key"; } if (columnIndex==1) { name = "value"; } return name; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -