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);