本书旨在深入学习Activiti的内部处理机制。由浅入深、由易到难地对Activiti源码展开了系统的讲解和扩展,并对框架中的部分缺陷进行修正,从而使读者可以更加灵活的运用和改造Activiti。
本书内容包括流程引擎配置类以及流程引擎类的内部实现机制、配置器的使用、流程引擎的管理、流程资源的部署以及内部实现机制、元素解析底层实现、自定义元素解析实战、为任意节点无限扩展属性、流程虚拟机的创建以及运行原理、原子类职责、事件转发器、日志监听器以及日志清洗器使用、修复Activiti部分Bug、自定义部署器实战、对象解析器原理、监听器的原理、事务、活动行为类以及活动行为工厂类、会话缓存的构造过程以及缺陷、自定义高并发id生成器、自定义变量类型、节点跳转、会签、加签、退签、会签节点自定义权重实现、接管Activiti映射文件、扩展任务节点处理人多维度配置、自定义代办SQL、接管Activiti实体管理类等。
本书难度为初级到高级、适用于所有开发人员、设计人员、Activiti爱好者、即将成为架构师或者已经是架构师的朋友、也可以作为高校学生深入学习Activiti的参考读物。
第1章环境搭建
1.1环境搭建
1.1.1安装GitHub
1.1.2安装Maven
1.2编译源码
1.3源码目录说明
1.4安装流程设计器
1.5工程搭建
第2章探险流程引擎
2.1流程配置文件
2.1.1Activiti配置风格
2.1.2Spring配置风格
2.2流程引擎架构
2.3构造流程引擎实例对象
2.3.1初始化流程引擎之Activiti配置风格
2.3.2构造流程引擎实例对象
2.3.3创建流程引擎配置类实例
2.3.4初始化流程引擎
2.3.5初始化流程引擎之Spring配置风格
2.4初始化流程引擎配置类
2.5配置器
2.5.1初始化配置器
2.5.2配置器实战
2.6初始化流程引擎
2.6.1操作引擎表
2.7管理流程引擎
2.7.1注册流程引擎
2.7.2关闭流程引擎
2.8流程引擎生命周期监听器
2.9其他方式构造引擎实例
2.9.1ProcessEngineConfiguration类创建引擎
2.9.2编程方式创建引擎
第3章初识流程资源部署
3.1流程资源概述
3.1.1流程文档部署生命周期
3.1.2DeploymentBuilder核心类
3.2流程文档部署
3.2.1定义流程文档
3.2.2文本方式部署
3.2.3classpath资源部署
3.2.4流式部署
3.3BpmnModel方式部署
3.4校验BpmnModel实例对象
3.5BpmnModel转换流程文档
3.6流程文档转换BpmnModel
3.7使用建议
第4章流程文档解析原理
4.1文档解析基础
4.1.1文档解析模型
4.1.2Activiti文档解析技术选型演变
4.1.3文档解析实战
4.2元素解析功能架构设计
4.2.1BPMN2.0元素概述
4.2.2元素解析功能架构设计
4.2.3开闭原则
4.2.4元素与元素属性承载类以及元素解析器的对应关系
4.2.5元素属性承载类架构
4.3元素解析环境准备
4.3.1文档转换器
4.3.2封装流程文档数据流
4.3.3初始化元素解析器
4.3.4文档转换器功能
4.3.5元素解析环境准备
4.3.6验证流程文档格式
4.4元素解析
4.4.1元素解析入口
4.4.2解析根元素
4.4.3流程内元素解析入口
4.4.4解析连线
4.4.5获取元素坐标
4.5子元素解析
4.5.1初始化子元素解析器
4.5.2解析子元素
4.5.3解析扩展元素
4.6节点与连线关联
第5章自定义元素解析
5.1自定义元素解析原理
5.2存储自定义元素属性值
5.3自定义元素实战
5.4扩展黑名单元素
5.4.1扩展元素属性原理
5.4.2任务节点扩展属性实战
5.5扩展非黑名单元素
5.5.1自定义元素解析器
5.5.2替换引擎元素解析器
第6章事件转发器
6.1初始化事件转发器
6.2事件转发器架构
6.3注册事件监听器
6.4事件转发功能之新老版本兼容
6.5事件转发原理以及缺陷
6.6添加事件监听器
6.6.1使用配置方式添加
6.6.2动态添加
6.7日志监听器
6.7.1初始化日志监听器
6.7.2初始化日志处理器
6.7.3日志处理器架构
6.7.4收集日志数据入口
6.8日志清洗器架构
68.1数据库日志清洗器
6.8.2生成日志数据
6.8.3日志存储
6.9自定义日志清洗器
第7章流程文档部署原理
7.1初始化部署器
7.1.1初始化内置部署器
7.1.2部署器依赖关系
7.2部署命令
7.2.1过滤重复文档
7.2.2设置标识位
7.2.3添加会话缓存
7.2.4部署管理器
7.3Bpmn部署器
7.3.1获取资源信息
7.3.2封装资源信息
7.3.3校验资源名称
7.3.4计算流程定义版本值
7.3.5生成流程定义id值
7.3.6移除过期作业
7.3.7添加作业
7.3.8处理消息
7.3.9处理信号
7.3.10设置流程启动人
7.4自定义部署器实战
第8章缓存
8.1背景
8.2初始化缓存策略
8.3部署管理器
8.4缓存处理类架构
8.5默认缓存处理类及Bug
8.6流程定义缓存
8.6.1自定义缓存处理类
8.6.2验证自定义缓存处理类
8.7Activiti新特性之节点缓存
8.8节点缓存实战
8.9节点缓存原理
8.9.1初始化节点缓存数据
8.9.2更新节点缓存
8.9.3节点缓存架构
8.9.4节点缓存使用误区
8.10自定义节点缓存实战
8.10.1自定义节点缓存类
8.10.2修复Activiti节点缓存不更新Bug
8.10.3扩展引擎配置类功能
8.10.4配置器高级用
8.10.5使用自定义节点缓存类
8.11任务节点缓存数据获取原理
8.11.1获取任务节点缓存数据
8.11.2解析任务节点缓存数据
8.11.3运用任务节点缓存数据
8.12动态修改任务节点缓存数据
8.3节点缓存使用技巧
第9章定时作业
9.1初始化作业执行器
9.2初始化作业处理器
9.2.1任务超时作业
9.2.2定时任务作业
9.2.3定时启动流程实例作业
9.2.4其他作业
9.3作业执行器原理
9.3.1初始化作业执行器
9.3.2启动作业执行器
9.4添加定时作业
9.5执行定时作业
9.6处理作业
9.6.1批量处理作业
9.6.2执行作业之异常处理
9.7关闭作业执行器
9.8自定义作业处理器
第10章流程虚拟机
10.1流程虚拟机原理
10.2虚拟机入口
10.3流程定义转换准备
10.3.1初始化对象解析器集合
10.3.2初始化内置对象解析器
10.3.3解析调度类BpmnParseHandlers
10.3.4BpmnParseHandler架构
10.3.5对象解析器架构
10.4流程对象解析入口
10.5流程子元素对象解析入口
10.5.1任务节点对象解析
10.5.2创建ActivityImpl实例对象
10.5.3多实例对象解析
10.5.4连线对象解析
10.6PvmProcessElement类架构
10.7自定义对象解析器
10.7.1任务节点扩展属性
10.7.2自定义任务节点对象解析器
10.7.3获取自定义属性
10.7.4运用自定义对象解析器
10.8流程虚拟机实战
10.8.1获取流程虚拟机对象
10.8.2入侵流程虚拟机
10.9操作连线表达式
10.9.1自动计算连线表达式
10.9.2获取连线表达
第11章监听器原理
11.1监听器生命周期
11.2内置记录监听器
11.2.1内置任务记录监听器
11.2.2内置执行记录监听器
11.3历史解析器架构
11.3.1添加内置记录监听器
11.3.2初始化历史解析器
11.3.3历史节点结束通知
11.3.4控制归档历史数据级别
11.3.5更新历史数据
11.3.6历史节点开始通知
11.4注入执行监听器