Author: vanto
Date: Wed Sep  8 16:54:24 2010
New Revision: 995146

URL: http://svn.apache.org/viewvc?rev=995146&view=rev
Log:
allowing BpelEventListeners to cancel persisting events.

Modified:
    ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/evt/BpelEvent.java
    
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java

Modified: 
ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/evt/BpelEvent.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/evt/BpelEvent.java?rev=995146&r1=995145&r2=995146&view=diff
==============================================================================
--- ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/evt/BpelEvent.java 
(original)
+++ ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/evt/BpelEvent.java Wed 
Sep  8 16:54:24 2010
@@ -37,6 +37,8 @@ public abstract class BpelEvent implemen
      * Bpel Event Context. In Event Listeners, use this to get Variable Data
      */
     public transient EventContext eventContext;
+    
+    public transient boolean _cancelEventPersisting = false;
 
     private Date _timestamp = new Date();
 
@@ -57,7 +59,19 @@ public abstract class BpelEvent implemen
     public void setTimestamp(Date tstamp) {
         _timestamp = tstamp;
     }
+    
+    public void enableEventPersisting() {
+        _cancelEventPersisting = false;
+    }
+
+    public void disableEventPersisting() {
+        _cancelEventPersisting = true;
+    }
 
+    public boolean isEventPersistingCancelled() {
+        return _cancelEventPersisting;
+    }
+    
     public String toString() {
         StringBuilder sb = new StringBuilder("\n" + eventName(this) + ":");
 

Modified: 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java?rev=995146&r1=995145&r2=995146&view=diff
==============================================================================
--- 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
 (original)
+++ 
ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
 Wed Sep  8 16:54:24 2010
@@ -709,7 +709,7 @@ public class BpelProcess {
             // notify the listeners
             _engine.fireEvent(event);
 
-            if (instanceDao != null)
+            if (instanceDao != null && !event.isEventPersistingCancelled())
                 instanceDao.insertBpelEvent(event);
             else
                 __log.debug("Couldn't find instance to save event, no event 
generated!");


Reply via email to