Java 8 introduce o modificare de comportament pentru cerinţele de vizibilitate pentru interfeţele care sunt folosite pentru a crea MBean-uri sau MXBean-uri. Toate interfeţele MBean şi MXBean trebuie să fie publice. Anterior versiunii Java 8, au fost permise interfeţe non-publice, deşi caietul de sarcini a definit că ar trebui să fie publice.
Setarea proprietăţii de sistem jdk.jmx.mbeans.allowNonPublic face ca subsistemul de gestionare
să folosească vechiul comportament, permiţând interfeţe de gestionare non-publice.
Această proprietate este considerată a fi de tranziţie şi ar putea fi înlăturată în ediţiile ulterioare.
Pentru a detecta interfeţe non-publice MBean şi MXBean, sunt semnalate următoarele situaţii în codul Java:
@MXBean@MXBean(true)MXBeanMBeanUrmătoarele exemple indică interfeţe non-publice care sunt semnalate de această regulă.
Example1MBean
Interfața Example2MXBean
@MXBean Example3Interface {}
@MXBean(true) interfață Example4Interface {}
Următoarele exemple indică interfeţe care sunt semnalate de această regulă deoarece sunt deja publice sau sunt adnotate ca nefiind un MXBean.
interfaţă publică Example5MBean Example5MBean{}
Interfață publică Example6MXBean{}
@MXBean(fals) interfață Example7MXBean
Această regulă are un fix automat care stabilește vizibilitatea interfeței la public. Copiați configurația personalizată pe fișierul de build al aplicației pentru a activa automatizarea corectării.
Pentru informaţii suplimentare, consultaţi Pachetul javax.management în documentaţia Java.