On Thu November 12 2009 12:49:41 pm Alessio Soldano wrote: > Yep, this makes sense to me, this was the other idea I had, just though > it was excluded from the beginning.
Just a little history about this that I mentioned on IRC, but thought everyone might benefit from hearing about. Long long ago, we completely used a "push" model for the JAX-WS context. Before entering any handler and before invoking the service, we would walk through all the message properties and map them to the required JAX-WS properties. On the way out of the handlers/service, we would walk through all the properties again and map them back into cxf properties. This was done for EVERY invokation, even if the service didn't use the context or anything. After some profiling, we discovered this was a measurable amount of time being spent (like 5% for a "echoString" type service). In the 2.1 timeframe, we did some performance work and one of the things that was done was to start making the jaxws context a "pull" thing. The JAX-WS context wrappers the message/exchange and on every put/get, we do the mapping to/from cxf values. With this way of doing it, the hit is ONLY done when the context is actually used and ONLY for the keys that are actually requested/used. For 90% of the time when the context is not used, the only hit is the creation of the wrapper object (very very minor). What you are running into is a case where not ALL of the "push" things were remapped into pulls. Definitely worth fixing to avoid the extra processing that doesn't really need to be done. Dan > Daniel Kulp wrote: > > Note: if you make the change to WrappedMessageContext such that if it is > > "null" on the exchange already, then do the above, I'd be happy to merge > > that back to 2.2.x. The removal of the stuff from Message.java would > > need to be a migration guide thing for 2.3. > > I created https://issues.apache.org/jira/browse/CXF-2532 , looking at > that tomorrow. > Thanks > Alessio > -- Daniel Kulp dk...@apache.org http://www.dankulp.com/blog