Making flume-ng components name-aware and user-pluggable
Review Request #3482 - Created Jan. 13, 2012 and submitted
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.
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.