This is an automated email from the ASF dual-hosted git repository. nfilotto 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 237946de785 CAMEL-19402: test-infra - Reduce the boilerplate code needed (#10238) 237946de785 is described below commit 237946de7853357cc34566e00ec1de40954b92b4 Author: Nicolas Filotto <essob...@users.noreply.github.com> AuthorDate: Wed May 31 17:20:10 2023 +0200 CAMEL-19402: test-infra - Reduce the boilerplate code needed (#10238) ## Motivation There is some duplicated code in test-infra. The goal of these changes is to reduce the boilerplate code needed to add a new service. ## Modifications: * Move the default implementation of the `beforeAll` and `afterAll` callbacks in `TestService` as it is always the same * Move the default implementation of the singleton `beforeAll` and `afterAll` callbacks in SingletonService as it is always the same * Apply [initialization-on-demand holder idiom](https://en.wikipedia.org/wiki/Initialization-on-demand_holder_idiom) to initialize the `SingletonService` instances --- .../infra/arangodb/services/ArangoDBService.java | 16 +-- .../arangodb/services/ArangoDBServiceFactory.java | 35 ++----- .../infra/artemis/services/ArtemisService.java | 15 +-- .../artemis/services/ArtemisServiceFactory.java | 112 +++++++++------------ .../test/infra/aws/common/services/AWSService.java | 16 +-- .../infra/azure/common/services/AzureService.java | 16 +-- .../infra/cassandra/services/CassandraService.java | 16 +-- .../chatscript/services/ChatScriptService.java | 15 +-- .../infra/common/services/SingletonService.java | 10 ++ .../test/infra/common/services/TestService.java | 16 ++- .../test/infra/consul/services/ConsulService.java | 16 +-- .../infra/couchbase/services/CouchbaseService.java | 16 +-- .../services/CouchbaseServiceFactory.java | 41 +++----- .../infra/couchdb/services/CouchDbService.java | 16 +-- .../couchdb/services/CouchDbServiceFactory.java | 32 ++---- .../services/ElasticSearchService.java | 16 +-- .../test/infra/etcd3/services/Etcd3Service.java | 16 +-- .../test/infra/fhir/services/FhirService.java | 16 +-- .../camel/test/infra/ftp/services/FtpService.java | 4 +- .../pubsub/services/GooglePubSubService.java | 16 +-- .../vault/services/HashicorpVaultService.java | 16 +-- .../test/infra/hdfs/v2/services/HDFSService.java | 16 +-- .../infra/hdfs/v2/services/HDFSServiceFactory.java | 30 ++---- .../test/infra/ignite/services/IgniteService.java | 15 +-- .../infinispan/services/InfinispanService.java | 16 +-- .../test/infra/jdbc/services/JDBCService.java | 16 +-- .../test/infra/jetty/services/JettyService.java | 15 +-- .../test/infra/kafka/services/KafkaService.java | 13 +-- .../infra/kafka/services/KafkaServiceFactory.java | 57 ++++------- .../infra/messaging/services/MessagingService.java | 16 +-- .../lra/services/MicroprofileLRAService.java | 16 +-- .../test/infra/minio/services/MinioService.java | 16 +-- .../infra/mongodb/services/MongoDBService.java | 16 +-- .../mongodb/services/MongoDBServiceFactory.java | 33 ++---- .../infra/mosquitto/services/MosquittoService.java | 16 +-- .../test/infra/nats/services/NatsService.java | 16 +-- .../infra/openldap/services/OpenldapService.java | 16 +-- .../infra/postgres/services/PostgresService.java | 16 +-- .../test/infra/pulsar/services/PulsarService.java | 16 +-- .../infra/rabbitmq/services/RabbitMQService.java | 16 +-- .../test/infra/redis/services/RedisService.java | 16 +-- .../test/infra/solr/services/SolrService.java | 16 +-- .../test/infra/xmpp/services/XmppService.java | 16 +-- .../infra/zookeeper/services/ZooKeeperService.java | 16 +-- 44 files changed, 185 insertions(+), 722 deletions(-) diff --git a/test-infra/camel-test-infra-arangodb/src/test/java/org/apache/camel/test/infra/arangodb/services/ArangoDBService.java b/test-infra/camel-test-infra-arangodb/src/test/java/org/apache/camel/test/infra/arangodb/services/ArangoDBService.java index 367cd2acc55..06f9fcfea3e 100644 --- a/test-infra/camel-test-infra-arangodb/src/test/java/org/apache/camel/test/infra/arangodb/services/ArangoDBService.java +++ b/test-infra/camel-test-infra-arangodb/src/test/java/org/apache/camel/test/infra/arangodb/services/ArangoDBService.java @@ -17,15 +17,11 @@ package org.apache.camel.test.infra.arangodb.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for ArangoDB */ -public interface ArangoDBService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface ArangoDBService extends TestService { int getPort(); @@ -34,14 +30,4 @@ public interface ArangoDBService extends BeforeAllCallback, AfterAllCallback, Te default String getServiceAddress() { return String.format("%s:%d", getHost(), getPort()); } - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } 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 38fba488ee2..11d1d161017 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 @@ -18,7 +18,6 @@ package org.apache.camel.test.infra.arangodb.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 ArangoDBServiceFactory { private static class SingletonArangoDBService extends SingletonService<ArangoDBService> implements ArangoDBService { @@ -26,16 +25,6 @@ public final class ArangoDBServiceFactory { super(service, name); } - @Override - public void beforeAll(ExtensionContext extensionContext) { - addToStore(extensionContext); - } - - @Override - public void afterAll(ExtensionContext extensionContext) { - // NO-OP - } - @Override public int getPort() { return getService().getPort(); @@ -47,9 +36,6 @@ public final class ArangoDBServiceFactory { } } - private static SimpleTestServiceBuilder<ArangoDBService> instance; - private static ArangoDBService arangoDBService; - private ArangoDBServiceFactory() { } @@ -66,19 +52,18 @@ public final class ArangoDBServiceFactory { } public static ArangoDBService createSingletonService() { - if (arangoDBService == null) { - - if (instance == null) { - instance = builder(); + return SingletonServiceHolder.INSTANCE; + } - instance.addLocalMapping(() -> new SingletonArangoDBService(new ArangoDBLocalContainerService(), "arangoDB")) - .addRemoteMapping(ArangoDBRemoteService::new) - .build(); - } + private static class SingletonServiceHolder { + static final ArangoDBService INSTANCE; + static { + SimpleTestServiceBuilder<ArangoDBService> instance = builder(); + instance.addLocalMapping(() -> new SingletonArangoDBService(new ArangoDBLocalContainerService(), "arangoDB")) + .addRemoteMapping(ArangoDBRemoteService::new) + .build(); - arangoDBService = instance.build(); + INSTANCE = instance.build(); } - - return arangoDBService; } } diff --git a/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisService.java b/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisService.java index 603bee50ab2..6de555cf90f 100644 --- a/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisService.java +++ b/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisService.java @@ -20,14 +20,11 @@ import org.apache.activemq.artemis.core.server.QueueQueryResult; import org.apache.camel.test.infra.artemis.common.ArtemisProperties; import org.apache.camel.test.infra.common.services.TestService; import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; import org.junit.jupiter.api.extension.AfterEachCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; import org.junit.jupiter.api.extension.BeforeEachCallback; import org.junit.jupiter.api.extension.ExtensionContext; -public interface ArtemisService - extends BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, TestService { +public interface ArtemisService extends BeforeEachCallback, AfterEachCallback, TestService { String serviceAddress(); @@ -45,16 +42,6 @@ public interface ArtemisService System.setProperty(ArtemisProperties.ARTEMIS_PASSWORD, password()); } - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } - @Override default void afterEach(ExtensionContext extensionContext) throws Exception { TestServiceUtil.tryShutdown(this, extensionContext); diff --git a/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisServiceFactory.java b/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisServiceFactory.java index 1c5080e0b30..bf228731fcf 100644 --- a/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisServiceFactory.java +++ b/test-infra/camel-test-infra-artemis/src/test/java/org/apache/camel/test/infra/artemis/services/ArtemisServiceFactory.java @@ -23,16 +23,6 @@ import org.junit.jupiter.api.extension.ExtensionContext; public final class ArtemisServiceFactory { - private static SimpleTestServiceBuilder<ArtemisService> nonPersistentInstanceBuilder; - private static SimpleTestServiceBuilder<ArtemisService> persistentInstanceBuilder; - private static SimpleTestServiceBuilder<ArtemisService> amqpInstanceBuilder; - private static SimpleTestServiceBuilder<ArtemisService> mqttInstanceBuilder; - - private static ArtemisService persistentService; - private static ArtemisService nonPersistentService; - private static ArtemisService amqpService; - private static ArtemisService mqttService; - public static class SingletonArtemisService extends SingletonService<ArtemisService> implements ArtemisService { public SingletonArtemisService(ArtemisService service, String name) { @@ -80,22 +70,12 @@ public final class ArtemisServiceFactory { } @Override - public void beforeAll(ExtensionContext extensionContext) throws Exception { - addToStore(extensionContext); - } - - @Override - public void afterAll(ExtensionContext extensionContext) throws Exception { + public void afterEach(ExtensionContext extensionContext) { // NO-OP } @Override - public void afterEach(ExtensionContext extensionContext) throws Exception { - // NO-OP - } - - @Override - public void beforeEach(ExtensionContext extensionContext) throws Exception { + public void beforeEach(ExtensionContext extensionContext) { addToStore(extensionContext); } } @@ -116,67 +96,71 @@ public final class ArtemisServiceFactory { return new ArtemisAMQPService(); } - public static synchronized ArtemisService createSingletonVMService() { - if (nonPersistentService == null) { - if (nonPersistentInstanceBuilder == null) { - nonPersistentInstanceBuilder = new SimpleTestServiceBuilder<>("artemis"); + public static ArtemisService createSingletonVMService() { + return SingletonVMServiceHolder.INSTANCE; + } - nonPersistentInstanceBuilder - .addLocalMapping(() -> new SingletonArtemisService(new ArtemisVMService(), "artemis")); - } + public static ArtemisService createSingletonPersistentVMService() { + return SingletonPersistentVMServiceHolder.INSTANCE; + } - nonPersistentService = nonPersistentInstanceBuilder.build(); - } + public static ArtemisService createSingletonAMQPService() { + return SingletonAMQPServiceHolder.INSTANCE; + } - return nonPersistentService; + public static ArtemisService createSingletonMQTTService() { + return SingletonMQTTServiceHolder.INSTANCE; } - public static synchronized ArtemisService createSingletonPersistentVMService() { - if (persistentService == null) { - if (persistentInstanceBuilder == null) { - persistentInstanceBuilder = new SimpleTestServiceBuilder<>("artemis"); + public static ArtemisService createTCPAllProtocolsService() { + return new ArtemisTCPAllProtocolsService(); + } - persistentInstanceBuilder.addLocalMapping( - () -> new SingletonArtemisService(new ArtemisPersistentVMService(), "artemis-persistent")); - } + private static class SingletonVMServiceHolder { + static final ArtemisService INSTANCE; + static { + SimpleTestServiceBuilder<ArtemisService> nonPersistentInstanceBuilder = new SimpleTestServiceBuilder<>("artemis"); - persistentService = persistentInstanceBuilder.build(); - } + nonPersistentInstanceBuilder + .addLocalMapping(() -> new SingletonArtemisService(new ArtemisVMService(), "artemis")); - return persistentService; + INSTANCE = nonPersistentInstanceBuilder.build(); + } } - public static synchronized ArtemisService createSingletonAMQPService() { - if (amqpService == null) { - if (amqpInstanceBuilder == null) { - amqpInstanceBuilder = new SimpleTestServiceBuilder<>("artemis"); + private static class SingletonPersistentVMServiceHolder { + static final ArtemisService INSTANCE; + static { + SimpleTestServiceBuilder<ArtemisService> persistentInstanceBuilder = new SimpleTestServiceBuilder<>("artemis"); - amqpInstanceBuilder - .addLocalMapping(() -> new SingletonArtemisService(new ArtemisAMQPService(), "artemis-amqp")); - } + persistentInstanceBuilder.addLocalMapping( + () -> new SingletonArtemisService(new ArtemisPersistentVMService(), "artemis-persistent")); - amqpService = amqpInstanceBuilder.build(); + INSTANCE = persistentInstanceBuilder.build(); } - - return amqpService; } - public static synchronized ArtemisService createSingletonMQTTService() { - if (mqttService == null) { - if (mqttInstanceBuilder == null) { - mqttInstanceBuilder = new SimpleTestServiceBuilder<>("artemis"); + private static class SingletonAMQPServiceHolder { + static final ArtemisService INSTANCE; + static { + SimpleTestServiceBuilder<ArtemisService> amqpInstanceBuilder = new SimpleTestServiceBuilder<>("artemis"); - mqttInstanceBuilder - .addLocalMapping(() -> new SingletonArtemisService(new ArtemisMQTTService(), "artemis-mqtt")); - } + amqpInstanceBuilder + .addLocalMapping(() -> new SingletonArtemisService(new ArtemisAMQPService(), "artemis-amqp")); - mqttService = mqttInstanceBuilder.build(); + INSTANCE = amqpInstanceBuilder.build(); } - - return mqttService; } - public static ArtemisService createTCPAllProtocolsService() { - return new ArtemisTCPAllProtocolsService(); + private static class SingletonMQTTServiceHolder { + static final ArtemisService INSTANCE; + static { + SimpleTestServiceBuilder<ArtemisService> mqttInstanceBuilder = new SimpleTestServiceBuilder<>("artemis"); + + mqttInstanceBuilder + .addLocalMapping(() -> new SingletonArtemisService(new ArtemisMQTTService(), "artemis-mqtt")); + + INSTANCE = mqttInstanceBuilder.build(); + } } } diff --git a/test-infra/camel-test-infra-aws-common/src/test/java/org/apache/camel/test/infra/aws/common/services/AWSService.java b/test-infra/camel-test-infra-aws-common/src/test/java/org/apache/camel/test/infra/aws/common/services/AWSService.java index 0db734bf4e1..f2ee9277877 100644 --- a/test-infra/camel-test-infra-aws-common/src/test/java/org/apache/camel/test/infra/aws/common/services/AWSService.java +++ b/test-infra/camel-test-infra-aws-common/src/test/java/org/apache/camel/test/infra/aws/common/services/AWSService.java @@ -20,22 +20,8 @@ package org.apache.camel.test.infra.aws.common.services; import java.util.Properties; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -public interface AWSService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface AWSService extends TestService { Properties getConnectionProperties(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-azure-common/src/test/java/org/apache/camel/test/infra/azure/common/services/AzureService.java b/test-infra/camel-test-infra-azure-common/src/test/java/org/apache/camel/test/infra/azure/common/services/AzureService.java index 9a5da9c0d68..39c46afa60d 100644 --- a/test-infra/camel-test-infra-azure-common/src/test/java/org/apache/camel/test/infra/azure/common/services/AzureService.java +++ b/test-infra/camel-test-infra-azure-common/src/test/java/org/apache/camel/test/infra/azure/common/services/AzureService.java @@ -19,12 +19,8 @@ package org.apache.camel.test.infra.azure.common.services; import org.apache.camel.test.infra.azure.common.AzureCredentialsHolder; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -public interface AzureService extends TestService, BeforeAllCallback, AfterAllCallback { +public interface AzureService extends TestService { /** * Gets the credentials for the test service @@ -32,14 +28,4 @@ public interface AzureService extends TestService, BeforeAllCallback, AfterAllCa * @return */ AzureCredentialsHolder azureCredentials(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-cassandra/src/test/java/org/apache/camel/test/infra/cassandra/services/CassandraService.java b/test-infra/camel-test-infra-cassandra/src/test/java/org/apache/camel/test/infra/cassandra/services/CassandraService.java index 2ef228f47dc..a915390133e 100644 --- a/test-infra/camel-test-infra-cassandra/src/test/java/org/apache/camel/test/infra/cassandra/services/CassandraService.java +++ b/test-infra/camel-test-infra-cassandra/src/test/java/org/apache/camel/test/infra/cassandra/services/CassandraService.java @@ -18,15 +18,11 @@ package org.apache.camel.test.infra.cassandra.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Represents an endpoint to a Cassandra instance */ -public interface CassandraService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface CassandraService extends TestService { int getCQL3Port(); @@ -35,14 +31,4 @@ public interface CassandraService extends BeforeAllCallback, AfterAllCallback, T } String getCassandraHost(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-chatscript/src/test/java/org/apache/camel/test/infra/chatscript/services/ChatScriptService.java b/test-infra/camel-test-infra-chatscript/src/test/java/org/apache/camel/test/infra/chatscript/services/ChatScriptService.java index e85214a7e5b..860e87b761e 100644 --- a/test-infra/camel-test-infra-chatscript/src/test/java/org/apache/camel/test/infra/chatscript/services/ChatScriptService.java +++ b/test-infra/camel-test-infra-chatscript/src/test/java/org/apache/camel/test/infra/chatscript/services/ChatScriptService.java @@ -18,30 +18,17 @@ package org.apache.camel.test.infra.chatscript.services; import org.apache.camel.test.infra.common.services.TestService; import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; import org.junit.jupiter.api.extension.AfterEachCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; import org.junit.jupiter.api.extension.BeforeEachCallback; import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for ChatScript */ -public interface ChatScriptService - extends BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback, TestService { +public interface ChatScriptService extends BeforeEachCallback, AfterEachCallback, TestService { String serviceAddress(); - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } - @Override default void afterEach(ExtensionContext extensionContext) throws Exception { TestServiceUtil.tryShutdown(this, extensionContext); diff --git a/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/SingletonService.java b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/SingletonService.java index 304fadf20f6..ef7bc92eeea 100644 --- a/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/SingletonService.java +++ b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/SingletonService.java @@ -53,6 +53,16 @@ public class SingletonService<T extends TestService> implements ExtensionContext return this; } + @Override + public void beforeAll(ExtensionContext extensionContext) { + addToStore(extensionContext); + } + + @Override + public void afterAll(ExtensionContext extensionContext) { + // NO-OP + } + @Override public void registerProperties() { service.registerProperties(); diff --git a/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/TestService.java b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/TestService.java index 737cbef5d29..552489b3deb 100644 --- a/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/TestService.java +++ b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/TestService.java @@ -17,7 +17,11 @@ package org.apache.camel.test.infra.common.services; -public interface TestService extends AutoCloseable { +import org.junit.jupiter.api.extension.AfterAllCallback; +import org.junit.jupiter.api.extension.BeforeAllCallback; +import org.junit.jupiter.api.extension.ExtensionContext; + +public interface TestService extends AutoCloseable, BeforeAllCallback, AfterAllCallback { /** * Register service properties (such as using System.setProperties) so that they can be resolved at distance (ie.: @@ -40,4 +44,14 @@ public interface TestService extends AutoCloseable { default void close() { shutdown(); } + + @Override + default void beforeAll(ExtensionContext extensionContext) throws Exception { + TestServiceUtil.tryInitialize(this, extensionContext); + } + + @Override + default void afterAll(ExtensionContext extensionContext) throws Exception { + TestServiceUtil.tryShutdown(this, extensionContext); + } } diff --git a/test-infra/camel-test-infra-consul/src/test/java/org/apache/camel/test/infra/consul/services/ConsulService.java b/test-infra/camel-test-infra-consul/src/test/java/org/apache/camel/test/infra/consul/services/ConsulService.java index 937acd1b7bc..ee646ce58eb 100644 --- a/test-infra/camel-test-infra-consul/src/test/java/org/apache/camel/test/infra/consul/services/ConsulService.java +++ b/test-infra/camel-test-infra-consul/src/test/java/org/apache/camel/test/infra/consul/services/ConsulService.java @@ -17,29 +17,15 @@ package org.apache.camel.test.infra.consul.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for Consul */ -public interface ConsulService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface ConsulService extends TestService { String getConsulUrl(); String host(); int port(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-couchbase/src/test/java/org/apache/camel/test/infra/couchbase/services/CouchbaseService.java b/test-infra/camel-test-infra-couchbase/src/test/java/org/apache/camel/test/infra/couchbase/services/CouchbaseService.java index 43514c1d82f..37f27710fb5 100644 --- a/test-infra/camel-test-infra-couchbase/src/test/java/org/apache/camel/test/infra/couchbase/services/CouchbaseService.java +++ b/test-infra/camel-test-infra-couchbase/src/test/java/org/apache/camel/test/infra/couchbase/services/CouchbaseService.java @@ -18,12 +18,8 @@ package org.apache.camel.test.infra.couchbase.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -public interface CouchbaseService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface CouchbaseService extends TestService { String getConnectionString(); @@ -34,14 +30,4 @@ public interface CouchbaseService extends BeforeAllCallback, AfterAllCallback, T String getHostname(); int getPort(); - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-couchbase/src/test/java/org/apache/camel/test/infra/couchbase/services/CouchbaseServiceFactory.java b/test-infra/camel-test-infra-couchbase/src/test/java/org/apache/camel/test/infra/couchbase/services/CouchbaseServiceFactory.java index be16203a917..990effb697f 100644 --- a/test-infra/camel-test-infra-couchbase/src/test/java/org/apache/camel/test/infra/couchbase/services/CouchbaseServiceFactory.java +++ b/test-infra/camel-test-infra-couchbase/src/test/java/org/apache/camel/test/infra/couchbase/services/CouchbaseServiceFactory.java @@ -19,7 +19,6 @@ package org.apache.camel.test.infra.couchbase.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 CouchbaseServiceFactory { static class SingletonCouchbaseService extends SingletonService<CouchbaseService> implements CouchbaseService { @@ -27,11 +26,6 @@ public final class CouchbaseServiceFactory { super(service, name); } - @Override - public void beforeAll(ExtensionContext extensionContext) { - addToStore(extensionContext); - } - @Override public String getConnectionString() { return getService().getConnectionString(); @@ -56,16 +50,8 @@ public final class CouchbaseServiceFactory { public int getPort() { return getService().getPort(); } - - @Override - public void afterAll(ExtensionContext extensionContext) { - // NO-OP - } } - private static SimpleTestServiceBuilder<CouchbaseService> instance; - private static CouchbaseService service; - private CouchbaseServiceFactory() { } @@ -81,23 +67,24 @@ public final class CouchbaseServiceFactory { .build(); } - public static synchronized CouchbaseService createSingletonService() { - if (service == null) { - if (instance == null) { - instance = builder(); - - instance.addLocalMapping(() -> new SingletonCouchbaseService(new CouchbaseLocalContainerService(), "couchbase")) - .addRemoteMapping(CouchbaseRemoteService::new); - } - - service = instance.build(); - } - - return service; + public static CouchbaseService createSingletonService() { + return SingletonServiceHolder.INSTANCE; } @Deprecated public static CouchbaseService getService() { return createService(); } + + private static class SingletonServiceHolder { + static final CouchbaseService INSTANCE; + static { + SimpleTestServiceBuilder<CouchbaseService> instance = builder(); + + instance.addLocalMapping(() -> new SingletonCouchbaseService(new CouchbaseLocalContainerService(), "couchbase")) + .addRemoteMapping(CouchbaseRemoteService::new); + + INSTANCE = instance.build(); + } + } } diff --git a/test-infra/camel-test-infra-couchdb/src/test/java/org/apache/camel/test/infra/couchdb/services/CouchDbService.java b/test-infra/camel-test-infra-couchdb/src/test/java/org/apache/camel/test/infra/couchdb/services/CouchDbService.java index 95f4a0edcb2..1aea202244f 100644 --- a/test-infra/camel-test-infra-couchdb/src/test/java/org/apache/camel/test/infra/couchdb/services/CouchDbService.java +++ b/test-infra/camel-test-infra-couchdb/src/test/java/org/apache/camel/test/infra/couchdb/services/CouchDbService.java @@ -17,15 +17,11 @@ package org.apache.camel.test.infra.couchdb.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for CouchDb */ -public interface CouchDbService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface CouchDbService extends TestService { String host(); @@ -34,14 +30,4 @@ public interface CouchDbService extends BeforeAllCallback, AfterAllCallback, Tes default String getServiceAddress() { return String.format("%s:%d", host(), port()); } - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } 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 e247270f860..af2815d2895 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 @@ -18,7 +18,6 @@ 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 { @@ -26,16 +25,6 @@ public final class CouchDbServiceFactory { 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(); @@ -52,9 +41,6 @@ public final class CouchDbServiceFactory { } } - private static SimpleTestServiceBuilder<CouchDbService> instance; - private static CouchDbService service; - private CouchDbServiceFactory() { } @@ -71,18 +57,18 @@ public final class CouchDbServiceFactory { } public static CouchDbService createSingletonService() { - if (service == null) { - if (instance == null) { - instance = builder(); + return SingletonServiceHolder.INSTANCE; + } - instance.addLocalMapping(() -> new SingletonCouchDbService(new CouchDbLocalContainerService(), "couchdb")) - .addRemoteMapping(CouchDbRemoteService::new); + private static class SingletonServiceHolder { + static final CouchDbService INSTANCE; + static { + SimpleTestServiceBuilder<CouchDbService> instance = builder(); - } + instance.addLocalMapping(() -> new SingletonCouchDbService(new CouchDbLocalContainerService(), "couchdb")) + .addRemoteMapping(CouchDbRemoteService::new); - service = instance.build(); + INSTANCE = instance.build(); } - - return service; } } diff --git a/test-infra/camel-test-infra-elasticsearch/src/test/java/org/apache/camel/test/infra/elasticsearch/services/ElasticSearchService.java b/test-infra/camel-test-infra-elasticsearch/src/test/java/org/apache/camel/test/infra/elasticsearch/services/ElasticSearchService.java index 5fbc61259b8..05dff9e4521 100644 --- a/test-infra/camel-test-infra-elasticsearch/src/test/java/org/apache/camel/test/infra/elasticsearch/services/ElasticSearchService.java +++ b/test-infra/camel-test-infra-elasticsearch/src/test/java/org/apache/camel/test/infra/elasticsearch/services/ElasticSearchService.java @@ -18,12 +18,8 @@ package org.apache.camel.test.infra.elasticsearch.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -public interface ElasticSearchService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface ElasticSearchService extends TestService { int getPort(); @@ -32,14 +28,4 @@ public interface ElasticSearchService extends BeforeAllCallback, AfterAllCallbac default String getHttpHostAddress() { return String.format("%s:%d", getElasticSearchHost(), getPort()); } - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-etcd3/src/test/java/org/apache/camel/test/infra/etcd3/services/Etcd3Service.java b/test-infra/camel-test-infra-etcd3/src/test/java/org/apache/camel/test/infra/etcd3/services/Etcd3Service.java index bb0f0f55783..0c79c77653b 100644 --- a/test-infra/camel-test-infra-etcd3/src/test/java/org/apache/camel/test/infra/etcd3/services/Etcd3Service.java +++ b/test-infra/camel-test-infra-etcd3/src/test/java/org/apache/camel/test/infra/etcd3/services/Etcd3Service.java @@ -17,25 +17,11 @@ package org.apache.camel.test.infra.etcd3.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for EtcD */ -public interface Etcd3Service extends BeforeAllCallback, AfterAllCallback, TestService { +public interface Etcd3Service extends TestService { String getServiceAddress(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-fhir/src/test/java/org/apache/camel/test/infra/fhir/services/FhirService.java b/test-infra/camel-test-infra-fhir/src/test/java/org/apache/camel/test/infra/fhir/services/FhirService.java index e9eda5cfec8..75bf932d9dc 100644 --- a/test-infra/camel-test-infra-fhir/src/test/java/org/apache/camel/test/infra/fhir/services/FhirService.java +++ b/test-infra/camel-test-infra-fhir/src/test/java/org/apache/camel/test/infra/fhir/services/FhirService.java @@ -17,29 +17,15 @@ package org.apache.camel.test.infra.fhir.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for FHIR */ -public interface FhirService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface FhirService extends TestService { String getServiceBaseURL(); String getHost(); Integer getPort(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/FtpService.java b/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/FtpService.java index 2ef6dcbd833..e9aa1cc640c 100644 --- a/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/FtpService.java +++ b/test-infra/camel-test-infra-ftp/src/test/java/org/apache/camel/test/infra/ftp/services/FtpService.java @@ -19,15 +19,13 @@ package org.apache.camel.test.infra.ftp.services; import java.nio.file.Path; import org.apache.camel.test.infra.common.services.TestService; -import org.junit.jupiter.api.extension.AfterAllCallback; import org.junit.jupiter.api.extension.AfterEachCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; import org.junit.jupiter.api.extension.BeforeEachCallback; /** * Test infra service for Ftp */ -public interface FtpService extends TestService, BeforeAllCallback, AfterAllCallback, BeforeEachCallback, AfterEachCallback { +public interface FtpService extends TestService, BeforeEachCallback, AfterEachCallback { int getPort(); Path getFtpRootDir(); diff --git a/test-infra/camel-test-infra-google-pubsub/src/test/java/org/apache/camel/test/infra/google/pubsub/services/GooglePubSubService.java b/test-infra/camel-test-infra-google-pubsub/src/test/java/org/apache/camel/test/infra/google/pubsub/services/GooglePubSubService.java index 546ede0b4ed..a25a8391a96 100644 --- a/test-infra/camel-test-infra-google-pubsub/src/test/java/org/apache/camel/test/infra/google/pubsub/services/GooglePubSubService.java +++ b/test-infra/camel-test-infra-google-pubsub/src/test/java/org/apache/camel/test/infra/google/pubsub/services/GooglePubSubService.java @@ -17,25 +17,11 @@ package org.apache.camel.test.infra.google.pubsub.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for GooglePubSub */ -public interface GooglePubSubService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface GooglePubSubService extends TestService { String getServiceAddress(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-hashicorp-vault/src/test/java/org/apache/camel/test/infra/hashicorp/vault/services/HashicorpVaultService.java b/test-infra/camel-test-infra-hashicorp-vault/src/test/java/org/apache/camel/test/infra/hashicorp/vault/services/HashicorpVaultService.java index 221c4cdece2..ce2fc4ba883 100644 --- a/test-infra/camel-test-infra-hashicorp-vault/src/test/java/org/apache/camel/test/infra/hashicorp/vault/services/HashicorpVaultService.java +++ b/test-infra/camel-test-infra-hashicorp-vault/src/test/java/org/apache/camel/test/infra/hashicorp/vault/services/HashicorpVaultService.java @@ -17,29 +17,15 @@ package org.apache.camel.test.infra.hashicorp.vault.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for Infinispan */ -public interface HashicorpVaultService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface HashicorpVaultService extends TestService { String token(); int port(); String host(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-hdfs/src/test/java/org/apache/camel/test/infra/hdfs/v2/services/HDFSService.java b/test-infra/camel-test-infra-hdfs/src/test/java/org/apache/camel/test/infra/hdfs/v2/services/HDFSService.java index 58c0ab07fc6..ffd19d72c99 100644 --- a/test-infra/camel-test-infra-hdfs/src/test/java/org/apache/camel/test/infra/hdfs/v2/services/HDFSService.java +++ b/test-infra/camel-test-infra-hdfs/src/test/java/org/apache/camel/test/infra/hdfs/v2/services/HDFSService.java @@ -18,12 +18,8 @@ package org.apache.camel.test.infra.hdfs.v2.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -public interface HDFSService extends TestService, BeforeAllCallback, AfterAllCallback { +public interface HDFSService extends TestService { /** * Gets the hostname of the HDFS server @@ -38,14 +34,4 @@ public interface HDFSService extends TestService, BeforeAllCallback, AfterAllCal * @return */ int getPort(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-hdfs/src/test/java/org/apache/camel/test/infra/hdfs/v2/services/HDFSServiceFactory.java b/test-infra/camel-test-infra-hdfs/src/test/java/org/apache/camel/test/infra/hdfs/v2/services/HDFSServiceFactory.java index 6a214c56c1f..597db426fa1 100644 --- a/test-infra/camel-test-infra-hdfs/src/test/java/org/apache/camel/test/infra/hdfs/v2/services/HDFSServiceFactory.java +++ b/test-infra/camel-test-infra-hdfs/src/test/java/org/apache/camel/test/infra/hdfs/v2/services/HDFSServiceFactory.java @@ -19,7 +19,6 @@ package org.apache.camel.test.infra.hdfs.v2.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 HDFSServiceFactory { @@ -37,21 +36,8 @@ public final class HDFSServiceFactory { public int getPort() { return getService().getPort(); } - - @Override - public void beforeAll(ExtensionContext extensionContext) { - addToStore(extensionContext); - } - - @Override - public void afterAll(ExtensionContext extensionContext) { - // NO-OP - } } - private static SimpleTestServiceBuilder<HDFSService> instance; - private static HDFSService service; - private HDFSServiceFactory() { } @@ -61,13 +47,15 @@ public final class HDFSServiceFactory { } public static HDFSService createSingletonService() { - if (service == null) { - if (instance == null) { - instance = builder(); - instance.addLocalMapping(() -> new SingletonHDFSService(new ContainerLocalHDFSService(), "hdfs")); - } - service = instance.build(); + return SingletonServiceHolder.INSTANCE; + } + + private static class SingletonServiceHolder { + static final HDFSService INSTANCE; + static { + SimpleTestServiceBuilder<HDFSService> instance = builder(); + instance.addLocalMapping(() -> new SingletonHDFSService(new ContainerLocalHDFSService(), "hdfs")); + INSTANCE = instance.build(); } - return service; } } diff --git a/test-infra/camel-test-infra-ignite/src/test/java/org/apache/camel/test/infra/ignite/services/IgniteService.java b/test-infra/camel-test-infra-ignite/src/test/java/org/apache/camel/test/infra/ignite/services/IgniteService.java index 4fe19da0e9e..3a8a7794b8c 100644 --- a/test-infra/camel-test-infra-ignite/src/test/java/org/apache/camel/test/infra/ignite/services/IgniteService.java +++ b/test-infra/camel-test-infra-ignite/src/test/java/org/apache/camel/test/infra/ignite/services/IgniteService.java @@ -17,25 +17,12 @@ package org.apache.camel.test.infra.ignite.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; import org.apache.ignite.configuration.IgniteConfiguration; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for Ignite */ -public interface IgniteService extends BeforeAllCallback, AfterAllCallback, TestService { - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } +public interface IgniteService extends TestService { IgniteConfiguration createConfiguration(); } diff --git a/test-infra/camel-test-infra-infinispan/src/test/java/org/apache/camel/test/infra/infinispan/services/InfinispanService.java b/test-infra/camel-test-infra-infinispan/src/test/java/org/apache/camel/test/infra/infinispan/services/InfinispanService.java index c15b767beca..4816253a410 100644 --- a/test-infra/camel-test-infra-infinispan/src/test/java/org/apache/camel/test/infra/infinispan/services/InfinispanService.java +++ b/test-infra/camel-test-infra-infinispan/src/test/java/org/apache/camel/test/infra/infinispan/services/InfinispanService.java @@ -17,15 +17,11 @@ package org.apache.camel.test.infra.infinispan.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for Infinispan */ -public interface InfinispanService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface InfinispanService extends TestService { String username(); @@ -36,14 +32,4 @@ public interface InfinispanService extends BeforeAllCallback, AfterAllCallback, String host(); String getServiceAddress(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-jdbc/src/test/java/org/apache/camel/test/infra/jdbc/services/JDBCService.java b/test-infra/camel-test-infra-jdbc/src/test/java/org/apache/camel/test/infra/jdbc/services/JDBCService.java index ad7a2d8154f..6ebff572305 100644 --- a/test-infra/camel-test-infra-jdbc/src/test/java/org/apache/camel/test/infra/jdbc/services/JDBCService.java +++ b/test-infra/camel-test-infra-jdbc/src/test/java/org/apache/camel/test/infra/jdbc/services/JDBCService.java @@ -18,22 +18,8 @@ package org.apache.camel.test.infra.jdbc.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -public interface JDBCService extends TestService, BeforeAllCallback, AfterAllCallback { +public interface JDBCService extends TestService { String jdbcUrl(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-jetty/src/test/java/org/apache/camel/test/infra/jetty/services/JettyService.java b/test-infra/camel-test-infra-jetty/src/test/java/org/apache/camel/test/infra/jetty/services/JettyService.java index c10a679e48c..4c3e4a82325 100644 --- a/test-infra/camel-test-infra-jetty/src/test/java/org/apache/camel/test/infra/jetty/services/JettyService.java +++ b/test-infra/camel-test-infra-jetty/src/test/java/org/apache/camel/test/infra/jetty/services/JettyService.java @@ -17,24 +17,11 @@ package org.apache.camel.test.infra.jetty.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for Jetty */ -public interface JettyService extends BeforeAllCallback, AfterAllCallback, TestService { - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } +public interface JettyService extends TestService { /** * Gets the port used to run the service diff --git a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/KafkaService.java b/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/KafkaService.java index 57baa6311c8..38bc88bc533 100644 --- a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/KafkaService.java +++ b/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/KafkaService.java @@ -18,9 +18,7 @@ package org.apache.camel.test.infra.kafka.services; import org.apache.camel.test.infra.common.services.TestService; -import org.junit.jupiter.api.extension.AfterAllCallback; import org.junit.jupiter.api.extension.AfterTestExecutionCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; import org.junit.jupiter.api.extension.BeforeTestExecutionCallback; import org.junit.jupiter.api.extension.ExtensionContext; import org.slf4j.Logger; @@ -29,8 +27,7 @@ import org.slf4j.LoggerFactory; /** * Provides an interface for any type of Kafka service: remote instances, local container, etc */ -public interface KafkaService - extends TestService, BeforeAllCallback, BeforeTestExecutionCallback, AfterAllCallback, AfterTestExecutionCallback { +public interface KafkaService extends TestService, BeforeTestExecutionCallback, AfterTestExecutionCallback { /** * Gets the addresses of the bootstrap servers in the format host1:port,host2:port,etc @@ -40,7 +37,7 @@ public interface KafkaService String getBootstrapServers(); @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { + default void beforeAll(ExtensionContext extensionContext) { try { initialize(); } catch (Exception e) { @@ -55,17 +52,17 @@ public interface KafkaService } @Override - default void beforeTestExecution(ExtensionContext extensionContext) throws Exception { + default void beforeTestExecution(ExtensionContext extensionContext) { //no op } @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { + default void afterAll(ExtensionContext extensionContext) { shutdown(); } @Override - default void afterTestExecution(ExtensionContext context) throws Exception { + default void afterTestExecution(ExtensionContext context) { //no op } } 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 241362d68fd..897a6cb5c20 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 @@ -19,7 +19,6 @@ package org.apache.camel.test.infra.kafka.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 KafkaServiceFactory { static class SingletonKafkaService extends SingletonService<KafkaService> implements KafkaService { @@ -31,21 +30,8 @@ public final class KafkaServiceFactory { public String getBootstrapServers() { return getService().getBootstrapServers(); } - - @Override - public void beforeAll(ExtensionContext extensionContext) { - addToStore(extensionContext); - } - - @Override - public void afterAll(ExtensionContext extensionContext) { - // NO-OP - } } - private static SimpleTestServiceBuilder<KafkaService> instance; - private static KafkaService kafkaService; - private KafkaServiceFactory() { } @@ -66,29 +52,28 @@ public final class KafkaServiceFactory { .build(); } - public static synchronized KafkaService createSingletonService() { - if (kafkaService == null) { - if (instance == null) { - instance = builder(); - - instance.addLocalMapping( - () -> new SingletonKafkaService(ContainerLocalKafkaService.kafka3Container(), "kafka")) - .addRemoteMapping(RemoteKafkaService::new) - .addMapping("local-kafka3-container", - () -> new SingletonKafkaService(ContainerLocalKafkaService.kafka3Container(), "kafka3")) - .addMapping("local-kafka2-container", - () -> new SingletonKafkaService(ContainerLocalKafkaService.kafka2Container(), "kafka2")) - .addMapping("local-strimzi-container", - () -> new SingletonKafkaService(new StrimziService(), "strimzi")) - .addMapping("local-redpanda-container", - () -> new SingletonKafkaService(new RedpandaService(), "redpanda")); - - } + public static KafkaService createSingletonService() { + return SingletonServiceHolder.INSTANCE; + } - kafkaService = instance.build(); + private static class SingletonServiceHolder { + static final KafkaService INSTANCE; + static { + SimpleTestServiceBuilder<KafkaService> instance = builder(); + + instance.addLocalMapping( + () -> new SingletonKafkaService(ContainerLocalKafkaService.kafka3Container(), "kafka")) + .addRemoteMapping(RemoteKafkaService::new) + .addMapping("local-kafka3-container", + () -> new SingletonKafkaService(ContainerLocalKafkaService.kafka3Container(), "kafka3")) + .addMapping("local-kafka2-container", + () -> new SingletonKafkaService(ContainerLocalKafkaService.kafka2Container(), "kafka2")) + .addMapping("local-strimzi-container", + () -> new SingletonKafkaService(new StrimziService(), "strimzi")) + .addMapping("local-redpanda-container", + () -> new SingletonKafkaService(new RedpandaService(), "redpanda")); + + INSTANCE = instance.build(); } - - return kafkaService; } - } diff --git a/test-infra/camel-test-infra-messaging-common/src/test/java/org/apache/camel/test/infra/messaging/services/MessagingService.java b/test-infra/camel-test-infra-messaging-common/src/test/java/org/apache/camel/test/infra/messaging/services/MessagingService.java index 1480e8dbf5f..27d4c7d4d58 100644 --- a/test-infra/camel-test-infra-messaging-common/src/test/java/org/apache/camel/test/infra/messaging/services/MessagingService.java +++ b/test-infra/camel-test-infra-messaging-common/src/test/java/org/apache/camel/test/infra/messaging/services/MessagingService.java @@ -18,12 +18,8 @@ package org.apache.camel.test.infra.messaging.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -public interface MessagingService extends TestService, BeforeAllCallback, AfterAllCallback { +public interface MessagingService extends TestService { /** * Gets the default endpoint for the messaging service (ie.: amqp://host:port, or tcp://host:port, etc) @@ -31,14 +27,4 @@ public interface MessagingService extends TestService, BeforeAllCallback, AfterA * @return the endpoint URL as a string in the specific format used by the service */ String defaultEndpoint(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-microprofile-lra/src/test/java/org/apache/camel/test/infra/microprofile/lra/services/MicroprofileLRAService.java b/test-infra/camel-test-infra-microprofile-lra/src/test/java/org/apache/camel/test/infra/microprofile/lra/services/MicroprofileLRAService.java index 785b51cac07..b91322c50c9 100644 --- a/test-infra/camel-test-infra-microprofile-lra/src/test/java/org/apache/camel/test/infra/microprofile/lra/services/MicroprofileLRAService.java +++ b/test-infra/camel-test-infra-microprofile-lra/src/test/java/org/apache/camel/test/infra/microprofile/lra/services/MicroprofileLRAService.java @@ -17,15 +17,11 @@ package org.apache.camel.test.infra.microprofile.lra.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for Microprofile LRA */ -public interface MicroprofileLRAService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface MicroprofileLRAService extends TestService { String host(); @@ -36,14 +32,4 @@ public interface MicroprofileLRAService extends BeforeAllCallback, AfterAllCallb default String getServiceAddress() { return String.format("http://%s:%d", host(), port()); } - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-minio/src/test/java/org/apache/camel/test/infra/minio/services/MinioService.java b/test-infra/camel-test-infra-minio/src/test/java/org/apache/camel/test/infra/minio/services/MinioService.java index c69eb9dd29f..a47fd0b28da 100644 --- a/test-infra/camel-test-infra-minio/src/test/java/org/apache/camel/test/infra/minio/services/MinioService.java +++ b/test-infra/camel-test-infra-minio/src/test/java/org/apache/camel/test/infra/minio/services/MinioService.java @@ -17,15 +17,11 @@ package org.apache.camel.test.infra.minio.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for Minio */ -public interface MinioService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface MinioService extends TestService { String secretKey(); @@ -34,14 +30,4 @@ public interface MinioService extends BeforeAllCallback, AfterAllCallback, TestS int port(); String host(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-mongodb/src/test/java/org/apache/camel/test/infra/mongodb/services/MongoDBService.java b/test-infra/camel-test-infra-mongodb/src/test/java/org/apache/camel/test/infra/mongodb/services/MongoDBService.java index f3a0addbad7..9ce4cd56211 100644 --- a/test-infra/camel-test-infra-mongodb/src/test/java/org/apache/camel/test/infra/mongodb/services/MongoDBService.java +++ b/test-infra/camel-test-infra-mongodb/src/test/java/org/apache/camel/test/infra/mongodb/services/MongoDBService.java @@ -18,12 +18,8 @@ package org.apache.camel.test.infra.mongodb.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -public interface MongoDBService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface MongoDBService extends TestService { /** * The replica set URL in the format mongodb://host:port @@ -38,14 +34,4 @@ public interface MongoDBService extends BeforeAllCallback, AfterAllCallback, Tes * @return the connection address */ String getConnectionAddress(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } 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 dfd97aece4e..cb6c46a9a40 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 @@ -19,7 +19,6 @@ package org.apache.camel.test.infra.mongodb.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 MongoDBServiceFactory { static class SingletonMongoDBService extends SingletonService<MongoDBService> implements MongoDBService { @@ -27,16 +26,6 @@ public final class MongoDBServiceFactory { super(service, name); } - @Override - public void beforeAll(ExtensionContext extensionContext) { - addToStore(extensionContext); - } - - @Override - public void afterAll(ExtensionContext extensionContext) { - // NO-OP - } - @Override public String getReplicaSetUrl() { return getService().getReplicaSetUrl(); @@ -48,9 +37,6 @@ public final class MongoDBServiceFactory { } } - private static SimpleTestServiceBuilder<MongoDBService> instance; - private static MongoDBService service; - private MongoDBServiceFactory() { } @@ -67,16 +53,17 @@ public final class MongoDBServiceFactory { } public static MongoDBService createSingletonService() { - if (service == null) { - if (instance == null) { - instance = builder(); - instance.addLocalMapping(() -> new SingletonMongoDBService(new MongoDBLocalContainerService(), "mongo-db")) - .addRemoteMapping(MongoDBRemoteService::new); - } + return SingletonServiceHolder.INSTANCE; + } - service = instance.build(); - } + private static class SingletonServiceHolder { + static final MongoDBService INSTANCE; + static { + SimpleTestServiceBuilder<MongoDBService> instance = builder(); + instance.addLocalMapping(() -> new SingletonMongoDBService(new MongoDBLocalContainerService(), "mongo-db")) + .addRemoteMapping(MongoDBRemoteService::new); - return service; + INSTANCE = instance.build(); + } } } diff --git a/test-infra/camel-test-infra-mosquitto/src/test/java/org/apache/camel/test/infra/mosquitto/services/MosquittoService.java b/test-infra/camel-test-infra-mosquitto/src/test/java/org/apache/camel/test/infra/mosquitto/services/MosquittoService.java index dbef19867ed..ba9aeda6724 100644 --- a/test-infra/camel-test-infra-mosquitto/src/test/java/org/apache/camel/test/infra/mosquitto/services/MosquittoService.java +++ b/test-infra/camel-test-infra-mosquitto/src/test/java/org/apache/camel/test/infra/mosquitto/services/MosquittoService.java @@ -17,25 +17,11 @@ package org.apache.camel.test.infra.mosquitto.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for Mosquitto */ -public interface MosquittoService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface MosquittoService extends TestService { Integer getPort(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-nats/src/test/java/org/apache/camel/test/infra/nats/services/NatsService.java b/test-infra/camel-test-infra-nats/src/test/java/org/apache/camel/test/infra/nats/services/NatsService.java index fe0653097fc..8126d31ee09 100644 --- a/test-infra/camel-test-infra-nats/src/test/java/org/apache/camel/test/infra/nats/services/NatsService.java +++ b/test-infra/camel-test-infra-nats/src/test/java/org/apache/camel/test/infra/nats/services/NatsService.java @@ -17,25 +17,11 @@ package org.apache.camel.test.infra.nats.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for Nats */ -public interface NatsService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface NatsService extends TestService { String getServiceAddress(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-openldap/src/test/java/org/apache/camel/test/infra/openldap/services/OpenldapService.java b/test-infra/camel-test-infra-openldap/src/test/java/org/apache/camel/test/infra/openldap/services/OpenldapService.java index e329efc7264..26eedc7ce45 100644 --- a/test-infra/camel-test-infra-openldap/src/test/java/org/apache/camel/test/infra/openldap/services/OpenldapService.java +++ b/test-infra/camel-test-infra-openldap/src/test/java/org/apache/camel/test/infra/openldap/services/OpenldapService.java @@ -17,29 +17,15 @@ package org.apache.camel.test.infra.openldap.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for Openldap */ -public interface OpenldapService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface OpenldapService extends TestService { Integer getPort(); Integer getSslPort(); String getHost(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-postgres/src/test/java/org/apache/camel/test/infra/postgres/services/PostgresService.java b/test-infra/camel-test-infra-postgres/src/test/java/org/apache/camel/test/infra/postgres/services/PostgresService.java index 3379bfeca1c..a02cfb1323a 100644 --- a/test-infra/camel-test-infra-postgres/src/test/java/org/apache/camel/test/infra/postgres/services/PostgresService.java +++ b/test-infra/camel-test-infra-postgres/src/test/java/org/apache/camel/test/infra/postgres/services/PostgresService.java @@ -17,15 +17,11 @@ package org.apache.camel.test.infra.postgres.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for Postgres */ -public interface PostgresService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface PostgresService extends TestService { String host(); @@ -36,14 +32,4 @@ public interface PostgresService extends BeforeAllCallback, AfterAllCallback, Te String password(); String getServiceAddress(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-pulsar/src/test/java/org/apache/camel/test/infra/pulsar/services/PulsarService.java b/test-infra/camel-test-infra-pulsar/src/test/java/org/apache/camel/test/infra/pulsar/services/PulsarService.java index 75f15cbf7a4..694bc9419f3 100644 --- a/test-infra/camel-test-infra-pulsar/src/test/java/org/apache/camel/test/infra/pulsar/services/PulsarService.java +++ b/test-infra/camel-test-infra-pulsar/src/test/java/org/apache/camel/test/infra/pulsar/services/PulsarService.java @@ -17,27 +17,13 @@ package org.apache.camel.test.infra.pulsar.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for Pulsar */ -public interface PulsarService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface PulsarService extends TestService { String getPulsarAdminUrl(); String getPulsarBrokerUrl(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-rabbitmq/src/test/java/org/apache/camel/test/infra/rabbitmq/services/RabbitMQService.java b/test-infra/camel-test-infra-rabbitmq/src/test/java/org/apache/camel/test/infra/rabbitmq/services/RabbitMQService.java index e4ebdf93185..ac3c04f4a85 100644 --- a/test-infra/camel-test-infra-rabbitmq/src/test/java/org/apache/camel/test/infra/rabbitmq/services/RabbitMQService.java +++ b/test-infra/camel-test-infra-rabbitmq/src/test/java/org/apache/camel/test/infra/rabbitmq/services/RabbitMQService.java @@ -18,12 +18,8 @@ package org.apache.camel.test.infra.rabbitmq.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -public interface RabbitMQService extends TestService, BeforeAllCallback, AfterAllCallback { +public interface RabbitMQService extends TestService { /** * The connection properties for the service @@ -58,14 +54,4 @@ public interface RabbitMQService extends TestService, BeforeAllCallback, AfterAl * Shuts down the service after the test has completed */ void shutdown(); - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-redis/src/test/java/org/apache/camel/test/infra/redis/services/RedisService.java b/test-infra/camel-test-infra-redis/src/test/java/org/apache/camel/test/infra/redis/services/RedisService.java index e0ef1777381..6e1902f05de 100644 --- a/test-infra/camel-test-infra-redis/src/test/java/org/apache/camel/test/infra/redis/services/RedisService.java +++ b/test-infra/camel-test-infra-redis/src/test/java/org/apache/camel/test/infra/redis/services/RedisService.java @@ -17,15 +17,11 @@ package org.apache.camel.test.infra.redis.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for Redis */ -public interface RedisService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface RedisService extends TestService { String host(); @@ -34,14 +30,4 @@ public interface RedisService extends BeforeAllCallback, AfterAllCallback, TestS default String getServiceAddress() { return String.format("%s:%d", host(), port()); } - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-solr/src/test/java/org/apache/camel/test/infra/solr/services/SolrService.java b/test-infra/camel-test-infra-solr/src/test/java/org/apache/camel/test/infra/solr/services/SolrService.java index de0fc56cacf..44409e9f4de 100644 --- a/test-infra/camel-test-infra-solr/src/test/java/org/apache/camel/test/infra/solr/services/SolrService.java +++ b/test-infra/camel-test-infra-solr/src/test/java/org/apache/camel/test/infra/solr/services/SolrService.java @@ -17,27 +17,13 @@ package org.apache.camel.test.infra.solr.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for Solr */ -public interface SolrService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface SolrService extends TestService { String getSolrBaseUrl(); boolean isCloudMode(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-xmpp/src/test/java/org/apache/camel/test/infra/xmpp/services/XmppService.java b/test-infra/camel-test-infra-xmpp/src/test/java/org/apache/camel/test/infra/xmpp/services/XmppService.java index d3539999b2b..51c3ef22fc4 100644 --- a/test-infra/camel-test-infra-xmpp/src/test/java/org/apache/camel/test/infra/xmpp/services/XmppService.java +++ b/test-infra/camel-test-infra-xmpp/src/test/java/org/apache/camel/test/infra/xmpp/services/XmppService.java @@ -17,28 +17,14 @@ package org.apache.camel.test.infra.xmpp.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for Xmpp */ -public interface XmppService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface XmppService extends TestService { String host(); int port(); String getUrl(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } } diff --git a/test-infra/camel-test-infra-zookeeper/src/test/java/org/apache/camel/test/infra/zookeeper/services/ZooKeeperService.java b/test-infra/camel-test-infra-zookeeper/src/test/java/org/apache/camel/test/infra/zookeeper/services/ZooKeeperService.java index b38890ad6c1..6d5466bc524 100644 --- a/test-infra/camel-test-infra-zookeeper/src/test/java/org/apache/camel/test/infra/zookeeper/services/ZooKeeperService.java +++ b/test-infra/camel-test-infra-zookeeper/src/test/java/org/apache/camel/test/infra/zookeeper/services/ZooKeeperService.java @@ -17,24 +17,10 @@ package org.apache.camel.test.infra.zookeeper.services; import org.apache.camel.test.infra.common.services.TestService; -import org.apache.camel.test.infra.common.services.TestServiceUtil; -import org.junit.jupiter.api.extension.AfterAllCallback; -import org.junit.jupiter.api.extension.BeforeAllCallback; -import org.junit.jupiter.api.extension.ExtensionContext; /** * Test infra service for ZooKeeper */ -public interface ZooKeeperService extends BeforeAllCallback, AfterAllCallback, TestService { +public interface ZooKeeperService extends TestService { String getConnectionString(); - - @Override - default void beforeAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryInitialize(this, extensionContext); - } - - @Override - default void afterAll(ExtensionContext extensionContext) throws Exception { - TestServiceUtil.tryShutdown(this, extensionContext); - } }