src/share/classes/sun/management/ManagementFactoryHelper.java

Print this page

        

*** 41,50 **** --- 41,51 ---- import sun.util.logging.LoggingSupport; import java.util.ArrayList; import java.util.Collections; import java.util.List; + import com.sun.management.DiagnosticCommandMBean; import com.sun.management.OSMBeanFactory; import com.sun.management.HotSpotDiagnosticMXBean; import static java.lang.management.ManagementFactory.*;
*** 261,270 **** --- 262,272 ---- private static HotspotRuntime hsRuntimeMBean = null; private static HotspotClassLoading hsClassMBean = null; private static HotspotThread hsThreadMBean = null; private static HotspotCompilation hsCompileMBean = null; private static HotspotMemory hsMemoryMBean = null; + private static DiagnosticCommandImpl hsDiagCommandMBean = null; public static synchronized HotSpotDiagnosticMXBean getDiagnosticMXBean() { if (hsDiagMBean == null) { hsDiagMBean = new HotSpotDiagnostic(); }
*** 309,318 **** --- 311,328 ---- hsMemoryMBean = new HotspotMemory(jvm); } return hsMemoryMBean; } + public static synchronized DiagnosticCommandMBean getDiagnosticCommandMBean() { + // Remote Diagnostic Commands may not be supported + if (hsDiagCommandMBean == null && jvm.isRemoteDiagnosticCommandsSupported()) { + hsDiagCommandMBean = new DiagnosticCommandImpl(jvm); + } + return hsDiagCommandMBean; + } + /** * This method is for testing only. */ public static synchronized HotspotCompilationMBean getHotspotCompilationMBean() { if (hsCompileMBean == null) {
*** 363,372 **** --- 373,390 ---- "sun.management:type=HotspotRuntime"; private final static String HOTSPOT_THREAD_MBEAN_NAME = "sun.management:type=HotspotThreading"; + public static List<PlatformManagedObject> getPlatformDynamicMBeans() { + List<PlatformManagedObject> list = new ArrayList<>(); + if(getDiagnosticCommandMBean() != null) { + list.add(getDiagnosticCommandMBean()); + } + return list; + } + static void registerInternalMBeans(MBeanServer mbs) { // register all internal MBeans if not registered // No exception is thrown if a MBean with that object name // already registered addMBean(mbs, getHotspotClassLoadingMBean(),