-----------------------------------------------------------
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

Reply via email to