[jboss-svn-commits] JBL Code SVN: r35054 - in labs/jbossrules/trunk: drools-core/src/main/java/org/drools/impl and 7 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Sep 7 22:33:38 EDT 2010
Author: KrisVerlaenen
Date: 2010-09-07 22:33:37 -0400 (Tue, 07 Sep 2010)
New Revision: 35054
Added:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EndOperationListener.java
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalKnowledgeRuntime.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/RuleFlowGroupImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TruthMaintenanceSystem.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/WorkingMemoryAction.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/InternalKnowledgeBase.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/KnowledgeBaseImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/impl/DefaultMarshaller.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/PropagationQueuingNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java
labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/ProcessBaseImpl.java
labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/StatefulProcessSession.java
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/event/DefaultSignalManager.java
labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/workflow/instance/node/StateNodeInstance.java
labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/processinstance/JPAWorkItemManager.java
labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/processinstance/JPAWorkItemManagerFactory.java
Log:
JBRULES-2679: Mdularize Drools Flow
- refactoring flow to be able to run independently
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -42,7 +42,6 @@
import org.drools.Agenda;
import org.drools.FactException;
import org.drools.FactHandle;
-import org.drools.KnowledgeBaseFactoryService;
import org.drools.QueryResults;
import org.drools.RuleBase;
import org.drools.RuleBaseConfiguration;
@@ -83,12 +82,10 @@
import org.drools.runtime.ExecutionResults;
import org.drools.runtime.ExitPoint;
import org.drools.runtime.Globals;
-import org.drools.runtime.KnowledgeRuntime;
import org.drools.runtime.impl.ExecutionResultImpl;
import org.drools.runtime.process.InternalProcessRuntime;
import org.drools.runtime.process.ProcessInstance;
import org.drools.runtime.process.ProcessRuntimeFactory;
-import org.drools.runtime.process.ProcessRuntimeFactoryService;
import org.drools.runtime.process.WorkItemHandler;
import org.drools.runtime.process.WorkItemManager;
import org.drools.spi.Activation;
@@ -102,7 +99,6 @@
import org.drools.time.TimerServiceFactory;
import org.drools.type.DateFormats;
import org.drools.type.DateFormatsImpl;
-import org.drools.util.ServiceRegistryImpl;
/**
* Implementation of <code>WorkingMemory</code>.
@@ -1583,7 +1579,7 @@
public WorkItemManager getWorkItemManager() {
if ( workItemManager == null ) {
- workItemManager = config.getWorkItemManagerFactory().createWorkItemManager( this );
+ workItemManager = config.getWorkItemManagerFactory().createWorkItemManager( this.getKnowledgeRuntime() );
Map<String, WorkItemHandler> workItemHandlers = config.getWorkItemHandlers();
if ( workItemHandlers != null ) {
for ( Map.Entry<String, WorkItemHandler> entry : workItemHandlers.entrySet() ) {
@@ -1859,10 +1855,6 @@
this.endOperationListener = listener;
}
- public static interface EndOperationListener {
- void endOperation(ReteooWorkingMemory wm);
- }
-
/**
* This method must be called after finishing any work in the engine,
* like inserting a new fact or firing a new rule. It will reset the engine
@@ -1876,7 +1868,7 @@
// means the engine is idle, so, set the timestamp
this.lastIdleTimestamp.set( this.timerService.getCurrentTime() );
if ( this.endOperationListener != null ) {
- this.endOperationListener.endOperation( (ReteooWorkingMemory) this );
+ this.endOperationListener.endOperation( this.getKnowledgeRuntime() );
}
}
}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EndOperationListener.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EndOperationListener.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/EndOperationListener.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -0,0 +1,8 @@
+package org.drools.common;
+
+
+public interface EndOperationListener {
+
+ void endOperation(InternalKnowledgeRuntime kruntime);
+
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalKnowledgeRuntime.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalKnowledgeRuntime.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/InternalKnowledgeRuntime.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -22,4 +22,10 @@
InternalProcessRuntime getProcessRuntime();
+ void setId(int id);
+
+ void setEndOperationListener(EndOperationListener listener);
+
+ long getLastIdleTimestamp();
+
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/RuleFlowGroupImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/RuleFlowGroupImpl.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/RuleFlowGroupImpl.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -26,6 +26,7 @@
import org.drools.core.util.Iterator;
import org.drools.core.util.LinkedList;
+import org.drools.impl.StatefulKnowledgeSessionImpl;
import org.drools.marshalling.impl.MarshallerReaderContext;
import org.drools.marshalling.impl.MarshallerWriteContext;
import org.drools.spi.Activation;
@@ -304,6 +305,9 @@
this.ruleFlowGroup.setActive( false );
}
}
+ public void execute(InternalKnowledgeRuntime kruntime) {
+ execute(((StatefulKnowledgeSessionImpl) kruntime).getInternalWorkingMemory());
+ }
}
public void addNodeInstance(Long processInstanceId,
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TruthMaintenanceSystem.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TruthMaintenanceSystem.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/TruthMaintenanceSystem.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -25,6 +25,7 @@
import org.drools.FactException;
import org.drools.core.util.ObjectHashMap;
+import org.drools.impl.StatefulKnowledgeSessionImpl;
import org.drools.marshalling.impl.MarshallerReaderContext;
import org.drools.marshalling.impl.MarshallerWriteContext;
import org.drools.rule.Rule;
@@ -282,6 +283,10 @@
this.activation );
}
}
+
+ public void execute(InternalKnowledgeRuntime kruntime) {
+ execute(((StatefulKnowledgeSessionImpl) kruntime).getInternalWorkingMemory());
+ }
}
/**
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/WorkingMemoryAction.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/WorkingMemoryAction.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/common/WorkingMemoryAction.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -36,5 +36,7 @@
public void execute(InternalWorkingMemory workingMemory);
+ public void execute(InternalKnowledgeRuntime kruntime);
+
public void write(MarshallerWriteContext context) throws IOException;
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/InternalKnowledgeBase.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/InternalKnowledgeBase.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/InternalKnowledgeBase.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -6,5 +6,5 @@
public interface InternalKnowledgeBase extends KnowledgeBase {
RuleBase getRuleBase();
-
+
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/KnowledgeBaseImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/KnowledgeBaseImpl.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/KnowledgeBaseImpl.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -166,14 +166,8 @@
environment = EnvironmentFactory.newEnvironment();
}
- CommandService commandService = ((SessionConfiguration) conf).getCommandService(this, environment);
- if (commandService != null) {
- return new CommandBasedStatefulKnowledgeSession(commandService);
- } else {
- ReteooStatefulSession session = (ReteooStatefulSession) this.ruleBase.newStatefulSession( (SessionConfiguration) conf,
- environment );
- return new StatefulKnowledgeSessionImpl( session, this );
- }
+ ReteooStatefulSession session = (ReteooStatefulSession) this.ruleBase.newStatefulSession( (SessionConfiguration) conf, environment );
+ return new StatefulKnowledgeSessionImpl( session, this );
}
public Collection<StatefulKnowledgeSession> getStatefulKnowledgeSessions()
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -35,6 +35,7 @@
import org.drools.command.impl.KnowledgeCommandContext;
import org.drools.command.runtime.BatchExecutionCommandImpl;
import org.drools.common.AbstractWorkingMemory;
+import org.drools.common.EndOperationListener;
import org.drools.common.InternalAgenda;
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalKnowledgeRuntime;
@@ -834,4 +835,16 @@
this.session.queueWorkingMemoryAction(action);
}
+ public void setId(int id) {
+ this.session.setId(id);
+ }
+
+ public void setEndOperationListener(EndOperationListener listener) {
+ this.session.setEndOperationListener(listener);
+ }
+
+ public long getLastIdleTimestamp() {
+ return this.session.getLastIdleTimestamp();
+ }
+
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/impl/DefaultMarshaller.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/impl/DefaultMarshaller.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/marshalling/impl/DefaultMarshaller.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -29,6 +29,7 @@
import org.drools.common.InternalWorkingMemory;
import org.drools.concurrent.CommandExecutor;
import org.drools.concurrent.ExecutorService;
+import org.drools.impl.InternalKnowledgeBase;
import org.drools.impl.KnowledgeBaseImpl;
import org.drools.impl.StatefulKnowledgeSessionImpl;
import org.drools.marshalling.Marshaller;
@@ -124,9 +125,9 @@
public void marshall(final OutputStream stream,
final StatefulKnowledgeSession session) throws IOException {
MarshallerWriteContext context = new MarshallerWriteContext( stream,
- (InternalRuleBase) ((KnowledgeBaseImpl) kbase).ruleBase,
+ (InternalRuleBase) ((InternalKnowledgeBase) kbase).getRuleBase(),
(InternalWorkingMemory) ((StatefulKnowledgeSessionImpl) session).session,
- RuleBaseNodes.getNodeMap( (InternalRuleBase) ((KnowledgeBaseImpl) kbase).ruleBase ),
+ RuleBaseNodes.getNodeMap( (InternalRuleBase) ((InternalKnowledgeBase) kbase).getRuleBase() ),
this.strategyStore,
this.marshallingConfig.isMarshallProcessInstances(),
this.marshallingConfig.isMarshallWorkItems() );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/PropagationQueuingNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/PropagationQueuingNode.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/PropagationQueuingNode.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -26,9 +26,11 @@
import org.drools.RuleBaseConfiguration;
import org.drools.RuntimeDroolsException;
import org.drools.common.InternalFactHandle;
+import org.drools.common.InternalKnowledgeRuntime;
import org.drools.common.InternalWorkingMemory;
import org.drools.common.NodeMemory;
import org.drools.common.WorkingMemoryAction;
+import org.drools.impl.StatefulKnowledgeSessionImpl;
import org.drools.marshalling.impl.MarshallerReaderContext;
import org.drools.marshalling.impl.MarshallerWriteContext;
import org.drools.reteoo.builder.BuildContext;
@@ -442,6 +444,10 @@
public void execute(InternalWorkingMemory workingMemory) {
this.node.propagateActions( workingMemory );
}
+
+ public void execute(InternalKnowledgeRuntime kruntime) {
+ execute(((StatefulKnowledgeSessionImpl) kruntime).getInternalWorkingMemory());
+ }
}
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -34,6 +34,7 @@
import org.drools.common.EventFactHandle;
import org.drools.common.InternalAgenda;
import org.drools.common.InternalFactHandle;
+import org.drools.common.InternalKnowledgeRuntime;
import org.drools.common.InternalRuleBase;
import org.drools.common.InternalWorkingMemory;
import org.drools.common.PropagationContextImpl;
@@ -41,6 +42,7 @@
import org.drools.event.AgendaEventSupport;
import org.drools.event.WorkingMemoryEventSupport;
import org.drools.impl.EnvironmentFactory;
+import org.drools.impl.StatefulKnowledgeSessionImpl;
import org.drools.marshalling.impl.MarshallerReaderContext;
import org.drools.marshalling.impl.MarshallerWriteContext;
import org.drools.rule.Declaration;
@@ -359,6 +361,10 @@
context,
workingMemory );
}
+
+ public void execute(InternalKnowledgeRuntime kruntime) {
+ execute(((StatefulKnowledgeSessionImpl) kruntime).getInternalWorkingMemory());
+ }
}
public static class WorkingMemoryReteExpireAction
@@ -417,6 +423,10 @@
}
}
}
+
+ public void execute(InternalKnowledgeRuntime kruntime) {
+ execute(((StatefulKnowledgeSessionImpl) kruntime).getInternalWorkingMemory());
+ }
}
public EntryPoint getEntryPoint() {
Modified: labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/ProcessBaseImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/ProcessBaseImpl.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/ProcessBaseImpl.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -151,7 +151,7 @@
}
public StatefulKnowledgeSession newStatefulKnowledgeSession() {
- return newStatefulKnowledgeSession(new SessionConfiguration(), EnvironmentFactory.newEnvironment() );
+ return newStatefulKnowledgeSession(new SessionConfiguration(), EnvironmentFactory.newEnvironment());
}
public StatefulKnowledgeSession newStatefulKnowledgeSession(KnowledgeSessionConfiguration conf, Environment environment) {
Modified: labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/StatefulProcessSession.java
===================================================================
--- labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/StatefulProcessSession.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/StatefulProcessSession.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -9,6 +9,7 @@
import org.drools.RuntimeDroolsException;
import org.drools.SessionConfiguration;
import org.drools.command.Command;
+import org.drools.common.EndOperationListener;
import org.drools.common.InternalKnowledgeRuntime;
import org.drools.common.WorkingMemoryAction;
import org.drools.event.process.ProcessEventListener;
@@ -26,6 +27,7 @@
import org.drools.runtime.ObjectFilter;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.process.ProcessInstance;
+import org.drools.runtime.process.WorkItemHandler;
import org.drools.runtime.process.WorkItemManager;
import org.drools.runtime.rule.Agenda;
import org.drools.runtime.rule.AgendaFilter;
@@ -47,14 +49,14 @@
private Environment environment;
private TimerService timerService;
protected Queue<WorkingMemoryAction> actionQueue;
+ private int id;
public StatefulProcessSession(KnowledgeBase kbase, KnowledgeSessionConfiguration sessionConfiguration, Environment environment) {
this.kbase = kbase;
this.sessionConfiguration = sessionConfiguration;
this.environment = environment;
+ timerService = TimerServiceFactory.getTimerService((SessionConfiguration) sessionConfiguration);
processRuntime = new ProcessRuntimeImpl(this);
- workItemManager = new DefaultWorkItemManager(null);
- timerService = TimerServiceFactory.getTimerService((SessionConfiguration) sessionConfiguration);
actionQueue = new LinkedList<WorkingMemoryAction>();
}
@@ -103,7 +105,16 @@
}
public WorkItemManager getWorkItemManager() {
- return workItemManager;
+ if ( workItemManager == null ) {
+ workItemManager = ((SessionConfiguration) sessionConfiguration).getWorkItemManagerFactory().createWorkItemManager(this);
+ Map<String, WorkItemHandler> workItemHandlers = ((SessionConfiguration) sessionConfiguration).getWorkItemHandlers();
+ if (workItemHandlers != null) {
+ for (Map.Entry<String, WorkItemHandler> entry: workItemHandlers.entrySet()) {
+ workItemManager.registerWorkItemHandler(entry.getKey(), entry.getValue());
+ }
+ }
+ }
+ return workItemManager;
}
public Environment getEnvironment() {
@@ -123,22 +134,20 @@
}
public void startOperation() {
- // Do nothing
}
public void endOperation() {
- // Do nothing
}
public void executeQueuedActions() {
try {
startOperation();
- if ( !this.actionQueue.isEmpty() ) {
+ if (!this.actionQueue.isEmpty()) {
WorkingMemoryAction action = null;
- while ( (action = actionQueue.poll()) != null ) {
+ while ((action = actionQueue.poll()) != null) {
try {
-// action.execute( null );
- } catch ( Exception e ) {
+ action.execute(this);
+ } catch (Exception e) {
throw new RuntimeDroolsException( "Unexpected exception executing action " + action.toString(), e );
}
}
@@ -158,10 +167,18 @@
public void dispose() {
}
+
+ public void setId(int id) {
+ this.id = id;
+ }
public int getId() {
- throw new UnsupportedOperationException();
+ return id;
}
+
+ public void setEndOperationListener(EndOperationListener listener) {
+
+ }
public int fireAllRules() {
throw new UnsupportedOperationException();
@@ -323,4 +340,8 @@
throw new UnsupportedOperationException();
}
+ public long getLastIdleTimestamp() {
+ throw new UnsupportedOperationException();
+ }
+
}
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-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/instance/ProcessRuntimeImpl.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -10,16 +10,17 @@
import org.drools.common.AbstractWorkingMemory;
import org.drools.common.InternalKnowledgeRuntime;
import org.drools.definition.process.Process;
-import org.drools.event.ActivationCreatedEvent;
-import org.drools.event.DefaultAgendaEventListener;
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.process.core.event.EventFilter;
import org.drools.process.core.event.EventTypeFilter;
import org.drools.process.instance.event.SignalManager;
import org.drools.process.instance.event.SignalManagerFactory;
import org.drools.process.instance.timer.TimerManager;
+import org.drools.rule.Rule;
import org.drools.ruleflow.core.RuleFlowProcess;
import org.drools.runtime.process.EventListener;
import org.drools.runtime.process.ProcessInstance;
@@ -42,7 +43,7 @@
this.kruntime = kruntime;
initProcessInstanceManager();
initSignalManager();
- timerManager = new TimerManager(workingMemory, kruntime.getTimerService());
+ timerManager = new TimerManager(kruntime, kruntime.getTimerService());
processEventSupport = new ProcessEventSupport();
initProcessEventListeners();
}
@@ -52,7 +53,7 @@
this.kruntime = (InternalKnowledgeRuntime) workingMemory.getKnowledgeRuntime();
initProcessInstanceManager();
initSignalManager();
- timerManager = new TimerManager(workingMemory, kruntime.getTimerService());
+ timerManager = new TimerManager(kruntime, kruntime.getTimerService());
processEventSupport = new ProcessEventSupport();
initProcessEventListeners();
initProcessActivationListener();
@@ -235,10 +236,9 @@
}
private void initProcessActivationListener() {
- workingMemory.addEventListener( new DefaultAgendaEventListener() {
- public void activationCreated(ActivationCreatedEvent event,
- WorkingMemory workingMemory) {
- String ruleFlowGroup = event.getActivation().getRule().getRuleFlowGroup();
+ kruntime.addEventListener(new DefaultAgendaEventListener() {
+ public void activationCreated(ActivationCreatedEvent event) {
+ String ruleFlowGroup = ((Rule) event.getActivation().getRule()).getRuleFlowGroup();
if ( "DROOLS_SYSTEM".equals( ruleFlowGroup ) ) {
// new activations of the rule associate with a state node
// signal process instances of that state node
@@ -254,9 +254,9 @@
event );
}
}
- }
- } );
- workingMemory.addEventListener( new DefaultAgendaEventListener() {
+ }
+ });
+ workingMemory.addEventListener( new org.drools.event.DefaultAgendaEventListener() {
public void afterRuleFlowGroupDeactivated(final RuleFlowGroupDeactivatedEvent event,
final WorkingMemory workingMemory) {
signalManager.signalEvent( "RuleFlowGroup_" + event.getRuleFlowGroup().getName(),
Modified: labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/instance/event/DefaultSignalManager.java
===================================================================
--- labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/instance/event/DefaultSignalManager.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/instance/event/DefaultSignalManager.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -118,6 +118,13 @@
}
}
+ public void execute(InternalKnowledgeRuntime kruntime) {
+ ProcessInstance processInstance = kruntime.getProcessInstance(processInstanceId);
+ if (processInstance != null) {
+ processInstance.signalEvent(type, event);
+ }
+ }
+
public void write(MarshallerWriteContext context) throws IOException {
context.writeInt( WorkingMemoryAction.SignalProcessInstanceAction );
context.writeLong(processInstanceId);
@@ -168,6 +175,9 @@
((DefaultSignalManager) ((InternalProcessRuntime) workingMemory.getProcessRuntime()).getSignalManager()).internalSignalEvent(type, event);
}
+ public void execute(InternalKnowledgeRuntime kruntime) {
+ ((DefaultSignalManager) ((InternalProcessRuntime) kruntime.getProcessRuntime()).getSignalManager()).internalSignalEvent(type, event);
+ }
public void write(MarshallerWriteContext context) throws IOException {
context.writeInt( WorkingMemoryAction.SignalAction );
context.writeUTF(type);
Modified: labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/workflow/instance/node/StateNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/workflow/instance/node/StateNodeInstance.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/workflow/instance/node/StateNodeInstance.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -22,7 +22,7 @@
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalKnowledgeRuntime;
import org.drools.definition.process.Connection;
-import org.drools.event.ActivationCreatedEvent;
+import org.drools.event.rule.ActivationCreatedEvent;
import org.drools.impl.StatefulKnowledgeSessionImpl;
import org.drools.process.instance.ProcessInstance;
import org.drools.rule.Declaration;
@@ -162,7 +162,8 @@
if (constraint != null) {
String constraintName = getActivationEventType() + "-"
+ connection.getTo().getId() + "-" + connection.getToType();
- if (constraintName.equals(event.getActivation().getRule().getName()) && checkProcessInstance(event.getActivation())) {
+ if (constraintName.equals(event.getActivation().getRule().getName())
+ && checkProcessInstance((Activation) event.getActivation())) {
selected = connection;
}
}
Modified: labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/processinstance/JPAWorkItemManager.java
===================================================================
--- labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/processinstance/JPAWorkItemManager.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/processinstance/JPAWorkItemManager.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -7,7 +7,7 @@
import javax.persistence.EntityManager;
-import org.drools.WorkingMemory;
+import org.drools.common.InternalKnowledgeRuntime;
import org.drools.process.instance.WorkItem;
import org.drools.process.instance.WorkItemManager;
import org.drools.process.instance.impl.WorkItemImpl;
@@ -18,16 +18,16 @@
public class JPAWorkItemManager implements WorkItemManager {
- private WorkingMemory workingMemory;
+ private InternalKnowledgeRuntime kruntime;
private Map<String, WorkItemHandler> workItemHandlers = new HashMap<String, WorkItemHandler>();
private transient Map<Long, WorkItemInfo> workItems;
- public JPAWorkItemManager(WorkingMemory workingMemory) {
- this.workingMemory = workingMemory;
+ public JPAWorkItemManager(InternalKnowledgeRuntime kruntime) {
+ this.kruntime = kruntime;
}
public void internalExecuteWorkItem(WorkItem workItem) {
- Environment env = this.workingMemory.getEnvironment();
+ Environment env = this.kruntime.getEnvironment();
EntityManager em = (EntityManager) env.get(EnvironmentName.CMD_SCOPED_ENTITY_MANAGER);
WorkItemInfo workItemInfo = new WorkItemInfo(workItem, env);
@@ -49,7 +49,7 @@
}
public void internalAbortWorkItem(long id) {
- Environment env = this.workingMemory.getEnvironment();
+ Environment env = this.kruntime.getEnvironment();
EntityManager em = (EntityManager) env.get(EnvironmentName.CMD_SCOPED_ENTITY_MANAGER);
WorkItemInfo workItemInfo = em.find(WorkItemInfo.class, id);
@@ -73,7 +73,7 @@
}
public void completeWorkItem(long id, Map<String, Object> results) {
- Environment env = this.workingMemory.getEnvironment();
+ Environment env = this.kruntime.getEnvironment();
EntityManager em = (EntityManager) env.get(EnvironmentName.CMD_SCOPED_ENTITY_MANAGER);
WorkItemInfo workItemInfo = null;
@@ -92,7 +92,7 @@
if (workItemInfo != null) {
WorkItem workItem = (WorkItemImpl) workItemInfo.getWorkItem(env);
workItem.setResults(results);
- ProcessInstance processInstance = workingMemory.getProcessInstance(workItem.getProcessInstanceId());
+ ProcessInstance processInstance = kruntime.getProcessInstance(workItem.getProcessInstanceId());
workItem.setState(WorkItem.COMPLETED);
// process instance may have finished already
if (processInstance != null) {
@@ -102,12 +102,11 @@
if (workItems != null) {
this.workItems.remove(workItem.getId());
}
- workingMemory.fireAllRules();
}
}
public void abortWorkItem(long id) {
- Environment env = this.workingMemory.getEnvironment();
+ Environment env = this.kruntime.getEnvironment();
EntityManager em = (EntityManager) env.get(EnvironmentName.CMD_SCOPED_ENTITY_MANAGER);
WorkItemInfo workItemInfo = null;
@@ -123,7 +122,7 @@
// work item may have been aborted
if (workItemInfo != null) {
WorkItem workItem = (WorkItemImpl) workItemInfo.getWorkItem(env);
- ProcessInstance processInstance = workingMemory.getProcessInstance(workItem.getProcessInstanceId());
+ ProcessInstance processInstance = kruntime.getProcessInstance(workItem.getProcessInstanceId());
workItem.setState(WorkItem.ABORTED);
// process instance may have finished already
if (processInstance != null) {
@@ -133,12 +132,11 @@
if (workItems != null) {
workItems.remove(workItem.getId());
}
- workingMemory.fireAllRules();
}
}
public WorkItem getWorkItem(long id) {
- Environment env = this.workingMemory.getEnvironment();
+ Environment env = this.kruntime.getEnvironment();
EntityManager em = (EntityManager) env.get(EnvironmentName.CMD_SCOPED_ENTITY_MANAGER);
WorkItemInfo workItemInfo = null;
Modified: labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/processinstance/JPAWorkItemManagerFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/processinstance/JPAWorkItemManagerFactory.java 2010-09-08 02:28:14 UTC (rev 35053)
+++ labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/processinstance/JPAWorkItemManagerFactory.java 2010-09-08 02:33:37 UTC (rev 35054)
@@ -1,13 +1,13 @@
package org.drools.persistence.processinstance;
-import org.drools.WorkingMemory;
+import org.drools.common.InternalKnowledgeRuntime;
import org.drools.process.instance.WorkItemManager;
import org.drools.process.instance.WorkItemManagerFactory;
public class JPAWorkItemManagerFactory implements WorkItemManagerFactory {
- public WorkItemManager createWorkItemManager(WorkingMemory workingMemory) {
- return new JPAWorkItemManager(workingMemory);
+ public WorkItemManager createWorkItemManager(InternalKnowledgeRuntime kruntime) {
+ return new JPAWorkItemManager(kruntime);
}
}
More information about the jboss-svn-commits
mailing list