第 68 章 与 Java 框架集成
您可以将流程引擎与多个行业标准 Java 框架(如 Apache Maven、CDI、Spring 和 EJB)集成。
68.1. 与 Apache Maven 集成 复制链接链接已复制到粘贴板!
进程引擎将 Maven 用于两个主要目的:
- 要创建 KJAR 工件,它们是进程引擎可安装到用于执行的运行时环境的部署单元
- 管理用于构建嵌入进程引擎的应用程序的依赖关系
68.1.1. Maven 工件作为部署单元 复制链接链接已复制到粘贴板!
进程引擎提供了一种机制,可从 Apache Maven 工件部署进程。这些工件采用 JAR 文件格式,称为 KJAR 文件,或者通知 KJARs。KJAR 文件包括定义 KIE 基础和 KIE 会话的描述符。它还包含业务资产,包括流程定义,流程引擎可加载到 KIE 基础中。
KJAR 文件描述符由名为 kie-deployment-descriptor.xml 的 XML 文件表示。描述符可以为空,在这种情况下,会应用默认配置。它还可以为 KIE 基本和 KIE 会话提供自定义配置。
空 kie-deployment-descriptor.xml 描述符。
带有一个空的 kie-deployment-descriptor.xml 描述符,会应用以下默认配置:
创建一个默认的 KIE 基础,其特征如下:
- 它包含 KJAR 文件中所有软件包的所有资产
-
其事件处理模式被设置为
云 -
它的 equivalenthaviour 设置为
identity - 它声明性声明性声明已被禁用
-
对于 CDI 应用,其范围设置为
ApplicationScope
创建单一默认的无状态 KIE 会话,特征如下:
- 它绑定到单个 KIE 基础
-
其时钟类型设置为
实时 -
对于 CDI 应用,其范围设置为
ApplicationScope
创建单一默认有状态 KIE 会话,特征如下:
- 它绑定到单个 KIE 基础
-
其时钟类型设置为
实时 -
对于 CDI 应用,其范围设置为
ApplicationScope
如果您不想使用默认值,可以使用 kie-deployment-descriptor.xml 文件更改所有配置设置。您可以在 XSD schema 中找到此文件的所有元素的完整规格。
以下示例显示了配置运行时引擎的自定义 kie-deployment-descriptor.xml 文件。这个示例配置最常见的选项,并包含一个工作项目处理程序。您还可以使用 kie-deployment-descriptor.xml 文件来配置其他选项。
自定义 kie-deployment-descriptor.xml 文件示例
如果使用 RuntimeManager 类,则此类创建 KieSession 实例,而不是 KieContainer 类。但是,kie-deployment-descriptor.xml 模型始终用作构造过程的基础。KieContainer 类始终创建 KieBase 实例。
您可以使用 GAV(组、工件、版本)值引用 KJAR 工件,如任何其他 Maven 工件。当从 KJAR 文件部署单元时,进程引擎使用 GAV 值作为 KIE API 中的发行 ID。您可以使用 GAV 值将 KJAR 工件部署到运行时环境中,例如:KIE 服务器。
68.1.2. 使用 Maven 管理依赖项 复制链接链接已复制到粘贴板!
构建嵌入进程引擎的项目时,请使用 Apache Maven 配置进程引擎所需的所有依赖项。
进程引擎提供一组 BOMs(资料的 Bills)来简化声明工件依赖项。
使用项目的顶级 pom.xml 文件来定义用于嵌入进程引擎的依赖关系管理,如下例所示。示例包括主要的运行时依赖项,这些依赖项适用于应用程序是否在 servlet 容器中部署或作为独立应用。
这个示例还包括应用程序使用进程引擎的应用程序的版本属性。根据需要调整组件和版本列表。您可以查看产品团队 在 Github 存储库中的父 pom.xml 文件中 测试的第三方依赖项版本。
用于嵌入进程引擎的 Maven 依赖项管理设置
在使用进程引擎 Java API(KIE API)的模块中,声明所需的进程引擎依赖项和模块所需的其他组件,如下例所示:
使用 KIE API 的模块的依赖项
如果您的应用程序使用持久性和事务,您必须添加实施 JTA 和 JPA 框架的工件。在实际部署前测试工作流组件需要其他依赖项。
以下示例定义了包括 JPA 的 Hibernate、用于持久性的 H2 数据库、JTA 的 Narayana 以及测试所需的组件的依赖项。这个示例使用 test 范围。根据您的应用程序需要调整这个示例。对于生产环境,请删除 测试 范围。
进程引擎的测试模块依赖项示例
使用这个配置,您可以在应用程序中嵌入进程引擎,并使用 KIE API 与进程、规则和事件交互。
Maven 存储库
要使用 Red Hat 产品版本的 Maven 依赖项,您必须在顶层 pom.xml 文件中配置 Red Hat JBoss Enterprise Maven 存储库。有关此软件仓库的详情,请查看 JBoss Enterprise Maven Repository。
或者,从红帽客户门户网站的软件下载页面下载 rhpam-7.13.5-maven-repository.zip 产品交付的文件,并将此文件的内容作为本地 Maven 存储库提供。https://access.redhat.com/jbossnetwork/restricted/listSoftware.html?downloadType=distributions&product=rhpam&productChanged=yes