1 16 17 package org.mc4j.console.connection.proxy; 18 19 import org.mc4j.console.swing.SwingUtility; 20 import org.mc4j.console.util.ConnectionInfoAction; 21 22 import javax.management.MBeanServer ; 23 import javax.management.MBeanServerConnection ; 24 import javax.management.j2ee.Management ; 25 import java.lang.reflect.InvocationHandler ; 26 import java.lang.reflect.Method ; 27 import java.lang.reflect.Proxy ; 28 29 30 35 public class JSR77ManagementMBeanServerProxy implements InvocationHandler { 36 37 private Management mejb; 38 39 private static final Class [] INTERFACES = { MBeanServer .class }; 40 41 42 43 public JSR77ManagementMBeanServerProxy(Management mejb) { 44 this.mejb = mejb; 45 } 46 47 48 public Object invoke( 49 Object proxy, Method m, Object [] args) 50 throws Throwable { 51 52 SwingUtility.eventThreadAlert(); 53 54 56 Class serverClass = Management .class; 58 Method method = serverClass.getMethod(m.getName(),m.getParameterTypes()); 59 60 return method.invoke(this.mejb, args); 63 } 64 65 public static MBeanServer buildServerProxy(Object server) { 66 67 Object proxy = 68 Proxy.newProxyInstance( 69 JSR77ManagementMBeanServerProxy.class.getClassLoader(), 70 JSR77ManagementMBeanServerProxy.INTERFACES, 71 new JSR77ManagementMBeanServerProxy((Management ) server)); 72 73 return (MBeanServer ) proxy; 74 } 75 } 76 | Popular Tags |