1 package de.juplo.kafka.chat.backend;
3 import lombok.extern.slf4j.Slf4j;
4 import org.testcontainers.containers.Container;
5 import org.testcontainers.containers.KafkaContainer;
6 import org.testcontainers.containers.output.Slf4jLogConsumer;
7 import org.testcontainers.containers.wait.strategy.Wait;
8 import org.testcontainers.utility.DockerImageName;
10 import java.io.IOException;
14 class KafkaAbstractHandoverITContainers extends AbstractHandoverITContainers
16 private final KafkaContainer kafka;
19 KafkaAbstractHandoverITContainers()
21 kafka = createKafkaContainer();
26 void setUpExtra() throws IOException, InterruptedException
30 Container.ExecResult result;
31 result = kafka.execInContainer(
41 "EXIT-CODE={}, STDOUT={}, STDERR={}",
45 result = kafka.execInContainer(
55 "EXIT-CODE={}, STDOUT={}, STDERR={}",
61 private final KafkaContainer createKafkaContainer()
63 return new KafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:7.4.0"))
65 .withNetworkAliases("kafka")
66 .withListener(() -> "kafka:9999")
68 .waitingFor(Wait.forLogMessage(".*Kafka\\ Server\\ started.*\\n", 1))
69 .withLogConsumer(new Slf4jLogConsumer(log, true).withPrefix("KAFKA"));
73 String[] getBackendCommand()
77 "--chat.backend.instance-id=backend-ID",
78 "--chat.backend.services=kafka",
79 "--chat.backend.kafka.bootstrap-servers=kafka:9999",
80 "--chat.backend.kafka.instance-uri=http://backend-ID:8080",
81 "--chat.backend.kafka.num-partitions=10",
82 "--chat.backend.kafka.client-id-prefix=BID",
83 "--chat.backend.kafka.haproxy-runtime-api=haproxy:8401",
84 "--chat.backend.kafka.haproxy-map=/usr/local/etc/haproxy/sharding.map"