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 2020/10/24 06:30:06 UTC
[camel] branch master updated: Unify the test service interfaces
(#4506)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new fe0599b Unify the test service interfaces (#4506)
fe0599b is described below
commit fe0599bbedffa9b3334e911d1e762adaf68e1fad
Author: Otavio Rodolfo Piske <or...@users.noreply.github.com>
AuthorDate: Sat Oct 24 08:29:47 2020 +0200
Unify the test service interfaces (#4506)
This allow them to have greater flexibility about how they can be used
and reduce some duplications on their interfaces.
---
test-infra/camel-test-infra-aws-common/pom.xml | 10 +++++++++
.../test/infra/aws/common/services/AWSService.java | 13 ++---------
.../aws/services/AWSLocalContainerService.java | 6 +++--
.../aws2/services/AWSLocalContainerService.java | 6 +++--
.../services/CassandraLocalContainerService.java | 11 ++++++++-
.../infra/cassandra/services/CassandraService.java | 13 ++---------
test-infra/camel-test-infra-common/pom.xml | 7 ++++++
.../infra/common/services/ContainerService.java} | 26 ++++------------------
.../test/infra/common/services/TestService.java} | 25 ++-------------------
.../kafka/services/ContainerLocalKafkaService.java | 8 ++++++-
.../test/infra/kafka/services/KafkaService.java | 13 ++---------
.../test/infra/kafka/services/StrimziService.java | 8 ++++++-
12 files changed, 61 insertions(+), 85 deletions(-)
diff --git a/test-infra/camel-test-infra-aws-common/pom.xml b/test-infra/camel-test-infra-aws-common/pom.xml
index 741ce86..565b8cc 100644
--- a/test-infra/camel-test-infra-aws-common/pom.xml
+++ b/test-infra/camel-test-infra-aws-common/pom.xml
@@ -30,6 +30,16 @@
<name>Camel :: Test Infra :: AWS Common</name>
<artifactId>camel-test-infra-aws-common</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-test-infra-common</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
<build>
<plugins>
<plugin>
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 b588963..02aba8b 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
@@ -19,26 +19,17 @@ package org.apache.camel.test.infra.aws.common.services;
import java.util.Properties;
+import org.apache.camel.test.infra.common.services.TestService;
import org.junit.jupiter.api.extension.AfterAllCallback;
import org.junit.jupiter.api.extension.BeforeAllCallback;
import org.junit.jupiter.api.extension.ExtensionContext;
-public interface AWSService<T> extends BeforeAllCallback, AfterAllCallback {
+public interface AWSService<T> extends BeforeAllCallback, AfterAllCallback, TestService {
T getClient();
Properties getConnectionProperties();
- /**
- * Perform any initialization necessary
- */
- void initialize();
-
- /**
- * Shuts down the service after the test has completed
- */
- void shutdown();
-
@Override
default void beforeAll(ExtensionContext extensionContext) throws Exception {
initialize();
diff --git a/test-infra/camel-test-infra-aws-v1/src/test/java/org/apache/camel/test/infra/aws/services/AWSLocalContainerService.java b/test-infra/camel-test-infra-aws-v1/src/test/java/org/apache/camel/test/infra/aws/services/AWSLocalContainerService.java
index 6460921..97927f4 100644
--- a/test-infra/camel-test-infra-aws-v1/src/test/java/org/apache/camel/test/infra/aws/services/AWSLocalContainerService.java
+++ b/test-infra/camel-test-infra-aws-v1/src/test/java/org/apache/camel/test/infra/aws/services/AWSLocalContainerService.java
@@ -23,11 +23,12 @@ import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.regions.Regions;
import org.apache.camel.test.infra.aws.common.AWSConfigs;
import org.apache.camel.test.infra.aws.common.services.AWSService;
+import org.apache.camel.test.infra.common.services.ContainerService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.localstack.LocalStackContainer;
-abstract class AWSLocalContainerService<T> implements AWSService<T> {
+abstract class AWSLocalContainerService<T> implements AWSService<T>, ContainerService<LocalStackContainer> {
private static final Logger LOG = LoggerFactory.getLogger(AWSLocalContainerService.class);
private final LocalStackContainer container;
@@ -86,7 +87,8 @@ abstract class AWSLocalContainerService<T> implements AWSService<T> {
return properties;
}
- protected LocalStackContainer getContainer() {
+ @Override
+ public LocalStackContainer getContainer() {
return container;
}
diff --git a/test-infra/camel-test-infra-aws-v2/src/test/java/org/apache/camel/test/infra/aws2/services/AWSLocalContainerService.java b/test-infra/camel-test-infra-aws-v2/src/test/java/org/apache/camel/test/infra/aws2/services/AWSLocalContainerService.java
index ecba4fc..c2f17b2 100644
--- a/test-infra/camel-test-infra-aws-v2/src/test/java/org/apache/camel/test/infra/aws2/services/AWSLocalContainerService.java
+++ b/test-infra/camel-test-infra-aws-v2/src/test/java/org/apache/camel/test/infra/aws2/services/AWSLocalContainerService.java
@@ -22,12 +22,13 @@ import java.util.Properties;
import org.apache.camel.test.infra.aws.common.AWSConfigs;
import org.apache.camel.test.infra.aws.common.services.AWSService;
+import org.apache.camel.test.infra.common.services.ContainerService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.auth.credentials.AwsCredentials;
import software.amazon.awssdk.regions.Region;
-abstract class AWSLocalContainerService<T> implements AWSService<T> {
+abstract class AWSLocalContainerService<T> implements AWSService<T>, ContainerService<AWSContainer> {
private static final Logger LOG = LoggerFactory.getLogger(AWSLocalContainerService.class);
private AWSContainer container;
@@ -43,7 +44,8 @@ abstract class AWSLocalContainerService<T> implements AWSService<T> {
return container.getAmazonHost();
}
- protected AWSContainer getContainer() {
+ @Override
+ public AWSContainer getContainer() {
return container;
}
diff --git a/test-infra/camel-test-infra-cassandra/src/test/java/org/apache/camel/test/infra/cassandra/services/CassandraLocalContainerService.java b/test-infra/camel-test-infra-cassandra/src/test/java/org/apache/camel/test/infra/cassandra/services/CassandraLocalContainerService.java
index 9677aef..148da2f 100644
--- a/test-infra/camel-test-infra-cassandra/src/test/java/org/apache/camel/test/infra/cassandra/services/CassandraLocalContainerService.java
+++ b/test-infra/camel-test-infra-cassandra/src/test/java/org/apache/camel/test/infra/cassandra/services/CassandraLocalContainerService.java
@@ -16,6 +16,7 @@
*/
package org.apache.camel.test.infra.cassandra.services;
+import org.apache.camel.test.infra.common.services.ContainerService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.CassandraContainer;
@@ -23,7 +24,10 @@ import org.testcontainers.containers.CassandraContainer;
/**
* A service for a local instance of Apache Cassandra running with TestContainers
*/
-public class CassandraLocalContainerService implements CassandraService<CassandraLocalContainerService> {
+public class CassandraLocalContainerService
+ implements
+ CassandraService<CassandraLocalContainerService>,
+ ContainerService<CassandraContainer> {
private static final Logger LOG = LoggerFactory.getLogger(CassandraLocalContainerService.class);
private CassandraContainer container;
@@ -67,4 +71,9 @@ public class CassandraLocalContainerService implements CassandraService<Cassandr
LOG.info("Stopping the Cassandra container");
container.stop();
}
+
+ @Override
+ public CassandraContainer getContainer() {
+ return container;
+ }
}
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 7d451cf..5f650bb 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
@@ -17,6 +17,7 @@
package org.apache.camel.test.infra.cassandra.services;
+import org.apache.camel.test.infra.common.services.TestService;
import org.junit.jupiter.api.extension.AfterAllCallback;
import org.junit.jupiter.api.extension.BeforeAllCallback;
import org.junit.jupiter.api.extension.ExtensionContext;
@@ -24,7 +25,7 @@ import org.junit.jupiter.api.extension.ExtensionContext;
/**
* Represents an endpoint to a Cassandra instance
*/
-public interface CassandraService<T extends CassandraService<T>> extends BeforeAllCallback, AfterAllCallback {
+public interface CassandraService<T extends CassandraService<T>> extends BeforeAllCallback, AfterAllCallback, TestService {
int getCQL3Port();
@@ -38,16 +39,6 @@ public interface CassandraService<T extends CassandraService<T>> extends BeforeA
T withNetworkAliases(String network);
- /**
- * Perform any initialization necessary
- */
- void initialize();
-
- /**
- * Shuts down the service after the test has completed
- */
- void shutdown();
-
@Override
default void beforeAll(ExtensionContext extensionContext) throws Exception {
initialize();
diff --git a/test-infra/camel-test-infra-common/pom.xml b/test-infra/camel-test-infra-common/pom.xml
index bd5f176..e2e35c1 100644
--- a/test-infra/camel-test-infra-common/pom.xml
+++ b/test-infra/camel-test-infra-common/pom.xml
@@ -41,4 +41,11 @@
</plugins>
</build>
+ <dependencies>
+ <dependency>
+ <groupId>org.testcontainers</groupId>
+ <artifactId>testcontainers</artifactId>
+ </dependency>
+ </dependencies>
+
</project>
\ No newline at end of file
diff --git a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/ContainerLocalKafkaService.java b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/ContainerService.java
similarity index 52%
copy from test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/ContainerLocalKafkaService.java
copy to test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/ContainerService.java
index 1d94732..f2358dd 100644
--- a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/ContainerLocalKafkaService.java
+++ b/test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/ContainerService.java
@@ -15,29 +15,11 @@
* limitations under the License.
*/
-package org.apache.camel.test.infra.kafka.services;
+package org.apache.camel.test.infra.common.services;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testcontainers.containers.KafkaContainer;
+import org.testcontainers.containers.GenericContainer;
-public class ContainerLocalKafkaService implements KafkaService {
- private static final Logger LOG = LoggerFactory.getLogger(ContainerLocalKafkaService.class);
- private KafkaContainer kafka = new KafkaContainer().withEmbeddedZookeeper();
+public interface ContainerService<T extends GenericContainer> {
- public String getBootstrapServers() {
- return kafka.getBootstrapServers();
- }
-
- @Override
- public void initialize() {
- kafka.start();
-
- LOG.info("Kafka bootstrap server running at address {}", kafka.getBootstrapServers());
- }
-
- @Override
- public void shutdown() {
- kafka.stop();
- }
+ T getContainer();
}
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-common/src/test/java/org/apache/camel/test/infra/common/services/TestService.java
similarity index 60%
copy from test-infra/camel-test-infra-aws-common/src/test/java/org/apache/camel/test/infra/aws/common/services/AWSService.java
copy to test-infra/camel-test-infra-common/src/test/java/org/apache/camel/test/infra/common/services/TestService.java
index b588963..ede2800 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-common/src/test/java/org/apache/camel/test/infra/common/services/TestService.java
@@ -15,20 +15,9 @@
* limitations under the License.
*/
-package org.apache.camel.test.infra.aws.common.services;
-
-import java.util.Properties;
-
-import org.junit.jupiter.api.extension.AfterAllCallback;
-import org.junit.jupiter.api.extension.BeforeAllCallback;
-import org.junit.jupiter.api.extension.ExtensionContext;
-
-public interface AWSService<T> extends BeforeAllCallback, AfterAllCallback {
-
- T getClient();
-
- Properties getConnectionProperties();
+package org.apache.camel.test.infra.common.services;
+public interface TestService {
/**
* Perform any initialization necessary
*/
@@ -38,14 +27,4 @@ public interface AWSService<T> extends BeforeAllCallback, AfterAllCallback {
* Shuts down the service after the test has completed
*/
void shutdown();
-
- @Override
- default void beforeAll(ExtensionContext extensionContext) throws Exception {
- initialize();
- }
-
- @Override
- default void afterAll(ExtensionContext extensionContext) throws Exception {
- shutdown();
- }
}
diff --git a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/ContainerLocalKafkaService.java b/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/ContainerLocalKafkaService.java
index 1d94732..3576f54 100644
--- a/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/ContainerLocalKafkaService.java
+++ b/test-infra/camel-test-infra-kafka/src/test/java/org/apache/camel/test/infra/kafka/services/ContainerLocalKafkaService.java
@@ -17,11 +17,12 @@
package org.apache.camel.test.infra.kafka.services;
+import org.apache.camel.test.infra.common.services.ContainerService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.KafkaContainer;
-public class ContainerLocalKafkaService implements KafkaService {
+public class ContainerLocalKafkaService implements KafkaService, ContainerService<KafkaContainer> {
private static final Logger LOG = LoggerFactory.getLogger(ContainerLocalKafkaService.class);
private KafkaContainer kafka = new KafkaContainer().withEmbeddedZookeeper();
@@ -40,4 +41,9 @@ public class ContainerLocalKafkaService implements KafkaService {
public void shutdown() {
kafka.stop();
}
+
+ @Override
+ public KafkaContainer getContainer() {
+ return kafka;
+ }
}
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 339c2d8..ab8fb04 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
@@ -17,6 +17,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;
@@ -27,7 +28,7 @@ import org.junit.jupiter.api.extension.ExtensionContext;
* Provides an interface for any type of Kafka service: remote instances, local container, etc
*/
public interface KafkaService
- extends BeforeAllCallback, BeforeTestExecutionCallback, AfterAllCallback, AfterTestExecutionCallback {
+ extends TestService, BeforeAllCallback, BeforeTestExecutionCallback, AfterAllCallback, AfterTestExecutionCallback {
/**
* Gets the addresses of the bootstrap servers in the format host1:port,host2:port,etc
@@ -36,16 +37,6 @@ public interface KafkaService
*/
String getBootstrapServers();
- /**
- * Perform any initialization necessary
- */
- void initialize();
-
- /**
- * Shutdown the service
- */
- void shutdown();
-
@Override
default void beforeAll(ExtensionContext extensionContext) throws Exception {
initialize();
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 c8e849c..d85b098 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
@@ -18,11 +18,12 @@
package org.apache.camel.test.infra.kafka.services;
import org.apache.camel.test.infra.common.TestUtils;
+import org.apache.camel.test.infra.common.services.ContainerService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testcontainers.containers.Network;
-public class StrimziService implements KafkaService {
+public class StrimziService implements KafkaService, ContainerService<StrimziContainer> {
private static final Logger LOG = LoggerFactory.getLogger(StrimziService.class);
private static ZookeeperContainer zookeeperContainer;
@@ -106,4 +107,9 @@ public class StrimziService implements KafkaService {
TestUtils.waitFor(this::stopped);
}
}
+
+ @Override
+ public StrimziContainer getContainer() {
+ return strimziContainer;
+ }
}