第5章 部署
jBPM是一个嵌入式BPM引擎,这意味着你可以象安装一个独立的软件产品并集成一样把jBPM嵌入到你自己的java工程中,可以这样做的一个主要方面就是最小化的依赖,本章讨论jbpm库及其依赖。
5.1 Java运行环境
jBPM3要求J2SE1.4.2+
5.2 jBPM库
jbpm-[version].jar是核心功能库。
jbpm-identity-[version].jar是包含在“
11.11 身份组件”中描述的身份组件的库(可选的)。
5.3 第三方库
在一个最小化的部署中,你仅仅通过放置commons-logging和dom4j库到你的classpath,就可以使用jBPM创建和运行流程,但是这样不支持流程的持久化。如果你不使用流程的xml解析,可以移除dom4j库,改为编程创建对象图。
表格
5.
1
库
|
用途
|
描述
|
目录
|
commons-logging.jar
|
在
jBPM
和
hibernate
中记录日至。
|
jBPM
代码日志记录到
commons logging
,
commons logging
库可以被配置为分发日志到
java1.4
日志、
log4j
、
…
等等,有关怎样配置
commons logging
的更多信息请看
apache commons 用户指南
。如果你使用
log4j
,最简单的方式就是把
log4j
库和一个
log4j.properties
放置到
classpath
,
commons logging
将会自动检测并使用该配置。
|
lib/jboss(
从
jboss4.0.3)
|
Dom4j-1.6.1.jar
|
流程定义和
hibernate
持久化。
|
Xml
解析。
|
lib/dom4j
|
jBPM的典型部署中将包括流程定义和流程执行的持久化,在这种情况下,jBPM除了对hibernate及其所依赖库之外不再有任何其他依赖。
当然,hibernate所需要的库依赖于环境以及你将使用的特性,详细信息请查询hibernate文档。下表给出了一个普通POJO部署环境下的指示。
jBPM的发布使用hibernate3.1,但是它也可以使用3.0.x,如果那样的话,你不得不在hibernate.queries.hbm.xml配置文件中更新一些hibernate查询,有关自定义查询的更多信息,请看“
7.6自定义查询”。
表格
5.2
库
|
用途
|
描述
|
目录
|
hibernate3.jar
|
hibernate
持久化。
|
最好的
O/R
映射器。
|
lib/hibernate(hibernate3.1)
|
antlr-2.7.5H3.jar
|
由
hibernate
持久化的查询分析使用。
|
解析库。
|
lib/jboss(
从
jboss4.0.3)
|
cglib-2.1_2jboss.jar
|
hibernate
持久化。
|
hibernate
代理所使用的反射库。
|
lib/jboss(
从
jboss4.0.3)
|
Commons-collection.jar
|
hibernate
持久化。
|
|
lib/jboss(
从
jboss4.0.3)
|
ehcache-1.1.jar
|
hibernate
持久化(默认配置)。
|
二级缓存实现,当为
hibernate
配置不同的的缓存时,不需要本库。
|
lib/hibernate
|
jaxen-1.1-beta-4.jar
|
流程定义和
hiberante
持久化。
|
XPath
库(由
dom4j
使用)。
|
lib/hibernate
|
jdbc2_0-stdext.jar
|
hibernate
持久化。
|
|
lib/hibernate
|
asm.jar
|
hibernate
持久化。
|
asm
字节码库。
|
lib/hibernate
|
asm-attrs.jar
|
hibernate
持久化。
|
asm
字节码库。
|
lib/hibernate
|
beanshell库是可选的,如果你不包含它,你将不能把beanshell集成到jbpm流程语言中使用,并且你将会得到一个日志信息说“jbpm不能加载Script类,因此script元素不能使用”。
表格
5.3
库
|
用途
|
描述
|
目录
|
bsh-1.3.0.1.jar
|
beanshell
脚本解释程序。
|
只用在
script
和
decision
元素中,当你不使用这些流程元素时,可以移除
beanshell
库,但是必须在
hibernate.cfg.xml
文件中注释掉
Sceipt.hbm.xml
映射行。
|
lib/jboss
|