Detectar MBeans registrados ou instanciados e MXBeans

O Java 8 introduz uma mudança de comportamento para os requisitos de visibilidade para interfaces que são usadas para criar MBeans ou MXBeans. Todas as interfaces MBean e MXBean devem ser públicas. Antes do Java 8, as interfaces não públicas eram permitidas, embora a especificação definisse que elas deveriam ser públicas.

Configurar a propriedade de sistema jdk.jmx.mbeans.allowNonPublic reverte o subsistema de gerenciamento para usar o comportamento antigo, permitindo interfaces de gerenciamento não públicas. Essa propriedade é considerada como sendo de transição e pode ser removida em liberações subsequentes.

Porque terminar o nome da interface MBean com MBean é uma convenção, e não um requisito, qualquer chamada dos métodos MBeanServer registerMBean ou createMBean também é sinalizada para destacar essa diferença do Java 8 ao criar beans de gerenciamento. Se suas interfaces de bean de gerenciamento não seguem as convenções listadas anteriormente, verifique manualmente se elas usam interfaces public.

Para obter informações adicionais, veja a documentação Java do Pacote javax.management.