Hi Fred, in the example you are giving below, the feature does get installed twice (or shall I say the interceptors are installed twice), though what I am not sure is whether or not it is justified to use <cxf:bus> as a root scope of configuration. In concept, a CXF endpoint gets its configuration and features (in most cases, features map to interceptors) installed from bus, bindings and endpoint, but does this mean bus configuration is the root scope configuration or the default configuration? A CXF user, in most cases, I believe they should only understand and care about the <jaxws:endpoint> configuration. Of course, it is a very valid use case that you might want to say I want to apply this WS-Policy feature to all my three <jaxws:endpoint>, or you define a WS-Policy feature and you say this feature should apply to all <jaxws:endpoint> by default if there is no override. How to do this (but not using <CXF:bus>), is the thing we need to figure out. ;-)
Cheers, Jervis -----Original Message----- From: Fred Dushin [mailto:[EMAIL PROTECTED] Sent: 2007?6?21? 23:26 To: [email protected] Subject: Re: 2.0.1 & 2.1 Releases On Jun 20, 2007, at 10:09 PM, Dan Diephouse wrote: > Are you thinking about a case where two features might add the same > interceptors to an InterceptorProvider? Can you explain a little > bit more > the case where multiple features are adding the same interceptors to a > Bus/Client/Server? Exactly. E.g., what would happen in the following case (where we have a fictional cxf:bus feature): {{{ <cxf:bus> <jaxws:features> <acme:MyFeature ... /> </jaxws:features> </cxf:bus> <jaxws:endpoint name="{http://www.acme.com}WhizzBangPort"> <jaxws:features> <acme:MyFeature ... /> </jaxws:features> </jaxws:endpoint> }}} Is there one feature instance installed, or 2? Maybe we need a notion of default features, as in {{{ <cxf:bus> <jaxws:defaultFeatures> <acme:MyFeature ... /> </jaxws:defaultFeatures> </cxf:bus> }}} which are only installed if they are not explicitly overridden by an endpoint or client feature, but I don't think implementing that is trivial, since the runtime doesn't really know anything about features, per se. It just knows what interceptors are. /Fred ---------------------------- IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
