Афоризм
Следить стараюсь за фигурой. Чуть отвлекусь, она - жует.
Последние статьи

 • Активности Android
Многоэкранные Android приложения
 • Fragment dynamic
Динамическая загрузка фрагментов в Android
 • Fragment lifecycle
Жизненный цикл Fragment'ов в Android
 • Fragment example
Пример Fragment'ов в Android
 • Data Binding
Описание и пример Data Binding
 • Пример MVVM
Пример использования MVVM в Android
 • Компонент TreeTable
Описание компонента TreeTable для Swing
 • Пример TreeTable
Пример использования TreeTable
 • Хранилища Android
Внутренние и внешние хранилища данных
 • Пример SQLite
Пример использования SQLite в Android
 • WebSocket
Описание и пример реализации WebSocket
 • Визуальные компоненты
Улучшен компонент выбора даты из календаря
 • Анимация jQuery
Описание и примеры анимации элементов DOM
 • APK-файл Android
Создание apk-файла для android устройств, .dex файлы
 • платформа JaBricks
Платформа OSGi-приложения JaBricks
Поддержка проекта

Если Вам сайт понравился и помог, то будем признательны за Ваш «посильный» вклад в его поддержку и развитие
 • Yandex.Деньги
  410013796724260

 • Webmoney
  R335386147728
  Z369087728698

Урок 8. Динамическое подключение модуля

OSGi-фреймворк выполняет динамическое подключение бандлов, т.е. в режиме run-time после старта фреймворка. В предыдущих уроках бандлы, описанные в конфигурации, JaBricks инсталлировал во фреймворк и по определенной команде от панели инструментов, либо от главного меню стартовал. В данном уроке рассмотрим возможность старта бандла без включения его в конфигурацию JaBricks.

Для демонстрации динамического подключения бандла в приложение JaBricks используем модуль monitor-jframe, интерфейс главной страницы которого представлен на следующем скриншоте. Прежде чем переходить к описанию данного модуля рассмотрим его функциональные возможности. Модуль monitor-jframe :

  • представляет список включенных в приложение бандлов;
  • отображает версии и состояния бандлов;
  • позволяет инсталлировать и стартовать бандлы, не включенные в конфигурацию приложения;
  • позволяет останавливать и деинсталлировать из фреймворка бандлы, не включенные в конфигурацию приложения;
  • представляет OSGi сообщения фреймворка;
  • имеет локализованный интерфейс для трех языков (ru, en, de).

На заметку
1. Остановить и деинсталлировать можно только бандлы, не включенные в конфигурацию приложения.
2. Динамически включенные в приложение бандлы, т.е. не включенные в конфигурацию приложения, представлены в таблице «на белом фоне»; записи с выделенными в таблице бандлами имеют голубой фон.
3. Инсталлировать и стартовать можно только бандл, все зависимости которого «загружены» во фреймворк.

Примечание :
1. Я не ставил перед собой задачу, сделать совершенное приложение мониторинга фреймворка. Данный фрейм демонстрирует только возможность динамического подключения бандла к приложению JaBricks, т.е возможность использования нового бандла в приложении в режиме run-time.
2. Если бандл имеет какие-либо ошибки (структурные, интерфейсные и т.п.), либо не загружены в JaBricks «связи», то модуль не стартует. Этой возможностью бандла «monitor-jframe» (фреймворка) я пользуюсь, когда необходимо проверить функционирование в JaBricks «стороннего» бандла.

Описание интерфейса

Интерфейс фрейма monitor-jframe включает панель инструментов для управления бандлами, таблицу для отображения списка бандлов и их состояний, консольную панель для отображения сообщений OSGi-фреймворка.

Для динамического подключения к приложению модуля необходимо нажать левую кнопку панели инструментов и в диалоговом окне выбрать бандл, который будет сразу же инсталлирован во фреймворк и добавлен в таблицу. При инсталляции бандла в консоли будут представлены соответствующие сообщения. После этого бандл можно выделить в таблице и стартовать/остановить. Соответствующие сообщения фреймворка также будут отображены в консоли. Последняя кнопка, расположенная в левой части панели инструментов, позволяет деинсталлировать бандл.

Представленные в уроках 4 и 5 бандлы (temp-jdialog.1.0.0.jar, temp-jdialoga.1.0.0.jar), открывающие при старте интерфейсные окна, можно использовать для динамического подключения к приложению.

Конфигурация

Конфигурация приложения включает набор бандлов в поддиректории «configuration/bundles», которые регистрируются в файле «configuration/bundles.ini». В конфигурацию к базовому набору платформы дополнительно включены модули динамического изменения языка (form-locale) и «О программе» (form-about).

Листинг configuration/bundles.ini


bundles=org.apache.felix.eventadmin-1.4.8.jar@start, \
org.apache.felix.log-1.0.1.jar@start, \
util-resources-1.0.0.jar@start, \
util-logger-1.0.0.jar@start, \
base-jframe-1.0.0.jar, \
base-jpanel-1.0.0.jar, \
base-jdialog-1.0.0.jar, \
gui-menu-1.0.0.jar, \
gui-toolbar-1.0.0.jar, \
gui-widgets-1.0.0.jar, \
form-about-1.0.0.jar, \
form-locale-1.0.0.jar, \
monitor-jframe-1.0.0.jar@main
 

Листинг configuration/toolbar.xml

Описание панели инструментов предполагает расположение кнопок управления «внешними» бандлами слева. Обработка событий, связанных с нажатием кнопок, выполняется фреймом monitor-jframe. Справа в панели инструментов располагаются кнопки управления, две из которых имеют в описании связи с бандлами.


<?xml version="1.0" encoding="UTF-8"?>
<root name="root" rollover="true" borderpainted="true">
  <toolbar>
    <item name="toolbar.install" type="button" 
        image="configuration/resources/images/add.png" />
    <item name="separator" width="2"/>
    <item name="toolbar.start"     type="button"
        image="configuration/resources/images/start.png" />
    <item name="toolbar.stop"      type="button" 
        image="configuration/resources/images/stop.png" />
    <item name="toolbar.uninstall" type="button"
        image="configuration/resources/images/cross.png" />
  </toolbar>
  <toolbar>
    <item name="toolbar.settings" type="button" 
        image="configuration/resources/images/gear.png"
        groupId="org.jabricks.locale" 
        artifactId="form-locale" version="1.0.0" />
    <item name="toolbar.about" type="button"
        image="configuration/resources/images/question.png"
        groupId="org.jabricks.about"
        artifactId="form-about" version="1.0.0" />
    <item name="toolbar.exit" type="button" 
        image="configuration/resources/images/exit.png" />
  </toolbar>
</root>
 

Связанные страницы

Список уроков
Предыдующий, 7-й урок
Следующий, 9-й урок

Скачивание файлов

После выполнения предыдущих уроков Вы должны свободно ориентироваться в конфигурации приложения JaBricks. Для выполнения данного задания Вам необходимо только скачать необходимые бандлы, ресурсные файлы, файл описания панели инструментов и файл описания инсталлируемых бандлов. Перечисленные файлы собраны и упакованы в один архивный файл configuration.lesson08.zip (437 Кб).

Скачайте и «разверните» архив configuration.lesson08.zip, перенесите файлы в структуру приложения, представленную на странице описания Платформы JaBricks.

  Рейтинг@Mail.ru