22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25 package com.sun.management.internal;
26
27 import com.sun.management.DiagnosticCommandMBean;
28 import com.sun.management.HotSpotDiagnosticMXBean;
29 import com.sun.management.ThreadMXBean;
30 import java.lang.management.ManagementFactory;
31 import java.lang.management.MemoryManagerMXBean;
32 import java.lang.management.OperatingSystemMXBean;
33 import java.util.ArrayList;
34 import java.util.Collections;
35 import java.util.HashMap;
36 import java.util.List;
37 import java.util.Map;
38 import java.util.Set;
39 import java.util.stream.Collectors;
40 import java.util.stream.Stream;
41 import javax.management.DynamicMBean;
42 import jdk.management.VirtualThreadSchedulerMXBean;
43 import sun.management.ManagementFactoryHelper;
44 import sun.management.spi.PlatformMBeanProvider;
45
46 @SuppressWarnings({"removal", "restricted"})
47 public final class PlatformMBeanProviderImpl extends PlatformMBeanProvider {
48 static final String DIAGNOSTIC_COMMAND_MBEAN_NAME =
49 "com.sun.management:type=DiagnosticCommand";
50
51 private final List<PlatformComponent<?>> mxbeanList;
52 private static HotSpotDiagnostic hsDiagMBean = null;
53 private static OperatingSystemMXBean osMBean = null;
54
55 static {
56 System.loadLibrary("management_ext");
57 }
58
59 public PlatformMBeanProviderImpl() {
60 mxbeanList = Collections.unmodifiableList(init());
61 }
142 public Set<String> mbeanInterfaceNames() {
143 return threadMXBeanInterfaceNames;
144 }
145
146 @Override
147 public String getObjectNamePattern() {
148 return ManagementFactory.THREAD_MXBEAN_NAME;
149 }
150
151 @Override
152 public synchronized Map<String, java.lang.management.ThreadMXBean> nameToMBeanMap() {
153 if (threadMBean == null) {
154 threadMBean = new HotSpotThreadImpl(ManagementFactoryHelper.getVMManagement());
155 }
156 return Collections.singletonMap(
157 ManagementFactory.THREAD_MXBEAN_NAME,
158 threadMBean);
159 }
160 });
161
162 /**
163 * VirtualThreadSchedulerMXBean.
164 */
165 initMBeanList.add(new PlatformComponent<VirtualThreadSchedulerMXBean>() {
166 private final Set<Class<? extends VirtualThreadSchedulerMXBean>> mbeanInterfaces =
167 Set.of(VirtualThreadSchedulerMXBean.class);
168 private final Set<String> mbeanInterfaceNames =
169 Set.of(VirtualThreadSchedulerMXBean.class.getName());
170 private VirtualThreadSchedulerMXBean impl;
171
172 @Override
173 public Set<Class<? extends VirtualThreadSchedulerMXBean>> mbeanInterfaces() {
174 return mbeanInterfaces;
175 }
176
177 @Override
178 public Set<String> mbeanInterfaceNames() {
179 return mbeanInterfaceNames;
180 }
181
|
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
25 package com.sun.management.internal;
26
27 import com.sun.management.DiagnosticCommandMBean;
28 import com.sun.management.HotSpotDiagnosticMXBean;
29 import com.sun.management.ThreadMXBean;
30 import java.lang.management.ManagementFactory;
31 import java.lang.management.MemoryManagerMXBean;
32 import java.lang.management.OperatingSystemMXBean;
33 import java.util.ArrayList;
34 import java.util.Collections;
35 import java.util.HashMap;
36 import java.util.List;
37 import java.util.Map;
38 import java.util.Set;
39 import java.util.stream.Collectors;
40 import java.util.stream.Stream;
41 import javax.management.DynamicMBean;
42 import jdk.management.AOTCacheMXBean;
43 import jdk.management.VirtualThreadSchedulerMXBean;
44 import sun.management.ManagementFactoryHelper;
45 import sun.management.spi.PlatformMBeanProvider;
46
47 @SuppressWarnings({"removal", "restricted"})
48 public final class PlatformMBeanProviderImpl extends PlatformMBeanProvider {
49 static final String DIAGNOSTIC_COMMAND_MBEAN_NAME =
50 "com.sun.management:type=DiagnosticCommand";
51
52 private final List<PlatformComponent<?>> mxbeanList;
53 private static HotSpotDiagnostic hsDiagMBean = null;
54 private static OperatingSystemMXBean osMBean = null;
55
56 static {
57 System.loadLibrary("management_ext");
58 }
59
60 public PlatformMBeanProviderImpl() {
61 mxbeanList = Collections.unmodifiableList(init());
62 }
143 public Set<String> mbeanInterfaceNames() {
144 return threadMXBeanInterfaceNames;
145 }
146
147 @Override
148 public String getObjectNamePattern() {
149 return ManagementFactory.THREAD_MXBEAN_NAME;
150 }
151
152 @Override
153 public synchronized Map<String, java.lang.management.ThreadMXBean> nameToMBeanMap() {
154 if (threadMBean == null) {
155 threadMBean = new HotSpotThreadImpl(ManagementFactoryHelper.getVMManagement());
156 }
157 return Collections.singletonMap(
158 ManagementFactory.THREAD_MXBEAN_NAME,
159 threadMBean);
160 }
161 });
162
163 /**
164 * AOTCacheMXBean.
165 */
166 initMBeanList.add(new PlatformComponent<AOTCacheMXBean>() {
167 private final Set<Class<? extends AOTCacheMXBean>> mbeanInterfaces =
168 Set.of(AOTCacheMXBean.class);
169 private final Set<String> mbeanInterfaceNames =
170 Set.of(AOTCacheMXBean.class.getName());
171 private AOTCacheMXBean impl;
172
173 @Override
174 public Set<Class<? extends AOTCacheMXBean>> mbeanInterfaces() {
175 return mbeanInterfaces;
176 }
177
178 @Override
179 public Set<String> mbeanInterfaceNames() {
180 return mbeanInterfaceNames;
181 }
182
183 @Override
184 public String getObjectNamePattern() {
185 return "jdk.management:type=AOTCache";
186 }
187
188 @Override
189 public Map<String, AOTCacheMXBean> nameToMBeanMap() {
190 AOTCacheMXBean impl = this.impl;
191 if (impl == null) {
192 this.impl = impl = new AOTCacheImpl(ManagementFactoryHelper.getVMManagement());
193 }
194 return Map.of("jdk.management:type=AOTCache", impl);
195 }
196 });
197
198 /**
199 * VirtualThreadSchedulerMXBean.
200 */
201 initMBeanList.add(new PlatformComponent<VirtualThreadSchedulerMXBean>() {
202 private final Set<Class<? extends VirtualThreadSchedulerMXBean>> mbeanInterfaces =
203 Set.of(VirtualThreadSchedulerMXBean.class);
204 private final Set<String> mbeanInterfaceNames =
205 Set.of(VirtualThreadSchedulerMXBean.class.getName());
206 private VirtualThreadSchedulerMXBean impl;
207
208 @Override
209 public Set<Class<? extends VirtualThreadSchedulerMXBean>> mbeanInterfaces() {
210 return mbeanInterfaces;
211 }
212
213 @Override
214 public Set<String> mbeanInterfaceNames() {
215 return mbeanInterfaceNames;
216 }
217
|