Для разработки
Д ля установки сервера приложений, IDE и клиента на компьютере должна быть предварительно установлена Java версии не ниже 8.
Для работы сервера приложений должен быть открыт доступ к серверу управления базами данных PostgreSQL версии не ниже 9.6. PostgreSQL сервер должен принимать подключения, используя авторизацию по паролю методом md5 или trust. Настроить авторизацию можно, отредактировав файл pg_hba.conf
, как это описано в документации PostgreSQL.
Установка плагина к IDE
Для установки плагина на компьютере должна быть установлена Intellij IDEA не ниже 2022.2 версии.
Установка сервера приложений через 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-6.0-beta0.jnlp), запустив который клиент автоматически установится при помощи технологии Java Web Start.
Установка веб-клиента
- Установить Apache Tomcat 9й версии.
- Добавить
--add-opens=java.base/java.util=ALL-UNNAMED
в параметры запуска Apache Tomcat, если используется версия Java выше 17. - Скачать веб-клиента платформы lsFusion.
- Поместить war-файл в папку webapps Apache Tomcat, например, с именем lsfusion.war.
- Веб-клиент будет доступен по адресу http://localhost:8080/lsfusion.
Установка в существующих Java-проектах
Установка сервера приложений через IDE
- Скачать файл
lsfusion-server-<version>.jar
нужной версии (напримерlsfusion-server-6.0-beta0.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
или в качестве parentlsfusion.platform.build:logics
, или в качестве dependencylsfusion.platform:server
(на данный момент эти артефакты не находятся в центральном репозитарии, поэтому дополнительно необходимо прописать путь к lsFusion-репозитарию), например:<repositories>
<repository>
<id>lsfusion</id>
<name>lsFusion Public Repository</name>
<url>https://repo.lsfusion.org</url>
</repository>
</repositories>
<parent>
<groupId>lsfusion.platform.build</groupId>
<artifactId>logics</artifactId>
<version>6.0-beta0</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)
-