This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch towards17
in repository https://gitbox.apache.org/repos/asf/logging-flume.git

commit f830b41c2140a18e87d6baf69cfd8b267d52be1a
Author: Ralph Goers <[email protected]>
AuthorDate: Fri May 29 08:59:27 2026 -0700

    Interim commit
---
 .flattened-pom.xml                                 |   68 ++
 flume-bom/.flattened-pom.xml                       |  211 ++++
 flume-ng-auth/{pom.xml => .flattened-pom.xml}      |   29 +-
 flume-ng-auth/pom.xml                              |    2 +-
 flume-ng-channels/.flattened-pom.xml               |   42 +
 flume-ng-channels/flume-file-channel/pom.xml       |    2 +-
 .../flume-spillable-memory-channel/pom.xml         |    2 +-
 flume-ng-clients/flume-ng-log4jappender/pom.xml    |    2 +-
 flume-ng-configfilters/.flattened-pom.xml          |   43 +
 .../flume-ng-config-filter-api/.flattened-pom.xml  |   39 +
 .../{pom.xml => .flattened-pom.xml}                |   26 +-
 flume-ng-configuration/pom.xml                     |    2 +-
 flume-ng-core/{pom.xml => .flattened-pom.xml}      |  276 ++---
 flume-ng-core/pom.xml                              |    2 +-
 .../org/apache/flume/sink/TestRollingFileSink.java |    2 +-
 .../flume/source/TestMultiportSyslogTCPSource.java |    4 +-
 .../flume/source/TestSequenceGeneratorSource.java  |    4 +-
 .../apache/flume/source/TestSyslogTcpSource.java   |    2 +-
 .../apache/flume/source/TestSyslogUdpSource.java   |    2 +-
 .../apache/flume/source/http/TestHTTPSource.java   |    6 +-
 flume-ng-embedded-agent/pom.xml                    |    2 +-
 flume-ng-node/pom.xml                              |    2 +-
 .../pom.xml => flume-ng-sdk/.flattened-pom.xml     |   83 +-
 .../test/java/org/apache/flume/util/Whitebox.java  |   32 +
 flume-ng-sources/flume-taildir-source/pom.xml      |    2 +-
 .../flume/source/taildir/TestTaildirSource.java    |    4 +-
 flume-parent/{pom.xml => .flattened-pom.xml}       | 1163 ++++++++------------
 flume-parent/pom.xml                               |   35 +-
 flume-rpc/flume-rpc-avro/pom.xml                   |   31 +-
 .../apache/flume/rpc/avro/sink/TestAvroSink.java   |    2 +-
 .../rpc/avro/source/TestSpoolDirectorySource.java  |    4 +-
 flume-rpc/flume-rpc-thrift/pom.xml                 |    2 +-
 .../flume/rpc/thrift/ThriftTestingSource.java      |    8 +-
 flume-rpc/pom.xml                                  |    6 -
 34 files changed, 1133 insertions(+), 1009 deletions(-)

