On Thu March 5 2009 2:36:55 pm Sergey Beryozkin wrote: > ok, I guess I misinterpreted the original hint. I'll get back to it > tomorrow as I'm off now, will update the AbstractOutDatabindingInterceptor > to check the message instead... > > By the way, what is the key idea behind the message contextual property as > opposed to a plain message property (set on the inbound/outbound message). > When such a contextual property is supposed to be set ? Is it when say > properties on a jaxws:endpoint are configured ?
The contextual property check a hiearchy of places. The Message is first, so anything set on the message overrides anything else. I think the exchange is next, then the service, then the endpoint. I plan on adding a properties thing to the Bus as well and making that last (to allow Bus scoped properties), just haven't gotten around to it. The main thing this allows is configuring things at various levels. For example, take MTOM. You can configure it in spring config which would put it at a endpoint level. However, an interceptor could override it by setting it on the message. That changes the behavior for that invokation, but not all invokations. Dan > > > Cheers, Sergey > > ----- Original Message ----- > From: "Daniel Kulp" <[email protected]> > To: <[email protected]> > Sent: Thursday, March 05, 2009 6:39 PM > Subject: Re: svn commit: r750522 - in /cxf/trunk: > common/common/src/main/java/org/apache/cxf/common/util/ > rt/core/src/main/java/org/apache/cxf/bus/spring/ > rt/core/src/main/java/org/apache/cxf/interceptor/ > rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/ext/ rt... > > On Thu March 5 2009 12:52:21 pm [email protected] wrote: > > CachingXmlEventWriter cache = null; > > > > - if (shouldValidate(message) && !isRequestor(message)) { > > - //need to cache the events in case validation fails > > + // need to cache the events in case validation fails or buffering > > is enabled + if (shouldValidate(message) && !isRequestor(message) > > + || SystemUtils.isBufferingEnabled()) { > > cache = new CachingXmlEventWriter(); > > try { > > This definitely shouldn't be based on a system property. It should be > something like: > > message.getContextualProperty("org.apache.cxf.buffer.output") > > or similar so it can be configured on a per-endpoint basis. -- Daniel Kulp [email protected] http://www.dankulp.com/blog
