1.概述

JPAAS 微服务目前都是打成了一个个的JAR包,比如流程我们打成了一个 jpaas_bpm.jar ,有些情况下客户希望能够进行扩展开发,比如增加一个用户策略,增加一个通知类型,但是又不想把整个jpaas_bpm 代码开放给开发人员。

jpaas 实现了一种扩展方法,即将平台中的接口提供出来,并打成jar包。用户需要扩展的时候,自己创建一个jar项目,实现我们提供的接口,并打成jar包,这个jar 包,放到和 jpaas_bpm.jar 同级目录的 plugins 目录中这样就完成了扩展,下面就是具体的实现步骤。

2.打接口包

在JPAAAS-BPM项目中,我们需要将需要暴露的接口进行打包,这个包是客户开发扩展需要引用的JAR包。在项目中有一个build.xml文件,我们可以执行 buildInterfaceJar 打出一个接口包,之后将jar包上传到maven私服。

3.开发自定义扩展包

3.1 新建一个jar项目

因为我们需要对 项目进行接口扩展,因此,我们需要引入我们打的接口包。

在pom.xml文件增加接口包配置

        <dependency>
            <groupId>com.redxun</groupId>
            <artifactId>jpaas-bpm-interface</artifactId>
            <version>1.0</version>
        </dependency>

3.2. 定义需要扩展的实现类

在实现我们的接口后,还需要再 META-INF/services 目录下进行注册。

增加文件:

  1. 文件名为接口类全路径
  2. 内容为接口实现类全路径,多个换行

3.3. 配置接口类列表

因为我们需要不同的微服务应用中也可能使用插件化的开发模式,因此我们将加载插件包的代码做成了公共的包,放到了 jpaas-common-core 中。应用如果需要加载哪些接口的实现类,需要在nacos中创建 应用名-dev.properties 配置。

并在配置中添加:

plugin.interface,比如下图。

这样配置后,微服务应用启动时,程序会自动加载 plugins 目录下的jar包。然后读取这个 配置接口列表,去加载的jar包中,所有的接口实现类,并注册到 spring容器中。

3.4. 扩展程序打包


** 放入到jpaas-bpm.jar同级的plugins文件夹中,重新启动服务即可 **

4.接口列表

在jpaas-bpm 项目中,下面是我们可以扩展的接口列表,我们对每一个接口的扩展方法都写了实现的文档。

4.1.人员查询策略(ITaskExecutorCalc)

http://doc.redxun.cn/docs/jpaas/ITaskExecutorCalc

4.2.事件调用接口(IEventHandler)

http://doc.redxun.cn/docs/jpaas/IEventHandler

4.3.服务任务接口(IServiceTask)

http://doc.redxun.cn/docs/jpaas/IServiceTask

4.4.流程与任务处理器(ProcessHandler)

http://doc.redxun.cn/docs/jpaas/ProcessHandler

4.5.流程表单状态接口(IFormStatus)

http://doc.redxun.cn/docs/jpaas/IFormStatus

4.6.消息处理器接口(IMessageHandler)

http://doc.redxun.cn/docs/jpaas/IMessageHandler

4.7.流程跳过接口(ISkipCondition)

http://doc.redxun.cn/docs/jpaas/ISkipCondition

4.8.脚本函数接口(IScript)

http://doc.redxun.cn/docs/jpaas/IScript

4.9.处理任务服务(ITaskHandler)

http://doc.redxun.cn/docs/jpaas/ITaskHandler

4.10.时间计算处理器(ITimeLimitHandler)

http://doc.redxun.cn/docs/jpaas/ITimeLimitHandler

文档更新时间: 2022-01-20 14:54   作者:zyg