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:
@MXBean@MXBean(true)MXBeanMBean
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á automatickou opravu, která nastaví viditelnost rozhraní na public. Zkopírujte vlastní konfiguraci do svého souboru sestavení aplikace a povolte automatizaci opravy.
Volání MBeanServer registerMBean
a metody createMBean
jsou označeny pouze pro zvýraznění změny chování v
případě, že vaše rozhraní nejsou označena příznakem.
Další informace viz dokumentace Java Balík javax.management.