jdk/src/java.management/share/classes/java/lang/management/DefaultPlatformMBeanProvider.java
changeset 30355 e37c7eba132f
parent 28775 d786aae24263
child 33875 c1c71107d45f
equal deleted inserted replaced
30354:ca83b4cae363 30355:e37c7eba132f
    31 import java.util.Map;
    31 import java.util.Map;
    32 import java.util.Set;
    32 import java.util.Set;
    33 import java.util.function.Function;
    33 import java.util.function.Function;
    34 import java.util.stream.Collectors;
    34 import java.util.stream.Collectors;
    35 import java.util.stream.Stream;
    35 import java.util.stream.Stream;
    36 import javax.management.DynamicMBean;
       
    37 import javax.management.ObjectName;
    36 import javax.management.ObjectName;
    38 import sun.management.ManagementFactoryHelper;
    37 import sun.management.ManagementFactoryHelper;
    39 import sun.management.spi.PlatformMBeanProvider;
    38 import sun.management.spi.PlatformMBeanProvider;
    40 
    39 
    41 class DefaultPlatformMBeanProvider extends PlatformMBeanProvider {
    40 class DefaultPlatformMBeanProvider extends PlatformMBeanProvider {
   160                                     "java.lang.management.GarbageCollectorMXBean")
   159                                     "java.lang.management.GarbageCollectorMXBean")
   161                             .collect(Collectors.toSet()));
   160                             .collect(Collectors.toSet()));
   162             @Override
   161             @Override
   163             public Set<Class<? extends MemoryManagerMXBean>> mbeanInterfaces() {
   162             public Set<Class<? extends MemoryManagerMXBean>> mbeanInterfaces() {
   164                 return Stream.of(MemoryManagerMXBean.class,
   163                 return Stream.of(MemoryManagerMXBean.class,
   165                         GarbageCollectorMXBean.class,
   164                         GarbageCollectorMXBean.class).collect(Collectors.toSet());
   166                         com.sun.management.GarbageCollectorMXBean.class).collect(Collectors.toSet());
       
   167             }
   165             }
   168 
   166 
   169             @Override
   167             @Override
   170             public Set<String> mbeanInterfaceNames() {
   168             public Set<String> mbeanInterfaceNames() {
   171                 return garbageCollectorMXBeanInterfaceNames;
   169                 return garbageCollectorMXBeanInterfaceNames;
   462                         ManagementFactoryHelper.getOperatingSystemMXBean());
   460                         ManagementFactoryHelper.getOperatingSystemMXBean());
   463             }
   461             }
   464 
   462 
   465         });
   463         });
   466 
   464 
   467         /**
       
   468          * DynamicMBean
       
   469          */
       
   470         HashMap<ObjectName, DynamicMBean> dynmbeans
       
   471                 = ManagementFactoryHelper.getPlatformDynamicMBeans();
       
   472         final Set<String> dynamicMBeanInterfaceNames =
       
   473             Collections.unmodifiableSet(Collections.singleton("javax.management.DynamicMBean"));
       
   474         for (Map.Entry<ObjectName, DynamicMBean> e : dynmbeans.entrySet()) {
       
   475             initMBeanList.add(new PlatformComponent<DynamicMBean>() {
       
   476                 @Override
       
   477                 public Set<Class<? extends DynamicMBean>> mbeanInterfaces() {
       
   478                     return Collections.emptySet();
       
   479                 }
       
   480 
       
   481                 @Override
       
   482                 public Set<String> mbeanInterfaceNames() {
       
   483                     return dynamicMBeanInterfaceNames;
       
   484                 }
       
   485 
       
   486                 @Override
       
   487                 public String getObjectNamePattern() {
       
   488                     return e.getKey().getCanonicalName();
       
   489                 }
       
   490 
       
   491                 @Override
       
   492                 public Map<String, DynamicMBean> nameToMBeanMap() {
       
   493                     return Collections.<String, DynamicMBean>singletonMap(
       
   494                             e.getKey().getCanonicalName(),
       
   495                             e.getValue());
       
   496                 }
       
   497             });
       
   498         }
       
   499 
       
   500         initMBeanList.trimToSize();
   465         initMBeanList.trimToSize();
   501         return initMBeanList;
   466         return initMBeanList;
   502     }
   467     }
   503 }
   468 }