[jboss-svn-commits] JBL Code SVN: r13484 - in labs/jbossrules/trunk/drools-core/src/main/java/org/drools: audit and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jul 13 23:28:08 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-07-13 23:28:08 -0400 (Fri, 13 Jul 2007)
New Revision: 13484

Added:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/EventManager.java
Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/StatelessSession.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryFileLogger.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/RuleFlowProcessInstanceImpl.java
Log:
JBRULES-1008 refactor the event interfaces on working memory so both stateless and stateful sessions can support them

Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/EventManager.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/EventManager.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/EventManager.java	2007-07-14 03:28:08 UTC (rev 13484)
@@ -0,0 +1,100 @@
+package org.drools;
+
+/*
+ * Copyright 2005 JBoss Inc
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.Serializable;
+import java.util.List;
+
+import org.drools.event.AgendaEventListener;
+import org.drools.event.AgendaEventSupport;
+import org.drools.event.RuleFlowEventListener;
+import org.drools.event.RuleFlowEventSupport;
+import org.drools.event.WorkingMemoryEventListener;
+import org.drools.event.WorkingMemoryEventSupport;
+
+public interface EventManager
+    extends
+    Serializable {
+    /**
+     * Add an event listener.
+     * 
+     * @param listener
+     *            The listener to add.
+     */
+    public void addEventListener(WorkingMemoryEventListener listener);
+
+    /**
+     * Remove an event listener.
+     * 
+     * @param listener
+     *            The listener to remove.
+     */
+    public void removeEventListener(WorkingMemoryEventListener listener);
+
+    /**
+     * Returns all event listeners.
+     * 
+     * @return listeners The listeners.
+     */
+    public List getWorkingMemoryEventListeners();
+
+    /**
+     * Add an event listener.
+     * 
+     * @param listener
+     *            The listener to add.
+     */
+    public void addEventListener(AgendaEventListener listener);
+
+    /**
+     * Remove an event listener.
+     * 
+     * @param listener
+     *            The listener to remove.
+     */
+    public void removeEventListener(AgendaEventListener listener);
+
+    /**
+     * Returns all event listeners.
+     * 
+     * @return listeners The listeners.
+     */
+    public List getAgendaEventListeners();
+
+    /**
+     * Add an event listener.
+     * 
+     * @param listener
+     *            The listener to add.
+     */
+    public void addEventListener(RuleFlowEventListener listener);
+
+    /**
+     * Remove an event listener.
+     * 
+     * @param listener
+     *            The listener to remove.
+     */
+    public void removeEventListener(RuleFlowEventListener listener);
+
+    /**
+     * Returns all event listeners.
+     * 
+     * @return listeners The listeners.
+     */
+    public List getRuleFlowEventListeners();
+}
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/StatelessSession.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/StatelessSession.java	2007-07-14 00:28:09 UTC (rev 13483)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/StatelessSession.java	2007-07-14 03:28:08 UTC (rev 13484)
@@ -19,26 +19,8 @@
  * Care should be used when using the async versions of the methods, consult the javadoc for 
  * the specific information.
  */
