2016-06-06 11 views
0

Я использую Apache Felix во вложенном образом, как описаны в http://felix.apache.org/documentation/subprojects/apache-felix-framework/apache-felix-framework-launching-and-embedding.htmlApache Феликса: Загрузка пучок файлы из директории с Феликсом внедренных

Согласно дискуссии в Apache Felix File Install jar from deploy folder

1) Начат Феликс

2) Установленная/начал felix.fileinstall расслоение на нем

3) Установите систему присущий hotdiploy реж т.е.

System.setProperty ("felix.fileinstall.dir", "файл: C:/myrproject/hotdeploy");

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

Благодаря

+0

Java 7 имеет API для просмотра каталогов, но у вас возникнет проблема с тем, что ваш код может быть вызван до того, как код файла будет установлен. –

+0

FileInstall уже автоматически запускает найденные в каталоге загрузки пакеты - если у вас есть 'felix.fileinstall.bundles.new.start' свойство установлено в true (это значение по умолчанию). Итак, в чем проблема, которую вы точно решаете? –

ответ

0

Вы можете установить org.apache.felix.eventadmin сверток, а затем смотреть тему событий org/osgi/framework/BundleEvent/STARTED. Посмотрите на felix eventadmin.

Обратите внимание, что веб-консоль felix является хорошим инструментом для просмотра событий, по крайней мере для целей отладки.

+1

Для этого не нужно идти в EventAdmin. Вы можете зарегистрировать 'BundleListener' непосредственно с фреймворком. –

+0

'' BundleTracker' тоже будет делать трюк. –

0

Учитывая, что ваш вопрос включает в себя «способ, которым я могу получить уведомление, когда этот реж изменения (добавление или удаление новых пучков», вы, вероятно, ищет the Apache Felix File Install bundle; см. Также this other question