Author: mszefler
Date: Wed Aug 30 08:04:09 2006
New Revision: 438512

URL: http://svn.apache.org/viewvc?rev=438512&view=rev
Log:
Fixed merge problems.

Added:
    
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InterceptorContextImpl.java
   (with props)
Modified:
    
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
    
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/Contexts.java
    
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MessageExchangeInterceptor.java
    
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java

Modified: 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java?rev=438512&r1=438511&r2=438512&view=diff
==============================================================================
--- 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
 (original)
+++ 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
 Wed Aug 30 08:04:09 2006
@@ -27,6 +27,7 @@
 import org.apache.ode.bpel.dao.MessageRouteDAO;
 import org.apache.ode.bpel.dao.ProcessDAO;
 import org.apache.ode.bpel.dao.ProcessInstanceDAO;
+import 
org.apache.ode.bpel.engine.MessageExchangeInterceptor.InterceptorContext;
 import org.apache.ode.bpel.epr.WSAEndpoint;
 import org.apache.ode.bpel.evt.CorrelationMatchEvent;
 import org.apache.ode.bpel.evt.CorrelationNoMatchEvent;
@@ -40,7 +41,6 @@
 import org.apache.ode.bpel.iapi.MessageExchange.FailureType;
 import org.apache.ode.bpel.iapi.MessageExchange.MessageExchangePattern;
 import org.apache.ode.bpel.iapi.MessageExchange.Status;
-import org.apache.ode.bpel.iapi.MessageExchangeInterceptor;
 import org.apache.ode.bpel.iapi.MyRoleMessageExchange.CorrelationStatus;
 import org.apache.ode.bpel.iapi.PartnerRoleChannel;
 import org.apache.ode.bpel.o.OBase;
