Работает ли Apache Felix FileInstall для динамической настройки приложения?

Я пытаюсь разработать приложение, которое может быть настроено пользователями. Мне нужно, чтобы конфигурация выполнялась путем установки/обновления/остановки/удаления пакетов. Все это, конечно, должно быть сделано динамически во время выполнения приложения.

Я нашел хороший фреймворк Apache Felix FileInstall, который обеспечивает каталог, в который, кажется, добавляется пакет, когда вы добавляете файл пакета в каталог (аналогично обновляйте и удаляйте пакеты).

Но я вижу, что этот метод не работает в моем случае. Мне нужно иметь пакеты в каталоге, но чтобы остановить или даже удалить их с помощью моего приложения. И я хочу установить их, когда это будет уместно. Вот как я ожидаю, что конфигурация моего приложения будет выполнена.

Поддерживается ли то, чего я пытаюсь достичь, с помощью Apache FileInstall? Делаю ли я какие-либо неправильные предположения об этой структуре? Какие другие возможные способы могут мне помочь, если Apache FileInstall недостаточно? Спасибо.


person Traveling Salesman    schedule 17.07.2013    source источник


Ответы (1)


Для этого вам не нужен FileInstall, просто используйте OSGi API. Вы конкретно упомянули установку, обновление, остановку и удаление; они поддерживаются следующими вызовами API соответственно:

  • BundleContext.installBundle
  • Bundle.update
  • Bundle.stop
  • Bundle.uninstall

Между прочим, это точно такие же методы, которые вызываются FileInstall для реализации управления пакетами на основе каталогов.

person Neil Bartlett    schedule 17.07.2013
comment
Вы говорите, что мне не нужно изначально добавлять свои пакеты перед запуском приложения? Я имею в виду, могу ли я заставить свое приложение установить новый пакет или динамически заменить существующий пакет, используя эти методы? - person Traveling Salesman; 18.07.2013
comment
Да. Конечно, пакет, который управляет другими пакетами, нужно сначала установить и запустить. Обычно мы называем такой пакет агентом управления. FileInstall также является агентом управления. - person Neil Bartlett; 18.07.2013
comment
Спасибо. Я много искал, как использовать эти методы и где их разместить в коде? У вас есть какая-нибудь ссылка, которая может мне помочь? - person Traveling Salesman; 18.07.2013
comment
Почему бы не начать с более простого руководства по OSGi? Как только вы поймете основы, вы сможете ответить на свой вопрос. На данный момент кажется, что вы пытаетесь делать очень продвинутые вещи без надлежащей основы. - person Neil Bartlett; 18.07.2013
comment
Хорошо бы начать с: blog.sarathonline .com/2008/12/ - person Traveling Salesman; 18.07.2013