[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