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

(Updated Nov. 30, 2012, 8:18 p.m.)


Review request for Flume.


Changes
-------

I missed the comments of aligning the factories for sources, sinks, and 
channels. Updated.


Description
-------

Patch is not for commit, yet. It changes the configuration system into 
something extendable and maintainable. Additionally it changes the terminology 
from node to agent.  Once the patch is ready for review we should change the 
node package to agent to conform to the agent terminology.

Big ticket items:

1) Abstract property file provider is changed to Abstract property provider. 
Two concrete implementations are provided, PropertyFileConfigurationProvider 
and PollingPropertyFileConfigurationProvider. There is an additional concrete 
implementation MemoryConfigurationProvider is in 
TestAbstractConfigurationProvider.

2) Caching instances is removed from all factories. Instance caching is 
implemented in AbstractConfigurationProvider for channels *if* they have the 
Reusable annotation. MemoryChannel has this annotation.

3) A layer of supervisors is removed. The application class now starts and 
stops the components when handleConfigurationEvent is called. This is called on 
startup if PropertyFileConfigurationProvider is used or whenever the 
configuration file changes if PollingPropertyFileConfigurationProvider is used. 
PollingPropertyFileConfigurationProvider uses EventBus (guava) to trigger the 
re-configuration.


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


Diffs (updated)
-----

  
flume-ng-channels/flume-file-channel/src/main/java/org/apache/flume/channel/file/FileChannel.java
 d12ad9e 
  
flume-ng-channels/flume-jdbc-channel/src/main/java/org/apache/flume/channel/jdbc/JdbcChannel.java
 5da979e 
  
flume-ng-channels/flume-recoverable-memory-channel/src/main/java/org/apache/flume/channel/recoverable/memory/RecoverableMemoryChannel.java
 89296b7 
  
flume-ng-configuration/src/main/java/org/apache/flume/conf/FlumeConfiguration.java
 9b209e8 
  flume-ng-core/src/main/java/org/apache/flume/ChannelFactory.java e269909 
  flume-ng-core/src/main/java/org/apache/flume/Constants.java 4c6992d 
  flume-ng-core/src/main/java/org/apache/flume/SinkFactory.java d8fd0da 
  flume-ng-core/src/main/java/org/apache/flume/SourceFactory.java 91cc866 
  flume-ng-core/src/main/java/org/apache/flume/annotations/Disposable.java 
PRE-CREATION 
  flume-ng-core/src/main/java/org/apache/flume/annotations/Recyclable.java 
PRE-CREATION 
  
flume-ng-core/src/main/java/org/apache/flume/channel/DefaultChannelFactory.java 
ee32696 
  flume-ng-core/src/main/java/org/apache/flume/channel/MemoryChannel.java 
dfc289e 
  flume-ng-core/src/main/java/org/apache/flume/sink/DefaultSinkFactory.java 
e71d44e 
  flume-ng-core/src/main/java/org/apache/flume/source/DefaultSourceFactory.java 
18533ae 
  flume-ng-core/src/test/java/org/apache/flume/sink/TestDefaultSinkFactory.java 
ab3f447 
  
flume-ng-core/src/test/java/org/apache/flume/source/TestDefaultSourceFactory.java
 ff5b4d6 
  flume-ng-node/pom.xml 6a0fe15 
  
flume-ng-node/src/main/java/org/apache/flume/conf/file/AbstractFileConfigurationProvider.java
 a2c882b 
  
flume-ng-node/src/main/java/org/apache/flume/conf/file/SimpleNodeConfiguration.java
 99b8bcc 
  
flume-ng-node/src/main/java/org/apache/flume/conf/properties/PropertiesFileConfigurationProvider.java
 8dbbe57 
  
flume-ng-node/src/main/java/org/apache/flume/node/AbstractConfigurationProvider.java
 PRE-CREATION 
  flume-ng-node/src/main/java/org/apache/flume/node/Application.java 405afa3 
  flume-ng-node/src/main/java/org/apache/flume/node/ConfigurationProvider.java 
ae732aa 
  flume-ng-node/src/main/java/org/apache/flume/node/FlumeNode.java cee022d 
  
flume-ng-node/src/main/java/org/apache/flume/node/MaterializedConfiguration.java
 PRE-CREATION 
  flume-ng-node/src/main/java/org/apache/flume/node/NodeConfiguration.java 
a24c939 
  flume-ng-node/src/main/java/org/apache/flume/node/NodeManager.java 7457d87 
  
flume-ng-node/src/main/java/org/apache/flume/node/PollingPropertiesFileConfigurationProvider.java
 PRE-CREATION 
  
flume-ng-node/src/main/java/org/apache/flume/node/PropertiesFileConfigurationProvider.java
 PRE-CREATION 
  
flume-ng-node/src/main/java/org/apache/flume/node/SimpleMaterializedConfiguration.java
 PRE-CREATION 
  
flume-ng-node/src/main/java/org/apache/flume/node/nodemanager/AbstractLogicalNodeManager.java
 1fda07b 
  
flume-ng-node/src/main/java/org/apache/flume/node/nodemanager/DefaultLogicalNodeManager.java
 60bfd5e 
  
flume-ng-node/src/main/java/org/apache/flume/node/nodemanager/NodeConfigurationAware.java
 c20bf9b 
  
flume-ng-node/src/test/java/org/apache/flume/conf/properties/TestPropertiesFileConfigurationProvider.java
 d43aed6 
  
flume-ng-node/src/test/java/org/apache/flume/node/TestAbstractConfigurationProvider.java
 PRE-CREATION 
  
flume-ng-node/src/test/java/org/apache/flume/node/TestAbstractLogicalNodeManager.java
 1cbc269 
  flume-ng-node/src/test/java/org/apache/flume/node/TestApplication.java 
PRE-CREATION 
  
flume-ng-node/src/test/java/org/apache/flume/node/TestDefaultLogicalNodeManager.java
 530b299 
  flume-ng-node/src/test/java/org/apache/flume/node/TestFlumeNode.java f2dad6f 
  
flume-ng-node/src/test/java/org/apache/flume/node/TestFlumeNodeApplication.java 
f759af1 
  
flume-ng-node/src/test/java/org/apache/flume/node/TestPollingPropertiesFileConfigurationProvider.java
 PRE-CREATION 
  
flume-ng-node/src/test/java/org/apache/flume/node/TestPropertiesFileConfigurationProvider.java
 PRE-CREATION 
  
flume-ng-node/src/test/java/org/apache/flume/source/FlakeySequenceGeneratorSource.java
 41e2f35 
  flume-ng-node/src/test/resources/flume-conf.properties 2b74d4c 

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


Testing
-------

Unit tests added for the new functionality.


Thanks,

Brock Noland

Reply via email to