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/07 20:40:07 UTC
svn commit: r563613 - in
/ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi:
MessageExchangeContextImpl.java OdeConsumer.java OdeService.java
Author: mszefler
Date: Tue Aug 7 11:40:06 2007
New Revision: 563613
URL: http://svn.apache.org/viewvc?view=rev&rev=563613
Log:
BART: Update JBI to use UNRELIABLE instead of BLOCKING/ASYNC
Modified:
ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi/MessageExchangeContextImpl.java
ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java
ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi/OdeService.java
Modified: ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi/MessageExchangeContextImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi/MessageExchangeContextImpl.java?view=diff&rev=563613&r1=563612&r2=563613
==============================================================================
--- ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi/MessageExchangeContextImpl.java (original)
+++ ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi/MessageExchangeContextImpl.java Tue Aug 7 11:40:06 2007
@@ -49,8 +49,7 @@
private static final Set<InvocationStyle> __supported;
static {
HashSet<InvocationStyle> supported = new HashSet<InvocationStyle>();
- supported.add(InvocationStyle.BLOCKING);
- supported.add(InvocationStyle.ASYNC);
+ supported.add(InvocationStyle.UNRELIABLE);
__supported = Collections.unmodifiableSet(supported);
}
@@ -58,16 +57,8 @@
_ode = ode;
}
- public void onAsyncReply(MyRoleMessageExchange myrolemex) throws BpelEngineException {
- __log.error("Unexpected onAsyncReply notification: " + myrolemex);
- // Due to JBI limitiations (i.e. we cannot recover a JBI message-exchange object) , we don't support ASYNC invocations
- }
- public void invokePartnerAsynch(PartnerRoleMessageExchange mex) throws ContextException {
- _ode._consumer.invokePartner(mex);
- }
-
- public void invokePartnerBlocking(PartnerRoleMessageExchange mex) throws ContextException {
+ public void invokePartnerUnreliable(PartnerRoleMessageExchange mex) throws ContextException {
_ode._consumer.invokePartner(mex);
}
@@ -81,10 +72,6 @@
}
- public void onReliableReply(MyRoleMessageExchange myRoleMex) throws BpelEngineException {
- __log.error("Unexpected onRepliabeReply notification: " + myRoleMex);
-
- }
public void cancel(PartnerRoleMessageExchange mex) throws ContextException {
// What can we do in JBI to cancel? --- not much.
@@ -93,6 +80,11 @@
public Set<InvocationStyle> getSupportedInvocationStyle(PartnerRoleChannel prc, EndpointReference partnerEpr) {
return __supported ;
+ }
+
+
+ public void onMyRoleMessageExchangeStateChanged(MyRoleMessageExchange myRoleMex) throws BpelEngineException {
+ // TODO: add support for message exchange recovery.
}
Modified: ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java
URL: http://svn.apache.org/viewvc/ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java?view=diff&rev=563613&r1=563612&r2=563613
==============================================================================
--- ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java (original)
+++ ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi/OdeConsumer.java Tue Aug 7 11:40:06 2007
@@ -199,16 +199,7 @@
protected void doSendJBI(final PartnerRoleMessageExchange odeMex, final MessageExchange jbiMex) {
try {
- switch (odeMex.getInvocationStyle()) {
- case ASYNC:
- _ode.getChannel().send(jbiMex);
- break;
- case BLOCKING:
- _ode.getChannel().sendSync(jbiMex, odeMex.getTimeout());
- break;
- default:
- throw new ContextException("Unsupported Invocation Style: " + odeMex.getInvocationStyle());
- }
+ _ode.getChannel().send(jbiMex);
} catch (MessagingException e) {
String errmsg = "Error sending request-only message to JBI for ODE mex " + odeMex;
__log.error(errmsg, e);
Modified: ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi/OdeService.java
URL: http://svn.apache.org/viewvc/ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi/OdeService.java?view=diff&rev=563613&r1=563612&r2=563613
==============================================================================
--- ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi/OdeService.java (original)
+++ ode/branches/bart/jbi/src/main/java/org/apache/ode/jbi/OdeService.java Tue Aug 7 11:40:06 2007
@@ -166,29 +166,6 @@
}
/**
- * Called from {@link MessageExchangeContextImpl#onAsyncReply(MyRoleMessageExchange)}
- *
- * @param mex
- * message exchenge
- */
- public void onResponse(MyRoleMessageExchange mex, javax.jbi.messaging.MessageExchange jbiMex) {
- switch (mex.getStatus()) {
- case FAULT:
- outResponseFault(mex, jbiMex);
- break;
- case RESPONSE:
- outResponse(mex, jbiMex);
- break;
- case FAILURE:
- outFailure(mex, jbiMex);
- break;
- default:
- __log.warn("Received ODE message exchange in unexpected state: " + mex.getStatus());
- }
- mex.release();
- }
-
- /**
* Forward a JBI input message to ODE.
*
* @param jbiMex
@@ -201,7 +178,7 @@
+ jbiMex.getOperation());
}
- odeMex = _ode._server.createMessageExchange(InvocationStyle.BLOCKING, _endpoint.serviceName, jbiMex.getOperation()
+ odeMex = _ode._server.createMessageExchange(InvocationStyle.UNRELIABLE, _endpoint.serviceName, jbiMex.getOperation()
.getLocalPart(), jbiMex.getExchangeId());
if (odeMex.getOperation() == null) {
@@ -226,23 +203,34 @@
odeMex.setRequest(odeRequest);
try {
odeMex.invokeBlocking();
- // Handle the response if it is immediately available.
- if (odeMex.getStatus() != Status.ASYNC) {
- __log.debug("ODE MEX " + odeMex + " completed SYNCHRONOUSLY.");
- onResponse(odeMex, jbiMex);
- } else {
- __log.fatal("ODE MEX " + odeMex + " unexpectedly completed ASYNCHRONOUSLY.");
- }
+
} catch (Exception ex) {
__log.error("ODE MEX " + odeMex + " resulted in an error.");
sendError(jbiMex, ex);
+ return;
+ }
+
+ switch (odeMex.getAckType()) {
+ case FAULT:
+ outResponseFault(odeMex, jbiMex);
+ break;
+ case RESPONSE:
+ outResponse(odeMex, jbiMex);
+ break;
+ case FAILURE:
+ outFailure(odeMex, jbiMex);
+ break;
+ default:
+ __log.fatal("Unexpected AckType:" + odeMex.getAckType());
+ sendError(jbiMex, new RuntimeException("Unexpected AckType:" + odeMex.getAckType()));
+
}
}
private void outFailure(MyRoleMessageExchange odeMex, javax.jbi.messaging.MessageExchange jbiMex) {
try {
- jbiMex.setError(new Exception("MEXFailure"));
+ jbiMex.setError(new Exception("MEXFailure: " + odeMex.getFailureType()));
jbiMex.setStatus(ExchangeStatus.ERROR);
// TODO: get failure codes out of the message.
_ode.getChannel().send(jbiMex);