-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4115/
-----------------------------------------------------------

(Updated 2012-03-01 21:35:41.679397)


Review request for Flume.


Changes
-------

Note that I do know of a couple of bugs in the existing diff(like that if the 
name of a config key starts with an Upper case letter, an exception is thrown) 
- I will fix and upload the review here soon.


Summary (updated)
-------

Currently the configuration of each component sits deep inside the component 
themselves. There is no way to verify if a configuration is valid before run 
time. In most systems like Flume, it is likely that these confs will be 
deployed from one single host, on to the machines where flume agents are 
running. Only when each agent starts, invalid confs are identified because the 
Agents would terminate by throwing exceptions. This is a first attempt to make 
a component-aware configuration system which is independent of the Flume, and 
does not require the Flume jar to be installed. Each component needs a 
configuration manager, which configures the components. 

I have not completed the validation part yet, but have completed the 
configuration managers for all the components that come in the flume jar. I 
will add support for the other components, such as HDFS sink, JDBC channel etc 
soon. I will also add the validation support to the classes, but would like a 
review of the model being proposed here.

Note that I do know of a couple of bugs in the existing diff(like that if the 
name of a config key starts with an Upper case letter, an exception is thrown) 
- I will fix and upload the review here soon.


This addresses bug FLUME-992.
    https://issues.apache.org/jira/browse/FLUME-992


Diffs
-----

  
flume-ng-channels/flume-jdbc-channel/src/main/java/org/apache/flume/channel/jdbc/JdbcChannel.java
 bca0c50 
  
flume-ng-channels/flume-jdbc-channel/src/main/java/org/apache/flume/channel/jdbc/JdbcChannelProvider.java
 e445d61 
  
flume-ng-channels/flume-jdbc-channel/src/main/java/org/apache/flume/channel/jdbc/JdbcChannelProviderFactory.java
 6fbd6ef 
  
flume-ng-channels/flume-jdbc-channel/src/main/java/org/apache/flume/channel/jdbc/impl/JdbcChannelProviderImpl.java
 1cf1c0c 
  
flume-ng-channels/flume-jdbc-channel/src/test/java/org/apache/flume/channel/jdbc/TestJdbcChannelProvider.java
 7710d46 
  
flume-ng-clients/flume-ng-log4jappender/src/test/java/org/apache/flume/clients/log4jappender/TestLog4jAppender.java
 68d95fb 
  flume-ng-configuration/pom.xml PRE-CREATION 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/AbstractComponentConfiguration.java
 PRE-CREATION 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/ConfigurationException.java
 PRE-CREATION 
  flume-ng-configuration/src/main/java/org/apache/flume/conf/Context.java 
PRE-CREATION 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/FlumeConfiguration.java
 PRE-CREATION 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/FlumeConfigurationError.java
 PRE-CREATION 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/FlumeConfigurationErrorType.java
 PRE-CREATION 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/channel/MemoryChannelConfiguration.java
 PRE-CREATION 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/channel/MultiplexingChannelSelectorConfiguration.java
 PRE-CREATION 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/channel/PseudoTxnMemoryChannelConfiguration.java
 PRE-CREATION 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/sink/AvroSinkConfiguration.java
 PRE-CREATION 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/sink/FailoverSinkProcessorConfiguration.java
 PRE-CREATION 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/sink/RollingFileSinkConfiguration.java
 PRE-CREATION 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/sink/SinkGroupConfiguration.java
 PRE-CREATION 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/source/AvroSourceConfiguration.java
 PRE-CREATION 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/source/ExecSourceConfiguration.java
 PRE-CREATION 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/source/NetcatSourceConfiguration.java
 PRE-CREATION 
  flume-ng-configuration/src/test/resources/flume-ng-error-test PRE-CREATION 
  flume-ng-configuration/src/test/resources/flume-ng-test.conf PRE-CREATION 
  flume-ng-core/pom.xml d753fa1 
  flume-ng-core/src/main/java/org/apache/flume/Context.java f1c8f85 
  flume-ng-core/src/main/java/org/apache/flume/channel/AbstractChannel.java 
352bf08 
  
flume-ng-core/src/main/java/org/apache/flume/channel/ChannelSelectorFactory.java
 a7d5f94 
  flume-ng-core/src/main/java/org/apache/flume/channel/MemoryChannel.java 
e79490e 
  
