ЗАГРУЗИТЬ | ДОКУМЕНТАЦИЯ | ИНТЕРЕСНОЕ

EN | RU | ГРАФИЧЕСКАЯ ВЕРСИЯ

Механизм расширений

Платформа LUWRAIN поддерживает механизм расширений, который позволяет дополнять систему различной новой функциональностью. Этот механизм наиболее полезен при желании создать своё приложение, но возможны и другие варианты применения.

Каждое расширение должно содержать класс, реализующий интерфейс org.luwrain.core.Extension. Для удобства также создан класс org.luwrain.core.EmptyExtension, который позволяет не реализовывать все функции интерфейса Extension, а только добавить непосредственно необходимые.

При загрузке платформа LUWRAIN самостоятельно создаст экземпляр класса расширения и запросит множество объектов, которое новое расширение желает интегрировать в систему. Подобные объекты могут быть следующих типов:

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

Как указывалось выше, платформа LUWRAIN каждый объект расширения создаёт самостоятельно. Для определения множество классов, которые могут восприниматься как классы расширений для загрузки LUWRAIN просматривает манифесты в загружаемых файлах *.jar и проводит поиск значения Extensions в секции org/luwrain. Строка значения Extensions должна содержать разделённый многоточием список классов, каждый из которых будет обработан как класс расширения.

Задать подобное значение для расширения org.luwrain.foobar.Extension при сборке проекта при помощи Apache Maven и с использованием плагина maven-jar-plugin можно следующим способом:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <version>3.0.2</version>
  <configuration>
    <archive>
      <manifest>
        <addClasspath>false</addClasspath>
      </manifest>
      <manifestSections>
        <manifestSection>
          <name>org/luwrain</name>
          <manifestEntries>
            <Extensions>org.luwrain.foobar.Extension</Extensions>
          </manifestEntries>
        </manifestSection>
      </manifestSections>
    </archive>
  </configuration>
</plugin>

Если проект использует для сборки утилиту Apache Ant, то конфигурация расширения может выглядеть следующим образом:

<jar jarfile="foobar.jar">
  <manifest>
    <section name="org/luwrain">
      <attribute name="Extensions" value="org.luwrain.foobar.Extension"/>
    </section>
  </manifest>
  <...>
</jar>

© 2012–2024 Проект LUWRAIN

Правила использования | Пишите нам!