You mean that only properties that have changed should be written back? Not
the part where variables are preserved even in changed properties - I
assume.

At a first glance I can't figure out where the variable substitution takes
place either. But for this to work, it must be done before comparing with
the existing value - right?

/Bengt

2012/4/25 Guillaume Nodet <[email protected]>

> That's exactly what is supposed to happen because we use
> the org.apache.felix.utils.properties.Properties which is known to work for
> that.
> One thing that could happen though is that the properties that are
> substituted are not know to fileinstall, so that it can't really compare
> the real values.
> The reason is that file install doesn't use the bundle system context when
> computing the substitution so it only takes into account the substitution
> within the file, not with system properties or bundle context properties.
> I'm actually not sure who does such a substitution on the client side as I
> doubt ConfigAdmin does not automatically.
>
> On Wed, Apr 25, 2012 at 11:11, Bengt Rodehav <[email protected]> wrote:
>
> > One improvement I've been thinking about is to only write back properties
> > that have actually changed. This would help in my case since I have my
> own
> > web gui that disables/enables my services. I do so by setting an iPOJO
> > @Controller property to true/false via config admin. I therefore don't
> use
> > any variables for this particular property but my other configuration
> > properties (that are not changed) are "ruined" because of the variable
> > expansion.
> >
> > I'm not sure if config admin provides enough information to determine
> what
> > properties have been changed. Either way file install could probably
> > evaluate it's current value of the property (and do variable expansion in
> > the process) and compare this value with the value provided by config
> > admin. If they are the same than no writing back of this property is
> needed
> > and the variable would then be preserved in the configuration file.
> >
> > I guess it would also be possible to preserve variables in properties
> that
> > have been changed as well. File install could check if the original value
> > contained variables. It could then try use those variables for the new
> > value as well. It would then have to search in the new value if the value
> > of the property is still used and then substitute that value for the
> > property. This is not foolproof and could be ambiguous but I think it
> could
> > be implemented to work in most cases. This feature should be configurable
> > since it is not 100% safe.
> >
> > The feature not to write back properties that have not changed could also
> > be configurable but doesn't really have to be since I believe it can be
> > made foolprooof.
> >
> > /Bengt
> >
> > 2012/4/25 Bengt Rodehav <[email protected]>
> >
> > > I use file install (currently 3.1.10 but have also tried with 3.2.2) in
> > > Karaf 2.2.5 to feed configurations (both normal and factory
> > configurations)
> > > into the config admin service.
> > >
> > > In my configuration files I use different variables that I define in
> > > Karaf's custom.properties file. I'm not sure whether Karaf exposes them
> > as
> > > system properties but they are nevertheless picked up by fileinstall.
> > >
> > > However, when fileinstall is configured to write back configuration
> > > changes to the configuration file, these variables are not preserved
> but
> > > are expanded. This makes it very hard to read and further maintain the
> > > configuration files. I can easily see why this is happening since the
> > work
> > > is divided between file install and the configuration admin and the
> > latter
> > > does not know about the variables at all.
> > >
> > > I don't have a suggestion how to solve this but this is a major problem
> > > (for me at least) to use fileinstall and config admin together. I guess
> > if
> > > fileinstall was just an implementation of the config admin instead of a
> > > general listener to configuration chagnes there would be other
> > > possibilities.
> > >
> > > Does anyone have any suggestions how to combine write back of
> > > configuration changes with preservation of variables? Could fileinstall
> > > provide such a feature?
> > >
> > > /Bengt
> > >
> > >
> > >
> >
>
>
>
> --
> ------------------------
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> FuseSource, Integration everywhere
> http://fusesource.com
>

Reply via email to