[jboss-svn-commits] JBL Code SVN: r36119 - labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/instance.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Nov 29 13:37:42 EST 2010
Author: baunax
Date: 2010-11-29 13:37:42 -0500 (Mon, 29 Nov 2010)
New Revision: 36119
Modified:
labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/instance/ProcessRuntimeImpl.java
Log:
JBRULES-2795 ProcessRuntimeImpl uses the wrong classpath for instantiante implementations of managers
- changed initSignalManager and initProcessInstanceManager to use the rule base RootClassLoader
Modified: labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/instance/ProcessRuntimeImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/instance/ProcessRuntimeImpl.java 2010-11-29 18:37:08 UTC (rev 36118)
+++ labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/instance/ProcessRuntimeImpl.java 2010-11-29 18:37:42 UTC (rev 36119)
@@ -9,12 +9,14 @@
import org.drools.WorkingMemory;
import org.drools.common.AbstractWorkingMemory;
import org.drools.common.InternalKnowledgeRuntime;
+import org.drools.common.InternalRuleBase;
import org.drools.definition.process.Process;
import org.drools.event.ProcessEventSupport;
import org.drools.event.RuleFlowGroupDeactivatedEvent;
import org.drools.event.process.ProcessEventListener;
import org.drools.event.rule.ActivationCreatedEvent;
import org.drools.event.rule.DefaultAgendaEventListener;
+import org.drools.impl.KnowledgeBaseImpl;
import org.drools.process.core.event.EventFilter;
import org.drools.process.core.event.EventTypeFilter;
import org.drools.process.instance.event.SignalManager;
@@ -62,29 +64,41 @@
private void initProcessInstanceManager() {
String processInstanceManagerClass = ((SessionConfiguration) kruntime.getSessionConfiguration()).getProcessInstanceManagerFactory();
try {
- processInstanceManager = ((ProcessInstanceManagerFactory) Class.forName(processInstanceManagerClass).newInstance()).createProcessInstanceManager(kruntime);
+ processInstanceManager = ((ProcessInstanceManagerFactory) loadClass(processInstanceManagerClass)
+ .newInstance())
+ .createProcessInstanceManager(kruntime);
} catch (InstantiationException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
- } catch (ClassNotFoundException e) {
- throw new RuntimeException(e);
}
}
private void initSignalManager() {
String signalManagerClass = ((SessionConfiguration) kruntime.getSessionConfiguration()).getSignalManagerFactory();
try {
- signalManager = ((SignalManagerFactory) Class.forName(signalManagerClass).newInstance()).createSignalManager(kruntime);
+ signalManager = ((SignalManagerFactory) loadClass(signalManagerClass)
+ .newInstance())
+ .createSignalManager(kruntime);
} catch (InstantiationException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
- } catch (ClassNotFoundException e) {
- throw new RuntimeException(e);
}
}
+ private Class<?> loadClass(String className) {
+ try {
+ return getRootClassLoader().loadClass(className);
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ private ClassLoader getRootClassLoader() {
+ return ((InternalRuleBase) ((KnowledgeBaseImpl) kruntime.getKnowledgeBase()).getRuleBase()).getRootClassLoader();
+ }
+
public ProcessInstance startProcess(final String processId) {
return startProcess(processId, null);
}
More information about the jboss-svn-commits
mailing list