FLUME-722: RegexAllExtractor doesn't ignore empty groups (Mingjie Lai)


git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/trunk@1156059 13f79535-47bb-0310-9956-ffa450edef68
Create branch flume-728

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156859 13f79535-47bb-0310-9956-ffa450edef68
- Initial commit of reorganized core.

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156864 13f79535-47bb-0310-9956-ffa450edef68
- Added a channel driver to move events from source to sink. - Context now provides a Reporter for indicating progress. - Event{Sink,Source} interfaces now throw LifecycleException, InterruptedException, and MessageDeliveryException where appropriate. - Added LogicalNode - handles the guts of tying sources to sinks and managing ChannelDriver lifecycle. - Added MessageDeliveryException - thrown by sources and sinks to indicate the message is dead. - Reporter instances now start with the current time for the last report rather than zero. Creation of the Reporter indicates status of some kind. - Added ConcurrencyUtils with a method that attempts to guarantee a Runnable happens within a given timeout as well as reports progress via the Reporter even N millis. Super buggy right now. - Fixed a bug in EventBuilder where we forgot to set the event body. Oops. - Added the LifecycleAware interface. Classes can participate in generic lifecycle events by implementing this interface. Danger: this will change at least once more soon. - Added LifecycleController which includes methods for waiting on specific lifecycle states within a given timeout on any LifecycleAware instance. - Added LifecycleException. Thrown during LifecycleAware methods to indicate a failure during start / stop. - Added LifecycleState. Indicates what state a LifecycleAware instance is currently in. - Updated AbstractEvent{Sink,Source} to conform to the new Event{Sink,Source} interfaces. - Added a LoggerSink implementation that simply passes each event to the logging system (e.g. log4j). Useful for testing and debugging. - Added NullSink - /dev/null for Flume. Does absolutely nothing with a message. Useful for testing and debugging. - Added SequenceGeneratorSource. A source that generates monotonically incrementing integers. - Added unit tests for Context. - Added unit tests for LogicalNode. - Removed a test of Reporter that was no longer true (that timeStamp started at zero). - Added (flakey) unit tests for ConcurrencyUtils. - Added unit tests for EventBuilder. - Added unit tests for LifecycleController. - Added unit tests for LoggerSink. - Added unit tests for SequenceGeneratorSource.

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156865 13f79535-47bb-0310-9956-ffa450edef68
- Initial addition of a refactored flume node.

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156866 13f79535-47bb-0310-9956-ffa450edef68
- ChannelDriverThread now properly opens / closes sources / sinks.

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156867 13f79535-47bb-0310-9956-ffa450edef68
- Added CounterGroup for holding a collection of counters (for metrics).

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156868 13f79535-47bb-0310-9956-ffa450edef68
- ChannelDriverThread now properly detects (separate) source and sink failures, records the exception, and exits cleanly to the ChannelDriver (its parent). - Added a big fat warning about my ugly repurposing of LifecycleState for something that isn't LifecycleAware. I'm gross.

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156869 13f79535-47bb-0310-9956-ffa450edef68
- Added unit tests for ChannelDriver / ChannelDriverThread (although we black box test the latter).

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156870 13f79535-47bb-0310-9956-ffa450edef68
- Fixed log messages. SLF4J doesn't do the right thing with log(string, object, throwable). - Fixed a bug (in a really gross way) where we didn't close a sink if a source failed to open. - Improved ChannelDriver unit tests to ensure the number of events from a source match those successfully delivered to the sink. - Added tests for both flakey next and append methods in the source and sink respectively.

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156871 13f79535-47bb-0310-9956-ffa450edef68
- Made all CounterGroup methods synchronized.

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156872 13f79535-47bb-0310-9956-ffa450edef68
- Added LifecycleController methods that block indefinitely.

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156873 13f79535-47bb-0310-9956-ffa450edef68
- Allow LifecycleAware methods to throw InterruptedException.

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156874 13f79535-47bb-0310-9956-ffa450edef68
- We now block on driver thread start and complain LOUDLY if we can't.

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156875 13f79535-47bb-0310-9956-ffa450edef68
- Added ChannelDriver unit tests that mimic long blocking open() / close().

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156876 13f79535-47bb-0310-9956-ffa450edef68
- We now block indefinitely in the logical node start() method.

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156877 13f79535-47bb-0310-9956-ffa450edef68
- Removed LifecycleAware#transitionTo().

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156878 13f79535-47bb-0310-9956-ffa450edef68
- Added a note about error handling and ordering of operations.

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156879 13f79535-47bb-0310-9956-ffa450edef68
- Moved node manager implementations into their own package.

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156880 13f79535-47bb-0310-9956-ffa450edef68
- Updated TestFlumeNode to pull in AbstractLogicalNodeManager from its new package.

git-svn-id: https://svn.apache.org/repos/asf/incubator/flume/branches/flume-728@1156881 13f79535-47bb-0310-9956-ffa450edef68