Hi, Like Sven suggested, you can use - message.getInterceptorChain().add() - message.getInterceptorChain().remove()
to dynamically control your message interceptors. Another alternative is using WS-Policy and AbstractPolicyInterceptorProvider instead of property to manage interceptors. Policies can be applied statically as well as dynamically using POLICY_OVERRIDE property. Regards, Andrei. -----Original Message----- From: Sven Zethelius [mailto:[email protected]] Sent: 07 July 2012 03:16 To: [email protected] Subject: RE: Adding a conditional interceptor (or removing one based on a condition) For the add case, installing a feature that then installs the interceptor may work for you (extends AbstractFeature). If its something you want to do based on a message property, the other way is to have an interceptor that adds an interceptor. A number of the CXF interceptors do this for "ending" phases where they need to do some cleanup. The remove is a bit trickier, since you'd need to keep track of the Client instance it was installed on to remove it. Its certainly possible but you also may have to worry about synchronization since the list from the Client is copied each time a new message is started, so if you have an active client you may get ConcurrentModificationException from other threads trying to use the client while you are removing the interceptor. ________________________________________ From: webber [[email protected]] Sent: Friday, July 06, 2012 8:44 AM To: [email protected] Subject: Adding a conditional interceptor (or removing one based on a condition) Hi, I have a couple of interceptors on my client(jaxws:client) which are added using spring config (jaxws:inInterceptors). I would like one of these interceptors to be added based on a propery setting. The only option I could get to work was using the property setting in the interceptor's handleMessage and decide whether or not to perform the required interceptor logic. So basically, when the condition is false, it always go to the handleMessage and does nothing. I assume the above solution is not ideal. Is there anyway I can control this properly, by a) Not adding the interceptor in the first place based on that propery (not sure if there is if/else condition in spring config) b) If we do have to add the interceptor in spring config, is there a way to obtain it and remove it later on from else where based on a property Thanks -- View this message in context: http://cxf.547215.n5.nabble.com/Adding-a-conditional-interceptor-or-removing-one-based-on-a-condition-tp5710686.html Sent from the cxf-user mailing list archive at Nabble.com.
