Skip to content

Commit 2da4d5d

Browse files
GH-3873: Deprecate JUnit 4 utilities in the project
Signed-off-by: chickenchickenlove <[email protected]>
1 parent 1b7d3df commit 2da4d5d

File tree

5 files changed

+33
-35
lines changed

5 files changed

+33
-35
lines changed

build.gradle

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ ext {
5757
hibernateValidationVersion = '8.0.2.Final'
5858
jacksonBomVersion = '2.18.3'
5959
jaywayJsonPathVersion = '2.9.0'
60-
junit4Version = '4.13.2'
6160
junitJupiterVersion = '5.12.2'
6261
kafkaVersion = '4.0.0'
6362
kotlinCoroutinesVersion = '1.10.2'
@@ -378,9 +377,6 @@ project ('spring-kafka-test') {
378377
api 'org.junit.platform:junit-platform-launcher'
379378
optionalApi "org.hamcrest:hamcrest-core:$hamcrestVersion"
380379
optionalApi "org.mockito:mockito-core:$mockitoVersion"
381-
optionalApi ("junit:junit:$junit4Version") {
382-
exclude group: 'org.hamcrest', module: 'hamcrest-core'
383-
}
384380
optionalApi "org.apache.logging.log4j:log4j-core:$log4jVersion"
385381
}
386382
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2019 the original author or authors.
2+
* Copyright 2002-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -14,32 +14,34 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.kafka.test.rule;
17+
package org.springframework.kafka.test.extensions;
1818

19+
import java.lang.reflect.Method;
1920
import java.util.ArrayList;
2021
import java.util.Arrays;
2122
import java.util.Collections;
2223
import java.util.List;
2324

2425
import org.apache.logging.log4j.Level;
25-
import org.junit.rules.MethodRule;
26-
import org.junit.runners.model.FrameworkMethod;
27-
import org.junit.runners.model.Statement;
26+
import org.junit.jupiter.api.extension.ExtensionContext;
27+
import org.junit.jupiter.api.extension.InvocationInterceptor;
28+
import org.junit.jupiter.api.extension.ReflectiveInvocationContext;
2829

2930
import org.springframework.kafka.test.utils.JUnitUtils;
3031
import org.springframework.kafka.test.utils.JUnitUtils.LevelsContainer;
3132

3233
/**
33-
* A JUnit method &#064;Rule that changes the logger level for a set of classes
34+
* A JUnit extension &#064; that changes the logger level for a set of classes
3435
* while a test method is running. Useful for performance or scalability tests
3536
* where we don't want to generate a large log in a tight inner loop.
3637
*
3738
* @author Dave Syer
3839
* @author Artem Bilan
3940
* @author Gary Russell
41+
* @author Sanghyoek An
4042
*
4143
*/
42-
public class Log4j2LevelAdjuster implements MethodRule {
44+
public class Log4j2LevelAdjuster implements InvocationInterceptor {
4345

4446
private final List<Class<?>> classes;
4547

@@ -60,25 +62,25 @@ public Log4j2LevelAdjuster categories(String... categoriesToAdjust) {
6062
}
6163

6264
@Override
63-
public Statement apply(final Statement base, FrameworkMethod method, Object target) {
64-
return new Statement() {
65-
@Override
66-
public void evaluate() throws Throwable {
67-
LevelsContainer container = null;
68-
try {
69-
container = JUnitUtils.adjustLogLevels(method.getName(),
70-
Log4j2LevelAdjuster.this.classes, Log4j2LevelAdjuster.this.categories,
71-
Log4j2LevelAdjuster.this.level);
72-
base.evaluate();
73-
}
74-
finally {
75-
if (container != null) {
76-
JUnitUtils.revertLevels(method.getName(), container);
77-
}
78-
}
79-
}
65+
public void interceptTestMethod(Invocation<Void> invocation,
66+
ReflectiveInvocationContext<Method> invocationContext,
67+
ExtensionContext extensionContext) throws Throwable {
68+
String methodName = extensionContext.getRequiredTestMethod().getName();
69+
LevelsContainer container = null;
8070

81-
};
71+
try {
72+
container = JUnitUtils.adjustLogLevels(
73+
methodName,
74+
Log4j2LevelAdjuster.this.classes,
75+
Log4j2LevelAdjuster.this.categories,
76+
Log4j2LevelAdjuster.this.level);
77+
invocation.proceed();
78+
}
79+
finally {
80+
if (container != null) {
81+
JUnitUtils.revertLevels(methodName, container);
82+
}
83+
}
8284
}
8385

8486
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/**
2+
* Provides JUnit5 extensions.
3+
*/
4+
@org.jspecify.annotations.NullMarked
5+
package org.springframework.kafka.test.extensions;

spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/package-info.java

Lines changed: 0 additions & 5 deletions
This file was deleted.

spring-kafka-test/src/test/java/org/springframework/kafka/test/rule/AddressableEmbeddedBrokerTests.java renamed to spring-kafka-test/src/test/java/org/springframework/kafka/test/extensions/AddressableEmbeddedBrokerTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.kafka.test.rule;
17+
package org.springframework.kafka.test.extensions;
1818

1919
import java.io.IOException;
2020
import java.net.ServerSocket;

0 commit comments

Comments
 (0)