This adds the ability to provide a consumer that is called with a new copy of the configuration whenever the file is changed. This is relying on the JDK's WatchService API, which uses polling (with a default polling interval of 10s) to listen to file system changes.
This functionality is decoupled between config and a new method in the io module that allows listening to file changes.
The tests added for this functionality are slow, as polling intervals cannot always be shortened. To make sure developers don't experience slow builds on their local machines, the tests are tagged with the slow tag and ignored when the "dev" task runs.
This adds the ability to provide a consumer that is called with a new copy of the configuration whenever the file is changed. This is relying on the JDK's WatchService API, which uses polling (with a default polling interval of 10s) to listen to file system changes. This functionality is decoupled between config and a new method in the io module that allows listening to file changes. The tests added for this functionality are slow, as polling intervals cannot always be shortened. To make sure developers don't experience slow builds on their local machines, the tests are tagged with the slow tag and ignored when the "dev" task runs.