diff --git a/spring-kafka-test/src/main/java/org/springframework/kafka/test/EmbeddedKafkaBroker.java b/spring-kafka-test/src/main/java/org/springframework/kafka/test/EmbeddedKafkaBroker.java index 9f52d68c60..850e3c4484 100644 --- a/spring-kafka-test/src/main/java/org/springframework/kafka/test/EmbeddedKafkaBroker.java +++ b/spring-kafka-test/src/main/java/org/springframework/kafka/test/EmbeddedKafkaBroker.java @@ -18,7 +18,9 @@ import java.io.File; import java.io.IOException; +import java.io.UncheckedIOException; import java.net.InetSocketAddress; +import java.nio.file.Files; import java.time.Duration; import java.util.ArrayList; import java.util.Arrays; @@ -30,6 +32,7 @@ import java.util.Map; import java.util.Properties; import java.util.Set; +import java.util.UUID; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; @@ -279,6 +282,7 @@ public synchronized EmbeddedKafkaBroker zkSessionTimeout(int zkSessionTimeout) { @Override public void afterPropertiesSet() { + logDir(); overrideExitMethods(); try { this.zookeeper = new EmbeddedZookeeper(this.zkPort); @@ -316,6 +320,18 @@ public void afterPropertiesSet() { System.setProperty(SPRING_EMBEDDED_ZOOKEEPER_CONNECT, getZookeeperConnectionString()); } + private void logDir() { + if (this.brokerProperties.get(KafkaConfig.LogDirProp()) == null) { + try { + this.brokerProperties.put(KafkaConfig.LogDirProp(), + Files.createTempDirectory("spring.kafka." + UUID.randomUUID()).toString()); + } + catch (IOException e) { + throw new UncheckedIOException(e); + } + } + } + private void overrideExitMethods() { String exitMsg = "Exit.%s(%d, %s) called"; Exit.setExitProcedure((statusCode, message) -> {