2 Replies Latest reply on Jun 10, 2008 2:38 AM by francis1970

    Anybody managed to integrate Spring with JBPM ?


      Dear all,
      I have a BPM application based on JBoss + JBPM 3.2. I'd like to know if it's possible to inject an Action Class to another Class using Spring.

      Here's the case:

      <state name="TIMEOUT">
       <event type="node-enter">
       <action class="jbpm.action.ProcedureExecutor"/> </event>
       <transition name="" to="P_CONF_MAN"></transition>

      When ProcedureExecutor is fired, then I'd like to use Spring to decide which DAO class needs to be invoked
      public class ProcedureExecutor implements ActionHandler
      private String procedureName;
      public void execute(ExecutionContext arg0) throws Exception {
       this.procedureName = "MyProcedure";
       Resource res = new ClassPathResource("applicationContext.xml");
       BeanFactory factory = new XmlBeanFactory(res);
       // Here invoked DAO(ProcedureExecutor)
       BaseDAO bean1 = (BaseDAO)factory.getBean("BaseDAO");

      I have configured my spring file so that an instance of ProcedureExecutor is passed to DAO
       <bean id="ProcedureExecutor"
       <bean id="BaseDAO"
       <constructor-arg><ref bean="ProcedureExecutor"/></constructor-arg>

      The problem is that when an instance of ProcedureExecutor is passed to DAO, it's not passed the same instance of ProcedureExecutor I have in memory, so the property "procedureName" is null.

      I guess the problem is that ProcedureExecutor was instantiated by the container and not by myself ?

      Does anybody know if it's possible to use Spring to inject a JBPM Action class ?

      Hope I was clear....
      Thanks a lot