You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by ms...@apache.org on 2007/08/06 22:47:50 UTC
svn commit: r563266 - in
/ode/branches/bart/axis2/src/main/java/org/apache/ode/axis2:
MessageExchangeContextImpl.java ODEService.java
Author: mszefler
Date: Mon Aug 6 13:47:50 2007
New Revision: 563266
URL: http://svn.apache.org/viewvc?view=rev&rev=563266
Log:
BART, some additinal refactorings. New model to fix concurrency problems in Partner invokes.
Modified:
ode/branches/bart/axis2/src/main/java/org/apache/ode/axis2/MessageExchangeContextImpl.java
ode/branches/bart/axis2/src/main/java/org/apache/ode/axis2/ODEService.java
Modified: ode/branches/bart/axis2/src/main/java/org/apache/ode/axis2/MessageExchangeContextImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/bart/axis2/src/main/java/org/apache/ode/axis2/MessageExchangeContextImpl.java?view=diff&rev=563266&r1=563265&r2=563266
==============================================================================
--- ode/branches/bart/axis2/src/main/java/org/apache/ode/axis2/MessageExchangeContextImpl.java (original)
+++ ode/branches/bart/axis2/src/main/java/org/apache/ode/axis2/MessageExchangeContextImpl.java Mon Aug 6 13:47:50 2007
@@ -48,8 +48,7 @@
static {
HashSet<InvocationStyle> styles = new HashSet<InvocationStyle>();
- styles.add(InvocationStyle.ASYNC);
- styles.add(InvocationStyle.BLOCKING);
+ styles.add(InvocationStyle.UNRELIABLE);
__supportedInvocationStyles = Collections.unmodifiableSet(styles);
}
@@ -73,27 +72,20 @@
}
public void invokePartnerReliable(PartnerRoleMessageExchange mex) throws ContextException {
+ // TODO: tie in to WS-RELIABLE* stack.
throw new UnsupportedOperationException();
}
public void invokePartnerTransacted(PartnerRoleMessageExchange mex) throws ContextException {
- throw new UnsupportedOperationException();
+ // TODO: should we check if the partner actually supports transactions?
+ invokePartnerBlocking(mex);
}
- public void onAsyncReply(MyRoleMessageExchange myRoleMessageExchange) throws BpelEngineException {
- if (__log.isDebugEnabled())
- __log.debug("Processing an async reply from service " + myRoleMessageExchange.getServiceName());
-
- // Nothing to do, no callback is necessary, the client just synchornizes itself with the
- // mex reply when invoking the engine.
- }
-
- public void onReliableReply(MyRoleMessageExchange myRoleMex) throws BpelEngineException {
- __log.error("RELIABLE reply from service " + myRoleMex.getServiceName() +"; RELIABLE IS NOT SUPPORTED!");
-
- // We don't support this yet, so not much to do here.
+ public void onMyRoleMessageExchangeStateChanged(MyRoleMessageExchange myRoleMessageExchange) throws BpelEngineException {
+ // TODO: add code here to handle MEXs that we've "forgotten" about due to system failure etc.. mostly
+ // useful for RELIABLE, but nice to have with ASYNC/BLOCKING as well.
}
Modified: ode/branches/bart/axis2/src/main/java/org/apache/ode/axis2/ODEService.java
URL: http://svn.apache.org/viewvc/ode/branches/bart/axis2/src/main/java/org/apache/ode/axis2/ODEService.java?view=diff&rev=563266&r1=563265&r2=563266
==============================================================================
--- ode/branches/bart/axis2/src/main/java/org/apache/ode/axis2/ODEService.java (original)
+++ ode/branches/bart/axis2/src/main/java/org/apache/ode/axis2/ODEService.java Mon Aug 6 13:47:50 2007
@@ -86,7 +86,7 @@
try {
// Creating mesage exchange
String messageId = new GUID().toString();
- odeMex = _server.createMessageExchange(InvocationStyle.BLOCKING, _serviceName,
+ odeMex = _server.createMessageExchange(InvocationStyle.UNRELIABLE, _serviceName,
msgContext.getAxisOperation().getName().getLocalPart(), "" + messageId);
__log.debug("ODE routed to operation " + odeMex.getOperation() + " from service " + _serviceName);
@@ -152,14 +152,14 @@
}
private void onResponse(MyRoleMessageExchange mex, MessageContext msgContext) throws AxisFault {
- switch (mex.getStatus()) {
+ switch (mex.getAckType()) {
case FAULT:
if (__log.isDebugEnabled())
__log.debug("Fault response message: " + mex.getFault());
OMElement detail = _converter.createSoapFault(mex.getFaultResponse().getMessage(), mex.getFault(), mex.getOperation());
String reason = mex.getFault()+" "+mex.getFaultExplanation();
throw new AxisFault(mex.getFault(), reason, null, null, detail);
- case ASYNC:
+ case ONEWAY:
case RESPONSE:
_converter.createSoapResponse(msgContext, mex.getResponse().getMessage(), mex.getOperation());
if (__log.isDebugEnabled())