Review Board 1.7.22


FLUME-1630: Flume configuration code could be improved

Review Request #7518 - Created Oct. 10, 2012 and submitted

Brock Noland
trunk
FLUME-1630
Reviewers
Flume
flume-git
Patch is not for commit, yet. It changes the configuration system into something extendable and maintainable. Additionally it changes the terminology from node to agent.  Once the patch is ready for review we should change the node package to agent to conform to the agent terminology.

Big ticket items:

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 Reusable annotation. MemoryChannel has this annotation.

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.
Unit tests added for the new functionality.
Total:
11
Open:
1
Resolved:
9
Dropped:
1
Status:
From:
Review request changed
Updated (Nov. 30, 2012, 9:23 p.m.)
  • changed from pending to submitted