The Felix implementation has such a store abstraction, but unfortunately, it's not bi-directional, meaning it's really possible to let the store push some changes to config admin. Also, I haven't used that since I did not really want to have the karaf etc/ folder poluted by lots of configurations and I wanted the user to be in control of those.
On Mon, Oct 11, 2010 at 14:14, Bengt Rodehav <[email protected]> wrote: > Yes, you're of course right that there is a small period where the > configuration is not up-to-date. Probably the best we can do at this point > though. > > Ultimately I feel that some kind of SPI interface would be needed for > configuration admin. I mean what file install basically does is providing a > persistent store for certain configurations - *without the configuration > admin being aware of this*. Should there exist a formalised way to interact > with configuration admin (e g provide a means to register who will provide > the persistence of certain configurations) then this would work a lot > better. Do you know if anything is in the works in the OSGi specs? > > /Bengt > > > 2010/10/11 Guillaume Nodet <[email protected]> > > > On Mon, Oct 11, 2010 at 11:47, Bengt Rodehav <[email protected]> wrote: > > > > > The use of system properties as well? In that case, yes it would be a > > nice > > > feature. > > > > > > What we have in the feature shell is that if the end result > (interpolated > > value) has not changed, the original won't be changed either. > > However, if you modify a value which was interpolated, the interpolation > > will be lost. > > So the idea is that only diffs are written back. > > > > > > > I've been thinking about the risk with "unlucky timing" - is there > really > > > such a risk? I think configuration manager publishes an OSGi service > and > > > file install I imagine will require that service. If configuration > > manager > > > restores its state from the cache prior to publishing its service then > > the > > > startup sequence should be guaranteed - right? > > > > > > > Yes, AFAIK, the ConfigAdmin publishes its service when ready, but if its > > internal cache and the fileinstall config files aren't synchronized, > you'll > > still have a period during which the configuration will have the values > > they > > had at the previous shutdown, but will be overwritten by fileinstall > later > > on. > > > > > > > > > > /Bengt > > > > > > 2010/10/11 Guillaume Nodet <[email protected]> > > > > > > > The comments and formatting can all be preserved. I've done that as > > part > > > > of > > > > FELIX-1718, and I don't see why it could not be done from fileinstall > > > > itself. > > > > > > > > On Mon, Oct 11, 2010 at 10:02, Bengt Rodehav <[email protected]> > > wrote: > > > > > > > > > Felix and Guillaume, > > > > > > > > > > Yes I think that this must be the responsibility of file install > > > > (possible > > > > > configurable). However, this approach is generally a bit tricky > > since > > > > the > > > > > original configuration files would be overwritten programmatically. > I > > > > have > > > > > bad experience from this kind of approach. > > > > > > > > > > The configuration files need to be readable by humans and > will/should > > > > > contain comments and is probably formatted the way a user wants it. > > > Thus > > > > > this approach must preserver comments and formatting. > > > > > > > > > > Also, the configuration files might use system properties, e g > > > > ${mybasedir} > > > > > that must be honored. I think the "write back" approach can only > work > > > in > > > > > very simple scenarios (not mine I think). > > > > > > > > > > Currently, we regard changes done in the web console as "not > > > persistent" > > > > > and > > > > > tell our users that the values in the configuration files are the > > > > > persistent > > > > > values. Maybe not ideal but it works if we can guarantee this. > > > > > > > > > > /Bengt > > > > > > > > > > 2010/10/11 Felix Meschberger <[email protected]> > > > > > > > > > > > Hi, > > > > > > > > > > > > On 11.10.2010 08:51, Guillaume Nodet wrote: > > > > > > > On Fri, Oct 8, 2010 at 14:33, Bengt Rodehav <[email protected] > > > > > > wrote: > > > > > > > > > > > > > >> I'm using Karaf 1.6.0 (Felix 2.0.5 I think) and File install > > > 3.0.2. > > > > > > >> > > > > > > >> I use iPOJO (1.6.4) to create service factories that are > > > > instantiated > > > > > by > > > > > > >> file install by dropping a configuration file in a dedicated > > > > > directory. > > > > > > >> When > > > > > > >> I update the configuration file, file install immediately > > > > propagates, > > > > > > the > > > > > > >> changes to the instantiated service. > > > > > > >> > > > > > > > > > > > > > > The files in etc/*.cfg are monitored by fileinstall and are > used > > to > > > > > feed > > > > > > > ConfigAdmin > > > > > > > > > > > > > > > > > > > > >> > > > > > > >> However, I can also change my configuration properties using > > > > > > configuration > > > > > > >> manager directly (e g via the Felix web console). When I > change > > > > > > >> configuration properties this way, the properties are stored > in > > > > > > >> configuration manager's bundle cache but they are not > propagated > > > > back > > > > > to > > > > > > >> file install and my configuration file. > > > > > > >> > > > > > > > > > > > > > > Yeah, it's a bit of a problem. Maybe a good thing would be to > > > have > > > > > the > > > > > > > webconsole plugin update the properties file directly when > inside > > > > > karaf, > > > > > > as > > > > > > > the command console do. > > > > > > > > > > > > As I said already, this would not be a good thing since the Web > > > Console > > > > > > only talks to the Configuration Admin service and does not know > > (and > > > > > > must not know) of other configuration sources. > > > > > > > > > > > > Instead File Install should probably implement a > > > ConfigurationListener > > > > > > which writes back modified configuration: File Install knows it > > sets > > > > > > configuration and it knows where it reads the config from and it > > > knows > > > > > > the file format. So it is File Install only which can safely > write > > > back > > > > > > (if required). See FELIX-2571. > > > > > > > > > > > > Regards > > > > > > Felix > > > > > > > > > > > > > > > > > > > > > > > > > > >> > > > > > > >> This means that my configuration file (used by file install) > can > > > > > differ > > > > > > >> from > > > > > > >> the configuration actually used and what is stored in the > bundle > > > > > cache. > > > > > > An > > > > > > >> important question regarding this is which configuration takes > > > > > > precedence > > > > > > >> on > > > > > > >> startup? > > > > > > >> > > > > > > >> My tests indicate that what I specify in my configuration file > > > > (which > > > > > is > > > > > > >> picked up by file install) is the configuration that will be > > used > > > > > > directly > > > > > > >> after startup. I need to know whether this behavior is > > guaranteed > > > > > > >> (deterministic) or if this is just the way it happens to work > in > > > my > > > > > > case. > > > > > > >> > > > > > > > > > > > > > > Yes, the files in etc/*.cfg should take precedence because > > > > fileinstall > > > > > > will > > > > > > > update all the configurations with what it founds in there, so > > any > > > > > change > > > > > > > done by another mean in ConfigAdmin will certainly be > overwritten > > > by > > > > > > > fileinstall. > > > > > > > > > > > > > > > > > > > > >> > > > > > > >> I think I can live with either scenario - file install taking > > > > > precedence > > > > > > or > > > > > > >> the bundle cache taking precedence - as long as the behavior > is > > > > > > >> deterministic. > > > > > > >> > > > > > > >> /Bengt > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > To unsubscribe, e-mail: [email protected] > > > > > > For additional commands, e-mail: [email protected] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > Cheers, > > > > Guillaume Nodet > > > > ------------------------ > > > > Blog: http://gnodet.blogspot.com/ > > > > ------------------------ > > > > Open Source SOA > > > > http://fusesource.com > > > > > > > > > > > > > > > -- > > Cheers, > > Guillaume Nodet > > ------------------------ > > Blog: http://gnodet.blogspot.com/ > > ------------------------ > > Open Source SOA > > http://fusesource.com > > > -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/ ------------------------ Open Source SOA http://fusesource.com

