File System Changes
In general, external file modifications will be detected immediately in the Config
object when a watcher thread is
enabled (explained later).
Otherwise, they are detected when a commit is performed.
The Config
object maintains an in-memory record of all changes that have been applied to it through getters and
setters.
When the underlying file changes, the new contents are loaded and the in-memory changes are then applied to the new
configuration.
This provides the benefits of real-time updates of configurations while not losing any changes made in the JVM.
If the commit()
method is called on the Config
objects after the file system contents have been modified, we will
then reload the configuration from the file system, apply the changes, and then try to save to the file system again (up
to 10 times).
If the same entry is both internally and externally modified, the external modification will be overwritten (although both change events will be seen by listeners).