[jboss-svn-commits] JBL Code SVN: r25774 - in labs/jbossrules/branches/salaboy_streams: drools-compiler/src/test/resources/org/drools/integrationtests and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Mar 20 16:05:02 EDT 2009
Author: salaboy21
Date: 2009-03-20 16:05:02 -0400 (Fri, 20 Mar 2009)
New Revision: 25774
Modified:
labs/jbossrules/branches/salaboy_streams/drools-compiler/src/test/java/org/drools/integrationtests/StreamsTest.java
labs/jbossrules/branches/salaboy_streams/drools-compiler/src/test/resources/org/drools/integrationtests/test_EntryPoint_ModifyEvent.drl
labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java
labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryEntryPoint.java
labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java
labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java
labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java
Log:
Leak fixed, InternalWorkingMemoryEntryPoint method exposed
Modified: labs/jbossrules/branches/salaboy_streams/drools-compiler/src/test/java/org/drools/integrationtests/StreamsTest.java
===================================================================
--- labs/jbossrules/branches/salaboy_streams/drools-compiler/src/test/java/org/drools/integrationtests/StreamsTest.java 2009-03-20 17:03:38 UTC (rev 25773)
+++ labs/jbossrules/branches/salaboy_streams/drools-compiler/src/test/java/org/drools/integrationtests/StreamsTest.java 2009-03-20 20:05:02 UTC (rev 25774)
@@ -256,6 +256,11 @@
session.setGlobal( "results",
results );
+ session.setGlobal( "anotherStockTick",
+ new StockTick(100,
+ "SALA",
+ 44,
+ System.currentTimeMillis()) );
StockTick tick1 = new StockTick( 1,
"DROO",
Modified: labs/jbossrules/branches/salaboy_streams/drools-compiler/src/test/resources/org/drools/integrationtests/test_EntryPoint_ModifyEvent.drl
===================================================================
--- labs/jbossrules/branches/salaboy_streams/drools-compiler/src/test/resources/org/drools/integrationtests/test_EntryPoint_ModifyEvent.drl 2009-03-20 17:03:38 UTC (rev 25773)
+++ labs/jbossrules/branches/salaboy_streams/drools-compiler/src/test/resources/org/drools/integrationtests/test_EntryPoint_ModifyEvent.drl 2009-03-20 20:05:02 UTC (rev 25774)
@@ -3,21 +3,25 @@
import org.drools.StockTick;
global java.util.List results;
-
+global org.drools.StockTick anotherStockTick;
declare StockTick
@role( event )
end
rule "Test entry point modify event"
- #dialect "mvel"
+ dialect "mvel"
when
- $st : StockTick( company == "ACME", price > 10 ) from entry-point StockStream
+ $st : StockTick( company == "ACME", price > 10 ) from entry-point "StockStream"
then
- modify( $st ){
- setPrice(10)
+ #modify( $st ){
+ # setPrice(10)
+ #}
+ modify ( $st ){
+ price = 10
}
- #modify ( $st ){
- # price = 10
- #}
+ modify (anotherStockTick){
+ price = 10
+ }
+ #anotherStockTick.price = 10.0
results.add( $st );
end
Modified: labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java
===================================================================
--- labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java 2009-03-20 17:03:38 UTC (rev 25773)
+++ labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/base/DefaultKnowledgeHelper.java 2009-03-20 20:05:02 UTC (rev 25774)
@@ -111,7 +111,7 @@
false,
this.rule,
this.activation );
- this.identityMap.put(object, handle);
+ this.getIdentityMap().put(object, handle);
}
public void insertLogical(final Object object) throws FactException {
@@ -127,7 +127,7 @@
true,
this.rule,
this.activation );
- this.identityMap.put(object, handle);
+ this.getIdentityMap().put(object, handle);
}
public void update(final FactHandle handle,
@@ -160,7 +160,7 @@
}
public void retract(final Object object) throws FactException {
- FactHandle handle = identityMap.get( object );
+ FactHandle handle = getIdentityMap().get( object );
if ( handle == null ) {
throw new FactException( "Retract error: handle not found for object: " + object + ". Is it in the working memory?" );
}
@@ -169,12 +169,12 @@
true,
this.rule,
this.activation );
- this.identityMap.remove(object);
+ this.getIdentityMap().remove(object);
}
public void modifyRetract(final Object object) {
- FactHandle handle = identityMap.get( object );
+ FactHandle handle = getIdentityMap().get( object );
this.workingMemory.modifyRetract( handle,
rule,
activation );
@@ -187,13 +187,13 @@
}
public void modifyInsert(final Object object) {
- FactHandle handle = identityMap.get( object );
+ FactHandle handle = getIdentityMap().get( object );
this.workingMemory.modifyInsert( handle,
object,
rule,
activation );
- this.identityMap.put(object, handle);
+ this.getIdentityMap().put(object, handle);
}
public void modifyInsert(final FactHandle factHandle,
@@ -202,7 +202,7 @@
object,
rule,
activation );
- this.identityMap.put(object, factHandle);
+ this.getIdentityMap().put(object, factHandle);
}
public Rule getRule() {
@@ -265,7 +265,7 @@
public Declaration getDeclaration(final String identifier) {
Declaration declaration = (Declaration) this.subrule.getOuterDeclarations().get( identifier );
- identityMap.put(tuple.get(declaration).getObject(), tuple.get(declaration));
+ getIdentityMap().put(tuple.get(declaration).getObject(), tuple.get(declaration));
return declaration;
}
@@ -288,4 +288,18 @@
public Map<String, ExitPoint> getExitPoints() {
return Collections.unmodifiableMap( this.workingMemory.getExitPoints() );
}
+
+ /**
+ * @return the identityMap
+ */
+ public IdentityHashMap<Object, FactHandle> getIdentityMap() {
+ return identityMap;
+ }
+
+ /**
+ * @param identityMap the identityMap to set
+ */
+ public void setIdentityMap(IdentityHashMap<Object, FactHandle> identityMap) {
+ this.identityMap = identityMap;
+ }
}
Modified: labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java
===================================================================
--- labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2009-03-20 17:03:38 UTC (rev 25773)
+++ labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/common/AbstractWorkingMemory.java 2009-03-20 20:05:02 UTC (rev 25774)
@@ -102,7 +102,6 @@
import org.drools.time.SessionClock;
import org.drools.time.TimerService;
import org.drools.time.TimerServiceFactory;
-import org.drools.util.ObjectHashMap;
import org.drools.workflow.core.node.EventTrigger;
import org.drools.workflow.core.node.StartNode;
import org.drools.workflow.core.node.Trigger;
@@ -1350,7 +1349,14 @@
null,
null );
}
+ public void update(final org.drools.runtime.rule.FactHandle factHandle,
+ final Object object,
+ final Rule rule,
+ final Activation activation) throws FactException {
+ update((org.drools.FactHandle)factHandle, object, rule, activation);
+ }
+
/**
* modify is implemented as half way retract / assert due to the truth
* maintenance issues.
Modified: labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryEntryPoint.java
===================================================================
--- labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryEntryPoint.java 2009-03-20 17:03:38 UTC (rev 25773)
+++ labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/common/InternalWorkingMemoryEntryPoint.java 2009-03-20 20:05:02 UTC (rev 25774)
@@ -1,9 +1,32 @@
package org.drools.common;
+import org.drools.FactException;
+import org.drools.FactHandle;
import org.drools.RuleBase;
+import org.drools.rule.Rule;
+
+
import org.drools.runtime.rule.WorkingMemoryEntryPoint;
+import org.drools.spi.Activation;
public interface InternalWorkingMemoryEntryPoint extends WorkingMemoryEntryPoint {
ObjectTypeConfigurationRegistry getObjectTypeConfigurationRegistry();
RuleBase getRuleBase();
+ public void retract(final FactHandle factHandle,
+ final boolean removeLogical,
+ final boolean updateEqualsMap,
+ final Rule rule,
+ final Activation activation) throws FactException;
+ public void update(org.drools.runtime.rule.FactHandle handle,
+ Object object,
+ Rule rule,
+ Activation activation) throws FactException;
+ public void modifyRetract(final FactHandle factHandle,
+ final Rule rule,
+ final Activation activation);
+ public void modifyInsert(final FactHandle factHandle,
+ final Object object,
+ final Rule rule,
+ final Activation activation);
+
}
Modified: labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java
===================================================================
--- labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java 2009-03-20 17:03:38 UTC (rev 25773)
+++ labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/common/NamedEntryPoint.java 2009-03-20 20:05:02 UTC (rev 25774)
@@ -22,7 +22,7 @@
import org.drools.spi.Activation;
import org.drools.spi.FactHandleFactory;
import org.drools.spi.PropagationContext;
-
+
public class NamedEntryPoint
implements
InternalWorkingMemoryEntryPoint,
@@ -68,14 +68,14 @@
this.typeConfReg = new ObjectTypeConfigurationRegistry( this.ruleBase );
this.handleFactory = this.wm.getFactHandleFactory();
this.objectStore = new SingleThreadedObjectStore( this.ruleBase.getConfiguration(),
- this.lock );
+ this.lock );
}
/**
* @see WorkingMemory
*/
public FactHandle insert(final Object object) throws FactException {
- return insert( object, /* Not-Dynamic */
+ return insert( object, /* Not-Dynamic */
false,
false,
null,
@@ -121,7 +121,7 @@
object,
rule,
activation );
-
+
} finally {
this.lock.unlock();
}
@@ -169,7 +169,7 @@
null );
}
- protected void update(final org.drools.runtime.rule.FactHandle factHandle,
+ public void update(final org.drools.runtime.rule.FactHandle factHandle,
final Object object,
final Rule rule,
final Activation activation) throws FactException {
Modified: labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java
===================================================================
--- labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java 2009-03-20 17:03:38 UTC (rev 25773)
+++ labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java 2009-03-20 20:05:02 UTC (rev 25774)
@@ -8,10 +8,12 @@
import java.util.List;
import java.util.Map;
+import org.drools.FactException;
import org.drools.KnowledgeBase;
import org.drools.RuleBase;
import org.drools.WorkingMemory;
import org.drools.command.Command;
+import org.drools.common.AbstractWorkingMemory;
import org.drools.common.InternalAgenda;
import org.drools.common.InternalFactHandle;
import org.drools.common.InternalWorkingMemory;
@@ -28,7 +30,6 @@
import org.drools.event.ObjectRetractedEvent;
import org.drools.event.ObjectUpdatedEvent;
import org.drools.event.RuleFlowCompletedEvent;
-import org.drools.event.RuleFlowEventListener;
import org.drools.event.RuleFlowGroupActivatedEvent;
import org.drools.event.RuleFlowGroupDeactivatedEvent;
import org.drools.event.RuleFlowNodeTriggeredEvent;
@@ -38,7 +39,6 @@
import org.drools.event.process.impl.ProcessNodeLeftEventImpl;
import org.drools.event.process.impl.ProcessNodeTriggeredEventImpl;
import org.drools.event.process.impl.ProcessStartedEventImpl;
-import org.drools.event.rule.ActivationCancelledCause;
import org.drools.event.rule.AgendaEventListener;
import org.drools.event.rule.WorkingMemoryEventListener;
import org.drools.event.rule.impl.ActivationCancelledEventImpl;
@@ -51,6 +51,7 @@
import org.drools.event.rule.impl.ObjectRetractedEventImpl;
import org.drools.event.rule.impl.ObjectUpdatedEventImpl;
import org.drools.reteoo.ReteooWorkingMemory;
+import org.drools.rule.Rule;
import org.drools.runtime.BatchExecutionResults;
import org.drools.runtime.BatchExecutor;
import org.drools.runtime.Environment;
@@ -61,6 +62,7 @@
import org.drools.runtime.process.WorkItemManager;
import org.drools.runtime.rule.Agenda;
import org.drools.runtime.rule.AgendaFilter;
+
import org.drools.runtime.rule.FactHandle;
import org.drools.runtime.rule.QueryResults;
import org.drools.runtime.rule.WorkingMemoryEntryPoint;
@@ -325,6 +327,22 @@
ObjectStoreWrapper.OBJECT );
}
+ public void retract(org.drools.FactHandle factHandle, boolean removeLogical, boolean updateEqualsMap, Rule rule, Activation activation) throws FactException {
+ ((AbstractWorkingMemory)this.session).retract(factHandle, removeLogical, updateEqualsMap, rule, activation);
+ }
+
+ public void update(FactHandle factHandle, Object object, Rule rule, Activation activation) throws FactException {
+ ((AbstractWorkingMemory)this.session).update((org.drools.FactHandle)factHandle, object, rule, activation);
+ }
+
+ public void modifyRetract(org.drools.FactHandle factHandle, Rule rule, Activation activation) {
+ ((AbstractWorkingMemory)this.session).modifyRetract(factHandle, rule, activation);
+ }
+
+ public void modifyInsert(org.drools.FactHandle factHandle, Object object, Rule rule, Activation activation) {
+ ((AbstractWorkingMemory)this.session).modifyInsert(factHandle, object, rule, activation);
+ }
+
public static abstract class AbstractImmutableCollection
implements
Collection {
Modified: labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java
===================================================================
--- labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java 2009-03-20 17:03:38 UTC (rev 25773)
+++ labs/jbossrules/branches/salaboy_streams/drools-core/src/main/java/org/drools/reteoo/ReteooWorkingMemory.java 2009-03-20 20:05:02 UTC (rev 25774)
@@ -56,7 +56,7 @@
public class ReteooWorkingMemory extends AbstractWorkingMemory {
/**
- *
+ *
*/
private static final long serialVersionUID = 400L;
@@ -335,7 +335,7 @@
((EventFactHandle)factHandle).setExpired( true );
this.node.retractObject( factHandle,
context,
- workingMemory );
+ workingMemory );
// if no activations for this expired event
if( ((EventFactHandle)factHandle).getActivationsCount() == 0 ) {
More information about the jboss-svn-commits
mailing list