汗自己一个先。
一拖就拖到了09年,呵呵。最近再次拾起心思,开始“好好学习天天向上”。
前几天下载了JBPM4.0的Alpha1版本,看了一下文档和examples,发现较4.0之前的版本有很大的变化。曾在05年的时候,使用过jbpm3.0,当时整合的并不是很理想,但在项目中也发挥了巨大的作用。(使用过程中,发现只是用了其皮毛,并未真正深入下去。)
这次借着jbpm新版本的发布,重新跟进学习。计划先做一个请假流程的sample,然后考虑整合到现有的平台中。
行动了....【20090219】
JBPM4引入了一个重要的概念,就是流程虚拟机PVM(Process Virtual Machine)。可参见译文
http://snowfox2008.iteye.com/blog/332871
【20090220】
昨天想把JBP4的插件做一个修改,使之支持中文,结果下载到了源代码,却编译不出来。不懂插件开发的后果很严重,呵呵。
对jbpm的开源目录结构不够了解,也是没好好接触其项目的后果。
晚上在创建jbpm表的时候出了一点状况,没有按照它的顺序来import mapping文件,结果弄了好久。
还有就是竟然一时没注意到eclipse使用jre6,晕呀。
【20090221】
21日晚上试着把jbpm4的流程发布跑起来,整合到spring环境中。折腾了好几个小时,终于发布成功了一个简单的流程。整合的过程比较曲折,实际上,jbpm的test中提供了一个jbpm.bean.xml的配置文件,参照里面的配置,再增加需要的bean即可。问题就出在“需要的bean”上面,deployerManager和pvmDbSession这两个bean。而deployerManager类中的属性deployers也需要指定的,我暂时使用了两个ParseJpdlDeployer和SaveDeployer。而这几个bean的scope,一定要定义为prototype。
【20090224】
今天终于把请假流程发布成功并简单测试通过。暂时是使用waitstate,计划明天修改为task,进行测试。
感觉这个版本jbpm和spring结合过程中,还有很多没有想到的。
增加了很多个bean,其中一个variableTypeResolver,比较特殊,org.jbpm.pvm.internal.type.DefaultVariableTypeResolver这个类中typeMappings没有初始值。自己写了一个子类,根据jbpm.pvm.types.xml初始化了这个属性。(这个不知道是不是我没有找到jbpm已有的类)
另外,在exclusive中使用condition/expression时,好像类似对应到一个typemapping,暂时就选择了handler来实现。
晚上大概看了一下task相关代码,好像还没有完整实现,看来先用简单的做一下。
可以把流程、实例等相关管理页面做起来。
【20090225】
把task跑起来了,可惜jbpm这个版本有很多还没有实现到位的。
后来我直接访问task表,感觉这样反而更加方便,在task提交的时候,结合对exection的管理,扩展性比较强。