[jboss-svn-commits] JBL Code SVN: r36087 - in labs/jbossrules/trunk: drools-core/src/main/java/org/drools/audit and 5 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Nov 26 10:26:25 EST 2010
Author: KrisVerlaenen
Date: 2010-11-26 10:26:24 -0500 (Fri, 26 Nov 2010)
New Revision: 36087
Added:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/ProcessVariableChangedEvent.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/ProcessVariableChangedEventImpl.java
Modified:
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/DefaultProcessEventListener.java
labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/ProcessEventListener.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DebugProcessEventListener.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DefaultProcessEventListener.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/ProcessEventSupport.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KnowledgeSessionMonitoring.java
labs/jbossrules/trunk/drools-flow-compiler/src/test/java/org/drools/integrationtests/ProcessEventListenerTest.java
labs/jbossrules/trunk/drools-flow-core/src/test/java/org/drools/event/process/ProcessEventSupportTest.java
labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/SimpleBPMNProcessTest.java
Log:
- fixing process variable logging
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/DefaultProcessEventListener.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/DefaultProcessEventListener.java 2010-11-26 14:57:14 UTC (rev 36086)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/DefaultProcessEventListener.java 2010-11-26 15:26:24 UTC (rev 36087)
@@ -35,6 +35,10 @@
public void afterProcessStarted(ProcessStartedEvent event) {
// intentionally left blank
}
+
+ public void afterVariableChanged(ProcessVariableChangedEvent event) {
+ // intentionally left blank
+ }
public void beforeNodeLeft(ProcessNodeLeftEvent event) {
// intentionally left blank
@@ -52,4 +56,8 @@
// intentionally left blank
}
+ public void beforeVariableChanged(ProcessVariableChangedEvent event) {
+ // intentionally left blank
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/ProcessEventListener.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/ProcessEventListener.java 2010-11-26 14:57:14 UTC (rev 36086)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/ProcessEventListener.java 2010-11-26 15:26:24 UTC (rev 36087)
@@ -38,5 +38,9 @@
void beforeNodeLeft(ProcessNodeLeftEvent event);
void afterNodeLeft(ProcessNodeLeftEvent event);
+
+ void beforeVariableChanged(ProcessVariableChangedEvent event);
+ void afterVariableChanged(ProcessVariableChangedEvent event);
+
}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/ProcessVariableChangedEvent.java
===================================================================
--- labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/ProcessVariableChangedEvent.java (rev 0)
+++ labs/jbossrules/trunk/drools-api/src/main/java/org/drools/event/process/ProcessVariableChangedEvent.java 2010-11-26 15:26:24 UTC (rev 36087)
@@ -0,0 +1,32 @@
+/**
+ * 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.
+ */
+
+package org.drools.event.process;
+
+
+public interface ProcessVariableChangedEvent
+ extends
+ ProcessEvent {
+
+ String getVariableId();
+
+ String getVariableInstanceId();
+
+ Object getOldValue();
+
+ Object getNewValue();
+
+}
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 2010-11-26 14:57:14 UTC (rev 36086)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/audit/WorkingMemoryLogger.java 2010-11-26 15:26:24 UTC (rev 36087)
@@ -35,6 +35,7 @@
import org.drools.audit.event.RuleFlowGroupLogEvent;
import org.drools.audit.event.RuleFlowLogEvent;
import org.drools.audit.event.RuleFlowNodeLogEvent;
+import org.drools.audit.event.RuleFlowVariableLogEvent;
import org.drools.command.impl.CommandBasedStatefulKnowledgeSession;
import org.drools.command.impl.KnowledgeCommandContext;
import org.drools.common.InternalFactHandle;
@@ -75,6 +76,7 @@
import org.drools.event.process.ProcessNodeLeftEvent;
import org.drools.event.process.ProcessNodeTriggeredEvent;
import org.drools.event.process.ProcessStartedEvent;
+import org.drools.event.process.ProcessVariableChangedEvent;
import org.drools.impl.StatefulKnowledgeSessionImpl;
import org.drools.impl.StatelessKnowledgeSessionImpl;
import org.drools.reteoo.ReteooWorkingMemory;
@@ -518,7 +520,27 @@
event.getProcessInstance().getId()) );
}
- public void afterPackageAdded(AfterPackageAddedEvent event) {
+ public void beforeVariableChanged(ProcessVariableChangedEvent event) {
+ filterLogEvent(new RuleFlowVariableLogEvent(LogEvent.BEFORE_VARIABLE_INSTANCE_CHANGED,
+ event.getVariableId(),
+ event.getVariableInstanceId(),
+ event.getProcessInstance().getProcessId(),
+ event.getProcessInstance().getProcessName(),
+ event.getProcessInstance().getId(),
+ event.getNewValue() == null ? "null" : event.getNewValue().toString()) );
+ }
+
+ public void afterVariableChanged(ProcessVariableChangedEvent event) {
+ filterLogEvent(new RuleFlowVariableLogEvent(LogEvent.AFTER_VARIABLE_INSTANCE_CHANGED,
+ event.getVariableId(),
+ event.getVariableInstanceId(),
+ event.getProcessInstance().getProcessId(),
+ event.getProcessInstance().getProcessName(),
+ event.getProcessInstance().getId(),
+ event.getNewValue() == null ? "null" : event.getNewValue().toString()) );
+ }
+
+ public void afterPackageAdded(AfterPackageAddedEvent event) {
filterLogEvent( new RuleBaseLogEvent( LogEvent.AFTER_PACKAGE_ADDED,
event.getPackage().getName(),
null ) );
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DebugProcessEventListener.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DebugProcessEventListener.java 2010-11-26 14:57:14 UTC (rev 36086)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DebugProcessEventListener.java 2010-11-26 15:26:24 UTC (rev 36087)
@@ -21,6 +21,7 @@
import org.drools.event.process.ProcessNodeLeftEvent;
import org.drools.event.process.ProcessNodeTriggeredEvent;
import org.drools.event.process.ProcessStartedEvent;
+import org.drools.event.process.ProcessVariableChangedEvent;
public class DebugProcessEventListener implements ProcessEventListener {
@@ -39,6 +40,10 @@
public void afterProcessStarted(ProcessStartedEvent event) {
System.err.println(event);
}
+
+ public void afterVariableChanged(ProcessVariableChangedEvent event) {
+ System.err.println(event);
+ }
public void beforeNodeLeft(ProcessNodeLeftEvent event) {
System.err.println(event);
@@ -56,4 +61,8 @@
System.err.println(event);
}
+ public void beforeVariableChanged(ProcessVariableChangedEvent event) {
+ System.err.println(event);
+ }
+
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DefaultProcessEventListener.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DefaultProcessEventListener.java 2010-11-26 14:57:14 UTC (rev 36086)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/DefaultProcessEventListener.java 2010-11-26 15:26:24 UTC (rev 36087)
@@ -21,6 +21,7 @@
import org.drools.event.process.ProcessNodeLeftEvent;
import org.drools.event.process.ProcessNodeTriggeredEvent;
import org.drools.event.process.ProcessStartedEvent;
+import org.drools.event.process.ProcessVariableChangedEvent;
public class DefaultProcessEventListener implements ProcessEventListener {
@@ -35,6 +36,9 @@
public void afterProcessStarted(ProcessStartedEvent event) {
}
+
+ public void afterVariableChanged(ProcessVariableChangedEvent event) {
+ }
public void beforeNodeLeft(ProcessNodeLeftEvent event) {
}
@@ -48,4 +52,7 @@
public void beforeProcessStarted(ProcessStartedEvent event) {
}
+ public void beforeVariableChanged(ProcessVariableChangedEvent event) {
+ }
+
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/ProcessEventSupport.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/ProcessEventSupport.java 2010-11-26 14:57:14 UTC (rev 36086)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/ProcessEventSupport.java 2010-11-26 15:26:24 UTC (rev 36087)
@@ -23,6 +23,7 @@
import org.drools.event.process.ProcessNodeLeftEvent;
import org.drools.event.process.ProcessNodeTriggeredEvent;
import org.drools.event.process.ProcessStartedEvent;
+import org.drools.event.process.ProcessVariableChangedEvent;
import org.drools.runtime.KnowledgeRuntime;
import org.drools.runtime.process.NodeInstance;
import org.drools.runtime.process.ProcessInstance;
@@ -129,6 +130,36 @@
}
}
+ public void fireBeforeVariableChanged(final String id, final String instanceId,
+ final Object oldValue, final Object newValue,
+ final ProcessInstance processInstance, KnowledgeRuntime kruntime) {
+ final Iterator<ProcessEventListener> iter = getEventListenersIterator();
+
+ if (iter.hasNext()) {
+ final ProcessVariableChangedEvent event = new ProcessVariableChangedEventImpl(
+ id, instanceId, oldValue, newValue, processInstance, kruntime);
+
+ do {
+ iter.next().beforeVariableChanged(event);
+ } while (iter.hasNext());
+ }
+ }
+
+ public void fireAfterVariableChanged(final String name, final String id,
+ final Object oldValue, final Object newValue,
+ final ProcessInstance processInstance, KnowledgeRuntime kruntime) {
+ final Iterator<ProcessEventListener> iter = getEventListenersIterator();
+
+ if (iter.hasNext()) {
+ final ProcessVariableChangedEvent event = new ProcessVariableChangedEventImpl(
+ name, id, oldValue, newValue, processInstance, kruntime);
+
+ do {
+ iter.next().afterVariableChanged(event);
+ } while (iter.hasNext());
+ }
+ }
+
public void reset() {
this.clear();
}
Added: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/ProcessVariableChangedEventImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/ProcessVariableChangedEventImpl.java (rev 0)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/event/ProcessVariableChangedEventImpl.java 2010-11-26 15:26:24 UTC (rev 36087)
@@ -0,0 +1,65 @@
+/**
+ * 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.
+ */
+
+package org.drools.event;
+
+import org.drools.event.process.ProcessVariableChangedEvent;
+import org.drools.runtime.KnowledgeRuntime;
+import org.drools.runtime.process.ProcessInstance;
+
+/**
+ * @author <a href="mailto:kris_verlaenen at hotmail.com">Kris Verlaenen</a>
+ */
+public class ProcessVariableChangedEventImpl extends ProcessEvent implements ProcessVariableChangedEvent {
+
+ private static final long serialVersionUID = 510l;
+
+ private String id;
+ private String instanceId;
+ private Object oldValue;
+ private Object newValue;
+
+ public ProcessVariableChangedEventImpl(final String id, final String instanceId,
+ final Object oldValue, final Object newValue,
+ final ProcessInstance processInstance, KnowledgeRuntime kruntime) {
+ super( processInstance, kruntime );
+ this.id = id;
+ this.instanceId = instanceId;
+ this.oldValue = oldValue;
+ this.newValue = newValue;
+ }
+
+ public String getVariableInstanceId() {
+ return instanceId;
+ }
+
+ public String getVariableId() {
+ return id;
+ }
+
+ public Object getOldValue() {
+ return oldValue;
+ }
+
+ public Object getNewValue() {
+ return newValue;
+ }
+
+ public String toString() {
+ return "==>[ProcessVariableChanged(id=" + id + "; instanceId=" + instanceId + "; oldValue=" + oldValue + "; newValue=" + newValue
+ + "; processName=" + getProcessInstance().getProcessName() + "; processId=" + getProcessInstance().getProcessId() + ")]";
+ }
+}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KnowledgeSessionMonitoring.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KnowledgeSessionMonitoring.java 2010-11-26 14:57:14 UTC (rev 36086)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/management/KnowledgeSessionMonitoring.java 2010-11-26 15:26:24 UTC (rev 36087)
@@ -42,6 +42,7 @@
import org.drools.event.process.ProcessNodeLeftEvent;
import org.drools.event.process.ProcessNodeTriggeredEvent;
import org.drools.event.process.ProcessStartedEvent;
+import org.drools.event.process.ProcessVariableChangedEvent;
import org.drools.management.KnowledgeSessionMonitoring.AgendaStats.AgendaStatsData;
import org.drools.management.KnowledgeSessionMonitoring.ProcessStats.ProcessInstanceStatsData;
import org.drools.management.KnowledgeSessionMonitoring.ProcessStats.ProcessStatsData;
@@ -456,6 +457,16 @@
}
+ public void afterVariableChanged(ProcessVariableChangedEvent event) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void beforeVariableChanged(ProcessVariableChangedEvent event) {
+ // TODO Auto-generated method stub
+
+ }
+
public static class GlobalProcessStatsData {
public AtomicLong processInstancesStarted;
Modified: labs/jbossrules/trunk/drools-flow-compiler/src/test/java/org/drools/integrationtests/ProcessEventListenerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-flow-compiler/src/test/java/org/drools/integrationtests/ProcessEventListenerTest.java 2010-11-26 14:57:14 UTC (rev 36086)
+++ labs/jbossrules/trunk/drools-flow-compiler/src/test/java/org/drools/integrationtests/ProcessEventListenerTest.java 2010-11-26 15:26:24 UTC (rev 36087)
@@ -34,6 +34,7 @@
import org.drools.event.process.ProcessNodeLeftEvent;
import org.drools.event.process.ProcessNodeTriggeredEvent;
import org.drools.event.process.ProcessStartedEvent;
+import org.drools.event.process.ProcessVariableChangedEvent;
import org.drools.process.core.context.variable.VariableScope;
import org.drools.process.instance.context.variable.VariableScopeInstance;
import org.drools.rule.Package;
@@ -126,6 +127,13 @@
processEventList.add(event);
}
+ public void afterVariableChanged(ProcessVariableChangedEvent event) {
+ processEventList.add(event);
+ }
+
+ public void beforeVariableChanged(ProcessVariableChangedEvent event) {
+ processEventList.add(event);
+ }
};
((InternalWorkingMemory)session).getProcessRuntime().addEventListener(listener);
Modified: labs/jbossrules/trunk/drools-flow-core/src/test/java/org/drools/event/process/ProcessEventSupportTest.java
===================================================================
--- labs/jbossrules/trunk/drools-flow-core/src/test/java/org/drools/event/process/ProcessEventSupportTest.java 2010-11-26 14:57:14 UTC (rev 36086)
+++ labs/jbossrules/trunk/drools-flow-core/src/test/java/org/drools/event/process/ProcessEventSupportTest.java 2010-11-26 15:26:24 UTC (rev 36087)
@@ -120,6 +120,13 @@
processEventList.add(event);
}
+ public void afterVariableChanged(ProcessVariableChangedEvent event) {
+ processEventList.add(event);
+ }
+
+ public void beforeVariableChanged(ProcessVariableChangedEvent event) {
+ processEventList.add(event);
+ }
};
session.addEventListener( processEventListener );
Modified: labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/SimpleBPMNProcessTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/SimpleBPMNProcessTest.java 2010-11-26 14:57:14 UTC (rev 36086)
+++ labs/jbossrules/trunk/drools-process/drools-bpmn2/src/test/java/org/drools/bpmn2/SimpleBPMNProcessTest.java 2010-11-26 15:26:24 UTC (rev 36087)
@@ -46,6 +46,7 @@
import org.drools.builder.ResourceType;
import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.compiler.xml.XmlProcessReader;
+import org.drools.event.process.DefaultProcessEventListener;
import org.drools.event.process.ProcessCompletedEvent;
import org.drools.event.process.ProcessEventListener;
import org.drools.event.process.ProcessNodeLeftEvent;
@@ -805,24 +806,10 @@
KnowledgeBase kbase = createKnowledgeBase("BPMN2-TimerStart.xml");
StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
final List<Long> list = new ArrayList<Long>();
- ksession.addEventListener(new ProcessEventListener() {
- public void beforeProcessStarted(ProcessStartedEvent event) {
- }
- public void beforeProcessCompleted(ProcessCompletedEvent event) {
- }
- public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) {
- }
- public void beforeNodeLeft(ProcessNodeLeftEvent event) {
- }
+ ksession.addEventListener(new DefaultProcessEventListener() {
public void afterProcessStarted(ProcessStartedEvent event) {
list.add(event.getProcessInstance().getId());
}
- public void afterProcessCompleted(ProcessCompletedEvent event) {
- }
- public void afterNodeTriggered(ProcessNodeTriggeredEvent event) {
- }
- public void afterNodeLeft(ProcessNodeLeftEvent event) {
- }
});
Thread.sleep(250);
assertEquals(0, list.size());
@@ -837,24 +824,10 @@
KnowledgeBase kbase = createKnowledgeBase("BPMN2-SignalStart.xml");
StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
final List<Long> list = new ArrayList<Long>();
- ksession.addEventListener(new ProcessEventListener() {
- public void beforeProcessStarted(ProcessStartedEvent event) {
- }
- public void beforeProcessCompleted(ProcessCompletedEvent event) {
- }
- public void beforeNodeTriggered(ProcessNodeTriggeredEvent event) {
- }
- public void beforeNodeLeft(ProcessNodeLeftEvent event) {
- }
+ ksession.addEventListener(new DefaultProcessEventListener() {
public void afterProcessStarted(ProcessStartedEvent event) {
list.add(event.getProcessInstance().getId());
}
- public void afterProcessCompleted(ProcessCompletedEvent event) {
- }
- public void afterNodeTriggered(ProcessNodeTriggeredEvent event) {
- }
- public void afterNodeLeft(ProcessNodeLeftEvent event) {
- }
});
ksession.signalEvent("MyStartSignal", "NewValue");
assertEquals(1, list.size());
More information about the jboss-svn-commits
mailing list