This is an automated email from the ASF dual-hosted git repository. rgoers pushed a commit to branch flume-spring-boot in repository https://gitbox.apache.org/repos/asf/flume.git
commit 98db2447b0e34b5ac3bb68899b04e2c89671192e Author: rgoers <[email protected]> AuthorDate: Thu Sep 22 12:00:48 2022 -0700 Spring Boot support --- build-support/pom.xml | 2 +- flume-ng-auth/pom.xml | 2 +- flume-ng-channels/flume-file-channel/pom.xml | 2 +- flume-ng-channels/flume-jdbc-channel/pom.xml | 2 +- flume-ng-channels/flume-kafka-channel/pom.xml | 2 +- .../flume-spillable-memory-channel/pom.xml | 2 +- flume-ng-channels/pom.xml | 2 +- flume-ng-clients/flume-ng-log4jappender/pom.xml | 2 +- flume-ng-clients/pom.xml | 2 +- .../flume-ng-config-filter-api/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- flume-ng-configfilters/pom.xml | 2 +- flume-ng-configuration/pom.xml | 2 +- flume-ng-core/pom.xml | 2 +- flume-ng-dist/pom.xml | 2 +- flume-ng-embedded-agent/pom.xml | 2 +- flume-ng-legacy-sources/flume-avro-source/pom.xml | 2 +- .../flume-thrift-source/pom.xml | 2 +- flume-ng-legacy-sources/pom.xml | 2 +- flume-ng-node/pom.xml | 2 +- flume-ng-sdk/pom.xml | 2 +- flume-ng-sinks/flume-hdfs-sink/pom.xml | 2 +- flume-ng-sinks/flume-hive-sink/pom.xml | 2 +- flume-ng-sinks/flume-http-sink/pom.xml | 2 +- flume-ng-sinks/flume-irc-sink/pom.xml | 2 +- flume-ng-sinks/flume-ng-hbase-sink/pom.xml | 2 +- flume-ng-sinks/flume-ng-hbase2-sink/pom.xml | 2 +- flume-ng-sinks/flume-ng-kafka-sink/pom.xml | 2 +- flume-ng-sinks/flume-ng-kudu-sink/pom.xml | 2 +- .../flume-ng-morphline-solr-sink/pom.xml | 2 +- flume-ng-sinks/pom.xml | 2 +- flume-ng-sources/flume-jms-source/pom.xml | 2 +- flume-ng-sources/flume-kafka-source/pom.xml | 2 +- flume-ng-sources/flume-scribe-source/pom.xml | 2 +- flume-ng-sources/flume-taildir-source/pom.xml | 2 +- flume-ng-sources/flume-twitter-source/pom.xml | 2 +- flume-ng-sources/pom.xml | 2 +- flume-ng-tests/pom.xml | 2 +- flume-shared/flume-shared-kafka-test/pom.xml | 2 +- flume-shared/flume-shared-kafka/pom.xml | 2 +- flume-shared/pom.xml | 2 +- flume-spring-boot/pom.xml | 94 ++++++++++++++++++ .../org/apache/flume/spring/boot/Application.java | 33 +++++++ .../boot/config/AbstractFlumeConfiguration.java | 107 +++++++++++++++++++++ .../spring/boot/config/SpringConfiguration.java | 59 ++++++++++++ .../flume/spring/boot/runner/SpringFlume.java | 59 ++++++++++++ .../java/org/apache/flume/spring/boot/AppTest.java | 43 +++++++++ .../apache/flume/spring/boot/config/AppConfig.java | 75 +++++++++++++++ .../src/test/resources/application.yml | 8 ++ .../src/test/resources/log4j2-test.xml | 31 ++++++ flume-tools/pom.xml | 2 +- pom.xml | 5 +- 54 files changed, 556 insertions(+), 46 deletions(-) diff --git a/build-support/pom.xml b/build-support/pom.xml index 6b2db2e4..fb985d2f 100644 --- a/build-support/pom.xml +++ b/build-support/pom.xml @@ -22,7 +22,7 @@ limitations under the License. <groupId>org.apache.flume</groupId> <artifactId>build-support</artifactId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> <name>Build Support</name> <description>Build tools and Configuration</description> <properties> diff --git a/flume-ng-auth/pom.xml b/flume-ng-auth/pom.xml index 8e43f136..7d4d00ea 100644 --- a/flume-ng-auth/pom.xml +++ b/flume-ng-auth/pom.xml @@ -21,7 +21,7 @@ limitations under the License. <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <artifactId>flume-ng-auth</artifactId> diff --git a/flume-ng-channels/flume-file-channel/pom.xml b/flume-ng-channels/flume-file-channel/pom.xml index d2bff9fd..ee58fcbb 100644 --- a/flume-ng-channels/flume-file-channel/pom.xml +++ b/flume-ng-channels/flume-file-channel/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>flume-ng-channels</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-channels</groupId> diff --git a/flume-ng-channels/flume-jdbc-channel/pom.xml b/flume-ng-channels/flume-jdbc-channel/pom.xml index 2c4a890a..245b7a44 100644 --- a/flume-ng-channels/flume-jdbc-channel/pom.xml +++ b/flume-ng-channels/flume-jdbc-channel/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <artifactId>flume-ng-channels</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-channels</groupId> diff --git a/flume-ng-channels/flume-kafka-channel/pom.xml b/flume-ng-channels/flume-kafka-channel/pom.xml index 2fd7f9eb..5826991f 100644 --- a/flume-ng-channels/flume-kafka-channel/pom.xml +++ b/flume-ng-channels/flume-kafka-channel/pom.xml @@ -21,7 +21,7 @@ limitations under the License. <parent> <artifactId>flume-ng-channels</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/flume-ng-channels/flume-spillable-memory-channel/pom.xml b/flume-ng-channels/flume-spillable-memory-channel/pom.xml index ed17a881..d9f433b4 100644 --- a/flume-ng-channels/flume-spillable-memory-channel/pom.xml +++ b/flume-ng-channels/flume-spillable-memory-channel/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>flume-ng-channels</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-channels</groupId> diff --git a/flume-ng-channels/pom.xml b/flume-ng-channels/pom.xml index d45d9a90..65c77855 100644 --- a/flume-ng-channels/pom.xml +++ b/flume-ng-channels/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <artifactId>flume-ng-channels</artifactId> diff --git a/flume-ng-clients/flume-ng-log4jappender/pom.xml b/flume-ng-clients/flume-ng-log4jappender/pom.xml index 7878e70d..05c85c73 100644 --- a/flume-ng-clients/flume-ng-log4jappender/pom.xml +++ b/flume-ng-clients/flume-ng-log4jappender/pom.xml @@ -21,7 +21,7 @@ limitations under the License. <parent> <artifactId>flume-ng-clients</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> <relativePath>..</relativePath> </parent> diff --git a/flume-ng-clients/pom.xml b/flume-ng-clients/pom.xml index ed989dd3..ac7b686e 100644 --- a/flume-ng-clients/pom.xml +++ b/flume-ng-clients/pom.xml @@ -20,7 +20,7 @@ limitations under the License. <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> <relativePath>..</relativePath> </parent> <artifactId>flume-ng-clients</artifactId> diff --git a/flume-ng-configfilters/flume-ng-config-filter-api/pom.xml b/flume-ng-configfilters/flume-ng-config-filter-api/pom.xml index 5bfc2abc..da016ae6 100644 --- a/flume-ng-configfilters/flume-ng-config-filter-api/pom.xml +++ b/flume-ng-configfilters/flume-ng-config-filter-api/pom.xml @@ -20,7 +20,7 @@ limitations under the License. <parent> <artifactId>flume-ng-configfilters</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/flume-ng-configfilters/flume-ng-environment-variable-config-filter/pom.xml b/flume-ng-configfilters/flume-ng-environment-variable-config-filter/pom.xml index 8e983d32..c9341873 100644 --- a/flume-ng-configfilters/flume-ng-environment-variable-config-filter/pom.xml +++ b/flume-ng-configfilters/flume-ng-environment-variable-config-filter/pom.xml @@ -20,7 +20,7 @@ limitations under the License. <parent> <artifactId>flume-ng-configfilters</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/flume-ng-configfilters/flume-ng-external-process-config-filter/pom.xml b/flume-ng-configfilters/flume-ng-external-process-config-filter/pom.xml index 5face8d5..e57885c3 100644 --- a/flume-ng-configfilters/flume-ng-external-process-config-filter/pom.xml +++ b/flume-ng-configfilters/flume-ng-external-process-config-filter/pom.xml @@ -21,7 +21,7 @@ limitations under the License. <parent> <artifactId>flume-ng-configfilters</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/flume-ng-configfilters/flume-ng-hadoop-credential-store-config-filter/pom.xml b/flume-ng-configfilters/flume-ng-hadoop-credential-store-config-filter/pom.xml index 3bdf34d8..1f161ead 100644 --- a/flume-ng-configfilters/flume-ng-hadoop-credential-store-config-filter/pom.xml +++ b/flume-ng-configfilters/flume-ng-hadoop-credential-store-config-filter/pom.xml @@ -20,7 +20,7 @@ limitations under the License. <parent> <artifactId>flume-ng-configfilters</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/flume-ng-configfilters/pom.xml b/flume-ng-configfilters/pom.xml index dd0998e6..1197ed76 100644 --- a/flume-ng-configfilters/pom.xml +++ b/flume-ng-configfilters/pom.xml @@ -20,7 +20,7 @@ limitations under the License. <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/flume-ng-configuration/pom.xml b/flume-ng-configuration/pom.xml index 74b9b782..65a2912d 100644 --- a/flume-ng-configuration/pom.xml +++ b/flume-ng-configuration/pom.xml @@ -20,7 +20,7 @@ limitations under the License. <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> <relativePath>..</relativePath> </parent> <artifactId>flume-ng-configuration</artifactId> diff --git a/flume-ng-core/pom.xml b/flume-ng-core/pom.xml index cce219ca..b5cf7527 100644 --- a/flume-ng-core/pom.xml +++ b/flume-ng-core/pom.xml @@ -22,7 +22,7 @@ limitations under the License. <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume</groupId> diff --git a/flume-ng-dist/pom.xml b/flume-ng-dist/pom.xml index fcff1c5c..3b112ecf 100644 --- a/flume-ng-dist/pom.xml +++ b/flume-ng-dist/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <artifactId>flume-ng-dist</artifactId> diff --git a/flume-ng-embedded-agent/pom.xml b/flume-ng-embedded-agent/pom.xml index 5d8c90fe..4e1aa0ef 100644 --- a/flume-ng-embedded-agent/pom.xml +++ b/flume-ng-embedded-agent/pom.xml @@ -21,7 +21,7 @@ limitations under the License. <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <artifactId>flume-ng-embedded-agent</artifactId> diff --git a/flume-ng-legacy-sources/flume-avro-source/pom.xml b/flume-ng-legacy-sources/flume-avro-source/pom.xml index 885fe33f..0236ce85 100644 --- a/flume-ng-legacy-sources/flume-avro-source/pom.xml +++ b/flume-ng-legacy-sources/flume-avro-source/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <artifactId>flume-ng-legacy-sources</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-legacy-sources</groupId> diff --git a/flume-ng-legacy-sources/flume-thrift-source/pom.xml b/flume-ng-legacy-sources/flume-thrift-source/pom.xml index d6154ec6..67d6c768 100644 --- a/flume-ng-legacy-sources/flume-thrift-source/pom.xml +++ b/flume-ng-legacy-sources/flume-thrift-source/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <artifactId>flume-ng-legacy-sources</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-legacy-sources</groupId> diff --git a/flume-ng-legacy-sources/pom.xml b/flume-ng-legacy-sources/pom.xml index dffd0811..9eb177f1 100644 --- a/flume-ng-legacy-sources/pom.xml +++ b/flume-ng-legacy-sources/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <artifactId>flume-ng-legacy-sources</artifactId> diff --git a/flume-ng-node/pom.xml b/flume-ng-node/pom.xml index cc72958e..57f5d1ae 100644 --- a/flume-ng-node/pom.xml +++ b/flume-ng-node/pom.xml @@ -25,7 +25,7 @@ <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <artifactId>flume-ng-node</artifactId> diff --git a/flume-ng-sdk/pom.xml b/flume-ng-sdk/pom.xml index b66a56d9..5e4dabd6 100644 --- a/flume-ng-sdk/pom.xml +++ b/flume-ng-sdk/pom.xml @@ -21,7 +21,7 @@ limitations under the License. <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <artifactId>flume-ng-sdk</artifactId> diff --git a/flume-ng-sinks/flume-hdfs-sink/pom.xml b/flume-ng-sinks/flume-hdfs-sink/pom.xml index 33df70d0..0a5381f5 100644 --- a/flume-ng-sinks/flume-hdfs-sink/pom.xml +++ b/flume-ng-sinks/flume-hdfs-sink/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <artifactId>flume-ng-sinks</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-sinks</groupId> diff --git a/flume-ng-sinks/flume-hive-sink/pom.xml b/flume-ng-sinks/flume-hive-sink/pom.xml index 102d5024..c07dd054 100644 --- a/flume-ng-sinks/flume-hive-sink/pom.xml +++ b/flume-ng-sinks/flume-hive-sink/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <groupId>org.apache.flume</groupId> <artifactId>flume-ng-sinks</artifactId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <properties> diff --git a/flume-ng-sinks/flume-http-sink/pom.xml b/flume-ng-sinks/flume-http-sink/pom.xml index dbf1f3b0..2ebb5c29 100644 --- a/flume-ng-sinks/flume-http-sink/pom.xml +++ b/flume-ng-sinks/flume-http-sink/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <artifactId>flume-ng-sinks</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-sinks</groupId> diff --git a/flume-ng-sinks/flume-irc-sink/pom.xml b/flume-ng-sinks/flume-irc-sink/pom.xml index ba4e8fb2..9757ced0 100644 --- a/flume-ng-sinks/flume-irc-sink/pom.xml +++ b/flume-ng-sinks/flume-irc-sink/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <artifactId>flume-ng-sinks</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-sinks</groupId> diff --git a/flume-ng-sinks/flume-ng-hbase-sink/pom.xml b/flume-ng-sinks/flume-ng-hbase-sink/pom.xml index d71ea367..88d95579 100644 --- a/flume-ng-sinks/flume-ng-hbase-sink/pom.xml +++ b/flume-ng-sinks/flume-ng-hbase-sink/pom.xml @@ -15,7 +15,7 @@ <parent> <artifactId>flume-ng-sinks</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-sinks</groupId> <artifactId>flume-ng-hbase-sink</artifactId> diff --git a/flume-ng-sinks/flume-ng-hbase2-sink/pom.xml b/flume-ng-sinks/flume-ng-hbase2-sink/pom.xml index 8aec7206..41338d7a 100644 --- a/flume-ng-sinks/flume-ng-hbase2-sink/pom.xml +++ b/flume-ng-sinks/flume-ng-hbase2-sink/pom.xml @@ -15,7 +15,7 @@ <parent> <artifactId>flume-ng-sinks</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-sinks</groupId> <artifactId>flume-ng-hbase2-sink</artifactId> diff --git a/flume-ng-sinks/flume-ng-kafka-sink/pom.xml b/flume-ng-sinks/flume-ng-kafka-sink/pom.xml index 70fc2629..3823821c 100644 --- a/flume-ng-sinks/flume-ng-kafka-sink/pom.xml +++ b/flume-ng-sinks/flume-ng-kafka-sink/pom.xml @@ -16,7 +16,7 @@ <parent> <artifactId>flume-ng-sinks</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-sinks</groupId> <artifactId>flume-ng-kafka-sink</artifactId> diff --git a/flume-ng-sinks/flume-ng-kudu-sink/pom.xml b/flume-ng-sinks/flume-ng-kudu-sink/pom.xml index 9026f626..aa5c897a 100644 --- a/flume-ng-sinks/flume-ng-kudu-sink/pom.xml +++ b/flume-ng-sinks/flume-ng-kudu-sink/pom.xml @@ -16,7 +16,7 @@ <parent> <artifactId>flume-ng-sinks</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-sinks</groupId> <artifactId>flume-ng-kudu-sink</artifactId> diff --git a/flume-ng-sinks/flume-ng-morphline-solr-sink/pom.xml b/flume-ng-sinks/flume-ng-morphline-solr-sink/pom.xml index 7a2c6065..1d787e08 100644 --- a/flume-ng-sinks/flume-ng-morphline-solr-sink/pom.xml +++ b/flume-ng-sinks/flume-ng-morphline-solr-sink/pom.xml @@ -21,7 +21,7 @@ limitations under the License. <parent> <artifactId>flume-ng-sinks</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-sinks</groupId> diff --git a/flume-ng-sinks/pom.xml b/flume-ng-sinks/pom.xml index 82b437e6..64055217 100644 --- a/flume-ng-sinks/pom.xml +++ b/flume-ng-sinks/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <artifactId>flume-ng-sinks</artifactId> diff --git a/flume-ng-sources/flume-jms-source/pom.xml b/flume-ng-sources/flume-jms-source/pom.xml index d6dc4e96..3f4dc705 100644 --- a/flume-ng-sources/flume-jms-source/pom.xml +++ b/flume-ng-sources/flume-jms-source/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <artifactId>flume-ng-sources</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-sources</groupId> diff --git a/flume-ng-sources/flume-kafka-source/pom.xml b/flume-ng-sources/flume-kafka-source/pom.xml index 53464df1..c3921325 100644 --- a/flume-ng-sources/flume-kafka-source/pom.xml +++ b/flume-ng-sources/flume-kafka-source/pom.xml @@ -22,7 +22,7 @@ <parent> <artifactId>flume-ng-sources</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> diff --git a/flume-ng-sources/flume-scribe-source/pom.xml b/flume-ng-sources/flume-scribe-source/pom.xml index 15e3761d..fa5c5d78 100644 --- a/flume-ng-sources/flume-scribe-source/pom.xml +++ b/flume-ng-sources/flume-scribe-source/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <artifactId>flume-ng-sources</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-sources</groupId> diff --git a/flume-ng-sources/flume-taildir-source/pom.xml b/flume-ng-sources/flume-taildir-source/pom.xml index c6fd9aa5..cf3d2e06 100644 --- a/flume-ng-sources/flume-taildir-source/pom.xml +++ b/flume-ng-sources/flume-taildir-source/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <artifactId>flume-ng-sources</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-sources</groupId> diff --git a/flume-ng-sources/flume-twitter-source/pom.xml b/flume-ng-sources/flume-twitter-source/pom.xml index f21a5479..604d7aaa 100644 --- a/flume-ng-sources/flume-twitter-source/pom.xml +++ b/flume-ng-sources/flume-twitter-source/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <artifactId>flume-ng-sources</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-ng-sources</groupId> diff --git a/flume-ng-sources/pom.xml b/flume-ng-sources/pom.xml index 5e694e08..4c5a75e5 100644 --- a/flume-ng-sources/pom.xml +++ b/flume-ng-sources/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume</groupId> diff --git a/flume-ng-tests/pom.xml b/flume-ng-tests/pom.xml index 05c51fec..0c1ec332 100644 --- a/flume-ng-tests/pom.xml +++ b/flume-ng-tests/pom.xml @@ -24,7 +24,7 @@ <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <artifactId>flume-ng-tests</artifactId> diff --git a/flume-shared/flume-shared-kafka-test/pom.xml b/flume-shared/flume-shared-kafka-test/pom.xml index 74ae5443..13fb8e9f 100644 --- a/flume-shared/flume-shared-kafka-test/pom.xml +++ b/flume-shared/flume-shared-kafka-test/pom.xml @@ -16,7 +16,7 @@ <parent> <artifactId>flume-shared</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-shared</groupId> <artifactId>flume-shared-kafka-test</artifactId> diff --git a/flume-shared/flume-shared-kafka/pom.xml b/flume-shared/flume-shared-kafka/pom.xml index fa9b82df..c3160133 100644 --- a/flume-shared/flume-shared-kafka/pom.xml +++ b/flume-shared/flume-shared-kafka/pom.xml @@ -24,7 +24,7 @@ limitations under the License. <parent> <artifactId>flume-shared</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume.flume-shared</groupId> diff --git a/flume-shared/pom.xml b/flume-shared/pom.xml index 65d92006..93a8035c 100644 --- a/flume-shared/pom.xml +++ b/flume-shared/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume</groupId> diff --git a/flume-spring-boot/pom.xml b/flume-spring-boot/pom.xml new file mode 100644 index 00000000..bfd058fc --- /dev/null +++ b/flume-spring-boot/pom.xml @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>flume-parent</artifactId> + <groupId>org.apache.flume</groupId> + <version>1.11.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>flume-spring-boot</artifactId> + <name>Flume Spring Boot Support</name> + + <properties> + <module.name>org.apache.flume.spring.boot</module.name> + <spring-boot.version>2.7.3</spring-boot.version> + </properties> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-dependencies</artifactId> + <version>${spring-boot.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + <dependency> + <groupId>org.apache.flume</groupId> + <artifactId>flume-ng-configuration</artifactId> + </dependency> + <dependency> + <groupId>org.apache.flume</groupId> + <artifactId>flume-ng-core</artifactId> + </dependency> + <dependency> + <groupId>org.apache.flume</groupId> + <artifactId>flume-ng-node</artifactId> + </dependency> + <!-- Spring Boot dependencies --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-actuator</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter</artifactId> + <exclusions> + <exclusion> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> + <!-- log dependencies --> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-log4j2</artifactId> + </dependency> + </dependencies> + <build> + + </build> + +</project> \ No newline at end of file diff --git a/flume-spring-boot/src/main/java/org/apache/flume/spring/boot/Application.java b/flume-spring-boot/src/main/java/org/apache/flume/spring/boot/Application.java new file mode 100644 index 00000000..4edbad5f --- /dev/null +++ b/flume-spring-boot/src/main/java/org/apache/flume/spring/boot/Application.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache license, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the license for the specific language governing permissions and + * limitations under the license. + */ + +package org.apache.flume.spring.boot; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.properties.EnableConfigurationProperties; + +/** + * + */ +@SpringBootApplication(scanBasePackages = {"org.apache.flume.spring.boot"}) +@EnableConfigurationProperties +public class Application { + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } +} diff --git a/flume-spring-boot/src/main/java/org/apache/flume/spring/boot/config/AbstractFlumeConfiguration.java b/flume-spring-boot/src/main/java/org/apache/flume/spring/boot/config/AbstractFlumeConfiguration.java new file mode 100644 index 00000000..0846e46d --- /dev/null +++ b/flume-spring-boot/src/main/java/org/apache/flume/spring/boot/config/AbstractFlumeConfiguration.java @@ -0,0 +1,107 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache license, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the license for the specific language governing permissions and + * limitations under the license. + */ +package org.apache.flume.spring.boot.config; + +import org.apache.flume.Channel; +import org.apache.flume.ChannelSelector; +import org.apache.flume.Context; +import org.apache.flume.FlumeException; +import org.apache.flume.Sink; +import org.apache.flume.Source; +import org.apache.flume.SourceRunner; +import org.apache.flume.channel.ChannelProcessor; +import org.apache.flume.conf.Configurables; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * + */ +public abstract class AbstractFlumeConfiguration { + + protected <T extends Channel> T configureChannel(final String name, final Class<T> clazz, + final Map<String, String> params) { + T channel; + try { + channel = clazz.newInstance(); + } catch (Exception ex) { + throw new FlumeException("Unable to create channel " + name, ex); + } + channel.setName(name); + Configurables.configure(channel, createContext(params)); + return channel; + } + + protected <T extends Source> SourceRunner configureSource(final String name, final Class<T> clazz, + final ChannelSelector selector, final Map<String, String> params) { + T source; + try { + source = clazz.newInstance(); + } catch (Exception ex) { + throw new FlumeException("Unable to create source " + name, ex); + } + source.setName(name); + Configurables.configure(source, createContext(params)); + source.setChannelProcessor(new ChannelProcessor(selector)); + return SourceRunner.forSource(source); + } + + protected <T extends Sink> Sink configureSink(final String name, final Class<T> clazz, + final Channel channel, + final Map<String, String> params) { + T sink; + try { + sink = clazz.newInstance(); + } catch (Exception ex) { + throw new FlumeException("Unable to create sink " + name, ex); + } + sink.setName(name); + Configurables.configure(sink, createContext(params)); + sink.setChannel(channel); + return sink; + } + + protected ChannelSelector createChannelSelector(Class<? extends ChannelSelector> clazz, + Map<String, String> params) { + ChannelSelector selector; + try { + selector = clazz.newInstance(); + } catch (Exception ex) { + throw new FlumeException("Unable to create channel selector " + clazz.getName(), ex); + } + Configurables.configure(selector, createContext(params)); + return selector; + } + + /** + * Creates a List from a Varargs array. + * + * @param items The items to add to the list. + * @param <T> The type of objects in the List. + * @return a List containing the supplied items. + */ + @SafeVarargs + protected final <T> List<T> listOf(T... items) { + return Arrays.asList(items); + } + + private static Context createContext(Map<String, String> map) { + return map != null ? new Context(map) : new Context(); + } +} diff --git a/flume-spring-boot/src/main/java/org/apache/flume/spring/boot/config/SpringConfiguration.java b/flume-spring-boot/src/main/java/org/apache/flume/spring/boot/config/SpringConfiguration.java new file mode 100644 index 00000000..eac9a765 --- /dev/null +++ b/flume-spring-boot/src/main/java/org/apache/flume/spring/boot/config/SpringConfiguration.java @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache license, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the license for the specific language governing permissions and + * limitations under the license. + */ +package org.apache.flume.spring.boot.config; + +import org.apache.flume.Channel; +import org.apache.flume.SinkRunner; +import org.apache.flume.SourceRunner; +import org.apache.flume.node.MaterializedConfiguration; +import org.apache.flume.node.SimpleMaterializedConfiguration; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.Map; + +/** + * + */ +@Configuration +public class SpringConfiguration { + + @Autowired + public Map<String, Channel> channels; + + @Autowired + public Map<String, SinkRunner> sinkRunners; + + @Autowired + public Map<String, SourceRunner> sourceRunners; + + @Bean + public MaterializedConfiguration configuration() { + MaterializedConfiguration config = new SimpleMaterializedConfiguration(); + for (Map.Entry<String, Channel> entry : channels.entrySet()) { + config.addChannel(entry.getKey(), entry.getValue()); + } + for (Map.Entry<String, SinkRunner> entry : sinkRunners.entrySet()) { + config.addSinkRunner(entry.getKey(), entry.getValue()); + } + for (Map.Entry<String, SourceRunner> entry : sourceRunners.entrySet()) { + config.addSourceRunner(entry.getKey(), entry.getValue()); + } + return config; + } +} diff --git a/flume-spring-boot/src/main/java/org/apache/flume/spring/boot/runner/SpringFlume.java b/flume-spring-boot/src/main/java/org/apache/flume/spring/boot/runner/SpringFlume.java new file mode 100644 index 00000000..2ddecad2 --- /dev/null +++ b/flume-spring-boot/src/main/java/org/apache/flume/spring/boot/runner/SpringFlume.java @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache license, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the license for the specific language governing permissions and + * limitations under the license. + */ +package org.apache.flume.spring.boot.runner; + +import com.google.common.collect.Lists; +import org.apache.flume.lifecycle.LifecycleAware; +import org.apache.flume.node.Application; +import org.apache.flume.node.MaterializedConfiguration; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; +import java.util.List; + +/** + * + */ +@Component +public class SpringFlume { + private MaterializedConfiguration materializedConfiguration; + + private final Application application; + + @Autowired + public SpringFlume(MaterializedConfiguration configuration) { + this.materializedConfiguration = configuration; + List<LifecycleAware> components = Lists.newArrayList(); + application = new Application(components); + } + + @PostConstruct + public void startUp() { + application.start(); + application.handleConfigurationEvent(materializedConfiguration); + } + + @PreDestroy + public void shutdown() { + application.stop(); + } + + +} diff --git a/flume-spring-boot/src/test/java/org/apache/flume/spring/boot/AppTest.java b/flume-spring-boot/src/test/java/org/apache/flume/spring/boot/AppTest.java new file mode 100644 index 00000000..af265434 --- /dev/null +++ b/flume-spring-boot/src/test/java/org/apache/flume/spring/boot/AppTest.java @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache license, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the license for the specific language governing permissions and + * limitations under the license. + */ +package org.apache.flume.spring.boot; + +import org.apache.flume.node.MaterializedConfiguration; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +/** + * + */ +@ExtendWith(SpringExtension.class) +@SpringBootTest +public class AppTest { + + @Autowired + MaterializedConfiguration configuration; + + @Test + public void contextLoads() { + Assertions.assertThat(configuration).isNotNull(); + Assertions.assertThat(configuration.getSinkRunners()).isNotNull(); + Assertions.assertThat(configuration.getSinkRunners().size()).isEqualTo(1); + } +} diff --git a/flume-spring-boot/src/test/java/org/apache/flume/spring/boot/config/AppConfig.java b/flume-spring-boot/src/test/java/org/apache/flume/spring/boot/config/AppConfig.java new file mode 100644 index 00000000..cc953437 --- /dev/null +++ b/flume-spring-boot/src/test/java/org/apache/flume/spring/boot/config/AppConfig.java @@ -0,0 +1,75 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache license, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the license for the specific language governing permissions and + * limitations under the license. + */ +package org.apache.flume.spring.boot.config; + +import org.apache.flume.Channel; +import org.apache.flume.ChannelSelector; +import org.apache.flume.Sink; +import org.apache.flume.SinkProcessor; +import org.apache.flume.SinkRunner; +import org.apache.flume.SourceRunner; +import org.apache.flume.channel.MemoryChannel; +import org.apache.flume.channel.ReplicatingChannelSelector; +import org.apache.flume.sink.DefaultSinkProcessor; +import org.apache.flume.sink.NullSink; +import org.apache.flume.source.SequenceGeneratorSource; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.HashMap; +import java.util.Map; + +/** + * + */ +@Configuration +public class AppConfig extends AbstractFlumeConfiguration { + + @Bean + @ConfigurationProperties(prefix = "flume.sources.source1") + public Map<String, String> source1Properties() { + return new HashMap<>(); + } + + @Bean + @ConfigurationProperties(prefix = "flume.channels.channel1") + public Map<String, String> channel1Properties() { + return new HashMap<>(); + } + + @Bean + public Channel memoryChannel(Map<String, String> channel1Properties) { + return configureChannel("channel1", MemoryChannel.class, channel1Properties); + } + + @Bean + public SourceRunner seqSource(Channel memoryChannel, Map<String, String> source1Properties) { + ChannelSelector selector = new ReplicatingChannelSelector(); + selector.setChannels(listOf(memoryChannel)); + return configureSource("source1", SequenceGeneratorSource.class, selector, + source1Properties); + } + + @Bean + public SinkRunner nullSink(Channel memoryChannel) { + SinkProcessor sinkProcessor = new DefaultSinkProcessor(); + Sink sink = configureSink("null", NullSink.class, memoryChannel,null); + sinkProcessor.setSinks(listOf(sink)); + return new SinkRunner(sinkProcessor); + } +} diff --git a/flume-spring-boot/src/test/resources/application.yml b/flume-spring-boot/src/test/resources/application.yml new file mode 100644 index 00000000..8e2e2e5e --- /dev/null +++ b/flume-spring-boot/src/test/resources/application.yml @@ -0,0 +1,8 @@ + +flume: + sources: + source1: + totalEvents: 10000 + channels: + channel1: + capacity: 10000 diff --git a/flume-spring-boot/src/test/resources/log4j2-test.xml b/flume-spring-boot/src/test/resources/log4j2-test.xml new file mode 100644 index 00000000..d912f310 --- /dev/null +++ b/flume-spring-boot/src/test/resources/log4j2-test.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<Configuration status="ERROR"> + <Appenders> + <Console name="Console" target="SYSTEM_OUT"> + <PatternLayout pattern="%d [%t] %-5level: %msg%n%throwable" /> + </Console> + </Appenders> + <Loggers> + <Logger name="org.apache.flume" level="INFO" /> + <Root level="WARN"> + <AppenderRef ref="Console" /> + </Root> + </Loggers> +</Configuration> \ No newline at end of file diff --git a/flume-tools/pom.xml b/flume-tools/pom.xml index 1714c4e8..09f39843 100644 --- a/flume-tools/pom.xml +++ b/flume-tools/pom.xml @@ -25,7 +25,7 @@ limitations under the License. <parent> <artifactId>flume-parent</artifactId> <groupId>org.apache.flume</groupId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> </parent> <groupId>org.apache.flume</groupId> diff --git a/pom.xml b/pom.xml index 13f821de..edd28148 100644 --- a/pom.xml +++ b/pom.xml @@ -27,7 +27,7 @@ limitations under the License. <modelVersion>4.0.0</modelVersion> <groupId>org.apache.flume</groupId> <artifactId>flume-parent</artifactId> - <version>1.10.1</version> + <version>1.11.0-SNAPSHOT</version> <packaging>pom</packaging> <name>Apache Flume</name> @@ -70,7 +70,7 @@ limitations under the License. <fasterxml.jackson.databind.version>2.13.2.1</fasterxml.jackson.databind.version> <fest-reflect.version>1.4</fest-reflect.version> <geronimo-jms.version>1.1.1</geronimo-jms.version> - <gson.version>2.2.2</gson.version> + <gson.version>2.9.1</gson.version> <guava.version>18.0</guava.version> <guava-old.version>11.0.2</guava-old.version> <hadoop.version>2.10.1</hadoop.version> @@ -149,6 +149,7 @@ limitations under the License. <module>flume-shared</module> <module>flume-ng-configfilters</module> <module>build-support</module> + <module>flume-spring-boot</module> </modules> <profiles>
