Rozhraní objektů MBean a MXBean musí být veřejná

Java 8 zavádí změnu chování pro požadavky na viditelnost pro rozhraní, která se používají k vytváření objektů MBean nebo MXBeans. Všechna rozhraní MBean a MXBean musí být veřejná. Před Java 8 byla povolena neveřejná rozhraní, i když specifikace definovala, že by měla být veřejná.

Nastavení systémové vlastnosti jdk.jmx.mbeans.allowNonPublic vrací subsystém správy pro použití starého chování umožňující neveřejná rozhraní správy. Tato vlastnost je považována za přechodnou a může být odebrána v následujících vydáních.

Chcete-li zjistit neveřejná rozhraní objektu MBean a MXBean, jsou následující situace označeny v kódu Java:

Vzhledem k tomu, že ukončení názvu rozhraní typu bean s objektem MBean je spíše konvencí než požadavkem, je při vytváření objektů bean správy označeno také veškeré vyvolání metod MBeanServer registerMBean nebo createMBean pro zvýraznění tohoto rozdílu prostředí Java 8. Pokud vaše rozhraní objektu typu bean správy neřídí dříve uvedené konvence, ručně ověřte, že používají rozhraní public (veřejná).

V následujících příkladech jsou zobrazena neveřejná rozhraní, která jsou označena tímto pravidlem.

    interface Example1MBean {}

    interface Example2MXBean {}

    @MXBean
    interface Example3Interface {}

    @MXBean(true)
    interface Example4Interface {}

Následující příklady zobrazují rozhraní, která nejsou označena tímto pravidlem, protože jsou již veřejná, nebo jsou anotována jako objekt MXBean.

    public interface Example5MBean{}

    public interface Example6MXBean{}

    @MXBean(false)
    interface Example7MXBean {}

Toto pravidlo má rychlou opravu, která nastavuje viditelnost rozhraní na public. Pro volání metod MBeanServer registerMBean a createMBean neexistuje žádná rychlá oprava, protože jsou označeny pouze pro zvýraznění změny chování v případě, že vaše rozhraní nejsou označena.

Další informace viz dokumentace Java Balík javax.management.