diff --git a/.flattened-pom.xml b/.flattened-pom.xml
new file mode 100644
index 000000000..5c4aee064
--- /dev/null
+++ b/.flattened-pom.xml
@@ -0,0 +1,68 @@
+<?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 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd"; 
xmlns="http://maven.apache.org/POM/4.0.0";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.logging</groupId>
+    <artifactId>logging-parent</artifactId>
+    <version>12.1.1</version>
+  </parent>
+  <groupId>org.apache.flume</groupId>
+  <artifactId>flume-project</artifactId>
+  <version>2.0.0-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  <name>Apache Flume Project</name>
+  <url>https://logging.apache.org/logging-parent/flume-project</url>
+  <licenses>
+    <license>
+      <name>Apache-2.0</name>
+      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+  <modules>
+    <module>flume-bom</module>
+    <module>flume-parent</module>
+    <module>flume-ng-core</module>
+    <module>flume-ng-configuration</module>
+    <module>flume-rpc</module>
+    <module>flume-ng-embedded-agent</module>
+    <module>flume-ng-sources</module>
+    <module>flume-ng-node</module>
+    <module>flume-ng-channels</module>
+    <module>flume-ng-sdk</module>
+    <module>flume-tools</module>
+    <module>flume-ng-auth</module>
+    <module>flume-ng-configfilters</module>
+    <module>build-support</module>
+  </modules>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+        <configuration>
+          <excludes combine.children="append">
+            <exclude>**/*.avsc</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/flume-bom/.flattened-pom.xml b/flume-bom/.flattened-pom.xml
new file mode 100644
index 000000000..626589030
--- /dev/null
+++ b/flume-bom/.flattened-pom.xml
@@ -0,0 +1,211 @@
+<?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 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd"; 
xmlns="http://maven.apache.org/POM/4.0.0";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.flume</groupId>
+    <artifactId>flume-project</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+  </parent>
+  <groupId>org.apache.flume</groupId>
+  <artifactId>flume-dependencies</artifactId>
+  <version>2.0.0-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  <name>Apache Flume Artifacts</name>
+  
<url>https://logging.apache.org/logging-parent/flume-project/flume-dependencies</url>
+  <licenses>
+    <license>
+      <name>Apache-2.0</name>
+      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>
+    </license>
+  </licenses>
+  <properties>
+    <flume-irc.version>2.0.0-SNAPSHOT</flume-irc.version>
+    <flume-scribe.version>2.0.0-SNAPSHOT</flume-scribe.version>
+    <flume-spring-boot.version>2.0.0-SNAPSHOT</flume-spring-boot.version>
+    <flume-jms.version>2.0.0-SNAPSHOT</flume-jms.version>
+    <flume-tools.version>2.0.0-SNAPSHOT</flume-tools.version>
+    <flume-http.version>2.0.0-SNAPSHOT</flume-http.version>
+    <flume-jdbc.version>2.0.0-SNAPSHOT</flume-jdbc.version>
+    <flume-legacy.version>2.0.0-SNAPSHOT</flume-legacy.version>
+    <flume-taildir.version>2.0.0-SNAPSHOT</flume-taildir.version>
+    <flume-kafka.version>2.0.0-SNAPSHOT</flume-kafka.version>
+    <flume-morphline.version>2.0.0-SNAPSHOT</flume-morphline.version>
+  </properties>
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-auth</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-configfilters</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-configuration</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-core</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-embedded-agent</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-config-filter-api</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-environment-variable-config-filter</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-external-process-config-filter</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-hadoop-credential-store-config-filter</artifactId>
+        <version>${flume-hadoop.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-sdk</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-ng-node</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-rpc-avro</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-rpc-thrift</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-spring-boot</artifactId>
+        <version>${flume-spring-boot.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-jdbc-channel</artifactId>
+        <version>${flume-jdbc.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-channels</groupId>
+        <artifactId>flume-file-channel</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-kafka-channel</artifactId>
+        <version>${flume-kafka.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-channels</groupId>
+        <artifactId>flume-recoverable-memory-channel</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-channels</groupId>
+        <artifactId>flume-spillable-memory-channel</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-legacy-thrift-source</artifactId>
+        <version>${flume-legacy.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-legacy-avro-source</artifactId>
+        <version>${flume-legacy.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sinks</groupId>
+        <artifactId>flume-http-sink</artifactId>
+        <version>${flume-http.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sinks</groupId>
+        <artifactId>flume-irc-sink</artifactId>
+        <version>${flume-irc.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-kafka-sink</artifactId>
+        <version>${flume-kafka.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sources</groupId>
+        <artifactId>flume-jms-source</artifactId>
+        <version>${flume-jms.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sinks</groupId>
+        <artifactId>flume-dataset-sink</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-kafka-source</artifactId>
+        <version>${flume-kafka.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sources</groupId>
+        <artifactId>flume-scribe-source</artifactId>
+        <version>${flume-scribe.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume.flume-ng-sources</groupId>
+        <artifactId>flume-taildir-source</artifactId>
+        <version>${flume-taildir.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-shared-kafka</artifactId>
+        <version>${flume-kafka.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.flume</groupId>
+        <artifactId>flume-tools</artifactId>
+        <version>${flume-tools.version}</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+</project>
diff --git a/flume-ng-auth/pom.xml b/flume-ng-auth/.flattened-pom.xml
similarity index 82%
copy from flume-ng-auth/pom.xml
copy to flume-ng-auth/.flattened-pom.xml
index e213d7844..de4333149 100644
--- a/flume-ng-auth/pom.xml
+++ b/flume-ng-auth/.flattened-pom.xml
@@ -1,3 +1,4 @@
+<?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
@@ -14,71 +15,66 @@ 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";>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd"; 
xmlns="http://maven.apache.org/POM/4.0.0";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
   <modelVersion>4.0.0</modelVersion>
-
   <parent>
-    <artifactId>flume-parent</artifactId>
     <groupId>org.apache.flume</groupId>
+    <artifactId>flume-parent</artifactId>
     <version>2.0.0-SNAPSHOT</version>
     <relativePath>../flume-parent/pom.xml</relativePath>
   </parent>
-
   <artifactId>flume-ng-auth</artifactId>
+  <version>2.0.0-SNAPSHOT</version>
   <name>Flume Auth</name>
   <description>Flume Authentication</description>
-
+  
<url>https://logging.apache.org/logging-parent/flume-parent/flume-ng-auth</url>
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+    </license>
+  </licenses>
   <properties>
-    <!-- TODO fix spotbugs/pmd violations -->
     <spotbugs.maxAllowedViolations>1</spotbugs.maxAllowedViolations>
     <pmd.maxAllowedViolations>7</pmd.maxAllowedViolations>
     <module.name>org.apache.flume.auth</module.name>
   </properties>
-
   <dependencies>
-
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
     </dependency>
-
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-slf4j-impl</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-1.2-api</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-common</artifactId>
       <optional>true</optional>
     </dependency>
-
     <dependency>
       <groupId>org.apache.flume</groupId>
       <artifactId>flume-ng-sdk</artifactId>
     </dependency>
-
     <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-minikdc</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
-      <!-- add this to satisfy the dependency requirement of apacheds-jdbm1 in 
minikdc-->
       <groupId>org.apache.directory.jdbm</groupId>
       <artifactId>apacheds-jdbm1</artifactId>
       <scope>test</scope>
@@ -87,6 +83,5 @@ limitations under the License.
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
-
   </dependencies>
 </project>
diff --git a/flume-ng-auth/pom.xml b/flume-ng-auth/pom.xml
index e213d7844..031d9fbd0 100644
--- a/flume-ng-auth/pom.xml
+++ b/flume-ng-auth/pom.xml
@@ -31,7 +31,7 @@ limitations under the License.
 
   <properties>
     <!-- TODO fix spotbugs/pmd violations -->
-    <spotbugs.maxAllowedViolations>1</spotbugs.maxAllowedViolations>
+    <spotbugs.maxAllowedViolations>6</spotbugs.maxAllowedViolations>
     <pmd.maxAllowedViolations>7</pmd.maxAllowedViolations>
     <module.name>org.apache.flume.auth</module.name>
   </properties>
diff --git a/flume-ng-channels/.flattened-pom.xml 
b/flume-ng-channels/.flattened-pom.xml
new file mode 100644
index 000000000..9ee563589
--- /dev/null
+++ b/flume-ng-channels/.flattened-pom.xml
@@ -0,0 +1,42 @@
+<?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 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd"; 
xmlns="http://maven.apache.org/POM/4.0.0";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.flume</groupId>
+    <artifactId>flume-parent</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+    <relativePath>../flume-parent/pom.xml</relativePath>
+  </parent>
+  <artifactId>flume-ng-channels</artifactId>
+  <version>2.0.0-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  <name>Flume NG Channels</name>
+  
<url>https://logging.apache.org/logging-parent/flume-parent/flume-ng-channels</url>
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+    </license>
+  </licenses>
+  <modules>
+    <module>flume-file-channel</module>
+    <module>flume-spillable-memory-channel</module>
+  </modules>
+</project>
diff --git a/flume-ng-channels/flume-file-channel/pom.xml 
b/flume-ng-channels/flume-file-channel/pom.xml
index 6db659c86..15d80f28b 100644
--- a/flume-ng-channels/flume-file-channel/pom.xml
+++ b/flume-ng-channels/flume-file-channel/pom.xml
@@ -78,7 +78,7 @@
 
     <dependency>
       <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
+      <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
 
diff --git a/flume-ng-channels/flume-spillable-memory-channel/pom.xml 
b/flume-ng-channels/flume-spillable-memory-channel/pom.xml
index bd7c6be17..6d17a46bd 100644
--- a/flume-ng-channels/flume-spillable-memory-channel/pom.xml
+++ b/flume-ng-channels/flume-spillable-memory-channel/pom.xml
@@ -83,7 +83,7 @@
 
     <dependency>
       <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
+      <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
 
diff --git a/flume-ng-clients/flume-ng-log4jappender/pom.xml 
b/flume-ng-clients/flume-ng-log4jappender/pom.xml
index 6e751849a..2c6ccbfe4 100644
--- a/flume-ng-clients/flume-ng-log4jappender/pom.xml
+++ b/flume-ng-clients/flume-ng-log4jappender/pom.xml
@@ -93,7 +93,7 @@ limitations under the License.
 
     <dependency>
       <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
+      <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
 
diff --git a/flume-ng-configfilters/.flattened-pom.xml 
b/flume-ng-configfilters/.flattened-pom.xml
new file mode 100644
index 000000000..5e352a74e
--- /dev/null
+++ b/flume-ng-configfilters/.flattened-pom.xml
@@ -0,0 +1,43 @@
+<?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 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd"; 
xmlns="http://maven.apache.org/POM/4.0.0";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.flume</groupId>
+    <artifactId>flume-parent</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+    <relativePath>../flume-parent/pom.xml</relativePath>
+  </parent>
+  <artifactId>flume-ng-configfilters</artifactId>
+  <version>2.0.0-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  <name>Flume NG Config Filters</name>
+  
<url>https://logging.apache.org/logging-parent/flume-parent/flume-ng-configfilters</url>
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+    </license>
+  </licenses>
+  <modules>
+    <module>flume-ng-environment-variable-config-filter</module>
+    <module>flume-ng-config-filter-api</module>
+    <module>flume-ng-external-process-config-filter</module>
+  </modules>
+</project>
diff --git 
a/flume-ng-configfilters/flume-ng-config-filter-api/.flattened-pom.xml 
b/flume-ng-configfilters/flume-ng-config-filter-api/.flattened-pom.xml
new file mode 100644
index 000000000..ff9a765a8
--- /dev/null
+++ b/flume-ng-configfilters/flume-ng-config-filter-api/.flattened-pom.xml
@@ -0,0 +1,39 @@
+<?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 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd"; 
xmlns="http://maven.apache.org/POM/4.0.0";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.flume</groupId>
+    <artifactId>flume-ng-configfilters</artifactId>
+    <version>2.0.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>flume-ng-config-filter-api</artifactId>
+  <version>2.0.0-SNAPSHOT</version>
+  <name>Flume NG Config Filters API</name>
+  
<url>https://logging.apache.org/logging-parent/flume-parent/flume-ng-configfilters/flume-ng-config-filter-api</url>
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+    </license>
+  </licenses>
+  <properties>
+    <module.name>org.apache.flume.configfilter.api</module.name>
+  </properties>
+</project>
diff --git a/flume-ng-configuration/pom.xml 
b/flume-ng-configuration/.flattened-pom.xml
similarity index 80%
copy from flume-ng-configuration/pom.xml
copy to flume-ng-configuration/.flattened-pom.xml
index edb67e188..fb61455eb 100644
--- a/flume-ng-configuration/pom.xml
+++ b/flume-ng-configuration/.flattened-pom.xml
@@ -1,3 +1,4 @@
+<?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
@@ -14,64 +15,61 @@ 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";>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd"; 
xmlns="http://maven.apache.org/POM/4.0.0";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <artifactId>flume-parent</artifactId>
     <groupId>org.apache.flume</groupId>
+    <artifactId>flume-parent</artifactId>
     <version>2.0.0-SNAPSHOT</version>
     <relativePath>../flume-parent/pom.xml</relativePath>
   </parent>
   <artifactId>flume-ng-configuration</artifactId>
+  <version>2.0.0-SNAPSHOT</version>
   <name>Flume NG Configuration</name>
-
+  
<url>https://logging.apache.org/logging-parent/flume-parent/flume-ng-configuration</url>
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+    </license>
+  </licenses>
   <properties>
-    <!-- TODO fix spotbugs violations -->
     <spotbugs.maxAllowedViolations>8</spotbugs.maxAllowedViolations>
     <pmd.maxAllowedViolations>17</pmd.maxAllowedViolations>
     <module.name>org.apache.flume.conf</module.name>
   </properties>
-
   <dependencies>
-
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
     </dependency>
-
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-slf4j-impl</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-1.2-api</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
-
     <dependency>
       <groupId>org.apache.flume</groupId>
       <artifactId>flume-ng-sdk</artifactId>
     </dependency>
-
     <dependency>
       <groupId>org.apache.flume</groupId>
       <artifactId>flume-ng-config-filter-api</artifactId>
     </dependency>
-
   </dependencies>
 </project>
diff --git a/flume-ng-configuration/pom.xml b/flume-ng-configuration/pom.xml
index edb67e188..c059fc02f 100644
--- a/flume-ng-configuration/pom.xml
+++ b/flume-ng-configuration/pom.xml
@@ -28,7 +28,7 @@ limitations under the License.
 
   <properties>
     <!-- TODO fix spotbugs violations -->
-    <spotbugs.maxAllowedViolations>8</spotbugs.maxAllowedViolations>
+    <spotbugs.maxAllowedViolations>36</spotbugs.maxAllowedViolations>
     <pmd.maxAllowedViolations>17</pmd.maxAllowedViolations>
     <module.name>org.apache.flume.conf</module.name>
   </properties>
diff --git a/flume-ng-core/pom.xml b/flume-ng-core/.flattened-pom.xml
similarity index 89%
copy from flume-ng-core/pom.xml
copy to flume-ng-core/.flattened-pom.xml
index 2d2873bbf..72afcf063 100644
--- a/flume-ng-core/pom.xml
+++ b/flume-ng-core/.flattened-pom.xml
@@ -1,3 +1,4 @@
+<?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
@@ -14,298 +15,259 @@ 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";>
-
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd"; 
xmlns="http://maven.apache.org/POM/4.0.0";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
   <modelVersion>4.0.0</modelVersion>
-
   <parent>
-    <artifactId>flume-parent</artifactId>
     <groupId>org.apache.flume</groupId>
+    <artifactId>flume-parent</artifactId>
     <version>2.0.0-SNAPSHOT</version>
     <relativePath>../flume-parent/pom.xml</relativePath>
   </parent>
-
   <groupId>org.apache.flume</groupId>
   <artifactId>flume-ng-core</artifactId>
+  <version>2.0.0-SNAPSHOT</version>
   <name>Flume NG Core</name>
-
+  
<url>https://logging.apache.org/logging-parent/flume-parent/flume-ng-core</url>
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+    </license>
+  </licenses>
   <properties>
-    <!-- TODO fix spotbugs violations -->
     <spotbugs.maxAllowedViolations>115</spotbugs.maxAllowedViolations>
     <pmd.maxAllowedViolations>121</pmd.maxAllowedViolations>
     <module.name>org.apache.flume.core</module.name>
   </properties>
-  <profiles>
-    <profile>
-      <id>not-windows</id>
-      <activation>
-        <os>
-          <family>!Windows</family>
-        </os>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-antrun-plugin</artifactId>
-            <version>${mvn-antrun-plugin.version}</version>
-            <executions>
-              <execution>
-                <id>generate-version</id>
-                <phase>generate-sources</phase>
-                <configuration>
-                  <target>
-                    <mkdir 
dir="${project.build.directory}/generated-sources/java"/>
-                    <exec executable="sh">
-                      <arg
-                        line = "${basedir}/scripts/saveVersion.sh 
${project.version} ${project.build.directory}" />
-                    </exec>
-                  </target>
-                </configuration>
-                <goals>
-                  <goal>run</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
-
-          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>build-helper-maven-plugin</artifactId>
-            <version>${mvn-build-helper-plugin}</version>
-            <executions>
-              <execution>
-                <id>add-source</id>
-                <phase>generate-sources</phase>
-                <goals>
-                  <goal>add-source</goal>
-                </goals>
-                <configuration>
-                  <sources>
-                    <source>target/generated-sources/java</source>
-                  </sources>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-
-        </plugins>
-      </build>
-    </profile>
-
-    <profile>
-      <id>windows</id>
-      <activation>
-        <os>
-          <family>Windows</family>
-        </os>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-antrun-plugin</artifactId>
-            <version>${mvn-antrun-plugin.version}</version>
-            <executions>
-              <execution>
-                <id>generate-version</id>
-                <phase>generate-sources</phase>
-                <configuration>
-                  <target>
-                    <mkdir 
dir="${project.build.directory}/generated-sources/java/org/apache/flume"/>
-                    <exec executable="powershell">
-                      <arg
-                              line = "-executionpolicy unrestricted -file 
${basedir}\scripts\saveVersion.ps1  ${project.version} 
${project.build.directory}" />
-                    </exec>
-                  </target>
-                </configuration>
-                <goals>
-                  <goal>run</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
-
-          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>build-helper-maven-plugin</artifactId>
-            <version>${mvn-build-helper-plugin}</version>
-            <executions>
-              <execution>
-                <id>add-source</id>
-                <phase>generate-sources</phase>
-                <goals>
-                  <goal>add-source</goal>
-                </goals>
-                <configuration>
-                  <sources>
-                    <source>target/generated-sources/java</source>
-                  </sources>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-
-        </plugins>
-      </build>
-    </profile>
-
-  </profiles>
-
-
   <dependencies>
-
     <dependency>
       <groupId>org.apache.flume</groupId>
       <artifactId>flume-ng-sdk</artifactId>
     </dependency>
-
     <dependency>
       <groupId>org.apache.flume</groupId>
       <artifactId>flume-ng-sdk</artifactId>
       <classifier>tests</classifier>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>org.apache.flume</groupId>
       <artifactId>flume-ng-configuration</artifactId>
     </dependency>
-
     <dependency>
       <groupId>org.apache.flume</groupId>
       <artifactId>flume-ng-auth</artifactId>
     </dependency>
-
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
     </dependency>
-
     <dependency>
       <groupId>com.google.guava</groupId>
       <artifactId>guava</artifactId>
     </dependency>
-
     <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
     </dependency>
-
     <dependency>
       <groupId>commons-codec</groupId>
       <artifactId>commons-codec</artifactId>
     </dependency>
-
     <dependency>
       <groupId>com.jcraft</groupId>
       <artifactId>jzlib</artifactId>
     </dependency>
-
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>org.easytesting</groupId>
       <artifactId>fest-reflect</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-1.2-api</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-slf4j-impl</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-core</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>commons-cli</groupId>
       <artifactId>commons-cli</artifactId>
     </dependency>
-
     <dependency>
       <groupId>commons-lang</groupId>
       <artifactId>commons-lang</artifactId>
     </dependency>
-
     <dependency>
       <groupId>io.netty</groupId>
       <artifactId>netty-all</artifactId>
     </dependency>
-
     <dependency>
       <groupId>org.eclipse.jetty</groupId>
       <artifactId>jetty-servlet</artifactId>
     </dependency>
-
     <dependency>
       <groupId>org.eclipse.jetty</groupId>
       <artifactId>jetty-util</artifactId>
     </dependency>
-
     <dependency>
       <groupId>org.eclipse.jetty</groupId>
       <artifactId>jetty-server</artifactId>
     </dependency>
-
     <dependency>
       <groupId>org.eclipse.jetty</groupId>
       <artifactId>jetty-jmx</artifactId>
     </dependency>
-
     <dependency>
       <groupId>com.google.code.gson</groupId>
       <artifactId>gson</artifactId>
     </dependency>
-
     <dependency>
       <groupId>org.apache.httpcomponents</groupId>
       <artifactId>httpclient</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>org.apache.httpcomponents</groupId>
       <artifactId>httpcore</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
+      <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>org.apache.mina</groupId>
       <artifactId>mina-core</artifactId>
     </dependency>
-
     <dependency>
       <groupId>io.prometheus</groupId>
       <artifactId>simpleclient</artifactId>
     </dependency>
-
     <dependency>
       <groupId>io.prometheus</groupId>
       <artifactId>simpleclient_servlet</artifactId>
     </dependency>
-
   </dependencies>
-
+  <profiles>
+    <profile>
+      <id>not-windows</id>
+      <activation>
+        <os>
+          <family>!Windows</family>
+        </os>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-antrun-plugin</artifactId>
+            <version>${mvn-antrun-plugin.version}</version>
+            <executions>
+              <execution>
+                <id>generate-version</id>
+                <phase>generate-sources</phase>
+                <goals>
+                  <goal>run</goal>
+                </goals>
+                <configuration>
+                  <target>
+                    <mkdir 
dir="${project.build.directory}/generated-sources/java" />
+                    <exec executable="sh">
+                      <arg line="${basedir}/scripts/saveVersion.sh 
${project.version} ${project.build.directory}" />
+                    </exec>
+                  </target>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>build-helper-maven-plugin</artifactId>
+            <version>${mvn-build-helper-plugin}</version>
+            <executions>
+              <execution>
+                <id>add-source</id>
+                <phase>generate-sources</phase>
+                <goals>
+                  <goal>add-source</goal>
+                </goals>
+                <configuration>
+                  <sources>
+                    <source>target/generated-sources/java</source>
+                  </sources>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>windows</id>
+      <activation>
+        <os>
+          <family>Windows</family>
+        </os>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-antrun-plugin</artifactId>
+            <version>${mvn-antrun-plugin.version}</version>
+            <executions>
+              <execution>
+                <id>generate-version</id>
+                <phase>generate-sources</phase>
+                <goals>
+                  <goal>run</goal>
+                </goals>
+                <configuration>
+                  <target>
+                    <mkdir 
dir="${project.build.directory}/generated-sources/java/org/apache/flume" />
+                    <exec executable="powershell">
+                      <arg line="-executionpolicy unrestricted -file 
${basedir}\scripts\saveVersion.ps1  ${project.version} 
${project.build.directory}" />
+                    </exec>
+                  </target>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>build-helper-maven-plugin</artifactId>
+            <version>${mvn-build-helper-plugin}</version>
+            <executions>
+              <execution>
+                <id>add-source</id>
+                <phase>generate-sources</phase>
+                <goals>
+                  <goal>add-source</goal>
+                </goals>
+                <configuration>
+                  <sources>
+                    <source>target/generated-sources/java</source>
+                  </sources>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
 </project>
diff --git a/flume-ng-core/pom.xml b/flume-ng-core/pom.xml
index 2d2873bbf..a98a8ac80 100644
--- a/flume-ng-core/pom.xml
+++ b/flume-ng-core/pom.xml
@@ -287,7 +287,7 @@ limitations under the License.
 
     <dependency>
       <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
+      <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
 
diff --git 
a/flume-ng-core/src/test/java/org/apache/flume/sink/TestRollingFileSink.java 
b/flume-ng-core/src/test/java/org/apache/flume/sink/TestRollingFileSink.java
index 9e0b5d593..1faefa37e 100644
--- a/flume-ng-core/src/test/java/org/apache/flume/sink/TestRollingFileSink.java
+++ b/flume-ng-core/src/test/java/org/apache/flume/sink/TestRollingFileSink.java
@@ -31,12 +31,12 @@ import org.apache.flume.channel.PseudoTxnMemoryChannel;
 import org.apache.flume.conf.Configurables;
 import org.apache.flume.event.SimpleEvent;
 import org.apache.flume.instrumentation.SinkCounter;
+import org.apache.flume.util.Whitebox;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
-import org.mockito.internal.util.reflection.Whitebox;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git 
a/flume-ng-core/src/test/java/org/apache/flume/source/TestMultiportSyslogTCPSource.java
 
b/flume-ng-core/src/test/java/org/apache/flume/source/TestMultiportSyslogTCPSource.java
index 63e8100c0..84adaf8b7 100644
--- 
a/flume-ng-core/src/test/java/org/apache/flume/source/TestMultiportSyslogTCPSource.java
+++ 
b/flume-ng-core/src/test/java/org/apache/flume/source/TestMultiportSyslogTCPSource.java
@@ -66,7 +66,7 @@ import org.junit.Assert;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.mockito.Mockito;
-import org.mockito.internal.util.reflection.Whitebox;
+import org.apache.flume.util.Whitebox;
 
 import static java.time.ZoneOffset.UTC;
 import static org.junit.Assert.assertEquals;
@@ -550,7 +550,7 @@ public class TestMultiportSyslogTCPSource {
     List<Event> channelEvents = new ArrayList<>();
     ChannelProcessor cp = Mockito.mock(ChannelProcessor.class);
     doThrow(new ChannelException("dummy")).doNothing().when(cp)
-        .processEventBatch(anyListOf(Event.class));
+        .processEventBatch(anyList());
     List<Socket> socketList = new ArrayList<>();
     try {
       testNPorts(source, channel, channelEvents, 1, cp,
diff --git 
a/flume-ng-core/src/test/java/org/apache/flume/source/TestSequenceGeneratorSource.java
 
b/flume-ng-core/src/test/java/org/apache/flume/source/TestSequenceGeneratorSource.java
index a2a0832a2..50fa65d1c 100644
--- 
a/flume-ng-core/src/test/java/org/apache/flume/source/TestSequenceGeneratorSource.java
+++ 
b/flume-ng-core/src/test/java/org/apache/flume/source/TestSequenceGeneratorSource.java
@@ -89,7 +89,7 @@ public class TestSequenceGeneratorSource {
 
     ArgumentCaptor<Event> argumentCaptor = 
ArgumentCaptor.forClass(Event.class);
     Mockito.verify(cp, 
Mockito.times(6)).processEvent(argumentCaptor.capture());
-    Mockito.verify(cp, 
Mockito.never()).processEventBatch(Mockito.anyListOf(Event.class));
+    Mockito.verify(cp, Mockito.never()).processEventBatch(Mockito.anyList());
 
     verifyEventSequence(TOTAL_EVENTS, argumentCaptor.getAllValues());
   }
@@ -109,7 +109,7 @@ public class TestSequenceGeneratorSource {
         .doNothing()
         .doThrow(ChannelException.class) //failure injection on the second 
batch
         .doNothing()
-        .when(cp).processEventBatch(Mockito.anyListOf(Event.class));
+        .when(cp).processEventBatch(Mockito.anyList());
 
     source.setChannelProcessor(cp);
     source.start();
diff --git 
a/flume-ng-core/src/test/java/org/apache/flume/source/TestSyslogTcpSource.java 
b/flume-ng-core/src/test/java/org/apache/flume/source/TestSyslogTcpSource.java
index df4c760a5..18e40d67c 100644
--- 
a/flume-ng-core/src/test/java/org/apache/flume/source/TestSyslogTcpSource.java
+++ 
b/flume-ng-core/src/test/java/org/apache/flume/source/TestSyslogTcpSource.java
@@ -48,7 +48,7 @@ import java.util.Map;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doThrow;
 
 import javax.net.SocketFactory;
diff --git 
a/flume-ng-core/src/test/java/org/apache/flume/source/TestSyslogUdpSource.java 
b/flume-ng-core/src/test/java/org/apache/flume/source/TestSyslogUdpSource.java
index d5edaf95d..cef5b7794 100644
--- 
a/flume-ng-core/src/test/java/org/apache/flume/source/TestSyslogUdpSource.java
+++ 
b/flume-ng-core/src/test/java/org/apache/flume/source/TestSyslogUdpSource.java
@@ -47,7 +47,7 @@ import java.util.Map;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doThrow;
 
 public class TestSyslogUdpSource {
diff --git 
a/flume-ng-core/src/test/java/org/apache/flume/source/http/TestHTTPSource.java 
b/flume-ng-core/src/test/java/org/apache/flume/source/http/TestHTTPSource.java
index 273f9c15b..0218ed6d0 100644
--- 
a/flume-ng-core/src/test/java/org/apache/flume/source/http/TestHTTPSource.java
+++ 
b/flume-ng-core/src/test/java/org/apache/flume/source/http/TestHTTPSource.java
@@ -47,7 +47,7 @@ import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.mockito.Mockito;
-import org.mockito.internal.util.reflection.Whitebox;
+import org.apache.flume.util.Whitebox;
 
 import javax.management.MBeanServer;
 import javax.management.MalformedObjectNameException;
@@ -82,7 +82,7 @@ import java.util.Random;
 import java.util.Set;
 
 import static org.fest.reflect.core.Reflection.field;
-import static org.mockito.Matchers.anyListOf;
+import static org.mockito.ArgumentMatchers.anyList;
 import static org.mockito.Mockito.doThrow;
 
 /**
@@ -310,7 +310,7 @@ public class TestHTTPSource {
   @Test
   public void testCounterGenericFail() throws Exception {
     ChannelProcessor cp = Mockito.mock(ChannelProcessor.class);
-    doThrow(new 
RuntimeException("dummy")).when(cp).processEventBatch(anyListOf(Event.class));
+    doThrow(new 
RuntimeException("dummy")).when(cp).processEventBatch(anyList());
     ChannelProcessor oldCp = httpSource.getChannelProcessor();
     httpSource.setChannelProcessor(cp);
     testBatchWithVariousEncoding("UTF-8");
diff --git a/flume-ng-embedded-agent/pom.xml b/flume-ng-embedded-agent/pom.xml
index 515321118..c8517f507 100644
--- a/flume-ng-embedded-agent/pom.xml
+++ b/flume-ng-embedded-agent/pom.xml
@@ -90,7 +90,7 @@ limitations under the License.
 
     <dependency>
       <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
+      <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
 
diff --git a/flume-ng-node/pom.xml b/flume-ng-node/pom.xml
index f4c4b4c70..883895689 100644
--- a/flume-ng-node/pom.xml
+++ b/flume-ng-node/pom.xml
@@ -139,7 +139,7 @@
 
     <dependency>
       <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
+      <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
 
diff --git a/flume-ng-auth/pom.xml b/flume-ng-sdk/.flattened-pom.xml
similarity index 57%
copy from flume-ng-auth/pom.xml
copy to flume-ng-sdk/.flattened-pom.xml
index e213d7844..dcc896a0c 100644
--- a/flume-ng-auth/pom.xml
+++ b/flume-ng-sdk/.flattened-pom.xml
@@ -1,3 +1,4 @@
+<?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
@@ -14,79 +15,77 @@ 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";>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd"; 
xmlns="http://maven.apache.org/POM/4.0.0";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
   <modelVersion>4.0.0</modelVersion>
-
   <parent>
-    <artifactId>flume-parent</artifactId>
     <groupId>org.apache.flume</groupId>
+    <artifactId>flume-parent</artifactId>
     <version>2.0.0-SNAPSHOT</version>
     <relativePath>../flume-parent/pom.xml</relativePath>
   </parent>
-
-  <artifactId>flume-ng-auth</artifactId>
-  <name>Flume Auth</name>
-  <description>Flume Authentication</description>
-
+  <artifactId>flume-ng-sdk</artifactId>
+  <version>2.0.0-SNAPSHOT</version>
+  <name>Flume NG SDK</name>
+  <description>Flume Software Development Kit: Stable public API for 
integration with Flume 1.x</description>
+  
<url>https://logging.apache.org/logging-parent/flume-parent/flume-ng-sdk</url>
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+    </license>
+  </licenses>
   <properties>
-    <!-- TODO fix spotbugs/pmd violations -->
-    <spotbugs.maxAllowedViolations>1</spotbugs.maxAllowedViolations>
-    <pmd.maxAllowedViolations>7</pmd.maxAllowedViolations>
-    <module.name>org.apache.flume.auth</module.name>
+    <spotbugs.maxAllowedViolations>69</spotbugs.maxAllowedViolations>
+    <pmd.maxAllowedViolations>170</pmd.maxAllowedViolations>
+    <module.name>org.apache.flume.sdk</module.name>
   </properties>
-
   <dependencies>
-
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
     </dependency>
-
     <dependency>
-      <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-slf4j-impl</artifactId>
-      <scope>test</scope>
+      <groupId>com.google.guava</groupId>
+      <artifactId>guava</artifactId>
     </dependency>
-
     <dependency>
       <groupId>org.apache.logging.log4j</groupId>
-      <artifactId>log4j-1.2-api</artifactId>
+      <artifactId>log4j-slf4j-impl</artifactId>
       <scope>test</scope>
     </dependency>
-
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-common</artifactId>
-      <optional>true</optional>
-    </dependency>
-
     <dependency>
-      <groupId>org.apache.flume</groupId>
-      <artifactId>flume-ng-sdk</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-minikdc</artifactId>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-jul</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
-      <!-- add this to satisfy the dependency requirement of apacheds-jdbm1 in 
minikdc-->
-      <groupId>org.apache.directory.jdbm</groupId>
-      <artifactId>apacheds-jdbm1</artifactId>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-1.2-api</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>com.google.guava</groupId>
-      <artifactId>guava</artifactId>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
     </dependency>
-
   </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-jar-plugin</artifactId>
+        <executions>
+          <execution>
+            <goals>
+              <goal>test-jar</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 </project>
diff --git a/flume-ng-sdk/src/test/java/org/apache/flume/util/Whitebox.java 
b/flume-ng-sdk/src/test/java/org/apache/flume/util/Whitebox.java
new file mode 100644
index 000000000..859ed2501
--- /dev/null
+++ b/flume-ng-sdk/src/test/java/org/apache/flume/util/Whitebox.java
@@ -0,0 +1,32 @@
+/*
+ * 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.util;
+
+import org.apache.commons.lang.reflect.FieldUtils;
+
+public class Whitebox {
+    public static <T> T getInternalState(Object target, String fieldName) {
+        try {
+            return (T) FieldUtils.readField(target, fieldName, true);
+        } catch (IllegalAccessException ex) {
+            throw new RuntimeException("Unable to access field " + fieldName, 
ex);
+        }
+    }
+}
diff --git a/flume-ng-sources/flume-taildir-source/pom.xml 
b/flume-ng-sources/flume-taildir-source/pom.xml
index 8217aafd0..91a1a4a68 100644
--- a/flume-ng-sources/flume-taildir-source/pom.xml
+++ b/flume-ng-sources/flume-taildir-source/pom.xml
@@ -51,7 +51,7 @@ limitations under the License.
 
     <dependency>
       <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
+      <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
 
diff --git 
a/flume-ng-sources/flume-taildir-source/src/test/java/org/apache/flume/source/taildir/TestTaildirSource.java
 
b/flume-ng-sources/flume-taildir-source/src/test/java/org/apache/flume/source/taildir/TestTaildirSource.java
index a236f30c4..7a2012190 100644
--- 
a/flume-ng-sources/flume-taildir-source/src/test/java/org/apache/flume/source/taildir/TestTaildirSource.java
+++ 
b/flume-ng-sources/flume-taildir-source/src/test/java/org/apache/flume/source/taildir/TestTaildirSource.java
@@ -41,7 +41,7 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
-import org.mockito.internal.util.reflection.Whitebox;
+import org.apache.flume.util.Whitebox;
 
 import java.io.File;
 import java.io.IOException;
@@ -376,7 +376,7 @@ public class TestTaildirSource {
     ChannelProcessor cp = Mockito.mock(ChannelProcessor.class);
     source.setChannelProcessor(cp);
     doThrow(new ChannelException("dummy")).doNothing().when(cp)
-        .processEventBatch(anyListOf(Event.class));
+        .processEventBatch(anyList(Event.class));
     source.start();
     source.process();
     assertEquals(1, source.getSourceCounter().getChannelWriteFail());
diff --git a/flume-parent/pom.xml b/flume-parent/.flattened-pom.xml
similarity index 85%
copy from flume-parent/pom.xml
copy to flume-parent/.flattened-pom.xml
index 5997b66c4..3be918501 100644
--- a/flume-parent/pom.xml
+++ b/flume-parent/.flattened-pom.xml
@@ -15,686 +15,308 @@ 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";>
-
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
https://maven.apache.org/xsd/maven-4.0.0.xsd"; 
xmlns="http://maven.apache.org/POM/4.0.0";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
+  <modelVersion>4.0.0</modelVersion>
   <parent>
-    <groupId>org.apache</groupId>
-    <artifactId>apache</artifactId>
-    <version>23</version>
+    <groupId>org.apache.logging</groupId>
+    <artifactId>logging-parent</artifactId>
+    <version>12.1.1</version>
   </parent>
-
-  <modelVersion>4.0.0</modelVersion>
   <groupId>org.apache.flume</groupId>
   <artifactId>flume-parent</artifactId>
   <version>2.0.0-SNAPSHOT</version>
   <packaging>pom</packaging>
-
   <name>Apache Flume</name>
-
-  <properties>
-    <!-- Update for year of distribution. Should be set by the 
maven-release-plugin at release time. -->
-    
<project.build.outputTimestamp>2022-01-02T00:00:00Z</project.build.outputTimestamp>
-    <!-- Set default encoding to UTF-8 to remove maven complaints -->
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-
-    <!-- Java compiler configuration -->
-    <sourceJavaVersion>1.8</sourceJavaVersion>
-    <targetJavaVersion>1.8</targetJavaVersion>
-
-    <!-- Signing User for release -->
-    <GPGSigningUserName>[email protected]</GPGSigningUserName>
-
-    <!-- defaults for flaky test and focused test exclusions -->
-    <test.exclude.pattern>$</test.exclude.pattern> <!-- junk pattern -->
-    <test.include.pattern>**/Test*.java</test.include.pattern>
-    <stagingDirectory>${project.basedir}/target/docs</stagingDirectory>
-
-    <activemq.version>5.7.0</activemq.version>
-    <asynchbase.version>1.8.2</asynchbase.version>
-    <bundle-plugin.version>2.3.7</bundle-plugin.version>
-    <checkstyle.tool.version>8.45.1</checkstyle.tool.version>
-    <commons-cli.version>1.5.0</commons-cli.version>
-    <commons-codec.version>1.15</commons-codec.version>
-    <commons-collections.version>3.2.2</commons-collections.version>
-    <commons-compress.version>1.21</commons-compress.version>
-    <commons-io.version>2.11.0</commons-io.version>
-    <commons-lang.version>2.6</commons-lang.version>
-    <commons-text.version>1.10.0</commons-text.version>
-    <curator.version>5.1.0</curator.version>
-    <derby.version>10.14.2.0</derby.version>
-    <dropwizard-metrics.version>4.1.18</dropwizard-metrics.version>
-    <fasterxml.jackson.version>2.13.2</fasterxml.jackson.version>
-    
<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.9.1</gson.version>
-    <guava.version>29.0-jre</guava.version>
-    <guava-old.version>11.0.2</guava-old.version>
-    <hadoop3.version>3.2.2</hadoop3.version>
-    <hadoop.version>${hadoop3.version}</hadoop.version>
-    <hbase2.version>2.5.3-hadoop3</hbase2.version>
-    <hbase.version>${hbase2.version}</hbase.version>
-    <hive.version>3.1.2</hive.version>
-    <httpcore.version>4.4.15</httpcore.version>
-    <httpclient.version>4.5.13</httpclient.version>
-    <irclib.version>1.10</irclib.version>
-    <jersey.version>1.8</jersey.version>
-    <jetty.version>9.4.51.v20230217</jetty.version>
-    <jdom.version>1.1.3</jdom.version>
-    <joda-time.version>2.9.9</joda-time.version>
-    <junit.version>4.13.2</junit.version>
-    <kite.version>1.1.0</kite.version>
-    <kudu.version>1.10.0</kudu.version>
-    <lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
-    <log4j.version>2.18.0</log4j.version>
-    <mapdb.version>0.9.9</mapdb.version>
-    <mina.version>2.1.5</mina.version>
-    <mockito.version>1.9.0</mockito.version>
-    <mvn-antrun-plugin.version>1.8</mvn-antrun-plugin.version>
-    <!-- Do not upgrade the assumbly plugin version until MASSEMBLY-941 is 
fixed -->
-    <mvn-assembly-plugin.version>3.2.0</mvn-assembly-plugin.version>
-    <mvn-build-helper-plugin>3.0.0</mvn-build-helper-plugin>
-    <mvn-checkstyle-plugin.version>3.1.2</mvn-checkstyle-plugin.version>
-    <mvn-checksum-plugin.version>1.7</mvn-checksum-plugin.version>
-    <mvn-clean-plugin.version>3.1.0</mvn-clean-plugin.version>
-    <mvn-compiler-plugin.version>3.8.1</mvn-compiler-plugin.version>
-    <mvn-deploy-plugin.version>2.8.2</mvn-deploy-plugin.version>
-    <mvn-gpg-plugin.version>1.6</mvn-gpg-plugin.version>
-    <mvn-jar-plugin.version>3.2.2</mvn-jar-plugin.version>
-    <mvn-javadoc-plugin.version>3.2.0</mvn-javadoc-plugin.version>
-    <mvn-paranamer-plugin.version>2.8</mvn-paranamer-plugin.version>
-    <mvn-pmd-plugin.version>3.15.0</mvn-pmd-plugin.version>
-    <mvn-site-plugin.version>3.9.0</mvn-site-plugin.version>
-    <mvn-spotbugs-plugin.version>4.2.0</mvn-spotbugs-plugin.version>
-    <mvn-surefire-plugin.version>2.22.2</mvn-surefire-plugin.version>
-    <!--<netty.version>3.10.6.Final</netty.version>-->
-    <netty-all.version>4.1.86.Final</netty-all.version>
-    <parquet.version>1.11.2</parquet.version>
-    <external.protobuf.version>2.5.0</external.protobuf.version>
-    <protobuf.plugin.version>0.6.1</protobuf.plugin.version>
-    <prometheus.version>0.15.0</prometheus.version>
-    <rat.version>0.12</rat.version>
-    <scala.version>2.13</scala.version>
-    <scala-library.version>2.13.9</scala-library.version>
-    <snappy-java.version>1.1.8.4</snappy-java.version>
-    <solr-global.version>4.3.0</solr-global.version>
-    <slf4j.version>1.7.32</slf4j.version>
-    <system-rules.version>1.17.0</system-rules.version>
-    <twitter-source.version>2.0.0</twitter-source.version>
-    <wiremock.version>1.53</wiremock.version>
-    <zlib.version>1.1.3</zlib.version>
-    <zookeeper.version>3.6.2</zookeeper.version>
-    <os.maven.version>1.5.0.Final</os.maven.version>
-    <redirectTestOutput>true</redirectTestOutput>
-    <checkstyle.skip>true</checkstyle.skip>
-  </properties>
-
-  <profiles>
-
-    <profile>
-      <id>not-windows</id>
-      <activation>
-        <os>
-          <family>!Windows</family>
-        </os>
-      </activation>
-    </profile>
-
-    <profile>
-      <id>windows</id>
-      <activation>
-        <os>
-          <family>Windows</family>
-        </os>
-      </activation>
-    </profile>
-
-    <profile>
-      <id>sign</id>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-gpg-plugin</artifactId>
-            <executions>
-              <execution>
-                <phase>verify</phase>
-                <goals>
-                  <goal>sign</goal>
-                </goals>
-                <configuration>
-                  <keyname>${GPGSigningUserName}</keyname>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-
-    <profile>
-      <id>site</id>
-
-      <build>
-        <plugins>
-          <plugin>
-            <artifactId>maven-javadoc-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>javadoc-jar</id>
-                <phase>package</phase>
-                <goals>
-                  <goal>aggregate-jar</goal>
-                </goals>
-              </execution>
-            </executions>
-            <configuration>
-              <additionalparam>-Xdoclint:none</additionalparam>
-            </configuration>
-          </plugin>
-
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-site-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>flume-site</id>
-                <phase>package</phase>
-                <goals>
-                  <goal>site</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-
-    </profile>
-
-    <profile>
-      <id>skipChecks</id>
-      <properties>
-        <checkstyle.skip>true</checkstyle.skip>
-        <spotbugs.skip>true</spotbugs.skip>
-        <pmd.skip>true</pmd.skip>
-        <rat.skip>true</rat.skip>
-      </properties>
-
-    </profile>
-  </profiles>
-
+  <url>https://logging.apache.org/logging-parent/flume-parent</url>
   <inceptionYear>2009</inceptionYear>
