[jboss-svn-commits] JBL Code SVN: r35065 - in labs/jbossrules/trunk: drools-flow-core/src/main/java/org/drools/process/instance/timer and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Sep 8 09:09:08 EDT 2010
Author: KrisVerlaenen
Date: 2010-09-08 09:09:08 -0400 (Wed, 08 Sep 2010)
New Revision: 35065
Modified:
labs/jbossrules/trunk/drools-flow-compiler/src/test/java/org/drools/compiler/xml/processes/ActionNodeTest.java
labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/instance/timer/TimerManager.java
labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/session/SingleSessionCommandService.java
Log:
JBRULES-2679: Mdularize Drools Flow
- refactoring flow to be able to run independently
Modified: labs/jbossrules/trunk/drools-flow-compiler/src/test/java/org/drools/compiler/xml/processes/ActionNodeTest.java
===================================================================
--- labs/jbossrules/trunk/drools-flow-compiler/src/test/java/org/drools/compiler/xml/processes/ActionNodeTest.java 2010-09-08 13:04:13 UTC (rev 35064)
+++ labs/jbossrules/trunk/drools-flow-compiler/src/test/java/org/drools/compiler/xml/processes/ActionNodeTest.java 2010-09-08 13:09:08 UTC (rev 35065)
@@ -1,31 +1,28 @@
package org.drools.compiler.xml.processes;
-import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
-import org.drools.RuleBase;
-import org.drools.RuleBaseFactory;
-import org.drools.StatefulSession;
-import org.drools.compiler.PackageBuilder;
+import org.drools.KnowledgeBase;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceType;
+import org.drools.io.impl.ClassPathResource;
+import org.drools.runtime.StatefulKnowledgeSession;
public class ActionNodeTest extends TestCase {
public void testSingleActionNode() throws Exception {
- PackageBuilder builder = new PackageBuilder();
- builder.addProcessFromXml( new InputStreamReader( ActionNodeTest.class.getResourceAsStream( "ActionNodeTest.xml" ) ) );
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( new ClassPathResource( "ActionNodeTest.xml", ActionNodeTest.class ), ResourceType.DRF );
+ KnowledgeBase kbase = kbuilder.newKnowledgeBase();
- System.out.println( builder.getErrors() );
-
- RuleBase ruleBase = RuleBaseFactory.newRuleBase();
- ruleBase.addPackage( builder.getPackage() );
-
- StatefulSession session = ruleBase.newStatefulSession();
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
List list = new ArrayList();
- session.setGlobal( "list", list );
+ ksession.setGlobal( "list", list );
- session.startProcess( "process name" );
+ ksession.startProcess( "process name" );
assertEquals( 1, list.size() );
assertEquals( "action node was here", list.get(0) );
Modified: labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/instance/timer/TimerManager.java
===================================================================
--- labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/instance/timer/TimerManager.java 2010-09-08 13:04:13 UTC (rev 35064)
+++ labs/jbossrules/trunk/drools-flow-core/src/main/java/org/drools/process/instance/timer/TimerManager.java 2010-09-08 13:09:08 UTC (rev 35065)
@@ -21,8 +21,7 @@
import java.util.HashMap;
import java.util.Map;
-import org.drools.WorkingMemory;
-import org.drools.common.InternalWorkingMemory;
+import org.drools.common.InternalKnowledgeRuntime;
import org.drools.process.instance.InternalProcessRuntime;
import org.drools.process.instance.ProcessInstance;
import org.drools.time.Job;
@@ -38,14 +37,14 @@
public class TimerManager {
private long timerId = 0;
- private WorkingMemory workingMemory;
+ private InternalKnowledgeRuntime kruntime;
private TimerService timerService;
private Map<Long, TimerInstance> timers = new HashMap<Long, TimerInstance>();
private Job processJob = new ProcessJob();
- public TimerManager(WorkingMemory workingMemory,
+ public TimerManager(InternalKnowledgeRuntime kruntime,
TimerService timerService) {
- this.workingMemory = workingMemory;
+ this.kruntime = kruntime;
this.timerService = timerService;
}
@@ -57,7 +56,7 @@
ProcessJobContext ctx = new ProcessJobContext( timer,
processInstance.getId(),
- this.workingMemory );
+ this.kruntime );
JobHandle jobHandle = this.timerService.scheduleJob( processJob,
ctx,
@@ -77,7 +76,7 @@
public void internalAddTimer(final TimerInstance timer) {
ProcessJobContext ctx = new ProcessJobContext( timer,
timer.getProcessInstanceId(),
- this.workingMemory );
+ this.kruntime );
long delay;
Date lastTriggered = timer.getLastTriggered();
@@ -154,7 +153,7 @@
ProcessJobContext ctx = (ProcessJobContext) c;
Long processInstanceId = ctx.getProcessInstanceId();
- WorkingMemory workingMemory = ctx.getWorkingMemory();
+ InternalKnowledgeRuntime kruntime = ctx.getKnowledgeRuntime();
if ( processInstanceId == null ) {
throw new IllegalArgumentException( "Could not find process instance for timer " );
@@ -162,7 +161,7 @@
ctx.getTimer().setLastTriggered( new Date() );
- ((InternalProcessRuntime) ((InternalWorkingMemory) workingMemory).getProcessRuntime())
+ ((InternalProcessRuntime) kruntime.getProcessRuntime())
.getSignalManager().signalEvent( processInstanceId,
"timerTriggered",
ctx.getTimer() );
@@ -177,26 +176,26 @@
public static class ProcessJobContext
implements
JobContext {
- private Long processInstanceId;
- private WorkingMemory workingMemory;
- private TimerInstance timer;
+ private Long processInstanceId;
+ private InternalKnowledgeRuntime kruntime;
+ private TimerInstance timer;
private JobHandle jobHandle;
public ProcessJobContext(final TimerInstance timer,
final Long processInstanceId,
- final WorkingMemory workingMemory) {
+ final InternalKnowledgeRuntime kruntime) {
this.timer = timer;
this.processInstanceId = processInstanceId;
- this.workingMemory = workingMemory;
+ this.kruntime = kruntime;
}
public Long getProcessInstanceId() {
return processInstanceId;
}
- public WorkingMemory getWorkingMemory() {
- return workingMemory;
+ public InternalKnowledgeRuntime getKnowledgeRuntime() {
+ return kruntime;
}
public JobHandle getJobHandle() {
Modified: labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/session/SingleSessionCommandService.java
===================================================================
--- labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/session/SingleSessionCommandService.java 2010-09-08 13:04:13 UTC (rev 35064)
+++ labs/jbossrules/trunk/drools-persistence-jpa/src/main/java/org/drools/persistence/session/SingleSessionCommandService.java 2010-09-08 13:09:08 UTC (rev 35065)
@@ -15,15 +15,12 @@
import org.drools.command.impl.GenericCommand;
import org.drools.command.impl.KnowledgeCommandContext;
import org.drools.command.runtime.DisposeCommand;
-import org.drools.common.InternalWorkingMemory;
-import org.drools.common.AbstractWorkingMemory.EndOperationListener;
+import org.drools.common.EndOperationListener;
+import org.drools.common.InternalKnowledgeRuntime;
import org.drools.impl.KnowledgeBaseImpl;
-import org.drools.impl.StatefulKnowledgeSessionImpl;
import org.drools.persistence.processinstance.JPAProcessInstanceManager;
import org.drools.persistence.processinstance.JPAWorkItemManager;
import org.drools.process.instance.InternalProcessRuntime;
-import org.drools.reteoo.ReteooStatefulSession;
-import org.drools.reteoo.ReteooWorkingMemory;
import org.drools.runtime.Environment;
import org.drools.runtime.EnvironmentName;
import org.drools.runtime.KnowledgeSessionConfiguration;
@@ -96,11 +93,9 @@
initTransactionManager( this.env );
- ReteooStatefulSession session = (ReteooStatefulSession) ((KnowledgeBaseImpl) kbase).ruleBase.newStatefulSession( (SessionConfiguration) conf,
- this.env );
- this.ksession = new StatefulKnowledgeSessionImpl( session,
- kbase );
-
+ // create session but bypass command service
+ this.ksession = kbase.newStatefulKnowledgeSession(conf, this.env);
+
this.kContext = new KnowledgeCommandContext( new ContextImpl( "ksession",
null ),
null,
@@ -108,12 +103,12 @@
this.ksession,
null );
- ((JpaJDKTimerService) ((StatefulKnowledgeSessionImpl) ksession).session.getTimerService()).setCommandService( this );
+ ((JpaJDKTimerService) ((InternalKnowledgeRuntime) ksession).getTimerService()).setCommandService( this );
this.marshallingHelper = new JPASessionMarshallingHelper( this.ksession,
conf );
this.sessionInfo.setJPASessionMashallingHelper( this.marshallingHelper );
- ((StatefulKnowledgeSessionImpl) this.ksession).session.setEndOperationListener( new EndOperationListenerImpl( this.sessionInfo ) );
+ ((InternalKnowledgeRuntime) this.ksession).setEndOperationListener( new EndOperationListenerImpl( this.sessionInfo ) );
// Use the App scoped EntityManager if the user has provided it, and it is open.
@@ -139,7 +134,7 @@
}
// update the session id to be the same as the session info id
- ((StatefulKnowledgeSessionImpl) ksession).session.setId( this.sessionInfo.getId() );
+ ((InternalKnowledgeRuntime) ksession).setId( this.sessionInfo.getId() );
}
@@ -199,11 +194,11 @@
this.ksession );
// update the session id to be the same as the session info id
- ((StatefulKnowledgeSessionImpl) ksession).session.setId( this.sessionInfo.getId() );
+ ((InternalKnowledgeRuntime) ksession).setId( this.sessionInfo.getId() );
- ((StatefulKnowledgeSessionImpl) this.ksession).session.setEndOperationListener( new EndOperationListenerImpl( this.sessionInfo ) );
+ ((InternalKnowledgeRuntime) this.ksession).setEndOperationListener( new EndOperationListenerImpl( this.sessionInfo ) );
- ((JpaJDKTimerService) ((StatefulKnowledgeSessionImpl) ksession).session.getTimerService()).setCommandService( this );
+ ((JpaJDKTimerService) ((InternalKnowledgeRuntime) ksession).getTimerService()).setCommandService( this );
if ( this.kContext == null ) {
// this should only happen when this class is first constructed
@@ -256,8 +251,8 @@
this.info = info;
}
- public void endOperation(ReteooWorkingMemory wm) {
- this.info.setLastModificationDate( new Date( wm.getLastIdleTimestamp() ) );
+ public void endOperation(InternalKnowledgeRuntime kruntime) {
+ this.info.setLastModificationDate( new Date( kruntime.getLastIdleTimestamp() ) );
}
}
@@ -339,11 +334,11 @@
this.service.jpm.endCommandScopedEntityManager();
- StatefulKnowledgeSessionImpl ksession = ((StatefulKnowledgeSessionImpl) this.service.ksession);
+ StatefulKnowledgeSession ksession = this.service.ksession;
// clean up cached process and work item instances
if ( ksession != null ) {
- ((JPAProcessInstanceManager) ((InternalProcessRuntime) ((InternalWorkingMemory) ksession.session).getProcessRuntime()).getProcessInstanceManager()).clearProcessInstances();
- ((JPAWorkItemManager) ksession.session.getWorkItemManager()).clearWorkItems();
+ ((JPAProcessInstanceManager) ((InternalProcessRuntime) ((InternalKnowledgeRuntime) ksession).getProcessRuntime()).getProcessInstanceManager()).clearProcessInstances();
+ ((JPAWorkItemManager) ksession.getWorkItemManager()).clearWorkItems();
}
}
More information about the jboss-svn-commits
mailing list