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 <[email protected]> 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 <[email protected]> (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
