Hi Dan,

URIDomainExpressionBuilder [1] was added to support all WSDL11 domain 
expressions accordingly spec [2] (excluding 
wsdl11.extension(namespace,identifier)).
I am thinking about registration of this builder as default bus extension (the 
same way as EndpointReferenceDomainExpressionBuilder):
- from one side default registration is comfortable for users applying WSDL11 
expressions in external attachments, this will work just out of the box.
- from other side, if user would like to register own domain expression (like 
in one security integration test [3]), it will be very difficult to replace 
default builder. 

The problem is that SpringConfiguredBeanLocator used in 
DomainExpressionBuilderRegistry loads Spring beans on first step and then 
checks for Bus extensions (using ExtensionManager). Beans specified in custom 
configuration will be overwritten by registered bus extension.
If client or service is created using spring configuration, it is not trivial 
to replace default DomainExpressionBuilder (it is possible with 
ExtensionManagerImpl internal methods, but not convenient).

I see following options:
(a) Leave the code as is and document that user have to register 
URIDomainExpressionBuilder as bus extension or as a bean to use WSDL11 
expressions.
(b) Change initialization order in SpringConfiguredBeanLocator to give spring 
beans higher priority as bus extensions (this can have side effects)
(c) Introduce convenient mechanism to replace/remove registered bus extensions 
or control behaviour of ConfiguredBeanLocator.
 
What is your opinion? May be I am missing something and option (c) is already 
available?

Regards,
Andrei.

[1] 
https://fisheye6.atlassian.com/changelog/cxf?cs=a4ea197c50c99d0c02d9226484c3ee0f8fa63b05
  
[2] http://www.w3.org/TR/2007/NOTE-wsdl11elementidentifiers-20070720/ 
[3] 
https://fisheye6.atlassian.com/browse/cxf/systests/ws-security/src/test/java/org/apache/cxf/systest/ws/policy/UriDomainExpression.java
 

> -----Original Message-----
> From: Daniel Kulp [mailto:dk...@apache.org]
> Sent: Freitag, 11. April 2014 19:40
> To: dev@cxf.apache.org; Andrei Shakirin
> Subject: Re: Extended support for wsdl11external WS-PolicyAttachments
> references
> 
> 
> No objections here.   I think we just implemented the few basic places to meet
> whatever test case we were shooting for with the old Microsoft 
> interoperability
> tests and didn't go much further.
> 
> Dan
> 
> 
> On Apr 11, 2014, at 5:44 AM, Andrei Shakirin <ashaki...@talend.com> wrote:
> 
> > Hi,
> >
> > Currently CXF supports only limited set of references for external WS-
> PolicyAttachments (wsa:EndpointReferenceType):
> >
> > <attachments xmlns:wsp="http://www.w3.org/ns/ws-policy";
> xmlns:test="http://x.y.z/Assertions";>
> >    <wsp:PolicyAttachment>
> >        <wsp:AppliesTo>
> >            <wsa:EndpointReferenceType
> xmlns:wsa="http://www.w3.org/2005/08/addressing";>
> >                <wsa:Address>http://x.y.z/GreeterPort</wsa:Address>
> >            </wsa:EndpointReferenceType>
> >        </wsp:AppliesTo>
> >        <wsp:Policy>
> >           <test:A>A</test:A>
> >        </wsp:Policy>
> >    </wsp:PolicyAttachment>
> > </attachments>
> >
> > I propose to extend that to support at least some URI Domain Expression for
> wsdl11:
> > wsdl11.definitions()
> > wsdl11.service(service)
> > wsdl11.binding(binding)
> > wsdl11.bindingOperation(binding/operation)
> > wsdl11.bindingOperation.input(binding/operation)
> > wsdl11.bindingOperation.output(binding/operation)
> > wsdl11.bindingOperation.fault(binding/operation/fault)
> >
> > I see that some work was started in cxf-rt-ws-policy
> Wsdl11XPointerDomainExpression class, but it seems that is not complete.
> > Partly it is also implemented in systests
> > org.apache.cxf.systest.ws.policy.UriDomainExpression and
> > org.apache.cxf.systest.ws.policy.UriDomainExpressionBuilder
> >
> > I would create Jira and add support for wsdl11 references.
> > Any suggestions / objections?
> >
> > Regards,
> > Andrei.
> >
> 
> --
> Daniel Kulp
> dk...@apache.org - http://dankulp.com/blog Talend Community Coder -
> http://coders.talend.com

Reply via email to