jmsnell 2002/10/29 15:58:02 Modified: java/src/org/apache/axis/ime/internal/util/handler HandlerMessageExchange.java Log: Modified HandlerMessageExchange (utility class that wraps the MessageExchange interface around a Handler) to better support targeted chains Revision Changes Path 1.3 +22 -2 xml-axis/java/src/org/apache/axis/ime/internal/util/handler/HandlerMessageExchange.java Index: HandlerMessageExchange.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/ime/internal/util/handler/HandlerMessageExchange.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- HandlerMessageExchange.java 29 Oct 2002 23:33:40 -0000 1.2 +++ HandlerMessageExchange.java 29 Oct 2002 23:58:02 -0000 1.3 @@ -56,6 +56,7 @@ package org.apache.axis.ime.internal.util.handler; import org.apache.axis.Handler; +import org.apache.axis.TargetedChain; import org.apache.axis.MessageContext; import org.apache.axis.ime.MessageExchangeCorrelator; import org.apache.axis.ime.MessageContextListener; @@ -96,6 +97,22 @@ return new FirstComeFirstServeDispatchPolicy(RECEIVE, RECEIVE_REQUESTS); } + protected Handler getSendHandler() { + Handler h = null; + if (handler instanceof TargetedChain) { + h = ((TargetedChain)handler).getRequestHandler(); + } + return h; + } + + protected Handler getReceiveHandler() { + Handler h = null; + if (handler instanceof TargetedChain) { + h = ((TargetedChain)handler).getResponseHandler(); + } + return h; + } + public class Listener implements MessageExchangeSendListener { @@ -121,8 +138,11 @@ MessageExchangeCorrelator correlator = context.getMessageExchangeCorrelator(); - // should I do init's and cleanup's in here? - handler.invoke(msgContext); + if (handler instanceof TargetedChain) { + ((TargetedChain)handler).getPivotHandler().invoke(msgContext); + } else { + handler.invoke(msgContext); + } RECEIVE.put(correlator, context);