Skip to content

Commit ce1aaab

Browse files
authored
fix: Use same properties for Native Kafka that are used for Confluent Kafka (#2482)
1 parent deea7dc commit ce1aaab

File tree

10 files changed

+48
-46
lines changed

10 files changed

+48
-46
lines changed

embedded-native-kafka/README.adoc

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
This module provides Apache Kafka Native (GraalVM) support for integration testing using TestContainers.
44
The native Kafka image uses KRaft instead of Zookeeper, providing a simpler and more efficient setup.
55

6+
WARNING: Do not try to use both embedded-kafka and embedded-native-kafka!
7+
68
==== Maven dependency
79

810
.pom.xml
@@ -16,50 +18,50 @@ The native Kafka image uses KRaft instead of Zookeeper, providing a simpler and
1618
----
1719

1820
==== Consumes (via `bootstrap.properties`)
19-
* `embedded.nativekafka.enabled` `(true|false, default is true)`
20-
* `embedded.nativekafka.topicsToCreate` `(comma separated list of topic names, default is empty)`
21-
* `embedded.nativekafka.dockerImage` `(default is set to 'apache/kafka-native:4.0.0')`
21+
* `embedded.kafka.enabled` `(true|false, default is true)`
22+
* `embedded.kafka.topicsToCreate` `(comma separated list of topic names, default is empty)`
23+
* `embedded.kafka.dockerImage` `(default is set to 'apache/kafka-native:4.0.0')`
2224
** Image versions on https://hub.docker.com/r/apache/kafka-native/tags[dockerhub]
23-
* `embedded.nativekafka.waitTimeoutInSeconds` `(default is 60 seconds)`
24-
* `embedded.nativekafka.kafkaPort` `(default is 9092)`
25+
* `embedded.kafka.waitTimeoutInSeconds` `(default is 60 seconds)`
26+
* `embedded.kafka.kafkaPort` `(default is 9092)`
2527

2628
==== Filesystem bindings
2729

2830
Container for `embedded-native-kafka` can bind its volumes to host filesystem.
2931
By default, to your projects `target` folder. You can configure binding using properties:
3032

31-
* `embedded.nativekafka.fileSystemBind.enabled` `(true|false, default is false)`
32-
* `embedded.nativekafka.fileSystemBind.dataFolder` `(default : target/embedded-native-kafka-data)`
33+
* `embedded.kafka.fileSystemBind.enabled` `(true|false, default is false)`
34+
* `embedded.kafka.fileSystemBind.dataFolder` `(default : target/embedded-native-kafka-data)`
3335

3436
==== Produces
3537

36-
* `embedded.nativekafka.bootstrapServers`
37-
* `embedded.nativekafka.brokerList`
38-
* `embedded.nativekafka.networkAlias`
39-
* `embedded.nativekafka.host`
40-
* `embedded.nativekafka.port`
38+
* `embedded.kafka.bootstrapServers`
39+
* `embedded.kafka.brokerList`
40+
* `embedded.kafka.networkAlias`
41+
* `embedded.kafka.host`
42+
* `embedded.kafka.port`
4143

4244
==== Example configuration
4345

4446
.`embedded-native-kafka` configuration (via `bootstrap.properties`)
4547
[source,properties]
4648
----
47-
embedded.nativekafka.topicsToCreate=topic1,topic2
48-
embedded.nativekafka.fileSystemBind.enabled=true
49+
embedded.kafka.topicsToCreate=topic1,topic2
50+
embedded.kafka.fileSystemBind.enabled=true
4951
----
5052

5153
.Application configuration
5254
[source,properties]
5355
----
5456
# Kafka configuration
55-
bootstrap.servers=${embedded.nativekafka.bootstrapServers}
57+
bootstrap.servers=${embedded.kafka.bootstrapServers}
5658
5759
# Consumer configuration
58-
spring.kafka.consumer.bootstrap-servers=${embedded.nativekafka.bootstrapServers}
60+
spring.kafka.consumer.bootstrap-servers=${embedded.kafka.bootstrapServers}
5961
spring.kafka.consumer.group-id=test-group
6062
6163
# Producer configuration
62-
spring.kafka.producer.bootstrap-servers=${embedded.nativekafka.bootstrapServers}
64+
spring.kafka.producer.bootstrap-servers=${embedded.kafka.bootstrapServers}
6365
----
6466

6567
==== Java usage example
@@ -72,7 +74,7 @@ class EmbeddedNativeKafkaTest {
7274
@Autowired
7375
private KafkaTemplate<String, String> kafkaTemplate;
7476
75-
@Value("${embedded.nativekafka.bootstrapServers}")
77+
@Value("${embedded.kafka.bootstrapServers}")
7678
private String bootstrapServers;
7779
7880
@Test

embedded-native-kafka/src/main/java/com/playtika/testcontainer/nativekafka/configuration/EmbeddedNativeKafkaTestOperationsAutoConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@
1919
@AutoConfiguration
2020
@ConditionalOnBean({NativeKafkaConfigurationProperties.class})
2121
@ConditionalOnExpression("${embedded.containers.enabled:true}")
22-
@ConditionalOnProperty(value = {"embedded.nativekafka.enabled"}, havingValue = "true", matchIfMissing = true)
22+
@ConditionalOnProperty(value = {"embedded.kafka.enabled"}, havingValue = "true", matchIfMissing = true)
2323
public class EmbeddedNativeKafkaTestOperationsAutoConfiguration {
2424

2525
@Bean(NATIVE_KAFKA_PACKAGE_PROPERTIES_BEAN_NAME)
26-
@ConfigurationProperties("embedded.nativekafka.install")
26+
@ConfigurationProperties("embedded.kafka.install")
2727
public InstallPackageProperties nativeKafkaPackageProperties() {
2828
return new InstallPackageProperties();
2929
}

embedded-native-kafka/src/main/java/com/playtika/testcontainer/nativekafka/configuration/NativeKafkaContainerConfiguration.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@
3535

3636
@Slf4j
3737
@Configuration
38-
@ConditionalOnProperty(value = "embedded.nativekafka.enabled", havingValue = "true", matchIfMissing = true)
38+
@ConditionalOnProperty(value = "embedded.kafka.enabled", havingValue = "true", matchIfMissing = true)
3939
@EnableConfigurationProperties(value = {NativeKafkaConfigurationProperties.class})
4040
public class NativeKafkaContainerConfiguration {
4141

42-
public static final String NATIVE_KAFKA_HOST_NAME = "native-kafka-broker.testcontainer.docker";
42+
public static final String NATIVE_KAFKA_HOST_NAME = "kafka-broker.testcontainer.docker";
4343

4444
@Bean(destroyMethod = "close")
4545
@ConditionalOnMissingBean(Network.class)
@@ -102,13 +102,13 @@ private void registerNativeKafkaEnvironment(GenericContainer<?> nativeKafka,
102102
LinkedHashMap<String, Object> map = new LinkedHashMap<>();
103103

104104
String bootstrapServers = ((KafkaContainer) nativeKafka).getBootstrapServers();
105-
map.put("embedded.nativekafka.bootstrapServers", bootstrapServers);
106-
map.put("embedded.nativekafka.brokerList", bootstrapServers);
107-
map.put("embedded.nativekafka.networkAlias", NATIVE_KAFKA_HOST_NAME);
108-
map.put("embedded.nativekafka.host", nativeKafka.getHost());
109-
map.put("embedded.nativekafka.port", nativeKafka.getMappedPort(nativeKafkaProperties.getKafkaPort()));
105+
map.put("embedded.kafka.bootstrapServers", bootstrapServers);
106+
map.put("embedded.kafka.brokerList", bootstrapServers);
107+
map.put("embedded.kafka.networkAlias", NATIVE_KAFKA_HOST_NAME);
108+
map.put("embedded.kafka.host", nativeKafka.getHost());
109+
map.put("embedded.kafka.port", nativeKafka.getMappedPort(nativeKafkaProperties.getKafkaPort()));
110110

111-
MapPropertySource propertySource = new MapPropertySource("embeddedNativeKafkaInfo", map);
111+
MapPropertySource propertySource = new MapPropertySource("embeddedKafkaInfo", map);
112112

113113
log.info("Started native kafka broker. Connection details: {}", map);
114114

embedded-native-kafka/src/main/java/com/playtika/testcontainer/nativekafka/properties/NativeKafkaConfigurationProperties.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@
99
import lombok.With;
1010
import org.springframework.boot.context.properties.ConfigurationProperties;
1111

12-
import java.util.Arrays;
1312
import java.util.Collection;
1413
import java.util.Collections;
14+
import java.util.List;
1515

1616
@Data
1717
@EqualsAndHashCode(callSuper = true)
18-
@ConfigurationProperties("embedded.nativekafka")
18+
@ConfigurationProperties("embedded.kafka")
1919
public class NativeKafkaConfigurationProperties extends CommonContainerProperties {
2020

2121
public static final String NATIVE_KAFKA_BEAN_NAME = "nativeKafka";
@@ -32,7 +32,7 @@ public class NativeKafkaConfigurationProperties extends CommonContainerPropertie
3232
protected FileSystemBind fileSystemBind = new FileSystemBind();
3333

3434
public NativeKafkaConfigurationProperties() {
35-
this.setCapabilities(Arrays.asList(Capability.NET_ADMIN));
35+
this.setCapabilities(List.of(Capability.NET_ADMIN));
3636
}
3737

3838
@Override

embedded-native-kafka/src/main/resources/META-INF/additional-spring-configuration-metadata.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,22 @@
33
],
44
"properties": [
55
{
6-
"name": "embedded.nativekafka.enabled",
6+
"name": "embedded.kafka.enabled",
77
"type": "java.lang.Boolean",
88
"defaultValue": "true"
99
}
1010
],
1111
"hints": [
1212
{
13-
"name": "embedded.nativekafka.enabled",
13+
"name": "embedded.kafka.enabled",
1414
"values": [
1515
{
1616
"value": "true",
17-
"description": "Enables configuration of native kafka cluster on startup."
17+
"description": "Enables configuration of kafka cluster on startup."
1818
},
1919
{
2020
"value": "false",
21-
"description": "Disabled configuration of native kafka cluster on startup."
21+
"description": "Disables configuration of kafka cluster on startup."
2222
}
2323
]
2424
}

embedded-native-kafka/src/test/java/com/playtika/testcontainer/nativekafka/AbstractEmbeddedNativeKafkaTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,17 @@
5656

5757
@SpringBootTest(
5858
properties = {
59-
"embedded.nativekafka.topicsToCreate=topic1,topic2,topic3",
60-
"embedded.nativekafka.topicsConfiguration[0].topic=topic3",
61-
"embedded.nativekafka.topicsConfiguration[0].partitions=2"
59+
"embedded.kafka.topicsToCreate=topic1,topic2,topic3",
60+
"embedded.kafka.topicsConfiguration[0].topic=topic3",
61+
"embedded.kafka.topicsConfiguration[0].partitions=2"
6262
},
6363
classes = {AbstractEmbeddedNativeKafkaTest.TestConfiguration.class}
6464
)
6565
public abstract class AbstractEmbeddedNativeKafkaTest {
6666

6767
@Autowired
6868
protected AdminClient adminClient;
69-
@Value("${embedded.nativekafka.bootstrapServers}")
69+
@Value("${embedded.kafka.bootstrapServers}")
7070
protected List<String> nativeKafkaBrokerList;
7171

7272
protected void sendMessage(String topic, String message) throws Exception {
@@ -272,7 +272,7 @@ protected static Path projectDir() throws Exception {
272272
static class TestConfiguration {
273273

274274
@Bean
275-
public AdminClient adminClient(@Value("${embedded.nativekafka.bootstrapServers}") String nativeKafkaBrokerList) {
275+
public AdminClient adminClient(@Value("${embedded.kafka.bootstrapServers}") String nativeKafkaBrokerList) {
276276
Properties config = new Properties();
277277
config.put(BOOTSTRAP_SERVERS_CONFIG, nativeKafkaBrokerList);
278278
return AdminClient.create(config);

embedded-native-kafka/src/test/java/com/playtika/testcontainer/nativekafka/DisableNativeKafkaTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class DisableNativeKafkaTest {
2323
public void contextLoads() {
2424
contextRunner
2525
.withPropertyValues(
26-
"embedded.nativekafka.enabled=false"
26+
"embedded.kafka.enabled=false"
2727
)
2828
.run((context) -> assertThat(context)
2929
.hasNotFailed()

embedded-native-kafka/src/test/java/com/playtika/testcontainer/nativekafka/EmbeddedNativeKafkaTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
@Order(2)
2020
@TestPropertySource(properties = {
21-
"embedded.nativekafka.fileSystemBind.dataFolder=${java.io.tmpdir}/embedded-native-kafka-data-unexpected"
21+
"embedded.kafka.fileSystemBind.dataFolder=${java.io.tmpdir}/embedded-native-kafka-data-unexpected"
2222
})
2323
@TestInstance(PER_CLASS)
2424
@DisplayName("Default embedded-native-kafka setup test")

embedded-native-kafka/src/test/java/com/playtika/testcontainer/nativekafka/EmbeddedNativeKafkaWithBindingTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121

2222
@Order(6)
2323
@TestPropertySource(properties = {
24-
"embedded.nativekafka.waitTimeoutInSeconds=120",
25-
"embedded.nativekafka.fileSystemBind.enabled=true",
26-
"embedded.nativekafka.fileSystemBind.dataFolder=${java.io.tmpdir}/embedded-native-kafka-data" // /tmp is more permissible than target
24+
"embedded.kafka.waitTimeoutInSeconds=120",
25+
"embedded.kafka.fileSystemBind.enabled=true",
26+
"embedded.kafka.fileSystemBind.dataFolder=${java.io.tmpdir}/embedded-native-kafka-data" // /tmp is more permissible than target
2727
})
2828
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
2929
@DisplayName("Test that embedded-native-kafka with filesystem binding")

embedded-native-kafka/src/test/java/com/playtika/testcontainer/nativekafka/configuration/NativeKafkaContainerConfigurationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ void shouldHandleParentDirectoryCreation() throws IOException {
252252
@DisplayName("should verify container host name constant")
253253
void shouldVerifyContainerHostNameConstant() {
254254
assertThat(NativeKafkaContainerConfiguration.NATIVE_KAFKA_HOST_NAME)
255-
.isEqualTo("native-kafka-broker.testcontainer.docker");
255+
.isEqualTo("kafka-broker.testcontainer.docker");
256256
}
257257

258258
@Test

0 commit comments

Comments
 (0)