Up to now, Karaf uses Felix FileInstall to poll files in the etc folder and load the properties containing in the files (the files respect the pid.cfg format) in the ConfigAdmin service.
On the other hand, Karaf manipulate ConfigAdmin via the config:* commands and is able to flush back the properties in the files in this commands.
I propose two improvements around ConfigAdmin:
- we could create a Karaf Config Service on top of ConfigAdmin to be able to choose and change the storage backend of configuration. For instance, replace/concats the etc folder with a JDBC or LDAP backend. We could implement something similar to JAAS with a kind of ConfigModule.
- the config:* commands shouldn't be responsible to writing the files. The config:* commands could use the Karaf Config Service. The Karaf Config Service will be responsible to updating the ConfigAdmin service, and flush the changes to the storage backend.