1、jBPM的安装(以4.3为例)
1)制定好jar包-----创建一个jar包库
2)在eclipse中安装JBPM插件,插件名GPD(graphical process designer)即可视化的流程设计器
3)引入GPD XML文件对应的schema
2、JBPM的流程会存到数据库中,底层的数据库随意指定,它的底层使用的是hibernate来完成与数据库的交互。
3、JBPM在eclipse中的插件为:\jbpm\jbpm-4.3\install\src\gpd\jbpm-gpd-site.zip
4、安装插件时,需要先断开网络,否则可能安装不了。
5、jpdl(process definition language)流程定义语言,XML格式。
6、门面模式:facade,系统拥有多个子系统,同时只向外公开了获取这些子系统的一个对象,外界需要通过该对象访问系统中的任意一个子系统。
7、部署到仓库中的每一个资源称作流程定义(processdefinition),流程定义类似于class的概念。
8、创建一个简单demo
package com.shengsiyuan.jbpm;
import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
public class JbpmTest1 {
public static void main(String[] args) {
Configuration configuation = new Configuration();
ProcessEngine processEngine = configuation.buildProcessEngine();
}
}
9、根据API解读:在创建一个Configuration 对象后,紧接着由它创建一个ProcessEngine 对象,这个ProcessEngine 对象是整个JBPM的核心,是所有工作流引擎API交互的中心起始点,它是一个线程安全的对象,因此可以保存在一个静态成员变量中,或是JNDI;所有线程都能获取一个相同的流程引擎对象。
10、buildProcessEngine:在用其他方法指定万Configuration 对象资源之后,ProcessEngine 就会被创建。
11、对外提供的service
①executionservice
②historyservice
③identityservice
④managementservice
⑤repositoryservice
12、部署流程示例
`import org.jbpm.api.Configuration;
import org.jbpm.api.NewDeployment;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.RepositoryService;
public class JbpmTest2 {
public static void main(String[] args) {
/*
* jbpm部署流程步骤:
* 1、获取configuration对象
* 2、通过configuration对象获取processengine流程引擎对象
* 3、通过processengine获取不同的服务对象,这里是repositoryService
* 4、通过repositoryService创建一个newDeployment,并将资源加进去
* 5、通过调用deploy()实现部署。
*/
Configuration configuration = new Configuration();
ProcessEngine processEngine = configuration.buildProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
NewDeployment newDeployment = repositoryService.createDeployment().addResourceFromClasspath("myFirstProcess.jpdl.xml");
newDeployment.deploy();
}
}
API解读:
NewDeployment createDeployment()
repositoryService 的方法createDeployment(),在调用deploy()方法后,才能部署到资源仓库即数据库里。
而deploy方法则是:在增加资源后,部署才会真正执行。