Flumees: I was looking at some of the various LifecycleAware components in NG and judging how best to handle certain error cases (now that at least the basics are moving correctly) and realize I wasn't nearly consistent in the semantics as I would have liked to be during initial implementation. I went to look at a few other systems that use a similar construct (Jetty, some Google projects) and realized Google's Guava actually has a construct similar / the same as LifecycleAware in the com.google.common.base.Service interface and constituents. They actually handle state transitions in the same way I was going to during the review. This, of course, leads me to the next question of should we just adopt Guava's Service interface and replace LifecycleAware? Porting LifecycleSupervisor to use Service instances and updating the LifecycleAware impls is just a bunch of monkey labor I am willing to do. If this makes sense, doing this now is probably the only option as this is a dependent interface of sources, sinks, and many other user extensible bits.
I think this is in the continuing theme of keeping Flume small and deferring to existing libraries where possible (this wouldn't add a dependency as we already use Guava for other things). Unless there's a major objection I'm going to create a JIRA and belt it out. -- Eric Sammer twitter: esammer data: www.cloudera.com
