src/share/classes/sun/management/ManagementFactoryHelper.java
Print this page
@@ -41,10 +41,11 @@
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,10 +262,11 @@
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,10 +311,18 @@
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,10 +373,18 @@
"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(),