This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 26131bc8edd550b975976857d5b999b1c6a3d908 Author: Tran Tien Duc <[email protected]> AuthorDate: Tue Jun 4 14:16:00 2019 +0700 JAMES-2783 use the updated ES extension for ES reporter tests --- .../metric/es/DockerElasticSearch6Extension.java | 62 ---------------------- .../apache/james/metric/es/ES2ReporterTest.java | 9 +++- .../apache/james/metric/es/ES6ReporterTest.java | 7 ++- .../apache/james/metric/es/ESReporterContract.java | 16 +++--- 4 files changed, 20 insertions(+), 74 deletions(-) diff --git a/server/container/metrics/metrics-es-reporter/src/test/java/org/apache/james/metric/es/DockerElasticSearch6Extension.java b/server/container/metrics/metrics-es-reporter/src/test/java/org/apache/james/metric/es/DockerElasticSearch6Extension.java deleted file mode 100644 index fb58eaf..0000000 --- a/server/container/metrics/metrics-es-reporter/src/test/java/org/apache/james/metric/es/DockerElasticSearch6Extension.java +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one * - * or more contributor license agreements. See the NOTICE file * - * distributed with this work for additional information * - * regarding copyright ownership. The ASF licenses this file * - * to you under the Apache License, Version 2.0 (the * - * "License"); you may not use this file except in compliance * - * with the License. You may obtain a copy of the License at * - * * - * http://www.apache.org/licenses/LICENSE-2.0 * - * * - * Unless required by applicable law or agreed to in writing, * - * software distributed under the License is distributed on an * - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * - * KIND, either express or implied. See the License for the * - * specific language governing permissions and limitations * - * under the License. * - ****************************************************************/ -package org.apache.james.metric.es; - -import org.apache.james.util.docker.DockerGenericContainer; -import org.apache.james.util.docker.Images; -import org.apache.james.util.docker.RateLimiters; -import org.junit.jupiter.api.extension.AfterEachCallback; -import org.junit.jupiter.api.extension.BeforeEachCallback; -import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.api.extension.ParameterContext; -import org.junit.jupiter.api.extension.ParameterResolutionException; -import org.junit.jupiter.api.extension.ParameterResolver; -import org.testcontainers.containers.wait.strategy.HostPortWaitStrategy; - -public class DockerElasticSearch6Extension implements ParameterResolver, BeforeEachCallback, AfterEachCallback { - private final DockerGenericContainer elasticSearchContainer; - - private DockerElasticSearch6Extension() { - this.elasticSearchContainer = new DockerGenericContainer(Images.ELASTICSEARCH_6) - .withEnv("discovery.type", "single-node") - .withAffinityToContainer() - .withExposedPorts(ESReporterContract.ES_HTTP_PORT) - .waitingFor(new HostPortWaitStrategy().withRateLimiter(RateLimiters.TWENTIES_PER_SECOND)); - } - - @Override - public void beforeEach(ExtensionContext extensionContext) { - elasticSearchContainer.start(); - } - - @Override - public void afterEach(ExtensionContext extensionContext) { - elasticSearchContainer.stop(); - } - - @Override - public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return (parameterContext.getParameter().getType() == DockerGenericContainer.class); - } - - @Override - public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return elasticSearchContainer; - } -} \ No newline at end of file diff --git a/server/container/metrics/metrics-es-reporter/src/test/java/org/apache/james/metric/es/ES2ReporterTest.java b/server/container/metrics/metrics-es-reporter/src/test/java/org/apache/james/metric/es/ES2ReporterTest.java index 891ca45..eb23804 100644 --- a/server/container/metrics/metrics-es-reporter/src/test/java/org/apache/james/metric/es/ES2ReporterTest.java +++ b/server/container/metrics/metrics-es-reporter/src/test/java/org/apache/james/metric/es/ES2ReporterTest.java @@ -19,8 +19,13 @@ package org.apache.james.metric.es; -import org.junit.jupiter.api.extension.ExtendWith; +import org.apache.james.backends.es.DockerElasticSearch; +import org.apache.james.util.docker.Images; +import org.junit.jupiter.api.extension.RegisterExtension; -@ExtendWith(DockerElasticSearch2Extension.class) class ES2ReporterTest extends ESReporterContract { + + @RegisterExtension + static DockerElasticSearchExtension testExtension = new DockerElasticSearchExtension( + new DockerElasticSearch(Images.ELASTICSEARCH_2)); } diff --git a/server/container/metrics/metrics-es-reporter/src/test/java/org/apache/james/metric/es/ES6ReporterTest.java b/server/container/metrics/metrics-es-reporter/src/test/java/org/apache/james/metric/es/ES6ReporterTest.java index 482c92c..0c201a4 100644 --- a/server/container/metrics/metrics-es-reporter/src/test/java/org/apache/james/metric/es/ES6ReporterTest.java +++ b/server/container/metrics/metrics-es-reporter/src/test/java/org/apache/james/metric/es/ES6ReporterTest.java @@ -19,8 +19,11 @@ package org.apache.james.metric.es; -import org.junit.jupiter.api.extension.ExtendWith; +import org.apache.james.backends.es.DockerElasticSearch; +import org.junit.jupiter.api.extension.RegisterExtension; -@ExtendWith(DockerElasticSearch6Extension.class) class ES6ReporterTest extends ESReporterContract { + + @RegisterExtension + static DockerElasticSearchExtension testExtension = new DockerElasticSearchExtension(new DockerElasticSearch()); } diff --git a/server/container/metrics/metrics-es-reporter/src/test/java/org/apache/james/metric/es/ESReporterContract.java b/server/container/metrics/metrics-es-reporter/src/test/java/org/apache/james/metric/es/ESReporterContract.java index 3b0335f..d8ef7d0 100644 --- a/server/container/metrics/metrics-es-reporter/src/test/java/org/apache/james/metric/es/ESReporterContract.java +++ b/server/container/metrics/metrics-es-reporter/src/test/java/org/apache/james/metric/es/ESReporterContract.java @@ -27,12 +27,12 @@ import java.util.Timer; import java.util.TimerTask; import org.apache.http.HttpStatus; +import org.apache.james.backends.es.DockerElasticSearch; import org.apache.james.metrics.api.Metric; import org.apache.james.metrics.api.TimeMetric; import org.apache.james.metrics.dropwizard.DropWizardMetricFactory; import org.apache.james.metrics.es.ESMetricReporter; import org.apache.james.metrics.es.ESReporterConfiguration; -import org.apache.james.util.docker.DockerGenericContainer; import org.awaitility.Duration; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -47,24 +47,24 @@ abstract class ESReporterContract { public static final long PERIOD_IN_SECOND = 1L; public static final int DELAY_IN_MS = 100; public static final int PERIOD_IN_MS = 100; - public static final int ES_HTTP_PORT = 9200; private ESMetricReporter esMetricReporter; private MetricRegistry registry; private Timer timer; @BeforeEach - void setUp(DockerGenericContainer esContainer) { - RestAssured.baseURI = String.format("http://%s:%d", esContainer.getHostIp(), esContainer.getMappedPort(ES_HTTP_PORT)); + void setUp(DockerElasticSearch elasticSearch) { + RestAssured.baseURI = String.format("http://%s:%d", + elasticSearch.getHttpHost().getHostName(), elasticSearch.getHttpHost().getPort()); await().atMost(Duration.ONE_MINUTE) - .untilAsserted(() -> elasticSearchStarted()); + .untilAsserted(this::elasticSearchStarted); registry = new MetricRegistry(); timer = new Timer(); esMetricReporter = new ESMetricReporter( ESReporterConfiguration.builder() .enabled() - .onHost(esContainer.getHostIp(), esContainer.getMappedPort(ES_HTTP_PORT)) + .onHost(elasticSearch.getHttpHost().getHostName(), elasticSearch.getHttpHost().getPort()) .onIndex(INDEX) .periodInSecond(PERIOD_IN_SECOND) .build(), @@ -80,7 +80,7 @@ abstract class ESReporterContract { } @Test - void esMetricReporterShouldProduceDocumentsOnAnElasticsearchContainer(DockerGenericContainer esContainer) { + void esMetricReporterShouldProduceDocumentsOnAnElasticsearchContainer() { Metric metric = new DropWizardMetricFactory(registry).generate("probe"); TimerTask timerTask = new TimerTask() { @Override @@ -95,7 +95,7 @@ abstract class ESReporterContract { } @Test - void esMetricReporterShouldProduceDocumentsOnAnElasticsearchContainerWhenRecordingTimeMetric(DockerGenericContainer esContainer) { + void esMetricReporterShouldProduceDocumentsOnAnElasticsearchContainerWhenRecordingTimeMetric() { TimeMetric metric = new DropWizardMetricFactory(registry).timer("itstime"); TimerTask timerTask = new TimerTask() { @Override --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
