You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Nikhil V Thaker <ni...@us.ibm.com> on 2007/10/18 22:10:27 UTC

Delegate MustUnderstand header check to MessageReceiver

I would like to propose a change to handle certain situations in jaxws 
where we need to postpone the must understand header check from the 
AxisEngine to the MessageReceiver. For example, in case of jaxws handler, 
an application can choose to implement getHeaders() and choose to add 
valid header qnames in that implementation. A mustUnderstand validation 
needs to happen for this scenario as described in section 10.2.1 of jaxws 
specification, in this situation if the jaxws handlers are not loaded, the 
must understand checks has to be postponed from AxisEngine until the 
handler are loaded and available in jaxws implementation.

Currently all the must understand processing happens in AxisEngine's 
receive() method, I would like to provide a facility in AxisEngine code 
where we can choose to delegate MustUnderstand Check to a  Message 
Receiver. I would like to propose addition of a new interface called 
MessageReceiverExtension in Kernel module which has a method 
isMustUnderstandCheckPostponed, this new interface will be implemented by 
JAXWSMessageReceiver and will help in making the runtime decision to 
postpone must understand check in AxisEngine code. 

Attached is the patch with proposed changes.



Nikhil Thaker
office: 512 838 9964
nvthaker@us.ibm.com

Re: Delegate MustUnderstand header check to MessageReceiver

Posted by Deepal Jayasinghe <de...@opensource.lk>.
Hi Nikhil ,
I am 0+ on introducing a new interface , however if JAXWS really want
this let's add this. I think not only JAXWS , Synapse also asked similar
request. Apart from what we are going to do by looking at the patch I
realized that we need to improve the patch a bit. Specially we do not
need the following lines of code

 AxisService axisService = msgContext.getAxisService();
+        Parameter p = new Parameter(Constants.FAULTY_HEADER_QNAMES, faultyHeaderQNames);
+        axisService.addParameter(p);

What we should do is use Contexts to store such data , in this case we may store in either MessageContext of ServiceContext.

Thanks
Deepal

> I would like to propose a change to handle certain situations in jaxws
> where we need to postpone the must understand header check from the
> AxisEngine to the MessageReceiver. For example, in case of jaxws
> handler, an application can choose to implement getHeaders() and
> choose to add valid header qnames in that implementation. A
> mustUnderstand validation needs to happen for this scenario as
> described in section 10.2.1 of jaxws specification, in this situation
> if the jaxws handlers are not loaded, the must understand checks has
> to be postponed from AxisEngine until the handler are loaded and
> available in jaxws implementation.
>
> Currently all the must understand processing happens in AxisEngine's
> receive() method, I would like to provide a facility in AxisEngine
> code where we can choose to delegate MustUnderstand Check to a
>  Message Receiver. I would like to propose addition of a new interface
> called MessageReceiverExtension in Kernel module which has a method
> isMustUnderstandCheckPostponed, this new interface will be implemented
> by JAXWSMessageReceiver and will help in making the runtime decision
> to postpone must understand check in AxisEngine code.
>
> Attached is the patch with proposed changes.
>
>
>
> Nikhil Thaker
> office: 512 838 9964
> nvthaker@us.ibm.com
> ------------------------------------------------------------------------
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org