Верблюд в OSGi Container: применить InterceptStrategy ко всем контекстам верблюда
У меня есть несколько пакетов (A, B и C), развернутых в контейнере OSGi, каждый из которых содержитCamelContext
и некоторые маршруты. У меня есть еще одна связка (M) сCamelContext
с маршрутом (для сбора данных мониторинга) иInterceptStrategy
боб. Я хотел быInterceptStrategy
боб из M, чтобы автоматически применить ко всем остальнымCamelContext
s в контейнере (т. е. в A, B и C), без необходимости изменения других пакетов.
В конечном счете, цель состоит в том, чтобы прослушать данные от каждогоCamelContext
в маршрут в M, без необходимости вносить какие-либо изменения в A, B или C для явной маршрутизацииExchange
, Этот подход или подобный подход выполним?
ВсеCamelContext
s настроены с использованием Spring XML.
Обновить: Дополнительный контекст
Пакеты A, B и C содержат основной продукт, отвечающий за обработку данных. Пакет M содержит дополнительный инструмент мониторинга, предназначенный для измерения определенных параметров данных, проходящих через A, B и C. В настоящее время добавление дополнительного инструмента требует изменения маршрутов в A, B и C, чтобы добавить дополнительныеProcessor
s, чтобы обогатитьExchange
с данными мониторинга и читать данные мониторинга до<to />
конечные точки.
Цель состоит в том, чтобы иметь возможность включить Bundle M в уже проверенную работающую систему с A, B и C; и автоматически применять его к существующим маршрутам, не изменяя конфигурацию существующих и работающих комплектов. Этоявляется допустимо вносить изменения в A, B и C, чтобы поддержать это, при условии, что изменения не заставляют A, B и C полагаться на работу M (т. е. ABC все еще должен работать без M).
Если есть лучший способ сделать это, чем использовать перехватчики, я открыт для этого. Основными целями являются:
Держите A, B и C отделенными от M (особенно во время разработки)Убедитесь, что интеграция M с A, B и C максимально простаРазрешить интеграцию M без необходимости вручную менять A, B или C