Интеграция CDI и Java EE

Этот раздел перенесён из документации Camunda 7 и в дальнейшем будет доработан с учётом особенностей OpenBPM Engine

Модули openbpm-engine-cdi и openbpm-engine-cdi-jakarta обеспечивают интеграцию модели программирования с CDI (Context and Dependency Injection). CDI является стандартом Jakarta EE/Java EE для внедрения зависимостей. Интеграция OpenBPM Engine с CDI использует как возможности конфигурации OpenBPM Engine, так и расширяемость CDI. Наиболее заметные возможности:

  • пользовательский EL resolver для разрешения CDI-бинов (включая EJB) из процесса;

  • поддержка бинов @BusinessProcessScoped (CDI-бинов, жизненный цикл которых привязан к экземпляру процесса);

  • декларативное управление экземпляром процесса с помощью аннотаций;

  • подключение процессного движка к шине событий CDI;

  • работа с Jakarta EE, Java EE и Java SE;

  • поддержка модульного тестирования.

РАСШИРЕНИЕ ДВИЖКА ДЛЯ QUARKUS: Поскольку Quarkus ArC не ставит целью полную реализацию CDI 2.0, вы не сможете использовать весь набор возможностей, предоставляемых модулем openbpm-engine-cdi. Ограничения описаны в руководстве по интеграции с Quarkus.

Зависимость Maven

Чтобы использовать модуль openbpm-engine-cdi внутри приложения, необходимо добавить следующую зависимость Maven:

Импортируйте OpenBPM Engine BOM /get-started/apache-maven/, чтобы гарантировать корректные версии для каждого проекта OpenBPM Engine.

<dependency>
  <groupId>io.openbpm.bpm</groupId>
  <artifactId>openbpm-engine-cdi</artifactId>
</dependency>

Для контейнеров Jakarta EE 9+ используйте вместо этого следующую зависимость:

<dependency>
  <groupId>io.openbpm.bpm</groupId>
  <artifactId>openbpm-engine-cdi-jakarta</artifactId>
</dependency>

Существует шаблон проекта Maven с именем camunda-archetype-ejb-war, который предоставляет полностью готовый к запуску проект, включая CDI-интеграцию.

Лицензия и атрибуция

Эта документация была создана на базе материала "Camunda 7 Docs" от Camunda, находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .

Оригинал документации: https://docs.camunda.org