Spring integration with jBPM4
来自http://zhyi-12.javaeye.com/blog/375061 的实现
数据库: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集成的最简配置
    -   
-     <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());  
-    assertNotNull(execution);  
-    assertEquals("a", execution.getActivityName());  
-      
-     
-    execution = executionService.signalExecutionById(execution.getId());  
-    assertNotNull(execution);  
-    assertEquals("b", execution.getActivityName());  
-      
-     
-    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());  
-  }  
- }