@@ -279,28 +279,35 @@
      *         <code>false</code> otherwise
      */
     private boolean processInterceptors(MyRoleMessageExchangeImpl mex) {
-        ArrayList<MessageExchangeInterceptor> interceptors = new 
ArrayList<MessageExchangeInterceptor>(_mexInterceptors
-                .size()
-                + _engine.getGlobalInterceptors().size());
-        interceptors.addAll(_mexInterceptors);
-        interceptors.addAll(_engine.getGlobalInterceptors());
-
-        for (MessageExchangeInterceptor i : _mexInterceptors) {
-            __log.debug("onBpelServerInvoked --> interceptor " + i);
-            boolean cont = i.onProcessInvoked(mex);
-            if (!cont) {
-                __log.debug("interceptor " + i + " caused invoke on " + this + 
"to be aborted");
-                if (mex.getStatus() == Status.REQUEST) {
-                    __log.debug("aborting interceptor " + i + " did not set 
message exchange status, assuming failure");
-                    mex.setFailure(MessageExchange.FailureType.ABORTED, 
__msgs.msgInterceptorAborted(mex
-                            .getMessageExchangeId(), i.toString()), null);
-                }
-                return false;
+       InterceptorContextImpl ictx = new 
InterceptorContextImpl(_engine._contexts.dao.getConnection(), getProcessDAO());
+       
+        for (MessageExchangeInterceptor i : _mexInterceptors) 
+               if (!processInterceptor(i,mex, ictx))
+                       return false;
+
+        for (MessageExchangeInterceptor i : _engine.getGlobalInterceptors())
+               if (!processInterceptor(i,mex, ictx))
+                       return false;
+               
+        
+        return true;
+    }
+
+    private boolean processInterceptor(MessageExchangeInterceptor i, 
MyRoleMessageExchangeImpl mex, InterceptorContext ictx) {
+        __log.debug("onBpelServerInvoked --> interceptor " + i);
+        boolean cont = i.onProcessInvoked(mex, ictx);
+        if (!cont) {
+            __log.debug("interceptor " + i + " caused invoke on " + this + "to 
be aborted");
+            if (mex.getStatus() == Status.REQUEST) {
+                __log.debug("aborting interceptor " + i + " did not set 
message exchange status, assuming failure");
+                mex.setFailure(MessageExchange.FailureType.ABORTED, 
__msgs.msgInterceptorAborted(mex
+                        .getMessageExchangeId(), i.toString()), null);
             }
+            return false;
         }
+       
         return true;
     }
-
     /**
      * Replacement object for serializtation of the [EMAIL PROTECTED] OBase} 
(compiled
      * BPEL) objects in the JACOB VPU.

Modified: 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/Contexts.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/Contexts.java?rev=438512&r1=438511&r2=438512&view=diff
==============================================================================
--- 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/Contexts.java
 (original)
+++ 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/Contexts.java
 Wed Aug 30 08:04:09 2006
@@ -36,8 +36,6 @@
  */
 class Contexts {
 
-    ConfigurationContext configurationContext;
-    
     MessageExchangeContext mexContext;
 
     Scheduler scheduler;

Added: 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InterceptorContextImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InterceptorContextImpl.java?rev=438512&view=auto
==============================================================================
--- 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InterceptorContextImpl.java
 (added)
+++ 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InterceptorContextImpl.java
 Wed Aug 30 08:04:09 2006
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.ode.bpel.engine;
+
+import org.apache.ode.bpel.dao.BpelDAOConnection;
+import org.apache.ode.bpel.dao.ProcessDAO;
+import 
org.apache.ode.bpel.engine.MessageExchangeInterceptor.InterceptorContext;
+
+/**
+ * Implementation of the [EMAIL PROTECTED] 
org.apache.ode.bpel.engine.MessageExchangeInterceptor.InterceptorContext}
+ * interface.
+ * @author Maciej Szefler (m s z e f l e r @ g m a i l . c o m)
+ *
+ */
+public class InterceptorContextImpl implements InterceptorContext{
+       private ProcessDAO _processDao;
+       private BpelDAOConnection _connection;
+       
+       public InterceptorContextImpl(BpelDAOConnection connection, ProcessDAO 
processDAO) {
+               _connection = connection;
+               _processDao = processDAO;
+       }
+
+       public BpelDAOConnection getConnection() {
+               return _connection;
+       }
+
+       public ProcessDAO getProcessDAO() {
+               return _processDao;
+       }
+       
+}

Propchange: 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InterceptorContextImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MessageExchangeInterceptor.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MessageExchangeInterceptor.java?rev=438512&r1=438511&r2=438512&view=diff
==============================================================================
--- 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MessageExchangeInterceptor.java
 (original)
+++ 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MessageExchangeInterceptor.java
 Wed Aug 30 08:04:09 2006
@@ -18,8 +18,10 @@
  */
 package org.apache.ode.bpel.engine;
 
-import org.apache.ode.bpel.iapi.MessageExchange;
+import org.apache.ode.bpel.dao.BpelDAOConnection;
+import org.apache.ode.bpel.dao.ProcessDAO;
 import org.apache.ode.bpel.iapi.MyRoleMessageExchange;
+import org.apache.ode.bpel.iapi.PartnerRoleMessageExchange;
 
 /**
  * Hook into the BPEL server that enables intercepting of message exchange
@@ -39,7 +41,7 @@
      * @return <code>true</code> if message exchange processing should
      *         continue, <code>false</code> otherwise
      */
-    boolean onBpelServerInvoked(MyRoleMessageExchange mex);
+    boolean onBpelServerInvoked(MyRoleMessageExchange mex, InterceptorContext 
ic);
 
     /**
      * Called when the BPEL server is invoked, after the message exchange has
@@ -50,7 +52,7 @@
      * @return <code>true</code> if message exchange processing should
      *         continue, <code>false</code> otherwise
      */
-    boolean onProcessInvoked(MyRoleMessageExchange mex);
+    boolean onProcessInvoked(MyRoleMessageExchange mex, InterceptorContext ic);
 
     /**
      * Called when the BPEL server is invoked, before any attempt to route the
@@ -61,6 +63,14 @@
      * @return <code>true</code> if message exchange processing should
      *         continue, <code>false</code> otherwise
      */
-    boolean onPartnerInvoked(MessageExchange mex);
+    boolean onPartnerInvoked(PartnerRoleMessageExchange mex, 
InterceptorContext ic);
 
+    
+    public interface InterceptorContext {
+       
+       BpelDAOConnection getConnection();
+       
+       ProcessDAO getProcessDAO();
+       
+    }
 }

Modified: 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java?rev=438512&r1=438511&r2=438512&view=diff
==============================================================================
--- 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java
 (original)
+++ 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java
 Wed Aug 30 08:04:09 2006
@@ -27,13 +27,14 @@
 
 
 import org.apache.ode.bpel.dao.MessageExchangeDAO;
+import 
org.apache.ode.bpel.engine.MessageExchangeInterceptor.InterceptorContext;
 import org.apache.ode.bpel.iapi.BpelEngineException;
 import org.apache.ode.bpel.iapi.EndpointReference;
 import org.apache.ode.bpel.iapi.Message;
 import org.apache.ode.bpel.iapi.MessageExchange;
-import org.apache.ode.bpel.iapi.MessageExchangeInterceptor;
 
 import org.apache.ode.bpel.iapi.MyRoleMessageExchange;
+import org.apache.ode.bpel.iapi.MessageExchange.Status;
 
 
 class MyRoleMessageExchangeImpl extends MessageExchangeImpl 
@@ -57,6 +58,40 @@
     getDAO().setCorrelationStatus(status.toString());
   }
 
+  /**
+   * Process the message-exchange interceptors.
+   * 
+   * @param mex
+   *            message exchange
+   * @return <code>true</code> if execution should continue,
+   *         <code>false</code> otherwise
+   */
+  private boolean processInterceptors(MyRoleMessageExchangeImpl mex) {
+       InterceptorContextImpl ictx = new 
InterceptorContextImpl(_engine._contexts.dao.getConnection(), null);
+       
+      for (MessageExchangeInterceptor i : _engine.getGlobalInterceptors())
+       if (!processInterceptor(i, mex, ictx))
+               return false;
+       
+      
+      return true;
+  }
+
+  private boolean processInterceptor(MessageExchangeInterceptor i, 
MyRoleMessageExchangeImpl mex, InterceptorContext ictx) {
+      boolean cont = i.onBpelServerInvoked(mex, ictx);
+      if (!cont) {
+          __log.debug("interceptor " + i + " caused invoke on " + this + "to 
be aborted");
+          if (mex.getStatus() == Status.REQUEST) {
+              __log.debug("aborting interceptor " + i + " did not set message 
exchange status, assuming failure");
+              mex.setFailure(MessageExchange.FailureType.ABORTED, 
__msgs.msgInterceptorAborted(mex
+                      .getMessageExchangeId(), i.toString()), null);
+          }
+          return false;
+      }
+
+      return true;
+  }
+
   public void invoke(Message request) {
     if (request == null) {
       String errmsg = "Must pass non-null message to invoke()!";
@@ -67,20 +102,8 @@
     _dao.setRequest(((MessageImpl)request)._dao);
     _dao.setStatus(MessageExchange.Status.REQUEST.toString());
 
-    for (MessageExchangeInterceptor i: _engine.getGlobalInterceptors()) {
-       __log.debug("onBpelServerInvoked --> interceptor " + i);
-       boolean cont = i.onBpelServerInvoked(this);
-       if (!cont) {
-               __log.debug("interceptor " + i + " caused invoke on " + this + 
"to be aborted");
-               if (getStatus() == Status.REQUEST) {
-                       __log.debug("aborting interceptor "  + i + " did not 
set message exchange status, assuming failure");
-                     setFailure(MessageExchange.FailureType.ABORTED, 
-                                 
__msgs.msgInterceptorAborted(getMessageExchangeId(),i.toString()), null);
-               }
-               return;
-       }
-    }
-    
+    if (!processInterceptors(this))
+       return;
     
     BpelProcess target = _engine.route(getDAO().getCallee(), request);
 


Reply via email to