-public interface StatelessSession {
-    public void addEventListener(final WorkingMemoryEventListener listener);
-
-    public void removeEventListener(final WorkingMemoryEventListener listener);
-
-    public List getWorkingMemoryEventListeners();
-
-    public void addEventListener(final AgendaEventListener listener);
-
-    public void removeEventListener(final AgendaEventListener listener);
-
-    public List getAgendaEventListeners();
-
-    public void addEventListener(final RuleFlowEventListener listener);
-
-    public void removeEventListener(final RuleFlowEventListener listener);
-
-    public List getRuleFlowEventListeners();
-    
-    
+public interface StatelessSession extends EventManager {
+        
     void setAgendaFilter(AgendaFilter agendaFilter);
     
     /**

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java	2007-07-14 00:28:09 UTC (rev 13483)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/WorkingMemory.java	2007-07-14 03:28:08 UTC (rev 13484)
@@ -39,73 +39,9 @@
  * the RuleBase reference is transient. Please see the RuleBase interface for serializing
  * in WorkingMemories from an InputStream.
  * 
- * @author <a href="mailto:bob at eng.werken.com">bob mcwhirter </a>
  */
-public interface WorkingMemory
-    extends
-    Serializable {
-    /**
-     * Add an event listener.
-     * 
-     * @param listener
-     *            The listener to add.
-     */
-    public void addEventListener(WorkingMemoryEventListener listener);
+public interface WorkingMemory extends EventManager {
 
-    /**
-     * Remove an event listener.
-     * 
-     * @param listener
-     *            The listener to remove.
-     */
-    public void removeEventListener(WorkingMemoryEventListener listener);
-
-    /**
-     * Returns all event listeners.
-     * 
-     * @return listeners The listeners.
-     */
-    public List getWorkingMemoryEventListeners();
-
-    /**
-     * Add an event listener.
-     * 
-     * @param listener
-     *            The listener to add.
-     */
-    public void addEventListener(AgendaEventListener listener);
-
-    /**
-     * Remove an event listener.
-     * 
-     * @param listener
-     *            The listener to remove.
-     */
-    public void removeEventListener(AgendaEventListener listener);
-
-    /**
-     * Add an event listener.
-     * 
-     * @param listener
-     *            The listener to add.
-     */
-    public void addEventListener(RuleFlowEventListener listener);
-
-    /**
-     * Remove an event listener.
-     * 
-     * @param listener
-     *            The listener to remove.
-     */
-    public void removeEventListener(RuleFlowEventListener listener);
-
-    /**
-     * Returns all event listeners.
-     * 
-     * @return listeners The listeners.
-     */
-    public List getAgendaEventListeners();
-
     public Agenda getAgenda();
 
     /**

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryFileLogger.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryFileLogger.java	2007-07-14 00:28:09 UTC (rev 13483)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryFileLogger.java	2007-07-14 03:28:08 UTC (rev 13484)
@@ -22,6 +22,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.drools.EventManager;
 import org.drools.WorkingMemory;
 import org.drools.audit.event.LogEvent;
 import com.thoughtworks.xstream.XStream;
@@ -53,8 +54,8 @@
      * Creates a new WorkingMemoryFileLogger for the given working memory.
      * @param workingMemory
      */
-    public WorkingMemoryFileLogger(final WorkingMemory workingMemory) {
-        super( workingMemory );
+    public WorkingMemoryFileLogger(final EventManager eventManager) {
+        super( eventManager );
     }
 
     /**

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java	2007-07-14 00:28:09 UTC (rev 13483)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java	2007-07-14 03:28:08 UTC (rev 13484)
@@ -20,6 +20,7 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.drools.EventManager;
 import org.drools.FactHandle;
 import org.drools.WorkingMemory;
 import org.drools.audit.event.ActivationLogEvent;
@@ -71,18 +72,18 @@
     RuleFlowEventListener {
 
     private final List    filters = new ArrayList();
-    private WorkingMemory workingMemory;
+    private EventManager eventManager;
 
     /**
      * Creates a new working memory logger for the given working memory.
      * 
      * @param workingMemory
      */
-    public WorkingMemoryLogger(final WorkingMemory workingMemory) {
-        this.workingMemory = workingMemory;
-        workingMemory.addEventListener( (WorkingMemoryEventListener) this );
-        workingMemory.addEventListener( (AgendaEventListener) this );
-        workingMemory.addEventListener( (RuleFlowEventListener) this );
+    public WorkingMemoryLogger(final EventManager eventManager) {
+        this.eventManager = eventManager;
+        this.eventManager.addEventListener( (WorkingMemoryEventListener) this );
+        this.eventManager.addEventListener( (AgendaEventListener) this );
+        this.eventManager.addEventListener( (RuleFlowEventListener) this );
     }
 
     /**
@@ -181,7 +182,7 @@
         filterLogEvent( new ActivationLogEvent( LogEvent.ACTIVATION_CREATED,
                                                 getActivationId( event.getActivation() ),
                                                 event.getActivation().getRule().getName(),
-                                                extractDeclarations( event.getActivation() ),
+                                                extractDeclarations( event.getActivation(), workingMemory ),
     											event.getActivation().getRule().getRuleFlowGroup() ) );
 	}
 
@@ -193,7 +194,7 @@
         filterLogEvent( new ActivationLogEvent( LogEvent.ACTIVATION_CANCELLED,
                                                 getActivationId( event.getActivation() ),
                                                 event.getActivation().getRule().getName(),
-                                                extractDeclarations( event.getActivation() ),
+                                                extractDeclarations( event.getActivation(), workingMemory ),
     											event.getActivation().getRule().getRuleFlowGroup() ) );
     }
 
@@ -205,7 +206,7 @@
         filterLogEvent( new ActivationLogEvent( LogEvent.BEFORE_ACTIVATION_FIRE,
                                                 getActivationId( event.getActivation() ),
                                                 event.getActivation().getRule().getName(),
-                                                extractDeclarations( event.getActivation() ),
+                                                extractDeclarations( event.getActivation(), workingMemory ),
     											event.getActivation().getRule().getRuleFlowGroup() ) );
     }
 
@@ -217,7 +218,7 @@
         filterLogEvent( new ActivationLogEvent( LogEvent.AFTER_ACTIVATION_FIRE,
                                                 getActivationId( event.getActivation() ),
                                                 event.getActivation().getRule().getName(),
-                                                extractDeclarations( event.getActivation() ),
+                                                extractDeclarations( event.getActivation(), workingMemory ),
     											event.getActivation().getRule().getRuleFlowGroup() ) );
     }
 
@@ -231,7 +232,7 @@
      * @param activation The activation from which the declarations should be extracted
      * @return A String represetation of the declarations of the activation.
      */
-    private String extractDeclarations(final Activation activation) {
+    private String extractDeclarations(final Activation activation,  final WorkingMemory workingMemory) {
         final StringBuffer result = new StringBuffer();
         final Tuple tuple = activation.getTuple();
         final Declaration[] declarations = activation.getRule().getDeclarations();
@@ -244,7 +245,7 @@
                     // This handle is now invalid, probably due to an fact retraction
                     continue;
                 }
-                final Object value = declaration.getValue( (InternalWorkingMemory) workingMemory, this.workingMemory.getObject( handle ) );
+                final Object value = declaration.getValue( (InternalWorkingMemory) workingMemory, workingMemory.getObject( handle ) );
 
                 result.append( declaration.getIdentifier() );
                 result.append( "=" );

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java	2007-07-14 00:28:09 UTC (rev 13483)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/reteoo/RuleTerminalNode.java	2007-07-14 03:28:08 UTC (rev 13484)
@@ -18,11 +18,11 @@
 
 import java.io.Serializable;
 
+import org.drools.common.EventSupport;
 import org.drools.RuleBaseConfiguration;
 import org.drools.common.BinaryHeapQueueAgendaGroup;
 import org.drools.common.AgendaItem;
 import org.drools.common.BaseNode;
-import org.drools.common.EventSupport;
 import org.drools.common.InternalAgenda;
 import org.drools.common.InternalAgendaGroup;
 import org.drools.common.InternalFactHandle;

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/RuleFlowProcessInstanceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/RuleFlowProcessInstanceImpl.java	2007-07-14 00:28:09 UTC (rev 13483)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/ruleflow/instance/impl/RuleFlowProcessInstanceImpl.java	2007-07-14 03:28:08 UTC (rev 13484)
@@ -23,8 +23,8 @@
 import java.util.List;
 
 import org.drools.Agenda;
+import org.drools.common.EventSupport;
 import org.drools.WorkingMemory;
-import org.drools.common.EventSupport;
 import org.drools.common.InternalWorkingMemory;
 import org.drools.event.ActivationCancelledEvent;
 import org.drools.event.ActivationCreatedEvent;




More information about the jboss-svn-commits mailing list