Афоризм
Честь девичью блюла, но не со всеми.
Наталья Резник
Последние статьи

 • APK-файл Android
Создание apk-файла для android устройств, .dex файлы
 • Android и OSGi
Старт OSGi-фреймворка Felix в android устройстве
 • Загрузка драйвера
Динамическая загрузка JDBC-драйвера
 • платформа JaBricks
Платформа OSGi-приложения JaBricks
 • уроки JaBricks
Учебные примеры изучения платформы Jabricks
 • бандл 'О программе'
Модуль представления инфо о программе
 • бандл form-currencies
Модуль управления справочником валют
 • бандл form-exchange
Модуль управления справочником курсов валют
 • бандл db-connection
Модуль подключения к серверу БД
 • бандлы JaBricks
Бандлы приложения JaBricks
Поддержка проекта

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

 • Webmoney
  R335386147728
  Z369087728698

Модуль управления ресурсами

Модуль util-resources предназначен для управления внешними ресурсами приложения на платформе JaBricks. Внешние ресурсы приложения включают файл инициализации приложения, файлы описания структур «Главного меню» и «Панели инструментов», ресурсные файлы свойств и изображений приложения и бандлов.

Файл инициализации

Файл инициализации приложения jabricks.ini хранит параметры в виде «ключ-значение». В дистрибутив приложения входит jabricks.ini, включающий только два параметра :

# 2017-12-01 12:31:55

lang=ru
locale=ru_RU,en_US,de_De

В первую строку файла инициализации в виде комментария, начинающего с символа '#', модуль ресурсов записывает дату и время последнего обновления.

• lang — текущий язык локализации;
• locale — список используемых приложением Locale, разделенных символом запятой.

Примечание :
   1. Если «lang» не определен, то по умолчанию используется русский язык (ru_RU).
   2. Список возможных локалей можно дополнить записью в формате «lang_COUNTRY», где двухсимвольные значения lang и COUNTRY определяют язык и страну. Дополнительный язык локализации должен поддерживаться бандлами приложения. Подробнее о локализации приложения можно посмотреть здесь.

В файле инициализации jabricks.ini можно хранить дополнительные настройки отдельных бандлов приложения, например, параметры подключения к серверу базы данных. Чтение и обновление параметров осуществляется с использованием методов модуля по «ключу». Значения параметров инициализации приложения можно изменить непосредственно в jabricks.ini. Информацию о внешних ресурсах приложения модуль util-resources предоставляет по запросам бандлов.

Модуль ресурсов util-resources содержит методы управления инициализационными параметрами : добавление и обновление значений. Данные методы можно вызвать из бандлов программно. На сайте можно скачать бандлы, предоставляющие графический интерфейс определения инициализационных параметров приложения. Так, к примеру,

  • модуль form-locale имеет графический интерфейс и позволяет в режиме run-time определить текущий язык локализации приложения.
  • модуль настройки form-settings позволяет в режиме run-time определить значения нескольких параметров.

Описание модуля

Методы модуля util-resources представлены в интерфейсе IResources. Класс ResourcesImpl реализует методы интерфейса IResources.

Интерфейс модуля, IResources

В интерфейсе IResources определены следующие методы для управления внешними ресурсами приложения :

Листинг
public interface IResources 
{
  // Управление объектом локализации Locale
  public Locale       getLocale ();
  public void         setLocale (Locale locale);
  public List<Locale> getLocales();

  // Чтение иконки приложения
  public Image      getAppIcon();

  // Чтение изображения
  public Image      getImage    (final String name);
  public ImageIcon  getImageIcon(final String name);

  // Чтение внешних ресурсов в формате XML
  public  Document  readXML  (final String fname);

  public  Document  readMenuStructure   ();
  public  Document  readToolbarStructure();

  // Чтение внешних ресурсов бандла
  public Properties getBundleResources(String symbolicName);

  // Управление свойствами в файле jabricks.ini
  public String     getIniParam(String key);
  public void       setIniParam(String key, String value);
}
• getLocale () — метод получения текущей locale;
• setLocale (locale) — метод определения текущей locale;
• List<Locale> getLocales() — метод получения списка используемых в приложении объектов локализации Locale;
• getAppIcon() — метод получения иконки приложения для отображения в интерфейсных формах;
• getImage (name) — метод чтения изображения name из директории внешних ресурсов приложения;
• getImageIcon(name) — метод чтения изображения-иконки name из директории внешних ресурсов приложения;
• readXML (final String fname) — метод чтения файла в формате XML;
• readMenuStructure — метод чтения внешнего описания структуры меню;
• readToolbarStructure — метод чтения внешнего описания структуры панели инструментов;
• getBundleResources(symbolicName) — метод получения Properties внешних ресурсов бандла;
• getIniParam(key) — метод чтения значения параметра файла инициализации по ключу key;
• setIniParam(key, value) — метод сохранения нового значения value параметра key в файле инициализации;

