This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-3.18.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.18.x by this push:
new a97bfba6837 Backport CAMEL-18347 (#8118)
a97bfba6837 is described below
commit a97bfba68370d499888a2503c7900b5997a4464e
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Fri Aug 5 12:38:51 2022 +0200
Backport CAMEL-18347 (#8118)
* CAMEL-18347: fix Kafka services in test infra not being singleton
* CAMEL-18347: fix ArangoDB services in test infra not being singleton
* CAMEL-18347: fix HBase services in test infra not being singleton
* CAMEL-18347: fix MongoDB services in test infra not being singleton
* CAMEL-18347: ArangoDB tests do not work well with singleton services
---
.../arangodb/integration/BaseArangoDb.java | 2 +-
.../arangodb/services/ArangoDBServiceFactory.java | 21 ++++++++++---
.../infra/hbase/services/HBaseServiceFactory.java | 17 +++++++++--
.../infra/kafka/services/KafkaServiceFactory.java | 34 +++++++++++++++-------
.../test/infra/kafka/services/StrimziService.java | 8 +++--
.../mongodb/services/MongoDBServiceFactory.java | 18 +++++++++---
6 files changed, 75 insertions(+), 25 deletions(-)
diff --git
a/components/camel-arangodb/src/test/java/org/apache/camel/component/arangodb/integration/BaseArangoDb.java
b/components/camel-arangodb/src/test/java/org/apache/camel/component/arangodb/integration/BaseArangoDb.java
index f9dec8ef815..01f295469d7 100644
---
a/components/camel-arangodb/src/test/java/org/apache/camel/component/arangodb/integration/BaseArangoDb.java
+++
b/components/camel-arangodb/src/test/java/org/apache/camel/component/arangodb/integration/BaseArangoDb.java
@@ -30,7 +30,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
public class BaseArangoDb extends CamelTestSupport {
@RegisterExtension
- public static ArangoDBService service =
ArangoDBServiceFactory.createSingletonService();
+ public static ArangoDBService service =
ArangoDBServiceFactory.createService();
protected static final String DATABASE_NAME = "dbTest";
protected static final String COLLECTION_NAME = "camelTest";
diff --git
a/test-infra/camel-test-infra-arangodb/src/test/java/org/apache/camel/test/infra/arangodb/services/ArangoDBServiceFactory.java
b/test-infra/camel-test-infra-arangodb/src/test/java/org/apache/camel/test/infra/arangodb/services/ArangoDBServiceFactory.java
index 2233912f73a..38fba488ee2 100644
---
a/test-infra/camel-test-infra-arangodb/src/test/java/org/apache/camel/test/infra/arangodb/services/ArangoDBServiceFactory.java
+++
b/test-infra/camel-test-infra-arangodb/src/test/java/org/apache/camel/test/infra/arangodb/services/ArangoDBServiceFactory.java
@@ -47,6 +47,9 @@ public final class ArangoDBServiceFactory {
}
}
+ private static SimpleTestServiceBuilder<ArangoDBService> instance;
+ private static ArangoDBService arangoDBService;
+
private ArangoDBServiceFactory() {
}
@@ -63,9 +66,19 @@ public final class ArangoDBServiceFactory {
}
public static ArangoDBService createSingletonService() {
- return builder()
- .addLocalMapping(() -> new SingletonArangoDBService(new
ArangoDBLocalContainerService(), "arangoDB"))
- .addRemoteMapping(ArangoDBRemoteService::new)
- .build();
+ if (arangoDBService == null) {
+
+ if (instance == null) {
+ instance = builder();
+
+ instance.addLocalMapping(() -> new
SingletonArangoDBService(new ArangoDBLocalContainerService(), "arangoDB"))
+ .addRemoteMapping(ArangoDBRemoteService::new)
+ .build();
+ }
+
+ arangoDBService = instance.build();
+ }
+
+ return arangoDBService;
}
}
diff --git
a/test-infra/camel-test-infra-hbase/src/test/java/org/apache/camel/test/infra/hbase/services/HBaseServiceFactory.java
b/test-infra/camel-test-infra-hbase/src/test/java/org/apache/camel/test/infra/hbase/services/HBaseServiceFactory.java
index 0a9a6edfff4..eac5f30b921 100644
---
a/test-infra/camel-test-infra-hbase/src/test/java/org/apache/camel/test/infra/hbase/services/HBaseServiceFactory.java
+++
b/test-infra/camel-test-infra-hbase/src/test/java/org/apache/camel/test/infra/hbase/services/HBaseServiceFactory.java
@@ -43,6 +43,9 @@ public final class HBaseServiceFactory {
}
}
+ private static SimpleTestServiceBuilder<HBaseService> instance;
+ private static HBaseService service;
+
private HBaseServiceFactory() {
}
@@ -58,8 +61,16 @@ public final class HBaseServiceFactory {
}
public static HBaseService createSingletonService() {
- return builder()
- .addLocalMapping(() -> new SingletonHBaseService(new
HBaseLocalContainerService(), "hbase"))
- .build();
+ if (service == null) {
+ if (instance == null) {
+ instance = builder();
+
+ instance.addLocalMapping(() -> new SingletonHBaseService(new
HBaseLocalContainerService(), "hbase"));
+ }
+
+ service = instance.build();
+ }
+
+ return service;
}
}
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);
}
diff --git
a/test-infra/camel-test-infra-mongodb/src/test/java/org/apache/camel/test/infra/mongodb/services/MongoDBServiceFactory.java
b/test-infra/camel-test-infra-mongodb/src/test/java/org/apache/camel/test/infra/mongodb/services/MongoDBServiceFactory.java
index 52762a95ac2..dfd97aece4e 100644
---
a/test-infra/camel-test-infra-mongodb/src/test/java/org/apache/camel/test/infra/mongodb/services/MongoDBServiceFactory.java
+++
b/test-infra/camel-test-infra-mongodb/src/test/java/org/apache/camel/test/infra/mongodb/services/MongoDBServiceFactory.java
@@ -48,6 +48,9 @@ public final class MongoDBServiceFactory {
}
}
+ private static SimpleTestServiceBuilder<MongoDBService> instance;
+ private static MongoDBService service;
+
private MongoDBServiceFactory() {
}
@@ -64,9 +67,16 @@ public final class MongoDBServiceFactory {
}
public static MongoDBService createSingletonService() {
- return builder()
- .addLocalMapping(() -> new SingletonMongoDBService(new
MongoDBLocalContainerService(), "mongo-db"))
- .addRemoteMapping(MongoDBRemoteService::new)
- .build();
+ if (service == null) {
+ if (instance == null) {
+ instance = builder();
+ instance.addLocalMapping(() -> new SingletonMongoDBService(new
MongoDBLocalContainerService(), "mongo-db"))
+ .addRemoteMapping(MongoDBRemoteService::new);
+ }
+
+ service = instance.build();
+ }
+
+ return service;
}
}