dev@jax-ws.java.net

Re: BindingProvider response context property

From: Rama Pulavarthi <Rama.Pulavarthi_at_Sun.COM>
Date: Wed, 02 Aug 2006 14:11:13 -0700

Talked to Arun over the phone. The issue is resolved.
JAX-WS RI is behaving correctly. My bug fix in build 1213 checks that
default scope of properties is as per Spec.

If the property is set in request context, it will default to handler
scope. If JAX-WSA Pipe wants the property to be available in response
context, it has to remove it from the Packet's handler scope properties
map.

thanks,
Rama Pulavarthi

Arun Gupta wrote:
> This property is set in WS-A pipe as:
>
> if (ap != null) {
> Set<String> set = packet.getHandlerScopePropertyNames(true);
> if (set.contains(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES))
> set.remove(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES);
> packet.invocationProperties.put(
> JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, ap);
> }
> }
>
> Before #1212, it was set as:
>
> if (ap != null) {
> packet.invocationProperties.put(
> JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES, ap);
> }
>
> This change happened after #1212 only.
>
> and accessed in the client code as:
>
> Map<String,Object> rc = ((BindingProvider)stub).getResponseContext();
> AddressingProperties ap =
> (AddressingProperties)rc.get(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES);
>
>
> I'd like to understand why this behavior changed.
>
> Repeating what I said earlier ...
>
> "Packet.getHandlerScopePropertyNames(true).remove(...) does not look
> very intuitive."
>
> -Arun
>
> Rama Pulavarthi wrote:
>> Arun,
>> May be my fix caused some regression. Can you elaborate on where you
>> are setting the property and how you are accessing it.
>>
>> thanks,
>> Rama Pulavarthi
>>
>>
>> Arun Gupta wrote:
>>> Still waiting for a response ...
>>>
>>> Arun Gupta wrote:
>>>> The default properties added to Packet were in handler scope to
>>>> begin with, then changed to application scope and it seems like now
>>>> they are back to handler scope.
>>>>
>>>> I'm still looking for how to set application-scoped property names
>>>> in WS-A pipe. Packet.getApplicationPropertyScopeNames(boolean) is
>>>> deprecated. I think either deprecation should be removed or there
>>>> be another way to set application-scoped property.
>>>>
>>>> Packet.getHandlerScopePropertyNames(true).remove(...) does not look
>>>> very intuitive.
>>>>
>>>> -Arun
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe_at_jax-ws.dev.java.net
>> For additional commands, e-mail: dev-help_at_jax-ws.dev.java.net
>>
>