-
-  <issueManagement>
-    <system>JIRA</system>
-    <url>https://issues.apache.org/jira/browse/FLUME</url>
-  </issueManagement>
-
+  <organization>
+    <name>Apache Software Foundation</name>
+    <url>http://www.apache.org</url>
+  </organization>
   <licenses>
     <license>
       <name>The Apache Software License, Version 2.0</name>
       <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
     </license>
   </licenses>
-
-  <mailingLists>
-    <mailingList>
-      <archive>http://mail-archives.apache.org/mod_mbox/flume-user/</archive>
-      <name>Flume User List</name>
-      <post>[email protected]</post>
-      <subscribe>[email protected]</subscribe>
-      <unsubscribe>[email protected]</unsubscribe>
-    </mailingList>
-    <mailingList>
-      <archive>http://mail-archives.apache.org/mod_mbox/flume-dev/</archive>
-      <name>Flume Developer List</name>
-      <post>[email protected]</post>
-      <subscribe>[email protected]</subscribe>
-      <unsubscribe>[email protected]</unsubscribe>
-    </mailingList>
-    <mailingList>
-      
<archive>http://mail-archives.apache.org/mod_mbox/flume-commits/</archive>
-      <name>Flume Commits</name>
-      <post>[email protected]</post>
-      <subscribe>[email protected]</subscribe>
-      <unsubscribe>[email protected]</unsubscribe>
-    </mailingList>
-  </mailingLists>
-
-  <scm>
-    
<url>https://git-wip-us.apache.org/repos/asf?p=flume.git;a=tree;h=refs/heads/trunk;hb=trunk</url>
-    
<developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/flume.git</developerConnection>
-    
<connection>scm:git:http://git-wip-us.apache.org/repos/asf/flume.git</connection>
-  </scm>
-
-  <ciManagement>
-    <system>jenkins</system>
-    <url>https://builds.apache.org/job/flume-trunk</url>
-  </ciManagement>
-
   <developers>
     <developer>
