提前试用spring 集成 jbpm4

在jbpm4的项目中,在下面的网址中看到了简单集成spring 和 jbpm4的集成方法。

http://www.slideshare.net/guest8d4bce/spring-integration-with-jbpm4

 

jbpm4的分支中已经有了集成的代码

http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbpm_svn/jbpm4/branches/ainze/

 

唯一的遗憾就是代码目前还没有和最新的代码同步,于是乎就简单的对这两块代码先做了些合并工作.

数据库:mysql

集成项:spring2.5  hibernate3.3  jbpm4

相关的类:

org.jbpm.pvm.internal.cfg.JbpmConfiguration (其中的buildProcessEngine方法 有些东西没有合并进去,可能会有些问题 ,有兴趣的可以探寻下)

org.jbpm.pvm.internal.cfg.SpringConfiguration(Tom Baeyens在TODO中,这个是ainze写的)

 

org.jbpm.pvm.internal.env.SpringPvmEnvironment(ainze)

 

org.jbpm.pvm.internal.spring.SpringConfigurationFactoryBean(ainze)

 

 

(jbpm.cfg.xml中只需要注释掉hibernate的配置即可)

 

spring 配置--使用了SpringConfigurationFactoryBean(调整自ainze)的方式配置时 这个就是spring集成的最简配置

<!-- jbpm4配置   -->
    <bean id="configuration" class="org.jbpm.spring.cfg.SpringConfigurationFactoryBean">
    	<property name="jbpmConfigurationLocation" value="jbpm.cfg.xml"></property>
    	<property name="sessionFactory" ref="sessionFactory" />
    </bean>

 

测试代码--org.jbpm.spring.test.AbstractTransactionalSpringJbpmTestCase(author Andries Inze)

public class SimpleProcessTest  extends AbstractTransactionalSpringJbpmTestCase{
 
 @Override
 protected String[] getConfigLocations() {
  return new String[]{"classpath:test-context-hibernate.xml"};
 }
 public void test1(){
   deployJpdlXmlString( 
     "<process name='p'>" 
     + " <start>" 
     + "  <transition to='a'/>"
     + " </start>" 
     + " <state name='a'>" 
     + "   <transition to='b'/>"
     + "</state>"
     + " <state name='b'>" 
     + "   <transition to='c'/>"
     + "</state>"
     + " <state name='c'/>" 
      + "</process>");
   
   
   Execution execution = executionService.startProcessInstanceByKey("p");
   execution = executionService.findExecutionById(execution.getId());//.findExecution(execution.getId());
   assertNotNull(execution);
   assertEquals("a", execution.getActivityName());
   
  //a流向b 
   execution = executionService.signalExecutionById(execution.getId());
   assertNotNull(execution);
   assertEquals("b", execution.getActivityName());
   
  //b流向c 
   execution = executionService.signalExecutionById(execution.getId());
   assertNotNull(execution);
   assertEquals("c", execution.getActivityName());
   //再次启动流程
   execution = executionService.startProcessInstanceByKey("p");
  //第三次启动流程
   execution = executionService.startProcessInstanceByKey("p");
   
   assertEquals(3,executionService.createProcessInstanceQuery().list().size());
 }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值