Interfeţele MBean şi MXBean trebuie să fie publice

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:

Urmă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.