1 package de.juplo.kafka.chat.backend;
3 import lombok.extern.slf4j.Slf4j;
4 import org.testcontainers.containers.*;
5 import org.testcontainers.containers.output.Slf4jLogConsumer;
6 import org.testcontainers.containers.wait.strategy.Wait;
7 import org.testcontainers.utility.DockerImageName;
9 import java.io.IOException;
13 class KafkaHandoverIT extends AbstractHandoverIT
16 void setUpExtra() throws IOException, InterruptedException
20 Container.ExecResult result;
21 result = kafka.execInContainer(
31 "EXIT-CODE={}, STDOUT={}, STDERR={}",
35 result = kafka.execInContainer(
45 "EXIT-CODE={}, STDOUT={}, STDERR={}",
52 KafkaContainer kafka =
53 new KafkaContainer(DockerImageName.parse("confluentinc/cp-kafka:7.4.0"))
55 .withNetworkAliases("kafka")
56 .withListener(() -> "kafka:9999")
58 .waitingFor(Wait.forLogMessage(".*Kafka\\ Server\\ started.*\\n", 1))
59 .withLogConsumer(new Slf4jLogConsumer(log, true).withPrefix("KAFKA"));
62 String[] getCommandBackend1()
66 "--chat.backend.instance-id=backend-1",
67 "--chat.backend.services=kafka",
68 "--chat.backend.kafka.bootstrap-servers=kafka:9999",
69 "--chat.backend.kafka.instance-uri=http://backend-1:8080",
70 "--chat.backend.kafka.num-partitions=10",
71 "--chat.backend.kafka.client-id-prefix=B1",
72 "--chat.backend.kafka.haproxy-runtime-api=haproxy:8401",
73 "--chat.backend.kafka.haproxy-map=/usr/local/etc/haproxy/sharding.map"
78 String[] getCommandBackend2()
82 "--chat.backend.instance-id=backend-2",
83 "--chat.backend.services=kafka",
84 "--chat.backend.kafka.bootstrap-servers=kafka:9999",
85 "--chat.backend.kafka.instance-uri=http://backend-2:8080",
86 "--chat.backend.kafka.num-partitions=10",
87 "--chat.backend.kafka.client-id-prefix=B2",
88 "--chat.backend.kafka.haproxy-runtime-api=haproxy:8401",
89 "--chat.backend.kafka.haproxy-map=/usr/local/etc/haproxy/sharding.map"
94 String[] getCommandBackend3()
98 "--chat.backend.instance-id=backend-3",
99 "--chat.backend.services=kafka",
100 "--chat.backend.kafka.bootstrap-servers=kafka:9999",
101 "--chat.backend.kafka.instance-uri=http://backend-3:8080",
102 "--chat.backend.kafka.num-partitions=10",
103 "--chat.backend.kafka.client-id-prefix=B3",
104 "--chat.backend.kafka.haproxy-runtime-api=haproxy:8401",
105 "--chat.backend.kafka.haproxy-map=/usr/local/etc/haproxy/sharding.map"