cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Kulp <>
Subject Re: Proposal: Interceptor Listeners
Date Wed, 07 May 2008 03:48:04 GMT

I'm not quite as against the idea as Glen is.  I'm more "indifferent"  
as long as performance is completely not impacted.

Also, it's more of an InterceptorChainListener as that would be the  
one calling the methods and the listener is really listening to what  
the PhaseInterceptorChain is doing.   Thus, with that in mind, you  
probably would need to add methods like

void interceptorAdded(Interceptor)
void interceptorRemoved(...)
void exceptionCaught(Throwable)

My major concern is adding a bunch more method calls on the intercepor  
chain path an what impact might that have on performance.

I'm actually wondering if it might make more sense to make the  
creation of the PhaseInterceptorChain objects somehow more pluggable  
and allow subclasses or something that could do that.   The default  
would be our normal implementation, but you could plugin a different  
LoggingPhaseInterceptorChain or something that could perform worse.     
That said, creating the chains via a factory or something could have  
just as much of a performance impact or something. Not really sure.

I might need to think about this some more though and could easily be  
convinced one way or another.


On May 6, 2008, at 1:44 PM, Bharath Ganesh wrote:

> I was thinking of a way to register listeners with CXF interceptors.  
> The use
> case I ran into was:
> I wanted some timing diagnostics to determine the time certain  
> interceptors
> were taking to process the message. Ideally I would register a
> TimingListener with such interceptors. Another use case can be some  
> custom
> logging before and after each interceptor.
> Listener can be as simple as-
> public interface InterceptorListener
> {
>    void preHandleMessage(Interceptor interceptor);
>    void postHandleMessage(Interceptor interceptor);
>    void preHandleFault(Interceptor interceptor);
>    void postHandleFault(Interceptor interceptor);
> }
> How about building such a feature into the Interceptor framework? Any
> thoughts?

Daniel Kulp

View raw message