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

Reply via email to