flume-ng-core/src/main/java/org/apache/flume/channel/MultiplexingChannelSelector.java
 c63d0a1 
  
flume-ng-core/src/main/java/org/apache/flume/channel/PseudoTxnMemoryChannel.java
 1df580e 
  
flume-ng-core/src/main/java/org/apache/flume/channel/ReplicatingChannelSelector.java
 8f22746 
  flume-ng-core/src/main/java/org/apache/flume/conf/Configurable.java 0fa4839 
  flume-ng-core/src/main/java/org/apache/flume/conf/Configurables.java 84492e5 
  flume-ng-core/src/main/java/org/apache/flume/sink/AvroSink.java 5440631 
  flume-ng-core/src/main/java/org/apache/flume/sink/DefaultSinkProcessor.java 
257bab3 
  flume-ng-core/src/main/java/org/apache/flume/sink/FailoverSinkProcessor.java 
9f5b856 
  flume-ng-core/src/main/java/org/apache/flume/sink/RollingFileSink.java 
45c031d 
  flume-ng-core/src/main/java/org/apache/flume/sink/SinkGroup.java 1adc5ff 
  flume-ng-core/src/main/java/org/apache/flume/sink/SinkProcessorFactory.java 
859f4fd 
  flume-ng-core/src/main/java/org/apache/flume/source/AvroSource.java 7b079f9 
  flume-ng-core/src/main/java/org/apache/flume/source/ExecSource.java a96016c 
  flume-ng-core/src/main/java/org/apache/flume/source/NetcatSource.java d205bbc 
  flume-ng-core/src/test/java/org/apache/flume/TestContext.java a5e6aa8 
  flume-ng-core/src/test/java/org/apache/flume/channel/TestMemoryChannel.java 
3392dff 
  
flume-ng-core/src/test/java/org/apache/flume/channel/TestMemoryChannelConcurrency.java
 8dad0b2 
  
flume-ng-core/src/test/java/org/apache/flume/channel/TestMemoryChannelTransaction.java
 bc81f26 
  flume-ng-core/src/test/java/org/apache/flume/sink/TestAvroSink.java 467785f 
  
flume-ng-core/src/test/java/org/apache/flume/sink/TestFailoverSinkProcessor.java
 93ad3bf 
  flume-ng-core/src/test/java/org/apache/flume/sink/TestLoggerSink.java 92ff6fe 
  flume-ng-core/src/test/java/org/apache/flume/sink/TestRollingFileSink.java 
7e26e2a 
  flume-ng-core/src/test/java/org/apache/flume/source/TestAvroSource.java 
c5c3f2f 
  flume-ng-core/src/test/java/org/apache/flume/source/TestExecSource.java 
6035270 
  
flume-ng-core/src/test/java/org/apache/flume/source/TestPollableSourceRunner.java
 c27f82c 
  
flume-ng-core/src/test/java/org/apache/flume/source/TestSequenceGeneratorSource.java
 579b257 
  
flume-ng-legacy-sources/flume-avro-source/src/main/java/org/apache/flume/source/avroLegacy/AvroLegacySource.java
 b1e67f7 
  
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/src/main/java/org/apache/flume/source/thriftLegacy/ThriftLegacySource.java
 5fe270a 
  
flume-ng-legacy-sources/flume-thrift-source/src/test/java/org/apache/flume/source/thriftLegacy/TestThriftLegacySource.java
 ddd9478 
  flume-ng-node/pom.xml b9b062e 
  
flume-ng-node/src/main/java/org/apache/flume/conf/properties/FlumeConfiguration.java
 d66f6d1 
  
flume-ng-node/src/main/java/org/apache/flume/conf/properties/PropertiesFileConfigurationProvider.java
 97f72e1 
  
flume-ng-node/src/test/java/org/apache/flume/node/TestAbstractLogicalNodeManager.java
 521b586 
  flume-ng-node/src/test/java/org/apache/flume/source/TestNetcatSource.java 
fb2a960 
  
flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSEventSink.java
 3da90a5 
  
flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/TestHDFSEventSink.java
 7d8ee8a 
  
flume-ng-sinks/flume-irc-sink/src/main/java/org/apache/flume/sink/irc/IRCSink.java
 0a5498f 
  pom.xml d785762 

Diff: https://reviews.apache.org/r/4115/diff


Testing
-------

All existing unit tests for the components whose configuration has now been 
moved to these stubs pass.


Thanks,

Hari

Reply via email to