I wonder if we should extend this to be Flume NG's version of decorators.
Maybe each source and sink can be configured with an optional list of pre-process and post-process EventProcessors as well as single EventProcessor that actually handles the message
I agree, that EventProcessor-s are not specific to AvroSource/Sink but pretty generic. (May be , would belong in the o.a.flume.event , package ? ) .
What do you think about having ChannelEventProcessor be injected into AvroSource / Sink (which would be concrete, but generic) rather than requiring inheritance?
With AvroSource, currently it does management of underlying resources + reference implementation of (AvroSource)Protocol as well.
Probably, either of those needs to be separated ?