[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