Detectar MBeans y MXBeans registrados o instanciados

En Java 8 hay un cambio de comportamiento respecto a los requisitos de visibilidad para las interfaces utilizadas para crear MBeans o MXBeans. Todas las interfaces MBean y MXBean deben ser públicas. En las versiones anteriores a Java 8, estaban permitidas las interfaces no públicas, aunque la especificación definía que deben ser públicas.

Cuando se establece la propiedad del sistema jdk.jmx.mbeans.allowNonPublic, el subsistema de gestión adopta de nuevo el comportamiento antiguo, y se permite el uso de interfaces de gestión no públicas. Esta propiedad se considera que es de transición y podría eliminarse en releases subsiguientes.

Debido a que finalizar el nombre de la interfaz MBean con MBean es un convenio más que un requisito, también se marcan todas las invocaciones de los métodos MBeanServer registerMBean y createMBean para resaltar esta diferencia de Java 8 cuando crea beans de gestión. Si sus interfaces de bean de gestión no siguen los convenios indicados anteriormente, verifique manualmente que utilizan interfaces de tipo public.

Para obtener más información, consulte la documentación de Java de Package javax.management.