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

📄 connectorclient.java

📁 java开源的企业总线.xmlBlaster
💻 JAVA
字号:
/*------------------------------------------------------------------------------Name:      Main.javaProject:   xmlBlaster.orgCopyright: xmlBlaster.org, see xmlBlaster-LICENSE file------------------------------------------------------------------------------*/package org.xmlBlaster.jmxgui;import javax.management.*;import java.util.logging.Logger;import java.util.logging.Level;import org.xmlBlaster.util.Global;import org.xmlBlaster.client.jmx.AsyncMBeanServer;import org.xmlBlaster.client.jmx.ConnectorFactory;import org.xmlBlaster.client.jmx.ConnectorException;import java.rmi.RemoteException;/** * Class that encapsulates Communication to xmlBlaster / MBeanServer from GUI */public class ConnectorClient {   private static Logger log = Logger.getLogger(ConnectorClient.class.getName());  private Global glob = null;  private static AsyncMBeanServer aServer = null;  private final static String ME = "ConnectorClient";  private ConnectorFactory connectorFactory;  public ConnectorClient(Global glob, String serverName) {    this.glob = glob;    // should we allow to pass null here for the global ?     // If yes, then we should have a clear separation of the non-xmlBlaster code    if (this.glob == null) this.glob = Global.instance();    //trying to establish connection to JmxServer    log.info("New Connector client - trying to establish connection to JmxServer....");    try {      this.connectorFactory = ConnectorFactory.getInstance(this.glob);//      aServer = connectorFactory.createAsyncConnector("xmlBlaster", serverName);        aServer = connectorFactory.getMBeanServer(serverName);    }    catch (ConnectorException ex) {      log.severe("Error when creating AsyncMBeanServerInstance " + ex.toString());      ex.printStackTrace();    }//    if ( aServer != null ) {log.info("Asynchron MBeanServer available: " + aServer.getDefaultDomain());}//    else {log.severe("Error when creating AsyncMBeanServerInstance - Reference to Object Null");}  }  /**   * Returns AsyncMBeanServer Object. For basic access to MBean-functions within the clients   * @return   * @throws ConnectorException   */  public AsyncMBeanServer getServer() throws ConnectorException {    if ( this.aServer != null ) { return this.aServer; }    else {      throw new ConnectorException("MBeanServer not available");    }  }/** * Returns a list of servers that have a JMX-Server running * TODO: implement cluster-lookup from xmlBlaster-lib. * JMX-implementation not working correctly */  public String[] getServerList() {    return this.connectorFactory.getMBeanServerList();  }  /**   * logout from Server   */  public void logout() {    if (log.isLoggable(Level.FINER)) log.finer("logout");    if (log.isLoggable(Level.FINEST)) Thread.currentThread().dumpStack();    aServer.close();  }  /**   * Returns Information about all attributes that are handeled by the given   * MBean   * @param name name of the MBean   * @return Array of MBeanAttributeInfo   */  public MBeanAttributeInfo[] exploreMBeansByObjectName(String name) {    if (log.isLoggable(Level.FINER)) log.finer("exploreMBeansByObjectName '" + name + "'");    MBeanInfo mbInfo = getMBeanInfo(name);    return mbInfo.getAttributes();  }  /**   * Discovers the attributes and operations that an MBean exposes for management.   * @param name name of the Bean   * @return MBeanInfo   */  private MBeanInfo getMBeanInfo(String name) {    if (log.isLoggable(Level.FINER)) log.finer("getMBeanInfo '" + name + "'");    MBeanInfo mbInfo = null;    ObjectName RequestBroker = null;    if (aServer != null ) {      try {      RequestBroker = new ObjectName(name);      mbInfo = (MBeanInfo) aServer.getMBeanInfo(RequestBroker).get();      }      catch (Exception ex) {        log.severe("Error when retrieving information about " + name  +" >> " + ex.toString());        ex.printStackTrace();      }    }    else log.severe("Lost AsyncServer!");    return mbInfo;  }  /**   * Discovers the Operations that an MBEan exposes for management   * @param name name of the Bean   * @return Array of MBeanOperationInfo   */  public MBeanOperationInfo[] exploreMBeanOperationsByObjectName(String name) {    if (log.isLoggable(Level.FINER)) log.finer("exploreMBeanOperationsByObjectName '" + name + "'");    MBeanInfo mbInfo = getMBeanInfo(name);    return mbInfo.getOperations();  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -