[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