В Java 8 изменены требования к области видимости интерфейсов для создания объектов MBean или MXBean. Все интерфейсы MBean и MXBean должны быть public. До Java 8 были допустимы интерфейсы не public, хотя по спецификации они должны были быть public.
Системное свойство jdk.jmx.mbeans.allowNonPublic позволяет вернуть прежнее поведение
подсистемы управления, разрешающее использовать интерфейсы управления без спецификатора public.
Это свойство считается переходным и может быть удалено в последующих выпусках.
Для поиска интерфейсов MBean и MXBean без спецификатора public в коде Java помечается следующее:
@MXBean@MXBean(true)MXBeanMBeanВ следующих примерах показаны интерфейсы не public, которые помечаются этим правилом.
интерфейс Example1MBean { }
интерфейс Example2MXBean { }
Интерфейс@MXBean
Example3Interface { }
Интерфейс@MXBean(true) Example4Interface { }
В следующих примерах показаны интерфейсы, которые не помечаются этим правилом, поскольку они уже имеют спецификатор public или в их аннотации указано, что они не MXBean.
открытый интерфейс Example5MBean{}
открытый интерфейс Example6MXBean{}
@MXBean(false) интерфейс Example7MXBean { }
У этого правила есть автоматизированное исправление, которое задает видимость интерфейса для public. Скопировать
пользовательская конфигурация в файл компоновки приложения, чтобы включить автоматизацию исправлений.
См. документацию Java для пакета javax.management.