This is an automated email from the ASF dual-hosted git repository.
ppkarwasz pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/logging-flume.git
The following commit(s) were added to refs/heads/trunk by this push:
new 10d64e8d Adapt the build to `logging-parent` conventions (#467)
10d64e8d is described below
commit 10d64e8de6f7d83efb593e899aaf8bae0437f447
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Tue Jul 28 20:16:47 2026 +0200
Adapt the build to `logging-parent` conventions (#467)
* Adapt build to `logging-parent` conventions
Most build configuration is now inherited from `logging-parent` and the
`apache` parent POM. ZooKeeper is bumped to satisfy `requireUpperBoundDeps`.
Assisted-By: Claude Fable 5 <[email protected]>
* Expand star imports
The formatting rules inherited from `logging-parent` forbid wildcard
imports.
Assisted-By: Claude Fable 5 <[email protected]>
* Fix or suppress Error Prone warnings
The `GuardedBy` suppressions are intentional: the channel queue locks must
not be held on blocking operations and the unguarded reads are benign.
The `jvm.config` flags let Error Prone access javac internals on JDK 16+.
Assisted-By: Claude Fable 5 <[email protected]>
* Disable BND baseline for never-released artifacts
These artifacts have no published version to compare against.
Assisted-By: Claude Fable 5 <[email protected]>
* Configure RAT exclusions via `.rat-excludes`
The file is shared with the ASF Trusted Releases platform checks, which
match patterns against the archive root: hence the `**/` prefix. Files
that support comments get an SPDX header instead of an exclusion.
Assisted-By: Claude Fable 5 <[email protected]>
* fix: add comment to disabled test
Co-authored-by: Copilot Autofix powered by AI
<[email protected]>
---------
Co-authored-by: Copilot Autofix powered by AI
<[email protected]>
---
.mvn/jvm.config | 11 +
.rat-excludes | 2 +
.../channel/file/TestCheckpointRebuilder.java | 5 +-
.../flume/channel/file/TestFileChannelRestart.java | 2 +-
.../flume/channel/SpillableMemoryChannel.java | 9 +
.../src/test/resources/test.sh | 1 +
.../src/test/resources/test_error.sh | 2 +
.../apache/flume/conf/TestAgentConfiguration.java | 6 +-
.../apache/flume/conf/TestFlumeConfiguration.java | 7 +-
flume-ng-core/pom.xml | 4 -
.../org/apache/flume/channel/MemoryChannel.java | 12 +
.../java/org/apache/flume/event/EventHelper.java | 2 +-
.../apache/flume/interceptor/HostInterceptor.java | 7 +-
.../flume/interceptor/TimestampInterceptor.java | 5 +-
.../test/java/org/apache/flume/TestContext.java | 3 +-
.../apache/flume/channel/TestMemoryChannel.java | 3 +
.../channel/TestMemoryChannelConcurrency.java | 2 +-
.../flume/source/TestAbstractPollableSource.java | 2 +-
.../flume/source/TestBasicSourceSemantics.java | 3 +-
.../org/apache/flume/tools/TestVersionInfo.java | 3 +-
.../flume-ganglia-monitor/pom.xml | 2 +
...org.apache.flume.instrumentation.MonitorService | 1 +
.../flume-http-monitor/pom.xml | 2 +
...org.apache.flume.instrumentation.MonitorService | 1 +
.../flume-prometheus-monitor/pom.xml | 2 +
...org.apache.flume.instrumentation.MonitorService | 1 +
.../org/apache/flume/node/TestApplication.java | 6 +-
flume-ng-sources/flume-http-source/pom.xml | 2 +
.../apache/flume/source/http/TestHTTPSource.java | 20 +-
flume-ng-sources/flume-netcat-source/pom.xml | 2 +
flume-ng-sources/flume-syslog-source/pom.xml | 2 +
.../syslog/TestMultiportSyslogTCPSource.java | 3 +-
.../flume/source/syslog/TestSyslogUtils.java | 2 +-
.../apache/flume/source/taildir/TaildirSource.java | 24 +-
flume-parent/pom.xml | 554 +++------------------
flume-third-party/pom.xml | 2 +-
pom.xml | 25 +
37 files changed, 220 insertions(+), 522 deletions(-)
diff --git a/.mvn/jvm.config b/.mvn/jvm.config
new file mode 100644
index 00000000..f3b9f7db
--- /dev/null
+++ b/.mvn/jvm.config
@@ -0,0 +1,11 @@
+--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
+--add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
+--add-exports jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED
+--add-exports jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
+--add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
+--add-exports jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED
+--add-exports jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
+--add-exports jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
+--add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
+--add-opens jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED
+-Dfile.encoding=UTF-8
diff --git a/.rat-excludes b/.rat-excludes
new file mode 100644
index 00000000..30101469
--- /dev/null
+++ b/.rat-excludes
@@ -0,0 +1,2 @@
+.rat-excludes
+**/src/test/resources/test_command.ps1
\ No newline at end of file
diff --git
a/flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestCheckpointRebuilder.java
b/flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestCheckpointRebuilder.java
index 008c2e3a..7ebebc7e 100644
---
a/flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestCheckpointRebuilder.java
+++
b/flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestCheckpointRebuilder.java
@@ -16,7 +16,10 @@
*/
package org.apache.flume.channel.file;
-import static org.apache.flume.channel.file.TestUtils.*;
+import static org.apache.flume.channel.file.TestUtils.compareInputAndOut;
+import static org.apache.flume.channel.file.TestUtils.consumeChannel;
+import static org.apache.flume.channel.file.TestUtils.fillChannel;
+import static org.apache.flume.channel.file.TestUtils.getAllLogs;
import com.google.common.collect.Maps;
import java.io.File;
diff --git
a/flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestFileChannelRestart.java
b/flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestFileChannelRestart.java
index 5f43bc87..69bb9a4b 100644
---
a/flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestFileChannelRestart.java
+++
b/flume-ng-channels/flume-file-channel/src/test/java/org/apache/flume/channel/file/TestFileChannelRestart.java
@@ -25,7 +25,7 @@ import static
org.apache.flume.channel.file.TestUtils.putEvents;
import static org.apache.flume.channel.file.TestUtils.putWithoutCommit;
import static org.apache.flume.channel.file.TestUtils.takeEvents;
import static org.apache.flume.channel.file.TestUtils.takeWithoutCommit;
-import static org.fest.reflect.core.Reflection.*;
+import static org.fest.reflect.core.Reflection.field;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
diff --git
a/flume-ng-channels/flume-spillable-memory-channel/src/main/java/org/apache/flume/channel/SpillableMemoryChannel.java
b/flume-ng-channels/flume-spillable-memory-channel/src/main/java/org/apache/flume/channel/SpillableMemoryChannel.java
index 36bdf192..25c8ada3 100644
---
a/flume-ng-channels/flume-spillable-memory-channel/src/main/java/org/apache/flume/channel/SpillableMemoryChannel.java
+++
b/flume-ng-channels/flume-spillable-memory-channel/src/main/java/org/apache/flume/channel/SpillableMemoryChannel.java
@@ -535,6 +535,9 @@ public class SpillableMemoryChannel extends FileChannel {
channelCounter.addToEventPutSuccessCount(putList.size());
}
+ // `queueLock` must not be held on blocking operations,
+ // and an approximate channel size is enough for the counter.
+ @SuppressWarnings("GuardedBy")
@Override
protected void doRollback() {
logger.debug("Rollback() of " + (takeCalled ? " Take Tx" :
(putCalled ? " Put Tx" : "Empty Tx")));
@@ -729,6 +732,8 @@ public class SpillableMemoryChannel extends FileChannel {
super.configure(context);
}
+ // the unguarded read of `memQueue` only detects whether the queue needs
resizing
+ @SuppressWarnings("GuardedBy")
private void resizePrimaryQueue(int newMemoryCapacity) throws
InterruptedException {
if (memQueue != null && memoryCapacity == newMemoryCapacity) {
return;
@@ -765,6 +770,8 @@ public class SpillableMemoryChannel extends FileChannel {
}
}
+ // an approximate channel size is enough for the counter
+ @SuppressWarnings("GuardedBy")
@Override
public synchronized void start() {
super.start();
@@ -779,6 +786,8 @@ public class SpillableMemoryChannel extends FileChannel {
channelCounter.setChannelSize(totalCount);
}
+ // an approximate channel size is enough for the counter
+ @SuppressWarnings("GuardedBy")
@Override
public synchronized void stop() {
if (getLifecycleState() == LifecycleState.STOP) {
diff --git
a/flume-ng-configfilters/flume-ng-external-process-config-filter/src/test/resources/test.sh
b/flume-ng-configfilters/flume-ng-external-process-config-filter/src/test/resources/test.sh
index 4ebd83b1..c7f41d4c 100644
---
a/flume-ng-configfilters/flume-ng-external-process-config-filter/src/test/resources/test.sh
+++
b/flume-ng-configfilters/flume-ng-external-process-config-filter/src/test/resources/test.sh
@@ -1,4 +1,5 @@
#!/usr/bin/env bash
+# SPDX-License-Identifier: Apache-2.0
if [ $1 = "my_password_key" ]; then
echo "filtered";
diff --git
a/flume-ng-configfilters/flume-ng-external-process-config-filter/src/test/resources/test_error.sh
b/flume-ng-configfilters/flume-ng-external-process-config-filter/src/test/resources/test_error.sh
index 2213ac2f..7f3a5b13 100644
---
a/flume-ng-configfilters/flume-ng-external-process-config-filter/src/test/resources/test_error.sh
+++
b/flume-ng-configfilters/flume-ng-external-process-config-filter/src/test/resources/test_error.sh
@@ -1,4 +1,6 @@
#!/usr/bin/env bash
+# SPDX-License-Identifier: Apache-2.0
+
echo "Error message from stderr" 1>&2
echo "Error message from stdout"
diff --git
a/flume-ng-configuration/src/test/java/org/apache/flume/conf/TestAgentConfiguration.java
b/flume-ng-configuration/src/test/java/org/apache/flume/conf/TestAgentConfiguration.java
index 0683c6d3..dccc399e 100644
---
a/flume-ng-configuration/src/test/java/org/apache/flume/conf/TestAgentConfiguration.java
+++
b/flume-ng-configuration/src/test/java/org/apache/flume/conf/TestAgentConfiguration.java
@@ -17,7 +17,11 @@
package org.apache.flume.conf;
import static
org.apache.flume.conf.FlumeConfigurationError.ErrorOrWarning.ERROR;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.HashMap;
diff --git
a/flume-ng-configuration/src/test/java/org/apache/flume/conf/TestFlumeConfiguration.java
b/flume-ng-configuration/src/test/java/org/apache/flume/conf/TestFlumeConfiguration.java
index 2d250c79..e2b0048e 100644
---
a/flume-ng-configuration/src/test/java/org/apache/flume/conf/TestFlumeConfiguration.java
+++
b/flume-ng-configuration/src/test/java/org/apache/flume/conf/TestFlumeConfiguration.java
@@ -17,7 +17,12 @@
package org.apache.flume.conf;
import static
org.apache.flume.conf.FlumeConfigurationError.ErrorOrWarning.ERROR;
-import static org.apache.flume.conf.FlumeConfigurationErrorType.*;
+import static
org.apache.flume.conf.FlumeConfigurationErrorType.AGENT_CONFIGURATION_INVALID;
+import static
org.apache.flume.conf.FlumeConfigurationErrorType.AGENT_NAME_MISSING;
+import static org.apache.flume.conf.FlumeConfigurationErrorType.CONFIG_ERROR;
+import static
org.apache.flume.conf.FlumeConfigurationErrorType.INVALID_PROPERTY;
+import static
org.apache.flume.conf.FlumeConfigurationErrorType.PROPERTY_NAME_NULL;
+import static
org.apache.flume.conf.FlumeConfigurationErrorType.PROPERTY_VALUE_NULL;
import static org.junit.Assert.assertEquals;
import java.util.HashMap;
diff --git a/flume-ng-core/pom.xml b/flume-ng-core/pom.xml
index cb8129ba..61c505c9 100644
--- a/flume-ng-core/pom.xml
+++ b/flume-ng-core/pom.xml
@@ -190,7 +190,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
- <version>${mvn-antrun-plugin.version}</version>
<executions>
<execution>
<id>generate-version</id>
@@ -213,7 +212,6 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
- <version>${mvn-build-helper-plugin}</version>
<executions>
<execution>
<id>add-source</id>
@@ -246,7 +244,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
- <version>${mvn-antrun-plugin.version}</version>
<executions>
<execution>
<id>generate-version</id>
@@ -269,7 +266,6 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
- <version>${mvn-build-helper-plugin}</version>
<executions>
<execution>
<id>add-source</id>
diff --git
a/flume-ng-core/src/main/java/org/apache/flume/channel/MemoryChannel.java
b/flume-ng-core/src/main/java/org/apache/flume/channel/MemoryChannel.java
index ac3c8cbe..b0c6c3c6 100644
--- a/flume-ng-core/src/main/java/org/apache/flume/channel/MemoryChannel.java
+++ b/flume-ng-core/src/main/java/org/apache/flume/channel/MemoryChannel.java
@@ -110,6 +110,9 @@ public class MemoryChannel extends BasicChannelSemantics
implements TransactionC
return event;
}
+ // `queueLock` must not be held on blocking operations,
+ // and an approximate channel size is sufficient for the counter.
+ @SuppressWarnings("GuardedBy")
@Override
protected void doCommit() throws InterruptedException {
int remainingChange = takeList.size() - putList.size();
@@ -158,6 +161,9 @@ public class MemoryChannel extends BasicChannelSemantics
implements TransactionC
channelCounter.setChannelSize(queue.size());
}
+ // `queueLock` must not be held on blocking operations
+ // and an approximate channel size is sufficient for the counter.
+ @SuppressWarnings("GuardedBy")
@Override
protected void doRollback() {
int takes = takeList.size();
@@ -218,6 +224,8 @@ public class MemoryChannel extends BasicChannelSemantics
implements TransactionC
* <li>byteCapacityBufferPercentage = type int that defines the percent of
buffer between byteCapacity and the estimated event size.
* <li>keep-alive = type int that defines the number of second to wait for
a queue permit
*/
+ // the unguarded null check on `queue` only detects whether the channel
was already configured
+ @SuppressWarnings("GuardedBy")
@Override
public void configure(Context context) {
Integer capacity = null;
@@ -347,6 +355,8 @@ public class MemoryChannel extends BasicChannelSemantics
implements TransactionC
}
}
+ // an approximate channel size is sufficient for the counter
+ @SuppressWarnings("GuardedBy")
@Override
public synchronized void start() {
channelCounter.start();
@@ -355,6 +365,8 @@ public class MemoryChannel extends BasicChannelSemantics
implements TransactionC
super.start();
}
+ // an approximate channel size is sufficient for the counter
+ @SuppressWarnings("GuardedBy")
@Override
public synchronized void stop() {
channelCounter.setChannelSize(queue.size());
diff --git
a/flume-ng-core/src/main/java/org/apache/flume/event/EventHelper.java
b/flume-ng-core/src/main/java/org/apache/flume/event/EventHelper.java
index 58a010b1..733377f2 100644
--- a/flume-ng-core/src/main/java/org/apache/flume/event/EventHelper.java
+++ b/flume-ng-core/src/main/java/org/apache/flume/event/EventHelper.java
@@ -61,7 +61,7 @@ public class EventHelper {
}
String result = buffer.toString();
if (result.endsWith(EOL) && buffer.length() > EOL.length()) {
- buffer.delete(buffer.length() - EOL.length(),
buffer.length()).toString();
+ buffer.delete(buffer.length() - EOL.length(), buffer.length());
}
}
return "{ headers:" + event.getHeaders() + " body:" + buffer + " }";
diff --git
a/flume-ng-core/src/main/java/org/apache/flume/interceptor/HostInterceptor.java
b/flume-ng-core/src/main/java/org/apache/flume/interceptor/HostInterceptor.java
index 707109e5..94ea167f 100644
---
a/flume-ng-core/src/main/java/org/apache/flume/interceptor/HostInterceptor.java
+++
b/flume-ng-core/src/main/java/org/apache/flume/interceptor/HostInterceptor.java
@@ -16,7 +16,12 @@
*/
package org.apache.flume.interceptor;
-import static org.apache.flume.interceptor.HostInterceptor.Constants.*;
+import static org.apache.flume.interceptor.HostInterceptor.Constants.HOST;
+import static
org.apache.flume.interceptor.HostInterceptor.Constants.HOST_HEADER;
+import static org.apache.flume.interceptor.HostInterceptor.Constants.PRESERVE;
+import static
org.apache.flume.interceptor.HostInterceptor.Constants.PRESERVE_DFLT;
+import static org.apache.flume.interceptor.HostInterceptor.Constants.USE_IP;
+import static
org.apache.flume.interceptor.HostInterceptor.Constants.USE_IP_DFLT;
import java.net.InetAddress;
import java.net.UnknownHostException;
diff --git
a/flume-ng-core/src/main/java/org/apache/flume/interceptor/TimestampInterceptor.java
b/flume-ng-core/src/main/java/org/apache/flume/interceptor/TimestampInterceptor.java
index 577e61cc..6b558850 100644
---
a/flume-ng-core/src/main/java/org/apache/flume/interceptor/TimestampInterceptor.java
+++
b/flume-ng-core/src/main/java/org/apache/flume/interceptor/TimestampInterceptor.java
@@ -16,7 +16,10 @@
*/
package org.apache.flume.interceptor;
-import static org.apache.flume.interceptor.TimestampInterceptor.Constants.*;
+import static
org.apache.flume.interceptor.TimestampInterceptor.Constants.CONFIG_HEADER_NAME;
+import static
org.apache.flume.interceptor.TimestampInterceptor.Constants.CONFIG_PRESERVE;
+import static
org.apache.flume.interceptor.TimestampInterceptor.Constants.DEFAULT_HEADER_NAME;
+import static
org.apache.flume.interceptor.TimestampInterceptor.Constants.DEFAULT_PRESERVE;
import java.util.List;
import java.util.Map;
diff --git a/flume-ng-core/src/test/java/org/apache/flume/TestContext.java
b/flume-ng-core/src/test/java/org/apache/flume/TestContext.java
index b0935180..9f8ffdaf 100644
--- a/flume-ng-core/src/test/java/org/apache/flume/TestContext.java
+++ b/flume-ng-core/src/test/java/org/apache/flume/TestContext.java
@@ -16,7 +16,8 @@
*/
package org.apache.flume;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
import com.google.common.collect.ImmutableMap;
import org.junit.Before;
diff --git
a/flume-ng-core/src/test/java/org/apache/flume/channel/TestMemoryChannel.java
b/flume-ng-core/src/test/java/org/apache/flume/channel/TestMemoryChannel.java
index 99877351..b71619d1 100644
---
a/flume-ng-core/src/test/java/org/apache/flume/channel/TestMemoryChannel.java
+++
b/flume-ng-core/src/test/java/org/apache/flume/channel/TestMemoryChannel.java
@@ -34,6 +34,7 @@ import org.apache.flume.event.SimpleEvent;
import org.apache.flume.exception.ChannelException;
import org.junit.Assert;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
public class TestMemoryChannel {
@@ -298,6 +299,8 @@ public class TestMemoryChannel {
Assert.assertEquals(8, channel.getBytesRemainingValue());
}
+ @Test
+ @Ignore("TODO: document why this test is disabled and re-enable it.")
public void testByteCapacityBufferEmptyingAfterTakeCommit() {
Context context = new Context();
Map<String, String> parms = new HashMap<String, String>();
diff --git
a/flume-ng-core/src/test/java/org/apache/flume/channel/TestMemoryChannelConcurrency.java
b/flume-ng-core/src/test/java/org/apache/flume/channel/TestMemoryChannelConcurrency.java
index 693a62ad..8ee407a7 100644
---
a/flume-ng-core/src/test/java/org/apache/flume/channel/TestMemoryChannelConcurrency.java
+++
b/flume-ng-core/src/test/java/org/apache/flume/channel/TestMemoryChannelConcurrency.java
@@ -224,6 +224,7 @@ public class TestMemoryChannelConcurrency {
final CountDownLatch startGate = new CountDownLatch(1);
final CountDownLatch endGate = new CountDownLatch(threadCount);
+ final Object takeMapLock = new Object();
// start a sink and source for each
for (int i = 0; i < threadCount / 2; i++) {
Thread t = new Thread() {
@@ -268,7 +269,6 @@ public class TestMemoryChannelConcurrency {
};
// start source
t.start();
- final Integer takeMapLock = 0;
t = new Thread() {
@Override
public void run() {
diff --git
a/flume-ng-core/src/test/java/org/apache/flume/source/TestAbstractPollableSource.java
b/flume-ng-core/src/test/java/org/apache/flume/source/TestAbstractPollableSource.java
index 16991a5d..ddea222d 100644
---
a/flume-ng-core/src/test/java/org/apache/flume/source/TestAbstractPollableSource.java
+++
b/flume-ng-core/src/test/java/org/apache/flume/source/TestAbstractPollableSource.java
@@ -16,7 +16,7 @@
*/
package org.apache.flume.source;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.spy;
import java.util.HashMap;
import org.apache.flume.Context;
diff --git
a/flume-ng-core/src/test/java/org/apache/flume/source/TestBasicSourceSemantics.java
b/flume-ng-core/src/test/java/org/apache/flume/source/TestBasicSourceSemantics.java
index 9bdeb8a1..6458785b 100644
---
a/flume-ng-core/src/test/java/org/apache/flume/source/TestBasicSourceSemantics.java
+++
b/flume-ng-core/src/test/java/org/apache/flume/source/TestBasicSourceSemantics.java
@@ -16,7 +16,8 @@
*/
package org.apache.flume.source;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
import org.apache.flume.Context;
import org.apache.flume.FlumeException;
diff --git
a/flume-ng-core/src/test/java/org/apache/flume/tools/TestVersionInfo.java
b/flume-ng-core/src/test/java/org/apache/flume/tools/TestVersionInfo.java
index a71a0801..59457f96 100644
--- a/flume-ng-core/src/test/java/org/apache/flume/tools/TestVersionInfo.java
+++ b/flume-ng-core/src/test/java/org/apache/flume/tools/TestVersionInfo.java
@@ -16,7 +16,8 @@
*/
package org.apache.flume.tools;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/flume-ng-instrumentation/flume-ganglia-monitor/pom.xml
b/flume-ng-instrumentation/flume-ganglia-monitor/pom.xml
index 3262d427..2e531ee8 100644
--- a/flume-ng-instrumentation/flume-ganglia-monitor/pom.xml
+++ b/flume-ng-instrumentation/flume-ganglia-monitor/pom.xml
@@ -30,6 +30,8 @@
<name>Flume Ganglia Monitor</name>
<properties>
+ <!-- This artifact was never released before -->
+ <bnd.baseline.fail.on.missing>false</bnd.baseline.fail.on.missing>
<!-- TODO fix spotbugs violations -->
<spotbugs.maxAllowedViolations>13</spotbugs.maxAllowedViolations>
<module.name>org.apache.flume.instrumentation.ganglia</module.name>
diff --git
a/flume-ng-instrumentation/flume-ganglia-monitor/src/main/resources/META-INF/services/org.apache.flume.instrumentation.MonitorService
b/flume-ng-instrumentation/flume-ganglia-monitor/src/main/resources/META-INF/services/org.apache.flume.instrumentation.MonitorService
index bacdb80d..ca6ac4a3 100644
---
a/flume-ng-instrumentation/flume-ganglia-monitor/src/main/resources/META-INF/services/org.apache.flume.instrumentation.MonitorService
+++
b/flume-ng-instrumentation/flume-ganglia-monitor/src/main/resources/META-INF/services/org.apache.flume.instrumentation.MonitorService
@@ -1 +1,2 @@
+# SPDX-License-Identifier: Apache-2.0
org.apache.flume.instrumentation.ganglia.GangliaServer
diff --git a/flume-ng-instrumentation/flume-http-monitor/pom.xml
b/flume-ng-instrumentation/flume-http-monitor/pom.xml
index fdb209cb..6c266c68 100644
--- a/flume-ng-instrumentation/flume-http-monitor/pom.xml
+++ b/flume-ng-instrumentation/flume-http-monitor/pom.xml
@@ -30,6 +30,8 @@
<name>Flume HTTP Monitor</name>
<properties>
+ <!-- This artifact was never released before -->
+ <bnd.baseline.fail.on.missing>false</bnd.baseline.fail.on.missing>
<!-- TODO fix spotbugs violations -->
<spotbugs.maxAllowedViolations>3</spotbugs.maxAllowedViolations>
<module.name>org.apache.flume.instrumentation.http</module.name>
diff --git
a/flume-ng-instrumentation/flume-http-monitor/src/main/resources/META-INF/services/org.apache.flume.instrumentation.MonitorService
b/flume-ng-instrumentation/flume-http-monitor/src/main/resources/META-INF/services/org.apache.flume.instrumentation.MonitorService
index 94fc8860..d29ea554 100644
---
a/flume-ng-instrumentation/flume-http-monitor/src/main/resources/META-INF/services/org.apache.flume.instrumentation.MonitorService
+++
b/flume-ng-instrumentation/flume-http-monitor/src/main/resources/META-INF/services/org.apache.flume.instrumentation.MonitorService
@@ -1 +1,2 @@
+# SPDX-License-Identifier: Apache-2.0
org.apache.flume.instrumentation.http.HTTPMetricsServer
diff --git a/flume-ng-instrumentation/flume-prometheus-monitor/pom.xml
b/flume-ng-instrumentation/flume-prometheus-monitor/pom.xml
index ed7a8014..27b90fda 100644
--- a/flume-ng-instrumentation/flume-prometheus-monitor/pom.xml
+++ b/flume-ng-instrumentation/flume-prometheus-monitor/pom.xml
@@ -30,6 +30,8 @@
<name>Flume Prometheus Monitor</name>
<properties>
+ <!-- This artifact was never released before -->
+ <bnd.baseline.fail.on.missing>false</bnd.baseline.fail.on.missing>
<!-- TODO fix spotbugs/pmd violations -->
<spotbugs.maxAllowedViolations>6</spotbugs.maxAllowedViolations>
<pmd.maxAllowedViolations>1</pmd.maxAllowedViolations>
diff --git
a/flume-ng-instrumentation/flume-prometheus-monitor/src/main/resources/META-INF/services/org.apache.flume.instrumentation.MonitorService
b/flume-ng-instrumentation/flume-prometheus-monitor/src/main/resources/META-INF/services/org.apache.flume.instrumentation.MonitorService
index 042e1082..fcfbfba8 100644
---
a/flume-ng-instrumentation/flume-prometheus-monitor/src/main/resources/META-INF/services/org.apache.flume.instrumentation.MonitorService
+++
b/flume-ng-instrumentation/flume-prometheus-monitor/src/main/resources/META-INF/services/org.apache.flume.instrumentation.MonitorService
@@ -1 +1,2 @@
+# SPDX-License-Identifier: Apache-2.0
org.apache.flume.instrumentation.prometheus.PrometheusHTTPMetricsServer
diff --git
a/flume-ng-node/src/test/java/org/apache/flume/node/TestApplication.java
b/flume-ng-node/src/test/java/org/apache/flume/node/TestApplication.java
index 583fe97f..f0bce1f5 100644
--- a/flume-ng-node/src/test/java/org/apache/flume/node/TestApplication.java
+++ b/flume-ng-node/src/test/java/org/apache/flume/node/TestApplication.java
@@ -16,7 +16,11 @@
*/
package org.apache.flume.node;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
import com.google.common.collect.Lists;
import com.google.common.eventbus.EventBus;
diff --git a/flume-ng-sources/flume-http-source/pom.xml
b/flume-ng-sources/flume-http-source/pom.xml
index 1329f7a2..43770d96 100644
--- a/flume-ng-sources/flume-http-source/pom.xml
+++ b/flume-ng-sources/flume-http-source/pom.xml
@@ -30,6 +30,8 @@
<name>Flume HTTP Source</name>
<properties>
+ <!-- This artifact was never released before -->
+ <bnd.baseline.fail.on.missing>false</bnd.baseline.fail.on.missing>
<!-- TODO fix spotbugs/pmd violations -->
<spotbugs.maxAllowedViolations>10</spotbugs.maxAllowedViolations>
<pmd.maxAllowedViolations>2</pmd.maxAllowedViolations>
diff --git
a/flume-ng-sources/flume-http-source/src/test/java/org/apache/flume/source/http/TestHTTPSource.java
b/flume-ng-sources/flume-http-source/src/test/java/org/apache/flume/source/http/TestHTTPSource.java
index 42b63f6a..8aa5ea2e 100644
---
a/flume-ng-sources/flume-http-source/src/test/java/org/apache/flume/source/http/TestHTTPSource.java
+++
b/flume-ng-sources/flume-http-source/src/test/java/org/apache/flume/source/http/TestHTTPSource.java
@@ -385,8 +385,8 @@ public class TestHTTPSource {
.size()
== 0);
- int newPort = findFreePort();
- Context configuredSourceContext = getDefaultNonSecureContext(newPort);
+ final int firstPort = findFreePort();
+ Context configuredSourceContext =
getDefaultNonSecureContext(firstPort);
configuredSourceContext.put("HttpConfiguration.sendServerVersion",
"false");
configuredSourceContext.put("HttpConfiguration.sendXPoweredBy",
"true");
configuredSourceContext.put("ServerConnector.acceptQueueSize", "22");
@@ -398,7 +398,7 @@ public class TestHTTPSource {
newChannel.start();
newSource.start();
- HttpPost newPostRequest = new HttpPost("http://0.0.0.0:" + newPort);
+ HttpPost newPostRequest = new HttpPost("http://0.0.0.0:" + firstPort);
resp = httpClient.execute(newPostRequest);
Assert.assertTrue(resp.getHeaders("X-Powered-By").length > 0);
@@ -414,8 +414,8 @@ public class TestHTTPSource {
newChannel.stop();
// Configure SslContextFactory with junk protocols (expect failure)
- newPort = findFreePort();
- configuredSourceContext = getDefaultSecureContext(newPort);
+ final int secondPort = findFreePort();
+ configuredSourceContext = getDefaultSecureContext(secondPort);
configuredSourceContext.put("SslContextFactory.IncludeProtocols", "abc
def");
newSource = new HTTPSource();
@@ -426,14 +426,8 @@ public class TestHTTPSource {
newChannel.start();
newSource.start();
- newPostRequest = new HttpPost("http://0.0.0.0:" + newPort);
- try {
- doTestHttps(null, newPort, httpsChannel);
- // We are testing that this fails because we've deliberately
configured the wrong protocols
- Assert.assertTrue(false);
- } catch (AssertionError ex) {
- // no-op
- }
+ newPostRequest = new HttpPost("http://0.0.0.0:" + secondPort);
+ Assert.assertThrows(AssertionError.class, () -> doTestHttps(null,
secondPort, httpsChannel));
newSource.stop();
newChannel.stop();
}
diff --git a/flume-ng-sources/flume-netcat-source/pom.xml
b/flume-ng-sources/flume-netcat-source/pom.xml
index 91aca106..d3292661 100644
--- a/flume-ng-sources/flume-netcat-source/pom.xml
+++ b/flume-ng-sources/flume-netcat-source/pom.xml
@@ -30,6 +30,8 @@
<name>Flume Netcat Source</name>
<properties>
+ <!-- This artifact was never released before -->
+ <bnd.baseline.fail.on.missing>false</bnd.baseline.fail.on.missing>
<!-- TODO fix spotbugs violations -->
<spotbugs.maxAllowedViolations>3</spotbugs.maxAllowedViolations>
<module.name>org.apache.flume.source.netcat</module.name>
diff --git a/flume-ng-sources/flume-syslog-source/pom.xml
b/flume-ng-sources/flume-syslog-source/pom.xml
index ec67429a..f4bf49c1 100644
--- a/flume-ng-sources/flume-syslog-source/pom.xml
+++ b/flume-ng-sources/flume-syslog-source/pom.xml
@@ -30,6 +30,8 @@
<name>Flume Syslog Source</name>
<properties>
+ <!-- This artifact was never released before -->
+ <bnd.baseline.fail.on.missing>false</bnd.baseline.fail.on.missing>
<!-- TODO fix spotbugs violations -->
<spotbugs.maxAllowedViolations>8</spotbugs.maxAllowedViolations>
<module.name>org.apache.flume.source.syslog</module.name>
diff --git
a/flume-ng-sources/flume-syslog-source/src/test/java/org/apache/flume/source/syslog/TestMultiportSyslogTCPSource.java
b/flume-ng-sources/flume-syslog-source/src/test/java/org/apache/flume/source/syslog/TestMultiportSyslogTCPSource.java
index b29d02ed..4976e135 100644
---
a/flume-ng-sources/flume-syslog-source/src/test/java/org/apache/flume/source/syslog/TestMultiportSyslogTCPSource.java
+++
b/flume-ng-sources/flume-syslog-source/src/test/java/org/apache/flume/source/syslog/TestMultiportSyslogTCPSource.java
@@ -19,7 +19,8 @@ package org.apache.flume.source.syslog;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.anyList;
+import static org.mockito.Mockito.doThrow;
import com.google.common.base.Charsets;
import com.google.common.collect.Lists;
diff --git
a/flume-ng-sources/flume-syslog-source/src/test/java/org/apache/flume/source/syslog/TestSyslogUtils.java
b/flume-ng-sources/flume-syslog-source/src/test/java/org/apache/flume/source/syslog/TestSyslogUtils.java
index 9834ca3e..df2ef51d 100644
---
a/flume-ng-sources/flume-syslog-source/src/test/java/org/apache/flume/source/syslog/TestSyslogUtils.java
+++
b/flume-ng-sources/flume-syslog-source/src/test/java/org/apache/flume/source/syslog/TestSyslogUtils.java
@@ -16,7 +16,7 @@
*/
package org.apache.flume.source.syslog;
-import static io.netty.buffer.Unpooled.*;
+import static io.netty.buffer.Unpooled.buffer;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
diff --git
a/flume-ng-sources/flume-taildir-source/src/main/java/org/apache/flume/source/taildir/TaildirSource.java
b/flume-ng-sources/flume-taildir-source/src/main/java/org/apache/flume/source/taildir/TaildirSource.java
index 9ae59e68..8d9c0ef9 100644
---
a/flume-ng-sources/flume-taildir-source/src/main/java/org/apache/flume/source/taildir/TaildirSource.java
+++
b/flume-ng-sources/flume-taildir-source/src/main/java/org/apache/flume/source/taildir/TaildirSource.java
@@ -16,7 +16,29 @@
*/
package org.apache.flume.source.taildir;
-import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.*;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.BATCH_SIZE;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.BYTE_OFFSET_HEADER;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.CACHE_PATTERN_MATCHING;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.DEFAULT_BATCH_SIZE;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.DEFAULT_BYTE_OFFSET_HEADER;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.DEFAULT_CACHE_PATTERN_MATCHING;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.DEFAULT_FILENAME_HEADER_KEY;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.DEFAULT_FILE_HEADER;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.DEFAULT_IDLE_TIMEOUT;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.DEFAULT_MAX_BATCH_COUNT;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.DEFAULT_POSITION_FILE;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.DEFAULT_SKIP_TO_END;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.DEFAULT_WRITE_POS_INTERVAL;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.FILENAME_HEADER;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.FILENAME_HEADER_KEY;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.FILE_GROUPS;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.FILE_GROUPS_PREFIX;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.HEADERS_PREFIX;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.IDLE_TIMEOUT;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.MAX_BATCH_COUNT;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.POSITION_FILE;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.SKIP_TO_END;
+import static
org.apache.flume.source.taildir.TaildirSourceConfigurationConstants.WRITE_POS_INTERVAL;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Preconditions;
diff --git a/flume-parent/pom.xml b/flume-parent/pom.xml
index 39f7e23d..56a3f80b 100644
--- a/flume-parent/pom.xml
+++ b/flume-parent/pom.xml
@@ -15,71 +15,67 @@
~ 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 xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
child.project.url.inherit.append.path="false"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<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>
<relativePath />
</parent>
+
<groupId>org.apache.flume</groupId>
<artifactId>flume-parent</artifactId>
<version>2.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
- <name>Apache Flume</name>
+ <name>Apache Flume Parent</name>
+ <description>Parent POM of all Apache Flume modules.
+ It imports the Flume BOMs and provides the common test dependencies and
build configuration, also for the satellite repositories.</description>
+ <url>https://logging.apache.org/flume/2.x/index.html</url>
<inceptionYear>2009</inceptionYear>
- <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>
-
+ <!-- Override the Log4j-specific mailing lists inherited from
`logging-parent`. -->
<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>
+ <name>flume-users</name>
+ <subscribe>[email protected]</subscribe>
+ <unsubscribe>[email protected]</unsubscribe>
+ <post>[email protected]</post>
+
<archive>https://lists.apache.org/[email protected]</archive>
</mailingList>
<mailingList>
- <name>Flume Developer List</name>
- <subscribe>[email protected]</subscribe>
+ <name>dev</name>
+ <subscribe>[email protected]</subscribe>
<unsubscribe>[email protected]</unsubscribe>
- <post>[email protected]</post>
- <archive>http://mail-archives.apache.org/mod_mbox/flume-dev/</archive>
+ <post>[email protected]</post>
+
<archive>https://lists.apache.org/[email protected]</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 child.scm.connection.inherit.append.path="false"
child.scm.developerConnection.inherit.append.path="false"
child.scm.url.inherit.append.path="false">
+
<connection>scm:git:https://gitbox.apache.org/repos/asf/logging-flume.git</connection>
+
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/logging-flume.git</developerConnection>
+ <tag>rel/${project.version}</tag>
+ <url>https://gitbox.apache.org/repos/asf/logging-flume.git</url>
</scm>
<issueManagement>
- <system>JIRA</system>
- <url>https://issues.apache.org/jira/browse/FLUME</url>
+ <system>GitHub Issues</system>
+ <url>https://github.com/apache/logging-flume/issues</url>
</issueManagement>
<ciManagement>
- <system>jenkins</system>
- <url>https://builds.apache.org/job/flume-trunk</url>
+ <system>GitHub Actions</system>
+ <url>https://github.com/apache/logging-flume/actions</url>
</ciManagement>
<properties>
+
+ <!-- Version of the artifacts released from the main `logging-flume`
repository -->
<flume-project.version>2.0.0-SNAPSHOT</flume-project.version>
<!-- The website is generated by Antora from `flume-project`: skip the
per-module `maven-site-plugin` sites. -->
<maven.site.skip>true</maven.site.skip>
@@ -88,49 +84,28 @@
<!-- Set default encoding to UTF-8 to remove maven complaints -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <!-- Java compiler configuration -->
- <releaseJavaVersion>17</releaseJavaVersion>
-
- <!-- Signing User for release -->
- <GPGSigningUserName>[email protected]</GPGSigningUserName>
+ <!-- Flume generates Java 17 bytecode. Disable all compiler switches
except `release` -->
+ <maven.compiler.source />
+ <maven.compiler.target />
+ <maven.compiler.release>17</maven.compiler.release>
<!-- 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>
+ <redirectTestOutput>true</redirectTestOutput>
- <bundle-plugin.version>2.3.7</bundle-plugin.version>
<curator.version>5.9.0</curator.version>
<fest-reflect.version>1.4.1</fest-reflect.version>
<hadoop.version>3.5.0</hadoop.version>
<junit.version>4.13.2</junit.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>
- <mvn-build-helper-plugin>3.0.0</mvn-build-helper-plugin>
<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-pmd-plugin.version>3.15.0</mvn-pmd-plugin.version>
- <mvn-site-plugin.version>3.9.0</mvn-site-plugin.version>
- <spotbugs.version>4.9.3</spotbugs.version>
-
<mvn-spotbugs-plugin.version>${spotbugs.version}.0</mvn-spotbugs-plugin.version>
- <mvn-surefire-plugin.version>3.5.5</mvn-surefire-plugin.version>
<external.protobuf.version>4.35.0</external.protobuf.version>
<protobuf.plugin.version>0.6.1</protobuf.plugin.version>
- <rat.version>0.12</rat.version>
- <wiremock.version>1.53</wiremock.version>
<os.maven.version>1.7.1</os.maven.version>
- <redirectTestOutput>true</redirectTestOutput>
- <spotless-maven-plugin.version>3.4.0</spotless-maven-plugin.version>
<system-rules.version>1.19.0</system-rules.version>
- <palantir-java-format.version>2.90.0</palantir-java-format.version>
</properties>
<dependencyManagement>
@@ -282,6 +257,21 @@
<version>3.10.8</version>
<scope>test</scope>
</dependency>
+
+ <!-- Transitive dependencies pinned to satisfy `requireUpperBoundDeps`,
+ so that resolution does not depend on declaration order.
+
+ If the check fails here, try:
+ 1. Removing the pin first,
+ 2. Otherwise, bump to the highest version required by our direct
dependencies.
+
+ Dependabot must *not* upgrade these dependencies.
+ -->
+ <dependency>
+ <groupId>com.google.errorprone</groupId>
+ <artifactId>error_prone_annotations</artifactId>
+ <version>2.48.0</version>
+ </dependency>
</dependencies>
</dependencyManagement>
@@ -289,75 +279,19 @@
<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>
- <release>${releaseJavaVersion}</release>
- </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>${flume-project.version}</Specification-Version>
-
<Specification-Vendor>${project.organization.name}</Specification-Vendor>
-
<Implementation-Title>${project.name}</Implementation-Title>
-
<Implementation-Version>${flume-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>
@@ -371,121 +305,12 @@
</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>
- <goals>
- <goal>check</goal>
- </goals>
- <phase>verify</phase>
- </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>
- <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>
- <configuration>
- <effort>Max</effort>
- <threshold>Low</threshold>
- </configuration>
- <executions>
- <execution>
- <id>verify.spotbugs</id>
- <goals>
- <goal>check</goal>
- </goals>
- <phase>verify</phase>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>com.diffplug.spotless</groupId>
- <artifactId>spotless-maven-plugin</artifactId>
- <version>${spotless-maven-plugin.version}</version>
- </plugin>
-
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${mvn-pmd-plugin.version}</version>
<configuration>
- <targetJdk>${releaseJavaVersion}</targetJdk>
+ <targetJdk>${maven.compiler.release}</targetJdk>
<excludeRoots>
<excludeRoot>${project.build.directory}/generated-sources</excludeRoot>
</excludeRoots>
@@ -508,193 +333,21 @@
</plugin>
</plugins>
</pluginManagement>
- <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>
+ <plugins>
- <!-- Configuration here must match the one in `.editorconfig`! -->
+ <!-- Append the Flume-specific exclusions to the Spotless configuration
of `logging-parent`. -->
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<configuration>
<java>
<excludes>
- <!-- Third-party vendored sources: ASF policy forbids adding the
ASF header to them.
- They keep their original header and are formatted by a
dedicated execution
- (see the `guava` execution in `flume-ng-core`). -->
+ <!-- Third-party vendored sources: ASF policy forbids adding the
ASF header to them. -->
<exclude>**/source/shaded/guava/**</exclude>
</excludes>
- <licenseHeader>
- <!-- https://www.apache.org/legal/src-headers.html#headers -->
- <content>/*
- * 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.
- */</content>
- </licenseHeader>
- <palantirJavaFormat>
- <version>${palantir-java-format.version}</version>
- </palantirJavaFormat>
</java>
- <pom>
- <licenseHeader>
- <!-- https://www.apache.org/legal/src-headers.html#headers -->
- <content><?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.
- --></content>
- <delimiter><project</delimiter>
- </licenseHeader>
- <sortPom>
- <expandEmptyElements>false</expandEmptyElements>
- <!-- Maven Release plugin uses this style -->
- <spaceBeforeCloseEmptyElement>true</spaceBeforeCloseEmptyElement>
- </sortPom>
- </pom>
- <formats>
- <format>
- <includes>
- <include>src/**/*.xml</include>
- </includes>
- <excludes>
- <!-- The license header in changelog entry files causing Git
to match irrelevant files.
- This is eventually causing merge conflicts.
- Hence, we avoid enforcing license headers there. -->
- <exclude>src/changelog/**/*.xml</exclude>
- </excludes>
- <licenseHeader>
- <!-- https://www.apache.org/legal/src-headers.html#headers -->
- <content><?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.
- --></content>
- <delimiter><(!DOCTYPE|\w)</delimiter>
- </licenseHeader>
- <endWithNewline />
- <trimTrailingWhitespace />
- </format>
- <format>
- <includes>
- <include>src/**/*.properties</include>
- </includes>
- <licenseHeader>
- <!-- https://www.apache.org/legal/src-headers.html#headers -->
- <content>#
-# 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.
-#</content>
- <delimiter>(##|[^#])</delimiter>
- </licenseHeader>
- <endWithNewline />
- </format>
- </formats>
- <yaml>
- <includes>
- <include>.asf.yaml</include>
- <include>.github/**/*.yaml</include>
- <include>.github/**/*.yml</include>
- <include>src/**/*.yaml</include>
- <include>src/**/*.yml</include>
- </includes>
- <licenseHeader>
- <!-- https://www.apache.org/legal/src-headers.html#headers -->
- <content>#
-# 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.
-#</content>
- <delimiter>(##|[^#])</delimiter>
- </licenseHeader>
- <endWithNewline />
- <trimTrailingWhitespace />
- </yaml>
- <lineEndings>UNIX</lineEndings>
</configuration>
- <dependencies>
- <!-- `com.palantir.javaformat:palantir-java-format` is a fake
dependency to receive updates from `dependabot`, `maven-versions-plugin`, etc.
- This dependency is not needed to be defined here, it is implied
by `<palantirJavaFormat>` element above. -->
- <dependency>
- <groupId>com.palantir.javaformat</groupId>
- <artifactId>palantir-java-format</artifactId>
- <version>${palantir-java-format.version}</version>
- </dependency>
- </dependencies>
- <executions>
- <execution>
- <id>default-spotless</id>
- <goals>
- <goal>check</goal>
- </goals>
- <phase>verify</phase>
- </execution>
- </executions>
</plugin>
<plugin>
@@ -747,6 +400,7 @@
</executions>
</plugin>
</plugins>
+
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
@@ -757,103 +411,28 @@
</build>
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-project-info-reports-plugin</artifactId>
- <reportSets>
- <reportSet>
- <reports>
- <report>ci-management</report>
- <report>distribution-management</report>
- <report>team</report>
- <report>mailing-lists</report>
- <report>issue-management</report>
- <report>licenses</report>
- <report>scm</report>
- </reports>
- </reportSet>
- </reportSets>
- </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>
- </reporting>
-
<profiles>
+ <!-- Read additional RAT exclusions from a `.rat-excludes` file at the
root of the repository, if present.
+ Guarded by a profile, since the plugin fails if `excludesFile` points
to a missing file. -->
<profile>
- <id>not-windows</id>
- <activation>
- <os>
- <family>!Windows</family>
- </os>
- </activation>
- </profile>
-
- <profile>
- <id>windows</id>
+ <id>rat-excludes-file</id>
<activation>
- <os>
- <family>Windows</family>
- </os>
+ <file>
+ <exists>${maven.multiModuleProjectDirectory}/.rat-excludes</exists>
+ </file>
</activation>
- </profile>
-
- <profile>
- <id>sign</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-gpg-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>sign</goal>
- </goals>
- <phase>verify</phase>
- <configuration>
- <keyname>${GPGSigningUserName}</keyname>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
-
- <profile>
- <id>site</id>
-
<build>
<plugins>
<plugin>
- <artifactId>maven-javadoc-plugin</artifactId>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
<configuration>
- <additionalparam>-Xdoclint:none</additionalparam>
+
<excludesFile>${maven.multiModuleProjectDirectory}/.rat-excludes</excludesFile>
</configuration>
- <executions>
- <execution>
- <id>javadoc-jar</id>
- <goals>
- <goal>aggregate-jar</goal>
- </goals>
- <phase>package</phase>
- </execution>
- </executions>
</plugin>
</plugins>
</build>
-
</profile>
<profile>
@@ -862,9 +441,8 @@
<spotbugs.skip>true</spotbugs.skip>
<pmd.skip>true</pmd.skip>
<rat.skip>true</rat.skip>
+ <spotless.check.skip>true</spotless.check.skip>
</properties>
-
</profile>
</profiles>
-
</project>
diff --git a/flume-third-party/pom.xml b/flume-third-party/pom.xml
index 736b4afa..c611d0c9 100644
--- a/flume-third-party/pom.xml
+++ b/flume-third-party/pom.xml
@@ -71,7 +71,7 @@
<snappy-java.version>1.1.10.8</snappy-java.version>
<system-rules.version>1.19.0</system-rules.version>
<zlib.version>1.1.3</zlib.version>
- <zookeeper.version>3.8.6</zookeeper.version>
+ <zookeeper.version>3.9.3</zookeeper.version>
<os.maven.version>1.7.1</os.maven.version>
</properties>
diff --git a/pom.xml b/pom.xml
index a943877f..fb0c5683 100644
--- a/pom.xml
+++ b/pom.xml
@@ -113,4 +113,29 @@
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
+ <profiles>
+
+ <!-- Read additional RAT exclusions from the `.rat-excludes` file at the
root of the repository, if present.
+ The code modules inherit the same profile from `flume-parent`, but
this aggregator does not. -->
+ <profile>
+ <id>rat-excludes-file</id>
+ <activation>
+ <file>
+ <exists>${maven.multiModuleProjectDirectory}/.rat-excludes</exists>
+ </file>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <configuration>
+
<excludesFile>${maven.multiModuleProjectDirectory}/.rat-excludes</excludesFile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
</project>