Hi Guy, The 2005/08 version of WS-Addressing is the native version supported by CXF. However WS-ReliableMessaging is still based on WS-A 2004/08, so we provide support for this version also. Now rather than polluting the entire stack with the WS-A 2004/08 version, the multi-version logic is largely restricted to the WS-A layer just in advance of the types being encoded/decoded to/from the message payload .. i.e. outgoing WS-A elements are represented in the native 2005/08 form throughout the stack before being transformed to the 2004/08 version if necessary just prior to encoding as outbound SOAP headers (the if necessary case occurs in practice only if WS-RM is part of the picture). Similarly incoming WS-A 2004/08 elements are transformed to the native 2005/08 representation just after being decoded from the inbound protocol headers.
AddressingProperties.getNamespaceURI() determines if the 2005/08 or 2004/08 versions are used to encode the addressing properties. If you want to this to be 2005/08, then no inravention is required. If, on the other hand, you want 2004/08 for some reason, then you could install in the outbound chain either a JAX-WS LogicalHandler or native CXF interceptor (of LOGICAL phase or later), retrieve the current AddressingPropertiesImpl instance and use the exposeAs() API to set this. See the org.apache.cxf.ws.rm.RMContextUtils.ensureExposeAs() method for example usage. I guess a good extension of this would be to allow the 2004/08 version to be selected declaratively (i.e. via config or a policy) as opposed to programmatically ... we didn't provide this flexibility initially as the only known use-case was "internal" (i.e. the CXF WS-RM implementation). Cheers, Eoghan > -----Original Message----- > From: Guy Pardon [mailto:[EMAIL PROTECTED] > Sent: 26 March 2007 13:30 > To: [email protected] > Subject: WS-Addressing version support > > Hi, > > Exactly what versions of the WS-Addressing specs are > supported in CXF? How can I switch between them? > > Thanks, > Guy >
