Las interfaces MBean y MXBean deben ser públicas

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.

Para detectar interfaces MBean y MXBean no públicas, se señalan las situaciones siguientes en el código Java:

Los ejemplos siguientes muestran interfaces no públicas que están señaladas por esta regla.

    interfaz Example1MBean {}

    interfaz Example2MXBean {}

    @MXBean interfaz Example3Interface {}

    @MXBean(true) interfaz Example4Interface {}

Los ejemplos siguientes muestran interfaces que no son señaladas por la regla debido a que son públicas o están anotadas como distintas de MXBean.

    interfaz pública Example5MBean{}

    interfaz pública Example6MXBean{}

    @MXBean(false) interfaz Example7MXBean {}

Esta regla tiene un arreglo automatizado que establece la visibilidad de la interfaz en public. Copie la configuración personalizada en el archivo de compilación de la aplicación para habilitar la automatización de arreglos.

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