Review Board 1.7.22


Making flume-ng components name-aware and user-pluggable

Review Request #3482 - Created Jan. 13, 2012 and submitted

Arvind Prabhakar
flume-728
FLUME-932
Reviewers
Flume
prasadm
flume-git
Modified all the factories and their default implementations to use specific Enums (newly added) to locate the plugin classes. See SourceType, SinkType, ChannelType for details. Modified the Source interface to directly allow a list of channels. This decommissions the fan-out channel that will be eventually replaced by the channel selector mechanism (FLUME-930).
All tests ran successfully.
Review request changed
Updated (Jan. 13, 2012, 8:40 p.m.)
Did some manual testing of failure scenario, found a few bugs with the change and fixed them. I was able to simulate a backlogged channel and drain it at a later stage without any problems.
Ship it!
Posted (Jan. 13, 2012, 10:52 p.m.)
Looks good overall.
Minor comment -
The factories allow you to call create() multiple times for a same source name/type and return the source if its already instantiated, on the other hand the unregister will remove it on first invocation. We should perhaps use refcounting or raise error on in create if object already exists.
  1. Thanks Prasad. I have filed https://issues.apache.org/jira/browse/FLUME-933 to track this change.