jmsnell 2002/10/29 14:40:54 Modified: java/src/org/apache/axis/ime/internal MessageExchangeProvider.java Log: Added send and receive handler invocation to the MessageExchangeProvider base implementation. Revision Changes Path 1.6 +23 -4 xml-axis/java/src/org/apache/axis/ime/internal/MessageExchangeProvider.java Index: MessageExchangeProvider.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/ime/internal/MessageExchangeProvider.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- MessageExchangeProvider.java 29 Oct 2002 22:29:26 -0000 1.5 +++ MessageExchangeProvider.java 29 Oct 2002 22:40:54 -0000 1.6 @@ -57,6 +57,7 @@ import org.apache.axis.i18n.Messages; import org.apache.axis.AxisFault; +import org.apache.axis.Handler; import org.apache.axis.MessageContext; import org.apache.axis.ime.MessageExchange; import org.apache.axis.ime.MessageContextListener; @@ -85,6 +86,14 @@ protected boolean initialized = false; + protected Handler getSendHandler() { + return null; + } + + protected Handler getReceiveHandler() { + return null; + } + protected abstract MessageExchangeSendListener getMessageExchangeSendListener(); protected abstract ReceivedMessageDispatchPolicy getReceivedMessageDispatchPolicy(); @@ -119,8 +128,8 @@ if (initialized) throw new IllegalStateException(Messages.getMessage("illegalStateException00")); for (int n = 0; n < THREAD_COUNT; n++) { - WORKERS.addWorker(new MessageSender(WORKERS, SEND, getMessageExchangeSendListener())); - WORKERS.addWorker(new MessageReceiver(WORKERS, RECEIVE, getReceivedMessageDispatchPolicy())); + WORKERS.addWorker(new MessageSender(WORKERS, SEND, getMessageExchangeSendListener(), getSendHandler())); + WORKERS.addWorker(new MessageReceiver(WORKERS, RECEIVE, getReceivedMessageDispatchPolicy(), getReceiveHandler())); } initialized = true; } @@ -170,14 +179,17 @@ protected WorkerPool pool; protected KeyedBuffer channel; protected ReceivedMessageDispatchPolicy policy; + protected Handler handler; protected MessageReceiver( WorkerPool pool, KeyedBuffer channel, - ReceivedMessageDispatchPolicy policy) { + ReceivedMessageDispatchPolicy policy, + Handler handler) { this.pool = pool; this.channel = channel; this.policy = policy; + this.handler = handler; } /** @@ -187,6 +199,8 @@ try { while (!pool.isShuttingDown()) { MessageExchangeSendContext context = (MessageExchangeSendContext)channel.select(SELECT_TIMEOUT); + if (handler != null) + handler.invoke(context.getMessageContext()); policy.dispatch(context); } } catch (Throwable t) { @@ -210,14 +224,17 @@ protected WorkerPool pool; protected KeyedBuffer channel; protected MessageExchangeSendListener listener; + protected Handler handler; protected MessageSender( WorkerPool pool, KeyedBuffer channel, - MessageExchangeSendListener listener) { + MessageExchangeSendListener listener, + Handler handler) { this.pool = pool; this.channel = channel; this.listener = listener; + this.handler = handler; } /** @@ -227,6 +244,8 @@ try { while (!pool.isShuttingDown()) { MessageExchangeSendContext context = (MessageExchangeSendContext)channel.select(SELECT_TIMEOUT); + if (handler != null) + handler.invoke(context.getMessageContext()); if (context != null) listener.onSend(context); }