465 if (platformMBeanServer == null) { 466 platformMBeanServer = MBeanServerFactory.createMBeanServer(); 467 for (PlatformComponent pc : PlatformComponent.values()) { 468 List<? extends PlatformManagedObject> list = 469 pc.getMXBeans(pc.getMXBeanInterface()); 470 for (PlatformManagedObject o : list) { 471 // Each PlatformComponent represents one management 472 // interface. Some MXBean may extend another one. 473 // The MXBean instances for one platform component 474 // (returned by pc.getMXBeans()) might be also 475 // the MXBean instances for another platform component. 476 // e.g. com.sun.management.GarbageCollectorMXBean 477 // 478 // So need to check if an MXBean instance is registered 479 // before registering into the platform MBeanServer 480 if (!platformMBeanServer.isRegistered(o.getObjectName())) { 481 addMXBean(platformMBeanServer, o); 482 } 483 } 484 } 485 } 486 return platformMBeanServer; 487 } 488 489 /** 490 * Returns a proxy for a platform MXBean interface of a 491 * given <a href="#MXBeanNames">MXBean name</a> 492 * that forwards its method calls through the given 493 * <tt>MBeanServerConnection</tt>. 494 * 495 * <p>This method is equivalent to: 496 * <blockquote> 497 * {@link java.lang.reflect.Proxy#newProxyInstance 498 * Proxy.newProxyInstance}<tt>(mxbeanInterface.getClassLoader(), 499 * new Class[] { mxbeanInterface }, handler)</tt> 500 * </blockquote> 501 * 502 * where <tt>handler</tt> is an {@link java.lang.reflect.InvocationHandler 503 * InvocationHandler} to which method invocations to the MXBean interface 504 * are dispatched. This <tt>handler</tt> converts an input parameter 505 * from an MXBean data type to its mapped open type before forwarding | 465 if (platformMBeanServer == null) { 466 platformMBeanServer = MBeanServerFactory.createMBeanServer(); 467 for (PlatformComponent pc : PlatformComponent.values()) { 468 List<? extends PlatformManagedObject> list = 469 pc.getMXBeans(pc.getMXBeanInterface()); 470 for (PlatformManagedObject o : list) { 471 // Each PlatformComponent represents one management 472 // interface. Some MXBean may extend another one. 473 // The MXBean instances for one platform component 474 // (returned by pc.getMXBeans()) might be also 475 // the MXBean instances for another platform component. 476 // e.g. com.sun.management.GarbageCollectorMXBean 477 // 478 // So need to check if an MXBean instance is registered 479 // before registering into the platform MBeanServer 480 if (!platformMBeanServer.isRegistered(o.getObjectName())) { 481 addMXBean(platformMBeanServer, o); 482 } 483 } 484 } 485 List<PlatformManagedObject> dynamicPMOList = ManagementFactoryHelper.getPlatformDynamicMBeans(); 486 for (PlatformManagedObject o : dynamicPMOList) { 487 if (!platformMBeanServer.isRegistered(o.getObjectName())) { 488 addMXBean(platformMBeanServer, o); 489 } 490 } 491 } 492 return platformMBeanServer; 493 } 494 495 /** 496 * Returns a proxy for a platform MXBean interface of a 497 * given <a href="#MXBeanNames">MXBean name</a> 498 * that forwards its method calls through the given 499 * <tt>MBeanServerConnection</tt>. 500 * 501 * <p>This method is equivalent to: 502 * <blockquote> 503 * {@link java.lang.reflect.Proxy#newProxyInstance 504 * Proxy.newProxyInstance}<tt>(mxbeanInterface.getClassLoader(), 505 * new Class[] { mxbeanInterface }, handler)</tt> 506 * </blockquote> 507 * 508 * where <tt>handler</tt> is an {@link java.lang.reflect.InvocationHandler 509 * InvocationHandler} to which method invocations to the MXBean interface 510 * are dispatched. This <tt>handler</tt> converts an input parameter 511 * from an MXBean data type to its mapped open type before forwarding |