Звучит так, как будто вы хотели бы видеть все MBean-компоненты, которые существуют где угодно, но вы не можете, поскольку код не создает их все сразу.
Я предлагаю использовать генератор кода, который создает «просмотр» MBean для всех реальных MBean. Например, используйте интерфейс класса или маркера, чтобы найти MBeans. Все компоненты вида должны быть созданы при запуске.
Теперь, когда появится настоящий MBean, он должен взглянуть на него и подключиться.
Таким образом, все MBean-компоненты всегда будут видны, запуск не сильно пострадает (поскольку представление MBean-компонентов будет действительно дешевым), а представление MBeans может сообщить вам состояние реальных MBean-компонентов.
[EDIT] Если вам действительно нужно знать только, когда зарегистрирован новый MBean, расширьте существующий MBeanServer
и переопределите registerMBean(Object, ObjectName)
. Установите новый MBeanServer
, установив системное свойство javax.management.builder.initial
.
Теперь определите MBean, который предоставляет эту информацию.