Пример использование модуля

Чтобы модуль util-resources был доступен в бандле необходимо в проектном файле pom.xml включить его описание в зависимости и в секцию <Import-Package> манифеста. В следующем скрипте представлены описания зависимости и плагина maven-bundle-plugin с включением бандла util-resources из pom.xml модуля протоколирования util-logger :

Листинг
...
<dependency>
    <groupId>org.jabricks.resources</groupId>
    <artifactId>util-resources</artifactId>
    <version>1.0.0</version>
    <scope>provided</scope>
</dependency>
...
<plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-bundle-plugin</artifactId>
    <version>2.3.7</version>
    <extensions>true</extensions>
    <configuration>
        <instructions>
            <Bundle-SymbolicName>
                ${project.groupId}.${project.artifactId}
            </Bundle-SymbolicName>
            <Bundle-Name>${project.name}</Bundle-Name>
            <Bundle-Version>
                ${project.version}
            </Bundle-Version>
            <Bundle-Activator>
                ${project.groupId}.LoggerActivator
            </Bundle-Activator>
            <Import-Package>
                org.osgi.framework.*,
                org.osgi.service.log.*,
                org.jabricks.resources
            </Import-Package>
        </instructions>
    </configuration>
</plugin>
...

При подключении util-resources в коде модуля следует использовать интерфейс модуля IResources и его реализацию ResourcesImpl. Следующий код демонстрирует получение текущего объекта локализации приложения :

// Определение ресурсного модуля
IResources resources = new ResourcesImpl();
// Чтение текущего объекта локализации
Locale locale = resources.getLocale();

Пример чтения инициализационных параметров

Для чтения значения определенного параметра файла инициализации jabricks.ini используется метод getIniParam (String key). Если параметр определен в файле, то метод вернет его значение, в противном случае null. В следующем примере запрашивается параметр "db.host" сервера БД :

IResources resources = new ResourcesImpl();
if (resources != null) {
    String host = resources.getIniParam("db.host");
    System.out.println("db.host = " + host);
}

Пример чтения внешних ресурсов бандла

Метод getBundleResources (SymbolicName) модуля util-resources возвращает локализованные ресурсы согласно текущей Locale в виде Properties. Следующий пример демонстрирует вывод в консоль локализованного свойства "title", определенного во внешних ресурсных файлах бандла, расположенных в директории "configuration/resources/properties".

Bundle bundle;
...
IResources resources = new ResourcesImpl();
if (resources != null) {
    Properties props = null;
    props = resources.getBundleResources(bundle.getSymbolicName());
    if (props != null)
        System.out.println(props.getProperty("title"));
}

Внешние ресурсы бандла позволяют настроить определенные интерфейсные свойства для конкретного приложения. Так, к примеру, внешние ресурсы модуля form-about позволяют определить различные описания приложения на главной вкладке формы.

Ограничение доступа к ресурсам

На этапе разработки и отладки приложения внешние ресурсы директории configuration хранятся в открытом виде и могут быть изменены непосредственно разработчиком. После завершения разработки модулей приложения внешние ресурсы (конфигурацию) можно закрыть, ограничив прямой доступ к ним. В этом случае будет создано прикладное решение на платформе Jabricks. Конфигурацию можно восстановить для внесения каких-либо изменений в функционал отдельного модуля или в приложение в целом. Для этого необходимо знать пароль блокирования открытого доступа к внешним ресурсам (конфигурации).

Зависимости

Модуль util-resources имеет следующие зависимости, включенные в модуль JaBricks и загружаемые фреймворком при старте приложения :

  • Felix-фреймворк org.osgi.framework
  • классы пакетов org.w3c.dom.*, javax.swing.*, javax.xml.parsers

Подключение модуля util-resources

Для подключения модуля util-resources в приложение JaBricks необходимо :

  • разместить модуль в поддиректории «configuration/bundles/»;
  • внести в файл инициализации бандлов «bundles.ini» запись с атрибутом старта : util-resources-1.0.0.jar@start;

Примечание : атрибут @start определяет необходимость старта модуля после «инсталляции» для обеспечения бандлов внешними ресурсами по запросам.

GAV параметры модуля util-resources имеют следующие значения :

• groupId : org.jabricks.resources
• artifactId : util-resources
• version : 1.0.0

Подробнее о включении модуля в приложение JaBricks представлено здесь.

Скачать util-resources

Рассмотренный на странице модуль с компонентами формирования графического интерфейса util-resources упакован в архивный файл util-resources-1.0.0.zip (18.6 Кб).

  Рейтинг@Mail.ru