⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 genericjmxmodel.java

📁 java开源的企业总线.xmlBlaster
💻 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 + -