Allow thread safe access to proxy with requestContext usage..
-------------------------------------------------------------

                 Key: CXF-1410
                 URL: https://issues.apache.org/jira/browse/CXF-1410
             Project: CXF
          Issue Type: Improvement
          Components: JAX-WS Runtime
    Affects Versions: 2.0.4
            Reporter: Gary Tully
            Priority: Minor


It should be possible to cache a proxy and provide thread safe access to it. 
For example, the following code should work from multiple threads with 
deterministic results:

        Greeter greeter = // get cached proxy
        InvocationHandler handler = Proxy.getInvocationHandler(greeter);
        Map<String, Object> requestContext = 
((BindingProvider)handler).getRequestContext();
        String threadSpecificaddress = // ... 
        requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, 
threadSpecificaddress);


the proposal is to implement thread local request contexts and manage the 
mapping from shared proxy request contexts to the thread local.The 
synchronization point is on a call to getRequestContext. the return is a 
snapshot of the current shared proxy request context map.
The map is such that it will echo modifications into the shared map. But 
further modifications to teh shared map will not be visible to the calling 
thread until  subsequent getRequestContext call is made.

In other words, an invoke works with a copy of the thread local context which 
takes into account modifications to the shared context at the time of the 
getRequestContextCall()



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to