委托任务是我所遇到的项目中客户经常提到的,下面介绍下我的实现思路。
所谓委托,就是给A的待办,A设置了委托人B,此时,程序应该做到自动给B,最多是B处理以后给A发一个阅示任务,查看处理的情况。
这里面发现有经典的切面的影子,即任何setActor和setPooledActors都是先检查待办人是否设置了委托人,如果设置了就把任务给委托人。java领域的切面编程,大家都知道可以用jdk的InvocationHandler接口,也可以用cglib的动态代理来实现,经试验,发现jbpm的源码中有很多地方写的不地道,没有面向接口编程,导致InvocationHandler接口这种方式不能使用,无奈,只能研究cglib字节码增强,生成子类的方式实现这个切面编程了,很快,cglib生成子类的方法算是成功了,但是又发现cglib动态生成的这个子类的对象不能持久化到数据库,因为hibernate配置文件中,配置的是Taskinstace这个类,之前记得hibernate的延迟加载中有用cglib来实现,参考了Gavin King大师的源码,终于一口气实现了这个切面编程,初步测试通过了!
分享到:
相关推荐
jbpm-jpdl-suite-3.2GA -(5)分开压缩(共5个文件)jbpm下载 jbpm-jpdl-suite-3.2GA -(5)分开压缩(共5个文件)jbpm下载
jbpm-jpdl-designer-site-3.1.7.zip jbpm-jpdl-designer-site-3.1.7.zip jbpm-jpdl-designer-site-3.1.7.zip
jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,jbpm-starters-kit-3.1.2插件,共两卷
jbpm-eclipse插件,这个插件随jbpm4.4 一起发布,位于 jbpm-4.4/install/src/gpd 目录下,由于许多人找不到这个包,所有传上来,赚点积分。
jbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3.zipjbpm-jpdl-suite-3.2.3....
jbpm-jpdl-suite-3.2.GA.zip
jbpm-flow-builder-5.1.0.Final.jar jbpm5
jbpm-jpdl-suite-3.2.GA.zip
jbpm-jpdl-suite-3.2.GA.zip
jbpm-jpdl-designer资源
这个是jbpm-jpdl-3.2.3.zip的server部分,有60多兆, 只要将"jbpm-jpdl-3.2.3(没有server部分).rar"和这个合在一起就是整个的jbpm-jpdl-3.2.3.zip "jbpm-jpdl-3.2.3(没有server部分).rar"在我的另外一个上传资源里面
jbpm-starters-kit-3.1.2.zip官方下载地址 版本里包括一个JBPM流程设计器的Eclipse插件,和一个用JBOSS作为服务器的示例流程等相关文件。解压jbpm-starters-kit-3.1.2.rar到某个特定目录,这里我们首先用到的是包里...
jbpm-jpdl-designer-3.1.3.zip
jbpm-jpdl-suite-3.2.3安装配置.doc
jbpm-jpdl-3.2.3.zip 开源工作流引擎
详细介绍了如何在MyEclipse 8.5以上版本中安装jbpm-gpd-site.zip的步骤,还介绍了如何配置jpdl.xml文件标签的提示功能。
JBPM-----PPT 工作流JBPM完整PPT文件。帮你更快速上手。
jbpm开发指南-笔记 后半部分 实际应用与执行任务