-      <name>Andrew Bayer</name>
       <id>abayer</id>
+      <name>Andrew Bayer</name>
       <email>[email protected]</email>
       <organization>Cloudera</organization>
     </developer>
     <developer>
-      <name>Ahmed Radwan</name>
       <id>ahmed</id>
+      <name>Ahmed Radwan</name>
       <email>[email protected]</email>
       <organization>Cloudera</organization>
     </developer>
     <developer>
-      <name>Arvind Prabhakar</name>
       <id>arvind</id>
+      <name>Arvind Prabhakar</name>
       <email>[email protected]</email>
       <organization>Cloudera</organization>
     </developer>
     <developer>
-      <name>Brock Noland</name>
       <id>brock</id>
+      <name>Brock Noland</name>
       <email>[email protected]</email>
       <organization>Cloudera</organization>
     </developer>
     <developer>
-      <name>Bruce Mitchener</name>
       <id>brucem</id>
+      <name>Bruce Mitchener</name>
       <email>[email protected]</email>
       <organization>-</organization>
     </developer>
     <developer>
-      <name>Derek Deeter</name>
       <id>ddeeter</id>
+      <name>Derek Deeter</name>
       <email>[email protected]</email>
       <organization>Intuit</organization>
     </developer>
     <developer>
-      <name>Eric Sammer</name>
       <id>esammer</id>
