Skip to content

Commit 7a1dfcc

Browse files
authored
fix(queue-manager-replicated): migrate Kafka tests to Testcontainers 2.x API (#1225)
- Switch from legacy KafkaContainer (cp-kafka:7.6.1) to TC 2.x KafkaContainer (apache/kafka:4.2.0) with proper Docker network listener - Pin single-instance Dev Services to JVM Kafka image (rootless Podman)fix: fixing integration tests issues Signed-off-by: Emmanuel Hugonnet <ehugonne@redhat.com>
1 parent 502368f commit 7a1dfcc

2 files changed

Lines changed: 10 additions & 10 deletions

File tree

‎extras/queue-manager-replicated/tests-multi-instance/tests/src/test/java/org/a2aproject/sdk/extras/queuemanager/replicated/tests/multiinstance/MultiInstanceReplicationTest.java‎

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import org.a2aproject.sdk.spec.Message;
3232
import org.a2aproject.sdk.spec.Task;
3333
import org.a2aproject.sdk.spec.TaskIdParams;
34-
import org.a2aproject.sdk.spec.TaskQueryParams;
3534
import org.a2aproject.sdk.spec.TaskState;
3635
import org.a2aproject.sdk.spec.TransportProtocol;
3736
import org.a2aproject.sdk.testutils.docker.RequiresDocker;
@@ -40,12 +39,12 @@
4039
import org.junit.jupiter.api.BeforeAll;
4140
import org.junit.jupiter.api.Test;
4241
import org.testcontainers.containers.GenericContainer;
43-
import org.testcontainers.containers.KafkaContainer;
4442
import org.testcontainers.containers.Network;
4543
import org.testcontainers.containers.PostgreSQLContainer;
4644
import org.testcontainers.containers.wait.strategy.Wait;
4745
import org.testcontainers.images.builder.ImageFromDockerfile;
4846
import org.testcontainers.junit.jupiter.Testcontainers;
47+
import org.testcontainers.kafka.KafkaContainer;
4948
import org.testcontainers.utility.DockerImageName;
5049

5150
/**
@@ -62,7 +61,7 @@
6261
@RequiresDocker
6362
public class MultiInstanceReplicationTest {
6463

65-
private static final String KAFKA_IMAGE = "confluentinc/cp-kafka:7.6.1";
64+
private static final String KAFKA_IMAGE = "mirror.gcr.io/apache/kafka:4.2.0";
6665
private static final String POSTGRES_IMAGE = "postgres:16-alpine";
6766

6867
private static Network network;
@@ -83,14 +82,14 @@ public class MultiInstanceReplicationTest {
8382
public static void setup() {
8483
// Create a shared network for all containers
8584
network = Network.newNetwork();
86-
85+
8786
// Start Kafka container
88-
kafka = new KafkaContainer(DockerImageName.parse(KAFKA_IMAGE))
87+
kafka = new KafkaContainer(DockerImageName.parse(KAFKA_IMAGE)
88+
.asCompatibleSubstituteFor("apache/kafka"))
8989
.withNetwork(network)
90-
.withNetworkAliases("kafka")
91-
.withEnv("KAFKA_AUTO_CREATE_TOPICS_ENABLE", "true");
90+
.withListener("kafka:19092");
9291
kafka.start();
93-
92+
9493
// Start PostgreSQL container
9594
postgres = new PostgreSQLContainer<>(DockerImageName.parse(POSTGRES_IMAGE))
9695
.withNetwork(network)
@@ -101,8 +100,7 @@ public static void setup() {
101100
postgres.start();
102101

103102
// Get Kafka bootstrap servers for app configuration
104-
// Kafka is accessible within the Docker network as "kafka:9092"
105-
String kafkaBootstrapServers = "kafka:9092";
103+
String kafkaBootstrapServers = "kafka:19092";
106104

107105
// PostgreSQL connection details for apps (using network alias)
108106
String dbUrl = "jdbc:postgresql://postgres:5432/a2adb";

‎extras/queue-manager-replicated/tests-single-instance/src/test/resources/application.properties‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ mp.messaging.incoming.replicated-events-in.value.deserializer=org.apache.kafka.c
1717

1818
# Dev Services for Kafka will automatically start a broker for us
1919
quarkus.kafka.devservices.enabled=true
20+
# Use JVM image instead of native — native image fails on rootless Podman (config dir not writable)
21+
quarkus.kafka.devservices.image-name=mirror.gcr.io/apache/kafka:4.2.0
2022

2123
# Enhanced configuration for faster and more reliable tests
2224
quarkus.kafka.devservices.topic-partitions."replicated-events"=1

0 commit comments

Comments
 (0)