Как читать внешний файл конфигурации при запуске комплекта jboss fuse karaf - PullRequest
0 голосов
/ 07 декабря 2018

Проблема проста: я хочу напечатать все темы из apache kafka после установки модуля kafka на karaf.Мне нужно получить свойства из файла cfg, который находится в jbossfuse / etc, и создать объект KafkaConsumer.Я хочу реализовать BundleActivator, чтобы иметь возможность запускать метод в момент установки модуля.Вопрос: как я могу получить свойства из файла конфигурации?Я нашел здесь какое-то решение: какое-то решение , они сказали: «Вы можете использовать сервис ConfigAdimn из спецификации OSGi».Как я могу использовать это?Все примеры с кодом приветствуются

1 Ответ

0 голосов
/ 11 декабря 2018

Karaf использует Felix-FileInstall для чтения файлов конфигурации: http://felix.apache.org/documentation/subprojects/apache-felix-file-install.html Так что, если есть файл с именем kafka.cfg, он подберет его и зарегистрирует конфигурацию в ConfigAdmin-Service под pid 'kafka',Вы можете получить ConfigAdmin-Service и получить конфигурацию с помощью Активатора и прочитать эту конфигурацию оттуда, но я настоятельно рекомендую вместо этого использовать DeclarativeServices или Blueprint для взаимодействия с OSGi-Framework, оба поддерживают внедрение конфигурации, если оно доступно.Потому что в противном случае вам придется заняться следующими темами:

  • отсутствует ConfigAdmin (пока), возможно, потому что ваш пакет запускается раньше)
  • изменяется ConfigAdmin (например, из-заобновление или обновление пакета)
  • конфигурация еще не зарегистрирована (потому что felix еще не прочитал ее)
  • конфигурация обновляется (например, somone изменяет файл)
...