Le interfacce MBean e MXBean devono essere pubbliche

Java 8 introduce un cambiamento del comportamento per i requisiti di visibilità delle interfacce utilizzate per creare MBean o MXBeans. Tutte le interfacce MBean e MXBean devono essere pubbliche. Prima di Java 8, le interfacce pubbliche erano consentite, anche se la specifica definiva che dovevano essere pubbliche.

L'impostazione della proprietà di sistema jdk.jmx.mbeans.allowNonPublic riporta il sottosistema di gestione all'utilizzo del precedente comportamento, consentendo l'utilizzo di interfacce di gestione non pubbliche. Questa proprietà è considerata transitoria e potrebbe essere rimossa nelle prossime release.

Per rilevare le interfacce MBean e MXBean non pubbliche, nel codice Java vengono contrassegnate le seguenti situazioni:

Il seguente esempio riporta delle interfacce non pubbliche contrassegnate da questa regola.

    interfaccia Example1MBean {}

    interfaccia Example2MXBean {}

    @MXBean interfaccia Example3Interface {}

    @MXBean(true) interfaccia Example4Interface {}

I seguenti esempi mostrano le interfacce che non sono contrassegnate da questa regola perché sono già pubbliche o sono annotate come non un MXBean.

    interfaccia pubblica Example5MBean{}

    public interface Example6MXBean{}

    @MXBean(false) interfaccia Example7MXBean {}

Questa regola ha una correzione automatizzata che imposta la visibilità dell'interfaccia su public. Copiare la configurazione personalizzata (custom configuration) nel file di build dell'applicazione per abilitare l'automazione delle correzioni.

Per ulteriori informazioni, vedere la documentazione Java Package javax.management.