[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