收藏 分销(赏)

自己整理JBPM4源代码分析.doc

上传人:xrp****65 文档编号:7693031 上传时间:2025-01-12 格式:DOC 页数:25 大小:205.50KB 下载积分:10 金币
下载 相关 举报
自己整理JBPM4源代码分析.doc_第1页
第1页 / 共25页
自己整理JBPM4源代码分析.doc_第2页
第2页 / 共25页


点击查看更多>>
资源描述
JBPM4 PVM源代码分析 1. org.jbpm.pvm.internal.ant:提供使用ant发布流程,辅助启动jboss的任务。 1) AntHelper.java: 方法: getProcessEngine,得到流程引擎。 2) JbpmDeployTask.java: 方法: execute,Jbpm部署任务。 deployFile,部署文件。 addFileset,添加文件。 3) Launcher.java 描述:发布者 4) StartJBossTask.java 描述:开始JBOSS任务 2. org.jbpm.pvm.internal.builder:用来构造各种模型,包括活动,活动行为,事件,事件处理器,流程定义,变量,任务,等等。 1) ActivityBehaviourBuilder.java 描述:活动行为创建者 2) ActivityBuilder.java 描述:活动创建者 方法: Initial,初始化。 setProcessDefinitionInitial,设定流程定义初始化。 startBehaviour,开始行为。 endActivity,结束活动。 startFlow,开始流程。 endProcess,结束过程。 Transition,流程活动转向。 asyncExecute,并行执行。 addUnresolvedFlow,添加未解决的流程。 3) CompositeBuilder.java 描述:综合创建 方法: createActivity,建立活动。 createEvent,建立事件。 Variable,流程变量。 startTimer,开始定时器 startVariable,开始流程变量。 startActivity,开始活动。 startEvent,开始事件。 startExceptionHandler,开始例外操作者 endActivity,结束活动。 4) CompositeExceptionHandlerBuilder.java 描述:综合例外操作者创建者 方法: Listener,监听。 endExceptionHandler,结束例外操作者 5) EventBuilder.java 描述:事件创建者 方法: Listener,监听。 startExceptionHandler,开始例外操作者。 endEvent,结束监听。 6) EventExceptionHandlerBuilder.java 描述:事件例外操作者建造者 方法: Listener,监听。 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,开始过程。 endProcess,结束过程。 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配置 方法: buildProcessEngine,建立流程引擎。 openEnvironment,打开环境。 5. org.jbpm.api.client:这部分包含ClientExecution, ClientProcessDefinition, ClientProcessInstance。ClientExecution继承了OpenExecution,声明了end(), signal(), suspend(), resume()之类的方法。ClientProcessDefintion继承了OpenProcessDefintion,其中的功能主要是createProcessInstance和startProcessInstance。 1) ClientExecution.java 描述:客户执行 方法: End,结束。 Signal,信号。 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.model:这个模型包中包含了很多很多类,包括Activity, CompositeElement, Condition, ObservableElement, OpenProcessDefinitionTransition。简单分类一下。最底层的是ObservableElement,它是可以被事件监听的元素,并且可以继承,CompositeElement继承了 ObservableElement,它里面可以装填多个活动。再加上Event中定义了多个事件,这些就构成了最基本的事件模型。Activity和ActivityCoordinates分别定义了活动类和活动位置。以这些为基础,OpenProcessDefinition继承了ProcessDefinition和CompositeElement。最终,我们还有一个Condition类,它只有一个evaluate方法,接受OpenExecution作为参数返回boolean值,Condition和Activity组合成了Transition,这个转移包含了起点,终点,以及条件判断。最庞大的模型部分,活动,转移,流程定义,流程实例的实现类都放在这里。在它的op子包中包含的是流程进行中的各项操作。 1) Activity.java 描述:活动(接口) 2) ActivityCoordinatesImpl.java 描述:活动坐标实现 3) ActivityImpl.java 描述:活动实现类(实现Activity接口) 方法: addActivity,添加活动 findActivity,找到活动 createOutgoingTransition,建立离去过程 removeOutgoingTransition,移除离去过程 getOutgoingTransition,得到离去的过程 findOutgoingTransition,找到离去的过程 findDefaultTransition,找到默认的过程 addIncomingTransition,添加进来的过程 removeIncomingTransition,移除进来的过程 getIncomingTransitions,得到进来的过程 setBehaviour,写入行为 4) CompositeElement.java 描述:综合要素(接口) 5) CompositeElementImpl.java 描述:综合要素实现(实现CompositeElement接口) 方法: createActivity,建立活动 addActivity,添加活动 removeActivity,移除活动 getActivity,得到活动 findActivity,找到活动 getActivities,得到活动集合 getActivitiesMap,得到活动MAP 6) Condition.java 描述:状态(接口) 7) Continuation.java 描述:继续 8) DefaultIdGenerator.java 描述:默认ID发生器 9) EventImpl.java 描述:事件实现类 方法: createEventListenerReference,建立事件监听者参考资料 10) EventListenerReference.java 描述:建立事件监听者 11) ExceptionHandlerImpl.java 描述:例外操作者 方法: getEventListeners,找到事件监听者 executeHandler,决定操作者 12) ExceptionHandlerSynchronization.java 方法: afterCompletion,在完成以后 13) ExecutionImpl.java 描述:执行实现类 方法: initializeProcessInstance,初始化流程事例 start,开始 initializeScopes,初始化范围 createScope,创建范围 destroyScope,销毁范围 destroyTimers,销毁定时器 end,结束 signal,信号 takeDefaultTransition,默认的任务转向 take,接受 proceed,继续 setActivity,写入活动 findEvent,找到事件 startActivity,开始活动 endActivity,结束活动 performAtomicOperation,根据形式运作 sendContinuationMessage,继续发出消息 performAtomicOperationSync,履行运作同时发生 handleException,处理例外 initializeAssignments,初始化任务 resolveAssignmentExpression,解决任务表达 createExecution,建立执行 getExecution,得到执行 removeExecution,移除执行 findActiveActivityNames,找出活动名称 findActiveExecutionIn,找出活动执行 createSystemVariable,建立系统变量 setSystemVariable,写入系统变量 getSystemVariable,得到系统变量 removeSystemVariable,移除系统变量 createSubProcessInstance,建立预定流程事例 startSubProcessInstance,开始预定流程事例 14) ExecutionKeyGenerator.java 描述:执行重要引擎(接口) 15) ExpressionEvaluator.java 16) IdGenerator.java 17) ObjectReference.java 描述:对象参考资料 方法: constructFromDescriptor,从描述建造物 resolveValueExpression,决定值表达 resolveMethodExpression,决定方法表达 18) ObservableElement.java 19) ObservableElementImpl.java 描述:实现ObservableElement接口类 方法: getEvent,得到事件 createEvent,建立事件 addEvent,添加事件 20) OpenProcessDefinition.java 描述:打开流程定义 21) ProcessDefinitionImpl.java 描述:流程定义实现类 方法: createProcessInstance,建立流程事例 startProcessInstance,开始流程事例 addTaskDefinitionImpl,添加任务定义实现 getTaskDefinition,得到任务定义 getDeploymentId,得到部署ID 22) ProcessElementImpl.java 描述:流程元素实现类 方法: createExceptionHandler,建立例外操作者 addExceptionHandler,添加例外操作者 addProperty,添加性质 getProperty,得到性质 getPropertyKeys,得到性质KEY 23) ProcessModificationsImpl.java 描述:流程修改 24) ScopeElementImpl.java 描述:范围元素 方法: getVariableDefinitions,得到变量定义 createVariableDefinition,建立变量定义 hasTimerDefinitions,有定时器定义 getTimerDefinitions,得到定时器定义 createTimerDefinition,建立定时器定义 25) ScopeInstanceImpl.java 描述:范围事例实现类 方法: initializeVariables,初始化变量 createVariable,建立变量 createVariableObject,建立变量对象 setVariable,写入变量 getVariable,得到变量 getVariableObject,得到变量对象 getVariableKeys,得到变量KEY removeVariable,移除变量 createTimer,建立定时器 initializeTimers,初始化定时器 destroyTimers,销毁定时器 26) TimerDefinitionImpl.java 描述:定时器定义实现 27) Transition.java 28) TransitionImpl.java 描述:实现Transition.java接口 方法: createEvent,建立事件 getCondition,得到状态 getWaitCondition,得到等待状态 getSource,得到来源 29) VariableDefinitionImpl.java 描述:变量定义实现 方法: getInitValue,得到初始化值 30) VariableOutDefinitionImpl.java 31) VariableOutDefinitionSet.java 32) WireProperties.java 17. org.jbpm.pvm.internal.query:是History, Job, ProcessDefintion, ProcessInstance这四个query类的实现,还提供了一个Page类,但是其中只有firstResult和maxResults。 1) AbstractQuery.java 描述:查询 方法: untypedList,类型集合 untypedUniqueResult,类型唯一结果 appendWhereClause,附加 appendOrderByClause,按照条款添加订购 applyPage,应用页 addOrderByClause,按照条款添加订购 setCommandService,写入命令服务 2) AvgDurationPerActivityQueryCmd.java 3) ChoiceDistributionQueryCmd.java 4) DeploymentQueryImpl.java 描述:部署查询实现类实现 5) HistoryActivityInstanceQueryImpl.java 描述:历史活动事例查询实现 6) HistoryProcessInstanceQueryImpl.java 描述:历史过程事例查询实现 7) HistoryTaskQueryImpl.java 描述:历史任务查询实现 8) JobQueryImpl.java 描述:工作查询实现 9) Page.java 10) ProcessDefinitionQueryImpl.java 描述:流程定义查询实现 11) ProcessInstanceQueryImpl.java 描述:流程事例查询实现 12) TaskQueryImpl.java 描述:任务查询实现 18. org.jbpm.pvm.internal.repository:负责的是流程的发布,主要有Deployment和Repository对应的service, session和cache,这里使用的缓存,所以每次使用流程定义的时候可以利用缓存提高效率。 1) Deployer.java 描述
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服