/**
*
* @param member member to which this MBean belongs
* @param monitoringRegion corresponding MonitoringRegion
* @param objectName ObjectName of the MBean
* @param interfaceClass on which interface the proxy to be exposed
* @return Object
* @throws ClassNotFoundException
* @throws IntrospectionException
*/
public static Object newProxyInstance(DistributedMember member,
Region<String, Object> monitoringRegion, ObjectName objectName, Class interfaceClass)
throws ClassNotFoundException, IntrospectionException {
boolean isMXBean = JMX.isMXBeanInterface(interfaceClass);
boolean notificationBroadcaster =
((FederationComponent) monitoringRegion.get(objectName.toString())).isNotificationEmitter();
InvocationHandler handler =
new MBeanProxyInvocationHandler(member, objectName, monitoringRegion, isMXBean);
Class[] interfaces;
if (notificationBroadcaster) {
interfaces =
new Class[] {interfaceClass, ProxyInterface.class, NotificationBroadCasterProxy.class};
} else {
interfaces = new Class[] {interfaceClass, ProxyInterface.class};
}
Object proxy = Proxy.newProxyInstance(MBeanProxyInvocationHandler.class.getClassLoader(),
interfaces, handler);
return interfaceClass.cast(proxy);
}
MBeanProxyInvocationHandler.java 文件源码
java
阅读 20
收藏 0
点赞 0
评论 0
项目:monarch
作者:
评论列表
文章目录