-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4047/
-----------------------------------------------------------
(Updated 2012-03-12 23:33:32.264619)
Review request for Flume.
Changes
-------
Patch updated to allow multiple RPC calls from one batch call if getBatchSize()
is not respected. Also added some API docs indicating the behavior and
implications of this. I also found a maven configuration param to make the Java
generated from Avro RPC use String instead of CharSequence as the String type,
which will result in less object copying in our code. I included that, since it
primarily affects the RPC client implementation. Finally, one notable API
change is that I have declared the NettyAvroRpcClient.Builder class to be
protected instead of public. This is to enforce usage of the factory methods in
RpcClientFactory, except for in unit tests.
Summary
-------
Seeking early feedback on some additional APIs to make integrating with Flume
1.x easier.
Added the following APIs:
- AvroClient: Friendly Java interface around the Avro API
- AvroClientBuilder: Builder class to allow easy extension of AvroClient
capabilities in the future (i.e. SSL)
- DefaultAvroClient: Implementation of the AvroClient interface
Created this stuff in a flume-ng-sdk Maven submodule and moved the Event
interface to that submodule. flume-ng-core depends on flume-ng-sdk.
I also modified AvroSink to use the AvroClient API instead of the bare
AvroSourceProtocol API directly.
This addresses bug FLUME-989.
https://issues.apache.org/jira/browse/FLUME-989
Diffs (updated)
-----
flume-ng-channels/flume-file-channel/pom.xml ee2d20f
flume-ng-channels/flume-jdbc-channel/pom.xml 51a7694
flume-ng-clients/flume-ng-log4jappender/pom.xml 9dd31bd
flume-ng-clients/flume-ng-log4jappender/src/main/java/org/apache/flume/clients/log4jappender/Log4jAppender.java
97f2b9e
flume-ng-core/pom.xml fe6ce0b
flume-ng-core/src/main/avro/flume.avdl 40da3ef
flume-ng-core/src/main/java/org/apache/flume/Event.java 5278fc0
flume-ng-core/src/main/java/org/apache/flume/EventDeliveryException.java
1413223
flume-ng-core/src/main/java/org/apache/flume/FlumeException.java eab5b3d
flume-ng-core/src/main/java/org/apache/flume/client/avro/AvroCLIClient.java
195ba79
flume-ng-core/src/main/java/org/apache/flume/event/EventBuilder.java 5d8c3b3
flume-ng-core/src/main/java/org/apache/flume/event/SimpleEvent.java e0c3b45
flume-ng-core/src/main/java/org/apache/flume/sink/AvroSink.java 7386d06
flume-ng-core/src/main/java/org/apache/flume/source/AvroSource.java a3f6640
flume-ng-core/src/test/java/org/apache/flume/sink/TestAvroSink.java 467785f
flume-ng-core/src/test/java/org/apache/flume/source/TestAvroSource.java
c5c3f2f
flume-ng-core/src/test/java/org/apache/flume/util/TestEventBuilder.java
7930607
flume-ng-legacy-sources/flume-avro-source/pom.xml 2d53403
flume-ng-legacy-sources/flume-avro-source/src/main/java/org/apache/flume/source/avroLegacy/AvroLegacySource.java
65d9142
flume-ng-legacy-sources/flume-avro-source/src/test/java/org/apache/flume/source/avroLegacy/TestLegacyAvroSource.java
6e3eb53
flume-ng-legacy-sources/flume-thrift-source/pom.xml 8256f0f
flume-ng-node/pom.xml b9b062e
flume-ng-sdk/pom.xml PRE-CREATION
flume-ng-sdk/src/main/avro/flume.avdl PRE-CREATION
flume-ng-sdk/src/main/java/org/apache/flume/Event.java PRE-CREATION
flume-ng-sdk/src/main/java/org/apache/flume/EventDeliveryException.java
PRE-CREATION
flume-ng-sdk/src/main/java/org/apache/flume/FlumeException.java PRE-CREATION
flume-ng-sdk/src/main/java/org/apache/flume/api/NettyAvroRpcClient.java
PRE-CREATION
flume-ng-sdk/src/main/java/org/apache/flume/api/RpcClient.java PRE-CREATION
flume-ng-sdk/src/main/java/org/apache/flume/api/RpcClientFactory.java
PRE-CREATION
flume-ng-sdk/src/main/java/org/apache/flume/event/EventBuilder.java
PRE-CREATION
flume-ng-sdk/src/main/java/org/apache/flume/event/SimpleEvent.java
PRE-CREATION
flume-ng-sdk/src/test/java/org/apache/flume/api/RpcTestUtils.java
PRE-CREATION
flume-ng-sdk/src/test/java/org/apache/flume/api/TestNettyAvroRpcClient.java
PRE-CREATION
flume-ng-sdk/src/test/java/org/apache/flume/api/TestRpcClientFactory.java
PRE-CREATION
flume-ng-sdk/src/test/java/org/apache/flume/event/TestEventBuilder.java
PRE-CREATION
flume-ng-sinks/flume-hdfs-sink/pom.xml f27851e
flume-ng-sinks/flume-irc-sink/pom.xml c885f35
pom.xml d785762
Diff: https://reviews.apache.org/r/4047/diff
Testing
-------
Thanks,
Mike