/** * Returns the list of platform MXBeans implementing the given {@code mxbeanInterface} in the Java * virtual machine. The returned list may contain zero, one, or more instances. The number of * instances in the returned list is defined in the specification of the given management * interface. The order is undefined and there is no guarantee that the list returned is in the * same order as previous invocations. * * @param mxbeanInterface a management interface for a platform MXBean * @return the list of platform MXBeans that implement {@code mxbeanInterface}. * @throws IllegalArgumentException if {@code mxbeanInterface} is not a platform management * interface. * @since 1.7 */ public static <T extends PlatformManagedObject> List<T> getPlatformMXBeans( Class<T> mxbeanInterface) { PlatformComponent pc = PlatformComponent.getPlatformComponent(mxbeanInterface); if (pc == null) throw new IllegalArgumentException( mxbeanInterface.getName() + " is not a platform management interface"); return Collections.unmodifiableList(pc.getMXBeans(mxbeanInterface)); }
/** * Returns the list of the platform MXBean proxies for forwarding the method calls of the {@code * mxbeanInterface} through the given {@code MBeanServerConnection}. The returned list may contain * zero, one, or more instances. The number of instances in the returned list is defined in the * specification of the given management interface. The order is undefined and there is no * guarantee that the list returned is in the same order as previous invocations. * * @param connection the {@code MBeanServerConnection} to forward to. * @param mxbeanInterface a management interface for a platform MXBean * @return the list of platform MXBean proxies for forwarding the method calls of the {@code * mxbeanInterface} through the given {@code MBeanServerConnection}. * @throws IllegalArgumentException if {@code mxbeanInterface} is not a platform management * interface. * @throws java.io.IOException if a communication problem occurred when accessing the {@code * MBeanServerConnection}. * @see #newPlatformMXBeanProxy * @since 1.7 */ public static <T extends PlatformManagedObject> List<T> getPlatformMXBeans( MBeanServerConnection connection, Class<T> mxbeanInterface) throws java.io.IOException { PlatformComponent pc = PlatformComponent.getPlatformComponent(mxbeanInterface); if (pc == null) { throw new IllegalArgumentException( mxbeanInterface.getName() + " is not a platform management interface"); } return Collections.unmodifiableList(pc.getMXBeans(connection, mxbeanInterface)); }
/** * Returns the platform MXBean proxy for {@code mxbeanInterface} which is specified to have one * single instance in a Java virtual machine and the proxy will forward the method calls through * the given {@code MBeanServerConnection}. This method may return {@code null} if the management * interface is not implemented in the Java virtual machine being monitored (for example, a Java * virtual machine with no compilation system does not implement {@link CompilationMXBean}); * otherwise, this method is equivalent to calling: * * <pre> * {@link #getPlatformMXBeans(MBeanServerConnection, Class) * getPlatformMXBeans(connection, mxbeanInterface)}.get(0); * </pre> * * @param connection the {@code MBeanServerConnection} to forward to. * @param mxbeanInterface a management interface for a platform MXBean with one single instance in * the Java virtual machine being monitored, if implemented. * @return the platform MXBean proxy for forwarding the method calls of the {@code * mxbeanInterface} through the given {@code MBeanServerConnection}, or {@code null} if not * exist. * @throws IllegalArgumentException if {@code mxbeanInterface} is not a platform management * interface or not a singleton platform MXBean. * @throws java.io.IOException if a communication problem occurred when accessing the {@code * MBeanServerConnection}. * @see #newPlatformMXBeanProxy * @since 1.7 */ public static <T extends PlatformManagedObject> T getPlatformMXBean( MBeanServerConnection connection, Class<T> mxbeanInterface) throws java.io.IOException { PlatformComponent pc = PlatformComponent.getPlatformComponent(mxbeanInterface); if (pc == null) throw new IllegalArgumentException( mxbeanInterface.getName() + " is not a platform management interface"); if (!pc.isSingleton()) throw new IllegalArgumentException( mxbeanInterface.getName() + " can have zero or more than one instances"); return pc.getSingletonMXBean(connection, mxbeanInterface); }