This is an automated email from the ASF dual-hosted git repository. rcordier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 61b72522b2c3ec284d3c322f289e2a3cfc497bb4 Author: Tung Tran <[email protected]> AuthorDate: Fri Jul 21 17:49:47 2023 +0700 Refactor RspamdExtension --- third-party/rspamd/pom.xml | 6 - .../java/org/apache/james/rspamd/DockerClamAV.java | 53 ------- .../java/org/apache/james/rspamd/DockerRspamd.java | 102 -------------- .../apache/james/rspamd/DockerRspamdExtension.java | 66 --------- .../james/rspamd/DockerRspamdExtensionTest.java | 22 +-- .../org/apache/james/rspamd/RspamdExtension.java | 156 +++++++++++++++++++++ .../james/rspamd/client/RspamdHttpClientTest.java | 10 +- .../rspamd/healthcheck/RspamdHealthcheckTest.java | 14 +- .../james/rspamd/route/FeedMessageRouteTest.java | 6 +- .../james/rspamd/task/FeedHamToRspamdTaskTest.java | 6 +- .../rspamd/task/FeedSpamToRspamdTaskTest.java | 6 +- 11 files changed, 188 insertions(+), 259 deletions(-) diff --git a/third-party/rspamd/pom.xml b/third-party/rspamd/pom.xml index ff91ce9356..e83aff71eb 100644 --- a/third-party/rspamd/pom.xml +++ b/third-party/rspamd/pom.xml @@ -106,12 +106,6 @@ <version>${project.version}</version> <scope>provided</scope> </dependency> - <dependency> - <groupId>${james.groupId}</groupId> - <artifactId>james-server-rate-limiter-redis</artifactId> - <type>test-jar</type> - <scope>test</scope> - </dependency> <dependency> <groupId>${james.groupId}</groupId> <artifactId>james-server-task-json</artifactId> diff --git a/third-party/rspamd/src/test/java/org/apache/james/rspamd/DockerClamAV.java b/third-party/rspamd/src/test/java/org/apache/james/rspamd/DockerClamAV.java deleted file mode 100644 index 5b18644ec9..0000000000 --- a/third-party/rspamd/src/test/java/org/apache/james/rspamd/DockerClamAV.java +++ /dev/null @@ -1,53 +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.rspamd; - -import java.time.Duration; -import java.util.UUID; - -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.Network; -import org.testcontainers.containers.wait.strategy.Wait; -import org.testcontainers.utility.DockerImageName; - -public class DockerClamAV { - private static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("clamav/clamav").withTag("1.1"); - private static final int DEFAULT_PORT = 3310; - - private final GenericContainer<?> container; - - public DockerClamAV(Network network) { - this.container = new GenericContainer<>(DEFAULT_IMAGE_NAME) - .withExposedPorts(DEFAULT_PORT) - .withEnv("CLAMAV_NO_FRESHCLAMD", "true") - .withEnv("CLAMAV_NO_MILTERD", "true") - .withNetwork(network) - .withCreateContainerCmdModifier(createContainerCmd -> createContainerCmd.withName("james-clamav-test-" + UUID.randomUUID())) - .withNetworkAliases("clamav") - .waitingFor(Wait.forHealthcheck() - .withStartupTimeout(Duration.ofMinutes(2))); - } - - public void start() { - if (!container.isRunning()) { - container.start(); - } - } -} diff --git a/third-party/rspamd/src/test/java/org/apache/james/rspamd/DockerRspamd.java b/third-party/rspamd/src/test/java/org/apache/james/rspamd/DockerRspamd.java deleted file mode 100644 index 1be14bd554..0000000000 --- a/third-party/rspamd/src/test/java/org/apache/james/rspamd/DockerRspamd.java +++ /dev/null @@ -1,102 +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.rspamd; - -import java.time.Duration; -import java.util.UUID; -import java.util.stream.Stream; - -import org.apache.james.rate.limiter.DockerRedis; -import org.testcontainers.containers.GenericContainer; -import org.testcontainers.containers.Network; -import org.testcontainers.containers.wait.strategy.Wait; -import org.testcontainers.utility.DockerImageName; -import org.testcontainers.utility.MountableFile; - -public class DockerRspamd { - public static final String PASSWORD = "admin"; - private static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("a16bitsysop/rspamd"); - private static final String DEFAULT_TAG = "3.5-r7-alpine3.18.2-r0"; - private static final int DEFAULT_PORT = 11334; - - private final DockerRedis dockerRedis; - private final DockerClamAV dockerClamAV; - private final GenericContainer<?> container; - private final Network network; - - public DockerRspamd() { - this.network = Network.newNetwork(); - this.dockerRedis = new DockerRedis(network); - this.dockerClamAV = new DockerClamAV(network); - this.container = createRspamd(); - } - - public boolean isRunning() { - return container.isRunning(); - } - - private GenericContainer<?> createRspamd() { - return new GenericContainer<>(DEFAULT_IMAGE_NAME.withTag(DEFAULT_TAG)) - .withExposedPorts(DEFAULT_PORT) - .withEnv("REDIS", "redis") - .withEnv("CLAMAV", "clamav") - .withEnv("PASSWORD", PASSWORD) - .withCopyFileToContainer(MountableFile.forClasspathResource("rspamd-config/antivirus.conf"), "/etc/rspamd/override.d/") - .withCopyFileToContainer(MountableFile.forClasspathResource("rspamd-config/actions.conf"), "/etc/rspamd/") - .withCopyFileToContainer(MountableFile.forClasspathResource("rspamd-config/statistic.conf"), "/etc/rspamd/") - .withCreateContainerCmdModifier(createContainerCmd -> createContainerCmd.withName("james-rspamd-test-" + UUID.randomUUID())) - .withNetwork(network) - .waitingFor(Wait.forHealthcheck() - .withStartupTimeout(Duration.ofMinutes(2))); - } - - public Integer getPort() { - return container.getMappedPort(DEFAULT_PORT); - } - - public void start() { - Stream.<Runnable>of(dockerClamAV::start, dockerRedis::start) - .parallel() - .forEach(Runnable::run); - - if (!container.isRunning()) { - container.start(); - } - } - - public void pause() { - container.getDockerClient().pauseContainerCmd(container.getContainerId()).exec(); - } - - public void unPause() { - container.getDockerClient().unpauseContainerCmd(container.getContainerId()).exec(); - } - - public boolean isPaused() { - return container.getDockerClient().inspectContainerCmd(container.getContainerId()) - .exec() - .getState() - .getPaused(); - } - - public void flushAll() { - dockerRedis.flushAll(); - } -} diff --git a/third-party/rspamd/src/test/java/org/apache/james/rspamd/DockerRspamdExtension.java b/third-party/rspamd/src/test/java/org/apache/james/rspamd/DockerRspamdExtension.java deleted file mode 100644 index 92c2094893..0000000000 --- a/third-party/rspamd/src/test/java/org/apache/james/rspamd/DockerRspamdExtension.java +++ /dev/null @@ -1,66 +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.rspamd; - -import java.net.MalformedURLException; -import java.net.URL; - -import org.apache.james.GuiceModuleTestExtension; -import org.junit.jupiter.api.extension.ExtensionContext; -import org.junit.jupiter.api.extension.ParameterContext; -import org.junit.jupiter.api.extension.ParameterResolutionException; - -public class DockerRspamdExtension implements GuiceModuleTestExtension { - private static final DockerRspamd DOCKER_RSPAMD_SINGLETON = new DockerRspamd(); - - @Override - public void beforeAll(ExtensionContext extensionContext) { - if (!DOCKER_RSPAMD_SINGLETON.isRunning()) { - DOCKER_RSPAMD_SINGLETON.start(); - } - } - - @Override - public void beforeEach(ExtensionContext extensionContext) { - DOCKER_RSPAMD_SINGLETON.flushAll(); - } - - public DockerRspamd dockerRspamd() { - return DOCKER_RSPAMD_SINGLETON; - } - - @Override - public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return parameterContext.getParameter().getType() == DockerRspamd.class; - } - - @Override - public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return dockerRspamd(); - } - - public URL getBaseUrl() { - try { - return new URL("http://127.0.0.1:" + dockerRspamd().getPort()); - } catch (MalformedURLException e) { - throw new RuntimeException(e); - } - } -} diff --git a/third-party/rspamd/src/test/java/org/apache/james/rspamd/DockerRspamdExtensionTest.java b/third-party/rspamd/src/test/java/org/apache/james/rspamd/DockerRspamdExtensionTest.java index 4e51ac0bc3..f4166db072 100644 --- a/third-party/rspamd/src/test/java/org/apache/james/rspamd/DockerRspamdExtensionTest.java +++ b/third-party/rspamd/src/test/java/org/apache/james/rspamd/DockerRspamdExtensionTest.java @@ -19,7 +19,7 @@ package org.apache.james.rspamd; -import static org.apache.james.rspamd.DockerRspamd.PASSWORD; +import static org.apache.james.rspamd.RspamdExtension.PASSWORD; import static org.assertj.core.api.Assertions.assertThat; import static org.hamcrest.core.Is.is; @@ -41,11 +41,11 @@ import io.restassured.specification.RequestSpecification; @Tag(Unstable.TAG) class DockerRspamdExtensionTest { @RegisterExtension - static DockerRspamdExtension rspamdExtension = new DockerRspamdExtension(); + static RspamdExtension rspamdExtension = new RspamdExtension(); @Test void dockerRspamdExtensionShouldWork() { - RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.dockerRspamd().getPort())); + RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.rspamdPort())); String response = rspamdApi .get("ping") @@ -61,7 +61,7 @@ class DockerRspamdExtensionTest { @Test void checkSpamEmailWithExactPasswordHeaderShouldWork() { - RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.dockerRspamd().getPort())); + RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.rspamdPort())); rspamdApi .header(new Header("Password", PASSWORD)) @@ -74,7 +74,7 @@ class DockerRspamdExtensionTest { @Test void checkHamEmailWithExactPasswordHeaderShouldWork() { - RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.dockerRspamd().getPort())); + RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.rspamdPort())); rspamdApi .header(new Header("Password", PASSWORD)) .body(ClassLoader.getSystemResourceAsStream("mail/ham/ham1.eml")) @@ -86,7 +86,7 @@ class DockerRspamdExtensionTest { @Test void learnSpamEmailWithExactPasswordHeaderShouldWork() { - RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.dockerRspamd().getPort())); + RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.rspamdPort())); rspamdApi .header(new Header("Password", PASSWORD)) @@ -99,7 +99,7 @@ class DockerRspamdExtensionTest { @Test void learnHamEmailWithExactPasswordHeaderShouldWork() { - RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.dockerRspamd().getPort())); + RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.rspamdPort())); rspamdApi .header(new Header("Password", PASSWORD)) @@ -113,20 +113,20 @@ class DockerRspamdExtensionTest { @ParameterizedTest @ValueSource(strings = {"checkv2", "learnspam", "learnham"}) void endpointsWithWrongPasswordHeaderShouldReturnUnauthorized(String endpoint) { - RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.dockerRspamd().getPort())); + RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.rspamdPort())); rspamdApi .header(new Header("Password", "wrongPassword")) .body("dummy") .post(endpoint) .then() - .statusCode(HttpStatus.FORBIDDEN_403) + .statusCode(HttpStatus.UNAUTHORIZED_401) .body("error", is("Unauthorized")); } @Test void checkVirusEmailWithExactPasswordHeaderShouldReturnClamVirusSymbol() { - RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.dockerRspamd().getPort())); + RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.rspamdPort())); rspamdApi .header(new Header("Password", PASSWORD)) @@ -140,7 +140,7 @@ class DockerRspamdExtensionTest { @Test void checkNonVirusEmailWithExactPasswordHeaderShouldNotReturnClamVirusSymbol() { - RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.dockerRspamd().getPort())); + RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.rspamdPort())); rspamdApi .header(new Header("Password", PASSWORD)) diff --git a/third-party/rspamd/src/test/java/org/apache/james/rspamd/RspamdExtension.java b/third-party/rspamd/src/test/java/org/apache/james/rspamd/RspamdExtension.java new file mode 100644 index 0000000000..ab12fe54f1 --- /dev/null +++ b/third-party/rspamd/src/test/java/org/apache/james/rspamd/RspamdExtension.java @@ -0,0 +1,156 @@ +/**************************************************************** + * 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.rspamd; + +import java.io.IOException; +import java.net.URL; +import java.time.Duration; +import java.util.UUID; + +import org.apache.james.GuiceModuleTestExtension; +import org.apache.james.util.Runnables; +import org.junit.jupiter.api.extension.ExtensionContext; +import org.testcontainers.containers.GenericContainer; +import org.testcontainers.containers.Network; +import org.testcontainers.containers.wait.strategy.Wait; +import org.testcontainers.utility.DockerImageName; +import org.testcontainers.utility.MountableFile; + +import com.github.fge.lambdas.Throwing; + +public class RspamdExtension implements GuiceModuleTestExtension { + public static final Duration STARTUP_TIMEOUT = Duration.ofMinutes(5); + public static final String PASSWORD = "admin"; + + private static final DockerImageName RSPAMD_IMAGE = DockerImageName.parse("a16bitsysop/rspamd").withTag("3.5-r7-alpine3.18.2-r0"); + private static final DockerImageName REDIS_IMAGE = DockerImageName.parse("redis").withTag("7.0.12"); + private static final DockerImageName CLAMAV_IMAGE = DockerImageName.parse("clamav/clamav").withTag("1.1"); + private static final int RSPAMD_DEFAULT_PORT = 11334; + private static final int REDIS_DEFAULT_PORT = 6379; + private static final int CLAMAV_DEFAULT_PORT = 3310; + + private final GenericContainer<?> rspamdContainer; + private final GenericContainer<?> redisContainer; + private final GenericContainer<?> clamAVContainer; + private final Network network; + + public RspamdExtension() { + this.network = Network.newNetwork(); + this.redisContainer = redisContainer(network); + this.clamAVContainer = clamAVContainer(network); + this.rspamdContainer = rspamdContainer(network); + } + + @Override + public void beforeAll(ExtensionContext extensionContext) { + if (!rspamdContainer.isRunning()) { + rspamdContainer.start(); + } + } + + @Override + public void afterAll(ExtensionContext extensionContext) { + rspamdContainer.stop(); + Runnables.runParallel(redisContainer::stop, clamAVContainer::stop); + } + + @Override + public void beforeEach(ExtensionContext extensionContext) { + redisFlushAll(); + } + + public GenericContainer<?> rspamdContainer(Network network) { + return new GenericContainer<>(RSPAMD_IMAGE) + .withExposedPorts(RSPAMD_DEFAULT_PORT) + .withEnv("REDIS", "redis") + .withEnv("CLAMAV", "clamav") + .withEnv("PASSWORD", PASSWORD) + .withCopyFileToContainer(MountableFile.forClasspathResource("rspamd-config/antivirus.conf"), "/etc/rspamd/override.d/") + .withCopyFileToContainer(MountableFile.forClasspathResource("rspamd-config/actions.conf"), "/etc/rspamd/") + .withCopyFileToContainer(MountableFile.forClasspathResource("rspamd-config/statistic.conf"), "/etc/rspamd/") + .withCreateContainerCmdModifier(createContainerCmd -> createContainerCmd.withName("james-rspamd-test-" + UUID.randomUUID())) + .withNetwork(network) + .dependsOn(redisContainer, clamAVContainer) + .waitingFor(Wait.forHealthcheck()) + .withStartupTimeout(STARTUP_TIMEOUT); + } + + + public GenericContainer<?> redisContainer(Network network) { + return new GenericContainer<>(REDIS_IMAGE) + .withExposedPorts(REDIS_DEFAULT_PORT) + .withNetwork(network) + .withCreateContainerCmdModifier(createContainerCmd -> createContainerCmd.withName("james-redis-test-" + UUID.randomUUID())) + .withNetworkAliases("redis"); + } + + public GenericContainer<?> clamAVContainer(Network network) { + return new GenericContainer<>(CLAMAV_IMAGE) + .withExposedPorts(CLAMAV_DEFAULT_PORT) + .withEnv("CLAMAV_NO_FRESHCLAMD", "true") + .withEnv("CLAMAV_NO_MILTERD", "true") + .withNetwork(network) + .withCreateContainerCmdModifier(createContainerCmd -> createContainerCmd.withName("james-clamav-test-" + UUID.randomUUID())) + .withNetworkAliases("clamav") + .waitingFor(Wait.forHealthcheck()) + .withStartupTimeout(STARTUP_TIMEOUT); + } + + + public void redisFlushAll() { + try { + redisContainer.execInContainer("redis-cli", "flushall"); + } catch (IOException | InterruptedException e) { + throw new RuntimeException(e); + } + } + + public URL rspamdURL() { + return Throwing.supplier(() -> new URL("http", + rspamdContainer.getHost(), + rspamdContainer.getMappedPort(RSPAMD_DEFAULT_PORT), + "/")).get(); + } + + public URL getBaseUrl() { + return rspamdURL(); + } + + public int rspamdPort() { + return rspamdContainer.getMappedPort(RSPAMD_DEFAULT_PORT); + } + + + public void pause() { + rspamdContainer.getDockerClient().pauseContainerCmd(rspamdContainer.getContainerId()).exec(); + } + + public void unPause() { + rspamdContainer.getDockerClient().unpauseContainerCmd(rspamdContainer.getContainerId()).exec(); + } + + public boolean isPaused() { + return rspamdContainer.getDockerClient().inspectContainerCmd(rspamdContainer.getContainerId()) + .exec() + .getState() + .getPaused(); + } + +} diff --git a/third-party/rspamd/src/test/java/org/apache/james/rspamd/client/RspamdHttpClientTest.java b/third-party/rspamd/src/test/java/org/apache/james/rspamd/client/RspamdHttpClientTest.java index eff8966503..7d40490833 100644 --- a/third-party/rspamd/src/test/java/org/apache/james/rspamd/client/RspamdHttpClientTest.java +++ b/third-party/rspamd/src/test/java/org/apache/james/rspamd/client/RspamdHttpClientTest.java @@ -20,7 +20,7 @@ package org.apache.james.rspamd.client; import static org.apache.james.mailbox.model.Content.BUFFER_SIZE; -import static org.apache.james.rspamd.DockerRspamd.PASSWORD; +import static org.apache.james.rspamd.RspamdExtension.PASSWORD; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatCode; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -34,7 +34,7 @@ import javax.mail.MessagingException; import org.apache.james.core.Username; import org.apache.james.junit.categories.Unstable; -import org.apache.james.rspamd.DockerRspamdExtension; +import org.apache.james.rspamd.RspamdExtension; import org.apache.james.rspamd.exception.UnauthorizedException; import org.apache.james.rspamd.model.AnalysisResult; import org.apache.james.util.MimeMessageUtil; @@ -64,7 +64,7 @@ class RspamdHttpClientTest { private final static Username ALICE = Username.of("[email protected]"); @RegisterExtension - static DockerRspamdExtension rspamdExtension = new DockerRspamdExtension(); + static RspamdExtension rspamdExtension = new RspamdExtension(); private Mail spamMessage; private Mail hamMessage; @@ -134,7 +134,7 @@ class RspamdHttpClientTest { AnalysisResult analysisResult = client.checkV2(spamMessage).block(); assertThat(analysisResult.getAction()).isEqualTo(AnalysisResult.Action.ADD_HEADER); - RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.dockerRspamd().getPort())); + RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.rspamdPort())); rspamdApi .header(new Header("Password", PASSWORD)) .header(new Header("IP", spamMessage.getRemoteAddr())) @@ -160,7 +160,7 @@ class RspamdHttpClientTest { softly.assertThat(analysisResult.hasVirus()).isEqualTo(false); }); - RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.dockerRspamd().getPort())); + RequestSpecification rspamdApi = WebAdminUtils.spec(Port.of(rspamdExtension.rspamdPort())); rspamdApi .header(new Header("Password", PASSWORD)) .body(ClassLoader.getSystemResourceAsStream(HAM_MESSAGE_PATH)) diff --git a/third-party/rspamd/src/test/java/org/apache/james/rspamd/healthcheck/RspamdHealthcheckTest.java b/third-party/rspamd/src/test/java/org/apache/james/rspamd/healthcheck/RspamdHealthcheckTest.java index 3c7a367ee4..ee88c4293a 100644 --- a/third-party/rspamd/src/test/java/org/apache/james/rspamd/healthcheck/RspamdHealthcheckTest.java +++ b/third-party/rspamd/src/test/java/org/apache/james/rspamd/healthcheck/RspamdHealthcheckTest.java @@ -25,7 +25,7 @@ import java.net.URL; import java.util.Optional; import org.apache.james.core.healthcheck.Result; -import org.apache.james.rspamd.DockerRspamdExtension; +import org.apache.james.rspamd.RspamdExtension; import org.apache.james.rspamd.client.RspamdClientConfiguration; import org.apache.james.rspamd.client.RspamdHttpClient; import org.junit.jupiter.api.BeforeEach; @@ -36,14 +36,14 @@ import reactor.core.publisher.Mono; class RspamdHealthcheckTest { @RegisterExtension - static DockerRspamdExtension rspamdExtension = new DockerRspamdExtension(); + static RspamdExtension rspamdExtension = new RspamdExtension(); private RspamdHealthCheck rspamdHealthCheck; @BeforeEach void setUp() { - if (rspamdExtension.dockerRspamd().isPaused()) { - rspamdExtension.dockerRspamd().unPause(); + if (rspamdExtension.isPaused()) { + rspamdExtension.unPause(); } RspamdClientConfiguration configuration = new RspamdClientConfiguration(rspamdExtension.getBaseUrl(), "passwordDoesNotMatter", Optional.empty()); @@ -60,7 +60,7 @@ class RspamdHealthcheckTest { @Test void checkShouldReturnUnhealthyWhenRspamdIsDown() { - rspamdExtension.dockerRspamd().pause(); + rspamdExtension.pause(); Result check = Mono.from(rspamdHealthCheck.check()).block(); assertThat(check.isUnHealthy()).isTrue(); @@ -79,8 +79,8 @@ class RspamdHealthcheckTest { @Test void checkShouldReturnHealthyWhenRspamdIsRecovered() { - rspamdExtension.dockerRspamd().pause(); - rspamdExtension.dockerRspamd().unPause(); + rspamdExtension.pause(); + rspamdExtension.unPause(); Result check = Mono.from(rspamdHealthCheck.check()).block(); assertThat(check.isHealthy()).isTrue(); diff --git a/third-party/rspamd/src/test/java/org/apache/james/rspamd/route/FeedMessageRouteTest.java b/third-party/rspamd/src/test/java/org/apache/james/rspamd/route/FeedMessageRouteTest.java index f06f87fd1e..7a7d439f03 100644 --- a/third-party/rspamd/src/test/java/org/apache/james/rspamd/route/FeedMessageRouteTest.java +++ b/third-party/rspamd/src/test/java/org/apache/james/rspamd/route/FeedMessageRouteTest.java @@ -21,7 +21,7 @@ package org.apache.james.rspamd.route; import static io.restassured.RestAssured.given; import static io.restassured.http.ContentType.JSON; -import static org.apache.james.rspamd.DockerRspamd.PASSWORD; +import static org.apache.james.rspamd.RspamdExtension.PASSWORD; import static org.apache.james.rspamd.route.FeedMessageRoute.BASE_PATH; import static org.apache.james.rspamd.task.FeedHamToRspamdTaskTest.ALICE_INBOX_MAILBOX; import static org.apache.james.rspamd.task.FeedHamToRspamdTaskTest.BOB_INBOX_MAILBOX; @@ -62,7 +62,7 @@ import org.apache.james.mailbox.inmemory.InMemoryMailboxManager; import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; -import org.apache.james.rspamd.DockerRspamdExtension; +import org.apache.james.rspamd.RspamdExtension; import org.apache.james.rspamd.client.RspamdClientConfiguration; import org.apache.james.rspamd.client.RspamdHttpClient; import org.apache.james.rspamd.task.FeedHamToRspamdTask; @@ -98,7 +98,7 @@ import io.restassured.RestAssured; @Tag(Unstable.TAG) public class FeedMessageRouteTest { @RegisterExtension - static DockerRspamdExtension rspamdExtension = new DockerRspamdExtension(); + static RspamdExtension rspamdExtension = new RspamdExtension(); private InMemoryMailboxManager mailboxManager; private WebAdminServer webAdminServer; diff --git a/third-party/rspamd/src/test/java/org/apache/james/rspamd/task/FeedHamToRspamdTaskTest.java b/third-party/rspamd/src/test/java/org/apache/james/rspamd/task/FeedHamToRspamdTaskTest.java index 418799003f..5cc995d0d9 100644 --- a/third-party/rspamd/src/test/java/org/apache/james/rspamd/task/FeedHamToRspamdTaskTest.java +++ b/third-party/rspamd/src/test/java/org/apache/james/rspamd/task/FeedHamToRspamdTaskTest.java @@ -19,7 +19,7 @@ package org.apache.james.rspamd.task; -import static org.apache.james.rspamd.DockerRspamd.PASSWORD; +import static org.apache.james.rspamd.RspamdExtension.PASSWORD; import static org.apache.james.rspamd.task.FeedSpamToRspamdTaskTest.BOB_SPAM_MAILBOX; import static org.apache.james.rspamd.task.RunningOptions.ALL_MESSAGES; import static org.apache.james.rspamd.task.RunningOptions.DEFAULT_MESSAGES_PER_SECOND; @@ -53,7 +53,7 @@ import org.apache.james.mailbox.inmemory.InMemoryMailboxManager; import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; -import org.apache.james.rspamd.DockerRspamdExtension; +import org.apache.james.rspamd.RspamdExtension; import org.apache.james.rspamd.client.RspamdClientConfiguration; import org.apache.james.rspamd.client.RspamdHttpClient; import org.apache.james.task.Task; @@ -80,7 +80,7 @@ import reactor.core.publisher.Mono; @Tag(Unstable.TAG) public class FeedHamToRspamdTaskTest { @RegisterExtension - static DockerRspamdExtension rspamdExtension = new DockerRspamdExtension(); + static RspamdExtension rspamdExtension = new RspamdExtension(); public static final String INBOX_MAILBOX_NAME = "INBOX"; public static final Domain DOMAIN = Domain.of("domain.tld"); diff --git a/third-party/rspamd/src/test/java/org/apache/james/rspamd/task/FeedSpamToRspamdTaskTest.java b/third-party/rspamd/src/test/java/org/apache/james/rspamd/task/FeedSpamToRspamdTaskTest.java index 80260bf311..51887aeca2 100644 --- a/third-party/rspamd/src/test/java/org/apache/james/rspamd/task/FeedSpamToRspamdTaskTest.java +++ b/third-party/rspamd/src/test/java/org/apache/james/rspamd/task/FeedSpamToRspamdTaskTest.java @@ -19,7 +19,7 @@ package org.apache.james.rspamd.task; -import static org.apache.james.rspamd.DockerRspamd.PASSWORD; +import static org.apache.james.rspamd.RspamdExtension.PASSWORD; import static org.apache.james.rspamd.task.FeedSpamToRspamdTask.SPAM_MAILBOX_NAME; import static org.apache.james.rspamd.task.RunningOptions.ALL_MESSAGES; import static org.apache.james.rspamd.task.RunningOptions.DEFAULT_MESSAGES_PER_SECOND; @@ -53,7 +53,7 @@ import org.apache.james.mailbox.inmemory.InMemoryMailboxManager; import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.store.MailboxSessionMapperFactory; -import org.apache.james.rspamd.DockerRspamdExtension; +import org.apache.james.rspamd.RspamdExtension; import org.apache.james.rspamd.client.RspamdClientConfiguration; import org.apache.james.rspamd.client.RspamdHttpClient; import org.apache.james.task.Task; @@ -80,7 +80,7 @@ import reactor.core.publisher.Mono; @Tag(Unstable.TAG) public class FeedSpamToRspamdTaskTest { @RegisterExtension - static DockerRspamdExtension rspamdExtension = new DockerRspamdExtension(); + static RspamdExtension rspamdExtension = new RspamdExtension(); public static final Domain DOMAIN = Domain.of("domain.tld"); public static final Username CEDRIC = Username.fromLocalPartWithDomain("cedric", DOMAIN); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
