Использование Apache Camel Blueprint - необходимо сохранить свойства внутри контейнера и автономно

1

У меня есть маршрут Camel с использованием плана и Camel PropertiesComponent для конфигурации, я могу запустить его автономно через "mvn camel: run", или я могу установить его в контейнер Karaf. Оба отлично работают и открывают свойства и внедряют их в маршрут.

Я не могу понять, как сохранить свойства, когда они меняются во время выполнения (в качестве примера я хочу установить маркер, когда маршрут останавливается/отключается, а затем читает его при запуске маршрута).

Я читал о OSGi ConfigAdmin - но это, похоже, не поддерживает сохраняющиеся свойства. Я также прочитал о службе предпочтений OSGi (которая поддерживает сохранение), но как мне это реализовать, чтобы я мог запускать ее автономно или в контейнере? который потребует, чтобы маршрут Camel имел ссылку на услугу, в зависимости от OSGi?

Есть ли способ отвлечь службу настроек таким образом, чтобы она не зависела от обслуживания контейнера?

заранее спасибо.

Теги:
maven
osgi
apache-camel
blueprint-osgi

1 ответ

1
Лучший ответ

Служба Compendium ConfigurationAdmin в OSGi поддерживает поддерживающие свойства. Фактически он делает это по умолчанию (данные попадают в кеш пучка, поэтому вам нужно убедиться, что вы не протираете это при каждом перезагрузке, что в любом случае является плохой практикой).

Если вы используете один из Apache Felix, вы даже получаете возможность:

  1. Переконфигурируйте местоположение, в котором данные сохраняются.
  2. Предоставьте свой собственный сервер хранения, если вы хотите использовать базу данных или что-то в этом роде.

См.: http://felix.apache.org/documentation/subprojects/apache-felix-config-admin.html

  • 0
    благодарю вас! да, я вижу, что теперь - игра с fabric8 и изменение конфигурации в пользовательском интерфейсе сохраняется в файле свойств. Не знал о собственном хранилище .... отлично!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню