Note that this functionality is for Flume developers as opposed to user developers. The change doesn't really add new functionality (with one exception). The following is copied from the review:
1) Abstract property file provider is changed to Abstract property provider. Two concrete implementations are provided, PropertyFileConfigurationProvider and PollingPropertyFileConfigurationProvider. There is an additional concrete implementation MemoryConfigurationProvider is in TestAbstractConfigurationProvider.
2) Caching instances is removed from all factories. Instance caching is implemented in AbstractConfigurationProvider for channels if they have the Recyclable annotation. MemoryChannel has this annotation while the other channels have Disposable.
3) A layer of supervisors is removed. The application class now starts and stops the components when handleConfigurationEvent is called. This is called on startup if PropertyFileConfigurationProvider is used or whenever the configuration file changes if PollingPropertyFileConfigurationProvider is used. PollingPropertyFileConfigurationProvider uses EventBus (guava) to trigger the re-configuration.
and I would add:
4) The Application class has a new command line option --no-reload-conf which means the agent will not try and re-load the configuration file when changed.
5) This work was done to support
FLUME-1502 which is meant to be the mechanism with which user developers would utilize these changes. That JIRA has a design document.