You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2022/08/08 09:04:28 UTC
[pulsar] 24/33: [fix][broker] Upgrade log4j2 version to 2.18.0 (#16884)
This is an automated email from the ASF dual-hosted git repository.
penghui pushed a commit to branch branch-2.10
in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit 62ccfaab8fc6cc96ee36fe478e078f4c66b2a4d5
Author: Dezhi LIiu <33...@users.noreply.github.com>
AuthorDate: Tue Aug 2 16:00:49 2022 +0800
[fix][broker] Upgrade log4j2 version to 2.18.0 (#16884)
* Upgrade log4j2.version to 2.18.0
* update versions in license files
* fix EnvironmentBasedSecretsProviderTest error
Co-authored-by: liudezhi <li...@163.com>
(cherry picked from commit 09ec578dd0b710d2591b06c2ede0e2591bce84e7)
---
buildtools/pom.xml | 2 +-
distribution/server/src/assemble/LICENSE.bin.txt | 8 +--
pom.xml | 10 +++-
.../EnvironmentBasedSecretsProviderTest.java | 25 ++------
.../flume/node/TestEnvVarResolverProperties.java | 68 +++++++++-------------
5 files changed, 44 insertions(+), 69 deletions(-)
diff --git a/buildtools/pom.xml b/buildtools/pom.xml
index 6b9029e71cc..9d65a5465dd 100644
--- a/buildtools/pom.xml
+++ b/buildtools/pom.xml
@@ -39,7 +39,7 @@
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<surefire.version>3.0.0-M3</surefire.version>
- <log4j2.version>2.17.1</log4j2.version>
+ <log4j2.version>2.18.0</log4j2.version>
<slf4j.version>1.7.32</slf4j.version>
<testng.version>7.3.0</testng.version>
<commons-lang3.version>3.11</commons-lang3.version>
diff --git a/distribution/server/src/assemble/LICENSE.bin.txt b/distribution/server/src/assemble/LICENSE.bin.txt
index 5f6010d75c8..a0b754b72c2 100644
--- a/distribution/server/src/assemble/LICENSE.bin.txt
+++ b/distribution/server/src/assemble/LICENSE.bin.txt
@@ -390,10 +390,10 @@ The Apache Software License, Version 2.0
- jakarta.validation-jakarta.validation-api-2.0.2.jar
- javax.validation-validation-api-1.1.0.Final.jar
* Log4J
- - org.apache.logging.log4j-log4j-api-2.17.1.jar
- - org.apache.logging.log4j-log4j-core-2.17.1.jar
- - org.apache.logging.log4j-log4j-slf4j-impl-2.17.1.jar
- - org.apache.logging.log4j-log4j-web-2.17.1.jar
+ - org.apache.logging.log4j-log4j-api-2.18.0.jar
+ - org.apache.logging.log4j-log4j-core-2.18.0.jar
+ - org.apache.logging.log4j-log4j-slf4j-impl-2.18.0.jar
+ - org.apache.logging.log4j-log4j-web-2.18.0.jar
* Java Native Access JNA -- net.java.dev.jna-jna-4.2.0.jar
* BookKeeper
- org.apache.bookkeeper-bookkeeper-common-4.14.5.jar
diff --git a/pom.xml b/pom.xml
index 90da5d763bd..a607cc67e8f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -121,7 +121,7 @@ flexible messaging model and an intuitive client API.</description>
<rocksdb.version>6.10.2</rocksdb.version>
<slf4j.version>1.7.32</slf4j.version>
<commons.collections.version>3.2.2</commons.collections.version>
- <log4j2.version>2.17.1</log4j2.version>
+ <log4j2.version>2.18.0</log4j2.version>
<bouncycastle.version>1.69</bouncycastle.version>
<bouncycastlefips.version>1.0.2</bouncycastlefips.version>
<jackson.version>2.13.2</jackson.version>
@@ -138,6 +138,7 @@ flexible messaging model and an intuitive client API.</description>
<perfmark.version>0.19.0</perfmark.version>
<protoc-gen-grpc-java.version>${grpc.version}</protoc-gen-grpc-java.version>
<gson.version>2.8.9</gson.version>
+ <system-lambda.version>1.2.1</system-lambda.version>
<sketches.version>0.8.3</sketches.version>
<hbc-core.version>2.2.0</hbc-core.version>
<cassandra-driver-core.version>3.6.0</cassandra-driver-core.version>
@@ -1298,6 +1299,13 @@ flexible messaging model and an intuitive client API.</description>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>com.github.stefanbirkner</groupId>
+ <artifactId>system-lambda</artifactId>
+ <version>${system-lambda.version}</version>
+ <scope>test</scope>
+ </dependency>
+
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-reflect</artifactId>
diff --git a/pulsar-functions/secrets/src/test/java/org/apache/pulsar/functions/secretsprovider/EnvironmentBasedSecretsProviderTest.java b/pulsar-functions/secrets/src/test/java/org/apache/pulsar/functions/secretsprovider/EnvironmentBasedSecretsProviderTest.java
index 8dbc880fa16..ef4d41ee80c 100644
--- a/pulsar-functions/secrets/src/test/java/org/apache/pulsar/functions/secretsprovider/EnvironmentBasedSecretsProviderTest.java
+++ b/pulsar-functions/secrets/src/test/java/org/apache/pulsar/functions/secretsprovider/EnvironmentBasedSecretsProviderTest.java
@@ -21,11 +21,7 @@ package org.apache.pulsar.functions.secretsprovider;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNull;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.powermock.reflect.Whitebox;
+import com.github.stefanbirkner.systemlambda.SystemLambda;
import org.testng.annotations.Test;
public class EnvironmentBasedSecretsProviderTest {
@@ -33,22 +29,9 @@ public class EnvironmentBasedSecretsProviderTest {
public void testConfigValidation() throws Exception {
EnvironmentBasedSecretsProvider provider = new EnvironmentBasedSecretsProvider();
assertNull(provider.provideSecret("mySecretName", "Ignored"));
- injectEnvironmentVariable("mySecretName", "SecretValue");
- assertEquals(provider.provideSecret("mySecretName", "Ignored"), "SecretValue");
+ SystemLambda.withEnvironmentVariable("mySecretName", "SecretValue").execute(() -> {
+ assertEquals(provider.provideSecret("mySecretName", "Ignored"), "SecretValue");
+ });
}
- private static void injectEnvironmentVariable(String key, String value)
- throws Exception {
-
- Class<?> processEnvironment = Class.forName("java.lang.ProcessEnvironment");
- Map<String,String> unmodifiableMap = new HashMap<>(Whitebox
- .getInternalState(processEnvironment, "theUnmodifiableEnvironment"));
- unmodifiableMap.put(key, value);
- Whitebox.setInternalState(processEnvironment, "theUnmodifiableEnvironment", unmodifiableMap);
-
- Map<String,String> envMap = new HashMap<>(Whitebox
- .getInternalState(processEnvironment, "theEnvironment"));
- envMap.put(key, value);
- Whitebox.setInternalState(processEnvironment, "theEnvironment", envMap);
- }
}
diff --git a/pulsar-io/flume/src/test/java/org/apache/pulsar/io/flume/node/TestEnvVarResolverProperties.java b/pulsar-io/flume/src/test/java/org/apache/pulsar/io/flume/node/TestEnvVarResolverProperties.java
index 42a055c7a18..91052f36e10 100644
--- a/pulsar-io/flume/src/test/java/org/apache/pulsar/io/flume/node/TestEnvVarResolverProperties.java
+++ b/pulsar-io/flume/src/test/java/org/apache/pulsar/io/flume/node/TestEnvVarResolverProperties.java
@@ -18,18 +18,14 @@
*/
package org.apache.pulsar.io.flume.node;
+import static org.testng.Assert.assertEquals;
+import com.github.stefanbirkner.systemlambda.SystemLambda;
import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-
-import lombok.SneakyThrows;
-import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import org.powermock.reflect.Whitebox;
public final class TestEnvVarResolverProperties {
- private static final File TESTFILE = new File(
+ private static final File TEST_FILE = new File(
TestEnvVarResolverProperties.class.getClassLoader()
.getResource("flume-conf-with-envvars.properties").getFile());
@@ -37,49 +33,37 @@ public final class TestEnvVarResolverProperties {
@Before
public void setUp() {
- provider = new PropertiesFileConfigurationProvider("a1", TESTFILE);
+ provider = new PropertiesFileConfigurationProvider("a1", TEST_FILE);
}
@Test
- public void resolveEnvVar() {
- injectEnvironmentVariable("VARNAME", "varvalue");
- String resolved = EnvVarResolverProperties.resolveEnvVars("padding ${VARNAME} padding");
- Assert.assertEquals("padding varvalue padding", resolved);
+ public void resolveEnvVar() throws Exception {
+ SystemLambda.withEnvironmentVariable("VARNAME", "varvalue").execute(() -> {
+ String resolved = EnvVarResolverProperties.resolveEnvVars("padding ${VARNAME} padding");
+ assertEquals(resolved, "padding varvalue padding");
+ });
}
@Test
- public void resolveEnvVars() {
- injectEnvironmentVariable("VARNAME1", "varvalue1");
- injectEnvironmentVariable("VARNAME2", "varvalue2");
- String resolved = EnvVarResolverProperties
- .resolveEnvVars("padding ${VARNAME1} ${VARNAME2} padding");
- Assert.assertEquals("padding varvalue1 varvalue2 padding", resolved);
+ public void resolveEnvVars() throws Exception {
+ SystemLambda.withEnvironmentVariable("VARNAME1", "varvalue1")
+ .and("VARNAME2", "varvalue2")
+ .execute(() -> {
+ String resolved = EnvVarResolverProperties.resolveEnvVars(
+ "padding ${VARNAME1} ${VARNAME2} padding");
+ assertEquals(resolved, "padding varvalue1 varvalue2 padding");
+ });
}
@Test
- public void getProperty() {
- String NC_PORT = "6667";
- injectEnvironmentVariable("NC_PORT", NC_PORT);
- System.setProperty("propertiesImplementation",
- "org.apache.pulsar.io.flume.node.EnvVarResolverProperties");
-
- Assert.assertEquals(NC_PORT, provider.getFlumeConfiguration()
- .getConfigurationFor("a1")
- .getSourceContext().get("r1").getParameters().get("port"));
- }
-
- @SneakyThrows
- private static void injectEnvironmentVariable(String key, String value) {
-
- Class<?> processEnvironment = Class.forName("java.lang.ProcessEnvironment");
- Map<String,String> unmodifiableMap = new HashMap<>(Whitebox
- .getInternalState(processEnvironment, "theUnmodifiableEnvironment"));
- unmodifiableMap.put(key, value);
- Whitebox.setInternalState(processEnvironment, "theUnmodifiableEnvironment", unmodifiableMap);
+ public void getProperty() throws Exception {
+ SystemLambda.withEnvironmentVariable("NC_PORT", "6667").execute(() -> {
+ System.setProperty("propertiesImplementation",
+ "org.apache.pulsar.io.flume.node.EnvVarResolverProperties");
- Map<String,String> envMap = new HashMap<>(Whitebox
- .getInternalState(processEnvironment, "theEnvironment"));
- envMap.put(key, value);
- Whitebox.setInternalState(processEnvironment, "theEnvironment", envMap);
+ assertEquals(provider.getFlumeConfiguration()
+ .getConfigurationFor("a1")
+ .getSourceContext().get("r1").getParameters().get("port"), "6667");
+ });
}
-}
+}
\ No newline at end of file