Существующие реализации OSGi Configuration Admin Service? - PullRequest
11 голосов
/ 27 мая 2009

Мы рассматриваем использование службы администрирования конфигурации в качестве основного API для настройки компонентов в нашем приложении на основе OSGi. Было бы хорошо, если бы мы могли повторно использовать некоторые существующие реализации, поэтому я пытаюсь исследовать и оценить наиболее популярные из них. Я знаю, что есть:

Есть ли какие-либо другие реализации, которые следует рассмотреть?

Также мне не удалось найти хорошую документацию для этих реализаций. Я был бы в основном заинтересован в деталях реализации. Например, мне было интересно, как разные реализации сохраняют данные конфигурации (например, несколько файлов свойств? Файл XML? Несколько файлов XML? База данных? ...).

Ответы [ 3 ]

7 голосов
/ 27 мая 2009

Администратор конфигурации Феликса имеет реализацию по умолчанию , которая сохраняется в файловой системе, но они определяют интерфейс службы ( org.apache.felix.cm.PersistenceManager ) для альтернативных бэкэндов, которые Вы можете подключить вместо этого.

Реализация по умолчанию делает следующее:

Класс FilePersistenceManager хранит данные конфигурации в Подобные свойствам файлы внутри данного каталога. Все конфигурационные файлы находится в том же каталоге.

Файлы конфигурации создаются в каталоге конфигурации путем добавления расширение ".config" для PID конфигурации. PID преобразуется в относительный путь путем замены заключенных точек на косую черту. Символы не символьного имени в PID кодируются Код символа Unicode в шестнадцатеричном формате.

6 голосов
/ 01 июня 2009

Три общедоступных реализации, о которых я знаю, это

Реализация службы Equinox ConfigurationAdmin, по-видимому, не поддерживает точный контроль над политикой постоянства, как это делает Феликс, а реализация Knopflerfish выглядит (я только кратко прочитал источник) похожей на Equinox.

Felix один, кажется, самый последний обновленный и самый надежный.

В настоящее время это единственные, которые я могу найти; на сервере dm мы приняли решение использовать пакет Felix, и теперь его можно получить из репозитория SpringSource Enterprise Bundle , где вы можете быстро найти Apache Felix или ConfigAdmin.

1 голос
/ 01 декабря 2013

Просто чтобы завершить ответ дальше: лично я также предпочитаю реализацию Felix. Для примера того, как изменить способ хранения в бэкэнде с помощью PersistenceManager, см. Также реализацию , которая использует стандартные файлы свойств Java в качестве резервного хранилища. Имеет некоторые ограничения, но, по крайней мере, позволяет хранить конфигурацию вместе с приложением и отдельно от реализации платформы OSGi.

...