< prev index next >

src/jdk.management/share/classes/com/sun/management/internal/PlatformMBeanProviderImpl.java

Print this page

 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 
< prev index next >