Dan, >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
Yes, that sounds good. Another option is to have methods like - preInvokeInterceptor(Interceptor, Message) postInvokeInterceptor(Interceptor, Message) in the PhaseInterceptorChain / InterceptorChain. These method could me invoked from doIntercept(Message). Custom implementations of PhaseInterceptorChain could override just these methods. On Wed, May 7, 2008 at 9:18 AM, Daniel Kulp <[EMAIL PROTECTED]> wrote: > > 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) > etc.... > > 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. > > > Dan > > > > > 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 > [EMAIL PROTECTED] > http://www.dankulp.com/blog > > > >