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

📄 testremotembeanserver.java

📁 java开源的企业总线.xmlBlaster
💻 JAVA
字号:
package org.xmlBlaster.test.jmx;import junit.framework.*;import javax.management.*;import org.xmlBlaster.client.jmx.AsyncMBeanServer;import org.xmlBlaster.client.jmx.ConnectorFactory;import org.xmlBlaster.client.jmx.*;import java.util.logging.Logger;import java.util.logging.Level;import org.xmlBlaster.util.Global;import java.rmi.*;public class TestRemoteMBeanServer extends TestCase{  private final static String ME = "TestRemoteMBeanServer";  private Global glob = null;   private static Logger log = Logger.getLogger(TestRemoteMBeanServer.class.getName());  protected ObjectName RequestBrokerName;  protected AsyncMBeanServer server;  ObjectName JmxLoggerName;     /**    * Method is used by TestRunner to load these tests    */   public static Test suite() {       TestSuite suite= new TestSuite();       suite.addTest(new TestRemoteMBeanServer("testRemoteMBeanServer"));       return suite;   }   public TestRemoteMBeanServer() {       super(ME);   }  public TestRemoteMBeanServer(String testName)   {       super(testName);   }  public static void main(String[] args) {    TestRemoteMBeanServer testRemoteMBeanServer1 = new TestRemoteMBeanServer();    testRemoteMBeanServer1.setUp();    testRemoteMBeanServer1.testRemoteMBeanServer();    testRemoteMBeanServer1.tearDown();  }  protected void setUp() {    this.glob = (this.glob == null) ? new Global() : this.glob;    try {      log.info("setUp of TestRemoteMBeanServer...");      JmxLoggerName = new ObjectName("xmlBlaster:name=JmxLogChannel");      RequestBrokerName = new ObjectName("xmlBlaster:name=requestBroker");   }    catch (MalformedObjectNameException ex) {      assertTrue("Object not found!! " + ex.toString(), false);      log.severe("Object not found!! " + ex.toString());      ex.printStackTrace();    }    catch (Exception ex) {    assertTrue("Error creating ObjectName!! " + ex.toString(), false);    log.severe("Error creating ObjectName!! " + ex.toString());    ex.printStackTrace();    }  }  protected void tearDown() {    log.info("shutting down server...");    server.close();  }  public void testRemoteMBeanServer() {    log.info("creating server on localhost");    try {      server = ConnectorFactory.getInstance(this.glob).getMBeanServer("localhost");    }    catch (ConnectorException ex) {      assertTrue("Error connecting to server! " + ex.toString(), false);    }    testCreateMBean();    Callback cb2 = server.getObjectInstance(JmxLoggerName);    log.info("Playing around with Bean...");    testInvoke();    boolean registered = testIsRegistered();    testGetAttribute();    testGetMBeanInfo();    testGetMBeanCount();    testUnregisterMBean(registered);  }  private boolean testIsRegistered() {    log.info("Is JmxLoggerMBean still registered?");    boolean registered = false;    try {      registered  = ( (Boolean) server.isRegistered(JmxLoggerName).get()).booleanValue();    }    catch (Exception ex) {      log.severe("Error when checking for JmxLogger! " + ex.toString());      assertTrue("Error when checking for JmxLogger " + ex.toString(), false);    }    if (registered) log.info("success, JmxLogger still registered");    else {      log.severe("JmxLogger no longer registered!");      assertTrue("JmxLogger no longer registered!", false);    }    return registered;  }  private void testInvoke() {    log.info("Invoking addDumpLevel on JmxLoggerMBean");    try {      server.invoke(JmxLoggerName, "addDumpLevel", null,null);    }    catch (Exception ex) {      log.severe("Error when invoking addDumpLevel on JmxLoggerMBean! " + ex.toString());      assertTrue("Error when invoking addDumpLevel on JmxLoggerMBean! " + ex.toString(), false);    }  }  private void testCreateMBean() {    log.info("creating MBean org.xmlBlaster.util.admin.extern.JmxLogger");    server.createMBean("org.xmlBlaster.util.admin.extern.JmxLogger", JmxLoggerName);    Callback cb = server.getDefaultDomain();    if (cb==null) {      assertTrue("Error when receiving callback...", false);      log.warning("Error when receiving callback...");    }  }  private void testGetMBeanCount() {    log.info("counting MBeans on server");    try {      server.getMBeanCount().get();    }    catch (RemoteException ex) {      log.severe("Error when counting MBeans on server! " + ex.toString());      assertTrue("Error when counting MBeans on server! " + ex.toString(), false);    }  }  private void testGetAttribute() {    log.info("Reading attribute");    try {      server.getAttribute(JmxLoggerName, "LogText");    }    catch (Exception ex) {      log.severe("Attribute not found!");      assertTrue("Attribute not found!", false);    }  }  private void testUnregisterMBean(boolean registered) {    log.info("Unregistering MBean");    try {      server.unregisterMBean(JmxLoggerName);    }    catch (Exception ex) {      log.severe("Error when unregistering JmxLogger! " + ex.toString());      assertTrue("Error when unregistering JmxLogger " + ex.toString(), false);    }    log.info("Is JmxLoggerMBean still registered?");    try {      registered  = ( (Boolean) server.isRegistered(JmxLoggerName).get()).booleanValue();    }    catch (Exception ex) {      log.severe("Error when checking for JmxLogger! " + ex.toString());      assertTrue("Error when checking for JmxLogger " + ex.toString(), false);    }    if (!(registered)) log.info("success, JmxLogger removed");    else {      log.severe("JmxLogger not removed!");      assertTrue("JmxLogger not removed", false);    }  }  private void testGetMBeanInfo() {    log.info("Reading MBeanInfo..");    MBeanInfo info = null;    try {      info = (MBeanInfo) server.getMBeanInfo(JmxLoggerName).get();    }    catch (Exception ex) {      log.severe("MBeanInfo not found!");      assertTrue("MBeanInfo not found!", false);    }    if (info==null) {      log.severe("MBeanInfo not found!");      assertTrue("MBeanInfo not found!", false);    }  }}

⌨️ 快捷键说明

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