cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dan Diephouse" <...@envoisolutions.com>
Subject Re: Configuration
Date Mon, 22 Jan 2007 18:57:22 GMT
Crap. I hit tab-enter accidentally while composing. :-( Will send off a
finished version soon....

On 1/22/07, Dan Diephouse <dan@envoisolutions.com> wrote:
>
> OK, first let me try to give a little more context, and then I'll try to
> answer your specific questions.
>
> In our current code we have a ConfigurationProvider mechanism. As I
> understand the motivation for this as it allows configuration values to come
> form places other than the bean itself. Supporting this use case is a Good
> Thing.
>
> As I dug through Spring 2's documentation, I noticed the
> BeanFactoryPostProcessor interface [1]. This allows customizing of how the
> beans are configured. One example of this bean is the PropertyOverrideConfigurer
> bean. It can take values from a properties file and override a bean's
> properties with them. Other examples take configuration from web.xml files
> or from databases. Spring can take a list of these BeanFactoryPostProcessors
> and they can be ordered. This means our configuration can come from anywhere
> with the one notable exception of the service model.
>
> I'm thinking, this seems to do exactly what we want and it doesn't req
>
>
> 1.
> http://static.springframework.org/spring/docs/2.0.x/api/org/springframework/beans/factory/config/BeanFactoryPostProcessor.html
>
> On 1/22/07, Andrea Smyth <andrea.smyth@iona.com> wrote:
> >
> > Dan Diephouse wrote:
> >
> > > Hi All,
> > >
> > > Just wanted to propose something a bit more concrete via Configuration
> > > before going about it. Basically we have these cases:
> > > 1. Configuration comes from Spring XML
> > > 2. Configuration comes from service model (WSDL, API)
> > > 3. Configuration may come from some data source (Database, properties
> > > file)
> > >
> > > Instead of the ConfigurationProvider approach we can simplify by
> > > 1. Making beans just beans without our code generation customization
> > > 2. Creating a method on the Bus to get configuration values:
> > >
> > > HTTPServerPolicy p = bus.getConfigurationValue(endpointInfo,
> > > getDefaultHTTPServerPolicy(), HTTTPServerPolicy.class);
> >
> >
> > Do you want to reintroduce configuration APIs -  what about testability?
> > It looks like every bean client will need access to the bus ...
> >
> > Also not sure how this API is to be used, specifically
> > a) when should a bean client use the bean's getter only/when should it
> > use the bean's getter and/or the above API?
>
>
> Any time
>
> b) where does the default value come from? In order to distinguish
> > default value from in injected value (i.e. value coming from sources 1.
> > and 3. above) and value coming from service model it looks like every
> > bean should have a
> > T getTProperty();
> > and a
> > // no (public) setter for this one
> > T getDefaultTProperty(); ?
> > Where is the preference of injected value vs. default value vs. obtained
> > from service model determined? IMO it's important this happens in one
> > place only, and if it's in bus.getConfigurationValue(...) we need to
> > pass both the default and the injected value.
> >
> > >
> > > The method definition would be something like this:
> > >
> > > <T> T getConfigurationValue(AbstractPropertiesHolder, T defaultValue,
> > > Class<T> type);
> > >
> > > This method would then search through the Bus, Endpoint, etc for the
> > > HTTPServerPolicy value. If none is found the default value is
> > returned.
> >
> > What do you mean with searching through the Bus?
> >
> > >
> > > You may ask, isn't it simpler to just call getHTTPServerPolicy() on
> > the
> > > current code? In actuality no, because we need to write
> > > ConfigurationProviders which actually search the service model, so its
> >
> > > more
> > > code.
> >
> > One generic ConfigurationProvider can be used in most if not all cases,
> > and there would be no more code to that than there would be to the
> > implementation of the above getConfigurationValue - in fact they'd be
> > pretty much the same thing.
> >
> The point
>
>
> --
> Dan Diephouse
> Envoi Solutions
> http://envoisolutions.com | http://netzooid.com/blog
>



-- 
Dan Diephouse
Envoi Solutions
http://envoisolutions.com | http://netzooid.com/blog

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message