410013796724260
• Webmoney
R335386147728
Z369087728698
Урок 17. Динамический старт бандловДинамический старт бандлов предполагает, что при старте приложения не все бандлы инсталлируются во фреймворк. Отдельные модули могут быть инсталлированы только при необходимости. Так, например, некоторые интерфейсные бандлы управления справочной информацией могут быть не использованы в течение пользовательского сеанса. В данной ситуации, зачем увеличивать время старта приложения и грузить модули, если они не используется? Приложение JaBricks позволяет динамически загрузить модуль по требованию пользователя. Что значит динамический старт бандла в приложении JaBricks? Это значит, что платформа обеспечивает инсталляцию бандла во фреймворк и его старт по требованию пользователя, т.е. при нажатии на кнопку панели инструментов, либо при выборе одного из пунктов меню. При повторном старте инсталляция бандла не требуется; приложение проверяет «наличие» бандла во фреймворке, и инсталлирует его только при отсутствии. Чтобы обеспечить динамическую загрузку бандла необходимо в файле конфигурации приложения «configuration/bundles.ini» в описании модуля включить атрибут @dynamic. Конфигурация приложенияСледующий листинг файла bundles.ini, с небольшими отличиями, включает описание всех бандлов, используемых в конфигурации 4-го урока : 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.2.jar, \ base-jpanel-1.0.0.jar, \ base-jdialog-1.0.0.jar, \ gui-menu-1.0.1.jar, \ gui-toolbar-1.0.1.jar, \ gui-widgets-1.0.2.jar, \ templ-jdialog-1.0.0.jar@dynamic, \ templ-jdialog-2.0.0.jar@dynamic, \ templ-jpanel-1.0.0.jar@dynamic, \ templ-jpanel-2.0.0.jar@dynamic, \ form-about-1.0.0.jar@dynamic, \ templ-jframe-1.0.0.jar@main А теперь посмотрим на отличия данной конфигурации от конфигурации 4-го урока. Атрибут @dynamic Модули base-jframe, gui-menu, gui-toolbar Необходимо отметить, что обновленные версии поддерживают функциональные свойства предыдущих версий. Поэтому, переход в конфигурации на обновленные версии бандлов не изменит функциональных свойств приложения, но позволяет в дальнейшем улучшить их функциональность. Так, что, можете смело загружать и использовать в своих конфигурациях обновленные версии. Приложение jabricksДля реализации функции динамической загрузки бандлов необходимо использовать исполняемый модуль приложения jabricks.exe версии 1.0.1.3, либо jabricks-1.0.1.jar. На сайте можно скачать только последние версии, функционально совместимые с предшественниками. Старт приложенияЕсли Вы используете командную строку для старта приложения jabricks-1.0.1.jar, то при соответствующем установленном флаге логирования в консоль будут выведены следующие сообщения (наименование бандлов сокращенном виде, не SymbolicName) : java version "1.8.0_192" Java(TM) SE Runtime Environment (build 1.8.0_192-b12) Java HotSpot(TM) Client VM (build 25.192-b12, mixed mode) 20:44:09,539 START ~~~~~ Framework CREATED ~~~~~ 20:44:10,000 START Framework init 20:44:10,200 START Framework start 20:44:10,300 INFO Install bundles 20:44:10,340 OSGi base-jdialog : INSTALLED 20:44:10,420 OSGi base-jframe : INSTALLED 20:44:10,510 OSGi base-jpanel : INSTALLED 20:44:10,640 OSGi gui-menu : INSTALLED 20:44:10,720 OSGi gui-toolbar : INSTALLED 20:44:10,154 OSGi gui-widgets : INSTALLED 20:44:10,163 OSGi org.apache.felix.eventadmin : INSTALLED 20:44:10,178 OSGi org.apache.felix.log : INSTALLED 20:44:10,185 OSGi templ-jframe : INSTALLED 20:44:10,193 OSGi util-logger : INSTALLED 20:44:10,201 OSGi util-resources : INSTALLED 20:44:11,579 OSGi util-logger : STARTED # инсталляция бандла form-about во фреймворк 20:44:51,733 OSGi form-about : INSTALLED 20:44:51,741 OSGi form-about : RESOLVED # перевод бандла base-jdialog в состояние RESOLVED 20:44:51,741 OSGi base-jdialog : RESOLVED # старт бандла form-about 20:44:52,184 OSGi form-about : STARTED Обратите внимание, что перед стартом бандла form-about, он сначала фреймворком переводится в состояние RESOLVED. Одновременно с ним в состояние RESOLVED переводится бандл base-jdialog, который используется модулем form-about для создания интрфейса. После этого бандл form-about стартует. Примечание : приложение JaBricks при динамическом старте бандла не контролирует инсталляцию зависимых бандлов во фреймворк. При отсутствии хотя бы одного зависимого бандла динамический старт будет «сорван» без каких-либо сообщений об ошибке. Связанные страницыСписок уроковПредыдующий, 16-й урок Скачать конфигурациюПример использования приложения JaBricks с динамическим стартом бандлов представлен на странице описания программы Домашние финансы. Скачать конфигурациюБандлы, используемые в уроке 17, файлы конфигурации и файл описания инсталлируемых бандлов собраны и упакованы в один архивный файл configuration.lesson17.zip (417 Кб). Скачайте и «разверните» архив configuration.lesson17.zip, перенесите файлы в структуру, представленную на странице описания платформы JaBricks. Также, используйте последнюю версию приложений jabricks.exe версии 1.0.1.3, либо jabricks-1.0.1.jar. |