Estoy usando la plataforma del servidor MBeans en Java 1.6, ejecutándose en un contenedor OSGi.Detectando nuevos MBeans registrados
Uso de los MBeans para contadores de estadísticas y eventos principalmente. La implementación de ellos está en un paquete, pero se crean instancias en varios otros paquetes. Cada MBean se autoregistra automáticamente con la plataforma del servidor MBean.
El problema es que cuando me conecto a través de JMX y busco MBeans, solo obtengo los que están actualmente registrados, y no se registrarán hasta que se hayan instanciado (porque las clases estáticas no existen hasta el primero acceso, o porque el paquete no ha comenzado todavía, o el contador está en una lógica que no existirá hasta el primer uso)
Necesito alguna forma de suscribirse a los eventos de "registro" en el servidor MBeans. O de alguna otra forma de determinar cuando hay nuevos MBeans agregados al servidor. La detección de MBeans eliminados sería una ventaja adicional, pero no necesaria.
La única solución que tengo es básicamente un hilo que sondea el servidor cada 5 segundos y compara el resultado con una lista guardada de MBeans, y eso es bastante feo.
Esperaba que hubiera una manera significativamente más fácil de hacerlo :( Como un evento de "escuchar para nuevos registros" en algún lugar de una API indocumentada o algo así ... – MarcB
Eso no resuelve su problema principal: ver MBeans que aún no se han registrado. –
Bueno, no tengo que verlos cuando no están registrados (aunque sería bueno). Averiguar cuándo están registrados sería suficiente. – MarcB