jbpm Hello World 示例

本文介绍了一个简单的流程定义示例——Hello World流程,该流程包含三个节点:开始状态、状态“s”和结束状态“end”。通过Java代码演示了如何创建并执行这一流程定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个流程定义就是一个有向图,它由节点和转换组成。Hello world流程有三个节点,下面来看一下它们是怎样组装在一起的,我们以一个简单的流程作为开始,不用使用设计器工具,下图展示了hello world流程的图形化表示:


public void testHelloWorldProcess() {

 // 这个方法展示了一个流程定义以及流程定义的执行。

 // 这个流程定义有3个节点:一个没有命名的开始状态,

 // 一个状态“s”,和一个名称为“end”的结束状态。

 // 下面这行是解析一段xml文本到ProcessDefinition对象(流程定义)。

 // ProcessDefinition把一个流程的规格化描述表现为java对象。

 ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(

    "<process-definition>" +

    " <start-state>" +

    "    <transition to='s' />" +

    " </start-state>" +

    " <state name='s'>" +

    "    <transition to='end' />" +

    " </state>" +

    " <end-state name='end' />" +

    "</process-definition>"

 );

 

 // 下面这行是创建一个流程定义的执行。创建后,流程执行有一个

 // 主执行路径(=根令牌),它定位在开始状态。

 ProcessInstance processInstance = 

      new ProcessInstance(processDefinition);

 

 // 创建后,流程执行有一个主执行路径(=根令牌)。

 Token token = processInstance.getRootToken();

 

 // 创建后,主执行路径被定位在流程定义的开始状态。

 assertSame(processDefinition.getStartState(), token.getNode());

 

 // 让我们开始流程执行,通过它的默认转换离开开始状态。

 token.signal();

 // signal方法将会把流程阻塞在一个等待状态。

 

 // 流程执行进入第一个等待状态“s”,因此主执行路径现在定位

 // 在状态“s” 

 assertSame(processDefinition.getNode("s"), token.getNode());

 

 // 让我们发送另外一个信号,这将通过使用状态“s”的默认转换 

 // 离开状态“s”,恢复流程执行。

 token.signal();

 // 现在signal方法将返回,因为流程示例已经到达结束状态。 

 assertSame(processDefinition.getNode("end"), token.getNode());

}


2017年jBPM 正式发布了全新的 7版本。jBPM 是一个完全开源的业务流程管理(BPM)和案例管理解决方案。它支持流程和案例的完整生命周期,从编写工具到执行一直到监控和管理。 在核心引擎之上,提供了许多功能和工具来支持整个生命周期中的业务流程: 基于Eclipse和基于Web的编辑器,用于支持业务流程的图形化创建(拖放)。 基于JPA / JTA的可插拔持久性和事务。 基于WS-HumanTask的可插拔人工任务服务,用于包含需要由人类执行者执行的任务。 管理控制台支持流程实例管理,任务列表和任务表单管理以及报告。 部署流程的可选流程仓库(和其他相关知识)。 历史记录(用于查询/监视/分析)。 与Seam,Spring,OSGi等集成 BPM通过以业务用户和开发人员喜欢的方式提供流程管理功能和工具,从而实现业务分析师,开发人员和最终用户之间的桥梁。域特定的节点可以插入调色板,使业务用户更容易理解这些过程。 jBPM支持自适应和动态过程,需要灵活性来模拟复杂的现实生活中的情况,这些情况不能用刚性过程轻松描述。我们通过允许他们控制进程的哪些部分来执行,动态地偏离进程等,使控制回到终端用户。 jBPM也不仅仅是一个独立的流程引擎。复杂的业务逻辑可以被建模为业务流程与业务规则和复杂事件处理的组合。jBPM可以与Drools项目相结合,以支持将这些范例集成到一起的统一环境,您可以将业务逻辑作为过程,规则和事件的组合进行建模。 工作是MAVEN+eclipse jBPM jars也可以在中央maven仓库中使用 (也可以在JBoss maven仓库中)。 如果您使用Maven,只需添加一个依赖关系pom.xml: org.jbpm jbpm-test 7.3.0.Final 这与Gradle,Ivy和Buildr类似。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值