+      <name>Eric Sammer</name>
       <email>[email protected]</email>
       <organization>Cloudera</organization>
     </developer>
-    <developer>
-      <name>Henry Robinson</name>
-      <id>henry</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Hari Shreedharan</name>
-      <id>hshreedharan</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Jaroslav Cecho</name>
-      <id>jarcec</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Jonathan Hsieh</name>
-      <id>jmhsieh</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Juhani Connolly</name>
-      <id>juhanic</id>
-      <email>[email protected]</email>
-      <organization>CyberAgent</organization>
-    </developer>
-    <developer>
-      <name>Aaron Kimball</name>
-      <id>kimballa</id>
-      <email>[email protected]</email>
-      <organization>Odiago</organization>
-    </developer>
-    <developer>
-      <name>Mingjie Lai</name>
-      <id>mlai</id>
-      <email>[email protected]</email>
-      <organization>Trend Micro</organization>
-    </developer>
-    <developer>
-      <name>Mike Percy</name>
-      <id>mpercy</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Nick Verbeck</name>
-      <id>nerdynick</id>
-      <email>[email protected]</email>
-      <organization>-</organization>
-    </developer>
-    <developer>
-      <name>Patrick Hunt</name>
-      <id>phunt</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Prasad Mujumdar</name>
-      <id>prasadm</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Ralph Goers</name>
-      <id>rgoers</id>
-      <email>[email protected]</email>
-      <organization>Intuit</organization>
-    </developer>
-    <developer>
-      <name>Will McQueen</name>
-      <id>will</id>
-      <email>[email protected]</email>
-      <organization>Cloudera</organization>
-    </developer>
-    <developer>
-      <name>Roshan</name>
-      <id>roshannaik</id>
-      <email>[email protected]</email>
-      <organization>Hortonworks</organization>
-    </developer>
-  </developers>
-
-  <organization>
-    <name>Apache Software Foundation</name>
-    <url>http://www.apache.org</url>
-  </organization>
-
-  <build>
-    <extensions>
-      <extension>
-        <groupId>kr.motd.maven</groupId>
-        <artifactId>os-maven-plugin</artifactId>
-        <version>${os.maven.version}</version>
-      </extension>
-    </extensions>
-    <plugins>
-
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>com.github.spotbugs</groupId>
-        <artifactId>spotbugs-maven-plugin</artifactId>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-pmd-plugin</artifactId>
-      </plugin>
-    </plugins>
-
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-antrun-plugin</artifactId>
-          <version>${mvn-antrun-plugin.version}</version>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-gpg-plugin</artifactId>
-          <version>${mvn-gpg-plugin.version}</version>
-          <configuration>
-              <excludes>
-                  <exclude>**/*.sha512</exclude>
-              </excludes>
-            <keyname>${GPGSigningUserName}</keyname>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-compiler-plugin</artifactId>
-          <version>${mvn-compiler-plugin.version}</version>
-          <configuration>
-            <source>${sourceJavaVersion}</source>
-            <target>${targetJavaVersion}</target>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-jar-plugin</artifactId>
-          <version>${mvn-jar-plugin.version}</version>
-          <executions>
-            <execution>
-              <id>default-jar</id>
-              <goals>
-                <goal>jar</goal>
-              </goals>
-              <configuration>
-                <archive>
-                  <manifestEntries>
-                    <Specification-Title>${project.name}</Specification-Title>
-                    
<Specification-Version>${project.version}</Specification-Version>
-                    
<Specification-Vendor>${project.organization.name}</Specification-Vendor>
-                    
<Implementation-Title>${project.name}</Implementation-Title>
-                    
<Implementation-Version>${project.version}</Implementation-Version>
-                    
<Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
-                    
<Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
-                    
<X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK>
-                    
<X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK>
-                    
<Automatic-Module-Name>${module.name}</Automatic-Module-Name>
-                  </manifestEntries>
-                </archive>
-              </configuration>
-            </execution>
-          </executions>
-        </plugin>
-        <plugin>
-          <groupId>org.xolstice.maven.plugins</groupId>
-          <artifactId>protobuf-maven-plugin</artifactId>
-          <version>${protobuf.plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <version>${mvn-surefire-plugin.version}</version>
-          <configuration>
-            <reuseForks>false</reuseForks>
-            <forkCount>1</forkCount>
-            <!--<rerunFailingTestsCount>10</rerunFailingTestsCount>-->
-            <forkedProcessTimeoutInSeconds>900</forkedProcessTimeoutInSeconds>
-            
<redirectTestOutputToFile>${redirectTestOutput}</redirectTestOutputToFile>
-            <argLine>-Djava.net.preferIPv4Stack=true</argLine>
-            <includes>
-              <include>${test.include.pattern}</include>
-            </includes>
-            <excludes>
-              <exclude>**/*$*</exclude>
-              <exclude>${test.exclude.pattern}</exclude>
-            </excludes>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.rat</groupId>
-          <artifactId>apache-rat-plugin</artifactId>
-          <version>${rat.version}</version>
-          <configuration>
-            <excludes>
-              <exclude>**/.idea/</exclude>
-              <exclude>**/*.iml</exclude>
-              <exclude>src/main/resources/META-INF/services/**/*</exclude>
-              <exclude>**/nb-configuration.xml</exclude>
-              <exclude>.git/</exclude>
-              <exclude>patchprocess/</exclude>
-              <exclude>.gitignore</exclude>
-              <exclude>**/*.yml</exclude>
-              <exclude>**/*.yaml</exclude>
-              <exclude>**/*.json</exclude>
-              <!-- ASF jenkins box puts the Maven repo in our root directory. 
-->
-              <exclude>.repository/</exclude>
-              <exclude>**/*.diff</exclude>
-              <exclude>**/*.patch</exclude>
-              <exclude>**/*.avsc</exclude>
-              <exclude>**/*.avro</exclude>
-              <exclude>**/docs/**</exclude>
-              <exclude>**/test/resources/**</exclude>
-              <exclude>**/.settings/*</exclude>
-              <exclude>**/.classpath</exclude>
-              <exclude>**/.project</exclude>
-              <exclude>**/target/**</exclude>
-              <exclude>**/derby.log</exclude>
-              <exclude>**/metastore_db/</exclude>
-              <exclude>.mvn/**</exclude>
-              <exclude>**/exclude-pmd.properties</exclude>
-            </excludes>
-            <consoleOutput>true</consoleOutput>
-          </configuration>
-          <executions>
-            <execution>
-              <id>verify.rat</id>
-              <phase>verify</phase>
-              <goals>
-                <goal>check</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-javadoc-plugin</artifactId>
-          <version>${mvn-javadoc-plugin.version}</version>
-          <configuration>
-            
<outputDirectory>${project.build.directory}/site/apidocs</outputDirectory>
-            <!-- switch on dependency-driven aggregation -->
-            <includeDependencySources>true</includeDependencySources>
-
-            <dependencySourceIncludes>
-              <!-- include ONLY flume multi-module dependencies -->
-              
<dependencySourceInclude>org.apache.flume:*</dependencySourceInclude>
-            </dependencySourceIncludes>
-            <additionalparam>-Xdoclint:none</additionalparam>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-assembly-plugin</artifactId>
-          <version>${mvn-assembly-plugin.version}</version>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-site-plugin</artifactId>
-          <version>${mvn-site-plugin.version}</version>
-          <configuration>
-            <siteDirectory>${project.basedir}/flume-ng-doc</siteDirectory>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <artifactId>maven-clean-plugin</artifactId>
-          <version>${mvn-clean-plugin.version}</version>
-          <configuration>
-            <filesets>
-              <fileset>
-                <directory>docs</directory>
-                <includes>
-                  <include>**</include>
-                </includes>
-              </fileset>
-            </filesets>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <groupId>com.github.spotbugs</groupId>
-          <artifactId>spotbugs-maven-plugin</artifactId>
-          <version>${mvn-spotbugs-plugin.version}</version>
-          <executions>
-            <execution>
-              <id>verify.spotbugs</id>
-              <phase>verify</phase>
-              <goals>
-                <goal>check</goal>
-              </goals>
-            </execution>
-          </executions>
-          <configuration>
-            <effort>Max</effort>
-            <threshold>Low</threshold>
-          </configuration>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-pmd-plugin</artifactId>
-          <version>${mvn-pmd-plugin.version}</version>
-          <configuration>
-            <targetJdk>${targetJavaVersion}</targetJdk>
-            <excludeRoots>
-              
<excludeRoot>${project.build.directory}/generated-sources</excludeRoot>
-            </excludeRoots>
-          </configuration>
-          <executions>
-            <execution>
-              <id>verify.pmd</id>
-              <phase>verify</phase>
-              <goals>
-                <goal>check</goal>
-              </goals>
-            </execution>
-          </executions>
-        </plugin>
-
-        <plugin>
-          <groupId>net.nicoulaj.maven.plugins</groupId>
-          <artifactId>checksum-maven-plugin</artifactId>
-          <version>${mvn-checksum-plugin.version}</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-
-  </build>
-
+    <developer>
+      <id>henry</id>
+      <name>Henry Robinson</name>
+      <email>[email protected]</email>
+      <organization>Cloudera</organization>
+    </developer>
+    <developer>
+      <id>hshreedharan</id>
+      <name>Hari Shreedharan</name>
+      <email>[email protected]</email>
+      <organization>Cloudera</organization>
+    </developer>
+    <developer>
+      <id>jarcec</id>
+      <name>Jaroslav Cecho</name>
+      <email>[email protected]</email>
+      <organization>Cloudera</organization>
+    </developer>
+    <developer>
+      <id>jmhsieh</id>
+      <name>Jonathan Hsieh</name>
+      <email>[email protected]</email>
+      <organization>Cloudera</organization>
+    </developer>
+    <developer>
+      <id>juhanic</id>
+      <name>Juhani Connolly</name>
+      <email>[email protected]</email>
+      <organization>CyberAgent</organization>
+    </developer>
+    <developer>
+      <id>kimballa</id>
+      <name>Aaron Kimball</name>
+      <email>[email protected]</email>
+      <organization>Odiago</organization>
+    </developer>
+    <developer>
+      <id>mlai</id>
+      <name>Mingjie Lai</name>
+      <email>[email protected]</email>
+      <organization>Trend Micro</organization>
+    </developer>
+    <developer>
+      <id>mpercy</id>
+      <name>Mike Percy</name>
+      <email>[email protected]</email>
+      <organization>Cloudera</organization>
+    </developer>
+    <developer>
+      <id>nerdynick</id>
+      <name>Nick Verbeck</name>
+      <email>[email protected]</email>
+      <organization>-</organization>
+    </developer>
+    <developer>
+      <id>phunt</id>
+      <name>Patrick Hunt</name>
+      <email>[email protected]</email>
+      <organization>Cloudera</organization>
+    </developer>
+    <developer>
+      <id>prasadm</id>
+      <name>Prasad Mujumdar</name>
+      <email>[email protected]</email>
+      <organization>Cloudera</organization>
+    </developer>
+    <developer>
+      <id>rgoers</id>
+      <name>Ralph Goers</name>
+      <email>[email protected]</email>
+      <organization>Intuit</organization>
+    </developer>
+    <developer>
+      <id>will</id>
+      <name>Will McQueen</name>
+      <email>[email protected]</email>
+      <organization>Cloudera</organization>
+    </developer>
+    <developer>
+      <id>roshannaik</id>
+      <name>Roshan</name>
+      <email>[email protected]</email>
+      <organization>Hortonworks</organization>
+    </developer>
+  </developers>
+  <mailingLists>
+    <mailingList>
+      <name>Flume User List</name>
+      <subscribe>[email protected]</subscribe>
+      <unsubscribe>[email protected]</unsubscribe>
+      <post>[email protected]</post>
+      <archive>http://mail-archives.apache.org/mod_mbox/flume-user/</archive>
+    </mailingList>
+    <mailingList>
+      <name>Flume Developer List</name>
+      <subscribe>[email protected]</subscribe>
+      <unsubscribe>[email protected]</unsubscribe>
+      <post>[email protected]</post>
+      <archive>http://mail-archives.apache.org/mod_mbox/flume-dev/</archive>
+    </mailingList>
+    <mailingList>
+      <name>Flume Commits</name>
+      <subscribe>[email protected]</subscribe>
+      <unsubscribe>[email protected]</unsubscribe>
+      <post>[email protected]</post>
+      
<archive>http://mail-archives.apache.org/mod_mbox/flume-commits/</archive>
+    </mailingList>
+  </mailingLists>
+  <scm>
+    
<connection>scm:git:http://git-wip-us.apache.org/repos/asf/flume.git</connection>
+    
<developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/flume.git</developerConnection>
+    
<url>https://git-wip-us.apache.org/repos/asf?p=flume.git;a=tree;h=refs/heads/trunk;hb=trunk</url>
+  </scm>
+  <issueManagement>
+    <system>JIRA</system>
+    <url>https://issues.apache.org/jira/browse/FLUME</url>
+  </issueManagement>
+  <ciManagement>
+    <system>jenkins</system>
+    <url>https://builds.apache.org/job/flume-trunk</url>
+  </ciManagement>
+  <properties>
+    <spotbugs-annotations.version>4.2.0</spotbugs-annotations.version>
+    <wiremock.version>1.53</wiremock.version>
+    <stagingDirectory>${project.basedir}/target/docs</stagingDirectory>
+    <external.protobuf.version>2.5.0</external.protobuf.version>
+    <os.maven.version>1.5.0.Final</os.maven.version>
+    <hbase2.version>2.5.3-hadoop3</hbase2.version>
+    <slf4j.version>1.7.32</slf4j.version>
+    <rat.version>0.12</rat.version>
+    <log4j.version>2.18.0</log4j.version>
+    <commons-codec.version>1.15</commons-codec.version>
+    <system-rules.version>1.17.0</system-rules.version>
+    <mvn-compiler-plugin.version>3.8.1</mvn-compiler-plugin.version>
+    <hadoop3.version>3.2.2</hadoop3.version>
+    <checkstyle.tool.version>8.45.1</checkstyle.tool.version>
+    <commons-compress.version>1.21</commons-compress.version>
+    <checkstyle.skip>true</checkstyle.skip>
+    <bundle-plugin.version>2.3.7</bundle-plugin.version>
+    <kudu.version>1.10.0</kudu.version>
+    <lifecycle-mapping.version>1.0.0</lifecycle-mapping.version>
+    <jersey.version>1.8</jersey.version>
+    <activemq.version>5.7.0</activemq.version>
+    <scala-library.version>2.13.9</scala-library.version>
+    
<fasterxml.jackson.databind.version>2.13.2.1</fasterxml.jackson.databind.version>
+    <httpclient.version>4.5.13</httpclient.version>
+    <mvn-checksum-plugin.version>1.7</mvn-checksum-plugin.version>
+    <zlib.version>1.1.3</zlib.version>
+    <gson.version>2.9.1</gson.version>
+    <mvn-jar-plugin.version>3.2.2</mvn-jar-plugin.version>
+    <mvn-paranamer-plugin.version>2.8</mvn-paranamer-plugin.version>
+    <commons-io.version>2.11.0</commons-io.version>
+    <test.include.pattern>**/Test*.java</test.include.pattern>
+    <mina.version>2.1.5</mina.version>
+    <mvn-javadoc-plugin.version>3.2.0</mvn-javadoc-plugin.version>
+    <hive.version>3.1.2</hive.version>
+    <parquet.version>1.11.2</parquet.version>
+    <mockito.version>1.9.0</mockito.version>
+    <httpcore.version>4.4.15</httpcore.version>
+    <guava-old.version>11.0.2</guava-old.version>
+    <hbase.version>${hbase2.version}</hbase.version>
+    <commons-text.version>1.10.0</commons-text.version>
+    
<project.build.outputTimestamp>2022-01-02T00:00:00Z</project.build.outputTimestamp>
+    <joda-time.version>2.9.9</joda-time.version>
+    <fest-reflect.version>1.4</fest-reflect.version>
+    <mvn-build-helper-plugin>3.0.0</mvn-build-helper-plugin>
+    <kite.version>1.1.0</kite.version>
+    <zookeeper.version>3.6.2</zookeeper.version>
+    <fasterxml.jackson.version>2.13.2</fasterxml.jackson.version>
+    <hadoop.version>${hadoop3.version}</hadoop.version>
+    <junit.version>4.13.2</junit.version>
+    <mvn-pmd-plugin.version>3.15.0</mvn-pmd-plugin.version>
+    <commons-collections.version>3.2.2</commons-collections.version>
+    <mvn-site-plugin.version>3.9.0</mvn-site-plugin.version>
+    <protobuf.plugin.version>0.6.1</protobuf.plugin.version>
+    <commons-cli.version>1.5.0</commons-cli.version>
+    <twitter-source.version>2.0.0</twitter-source.version>
+    <netty-all.version>4.1.86.Final</netty-all.version>
+    <commons-lang.version>2.6</commons-lang.version>
+    <mapdb.version>0.9.9</mapdb.version>
+    <mvn-deploy-plugin.version>2.8.2</mvn-deploy-plugin.version>
+    <scala.version>2.13</scala.version>
+    <GPGSigningUserName>[email protected]</GPGSigningUserName>
+    <curator.version>5.1.0</curator.version>
+    <mvn-gpg-plugin.version>1.6</mvn-gpg-plugin.version>
+    <mvn-antrun-plugin.version>1.8</mvn-antrun-plugin.version>
+    <asynchbase.version>1.8.2</asynchbase.version>
+    <jdom.version>1.1.3</jdom.version>
+    <jetty.version>9.4.51.v20230217</jetty.version>
+    <guava.version>29.0-jre</guava.version>
+    <test.exclude.pattern>$</test.exclude.pattern>
+    <mvn-assembly-plugin.version>3.2.0</mvn-assembly-plugin.version>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <geronimo-jms.version>1.1.1</geronimo-jms.version>
+    <mvn-checkstyle-plugin.version>3.1.2</mvn-checkstyle-plugin.version>
+    <irclib.version>1.10</irclib.version>
+    <redirectTestOutput>true</redirectTestOutput>
+    <dropwizard-metrics.version>4.1.18</dropwizard-metrics.version>
+    <snappy-java.version>1.1.8.4</snappy-java.version>
+    <derby.version>10.14.2.0</derby.version>
+    <prometheus.version>0.15.0</prometheus.version>
+    <solr-global.version>4.3.0</solr-global.version>
+    <mvn-clean-plugin.version>3.1.0</mvn-clean-plugin.version>
+  </properties>
   <dependencyManagement>
     <dependencies>
