[jboss-svn-commits] JBL Code SVN: r23250 - in labs/jbossrules/branches/drools-api-refactor-20080929: drools-api/src/main/java/org/drools/event/rule and 10 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Oct 1 22:04:50 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-10-01 22:04:49 -0400 (Wed, 01 Oct 2008)
New Revision: 23250
Added:
labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/ProcessRuntime.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/PropagationContext.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/RuleRuntime.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleRuntimeEvent.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleRuntimeEventListener.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleRuntimeEventManager.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/ObjectInsertedEventImpl.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/ObjectRetractedEventImpl.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/ObjectUpdatedEventImpl.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/RuleRuntimeEventImpl.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/SerializablePropagationContext.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/impl/SerializedRule.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/test/java/org/drools/event/rule/
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/test/java/org/drools/event/rule/RuleRuntimeEventSupportTest.java
Removed:
labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/ProcessSession.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/RuleSession.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleSessionEvent.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleSessionEventListener.java
Modified:
labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/StatefulProcessSession.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/StatefulRuleSession.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/ObjectInsertedEvent.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/ObjectRetractedEvent.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/ObjectUpdatedEvent.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/common/PropagationContextImpl.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/common/TruthMaintenanceSystem.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/marshalling/OutputMarshaller.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/rule/Rule.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/spi/PropagationContext.java
labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/test/java/org/drools/event/WorkingMemoryEventSupportTest.java
Log:
JBRULES-1734 Drools API
-Now supports the RuleRuntimeEventListeners
Copied: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/ProcessRuntime.java (from rev 23226, labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/ProcessSession.java)
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/ProcessRuntime.java (rev 0)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/ProcessRuntime.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -0,0 +1,5 @@
+package org.drools;
+
+public interface ProcessRuntime {
+
+}
Property changes on: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/ProcessRuntime.java
___________________________________________________________________
Name: svn:mergeinfo
+
Deleted: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/ProcessSession.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/ProcessSession.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/ProcessSession.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -1,5 +0,0 @@
-package org.drools;
-
-public interface ProcessSession {
-
-}
Added: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/PropagationContext.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/PropagationContext.java (rev 0)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/PropagationContext.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -0,0 +1,20 @@
+package org.drools;
+
+import org.drools.knowledge.definitions.rule.Rule;
+
+public interface PropagationContext {
+ public static final int ASSERTION = 0;
+ public static final int RETRACTION = 1;
+ public static final int MODIFICATION = 2;
+ public static final int RULE_ADDITION = 3;
+ public static final int RULE_REMOVAL = 4;
+
+ public long getPropagationNumber();
+
+ public Rule getRule();
+
+ public FactHandle getFactHandle();
+
+
+ public int getType();
+}
Copied: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/RuleRuntime.java (from rev 23226, labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/RuleSession.java)
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/RuleRuntime.java (rev 0)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/RuleRuntime.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -0,0 +1,33 @@
+package org.drools;
+
+import java.util.Collection;
+
+import org.drools.event.rule.RuleRuntimeEventManager;
+import org.drools.time.SessionClock;
+
+public interface RuleRuntime extends RuleRuntimeEventManager {
+ FactHandle insert(Object object);
+
+ void retract(FactHandle factHandle);
+
+ void update(FactHandle factHandle);
+
+ void update(FactHandle factHandle, Object object);
+
+ void halt();
+ /**
+ * Returns the session clock instance associated with this session
+ * @return
+ */
+ public SessionClock getSessionClock();
+
+ FactHandle getFactHandle(Object object);
+
+ Collection<?> getObjects();
+
+ Collection<?> getObjects(ObjectFilter filter);
+
+ Collection<? extends FactHandle> getFactHandles();
+
+ Collection<? extends FactHandle> getFactHandles(ObjectFilter filter);
+}
Property changes on: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/RuleRuntime.java
___________________________________________________________________
Name: svn:mergeinfo
+
Deleted: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/RuleSession.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/RuleSession.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/RuleSession.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -1,5 +0,0 @@
-package org.drools;
-
-public interface RuleSession {
-
-}
Modified: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/StatefulProcessSession.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/StatefulProcessSession.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/StatefulProcessSession.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -6,7 +6,7 @@
import org.drools.process.instance.ProcessInstance;
import org.drools.process.instance.WorkItemManager;
-public interface StatefulProcessSession {
+public interface StatefulProcessSession extends ProcessRuntime {
ProcessInstance startProcess(String processId);
Modified: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/StatefulRuleSession.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/StatefulRuleSession.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/StatefulRuleSession.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -1,40 +1,17 @@
package org.drools;
-import java.util.Collection;
import java.util.concurrent.Future;
-import org.drools.time.SessionClock;
+public interface StatefulRuleSession extends RuleRuntime {
-public interface StatefulRuleSession {
- FactHandle insert(Object object);
- void retract(FactHandle factHandle);
- void update(FactHandle factHandle);
- void update(FactHandle factHandle, Object object);
-
- void fireAllRules();
-
- void halt();
-
- /**
- * Returns the session clock instance associated with this session
- * @return
- */
- public SessionClock getSessionClock();
-
-
Future<Object> asyncInsert( Object object );
+
Future<Object> asyncInsert( Object[] array );
- Future<Object> asyncInsert( Iterable<?> iterable );
- Future<?> asyncFireAllRules();
+ Future<Object> asyncInsert( Iterable<?> iterable );
- FactHandle getFactHandle(Object object);
+ void fireAllRules();
- Collection<?> getObjects();
-
- Collection<?> getObjects(ObjectFilter filter);
-
- Collection<? extends FactHandle> getFactHandles();
-
- Collection<? extends FactHandle> getFactHandles(ObjectFilter filter);
+ Future<?> asyncFireAllRules();
+
}
Modified: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/ObjectInsertedEvent.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/ObjectInsertedEvent.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/ObjectInsertedEvent.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -19,7 +19,7 @@
import org.drools.FactHandle;
-public interface ObjectInsertedEvent extends RuleSessionEvent {
+public interface ObjectInsertedEvent extends RuleRuntimeEvent {
FactHandle getFactHandle();
Object getObject();
}
\ No newline at end of file
Modified: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/ObjectRetractedEvent.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/ObjectRetractedEvent.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/ObjectRetractedEvent.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -18,7 +18,7 @@
import org.drools.FactHandle;
-public interface ObjectRetractedEvent extends RuleSessionEvent {
+public interface ObjectRetractedEvent extends RuleRuntimeEvent {
public FactHandle getFactHandle();
Modified: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/ObjectUpdatedEvent.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/ObjectUpdatedEvent.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/ObjectUpdatedEvent.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -18,7 +18,7 @@
import org.drools.FactHandle;
-public interface ObjectUpdatedEvent extends RuleSessionEvent {
+public interface ObjectUpdatedEvent extends RuleRuntimeEvent {
public FactHandle getFactHandle();
Copied: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleRuntimeEvent.java (from rev 23226, labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleSessionEvent.java)
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleRuntimeEvent.java (rev 0)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleRuntimeEvent.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -0,0 +1,14 @@
+package org.drools.event.rule;
+
+import org.drools.PropagationContext;
+import org.drools.RuleRuntime;
+
+public interface RuleRuntimeEvent {
+
+ /**
+ * This method returns null after it is Serialized
+ */
+ public RuleRuntime getRuleRuntime();
+
+ public PropagationContext getPropagationContext();
+}
Property changes on: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleRuntimeEvent.java
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleRuntimeEventListener.java (from rev 23226, labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleSessionEventListener.java)
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleRuntimeEventListener.java (rev 0)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleRuntimeEventListener.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -0,0 +1,30 @@
+package org.drools.event.rule;
+
+/*
+ * 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.util.EventListener;
+
+public interface RuleRuntimeEventListener
+ extends
+ EventListener {
+ void objectInserted(ObjectInsertedEvent event);
+
+ void objectUpdated(ObjectUpdatedEvent event);
+
+ void objectRetracted(ObjectRetractedEvent event);
+
+}
\ No newline at end of file
Property changes on: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleRuntimeEventListener.java
___________________________________________________________________
Name: svn:mergeinfo
+
Added: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleRuntimeEventManager.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleRuntimeEventManager.java (rev 0)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleRuntimeEventManager.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -0,0 +1,30 @@
+package org.drools.event.rule;
+
+import java.util.Collection;
+
+public interface RuleRuntimeEventManager {
+
+ /**
+ * Add an event listener.
+ *
+ * @param listener
+ * The listener to add.
+ */
+ public void addEventListener(RuleRuntimeEventListener listener);
+
+ /**
+ * Remove an event listener.
+ *
+ * @param listener
+ * The listener to remove.
+ */
+ public void removeEventListener(RuleRuntimeEventListener listener);
+
+ /**
+ * Returns all event listeners.
+ *
+ * @return listeners The listeners.
+ */
+ public Collection<RuleRuntimeEventListener> getRuleRuntimeEventListeners();
+
+}
Deleted: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleSessionEvent.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleSessionEvent.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleSessionEvent.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -1,8 +0,0 @@
-package org.drools.event.rule;
-
-import org.drools.RuleSession;
-
-public interface RuleSessionEvent {
- public RuleSession getRuleSession();
-
-}
Deleted: labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleSessionEventListener.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleSessionEventListener.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-api/src/main/java/org/drools/event/rule/RuleSessionEventListener.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -1,30 +0,0 @@
-package org.drools.event.rule;
-
-/*
- * 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.util.EventListener;
-
-public interface RuleSessionEventListener
- extends
- EventListener {
- void objectInserted(ObjectInsertedEvent event);
-
- void objectUpdated(ObjectUpdatedEvent event);
-
- void objectRetracted(ObjectRetractedEvent event);
-
-}
\ No newline at end of file
Modified: labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/common/PropagationContextImpl.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/common/PropagationContextImpl.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/common/PropagationContextImpl.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -16,6 +16,7 @@
* limitations under the License.
*/
+import org.drools.FactHandle;
import org.drools.reteoo.LeftTuple;
import org.drools.rule.EntryPoint;
import org.drools.rule.Rule;
@@ -123,6 +124,10 @@
public Rule getRuleOrigin() {
return this.rule;
}
+
+ public org.drools.knowledge.definitions.rule.Rule getRule() {
+ return this.rule;
+ }
public LeftTuple getLeftTupleOrigin() {
return this.leftTuple;
@@ -131,6 +136,10 @@
public InternalFactHandle getFactHandleOrigin() {
return this.factHandle;
}
+
+ public FactHandle getFactHandle() {
+ return this.factHandle;
+ }
/*
* (non-Javadoc)
Modified: labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/common/TruthMaintenanceSystem.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/common/TruthMaintenanceSystem.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/common/TruthMaintenanceSystem.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -282,7 +282,7 @@
workingMemory.retract( this.handle,
false,
true,
- context.getRuleOrigin(),
+ (Rule) context.getRuleOrigin(),
this.activation );
}
}
Added: labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/ObjectInsertedEventImpl.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/ObjectInsertedEventImpl.java (rev 0)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/ObjectInsertedEventImpl.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -0,0 +1,45 @@
+package org.drools.event.rule.impl;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.drools.FactHandle;
+import org.drools.RuleRuntime;
+import org.drools.event.rule.ObjectInsertedEvent;
+import org.drools.impl.StatefulKnowledgeSessionImpl;
+import org.drools.reteoo.ReteooStatefulSession;
+
+public class ObjectInsertedEventImpl extends RuleRuntimeEventImpl
+ implements
+ ObjectInsertedEvent {
+ private FactHandle factHandle;
+ private Object object;
+
+ public ObjectInsertedEventImpl(org.drools.event.ObjectInsertedEvent event) {
+ super( (RuleRuntime) new StatefulKnowledgeSessionImpl( (ReteooStatefulSession) event.getWorkingMemory() ), event.getPropagationContext() );
+ factHandle = event.getFactHandle();
+ object = event.getObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ super.writeExternal( out );
+ out.writeObject( factHandle );
+ out.writeObject( object );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ super.readExternal( in );
+ this.factHandle = ( FactHandle ) in.readObject();
+ this.object = in.readObject();
+ }
+
+ public FactHandle getFactHandle() {
+ return this.factHandle;
+ }
+
+ public Object getObject() {
+ return this.object;
+ }
+}
Added: labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/ObjectRetractedEventImpl.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/ObjectRetractedEventImpl.java (rev 0)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/ObjectRetractedEventImpl.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -0,0 +1,43 @@
+package org.drools.event.rule.impl;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.drools.FactHandle;
+import org.drools.RuleRuntime;
+import org.drools.event.rule.ObjectRetractedEvent;
+import org.drools.impl.StatefulKnowledgeSessionImpl;
+import org.drools.reteoo.ReteooStatefulSession;
+
+public class ObjectRetractedEventImpl extends RuleRuntimeEventImpl implements ObjectRetractedEvent {
+ private FactHandle factHandle;
+ private Object oldbOject;
+
+ public ObjectRetractedEventImpl( org.drools.event.ObjectRetractedEvent event) {
+ super( (RuleRuntime) new StatefulKnowledgeSessionImpl( (ReteooStatefulSession) event.getWorkingMemory() ), event.getPropagationContext() );
+ factHandle = event.getFactHandle();
+ oldbOject = event.getOldObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ super.writeExternal( out );
+ out.writeObject( factHandle );
+ out.writeObject( oldbOject );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ super.readExternal( in );
+ this.factHandle = ( FactHandle ) in.readObject();
+ this.oldbOject = in.readObject();
+ }
+
+ public FactHandle getFactHandle() {
+ return this.factHandle;
+ }
+
+ public Object getOldObject() {
+ return this.oldbOject;
+ }
+}
Added: labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/ObjectUpdatedEventImpl.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/ObjectUpdatedEventImpl.java (rev 0)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/ObjectUpdatedEventImpl.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -0,0 +1,52 @@
+package org.drools.event.rule.impl;
+
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.drools.FactHandle;
+import org.drools.RuleRuntime;
+import org.drools.event.rule.ObjectUpdatedEvent;
+import org.drools.impl.StatefulKnowledgeSessionImpl;
+import org.drools.reteoo.ReteooStatefulSession;
+
+public class ObjectUpdatedEventImpl extends RuleRuntimeEventImpl implements ObjectUpdatedEvent {
+ private FactHandle factHandle;
+ private Object object;
+ private Object oldObject;
+
+ public ObjectUpdatedEventImpl(org.drools.event.ObjectUpdatedEvent event) {
+ super( (RuleRuntime) new StatefulKnowledgeSessionImpl( (ReteooStatefulSession) event.getWorkingMemory() ), event.getPropagationContext() );
+ factHandle = event.getFactHandle();
+ object = event.getObject();
+ object = event.getOldObject();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ super.writeExternal( out );
+ out.writeObject( factHandle );
+ out.writeObject( object );
+ out.writeObject( oldObject );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ super.readExternal( in );
+ this.factHandle = ( FactHandle ) in.readObject();
+ this.object = in.readObject();
+ this.oldObject = in.readObject();
+ }
+
+ public FactHandle getFactHandle() {
+ return this.factHandle;
+ }
+
+ public Object getObject() {
+ return this.object;
+ }
+
+ public Object getOldObject() {
+ return this.oldObject;
+ }
+
+}
Added: labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/RuleRuntimeEventImpl.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/RuleRuntimeEventImpl.java (rev 0)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/RuleRuntimeEventImpl.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -0,0 +1,40 @@
+package org.drools.event.rule.impl;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.drools.PropagationContext;
+import org.drools.RuleRuntime;
+import org.drools.event.rule.RuleRuntimeEvent;
+
+public class RuleRuntimeEventImpl implements RuleRuntimeEvent, Externalizable {
+ private RuleRuntime ruleRuntime;
+
+ private PropagationContext propagationContext;
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ new SerializablePropagationContext( propagationContext ).writeExternal( out );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ this.ruleRuntime = null; // null because we don't serialise this
+ this.propagationContext = new SerializablePropagationContext();
+ ((SerializablePropagationContext)this.propagationContext).readExternal( in );
+ }
+
+ public RuleRuntimeEventImpl(RuleRuntime ruleRuntime, PropagationContext propagationContext) {
+ this.ruleRuntime = ruleRuntime;
+ this.propagationContext = propagationContext;
+ }
+
+ public RuleRuntime getRuleRuntime() {
+ return this.ruleRuntime;
+ }
+
+ public PropagationContext getPropagationContext() {
+ return this.propagationContext;
+ }
+}
Added: labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/SerializablePropagationContext.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/SerializablePropagationContext.java (rev 0)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/event/rule/impl/SerializablePropagationContext.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -0,0 +1,62 @@
+package org.drools.event.rule.impl;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.drools.FactHandle;
+import org.drools.PropagationContext;
+import org.drools.impl.SerializedRule;
+import org.drools.knowledge.definitions.rule.Rule;
+
+public class SerializablePropagationContext
+ implements
+ PropagationContext,
+ Externalizable {
+ private FactHandle factHandle;
+ private long propgationNumber;
+ private Rule rule;
+ private int type;
+
+ public SerializablePropagationContext() {
+
+ }
+
+ public SerializablePropagationContext(PropagationContext propagationContext) {
+ this.factHandle = propagationContext.getFactHandle();
+ this.propgationNumber = propagationContext.getPropagationNumber();
+ this.rule = propagationContext.getRule();
+ this.type = propagationContext.getType();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeObject( this.factHandle );
+ out.writeLong( this.propgationNumber );
+ new SerializedRule( rule ).writeExternal( out );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ this.factHandle = ( FactHandle ) in.readObject();
+ this.propgationNumber = in.readLong();
+ this.rule = new SerializedRule();
+ ((SerializedRule)this.rule).readExternal( in );
+ }
+
+ public FactHandle getFactHandle() {
+ return this.factHandle;
+ }
+
+ public long getPropagationNumber() {
+ return this.propgationNumber;
+ }
+
+ public Rule getRule() {
+ return this.rule;
+ }
+
+ public int getType() {
+ return this.type;
+ }
+}
Added: labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/impl/SerializedRule.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/impl/SerializedRule.java (rev 0)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/impl/SerializedRule.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -0,0 +1,45 @@
+package org.drools.impl;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+import org.drools.knowledge.definitions.rule.Rule;
+
+public class SerializedRule
+ implements
+ Rule,
+ Externalizable {
+ private String name;
+ private String packageName;
+
+ public SerializedRule() {
+
+ }
+
+ public SerializedRule(Rule rule) {
+ this.name = rule.getName();
+ this.packageName = rule.getPackageName();
+ }
+
+ public void writeExternal(ObjectOutput out) throws IOException {
+ out.writeUTF( name );
+ out.writeUTF( packageName );
+ }
+
+ public void readExternal(ObjectInput in) throws IOException,
+ ClassNotFoundException {
+ name = in.readUTF();
+ packageName = in.readUTF();
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public String getPackageName() {
+ return this.packageName;
+ }
+
+}
Modified: labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/impl/StatefulKnowledgeSessionImpl.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -1,7 +1,10 @@
package org.drools.impl;
import java.util.Collection;
+import java.util.Collections;
+import java.util.IdentityHashMap;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.Future;
@@ -12,6 +15,14 @@
import org.drools.common.InternalFactHandle;
import org.drools.common.ObjectStore;
import org.drools.concurrent.FutureAdapter;
+import org.drools.event.ObjectInsertedEvent;
+import org.drools.event.ObjectRetractedEvent;
+import org.drools.event.ObjectUpdatedEvent;
+import org.drools.event.WorkingMemoryEventListener;
+import org.drools.event.rule.RuleRuntimeEventListener;
+import org.drools.event.rule.impl.ObjectInsertedEventImpl;
+import org.drools.event.rule.impl.ObjectRetractedEventImpl;
+import org.drools.event.rule.impl.ObjectUpdatedEventImpl;
import org.drools.process.instance.ProcessInstance;
import org.drools.process.instance.WorkItemManager;
import org.drools.reteoo.ReteooStatefulSession;
@@ -22,14 +33,39 @@
StatefulKnowledgeSession {
public ReteooStatefulSession session;
public KnowledgeBaseImpl kbase;
+
+ public Map<RuleRuntimeEventListener, WorkingMemoryEventListenerWrapper> mappedListeners;
+
+ public StatefulKnowledgeSessionImpl(ReteooStatefulSession session) {
+ this( session, null );
+ }
public StatefulKnowledgeSessionImpl(ReteooStatefulSession session, KnowledgeBaseImpl kbase) {
this.session = session;
this.kbase = kbase;
+ this.mappedListeners = new IdentityHashMap<RuleRuntimeEventListener, WorkingMemoryEventListenerWrapper>();
}
+ public void addEventListener(RuleRuntimeEventListener listener) {
+ WorkingMemoryEventListenerWrapper wrapper = new WorkingMemoryEventListenerWrapper( listener );
+ this.mappedListeners.put( listener, wrapper );
+ session.addEventListener( wrapper );
+ }
+
+ public void removeEventListener(RuleRuntimeEventListener listener) {
+ WorkingMemoryEventListenerWrapper wrapper = this.mappedListeners.get( listener );
+ session.removeEventListener( wrapper );
+ }
+
+ public Collection<RuleRuntimeEventListener> getRuleRuntimeEventListeners() {
+ return Collections.unmodifiableCollection( mappedListeners.keySet() );
+ }
+
public KnowledgeBase getKnowledgeBase() {
- return kbase;
+ if ( this.kbase == null ) {
+ this.kbase = new KnowledgeBaseImpl( session.getRuleBase() );
+ }
+ return this.kbase;
}
public void fireAllRules() {
@@ -254,5 +290,24 @@
return array;
}
}
+
+ public static class WorkingMemoryEventListenerWrapper implements WorkingMemoryEventListener {
+ RuleRuntimeEventListener listener;
+
+ public WorkingMemoryEventListenerWrapper(RuleRuntimeEventListener listener) {
+ this.listener = listener;
+ }
+ public void objectInserted(ObjectInsertedEvent event) {
+ listener.objectInserted( new ObjectInsertedEventImpl( event ) );
+ }
+
+ public void objectRetracted(ObjectRetractedEvent event) {
+ listener.objectRetracted( new ObjectRetractedEventImpl( event ) );
+ }
+
+ public void objectUpdated(ObjectUpdatedEvent event) {
+ listener.objectUpdated( new ObjectUpdatedEventImpl( event ) );
+ }
+ }
}
Modified: labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/marshalling/OutputMarshaller.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/marshalling/OutputMarshaller.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/marshalling/OutputMarshaller.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -684,7 +684,7 @@
stream.writeLong( pc.getPropagationNumber() );
if ( pc.getFactHandleOrigin() != null ) {
- stream.writeInt( pc.getFactHandleOrigin().getId() );
+ stream.writeInt( ((InternalFactHandle)pc.getFactHandleOrigin()).getId() );
} else {
stream.writeInt( -1 );
}
Modified: labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/rule/Rule.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/rule/Rule.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/rule/Rule.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -49,7 +49,8 @@
implements
Externalizable,
Wireable,
- Dialectable {
+ Dialectable,
+ org.drools.knowledge.definitions.rule.Rule {
/**
*
*/
@@ -309,6 +310,10 @@
public void setPackage(String pkg) {
this.pkg = pkg;
}
+
+ public String getPackageName() {
+ return this.pkg;
+ }
/**
* Retrieve the name of this rule.
Modified: labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/spi/PropagationContext.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/spi/PropagationContext.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/main/java/org/drools/spi/PropagationContext.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -18,31 +18,22 @@
import java.io.Externalizable;
-import org.drools.common.InternalFactHandle;
+import org.drools.FactHandle;
import org.drools.reteoo.LeftTuple;
import org.drools.rule.EntryPoint;
import org.drools.rule.Rule;
public interface PropagationContext
extends
- Externalizable {
+ Externalizable,
+ org.drools.PropagationContext {
- public static final int ASSERTION = 0;
- public static final int RETRACTION = 1;
- public static final int MODIFICATION = 2;
- public static final int RULE_ADDITION = 3;
- public static final int RULE_REMOVAL = 4;
+ public Rule getRuleOrigin();
+
+ public FactHandle getFactHandleOrigin();
- public long getPropagationNumber();
-
- public Rule getRuleOrigin();
-
public LeftTuple getLeftTupleOrigin();
-
- public InternalFactHandle getFactHandleOrigin();
- public int getType();
-
public int getActiveActivations();
public int getDormantActivations();
Modified: labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/test/java/org/drools/event/WorkingMemoryEventSupportTest.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/test/java/org/drools/event/WorkingMemoryEventSupportTest.java 2008-10-01 16:53:53 UTC (rev 23249)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/test/java/org/drools/event/WorkingMemoryEventSupportTest.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -60,18 +60,18 @@
wm.addEventListener( workingMemoryListener );
final Cheese stilton = new Cheese( "stilton",
- 15 );
+ 15 );
final Cheese cheddar = new Cheese( "cheddar",
- 17 );
+ 17 );
final FactHandle stiltonHandle = wm.insert( stilton );
- final ObjectInsertedEvent oae = (ObjectInsertedEvent) wmList.get( 0 );
+ ObjectInsertedEvent oae = (ObjectInsertedEvent) wmList.get( 0 );
assertSame( stiltonHandle,
oae.getFactHandle() );
wm.update( stiltonHandle,
- stilton );
+ stilton );
final ObjectUpdatedEvent ome = (ObjectUpdatedEvent) wmList.get( 1 );
assertSame( stiltonHandle,
ome.getFactHandle() );
@@ -81,6 +81,9 @@
assertSame( stiltonHandle,
ore.getFactHandle() );
- wm.insert( cheddar );
+ final FactHandle cheddarHandle = wm.insert( cheddar );
+ oae = (ObjectInsertedEvent) wmList.get( 3 );
+ assertSame( cheddarHandle,
+ oae.getFactHandle() );
}
}
\ No newline at end of file
Added: labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/test/java/org/drools/event/rule/RuleRuntimeEventSupportTest.java
===================================================================
--- labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/test/java/org/drools/event/rule/RuleRuntimeEventSupportTest.java (rev 0)
+++ labs/jbossrules/branches/drools-api-refactor-20080929/drools-core/src/test/java/org/drools/event/rule/RuleRuntimeEventSupportTest.java 2008-10-02 02:04:49 UTC (rev 23250)
@@ -0,0 +1,129 @@
+package org.drools.event.rule;
+
+/*
+ * 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.ArrayList;
+import java.util.List;
+
+import org.drools.Cheese;
+import org.drools.FactHandle;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulKnowledgeSession;
+import org.drools.WorkingMemory;
+
+import junit.framework.TestCase;
+
+/**
+ * @author <a href="mailto:simon at redhillconsulting.com.au">Simon Harris</a>
+ */
+public class RuleRuntimeEventSupportTest extends TestCase {
+
+ public void testAddRuleRuntimeEventListener() {
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+ final List wmList = new ArrayList();
+ final RuleRuntimeEventListener eventListener = new RuleRuntimeEventListener() {
+
+ public void objectInserted(ObjectInsertedEvent event) {
+ wmList.add( event );
+ }
+
+ public void objectUpdated(ObjectUpdatedEvent event) {
+ wmList.add( event );
+ }
+
+ public void objectRetracted(ObjectRetractedEvent event) {
+ wmList.add( event );
+ }
+
+ };
+
+ ksession.addEventListener( eventListener );
+
+ final Cheese stilton = new Cheese( "stilton",
+ 15 );
+ final Cheese cheddar = new Cheese( "cheddar",
+ 17 );
+
+ final FactHandle stiltonHandle = ksession.insert( stilton );
+
+ final ObjectInsertedEvent oae = (ObjectInsertedEvent) wmList.get( 0 );
+ assertSame( stiltonHandle,
+ oae.getFactHandle() );
+
+ ksession.update( stiltonHandle,
+ stilton );
+ final ObjectUpdatedEvent ome = (ObjectUpdatedEvent) wmList.get( 1 );
+ assertSame( stiltonHandle,
+ ome.getFactHandle() );
+
+ ksession.retract( stiltonHandle );
+ final ObjectRetractedEvent ore = (ObjectRetractedEvent) wmList.get( 2 );
+ assertSame( stiltonHandle,
+ ore.getFactHandle() );
+
+ ksession.insert( cheddar );
+ }
+
+ public void testRemoveRuleRuntimeEventListener() {
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+ final List wmList = new ArrayList();
+ final RuleRuntimeEventListener eventListener = new RuleRuntimeEventListener() {
+
+ public void objectInserted(ObjectInsertedEvent event) {
+ wmList.add( event );
+ }
+
+ public void objectUpdated(ObjectUpdatedEvent event) {
+ wmList.add( event );
+ }
+
+ public void objectRetracted(ObjectRetractedEvent event) {
+ wmList.add( event );
+ }
+
+ };
+
+ ksession.addEventListener( eventListener );
+ ksession.removeEventListener( eventListener );
+
+ final Cheese stilton = new Cheese( "stilton",
+ 15 );
+ final Cheese cheddar = new Cheese( "cheddar",
+ 17 );
+
+ final FactHandle stiltonHandle = ksession.insert( stilton );
+ assertTrue( wmList.isEmpty() );
+
+ ksession.update( stiltonHandle,
+ stilton );
+ assertTrue( wmList.isEmpty() );
+
+ ksession.retract( stiltonHandle );
+ assertTrue( wmList.isEmpty() );
+
+ ksession.insert( cheddar );
+ assertTrue( wmList.isEmpty() );
+ }
+}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list