You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2022/08/04 11:48:04 UTC
[camel] 03/03: CAMEL-18347: fix Kafka services in test infra not being singleton
This is an automated email from the ASF dual-hosted git repository.
orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 7b6319ae749f0a3c2f5e38c358e2c9a3c11acfc3
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Thu Aug 4 11:22:56 2022 +0200
CAMEL-18347: fix Kafka services in test infra not being singleton
---
.../infra/kafka/services/KafkaServiceFactory.java | 34 +++++++++++++++-------
.../test/infra/kafka/services/StrimziService.java | 8 +++--
2 files changed, 29 insertions(+), 13 deletions(-)
diff --git a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/KafkaServiceFactory.java b/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/KafkaServiceFactory.java
index ae150286a39..ceb5c6d42f9 100644
--- a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/KafkaServiceFactory.java
+++ b/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/KafkaServiceFactory.java
@@ -43,6 +43,9 @@ public final class KafkaServiceFactory {
}
}
+ private static SimpleTestServiceBuilder<KafkaService> instance;
+ private static KafkaService kafkaService;
+
private KafkaServiceFactory() {
}
@@ -52,22 +55,33 @@ public final class KafkaServiceFactory {
}
public static KafkaService createService() {
- return builder()
- .addLocalMapping(ContainerLocalKafkaService::new)
+ SimpleTestServiceBuilder<KafkaService> builder = new SimpleTestServiceBuilder<>("kafka");
+
+ return builder.addLocalMapping(ContainerLocalKafkaService::new)
.addMapping("local-strimzi-container", StrimziService::new)
.addRemoteMapping(RemoteKafkaService::new)
.addMapping("local-kafka3-container", ContainerLocalKafkaService::kafka3Container)
.build();
}
- public static KafkaService createSingletonService() {
- return builder()
- .addLocalMapping(() -> new SingletonKafkaService(new ContainerLocalKafkaService(), "kafka"))
- .addRemoteMapping(RemoteKafkaService::new)
- .addMapping("local-kafka3-container",
- () -> new SingletonKafkaService(ContainerLocalKafkaService.kafka3Container(), "kafka3"))
- .addMapping("local-strimzi-container", () -> new SingletonKafkaService(new StrimziService(), "strimzi"))
- .build();
+ public static synchronized KafkaService createSingletonService() {
+ if (kafkaService == null) {
+ if (instance == null) {
+ instance = builder();
+
+ instance.addLocalMapping(() -> new SingletonKafkaService(new ContainerLocalKafkaService(), "kafka"))
+ .addRemoteMapping(RemoteKafkaService::new)
+ .addMapping("local-kafka3-container",
+ () -> new SingletonKafkaService(ContainerLocalKafkaService.kafka3Container(), "kafka3"))
+ .addMapping("local-strimzi-container",
+ () -> new SingletonKafkaService(new StrimziService(), "strimzi"));
+
+ }
+
+ kafkaService = instance.build();
+ }
+
+ return kafkaService;
}
}
diff --git a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/StrimziService.java b/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/StrimziService.java
index 2ce288e01a1..dae2076e82d 100644
--- a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/StrimziService.java
+++ b/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/StrimziService.java
@@ -31,12 +31,14 @@ public class StrimziService implements KafkaService, ContainerService<StrimziCon
private final StrimziContainer strimziContainer;
public StrimziService() {
+ this("zookeeper-" + TestUtils.randomWithRange(1, 100),
+ "strimzi-" + TestUtils.randomWithRange(1, 100));
+ }
+
+ public StrimziService(String zookeeperInstanceName, String strimziInstanceName) {
Network network = Network.newNetwork();
- String zookeeperInstanceName = "zookeeper-" + TestUtils.randomWithRange(1, 100);
zookeeperContainer = initZookeeperContainer(network, zookeeperInstanceName);
-
- String strimziInstanceName = "strimzi-" + TestUtils.randomWithRange(1, 100);
strimziContainer = initStrimziContainer(network, strimziInstanceName, zookeeperInstanceName);
}