I'm implementing an interceptor for CXF and am looking for a way to programmatically determine where the interceptor is actually being called during processing, i.e. I want to know whether the interceptor is being run on the client or the service side and in the outgoing or incoming interceptor chain. Outgoing or incoming chain is easy:
message.get(MESSAGE_INFO_KEY).getType() returns Type.INPUT or Type.OUTPUT To determine if I am on the client or service side I came up with something like this (pseudocode): ((type == Type.INPUT) && (message == message.getExchange().getOutMessage())) => Client / Request ((type == Type.INPUT) && (message == message.getExchange().getInMessage())) => Provider / Request ((type == Type.OUTPUT) && (message == message.getExchange().getOutMessage())) => Provider / Response ((type == Type.OUTPUT) && (message == message.getExchange().getInMessage())) => Client / Response Did I get this right? Is there maybe a more elegant way to handle this? Thanks in advance for any hints. Best regards Jerry