From 2da4d5d3ebb6243a74d6f976dba88ecd951fad1e Mon Sep 17 00:00:00 2001 From: chickenchickenlove Date: Wed, 30 Apr 2025 00:13:03 +0900 Subject: [PATCH 1/4] spring-projectsGH-3873: Deprecate JUnit 4 utilities in the project Signed-off-by: chickenchickenlove --- build.gradle | 4 -- .../Log4j2LevelAdjuster.java | 52 ++++++++++--------- .../kafka/test/extensions/package-info.java | 5 ++ .../kafka/test/rule/package-info.java | 5 -- .../AddressableEmbeddedBrokerTests.java | 2 +- 5 files changed, 33 insertions(+), 35 deletions(-) rename spring-kafka-test/src/main/java/org/springframework/kafka/test/{rule => extensions}/Log4j2LevelAdjuster.java (58%) create mode 100644 spring-kafka-test/src/main/java/org/springframework/kafka/test/extensions/package-info.java delete mode 100644 spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/package-info.java rename spring-kafka-test/src/test/java/org/springframework/kafka/test/{rule => extensions}/AddressableEmbeddedBrokerTests.java (98%) diff --git a/build.gradle b/build.gradle index 037066766f..f9f9765b84 100644 --- a/build.gradle +++ b/build.gradle @@ -57,7 +57,6 @@ ext { hibernateValidationVersion = '8.0.2.Final' jacksonBomVersion = '2.18.3' jaywayJsonPathVersion = '2.9.0' - junit4Version = '4.13.2' junitJupiterVersion = '5.12.2' kafkaVersion = '4.0.0' kotlinCoroutinesVersion = '1.10.2' @@ -378,9 +377,6 @@ project ('spring-kafka-test') { api 'org.junit.platform:junit-platform-launcher' optionalApi "org.hamcrest:hamcrest-core:$hamcrestVersion" optionalApi "org.mockito:mockito-core:$mockitoVersion" - optionalApi ("junit:junit:$junit4Version") { - exclude group: 'org.hamcrest', module: 'hamcrest-core' - } optionalApi "org.apache.logging.log4j:log4j-core:$log4jVersion" } } diff --git a/spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/Log4j2LevelAdjuster.java b/spring-kafka-test/src/main/java/org/springframework/kafka/test/extensions/Log4j2LevelAdjuster.java similarity index 58% rename from spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/Log4j2LevelAdjuster.java rename to spring-kafka-test/src/main/java/org/springframework/kafka/test/extensions/Log4j2LevelAdjuster.java index 31fd8bd9fa..649eaa0ef1 100755 --- a/spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/Log4j2LevelAdjuster.java +++ b/spring-kafka-test/src/main/java/org/springframework/kafka/test/extensions/Log4j2LevelAdjuster.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,32 +14,34 @@ * limitations under the License. */ -package org.springframework.kafka.test.rule; +package org.springframework.kafka.test.extensions; +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import org.apache.logging.log4j.Level; -import org.junit.rules.MethodRule; -import org.junit.runners.model.FrameworkMethod; -import org.junit.runners.model.Statement; +import org.junit.jupiter.api.extension.ExtensionContext; +import org.junit.jupiter.api.extension.InvocationInterceptor; +import org.junit.jupiter.api.extension.ReflectiveInvocationContext; import org.springframework.kafka.test.utils.JUnitUtils; import org.springframework.kafka.test.utils.JUnitUtils.LevelsContainer; /** - * A JUnit method @Rule that changes the logger level for a set of classes + * A JUnit extension @ that changes the logger level for a set of classes * while a test method is running. Useful for performance or scalability tests * where we don't want to generate a large log in a tight inner loop. * * @author Dave Syer * @author Artem Bilan * @author Gary Russell + * @author Sanghyoek An * */ -public class Log4j2LevelAdjuster implements MethodRule { +public class Log4j2LevelAdjuster implements InvocationInterceptor { private final List> classes; @@ -60,25 +62,25 @@ public Log4j2LevelAdjuster categories(String... categoriesToAdjust) { } @Override - public Statement apply(final Statement base, FrameworkMethod method, Object target) { - return new Statement() { - @Override - public void evaluate() throws Throwable { - LevelsContainer container = null; - try { - container = JUnitUtils.adjustLogLevels(method.getName(), - Log4j2LevelAdjuster.this.classes, Log4j2LevelAdjuster.this.categories, - Log4j2LevelAdjuster.this.level); - base.evaluate(); - } - finally { - if (container != null) { - JUnitUtils.revertLevels(method.getName(), container); - } - } - } + public void interceptTestMethod(Invocation invocation, + ReflectiveInvocationContext invocationContext, + ExtensionContext extensionContext) throws Throwable { + String methodName = extensionContext.getRequiredTestMethod().getName(); + LevelsContainer container = null; - }; + try { + container = JUnitUtils.adjustLogLevels( + methodName, + Log4j2LevelAdjuster.this.classes, + Log4j2LevelAdjuster.this.categories, + Log4j2LevelAdjuster.this.level); + invocation.proceed(); + } + finally { + if (container != null) { + JUnitUtils.revertLevels(methodName, container); + } + } } } diff --git a/spring-kafka-test/src/main/java/org/springframework/kafka/test/extensions/package-info.java b/spring-kafka-test/src/main/java/org/springframework/kafka/test/extensions/package-info.java new file mode 100644 index 0000000000..0268df36b5 --- /dev/null +++ b/spring-kafka-test/src/main/java/org/springframework/kafka/test/extensions/package-info.java @@ -0,0 +1,5 @@ +/** + * Provides JUnit5 extensions. + */ +@org.jspecify.annotations.NullMarked +package org.springframework.kafka.test.extensions; diff --git a/spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/package-info.java b/spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/package-info.java deleted file mode 100644 index 44664bc27b..0000000000 --- a/spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Provides JUnit rules. - */ -@org.jspecify.annotations.NullMarked -package org.springframework.kafka.test.rule; diff --git a/spring-kafka-test/src/test/java/org/springframework/kafka/test/rule/AddressableEmbeddedBrokerTests.java b/spring-kafka-test/src/test/java/org/springframework/kafka/test/extensions/AddressableEmbeddedBrokerTests.java similarity index 98% rename from spring-kafka-test/src/test/java/org/springframework/kafka/test/rule/AddressableEmbeddedBrokerTests.java rename to spring-kafka-test/src/test/java/org/springframework/kafka/test/extensions/AddressableEmbeddedBrokerTests.java index 3b73ef8194..2b6ba92b2a 100644 --- a/spring-kafka-test/src/test/java/org/springframework/kafka/test/rule/AddressableEmbeddedBrokerTests.java +++ b/spring-kafka-test/src/test/java/org/springframework/kafka/test/extensions/AddressableEmbeddedBrokerTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.kafka.test.rule; +package org.springframework.kafka.test.extensions; import java.io.IOException; import java.net.ServerSocket; From 077adbee50b81777a09bcefc0ae6464906049cb3 Mon Sep 17 00:00:00 2001 From: chickenchickenlove Date: Thu, 1 May 2025 12:37:48 +0900 Subject: [PATCH 2/4] Revert "spring-projectsGH-3873: Deprecate JUnit 4 utilities in the project" This reverts commit 2da4d5d3ebb6243a74d6f976dba88ecd951fad1e. Signed-off-by: chickenchickenlove --- build.gradle | 4 ++ .../kafka/test/extensions/package-info.java | 5 -- .../Log4j2LevelAdjuster.java | 52 +++++++++---------- .../kafka/test/rule/package-info.java | 5 ++ .../AddressableEmbeddedBrokerTests.java | 2 +- 5 files changed, 35 insertions(+), 33 deletions(-) delete mode 100644 spring-kafka-test/src/main/java/org/springframework/kafka/test/extensions/package-info.java rename spring-kafka-test/src/main/java/org/springframework/kafka/test/{extensions => rule}/Log4j2LevelAdjuster.java (58%) create mode 100644 spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/package-info.java rename spring-kafka-test/src/test/java/org/springframework/kafka/test/{extensions => rule}/AddressableEmbeddedBrokerTests.java (98%) diff --git a/build.gradle b/build.gradle index f9f9765b84..037066766f 100644 --- a/build.gradle +++ b/build.gradle @@ -57,6 +57,7 @@ ext { hibernateValidationVersion = '8.0.2.Final' jacksonBomVersion = '2.18.3' jaywayJsonPathVersion = '2.9.0' + junit4Version = '4.13.2' junitJupiterVersion = '5.12.2' kafkaVersion = '4.0.0' kotlinCoroutinesVersion = '1.10.2' @@ -377,6 +378,9 @@ project ('spring-kafka-test') { api 'org.junit.platform:junit-platform-launcher' optionalApi "org.hamcrest:hamcrest-core:$hamcrestVersion" optionalApi "org.mockito:mockito-core:$mockitoVersion" + optionalApi ("junit:junit:$junit4Version") { + exclude group: 'org.hamcrest', module: 'hamcrest-core' + } optionalApi "org.apache.logging.log4j:log4j-core:$log4jVersion" } } diff --git a/spring-kafka-test/src/main/java/org/springframework/kafka/test/extensions/package-info.java b/spring-kafka-test/src/main/java/org/springframework/kafka/test/extensions/package-info.java deleted file mode 100644 index 0268df36b5..0000000000 --- a/spring-kafka-test/src/main/java/org/springframework/kafka/test/extensions/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Provides JUnit5 extensions. - */ -@org.jspecify.annotations.NullMarked -package org.springframework.kafka.test.extensions; diff --git a/spring-kafka-test/src/main/java/org/springframework/kafka/test/extensions/Log4j2LevelAdjuster.java b/spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/Log4j2LevelAdjuster.java similarity index 58% rename from spring-kafka-test/src/main/java/org/springframework/kafka/test/extensions/Log4j2LevelAdjuster.java rename to spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/Log4j2LevelAdjuster.java index 649eaa0ef1..31fd8bd9fa 100755 --- a/spring-kafka-test/src/main/java/org/springframework/kafka/test/extensions/Log4j2LevelAdjuster.java +++ b/spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/Log4j2LevelAdjuster.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2025 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,34 +14,32 @@ * limitations under the License. */ -package org.springframework.kafka.test.extensions; +package org.springframework.kafka.test.rule; -import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import org.apache.logging.log4j.Level; -import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.api.extension.InvocationInterceptor; -import org.junit.jupiter.api.extension.ReflectiveInvocationContext; +import org.junit.rules.MethodRule; +import org.junit.runners.model.FrameworkMethod; +import org.junit.runners.model.Statement; import org.springframework.kafka.test.utils.JUnitUtils; import org.springframework.kafka.test.utils.JUnitUtils.LevelsContainer; /** - * A JUnit extension @ that changes the logger level for a set of classes + * A JUnit method @Rule that changes the logger level for a set of classes * while a test method is running. Useful for performance or scalability tests * where we don't want to generate a large log in a tight inner loop. * * @author Dave Syer * @author Artem Bilan * @author Gary Russell - * @author Sanghyoek An * */ -public class Log4j2LevelAdjuster implements InvocationInterceptor { +public class Log4j2LevelAdjuster implements MethodRule { private final List> classes; @@ -62,25 +60,25 @@ public Log4j2LevelAdjuster categories(String... categoriesToAdjust) { } @Override - public void interceptTestMethod(Invocation invocation, - ReflectiveInvocationContext invocationContext, - ExtensionContext extensionContext) throws Throwable { - String methodName = extensionContext.getRequiredTestMethod().getName(); - LevelsContainer container = null; - - try { - container = JUnitUtils.adjustLogLevels( - methodName, - Log4j2LevelAdjuster.this.classes, - Log4j2LevelAdjuster.this.categories, - Log4j2LevelAdjuster.this.level); - invocation.proceed(); - } - finally { - if (container != null) { - JUnitUtils.revertLevels(methodName, container); + public Statement apply(final Statement base, FrameworkMethod method, Object target) { + return new Statement() { + @Override + public void evaluate() throws Throwable { + LevelsContainer container = null; + try { + container = JUnitUtils.adjustLogLevels(method.getName(), + Log4j2LevelAdjuster.this.classes, Log4j2LevelAdjuster.this.categories, + Log4j2LevelAdjuster.this.level); + base.evaluate(); + } + finally { + if (container != null) { + JUnitUtils.revertLevels(method.getName(), container); + } + } } - } + + }; } } diff --git a/spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/package-info.java b/spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/package-info.java new file mode 100644 index 0000000000..44664bc27b --- /dev/null +++ b/spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/package-info.java @@ -0,0 +1,5 @@ +/** + * Provides JUnit rules. + */ +@org.jspecify.annotations.NullMarked +package org.springframework.kafka.test.rule; diff --git a/spring-kafka-test/src/test/java/org/springframework/kafka/test/extensions/AddressableEmbeddedBrokerTests.java b/spring-kafka-test/src/test/java/org/springframework/kafka/test/rule/AddressableEmbeddedBrokerTests.java similarity index 98% rename from spring-kafka-test/src/test/java/org/springframework/kafka/test/extensions/AddressableEmbeddedBrokerTests.java rename to spring-kafka-test/src/test/java/org/springframework/kafka/test/rule/AddressableEmbeddedBrokerTests.java index 2b6ba92b2a..3b73ef8194 100644 --- a/spring-kafka-test/src/test/java/org/springframework/kafka/test/extensions/AddressableEmbeddedBrokerTests.java +++ b/spring-kafka-test/src/test/java/org/springframework/kafka/test/rule/AddressableEmbeddedBrokerTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.kafka.test.extensions; +package org.springframework.kafka.test.rule; import java.io.IOException; import java.net.ServerSocket; From c8839a565a0f074684649ba894b6ecab6024596f Mon Sep 17 00:00:00 2001 From: chickenchickenlove Date: Thu, 1 May 2025 14:08:01 +0900 Subject: [PATCH 3/4] Addressing PR review Signed-off-by: chickenchickenlove --- .../antora/modules/ROOT/pages/testing.adoc | 58 ++++++++++++++++--- .../kafka/test/context/EmbeddedKafka.java | 4 +- .../kafka/test/rule/Log4j2LevelAdjuster.java | 5 +- .../AddressableEmbeddedBrokerTests.java | 2 +- 4 files changed, 56 insertions(+), 13 deletions(-) rename spring-kafka-test/src/test/java/org/springframework/kafka/test/{rule => }/AddressableEmbeddedBrokerTests.java (98%) diff --git a/spring-kafka-docs/src/main/antora/modules/ROOT/pages/testing.adoc b/spring-kafka-docs/src/main/antora/modules/ROOT/pages/testing.adoc index b4d6438855..ee5274fab0 100644 --- a/spring-kafka-docs/src/main/antora/modules/ROOT/pages/testing.adoc +++ b/spring-kafka-docs/src/main/antora/modules/ROOT/pages/testing.adoc @@ -121,15 +121,19 @@ The following example configuration creates topics called `cat` and `hat` with f [source, java] ---- +@ExtendWith(SpringExtension.class) +@EmbeddedKafka( + partitions = 5, + topics = {"cat", "hat"} +) public class MyTests { - @ClassRule - private static EmbeddedKafkaRule embeddedKafka = new EmbeddedKafkaRule(1, false, 5, "cat", "hat"); + @Autowired + private EmbeddedKafkaBroker broker; @Test public void test() { - embeddedKafkaRule.getEmbeddedKafka() - .addTopics(new NewTopic("thing1", 10, (short) 1), new NewTopic("thing2", 15, (short) 1)); + broker.addTopics(new NewTopic("thing1", 10, (short) 1), new NewTopic("thing2", 15, (short) 1)); ... } @@ -225,7 +229,7 @@ The following example shows how to use it: [source, java] ---- -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @DirtiesContext @EmbeddedKafka(partitions = 1, topics = { @@ -237,7 +241,7 @@ public class KafkaStreamsTests { private EmbeddedKafkaBroker embeddedKafka; @Test - public void someTest() { + void someTest() { Map consumerProps = KafkaTestUtils.consumerProps("testGroup", "true", this.embeddedKafka); consumerProps.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest"); ConsumerFactory cf = new DefaultKafkaConsumerFactory<>(consumerProps); @@ -333,7 +337,7 @@ The following example shows how to do so: ===== [source, java] ---- -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @SpringBootTest(properties = "spring.autoconfigure.exclude=" + "org.springframework.cloud.stream.test.binder.TestSupportBinderAutoConfiguration") public class MyApplicationTests { @@ -350,6 +354,38 @@ They include: * xref:testing.adoc#kafka-testing-junit4-class-rule[JUnit4 Class Rule] * xref:testing.adoc#kafka-testing-embeddedkafka-annotation[`@EmbeddedKafka` Annotation or `EmbeddedKafkaBroker` Bean] +[[kafka-testing-junit4-embedded-broker]] +=== Junit4 Embedded Broker + +The following example shows how to create an embedded broker in Junit4: +[source, java] +---- +@SpringBootTest +public class MyApplicationTests { + + @Autowired + private final EmbeddedKafkaBroker broker; + + @Autowired + private KafkaTemplate template; + + @Test + public void test() { + ... + } + + @Configuration + public static class MyConfiguration { + @Bean + public EmbeddedKafkaBroker embeddedKafkaBroker() { + return new EmbeddedKafkaKraftBroker(1, 1, "someTopic"); + } + + } + +} +---- + [[kafka-testing-junit4-class-rule]] === JUnit4 Class Rule @@ -378,6 +414,10 @@ public class MyApplicationTests { Notice that, since this is a Spring Boot application, we override the broker list property to set Spring Boot's property. +NOTE: The `EmbeddedKafkaRule` JUnit 4 rule has been removed in version 4.0. +For JUnit 4, you should use the `EmbeddedKafkaKraftBroker` directly or migrate to JUnit 5 with the `@EmbeddedKafka` annotation. +Please refer to xref:kafka-testing-junit4-embedded-broker[Junit4 Embedded Broker] + [[embedded-broker-with-springjunitconfig-annotations]] == `@EmbeddedKafka` with `@SpringJunitConfig` @@ -395,7 +435,7 @@ The following example shows how to use an `@EmbeddedKafka` Annotation to create [source, java] ---- -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @EmbeddedKafka(topics = "someTopic", bootstrapServersProperty = "spring.kafka.bootstrap-servers") // this is now the default public class MyApplicationTests { @@ -404,7 +444,7 @@ public class MyApplicationTests { private KafkaTemplate template; @Test - public void test() { + void test() { ... } diff --git a/spring-kafka-test/src/main/java/org/springframework/kafka/test/context/EmbeddedKafka.java b/spring-kafka-test/src/main/java/org/springframework/kafka/test/context/EmbeddedKafka.java index 1e35a71e1e..e6d6a0c499 100644 --- a/spring-kafka-test/src/main/java/org/springframework/kafka/test/context/EmbeddedKafka.java +++ b/spring-kafka-test/src/main/java/org/springframework/kafka/test/context/EmbeddedKafka.java @@ -43,7 +43,7 @@ *

* The typical usage of this annotation is like: *

- * @RunWith(SpringRunner.class)
+ * @ExtendWith(SpringExtension.class)
  * @EmbeddedKafka
  * public class MyKafkaTests {
  *
@@ -67,6 +67,7 @@
  * @author Pawel Lozinski
  * @author Adrian Chlebosz
  * @author Soby Chacko
+ * @author Sanghyeok An
  *
  * @since 1.3
  *
@@ -169,4 +170,3 @@
 	int adminTimeout() default EmbeddedKafkaBroker.DEFAULT_ADMIN_TIMEOUT;
 
 }
-
diff --git a/spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/Log4j2LevelAdjuster.java b/spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/Log4j2LevelAdjuster.java
index 31fd8bd9fa..1a90dca7f2 100755
--- a/spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/Log4j2LevelAdjuster.java
+++ b/spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/Log4j2LevelAdjuster.java
@@ -37,8 +37,11 @@
  * @author Dave Syer
  * @author Artem Bilan
  * @author Gary Russell
- *
+ * @author Sanghyeok An
+ * @deprecated since Spring for Apache Kafka 4.0 in favor of the
+ * {@link org.springframework.kafka.test.condition.LogLevels} and JUnit Jupiter.
  */
+@Deprecated(since = "4.0")
 public class Log4j2LevelAdjuster implements MethodRule {
 
 	private final List> classes;
diff --git a/spring-kafka-test/src/test/java/org/springframework/kafka/test/rule/AddressableEmbeddedBrokerTests.java b/spring-kafka-test/src/test/java/org/springframework/kafka/test/AddressableEmbeddedBrokerTests.java
similarity index 98%
rename from spring-kafka-test/src/test/java/org/springframework/kafka/test/rule/AddressableEmbeddedBrokerTests.java
rename to spring-kafka-test/src/test/java/org/springframework/kafka/test/AddressableEmbeddedBrokerTests.java
index 3b73ef8194..ceccb9476e 100644
--- a/spring-kafka-test/src/test/java/org/springframework/kafka/test/rule/AddressableEmbeddedBrokerTests.java
+++ b/spring-kafka-test/src/test/java/org/springframework/kafka/test/AddressableEmbeddedBrokerTests.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package org.springframework.kafka.test.rule;
+package org.springframework.kafka.test;
 
 import java.io.IOException;
 import java.net.ServerSocket;

From 6fe547088569bc622acc6e5603d13844b77f24c5 Mon Sep 17 00:00:00 2001
From: chickenchickenlove 
Date: Thu, 1 May 2025 14:15:28 +0900
Subject: [PATCH 4/4] Fixes lint error.

Signed-off-by: chickenchickenlove 
---
 .../kafka/test/AddressableEmbeddedBrokerTests.java               | 1 -
 1 file changed, 1 deletion(-)

diff --git a/spring-kafka-test/src/test/java/org/springframework/kafka/test/AddressableEmbeddedBrokerTests.java b/spring-kafka-test/src/test/java/org/springframework/kafka/test/AddressableEmbeddedBrokerTests.java
index ceccb9476e..8c58e651df 100644
--- a/spring-kafka-test/src/test/java/org/springframework/kafka/test/AddressableEmbeddedBrokerTests.java
+++ b/spring-kafka-test/src/test/java/org/springframework/kafka/test/AddressableEmbeddedBrokerTests.java
@@ -32,7 +32,6 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.kafka.test.EmbeddedKafkaKraftBroker;
 import org.springframework.kafka.test.utils.KafkaTestUtils;
 import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;