This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a commit to branch fix/rebase-on-log4j-api-2.x in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit f5def618a596f666f86e73e3b420e65c9ba18c60 Author: Piotr P. Karwasz <[email protected]> AuthorDate: Mon Mar 25 21:19:24 2024 +0100 Adapt `log4j-flume-ng` to Log4j API 2.x --- .../log4j/flume/appender/FlumeEmbeddedManager.java | 28 ++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java index 50fc993f21..be80472cc4 100644 --- a/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java +++ b/log4j-flume-ng/src/main/java/org/apache/logging/log4j/flume/appender/FlumeEmbeddedManager.java @@ -18,6 +18,9 @@ package org.apache.logging.log4j.flume.appender; import static org.apache.logging.log4j.util.Strings.toRootUpperCase; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -29,7 +32,6 @@ import org.apache.logging.log4j.core.appender.ManagerFactory; import org.apache.logging.log4j.core.config.ConfigurationException; import org.apache.logging.log4j.core.config.Property; import org.apache.logging.log4j.kit.env.PropertyEnvironment; -import org.apache.logging.log4j.util.NameUtil; import org.apache.logging.log4j.util.Strings; public class FlumeEmbeddedManager extends AbstractFlumeManager { @@ -106,12 +108,34 @@ public class FlumeEmbeddedManager extends AbstractFlumeManager { props.append(prop.getName()).append('=').append(prop.getValue()); sep = "_"; } - sb.append(NameUtil.md5(props.toString())); + sb.append(md5(props.toString())); } return sb.toString(); } + @SuppressFBWarnings(value = "WEAK_MESSAGE_DIGEST_MD5", justification = "Used to create unique identifiers.") + private static String md5(final String input) { + try { + final byte[] inputBytes = input.getBytes(); + final MessageDigest digest = MessageDigest.getInstance("MD5"); + final byte[] bytes = digest.digest(inputBytes); + final StringBuilder md5 = new StringBuilder(bytes.length * 2); + for (final byte b : bytes) { + md5.append(Character.forDigit((0xFF & b) >> 4, 16)); + md5.append(Character.forDigit(0x0F & b, 16)); + } + return md5.toString(); + } + // Every implementation of the Java platform is required to support MD5. + // Hence, this catch block should be unreachable. + // See https://docs.oracle.com/javase/8/docs/api/java/security/MessageDigest.html + // for details. + catch (final NoSuchAlgorithmException error) { + throw new RuntimeException(error); + } + } + @Override public void send(final Event event) { try {
