Hi Fred, I recalled we had a similar discussion before. In your code snippet below, the logging interceptors will be installed twice. I wont say <cxf:bus> is a root scope configuration as there is no hierarchy relationships among bus, endpoints and bindings. Bus, endpoints and bindings are just individual components that can contribute interceptors, some times a same bus instance can be shared by multiple services but this wont necessarily make it a root configuration. Bindings can be shared by multiple services as well. What you required, "if a feature is defined at endpoint granularity, that feature is the effective feature in config, whereas if there is no such config at endpoint granularity, the runtime would fall back to the Bus config", is really a scope-based configuration. This is no such thing existing yet in CXF. I wonder can this be done through WS-Policy? I.e., I can make some assertions like this: " I want to apply this feature to endpoint A and B" or "I want this feature applied to all my endpoints by default if there is no overridden feature defined for the individual endpoint". Thoughts?
Jervis > -----Original Message----- > From: Fred Dushin [mailto:[EMAIL PROTECTED] > Sent: 2007?8?29? 2:52 > To: [email protected] > Subject: Bus Features [was: Logging ...] > > > > On Aug 24, 2007, at 11:36 AM, Daniel Kulp wrote: > > > <cxf:bus> > > <cxf:features> > > <cxf:logging/> > > </cxf:features> > > </cxf:bus> > > How do Bus-level features interact with endpoint- or client-level > features? For example, if I have > > {{{ > <cxf:bus> > <cxf:features> > <cxf:foo/> > </cxf:features> > </cxf:bus> > > <jaxws:endpoint name="{http://foo.bar.com}FUBAR"> > <cxf:features> > <cxf:foo/> > </cxf:features> > </jaxws:endpoint> > }}} > > and a servant is instantiated under the WSDL Port > {http://foo.bar.com} > FUBAR, is a feature instantiated twice, once for the Bus, qua > InterceptorProvider, and once for the Endpoint, qua > InterceptorProvider? > > If it's instantiated twice, is there any way a feature > implementor to > traverse the interceptors on each InterceptorProvider, to see if a > feature has been installed, or are these interceptor lists > independent of one another? > > (The reason I ask is, there might be a tendency to think of the > feature config on the Bus as a kind of default, such that if a > feature is defined at endpoint granularity, that feature is the > effective feature in config, whereas if there is no such config at > endpoint granularity, the runtime would fall back to the Bus > config. > But I'm guessing that's really not the behavior here, is it?) > > Thanks! > -Fred > ---------------------------- IONA Technologies PLC (registered in Ireland) Registered Number: 171387 Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
