Thanks for doing this. This is really cool.
I've went ahead and copied some of this to:
http://cwiki.apache.org/confluence/display/CXF20DOC/Interceptors
and filled in the gaps. Let me know if anything needs to be
clarified or expanded.
There's definitely a bunch more interceptors that could be added. If
ws-addressing or ws-rm or similar is enabled, more stuff is added.
That list covers the "normal" use cases though. Nicely done.
Thanks!
Dan
On May 12, 2008, at 8:16 AM, harbhanu wrote:
Hi,
As per the earlier mails what I learnt is that interceptor holds the
core
logic with regards to processing of messages. So, I have decided to
compile
the top level tasks performed by each of the predefined interceptors
getting
invoked during in/out/fault processing. I am not able to formulate
the same
for most of the interceptors, as am a bit new to this and the code
also
doesn't provide too descriptive documentation. I couldn't find much
documentation on net too.
Please point me to some appropriate resources. Thanks !!
[Apologies incase I am being too demanding from the group]
The information that I have till now...although it might have some
errors...
Following list contains interceptors for in/out message processing
at the
server side...
Default Incoming interceptor chain (Server):
AttachmentInInterceptor
Constructs soap message with attachments from the MIME input stream
StaxInInterceptor
Creates an XMLStreamReader from the transport InputStream on the
Message
ReadHeadersInterceptor
Adds information pertaining to different headers in Message header
SoapActionInInterceptor
Parses "soapaction" information, based on input message type i.e.
SOAP 1.1 or 1.2
MustUnderstandInterceptor
Checks the MustUnderstand headers, its applicability and process it,
if required
SOAPHandlerInterceptor
SOAP Handler as per JAX-WS
LogicalHandlerInInterceptor
Logical Handler as per JAX-WS
CheckFaultInterceptor
Checks for fault, if present aborts interceptor chain and invokes
fault handler
URIMappingInterceptor
Can handle HTTP GET, extracts operation info and sets the same in
the Message
DocLiteralnInterceptor
Extracts operation information from the message
SoapHeaderInterceptor
Perform databinding of the SOAP headers
WrapperClassInInterceptor
-
SwAInInterceptor
-
HolderInInterceptor
-
ServiceInvokerInInterceptor
-
-------------------------------
Default Outgoing chain stack (Server):
HolderOutInterceptor
-
SwAOutInterceptor
-
WrapperClassOutInterceptor
-
SoapHeaderOutFilterInterceptor
Removes inbound marked headers
SoapActionOutInterceptor
Sets the SOAP Action on the wrapped operation, based on message type
i.e. SOAP 1.1 or 1.2
Does it when, if (!(message ==
message.getExchange().getInMessage()))
Query: What does this condition means, when this interceptor itself
is plugged on outgoing chain ?
MessageSenderInterceptor
SoapPreProtocolOutInterceptor
This interceptor is responsible for setting up the SOAP version and
header,
so that this is available to any pre-protocol interceptors that
require these to be available.
AttachmentOutInterceptor
-
StaxOutInterceptor
Creates an XMLStreamWriter from the OutputStream on the Message.
SoapHandlerInterceptor [-->AbstractProtocolHandlerInterceptor -->
AbstractJAXWSHandlerInterceptor]
Invokes handle message
SoapOutInterceptor
Writes start element for soap:envelope and complete elements for
other header
blocks in the message. Adds start element for soap:body too.
LogicalHandlerOutInterceptor [--> AbstractJAXWSHandlerInterceptor]
Replaces XML Stream writer with StAX writer
WrapperOutInterceptor
BareOutInterceptor
SoapOutInterceptor$SoapOutEndingInterceptor
StaxOutInterceptor$StaxOutEndingInterceptor
MessageSenderInt$MessageSenderEnding
----------------------------------------------------------------------------
I guess that some of the information in the above list might be
incomplete/incorrect/missing. Please help me update the same so that
it will
be helpful for others too :). Thanks!!
Regards,
Harbhanu
---
Daniel Kulp
[EMAIL PROTECTED]
http://www.dankulp.com/blog