Обновление Enterprise с 1.x на 2.x
Страница описывает, как перевести проект с OpenBPM Engine Enterprise 1.1 на 2.0. Полный список изменений релиза и правки, которые могут понадобиться в коде, собраны на странице Релиз 2.0. Если проект работает на Community-редакции, сначала см. Переход с Community на Enterprise.
Схема базы данных в 2.0 не менялась, SQL-скрипты выполнять не нужно. Основной объём работы — перевод приложения на Spring Boot 4; сам движок обратно совместим.
Перед обновлением:
-
Переведите проект на последнюю версию линейки 1.1 и убедитесь, что он собирается и проходит тесты. Проект на Camunda 7 сначала переведите на OpenBPM Engine по инструкции Миграция с Camunda 7 на OpenBPM Engine.
-
Проверьте версию Java: нужна 17 или новее.
-
Проверьте версию базы данных. В 2.0 минимальные версии — PostgreSQL 14, MariaDB 10.11, MySQL 8.4, Oracle 21, SQL Server 2022.
-
Сделайте резервную копию базы данных.
Версия артефактов
Артефакты Enterprise публикуются в репозиторий premium с суффиксом -ee. Координаты в 2.0 не менялись —
достаточно заменить версию на 2.0.0-ee у всех зависимостей io.openbpm.*.
repositories {
mavenCentral()
maven {
url = 'https://nexus.openbpm.ru/repository/premium'
credentials {
username = findProperty('openbpmRepoUser')
password = findProperty('openbpmRepoPassword')
}
}
}
Для Maven:
<repository>
<id>openbpm-premium</id>
<url>https://nexus.openbpm.ru/repository/premium</url>
</repository>
Если версии задаются через BOM, обновите io.openbpm.bpm:openbpm-engine-bom до 2.0.0-ee.
Учётные данные для репозитория входят в подписку, см. Лицензирование.
Код и тесты
Публичный API движка не менялся. Проверьте, не используются ли в проекте классы, которые изменились в 2.0:
HistoryLevelSetupCommand, ExceptionHandlerHelper, StartProcessVariableScope, VariableInstanceEntityFactory,
SimpleVariableInstanceFactory, SpinScriptEnv. Что с ними делать — в разделе
Критические изменения.
Тесты на JUnit 5 с классификатором junit5 продолжают работать. Чтобы перейти на JUnit 6, замените классификатор
на junit6; импорты менять не нужно — классы расширений остались в пакете io.openbpm.bpm.engine.test.junit5.
Spring Boot
Стартеры OpenBPM Engine 2.0 требуют Spring Boot 4.0. Приложение на Spring Boot 3 с ними не запустится.
-
Поднимите версию Spring Boot до 4.0.8: плагин
org.springframework.bootв Gradle илиspring-boot-starter-parentв Maven. Плагинio.spring.dependency-managementобновите до 1.1.7. -
Обновите систему сборки: Spring Boot 4 требует Gradle 8.14 или новее, Maven — 3.6.3 или новее.
./gradlew wrapper --gradle-version 9.5.1 -
Замените версию стартеров OpenBPM Engine:
implementation "io.openbpm.bpm.springboot:openbpm-engine-bpm-spring-boot-starter:2.0.0-ee" implementation "io.openbpm.bpm.springboot:openbpm-engine-bpm-spring-boot-starter-rest:2.0.0-ee" implementation "io.openbpm.bpm.springboot:openbpm-engine-bpm-spring-boot-starter-webapp:2.0.0-ee" implementation "io.openbpm.spin:openbpm-engine-spin-dataformat-all:2.0.0-ee" -
Адаптируйте приложение к Spring Boot 4: переименованные стартеры, Jackson 3,
@MockitoBean, Spring Security 7. Типичные правки перечислены в разделе Общие замечания по миграции на Spring Boot 4. Свойстваopenbpm.bpm.*не менялись. -
Соберите и запустите приложение. Признаки успешного старта: в логе есть строка
ENGINE-14014 Starting up the JobExecutor, запросGET /engine-rest/process-definitionвозвращает задеплоенные процессы, веб-приложения открываются по прежнему адресу/openbpm-engine/app/.
При файловой H2 (jdbc:h2:file:…) во время остановки приложения может появиться
ENGINE-18001 Could not collect and log metrics: база закрывается вместе с JVM раньше, чем движок записывает
метрики. Добавьте к URL параметр ;DB_CLOSE_ON_EXIT=FALSE.
OpenBPM Engine Run
-
Распакуйте дистрибутив 2.0 рядом с текущей установкой.
-
Скопируйте в него
configuration/default.ymlиconfiguration/production.ymlиз текущей установки — свойстваopenbpm.bpm.*не менялись. -
Если в профиле
productionиспользовался SSL, задайте параметрыserver.ssl.*явно: в 2.0 он по умолчанию выключен. -
Плагины и библиотеки из
configuration/userlibпересоберите под Spring Boot 4 и Jakarta EE 11. -
Остановите старую установку и запустите новую.
Tomcat
Дистрибутив 2.0 основан на Tomcat 11.0.25. В 1.1 тоже использовался Tomcat 11, менять версию контейнера не нужно.
-
Установите дистрибутив 2.0 (Установка готового дистрибутива). При ручной установке по Установка полного дистрибутива на сервер приложений Tomcat вручную сверьте набор библиотек в
$CATALINA_HOME/libс дистрибутивом: в 2.0 изменились зависимости REST-слоя. -
Удалите из
$CATALINA_HOME/libJAR-файлыopenbpm-engine-*предыдущей версии. -
Пересоберите Process Applications (WAR) с зависимостями 2.0. Если в WAR входит
weld-servlet-shaded, нужна версия 6.0.4.Final или новее.
Файл bpm-platform.xml менять не требуется.
Quarkus
Расширение 2.0 собрано под Quarkus 3.33 LTS; в 1.1 использовался Quarkus 3.30.
-
Обновите
quarkus.platform.versionдо 3.33.x по руководствам по миграции Quarkus. -
Обновите версию
io.openbpm.bpm.quarkus:openbpm-engine-bpm-quarkus-engineдо2.0.0-ee.