自己整理JBPM4源代码分析Word文档格式.docx
《自己整理JBPM4源代码分析Word文档格式.docx》由会员分享,可在线阅读,更多相关《自己整理JBPM4源代码分析Word文档格式.docx(34页珍藏版)》请在冰豆网上搜索。
![自己整理JBPM4源代码分析Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/24/e1463691-a2df-4e02-af37-db915cd6296b/e1463691-a2df-4e02-af37-db915cd6296b1.gif)
Listener,监听。
endExceptionHandler,结束例外操作者
5)EventBuilder.java
事件创建者
startExceptionHandler,开始例外操作者。
endEvent,结束监听。
6)EventExceptionHandlerBuilder.java
事件例外操作者建造者
endExceptionHandler,结束例外操作者。
7)ExceptionHandlerBuilder.java
CompositeExceptionHandlerBuilder.java,EventExceptionHandlerBuilder.java继承于这个类。
8)FlowBuilder.java
流程创建者
endFlow,结束流程。
9)ObservableBuilder.java
监听到创建者,FlowBuilder.java,EventBuilder.java,TimerBuilder.java继承于这个类。
10)ProcessDefinitionBuilder.java
过程定义创建者
startProcess,开始过程。
resolveFlows,决定流传。
11)TimerBuilder.java
定时器创建者
dueDate,适当时间。
Repeat,重复。
Retries,再试。
Signal,信号。
Decision,决定。
endTimer,结束定时器。
12)UnresolvedFlow.java
未解决的流程
13)VariableBuilder.java
变量创建者
initialValue,初始化值。
initialExpression,初始化表现。
endVariable,结束变量。
3.org.jbpm.pvm.internal.cal:
提供日历,包括日期,时间段,持续时间,节假日。
1)BusinessCalendar.java
日历
getInstance,得到实例。
findStartOfNextDay,找出下一次的开始。
createCalendar,新建日历。
findDay,找到时间。
findDayPart,找到时间段。
2)Day.java
日期
findNextDayPartStart,找到下一次时间段的开始。
3)DayPart.java
时间段
isStartAfter,在开始之后
getStartTime,得到开始时间。
4)Duration.java
持续时间
parsePart,解析语法部分。
5)Holiday.java
Includes,包含。
4.org.jbpm.pvm.internal.cfg:
JbpmConfiguration和SpringConfiguration实现了org.jbpm.api.Configuration,用来从配置文件构造ProcessEngine。
1)JbpmConfiguration.java
配置JBPM4
buildProcessEngine,建立流程引擎。
openEnvironment,打开环境。
addProcessEngineWireDefinition,添加过程引擎定义。
2)SpringConfiguration.java
spring配置
5.org.jbpm.api.client:
这部分包含ClientExecution,ClientProcessDefinition,ClientProcessInstance。
ClientExecution继承了OpenExecution,声明了end(),signal(),suspend(),resume()之类的方法。
ClientProcessDefintion继承了OpenProcessDefintion,其中的功能主要是createProcessInstance和startProcessInstance。
1)ClientExecution.java
客户执行
End,结束。
Suspend,挂起。
Resume,提要。
2)ClientProcessDefinition.java
客户流程定义
createProcessInstance,建立流程事例。
startProcessInstance,开始流程事例。
3)ClientProcessInstance.java
客户流程事例
Start,开始。
6.org.jbpm.pvm.internal.cmd:
包含Command和CommandService,这是命令设计模式的基础。
其中放着所有的命令,所有的流程操作都可以在这里找到。
1)AbstractCommand.java
抽象命令
2)AddParticipationCmd.java
添加参与命令
3)AddReplyCommentCmd.java
添加答复意见命令
4)AddTaskCommentCmd.java
添加任务意见命令
5)AssignTaskCmd.java
给任务分配命令
6)Command.java
命令
7)CommandException.java
命令例外
8)CommandService.java
命令服务
9)CompleteTaskCmd.java
完成任务命令
10)CompositeCmd.java
综合命令
11)CreateDeploymentQueryCmd.java
建立部署查询命令
12)CreateHistoryActivityInstanceQueryCmd.java
建立历史活动事例查询命令
13)CreateHistoryProcessInstanceQueryCmd.java
建立历史过程事例查询命令
14)CreateHistoryTaskQueryCmd.java
建立历史任务查询命令
15)CreateJobQueryCmd.java
建立工作查询命令
16)CreateProcessDefinitionQueryCmd.java
建立过程定义查询命令
17)CreateProcessInstanceQueryCmd.java
建立过程事例查询命令
18)CreateTaskQueryCmd.java
建立任务查询命令
19)DeleteCommentCmd.java
删除意见命令
20)DeleteDeploymentCmd.java
删除部署命令
21)DeleteProcessDefinitionCmd.java
删除流程定义命令
22)DeleteProcessInstance.java
删除流程事例
23)DeleteTaskCmd.java
删除任务命令
24)DeployCmd.java
部署命令
25)EndProcessInstance.java
结束流程事例
26)ExecuteJobCmd.java
执行工作命令
27)FindExecutionCmd.java
为执行找到命令
28)FindLatestProcessDefinitionByKeyCmd.java
按Key找出最后流程定义命令
29)FindProcessDefinitionByIdCmd.java
按ID找出流程定义命令
30)FindProcessDefinitionKeysCmd.java
找到流程定义KEY命令
31)FindProcessDefinitionsByKeyCmd.java
根据KEY找到流程定义命令
32)GetActivityCoordinatesCmd.java
得到节点坐标命令
33)GetExecutionVariableNamesCmd.java
得到执行变量名称命令
34)GetExecutionVariablesCmd.java
得到执行变量命令
35)GetOutcomes.java
得到结果
36)GetParticipantsCmd.java
得到参与者命令
37)GetResourceAsStreamCmd.java
得到作为流转的资源命令
38)GetStartActivityNamesCmd.java
得到开始活动的名称
39)GetStartFormResourceNameCmd.java
得到开始表单资源名称命令
40)GetSubTasksCmd.java
得到预定任务命令
41)GetTaskCmd.java
得到任务命令
42)GetTaskCommentsCmd.java
得到任务意见命令
43)GetTaskVariableNamesCmd.java
得到任务变量名称命令
44)GetTaskVariablesCmd.java
得到任务变量命令
45)NewTaskCmd.java
新任务命令
46)QueryCommand.java
查询命令
47)RemoveParticipantCmd.java
移除参与者命令
48)ResumeDeploymentCmd.java
重新部署命令
49)SaveTaskCmd.java
保存任务命令
50)SendMessageCmd.java
发送消息命令
51)SetExecutionVariablesCmd.java
写入执行变量命令
52)SetTaskVariablesCmd.java
写入任务变量命令
53)SignalCmd.java
信号命令
54)StartProcessInstanceCmd.java
开始流程事例命令
55)StartProcessInstanceInLatestCmd.java
使流程事例开始最后命令
56)SuspendDeploymentCmd.java
暂停部署命令
57)VariablesCmd.java
变量命令
7.org.jbpm.pvm.internal.email:
下面有两个子包impl和spi,只要注意spi下的AddressResolver,MailProducer和MailSession就可以实现自定义的实现了。
8.org.jbpm.pvm.internal.env:
包含Context,Environment,EnvironmentFactory,Transaction,WireObject。
其中Context,Environment和EnvironmentFactory组成了jBPM4里的IoC系统。
Transaction定义了通用事务。
WireObject用来做依赖绑定。
下面保存着环境有关的实现类。
包括Authentication权限认证,Environment与context相关的各个类。
1)Authentication.java
得到userId的证明为真用户
2)AuthenticationFilter.java
过滤器
3)BasicEnvironment.java
基本环境
4)Context.java
5)Environment.java
环境
6)EnvironmentDefaults.java
默认环境
7)EnvironmentFactory.java
环境工厂
8)ExecutionContext.java
执行上下文
9)JbpmConfigurationParser.java
JBPM4配置解析
10)JobContext.java
工作上下文
11)ProvidedAuthentication.java
12)PvmEnvironment.java
流程虚拟机环境
13)SpringContext.java
Spring上下文
14)TaskContext.java
任务上下文
15)Transaction.java
定义通用事务
16)WireObject.java
9.org.jbpm.pvm.internal.hibernate:
下面的类是专门与hibernate进行交互的类,包含类型转换,命名策略和最主要的DbSessionImpl,所有与数据库的操作都来源于此。
10.org.jbpm.pvm.internal.history:
下面是历史操作所需要的部分,其下还包含events和model包。
1)HistoryEvent.java
历史事件
2)HistorySession.java
3)HistorySessionChain.java
4)HistorySessionFilter.java
5)HistorySessionImpl.java
Events包下
1)ActivityEnd.java
活动结束
2)ActivityStart.java
活动开始
3)AutomaticEnd.java
自动结束
4)DecisionEnd.java
决策结束
5)ProcessInstanceCreate.java
建立流程事例
6)ProcessInstanceEnd.java
7)TaskActivityStart.java
任务活动开始
8)TaskAssign.java
任务分配
9)TaskComplete.java
任务完成
10)TaskCreated.java
任务建立
11)TaskDelete.java
任务删除
12)TaskUpdated.java
任务更新
13)VariableCreate.java
变量建立
14)VariableUpdate.java
变量更新
Model包下
1)HistoryActivityInstanceImpl.java
历史活动事例实现
2)HistoryAutomaticInstanceImpl.java
历史自动事例实现
3)HistoryCommentImpl.java
历史意见实现
4)HistoryDecisionInstanceImpl.java
历史决策事例实现
5)HistoryDetailImpl.java
历史任务详情实现
6)HistoryPriorityUpdateImpl.java
历史优先更新实现
7)HistoryProcessInstanceImpl.java
历史流程事例实现
8)HistoryTaskAssignmentImpl.java
历史任务分配实现
9)HistoryTaskDuedateUpdateImpl.java
历史任务优先更新实现
10)HistoryTaskImpl.java
历史任务实现
11)HistoryTaskInstanceImpl.java
历史任务事例实现
12)HistoryVariableImpl.java
历史任务变量实现
13)HistoryVariableUpdateImpl.java
历史变量更新实现
11.org.jbpm.pvm.internal.identity:
主要负责身份认证的操作。
包含三个子包cmd,impl和spi,cmd下定义所用到的命令,impl下是实现类,spi下放着IdentitySession。
Cmd包下
1)CreateGroupCmd.java
建立组命令
2)CreateMembershipCmd.java
建立成员资格命令
3)CreateUserCmd.java
建立用户命令
4)DeleteGroupCmd.java
删除组命令
5)DeleteMembershipCmd.java
删除成员资格命令
6)DeleteUserCmd.java
删除用户命令
7)FindGroupCmd.java
找到组命令
8)FindGroupsCmd.java
找到List组命令
9)FindUserCmd.java
找到用户命令
10)FindUsersCmd.java
找到List用户命令
Impl包下
1)GroupImpl.java
组实现
2)IdentitySessionImpl.java
用户身份相关实现
3)IdentitySessionResource.java
用户身份资源实现
4)JBossIdmIdentitySessionImpl.java
5)JbpmIdentityStore.java
6)MembershipImpl.java
成员资格实现
7)UserImpl.java
用户实现
Spi包下
1)IdentitySession.java
12.org.jbpm.pvm.internal.jms:
包括JmsMessageSession和JmsMessageUtil,应该是用来处理jms的,JmsMessageSession与org.jbpm.api.job.Message相关联。
说明job下的Message是依靠jms发送异步消息的。
13.org.jbpm.pvm.internal.job:
中提供了对job,message和timer的实现
1)CommandMessage.java
命令信息
2)JobImpl.java
工作实现
3)MessageImpl.java
消息实现
4)TimerImpl.java
定时器实现
14.org.jbpm.pvm.internal.jobexecutor:
提供了任务执行器,包括JobExecutorServlet和对应的线程池,以及一系列的命令和处理器。
无论是job,message或是timer,最终都会被这里执行。
1)AcquireJobsCmd.java
获得工作
2)DispatcherThread.java
发送者线程
putAcquiredJobDbidsOnQueue,获得工作列表。
acquireJobs,获得工作。
getWaitPeriod,得到等待时期。
Deactivate,撤消。
jobWasAdded,工作是被添加。
3)GetNextDueDateCmd.java
得到下一适当时期
4)JobAddedNotification.java
工作添加通知
5)JobExceptionHandler.java
工作例外操作者
6)JobExecutor.java
工作执行者
7)JobExecutorMessageSession.java
工作执行者信息Session
8)JobExecutorServlet.java
工作执行者Servlet
9)JobExecutorThread.java
工作执行者线程
10)JobExecutorThreadPool.java
工作执行者线程池
11)JobExecutorTimerSession.java
工作执行者定时器Session
Schedule,明细。
Cancel,取消。
findTimersByExecution,找到执行计时员。
12)JobHistoryEntry.java
工作历史入口
15.org.jbpm.pvm.internal.lob:
主要用来处理流程发布时的文件内容,需要把jpdl.xml文件和图片,甚至是以后可能把class文件都以附件形式保存到数据库中,以备后用。
16.org.jbpm.pvm.internal.m