Camello en el contenedor OSGi: aplique InterceptStrategy a todos los contextos de camellos
Tengo varios paquetes (A, B y C) implementados en un contenedor OSGi, cada uno con unCamelContext
y algunas rutas Tengo otro paquete (M) con unCamelContext
con una ruta (para recopilar datos de monitoreo) y unInterceptStrategy
frijol. Me gustaria elInterceptStrategy
bean de M para aplicar automáticamente a todos los demásCamelContext
s en el contenedor (es decir, aquellos en A, B y C), sin tener que modificar los otros paquetes.
En última instancia, el objetivo es interceptar datos de cadaCamelContext
en la ruta en M, sin tener que hacer ningún cambio en A, B o C para enrutar explícitamenteExchange
. ¿Es factible este enfoque o un enfoque similar?
Toda laCamelContext
s se configuran utilizando Spring XML.
Actualizar: Contexto adicional
Los paquetes A, B y C contienen el producto principal responsable del procesamiento de datos. El paquete M contiene una herramienta de monitoreo opcional, diseñada para medir ciertos parámetros de los datos que fluyen a través de A, B y C. Actualmente, agregar la herramienta opcional requiere cambiar las rutas en A, B y C para agregar másProcessor
s para enriquecer elExchange
con los datos de monitoreo y para leer los datos de monitoreo antes de<to />
puntos finales
El objetivo es poder colocar el paquete M en un sistema ya verificado como en funcionamiento con A, B y C; y que se aplique automáticamente a las rutas existentes sin tener que modificar la configuración de los paquetes existentes y en funcionamiento. Esoes es aceptable realizar modificaciones en A, B y C para respaldar esto, siempre que los cambios no hagan que A, B y C confíen en que M se ejecute (es decir, ABC aún debe ejecutarse sin M).
Si hay un mejor medio para hacer esto que usar interceptores, estoy abierto a eso. Los objetivos principales son:
Mantenga A, B y C desacoplados de M (particularmente durante el desarrollo)Asegúrese de que la integración de M con A, B y C sea lo más fácil posiblePermita que M se integre sin tener que cambiar manualmente A, B o C