Skip to content

Commit 707a4c9

Browse files
authored
Upgrade Log4j to 2.25.3 (#18522)
* Upgrade Log4j to 2.25.3 - Use PluginProcessor explicitly to skip GraalVmProcessor - Update test dependency from log4j-core:tests to log4j-core-test module - Update test imports for relocated packages in Log4j 2.24+: - org.apache.logging.log4j.junit -> org.apache.logging.log4j.core.test.junit - org.apache.logging.log4j.test.appender -> org.apache.logging.log4j.core.test.appender - Add @SuppressWarnings for deprecated Message.getFormat() and EventLogger - Fix ObjectMappersTest to not assume fixed serializer ordering * minor fix
1 parent f9d8b77 commit 707a4c9

File tree

10 files changed

+41
-23
lines changed

10 files changed

+41
-23
lines changed

logstash-core/build.gradle

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,14 @@ String jacksonVersion = versionMap['jackson']
4545
String jacksonDatabindVersion = versionMap['jackson-databind']
4646
String jrubyVersion = versionMap['jruby']['version']
4747

48-
String log4jVersion = '2.17.2'
48+
String log4jVersion = '2.25.3'
49+
50+
// Specifically call use of PluginProcessor to skip GraalVmProcessor (not needed)
51+
tasks.named('compileJava') {
52+
options.compilerArgs.addAll([
53+
"-processor", "org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor"
54+
])
55+
}
4956

5057
tasks.register("sourcesJar", Jar) {
5158
dependsOn classes
@@ -242,7 +249,7 @@ dependencies {
242249
exclude group: 'com.google.guava', module: 'guava'
243250
}
244251
implementation 'org.javassist:javassist:3.30.2-GA'
245-
testImplementation "org.apache.logging.log4j:log4j-core:${log4jVersion}:tests"
252+
testImplementation "org.apache.logging.log4j:log4j-core-test:${log4jVersion}"
246253
testImplementation 'org.hamcrest:hamcrest:2.2'
247254
testImplementation 'org.hamcrest:hamcrest-library:2.2'
248255
testImplementation 'junit:junit:4.13.2'

logstash-core/src/main/java/org/logstash/log/StructuredMessage.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public String getFormattedMessage() {
8888
return formatted;
8989
}
9090

91+
@SuppressWarnings("deprecation")
9192
@Override
9293
public String getFormat() {
9394
return null;

logstash-core/src/test/java/org/logstash/ObjectMappersTest.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,22 @@ public void testLog4jOMRegisterRubyBasicObjectSerializersFirst() {
4141
list.add(serializer);
4242
}
4343

44-
// RubyBasicObjectSerializer + Log4jJsonModule
44+
// RubyBasicObjectSerializer + Log4jJsonModule + potentially other modules
4545
assertTrue(list.size() > 1);
4646

47-
final Serializers rubyBasicObjectSerializer = list.get(list.size() - 2);
47+
// Find the RubyBasicObjectSerializer among the registered serializers
4848
final JavaType valueType = TypeFactory.defaultInstance().constructType(RubyBasicObject.class);
49-
final JsonSerializer<?> found = rubyBasicObjectSerializer.findSerializer(mapper.getSerializationConfig(), valueType, null);
49+
JsonSerializer<?> found = null;
50+
for (Serializers serializer : list) {
51+
JsonSerializer<?> candidate = serializer.findSerializer(mapper.getSerializationConfig(), valueType, null);
52+
if (candidate instanceof RubyBasicObjectSerializer) {
53+
found = candidate;
54+
break;
55+
}
56+
}
5057

51-
assertNotNull(found);
52-
assertTrue("RubyBasicObjectSerializer must be registered before others non-default serializers", found instanceof RubyBasicObjectSerializer);
58+
assertNotNull("RubyBasicObjectSerializer must be registered", found);
59+
assertTrue("RubyBasicObjectSerializer must be registered", found instanceof RubyBasicObjectSerializer);
5360
}
5461

5562
@Test

logstash-core/src/test/java/org/logstash/execution/ShutdownWatcherExtTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
import java.util.stream.IntStream;
3636
import javax.annotation.concurrent.NotThreadSafe;
3737

38-
import org.apache.logging.log4j.junit.LoggerContextRule;
39-
import org.apache.logging.log4j.test.appender.ListAppender;
38+
import org.apache.logging.log4j.core.test.junit.LoggerContextRule;
39+
import org.apache.logging.log4j.core.test.appender.ListAppender;
4040
import org.assertj.core.api.Assertions;
4141
import org.jruby.RubySystemExit;
4242
import org.jruby.exceptions.RaiseException;

logstash-core/src/test/java/org/logstash/jackson/StreamReadConstraintsUtilTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import com.fasterxml.jackson.core.StreamReadConstraints;
44
import org.apache.logging.log4j.Logger;
55
import org.apache.logging.log4j.core.LogEvent;
6-
import org.apache.logging.log4j.junit.LoggerContextRule;
7-
import org.apache.logging.log4j.test.appender.ListAppender;
6+
import org.apache.logging.log4j.core.test.junit.LoggerContextRule;
7+
import org.apache.logging.log4j.core.test.appender.ListAppender;
88
import org.junit.Before;
99
import org.junit.ClassRule;
1010
import org.junit.Rule;

logstash-core/src/test/java/org/logstash/log/CustomLogEventTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@
4848
import org.apache.logging.log4j.LogManager;
4949
import org.apache.logging.log4j.Logger;
5050
import org.apache.logging.log4j.ThreadContext;
51-
import org.apache.logging.log4j.junit.LoggerContextRule;
52-
import org.apache.logging.log4j.test.appender.ListAppender;
51+
import org.apache.logging.log4j.core.test.junit.LoggerContextRule;
52+
import org.apache.logging.log4j.core.test.appender.ListAppender;
5353
import org.jruby.RubyHash;
5454
import org.jruby.runtime.builtin.IRubyObject;
5555
import org.junit.After;

logstash-core/src/test/java/org/logstash/log/LogstashConfigurationFactoryTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import org.apache.logging.log4j.core.config.Configuration;
3131

3232
import org.apache.logging.log4j.core.LoggerContext;
33-
import org.apache.logging.log4j.test.appender.ListAppender;
33+
import org.apache.logging.log4j.core.test.appender.ListAppender;
3434
import org.junit.*;
3535

3636
import java.util.List;

logstash-core/src/test/java/org/logstash/log/PipelineRoutingAppenderTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
import org.apache.logging.log4j.core.LoggerContext;
66
import org.apache.logging.log4j.core.config.AppenderControl;
77
import org.apache.logging.log4j.core.config.Configuration;
8-
import org.apache.logging.log4j.junit.LoggerContextRule;
8+
import org.apache.logging.log4j.core.test.junit.LoggerContextRule;
99
import org.apache.logging.log4j.message.StructuredDataMessage;
10-
import org.apache.logging.log4j.test.appender.ListAppender;
10+
import org.apache.logging.log4j.core.test.appender.ListAppender;
1111
import org.junit.After;
1212
import org.junit.Rule;
1313
import org.junit.Test;
@@ -38,6 +38,7 @@ public void tearDown() {
3838
this.loggerContextRule.getLoggerContext().stop();
3939
}
4040

41+
@SuppressWarnings("deprecation")
4142
@Test
4243
public void routingTest() {
4344
final String pipelineId = "test_pipeline";

logstash-core/src/test/java/org/logstash/settings/ValidatedPasswordSettingTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
package org.logstash.settings;
2020

2121
import co.elastic.logstash.api.Password;
22-
import org.apache.logging.log4j.junit.LoggerContextRule;
23-
import org.apache.logging.log4j.test.appender.ListAppender;
22+
import org.apache.logging.log4j.core.test.junit.LoggerContextRule;
23+
import org.apache.logging.log4j.core.test.appender.ListAppender;
2424
import org.junit.Before;
2525
import org.junit.ClassRule;
2626
import org.junit.Test;

qa/rspec/commands/base.rb

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,13 @@ def exit_status
3939
end
4040

4141
def execute(cmdline)
42-
Open3.popen3(cmdline) do |stdin, stdout, stderr, wait_thr|
43-
@stdout = stdout.read.chomp
44-
@stderr = stderr.read.chomp
45-
@exit_status = wait_thr.value.exitstatus
46-
end
42+
# use of capture3 gives us strings instead of raw io objects
43+
# this helps not having to deal with IO streams being full
44+
# and requiring multi threaded reading to prevent tests being blocked
45+
@stdout, @stderr, status = Open3.capture3(cmdline)
46+
@stdout.chomp!
47+
@stderr.chomp!
48+
@exit_status = status.exitstatus
4749
end
4850
end
4951

0 commit comments

Comments
 (0)