You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by harbhanu <ha...@huawei.com> on 2008/05/12 14:16:14 UTC

Default Interceptor's functionality

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


Re: Default Interceptor's functionality

Posted by Daniel Kulp <dk...@apache.org>.
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
dkulp@apache.org
http://www.dankulp.com/blog