You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/08/05 05:25:45 UTC
[camel] branch main updated: More test fixes and improvements (#8111)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new eea833996d6 More test fixes and improvements (#8111)
eea833996d6 is described below
commit eea833996d6cb8aebc98add7a511ccb3c2b0787f
Author: Otavio Rodolfo Piske <or...@users.noreply.github.com>
AuthorDate: Fri Aug 5 07:25:40 2022 +0200
More test fixes and improvements (#8111)
* (chores) camel-couchbase: let JUnit manage service lifecycle
* (chores) camel-test-infra-couchdb: add support for singleton services
* (chores) camel-couchdb: use singleton services for a small performance gain
---
.../integration/CouchbaseIntegrationTestBase.java | 1 -
.../couchdb/integration/CouchDbTestSupport.java | 2 +-
.../couchdb/services/CouchDbServiceFactory.java | 52 ++++++++++++++++++++++
3 files changed, 53 insertions(+), 2 deletions(-)
diff --git a/components/camel-couchbase/src/test/java/org/apache/camel/component/couchbase/integration/CouchbaseIntegrationTestBase.java b/components/camel-couchbase/src/test/java/org/apache/camel/component/couchbase/integration/CouchbaseIntegrationTestBase.java
index 2432ae8282d..be5342975ac 100644
--- a/components/camel-couchbase/src/test/java/org/apache/camel/component/couchbase/integration/CouchbaseIntegrationTestBase.java
+++ b/components/camel-couchbase/src/test/java/org/apache/camel/component/couchbase/integration/CouchbaseIntegrationTestBase.java
@@ -61,7 +61,6 @@ public class CouchbaseIntegrationTestBase extends CamelTestSupport {
public static void tearDownCouchbase() {
cluster.buckets().dropBucket(bucketName);
cluster.disconnect();
- service.shutdown();
}
public String getConnectionUri() {
diff --git a/components/camel-couchdb/src/test/java/org/apache/camel/component/couchdb/integration/CouchDbTestSupport.java b/components/camel-couchdb/src/test/java/org/apache/camel/component/couchdb/integration/CouchDbTestSupport.java
index 9b2486d2b9f..56073dd01a7 100644
--- a/components/camel-couchdb/src/test/java/org/apache/camel/component/couchdb/integration/CouchDbTestSupport.java
+++ b/components/camel-couchdb/src/test/java/org/apache/camel/component/couchdb/integration/CouchDbTestSupport.java
@@ -24,6 +24,6 @@ import org.junit.jupiter.api.extension.RegisterExtension;
public class CouchDbTestSupport extends CamelTestSupport {
@SuppressWarnings("unused")
@RegisterExtension
- static CouchDbService service = CouchDbServiceFactory.createService();
+ static CouchDbService service = CouchDbServiceFactory.createSingletonService();
}
diff --git a/test-infra/camel-test-infra-couchdb/src/test/java/org/apache/camel/test/infra/couchdb/services/CouchDbServiceFactory.java b/test-infra/camel-test-infra-couchdb/src/test/java/org/apache/camel/test/infra/couchdb/services/CouchDbServiceFactory.java
index 68899e0aaae..e247270f860 100644
--- a/test-infra/camel-test-infra-couchdb/src/test/java/org/apache/camel/test/infra/couchdb/services/CouchDbServiceFactory.java
+++ b/test-infra/camel-test-infra-couchdb/src/test/java/org/apache/camel/test/infra/couchdb/services/CouchDbServiceFactory.java
@@ -17,8 +17,44 @@
package org.apache.camel.test.infra.couchdb.services;
import org.apache.camel.test.infra.common.services.SimpleTestServiceBuilder;
+import org.apache.camel.test.infra.common.services.SingletonService;
+import org.junit.jupiter.api.extension.ExtensionContext;
public final class CouchDbServiceFactory {
+ static class SingletonCouchDbService extends SingletonService<CouchDbService> implements CouchDbService {
+ public SingletonCouchDbService(CouchDbService service, String name) {
+ super(service, name);
+ }
+
+ @Override
+ public void beforeAll(ExtensionContext extensionContext) {
+ addToStore(extensionContext);
+ }
+
+ @Override
+ public void afterAll(ExtensionContext extensionContext) {
+ // NO-OP
+ }
+
+ @Override
+ public String host() {
+ return getService().host();
+ }
+
+ @Override
+ public int port() {
+ return getService().port();
+ }
+
+ @Override
+ public String getServiceAddress() {
+ return getService().getServiceAddress();
+ }
+ }
+
+ private static SimpleTestServiceBuilder<CouchDbService> instance;
+ private static CouchDbService service;
+
private CouchDbServiceFactory() {
}
@@ -33,4 +69,20 @@ public final class CouchDbServiceFactory {
.addRemoteMapping(CouchDbRemoteService::new)
.build();
}
+
+ public static CouchDbService createSingletonService() {
+ if (service == null) {
+ if (instance == null) {
+ instance = builder();
+
+ instance.addLocalMapping(() -> new SingletonCouchDbService(new CouchDbLocalContainerService(), "couchdb"))
+ .addRemoteMapping(CouchDbRemoteService::new);
+
+ }
+
+ service = instance.build();
+ }
+
+ return service;
+ }
}