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