-      <!-- Dependencies: build -->
       <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>${junit.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.mockito</groupId>
-        <artifactId>mockito-all</artifactId>
+        <artifactId>mockito-core</artifactId>
         <version>${mockito.version}</version>
         <scope>test</scope>
       </dependency>
-
       <dependency>
         <groupId>org.easytesting</groupId>
         <artifactId>fest-reflect</artifactId>
         <version>${fest-reflect.version}</version>
         <scope>test</scope>
       </dependency>
-
       <dependency>
         <groupId>com.github.stefanbirkner</groupId>
         <artifactId>system-rules</artifactId>
         <version>${system-rules.version}</version>
         <scope>test</scope>
       </dependency>
-
       <dependency>
         <groupId>org.apache.flume</groupId>
         <artifactId>flume-rpc-avro</artifactId>
         <version>${project.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.hadoop</groupId>
         <artifactId>hadoop-minikdc</artifactId>
@@ -710,232 +332,190 @@ limitations under the License.
             <artifactId>slf4j-log4j12</artifactId>
           </exclusion>
           <exclusion>
-            <!-- exclude this from hadoop minikdc as the minikdc depends on
-            the apacheds-jdbm1 bundle, which is not available in maven 
central-->
             <groupId>org.apache.directory.jdbm</groupId>
             <artifactId>apacheds-jdbm1</artifactId>
           </exclusion>
         </exclusions>
       </dependency>
       <dependency>
-        <!-- add this to satisfy the dependency requirement of apacheds-jdbm1 
in minikdc-->
         <groupId>org.apache.directory.jdbm</groupId>
         <artifactId>apacheds-jdbm1</artifactId>
         <version>2.0.0-M2</version>
         <scope>test</scope>
       </dependency>
-
-      <!-- Dependencies: compile -->
-
       <dependency>
         <groupId>commons-cli</groupId>
         <artifactId>commons-cli</artifactId>
         <version>${commons-cli.version}</version>
       </dependency>
-
       <dependency>
         <groupId>commons-lang</groupId>
         <artifactId>commons-lang</artifactId>
         <version>${commons-lang.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-text</artifactId>
         <version>${commons-text.version}</version>
       </dependency>
-
       <dependency>
         <groupId>com.google.guava</groupId>
         <artifactId>guava</artifactId>
         <version>${guava.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-api</artifactId>
         <version>${log4j.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-core</artifactId>
         <version>${log4j.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-slf4j-impl</artifactId>
         <version>${log4j.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-1.2-api</artifactId>
         <version>${log4j.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-jcl</artifactId>
         <version>${log4j.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-jul</artifactId>
         <version>${log4j.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-api</artifactId>
         <version>${slf4j.version}</version>
       </dependency>
-
       <dependency>
         <groupId>com.google.protobuf</groupId>
         <artifactId>protobuf-java</artifactId>
-        <scope>compile</scope>
         <version>${external.protobuf.version}</version>
+        <scope>compile</scope>
       </dependency>
-
       <dependency>
         <groupId>org.eclipse.jetty</groupId>
         <artifactId>jetty-servlet</artifactId>
         <version>${jetty.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.eclipse.jetty</groupId>
         <artifactId>jetty-util</artifactId>
         <version>${jetty.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.eclipse.jetty</groupId>
         <artifactId>jetty-server</artifactId>
         <version>${jetty.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.eclipse.jetty</groupId>
         <artifactId>jetty-jmx</artifactId>
         <version>${jetty.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.httpcomponents</groupId>
         <artifactId>httpclient</artifactId>
         <version>${httpclient.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.httpcomponents</groupId>
         <artifactId>httpcore</artifactId>
         <version>${httpcore.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.mapdb</groupId>
         <artifactId>mapdb</artifactId>
         <version>${mapdb.version}</version>
       </dependency>
-
-      <!--  Gson: Java to Json conversion -->
       <dependency>
         <groupId>com.google.code.gson</groupId>
         <artifactId>gson</artifactId>
         <version>${gson.version}</version>
       </dependency>
-
       <dependency>
         <groupId>commons-codec</groupId>
         <artifactId>commons-codec</artifactId>
         <version>${commons-codec.version}</version>
       </dependency>
-
       <dependency>
         <groupId>commons-io</groupId>
         <artifactId>commons-io</artifactId>
         <version>${commons-io.version}</version>
       </dependency>
-
       <dependency>
         <groupId>commons-collections</groupId>
         <artifactId>commons-collections</artifactId>
         <version>${commons-collections.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.derby</groupId>
         <artifactId>derby</artifactId>
         <version>${derby.version}</version>
       </dependency>
-
       <dependency>
         <groupId>com.fasterxml.jackson.core</groupId>
         <artifactId>jackson-annotations</artifactId>
         <version>${fasterxml.jackson.version}</version>
       </dependency>
-
       <dependency>
         <groupId>com.fasterxml.jackson.core</groupId>
         <artifactId>jackson-core</artifactId>
         <version>${fasterxml.jackson.version}</version>
       </dependency>
-
       <dependency>
         <groupId>com.fasterxml.jackson.core</groupId>
         <artifactId>jackson-databind</artifactId>
         <version>${fasterxml.jackson.databind.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.schwering</groupId>
         <artifactId>irclib</artifactId>
         <version>${irclib.version}</version>
       </dependency>
-
       <dependency>
         <groupId>joda-time</groupId>
         <artifactId>joda-time</artifactId>
         <version>${joda-time.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.geronimo.specs</groupId>
         <artifactId>geronimo-jms_1.1_spec</artifactId>
         <version>${geronimo-jms.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>activemq-core</artifactId>
         <version>${activemq.version}</version>
       </dependency>
-
       <dependency>
         <groupId>com.jcraft</groupId>
         <artifactId>jzlib</artifactId>
         <version>${zlib.version}</version>
       </dependency>
-
-      <!-- internal module dependencies -->
       <dependency>
         <groupId>org.apache.flume</groupId>
         <artifactId>flume-dependencies</artifactId>
         <version>${project.version}</version>
-        <scope>import</scope>
         <type>pom</type>
+        <scope>import</scope>
       </dependency>
-
       <dependency>
         <groupId>org.apache.flume</groupId>
         <artifactId>build-support</artifactId>
         <version>${project.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.flume</groupId>
         <artifactId>flume-ng-sdk</artifactId>
@@ -943,25 +523,21 @@ limitations under the License.
         <classifier>tests</classifier>
         <scope>test</scope>
       </dependency>
-
       <dependency>
         <groupId>com.sun.jersey</groupId>
         <artifactId>jersey-core</artifactId>
         <version>${jersey.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.commons</groupId>
         <artifactId>commons-compress</artifactId>
         <version>${commons-compress.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.mina</groupId>
         <artifactId>mina-core</artifactId>
         <version>${mina.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.hbase</groupId>
         <artifactId>asynchbase</artifactId>
@@ -977,43 +553,31 @@ limitations under the License.
           </exclusion>
         </exclusions>
       </dependency>
-
-      <!--<dependency>
-        <groupId>io.netty</groupId>
-        <artifactId>netty</artifactId>
-        <version>${netty.version}</version>
-      </dependency>-->
-
       <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-all</artifactId>
         <version>${netty-all.version}</version>
       </dependency>
-
       <dependency>
         <groupId>io.prometheus</groupId>
         <artifactId>simpleclient</artifactId>
         <version>${prometheus.version}</version>
       </dependency>
-
       <dependency>
         <groupId>io.prometheus</groupId>
         <artifactId>simpleclient_servlet</artifactId>
         <version>${prometheus.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.solr</groupId>
         <artifactId>solr-cell</artifactId>
         <version>${solr-global.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.xerial.snappy</groupId>
         <artifactId>snappy-java</artifactId>
         <version>${snappy-java.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.hive.hcatalog</groupId>
         <artifactId>hive-hcatalog-streaming</artifactId>
@@ -1029,7 +593,6 @@ limitations under the License.
           </exclusion>
         </exclusions>
       </dependency>
-
       <dependency>
         <groupId>org.apache.hive.hcatalog</groupId>
         <artifactId>hive-hcatalog-core</artifactId>
@@ -1045,7 +608,6 @@ limitations under the License.
           </exclusion>
         </exclusions>
       </dependency>
-
       <dependency>
         <groupId>org.apache.hive</groupId>
         <artifactId>hive-cli</artifactId>
@@ -1061,32 +623,26 @@ limitations under the License.
           </exclusion>
         </exclusions>
       </dependency>
-
-      <!-- Dependency for Zk provider -->
       <dependency>
         <groupId>org.apache.curator</groupId>
         <artifactId>curator-framework</artifactId>
         <version>${curator.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.curator</groupId>
         <artifactId>curator-recipes</artifactId>
         <version>${curator.version}</version>
       </dependency>
-
       <dependency>
         <groupId>org.apache.curator</groupId>
         <artifactId>curator-test</artifactId>
         <version>${curator.version}</version>
         <scope>test</scope>
       </dependency>
-
       <dependency>
         <groupId>org.apache.hadoop</groupId>
         <artifactId>hadoop-common</artifactId>
         <version>${hadoop.version}</version>
-        <optional>true</optional>
         <exclusions>
           <exclusion>
             <groupId>tomcat</groupId>
@@ -1105,6 +661,7 @@ limitations under the License.
             <artifactId>slf4j-log4j12</artifactId>
           </exclusion>
         </exclusions>
+        <optional>true</optional>
       </dependency>
       <dependency>
         <groupId>org.apache.hadoop</groupId>
@@ -1155,8 +712,8 @@ limitations under the License.
       <dependency>
         <groupId>org.apache.hadoop</groupId>
         <artifactId>hadoop-minicluster</artifactId>
-        <scope>test</scope>
         <version>${hadoop.version}</version>
+        <scope>test</scope>
         <exclusions>
           <exclusion>
             <groupId>tomcat</groupId>
@@ -1204,8 +761,8 @@ limitations under the License.
       <dependency>
         <groupId>org.apache.hadoop</groupId>
         <artifactId>hadoop-mapreduce-client-core</artifactId>
-        <scope>test</scope>
         <version>${hadoop.version}</version>
+        <scope>test</scope>
         <exclusions>
           <exclusion>
             <groupId>log4j</groupId>
@@ -1222,10 +779,6 @@ limitations under the License.
         <artifactId>hadoop-distcp</artifactId>
         <version>${hadoop.version}</version>
       </dependency>
-
-      <!-- Ideally this should be optional, but making it optional causes
-      build to fail.
-      -->
       <dependency>
         <groupId>org.apache.hbase</groupId>
         <artifactId>hbase-client</artifactId>
@@ -1241,7 +794,6 @@ limitations under the License.
           </exclusion>
         </exclusions>
       </dependency>
-
       <dependency>
         <groupId>org.apache.hbase</groupId>
         <artifactId>hbase-client</artifactId>
@@ -1259,7 +811,6 @@ limitations under the License.
           </exclusion>
         </exclusions>
       </dependency>
-
       <dependency>
         <groupId>org.apache.hbase</groupId>
         <artifactId>hbase-testing-util</artifactId>
@@ -1275,13 +826,6 @@ limitations under the License.
           </exclusion>
         </exclusions>
       </dependency>
-
-      <!-- There should be no need for Flume to include the following two
-       artifacts, but HBase pom has a bug which causes these to not get
-       pulled in. So we have to pull it in. Ideally this should be optional,
-       but making it optional causes build to fail.
-      -->
-
       <dependency>
         <groupId>org.apache.hbase</groupId>
         <artifactId>hbase-common</artifactId>
@@ -1297,7 +841,6 @@ limitations under the License.
           </exclusion>
         </exclusions>
       </dependency>
-
       <dependency>
         <groupId>org.apache.hbase</groupId>
         <artifactId>hbase-common</artifactId>
@@ -1315,7 +858,6 @@ limitations under the License.
           </exclusion>
         </exclusions>
       </dependency>
-
       <dependency>
         <groupId>org.apache.hbase</groupId>
         <artifactId>hbase-server</artifactId>
@@ -1340,7 +882,6 @@ limitations under the License.
           </exclusion>
         </exclusions>
       </dependency>
-
       <dependency>
         <groupId>org.apache.hbase</groupId>
         <artifactId>hbase-server</artifactId>
@@ -1366,7 +907,6 @@ limitations under the License.
           </exclusion>
         </exclusions>
       </dependency>
-
       <dependency>
         <groupId>org.apache.zookeeper</groupId>
         <artifactId>zookeeper</artifactId>
@@ -1382,19 +922,16 @@ limitations under the License.
           </exclusion>
         </exclusions>
       </dependency>
-
       <dependency>
         <groupId>org.jdom</groupId>
         <artifactId>jdom</artifactId>
         <version>${jdom.version}</version>
       </dependency>
-
       <dependency>
         <groupId>io.dropwizard.metrics</groupId>
         <artifactId>metrics-core</artifactId>
         <version>${dropwizard-metrics.version}</version>
       </dependency>
-
       <dependency>
         <groupId>net.jcip</groupId>
         <artifactId>jcip-annotations</artifactId>
@@ -1404,7 +941,7 @@ limitations under the License.
       <dependency>
         <groupId>com.github.spotbugs</groupId>
         <artifactId>spotbugs-annotations</artifactId>
-        <version>${mvn-spotbugs-plugin.version}</version>
+        <version>${spotbugs-annotations.version}</version>
         <optional>true</optional>
       </dependency>
       <dependency>
@@ -1421,11 +958,164 @@ limitations under the License.
       </dependency>
     </dependencies>
   </dependencyManagement>
-
+  <build>
+    <extensions>
+      <extension>
+        <groupId>kr.motd.maven</groupId>
+        <artifactId>os-maven-plugin</artifactId>
+        <version>${os.maven.version}</version>
+      </extension>
+    </extensions>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.xolstice.maven.plugins</groupId>
+          <artifactId>protobuf-maven-plugin</artifactId>
+          <version>${protobuf.plugin.version}</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <configuration>
+            <reuseForks>false</reuseForks>
+            <forkCount>1</forkCount>
+            <forkedProcessTimeoutInSeconds>900</forkedProcessTimeoutInSeconds>
+            
<redirectTestOutputToFile>${redirectTestOutput}</redirectTestOutputToFile>
+            <argLine>-Djava.net.preferIPv4Stack=true</argLine>
+            <includes>
+              <include>${test.include.pattern}</include>
+            </includes>
+            <excludes>
+              <exclude>**/*$*</exclude>
+              <exclude>${test.exclude.pattern}</exclude>
+            </excludes>
+            <jdkToolchain>
+              <version>[1.8, 9)</version>
+            </jdkToolchain>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>org.apache.rat</groupId>
+          <artifactId>apache-rat-plugin</artifactId>
+          <version>${rat.version}</version>
+          <executions>
+            <execution>
+              <id>verify.rat</id>
+              <phase>verify</phase>
+              <goals>
+                <goal>check</goal>
+              </goals>
+            </execution>
+          </executions>
+          <configuration>
+            <excludes combine.children="append"></excludes>
+            <consoleOutput>true</consoleOutput>
+          </configuration>
+        </plugin>
+        <plugin>
+          <artifactId>maven-javadoc-plugin</artifactId>
+          <version>${mvn-javadoc-plugin.version}</version>
+          <configuration>
+            
<outputDirectory>${project.build.directory}/site/apidocs</outputDirectory>
+            <includeDependencySources>true</includeDependencySources>
+            <dependencySourceIncludes>
+              
<dependencySourceInclude>org.apache.flume:*</dependencySourceInclude>
+            </dependencySourceIncludes>
+            <additionalparam>-Xdoclint:none</additionalparam>
+          </configuration>
+        </plugin>
+        <plugin>
+          <artifactId>maven-assembly-plugin</artifactId>
+          <version>${mvn-assembly-plugin.version}</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-site-plugin</artifactId>
+          <version>${mvn-site-plugin.version}</version>
+          <configuration>
+            <siteDirectory>${project.basedir}/flume-ng-doc</siteDirectory>
+          </configuration>
+        </plugin>
+        <plugin>
+          <artifactId>maven-clean-plugin</artifactId>
+          <version>${mvn-clean-plugin.version}</version>
+          <configuration>
+            <filesets>
+              <fileset>
+                <directory>docs</directory>
+                <includes>
+                  <include>**</include>
+                </includes>
+              </fileset>
+            </filesets>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>com.github.spotbugs</groupId>
+          <artifactId>spotbugs-maven-plugin</artifactId>
+          <executions>
+            <execution>
+              <id>verify.spotbugs</id>
+              <phase>verify</phase>
+              <goals>
+                <goal>check</goal>
+              </goals>
+            </execution>
+          </executions>
+          <configuration>
+            <effort>Max</effort>
+            <threshold>Low</threshold>
+          </configuration>
+        </plugin>
+        <plugin>
+          <artifactId>maven-pmd-plugin</artifactId>
+          <version>${mvn-pmd-plugin.version}</version>
+          <executions>
+            <execution>
+              <id>verify.pmd</id>
+              <phase>verify</phase>
+              <goals>
+                <goal>check</goal>
+              </goals>
+            </execution>
+          </executions>
+          <configuration>
+            <targetJdk>${targetJavaVersion}</targetJdk>
+            <excludeRoots>
+              
<excludeRoot>${project.build.directory}/generated-sources</excludeRoot>
+            </excludeRoots>
+          </configuration>
+        </plugin>
+        <plugin>
+          <groupId>net.nicoulaj.maven.plugins</groupId>
+          <artifactId>checksum-maven-plugin</artifactId>
+          <version>${mvn-checksum-plugin.version}</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <compilerArgs>
+            <arg>-Xlint:all</arg>
+          </compilerArgs>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.rat</groupId>
+        <artifactId>apache-rat-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <groupId>com.github.spotbugs</groupId>
+        <artifactId>spotbugs-maven-plugin</artifactId>
+      </plugin>
+      <plugin>
+        <artifactId>maven-pmd-plugin</artifactId>
+      </plugin>
+    </plugins>
+  </build>
   <reporting>
     <plugins>
       <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-project-info-reports-plugin</artifactId>
         <reportSets>
           <reportSet>
@@ -1442,7 +1132,6 @@ limitations under the License.
         </reportSets>
       </plugin>
       <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
       </plugin>
       <plugin>
@@ -1450,10 +1139,90 @@ limitations under the License.
         <artifactId>spotbugs-maven-plugin</artifactId>
       </plugin>
       <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-pmd-plugin</artifactId>
       </plugin>
     </plugins>
   </reporting>
-
+  <profiles>
+    <profile>
+      <id>not-windows</id>
+      <activation>
+        <os>
+          <family>!Windows</family>
+        </os>
+      </activation>
+    </profile>
+    <profile>
+      <id>windows</id>
+      <activation>
+        <os>
+          <family>Windows</family>
+        </os>
+      </activation>
+    </profile>
+    <profile>
+      <id>sign</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-gpg-plugin</artifactId>
+            <executions>
+              <execution>
+                <phase>verify</phase>
+                <goals>
+                  <goal>sign</goal>
+                </goals>
+                <configuration>
+                  <keyname>${GPGSigningUserName}</keyname>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>site</id>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-javadoc-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>javadoc-jar</id>
+                <phase>package</phase>
+                <goals>
+                  <goal>aggregate-jar</goal>
+                </goals>
+              </execution>
+            </executions>
+            <configuration>
+              <additionalparam>-Xdoclint:none</additionalparam>
+            </configuration>
+          </plugin>
+          <plugin>
+            <artifactId>maven-site-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>flume-site</id>
+                <phase>package</phase>
+                <goals>
+                  <goal>site</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>skipChecks</id>
+      <properties>
+        <checkstyle.skip>true</checkstyle.skip>
+        <spotbugs.skip>true</spotbugs.skip>
+        <rat.skip>true</rat.skip>
+        <pmd.skip>true</pmd.skip>
+      </properties>
+    </profile>
+  </profiles>
 </project>
diff --git a/flume-parent/pom.xml b/flume-parent/pom.xml
index 5997b66c4..8d25f55d5 100644
--- a/flume-parent/pom.xml
+++ b/flume-parent/pom.xml
@@ -39,8 +39,7 @@ limitations under the License.
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
     <!-- Java compiler configuration -->
-    <sourceJavaVersion>1.8</sourceJavaVersion>
-    <targetJavaVersion>1.8</targetJavaVersion>
+    <releaseJavaVersion>17</releaseJavaVersion>
 
     <!-- Signing User for release -->
     <GPGSigningUserName>[email protected]</GPGSigningUserName>
@@ -90,7 +89,7 @@ limitations under the License.
     <log4j.version>2.18.0</log4j.version>
     <mapdb.version>0.9.9</mapdb.version>
     <mina.version>2.1.5</mina.version>
-    <mockito.version>1.9.0</mockito.version>
+    <mockito.version>5.18.0</mockito.version>
     <mvn-antrun-plugin.version>1.8</mvn-antrun-plugin.version>
     <!-- Do not upgrade the assumbly plugin version until MASSEMBLY-941 is 
fixed -->
     <mvn-assembly-plugin.version>3.2.0</mvn-assembly-plugin.version>
@@ -106,7 +105,7 @@ limitations under the License.
     <mvn-paranamer-plugin.version>2.8</mvn-paranamer-plugin.version>
     <mvn-pmd-plugin.version>3.15.0</mvn-pmd-plugin.version>
     <mvn-site-plugin.version>3.9.0</mvn-site-plugin.version>
-    <mvn-spotbugs-plugin.version>4.2.0</mvn-spotbugs-plugin.version>
+    <mvn-spotbugs-plugin.version>4.9.3.0</mvn-spotbugs-plugin.version>
     <mvn-surefire-plugin.version>2.22.2</mvn-surefire-plugin.version>
     <!--<netty.version>3.10.6.Final</netty.version>-->
     <netty-all.version>4.1.86.Final</netty-all.version>
@@ -193,20 +192,6 @@ limitations under the License.
               <additionalparam>-Xdoclint:none</additionalparam>
             </configuration>
           </plugin>
-
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-site-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>flume-site</id>
-                <phase>package</phase>
-                <goals>
-                  <goal>site</goal>
-                </goals>
-              </execution>
-            </executions>
-          </plugin>
         </plugins>
       </build>
 
@@ -456,8 +441,7 @@ limitations under the License.
           <artifactId>maven-compiler-plugin</artifactId>
           <version>${mvn-compiler-plugin.version}</version>
           <configuration>
-            <source>${sourceJavaVersion}</source>
-            <target>${targetJavaVersion}</target>
+            <release>${releaseJavaVersion}</release>
           </configuration>
         </plugin>
 
@@ -585,15 +569,6 @@ limitations under the License.
           <version>${mvn-assembly-plugin.version}</version>
         </plugin>
 
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-site-plugin</artifactId>
-          <version>${mvn-site-plugin.version}</version>
-          <configuration>
-            <siteDirectory>${project.basedir}/flume-ng-doc</siteDirectory>
-          </configuration>
-        </plugin>
-
         <plugin>
           <artifactId>maven-clean-plugin</artifactId>
           <version>${mvn-clean-plugin.version}</version>
@@ -670,7 +645,7 @@ limitations under the License.
 
       <dependency>
         <groupId>org.mockito</groupId>
-        <artifactId>mockito-all</artifactId>
+        <artifactId>mockito-core</artifactId>
         <version>${mockito.version}</version>
         <scope>test</scope>
       </dependency>
diff --git a/flume-rpc/flume-rpc-avro/pom.xml b/flume-rpc/flume-rpc-avro/pom.xml
index 0b6cd6d99..962fc9a6e 100644
--- a/flume-rpc/flume-rpc-avro/pom.xml
+++ b/flume-rpc/flume-rpc-avro/pom.xml
@@ -116,13 +116,26 @@ limitations under the License.
       </dependency>
       <dependency>
         <groupId>org.mockito</groupId>
-        <artifactId>mockito-all</artifactId>
+        <artifactId>mockito-core</artifactId>
         <version>${mockito.version}</version>
         <scope>test</scope>
       </dependency>
     </dependencies>
   <build>
     <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>${mvn-compiler-plugin.version}</version>
+        <configuration>
+          <release>${releaseJavaVersion}</release>
+          <compilerArgs>
+            <arg>-parameters</arg>
+            <arg>--add-exports=java.base/sun.nio.ch=ALL-UNNAMED</arg>
+            <arg>--add-exports=java.management/sun.management=ALL-UNNAMED</arg>
+          </compilerArgs>
+        </configuration>
+      </plugin>
       <plugin>
         <groupId>org.apache.rat</groupId>
         <artifactId>apache-rat-plugin</artifactId>
@@ -190,22 +203,6 @@ limitations under the License.
         </executions>
       </plugin>
 
-      <plugin>
-        <groupId>com.thoughtworks.paranamer</groupId>
-        <artifactId>paranamer-maven-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>run</id>
-            <configuration>
-              
<sourceDirectory>${project.build.directory}/generated-sources/avro</sourceDirectory>
-              
<outputDirectory>${project.build.directory}/classes</outputDirectory>
-            </configuration>
-            <goals>
-              <goal>generate</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-jar-plugin</artifactId>
diff --git 
a/flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/sink/TestAvroSink.java
 
b/flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/sink/TestAvroSink.java
index 50722eafe..4c4775388 100644
--- 
a/flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/sink/TestAvroSink.java
+++ 
b/flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/sink/TestAvroSink.java
@@ -48,7 +48,7 @@ import org.apache.flume.source.avro.Status;
 import org.junit.Assert;
 import org.junit.Test;
 import org.mockito.Mockito;
-import org.mockito.internal.util.reflection.Whitebox;
+import org.apache.flume.util.Whitebox;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git 
a/flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/source/TestSpoolDirectorySource.java
 
b/flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/source/TestSpoolDirectorySource.java
index db9cd1983..768db0146 100644
--- 
a/flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/source/TestSpoolDirectorySource.java
+++ 
b/flume-rpc/flume-rpc-avro/src/test/java/org/apache/flume/rpc/avro/source/TestSpoolDirectorySource.java
@@ -40,7 +40,7 @@ import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
-import org.mockito.Matchers;
+import org.mockito.ArgumentMatchers;
 import org.mockito.Mockito;
 
 import java.io.ByteArrayOutputStream;
@@ -524,7 +524,7 @@ public class TestSpoolDirectorySource {
     Mockito.doThrow(new ChannelException("dummy"))
         .doThrow(new ChannelFullException("dummy"))
         .doThrow(new RuntimeException("runtime"))
-        .when(cp).processEventBatch(Matchers.anyListOf(Event.class));
+        .when(cp).processEventBatch(ArgumentMatchers.anyList(Event.class));
     source.setChannelProcessor(cp);
 
     ReliableSpoolingFileEventReader reader = 
Mockito.mock(ReliableSpoolingFileEventReader.class);
diff --git a/flume-rpc/flume-rpc-thrift/pom.xml 
b/flume-rpc/flume-rpc-thrift/pom.xml
index e73e7eda7..edae37603 100644
--- a/flume-rpc/flume-rpc-thrift/pom.xml
+++ b/flume-rpc/flume-rpc-thrift/pom.xml
@@ -74,7 +74,7 @@ limitations under the License.
     </dependency>
     <dependency>
       <groupId>org.mockito</groupId>
-      <artifactId>mockito-all</artifactId>
+      <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
   </dependencies>
diff --git 
a/flume-rpc/flume-rpc-thrift/src/test/java/org/apache/flume/rpc/thrift/ThriftTestingSource.java
 
b/flume-rpc/flume-rpc-thrift/src/test/java/org/apache/flume/rpc/thrift/ThriftTestingSource.java
index 6e0df8a32..35144c121 100644
--- 
a/flume-rpc/flume-rpc-thrift/src/test/java/org/apache/flume/rpc/thrift/ThriftTestingSource.java
+++ 
b/flume-rpc/flume-rpc-thrift/src/test/java/org/apache/flume/rpc/thrift/ThriftTestingSource.java
@@ -57,7 +57,7 @@ import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.mockito.Mockito;
-import org.mockito.internal.util.reflection.Whitebox;
+import org.apache.flume.util.Whitebox;
 
 import java.io.IOException;
 import java.lang.reflect.Method;
@@ -78,8 +78,8 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyListOf;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyList;
 import static org.mockito.Mockito.doThrow;
 
 public class ThriftTestingSource {
@@ -591,7 +591,7 @@ public class ThriftTestingSource {
         source.configure(context);
         ChannelProcessor cp = Mockito.mock(ChannelProcessor.class);
         doThrow(new 
ChannelException("dummy")).when(cp).processEvent(any(Event.class));
-        doThrow(new 
ChannelException("dummy")).when(cp).processEventBatch(anyListOf(Event.class));
+        doThrow(new 
ChannelException("dummy")).when(cp).processEventBatch(anyList(Event.class));
         source.setChannelProcessor(cp);
         source.start();
         Event event = EventBuilder.withBody("hello".getBytes());
diff --git a/flume-rpc/pom.xml b/flume-rpc/pom.xml
index f474e11f9..ff904a2d7 100644
--- a/flume-rpc/pom.xml
+++ b/flume-rpc/pom.xml
@@ -45,7 +45,6 @@ limitations under the License.
     <mockito.version>1.9.0</mockito.version>
     <mvn-gpg-plugin.version>1.6</mvn-gpg-plugin.version>
     <mvn-javadoc-plugin.version>2.9</mvn-javadoc-plugin.version>
-    <mvn-paranamer-plugin.version>2.8.3</mvn-paranamer-plugin.version>
     <mvn-surefire-plugin.version>3.5.5</mvn-surefire-plugin.version>
     <netty-all.version>4.1.86.Final</netty-all.version>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -126,11 +125,6 @@ limitations under the License.
           <artifactId>avro-maven-plugin</artifactId>
           <version>${avro.version}</version>
         </plugin>
-        <plugin>
-          <groupId>com.thoughtworks.paranamer</groupId>
-          <artifactId>paranamer-maven-plugin</artifactId>
-          <version>${mvn-paranamer-plugin.version}</version>
-        </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>

Reply via email to