You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2023/08/02 08:07:26 UTC
[james-project] 06/07: Refactor RspamdExtension
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 <vt...@linagora.com>
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("alice@domain.tld");
@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: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org