Перейти к основному содержимому
Версия: 4.x

Разработка (ручная)

к сведению

Для установки сервера приложений, IDE и клиента на компьютере должна быть предварительно установлена Java версии не ниже 8.

к сведению

Для работы сервера приложений должен быть открыт доступ к серверу управления базами данных PostgreSQL версии не ниже 9.6. PostgreSQL сервер должен принимать подключения, используя авторизацию по паролю методом md5 или trust. Настроить авторизацию можно, отредактировав файл pg_hba.conf, как это описано в документации PostgreSQL.

Установка плагина к IDE

к сведению

Для установки плагина на компьютере должна быть установлена Intellij IDEA не ниже 2020.1 версии.

  • В настройках IDEA (File > Settings) выбрать Plugins > Browse repositories, найти lsFusion плагин, нажать Install, перезапустить IDEA.

Установка сервера приложений через IDE

  • При создании нового lsFusion проекта напротив lsFusion library нажать кнопку Download: IDEA автоматически скачает jar-файл последней (не beta) версии сервера lsFusion с центрального сервера и установит этот файл в качестве зависимости этого проекта (а точнее единственного его модуля: File > Project Structure > Modules > имя проекта > вкладка Dependencies). Также, при необходимости, можно скачать другую (отличную от последней) версию сервера или выбрать уже скачанный jar-файл сервера на локальном диске.
к сведению

Отметим, что IDEA запоминает скачанный / указанный файл сервера приложений в своих настройках и автоматически подставляет его при создании других lsFusion проектов.

Установка десктоп-клиента

  • После старта сервера, в логе старта одной из последних строк будет строка с ссылкой на jnlp-файл (например https://download.lsfusion.org/java/lsfusion-client-4.1.jnlp), запустив который клиент автоматически установится при помощи технологии Java Web Start.

Установка в существующих Java-проектах

Установка сервера приложений через IDE

  • Скачать файл lsfusion-server-<version>.jar нужной версии (например lsfusion-server-4.1.jar) с центрального сервера в папку нужного модуля проекта (далее будем называть эту папку $FUSION_DIR$).
  • Если сервер БД находится на другом компьютере, а также если на сервере БД включена авторизация (например, для Postgres, по методу md5 и пароль postgres не пустой), задать параметры подключения к серверу БД (например, создав файл настроек запуска в папке проекта)
  • Добавить скачанный файл в качестве зависимости нужного модуля проекта (File > Project Structure > Modules > имя модуля > вкладка Dependencies > +)
  • Создать конфигурацию запуска (при создании нового lsFusion проекта этот и верхние два пункта выполняются автоматически). Если платформа подключается в качестве библиотеки, вместо создания конфигурации можно использовать Spring bean c идентификатором logicsInstance из конфигурационного файл lsfusion.xml, и его методы start() и stop() отвечающий за старт и остановку сервера приложений соответственно.
к сведению

Для существующего maven-проекта установку и подключение сервера можно (и нужно) делать по другому (см. ниже).

Установка сервера приложений через Maven (только для Maven проектов)

  • Прописать в pom.xml или в качестве parent lsfusion.platform.build:logics, или в качестве dependency lsfusion.platform:server (на данный момент эти артефакты не находятся в центральном репозитарии, поэтому дополнительно необходимо прописать путь к lsFusion-репозитарию), например:

    <repositories>
    <repository>
    <id>lsfusion</id>
    <name>lsFusion Public Repository</name>
    <url>http://repo.lsfusion.org</url>
    </repository>
    </repositories>

    <parent>
    <groupId>lsfusion.platform.build</groupId>
    <artifactId>logics</artifactId>
    <version>3.0</version>
    </parent>

    Первый вариант (с parent) хорош тем, что:

    • Maven автоматически настроит сборку uber-jar (то есть один файл содержащий все файлы проекта). Запустить эту сборку можно используя maven-профиль assemble - при его включении на фазе package дополнительно формируется jar-файл с постфиксом assembly, который содержит не только файлы этого проекта, но и файлы всех зависимостей проекта, в том числе файлы самого сервера приложений. Впрочем, в случаях когда сервер приложений устанавливается отдельно от самого приложения (например, при автоматической установке) включение сервера приложения в результирующий uber-jar нежелательно. Поэтому, помимо assemble, в платформе также поддерживается maven-профиль noserver, при включении которого (вместе с assemble) при формировании jar-файла с постфиксом assembly туда не будут включаться файлы сервера приложений (пример команды: mvn package -P assemble,noserver).

    • Maven и IDE автоматически определят source и resources директории (например таким по умолчанию является src/main/lsfusion)

    • Maven автоматически настроит weav'инг аспектов сервера приложений. Впрочем, это необходимо в достаточно редких случаях: если в проекте есть прикладные rmi-сервера (то есть объекты наследующие lsfusion.interop.server.RmiServerInterface, доступ которыми осуществляется удаленно через RMI) или используются различные системные аннотации сервера приложений (например lsfusion.server.base.caches.IdentityLazy для кэширования результатов выполнения).

    По втором варианте все вышеперечисленное необходимо настраивать вручную непосредственно разработчику.

    Также как и для других проектов, не созданных при помощи операции создания нового lsFusion проекта, для maven-проекта необходимо вручную создать файл настроек и конфигурацию запуска (или если платформу необходимо подключить в качестве библиотеки использовать специальный Spring bean)

к сведению

Если работа идет с большим проектом и в нем активно используются метакоды (например ERP), рекомендуется в параметрах запуска IDEA (idea.exe.vmoptions или idea64.exe.vmoptions) увеличить Xmx хотя бы до 2gb.