[jbpm-commits] JBoss JBPM SVN: r6467 - jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/processengine.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Jul 6 21:16:57 EDT 2010


Author: rebody
Date: 2010-07-06 21:16:57 -0400 (Tue, 06 Jul 2010)
New Revision: 6467

Modified:
   jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/processengine/SpringHelper.java
Log:
JBPM-2871 close processEngine when spring close/refresh ctx

Modified: jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/processengine/SpringHelper.java
===================================================================
--- jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/processengine/SpringHelper.java	2010-07-07 01:05:56 UTC (rev 6466)
+++ jbpm4/trunk/modules/pvm/src/main/java/org/jbpm/pvm/internal/processengine/SpringHelper.java	2010-07-07 01:16:57 UTC (rev 6467)
@@ -24,16 +24,19 @@
 import org.jbpm.api.ProcessEngine;
 import org.jbpm.pvm.internal.cfg.ConfigurationImpl;
 import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.DisposableBean;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 
 /**
  * @author Joram Barrez
+ * @author Huisheng Xu
  */
-public class SpringHelper implements ApplicationContextAware {
-  
+public class SpringHelper implements ApplicationContextAware, DisposableBean {
+
   protected ApplicationContext applicationContext;
   protected String jbpmCfg = "jbpm.cfg.xml";
+  protected ProcessEngine processEngine;
 
   public void setJbpmCfg(String jbpmCfg) {
     this.jbpmCfg = jbpmCfg;
@@ -42,12 +45,24 @@
   public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
     this.applicationContext = applicationContext;
   }
-  
+
   public ProcessEngine createProcessEngine() {
-    return new ConfigurationImpl()
+    processEngine = new ConfigurationImpl()
       .springInitiated(applicationContext)
       .setResource(jbpmCfg)
       .buildProcessEngine();
+
+    return processEngine;
   }
-  
+
+  /**
+   * close process engine when spring close/refresh ctx.
+   */
+  public void destroy() throws Exception {
+    if (processEngine != null) {
+      processEngine.close();
+      processEngine = null;
+    }
+  }
+
 }



More information about the jbpm-commits mailing list