You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/01/26 01:13:45 UTC
[01/10] james-project git commit: JAMES-2294 Fix taskIdDTO Location
header
Repository: james-project
Updated Branches:
refs/heads/master dec2685fa -> 866d09e24
JAMES-2294 Fix taskIdDTO Location header
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/fac7e596
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/fac7e596
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/fac7e596
Branch: refs/heads/master
Commit: fac7e596baf4e54ec94a5d612bf2e6c9da91c1fa
Parents: dec2685
Author: benwa <bt...@linagora.com>
Authored: Thu Jan 25 10:22:00 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jan 26 08:12:00 2018 +0700
----------------------------------------------------------------------
.../apache/james/webadmin/dto/TaskIdDto.java | 2 +-
.../james/webadmin/dto/TaskIdDtoTest.java | 50 ++++++++++++++++++++
2 files changed, 51 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/fac7e596/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/dto/TaskIdDto.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/dto/TaskIdDto.java b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/dto/TaskIdDto.java
index 64c4321..35f88e9 100644
--- a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/dto/TaskIdDto.java
+++ b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/dto/TaskIdDto.java
@@ -33,7 +33,7 @@ public class TaskIdDto {
public static TaskIdDto respond(Response response, TaskId taskId) {
response.status(HttpStatus.CREATED_201);
- response.header(LOCATION.asString(), TasksRoutes.BASE + "/" + taskId.toString());
+ response.header(LOCATION.asString(), TasksRoutes.BASE + "/" + taskId.getValue());
return TaskIdDto.from(taskId);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/fac7e596/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/dto/TaskIdDtoTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/dto/TaskIdDtoTest.java b/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/dto/TaskIdDtoTest.java
new file mode 100644
index 0000000..5f85a54
--- /dev/null
+++ b/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/dto/TaskIdDtoTest.java
@@ -0,0 +1,50 @@
+/****************************************************************
+ * 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.webadmin.dto;
+
+import static org.eclipse.jetty.http.HttpHeader.LOCATION;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+
+import java.util.UUID;
+
+import org.apache.james.task.TaskId;
+import org.eclipse.jetty.http.HttpStatus;
+import org.junit.Test;
+
+import spark.Response;
+
+public class TaskIdDtoTest {
+ private static final String UID_VALUE = "ce5316cb-c924-40eb-9ca0-c5828e276297";
+
+ @Test
+ public void respondShouldReturnCreatedWithTaskIdHeader() {
+ Response response = mock(Response.class);
+ TaskId taskId = new TaskId(UUID.fromString(UID_VALUE));
+
+ TaskIdDto.respond(response, taskId);
+
+ verify(response).status(HttpStatus.CREATED_201);
+ verify(response).header(LOCATION.asString(), "/tasks/" + UID_VALUE);
+ verifyNoMoreInteractions(response);
+ }
+
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[04/10] james-project git commit: JAMES-2292 Bind MailQueueRoutes
Posted by bt...@apache.org.
JAMES-2292 Bind MailQueueRoutes
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/a5abe355
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/a5abe355
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/a5abe355
Branch: refs/heads/master
Commit: a5abe3554d7c53f1ea83a195e1d8236171b811cc
Parents: d45cf81
Author: Antoine Duprat <ad...@linagora.com>
Authored: Thu Jan 25 11:54:16 2018 +0100
Committer: benwa <bt...@linagora.com>
Committed: Fri Jan 26 08:12:21 2018 +0700
----------------------------------------------------------------------
pom.xml | 5 ++
server/container/guice/cassandra-guice/pom.xml | 4 ++
.../apache/james/CassandraJamesServerMain.java | 2 +
server/container/guice/jpa-guice/pom.xml | 4 ++
.../org/apache/james/JPAJamesServerMain.java | 2 +
server/container/guice/memory-guice/pom.xml | 4 ++
.../org/apache/james/MemoryJamesServerMain.java | 2 +
server/container/guice/pom.xml | 8 ++-
.../guice/protocols/webadmin-mailqueue/pom.xml | 71 ++++++++++++++++++++
.../modules/server/MailQueueRoutesModule.java | 34 ++++++++++
.../WebAdminServerIntegrationTest.java | 9 +++
.../james/webadmin/routes/MailQueueRoutes.java | 7 +-
12 files changed, 148 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/a5abe355/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 3294ff4..3411bd5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1425,6 +1425,11 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>james-server-webadmin-mailqueue</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>james-server-webadmin-mailrepository</artifactId>
<version>${project.version}</version>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/a5abe355/server/container/guice/cassandra-guice/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/pom.xml b/server/container/guice/cassandra-guice/pom.xml
index 7babc31..a0e6b14 100644
--- a/server/container/guice/cassandra-guice/pom.xml
+++ b/server/container/guice/cassandra-guice/pom.xml
@@ -170,6 +170,10 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>james-server-guice-webadmin-mailqueue</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>james-server-guice-webadmin-mailrepository</artifactId>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/a5abe355/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
----------------------------------------------------------------------
diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
index 063ff7c..d117d9b 100644
--- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
+++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/CassandraJamesServerMain.java
@@ -43,6 +43,7 @@ import org.apache.james.modules.server.CassandraRoutesModule;
import org.apache.james.modules.server.DataRoutesModules;
import org.apache.james.modules.server.ElasticSearchMetricReporterModule;
import org.apache.james.modules.server.JMXServerModule;
+import org.apache.james.modules.server.MailQueueRoutesModule;
import org.apache.james.modules.server.MailRepositoriesRoutesModule;
import org.apache.james.modules.server.MailboxRoutesModule;
import org.apache.james.modules.server.SwaggerRoutesModule;
@@ -57,6 +58,7 @@ public class CassandraJamesServerMain {
new CassandraRoutesModule(),
new DataRoutesModules(),
new MailboxRoutesModule(),
+ new MailQueueRoutesModule(),
new MailRepositoriesRoutesModule(),
new SwaggerRoutesModule(),
new WebAdminServerModule());
http://git-wip-us.apache.org/repos/asf/james-project/blob/a5abe355/server/container/guice/jpa-guice/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-guice/pom.xml b/server/container/guice/jpa-guice/pom.xml
index 1cd7261..26f8f20 100644
--- a/server/container/guice/jpa-guice/pom.xml
+++ b/server/container/guice/jpa-guice/pom.xml
@@ -113,6 +113,10 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>james-server-guice-webadmin-mailqueue</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>james-server-guice-webadmin-mailrepository</artifactId>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/a5abe355/server/container/guice/jpa-guice/src/main/java/org/apache/james/JPAJamesServerMain.java
----------------------------------------------------------------------
diff --git a/server/container/guice/jpa-guice/src/main/java/org/apache/james/JPAJamesServerMain.java b/server/container/guice/jpa-guice/src/main/java/org/apache/james/JPAJamesServerMain.java
index d3e3e15..fbf4d13 100644
--- a/server/container/guice/jpa-guice/src/main/java/org/apache/james/JPAJamesServerMain.java
+++ b/server/container/guice/jpa-guice/src/main/java/org/apache/james/JPAJamesServerMain.java
@@ -36,6 +36,7 @@ import org.apache.james.modules.server.DataRoutesModules;
import org.apache.james.modules.server.DefaultProcessorsConfigurationProviderModule;
import org.apache.james.modules.server.ElasticSearchMetricReporterModule;
import org.apache.james.modules.server.JMXServerModule;
+import org.apache.james.modules.server.MailQueueRoutesModule;
import org.apache.james.modules.server.MailRepositoriesRoutesModule;
import org.apache.james.modules.server.MailboxRoutesModule;
import org.apache.james.modules.server.NoJwtModule;
@@ -52,6 +53,7 @@ public class JPAJamesServerMain {
new WebAdminServerModule(),
new DataRoutesModules(),
new MailboxRoutesModule(),
+ new MailQueueRoutesModule(),
new MailRepositoriesRoutesModule(),
new SwaggerRoutesModule());
http://git-wip-us.apache.org/repos/asf/james-project/blob/a5abe355/server/container/guice/memory-guice/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/memory-guice/pom.xml b/server/container/guice/memory-guice/pom.xml
index c9658e2..b3f4c83 100644
--- a/server/container/guice/memory-guice/pom.xml
+++ b/server/container/guice/memory-guice/pom.xml
@@ -112,6 +112,10 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>james-server-guice-webadmin-mailqueue</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>james-server-guice-webadmin-mailrepository</artifactId>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/a5abe355/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
----------------------------------------------------------------------
diff --git a/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java b/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
index 0e6108e..3170cf4 100644
--- a/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
+++ b/server/container/guice/memory-guice/src/main/java/org/apache/james/MemoryJamesServerMain.java
@@ -34,6 +34,7 @@ import org.apache.james.modules.protocols.SMTPServerModule;
import org.apache.james.modules.server.CamelMailetContainerModule;
import org.apache.james.modules.server.DataRoutesModules;
import org.apache.james.modules.server.JMXServerModule;
+import org.apache.james.modules.server.MailQueueRoutesModule;
import org.apache.james.modules.server.MailRepositoriesRoutesModule;
import org.apache.james.modules.server.MailboxRoutesModule;
import org.apache.james.modules.server.MemoryMailQueueModule;
@@ -50,6 +51,7 @@ public class MemoryJamesServerMain {
new WebAdminServerModule(),
new DataRoutesModules(),
new MailboxRoutesModule(),
+ new MailQueueRoutesModule(),
new MailRepositoriesRoutesModule(),
new SwaggerRoutesModule());
http://git-wip-us.apache.org/repos/asf/james-project/blob/a5abe355/server/container/guice/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/pom.xml b/server/container/guice/pom.xml
index ad8784d..61efd7b 100644
--- a/server/container/guice/pom.xml
+++ b/server/container/guice/pom.xml
@@ -57,6 +57,7 @@
<module>protocols/webadmin-cassandra</module>
<module>protocols/webadmin-data</module>
<module>protocols/webadmin-mailbox</module>
+ <module>protocols/webadmin-mailqueue</module>
<module>protocols/webadmin-mailrepository</module>
<module>protocols/webadmin-swagger</module>
</modules>
@@ -146,6 +147,11 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>james-server-guice-webadmin-mailqueue</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>james-server-guice-webadmin-mailrepository</artifactId>
<version>${project.version}</version>
</dependency>
@@ -173,4 +179,4 @@
</dependencies>
</dependencyManagement>
-</project>
\ No newline at end of file
+</project>
http://git-wip-us.apache.org/repos/asf/james-project/blob/a5abe355/server/container/guice/protocols/webadmin-mailqueue/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/guice/protocols/webadmin-mailqueue/pom.xml b/server/container/guice/protocols/webadmin-mailqueue/pom.xml
new file mode 100644
index 0000000..287f197
--- /dev/null
+++ b/server/container/guice/protocols/webadmin-mailqueue/pom.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <artifactId>james-server-guice</artifactId>
+ <groupId>org.apache.james</groupId>
+ <version>3.1.0-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>james-server-guice-webadmin-mailqueue</artifactId>
+
+ <name>Apache James :: Server :: Guice :: Webadmin :: MailQueue</name>
+ <description>Webadmin mailqueue modules for Guice implementation of James server</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>james-server-guice-configuration</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>james-server-webadmin-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>james-server-webadmin-mailqueue</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.inject</groupId>
+ <artifactId>guice</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.inject.extensions</groupId>
+ <artifactId>guice-multibindings</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
http://git-wip-us.apache.org/repos/asf/james-project/blob/a5abe355/server/container/guice/protocols/webadmin-mailqueue/src/main/java/org/apache/james/modules/server/MailQueueRoutesModule.java
----------------------------------------------------------------------
diff --git a/server/container/guice/protocols/webadmin-mailqueue/src/main/java/org/apache/james/modules/server/MailQueueRoutesModule.java b/server/container/guice/protocols/webadmin-mailqueue/src/main/java/org/apache/james/modules/server/MailQueueRoutesModule.java
new file mode 100644
index 0000000..127c53a
--- /dev/null
+++ b/server/container/guice/protocols/webadmin-mailqueue/src/main/java/org/apache/james/modules/server/MailQueueRoutesModule.java
@@ -0,0 +1,34 @@
+/****************************************************************
+ * 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.modules.server;
+
+import org.apache.james.webadmin.Routes;
+import org.apache.james.webadmin.routes.MailQueueRoutes;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.multibindings.Multibinder;
+
+public class MailQueueRoutesModule extends AbstractModule {
+ @Override
+ protected void configure() {
+ Multibinder<Routes> routesMultibinder = Multibinder.newSetBinder(binder(), Routes.class);
+ routesMultibinder.addBinding().to(MailQueueRoutes.class);
+ }
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/a5abe355/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
index eb8236e..f2d0d7f 100644
--- a/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
+++ b/server/protocols/webadmin-integration-test/src/test/java/org/apache/james/webadmin/integration/WebAdminServerIntegrationTest.java
@@ -41,6 +41,7 @@ import org.apache.james.utils.DataProbeImpl;
import org.apache.james.utils.WebAdminGuiceProbe;
import org.apache.james.webadmin.WebAdminUtils;
import org.apache.james.webadmin.routes.DomainsRoutes;
+import org.apache.james.webadmin.routes.MailQueueRoutes;
import org.apache.james.webadmin.routes.MailRepositoriesRoutes;
import org.apache.james.webadmin.routes.UserMailboxesRoutes;
import org.apache.james.webadmin.routes.UserRoutes;
@@ -105,6 +106,14 @@ public class WebAdminServerIntegrationTest {
}
@Test
+ public void mailQueueRoutesShouldBeExposed() throws Exception {
+ when()
+ .get(MailQueueRoutes.BASE_URL)
+ .then()
+ .statusCode(HttpStatus.OK_200);
+ }
+
+ @Test
public void mailRepositoriesRoutesShouldBeExposed() throws Exception {
when()
.get(MailRepositoriesRoutes.MAIL_REPOSITORIES)
http://git-wip-us.apache.org/repos/asf/james-project/blob/a5abe355/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/routes/MailQueueRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/routes/MailQueueRoutes.java b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/routes/MailQueueRoutes.java
index 6e67340..58a5576 100644
--- a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/routes/MailQueueRoutes.java
+++ b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/routes/MailQueueRoutes.java
@@ -62,7 +62,7 @@ import spark.Service;
@Produces("application/json")
public class MailQueueRoutes implements Routes {
- @VisibleForTesting static final String BASE_URL = "/mailQueues";
+ public static final String BASE_URL = "/mailQueues";
@VisibleForTesting static final String MAIL_QUEUE_NAME = ":mailQueueName";
@VisibleForTesting static final String MAILS = "/mails";
@@ -74,8 +74,9 @@ public class MailQueueRoutes implements Routes {
private final JsonTransformer jsonTransformer;
@Inject
- @VisibleForTesting MailQueueRoutes(MailQueueFactory<ManageableMailQueue> mailQueueFactory, JsonTransformer jsonTransformer) {
- this.mailQueueFactory = mailQueueFactory;
+ @SuppressWarnings("unchecked")
+ @VisibleForTesting MailQueueRoutes(MailQueueFactory<?> mailQueueFactory, JsonTransformer jsonTransformer) {
+ this.mailQueueFactory = (MailQueueFactory<ManageableMailQueue>) mailQueueFactory;
this.jsonTransformer = jsonTransformer;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[03/10] james-project git commit: JAMES-2294 Introduce reprocessing
tasks
Posted by bt...@apache.org.
JAMES-2294 Introduce reprocessing tasks
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/e6fdeae7
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/e6fdeae7
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/e6fdeae7
Branch: refs/heads/master
Commit: e6fdeae70fc38390289f70726084dcce3adfa872
Parents: fac7e59
Author: benwa <bt...@linagora.com>
Authored: Thu Jan 25 10:35:24 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jan 26 08:12:05 2018 +0700
----------------------------------------------------------------------
.../webadmin/webadmin-mailrepository/pom.xml | 9 ++
.../service/MailRepositoryStoreService.java | 2 +-
.../service/ReprocessingAllMailsTask.java | 115 +++++++++++++++++++
.../service/ReprocessingOneMailTask.java | 102 ++++++++++++++++
.../webadmin/service/ReprocessingService.java | 76 ++++++++++++
5 files changed, 303 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/e6fdeae7/server/protocols/webadmin/webadmin-mailrepository/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailrepository/pom.xml b/server/protocols/webadmin/webadmin-mailrepository/pom.xml
index 367ea83..72b374a 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/pom.xml
+++ b/server/protocols/webadmin/webadmin-mailrepository/pom.xml
@@ -54,6 +54,15 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>james-server-queue-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>james-server-queue-memory</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>james-server-util-java8</artifactId>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/e6fdeae7/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/MailRepositoryStoreService.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/MailRepositoryStoreService.java b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/MailRepositoryStoreService.java
index 0f7c752..7df346b 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/MailRepositoryStoreService.java
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/MailRepositoryStoreService.java
@@ -92,7 +92,7 @@ public class MailRepositoryStoreService {
return new ClearMailRepositoryTask(getRepository(url), url);
}
- private MailRepository getRepository(String url) throws MailRepositoryStore.MailRepositoryStoreException {
+ public MailRepository getRepository(String url) throws MailRepositoryStore.MailRepositoryStoreException {
return mailRepositoryStore.get(url)
.orElseThrow(() -> ErrorResponder.builder()
.statusCode(HttpStatus.NOT_FOUND_404)
http://git-wip-us.apache.org/repos/asf/james-project/blob/e6fdeae7/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingAllMailsTask.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingAllMailsTask.java b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingAllMailsTask.java
new file mode 100644
index 0000000..6f75e2e
--- /dev/null
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingAllMailsTask.java
@@ -0,0 +1,115 @@
+/****************************************************************
+ * 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.webadmin.service;
+
+import java.util.Optional;
+import java.util.concurrent.atomic.AtomicLong;
+
+import javax.mail.MessagingException;
+
+import org.apache.james.mailrepository.api.MailRepositoryStore;
+import org.apache.james.task.Task;
+import org.apache.james.task.TaskExecutionDetails;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+public class ReprocessingAllMailsTask implements Task {
+
+ public static final String TYPE = "reprocessingAllTask";
+
+ public static class AdditionalInformation implements TaskExecutionDetails.AdditionalInformation {
+ private final String repositoryUrl;
+ private final String targetQueue;
+ private final Optional<String> targetProcessor;
+ private final long initialCount;
+ private final AtomicLong processedCount;
+
+ public AdditionalInformation(String repositoryUrl, String targetQueue, Optional<String> targetProcessor, long initialCount) {
+ this.repositoryUrl = repositoryUrl;
+ this.targetQueue = targetQueue;
+ this.targetProcessor = targetProcessor;
+ this.initialCount = initialCount;
+ this.processedCount = new AtomicLong(0);
+ }
+
+ public String getTargetQueue() {
+ return targetQueue;
+ }
+
+ public Optional<String> getTargetProcessor() {
+ return targetProcessor;
+ }
+
+ public String getRepositoryUrl() {
+ return repositoryUrl;
+ }
+
+ public long getRemainingCount() {
+ return initialCount - processedCount.get();
+ }
+
+ public long getInitialCount() {
+ return initialCount;
+ }
+
+ @JsonIgnore
+ public void notifyProgress(String key) {
+ processedCount.incrementAndGet();
+ }
+ }
+
+ private final ReprocessingService reprocessingService;
+ private final String repositoryUrl;
+ private final String targetQueue;
+ private final Optional<String> targetProcessor;
+ private final AdditionalInformation additionalInformation;
+
+ public ReprocessingAllMailsTask(ReprocessingService reprocessingService, long repositorySize,
+ String repositoryUrl, String targetQueue, Optional<String> targetProcessor) {
+ this.reprocessingService = reprocessingService;
+ this.repositoryUrl = repositoryUrl;
+ this.targetQueue = targetQueue;
+ this.targetProcessor = targetProcessor;
+ this.additionalInformation = new AdditionalInformation(
+ repositoryUrl, targetQueue, targetProcessor, repositorySize);
+ }
+
+ @Override
+ public Result run() {
+ try {
+ reprocessingService.reprocessAll(repositoryUrl, targetProcessor, targetQueue, additionalInformation::notifyProgress);
+ return Result.COMPLETED;
+ } catch (MessagingException | MailRepositoryStore.MailRepositoryStoreException e) {
+ LOGGER.error("Encountered error while reprocessing repository", e);
+ return Result.PARTIAL;
+ }
+ }
+
+ @Override
+ public String type() {
+ return TYPE;
+ }
+
+ @Override
+ public Optional<TaskExecutionDetails.AdditionalInformation> details() {
+ return Optional.of(additionalInformation);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/e6fdeae7/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingOneMailTask.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingOneMailTask.java b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingOneMailTask.java
new file mode 100644
index 0000000..d476bfc
--- /dev/null
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingOneMailTask.java
@@ -0,0 +1,102 @@
+/****************************************************************
+ * 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.webadmin.service;
+
+import java.util.Optional;
+
+import javax.mail.MessagingException;
+
+import org.apache.james.mailrepository.api.MailRepositoryStore;
+import org.apache.james.task.Task;
+import org.apache.james.task.TaskExecutionDetails;
+
+public class ReprocessingOneMailTask implements Task {
+
+ public static final String TYPE = "reprocessingOneTask";
+
+ public static class AdditionalInformation implements TaskExecutionDetails.AdditionalInformation {
+ private final String repositoryUrl;
+ private final String targetQueue;
+ private final String mailKey;
+ private final Optional<String> targetProcessor;
+
+ public AdditionalInformation(String repositoryUrl, String targetQueue, String mailKey, Optional<String> targetProcessor) {
+ this.repositoryUrl = repositoryUrl;
+ this.targetQueue = targetQueue;
+ this.mailKey = mailKey;
+ this.targetProcessor = targetProcessor;
+ }
+
+ public String getMailKey() {
+ return mailKey;
+ }
+
+ public String getTargetQueue() {
+ return targetQueue;
+ }
+
+ public Optional<String> getTargetProcessor() {
+ return targetProcessor;
+ }
+
+ public String getRepositoryUrl() {
+ return repositoryUrl;
+ }
+ }
+
+ private final ReprocessingService reprocessingService;
+ private final String repositoryUrl;
+ private final String targetQueue;
+ private final String mailKey;
+ private final Optional<String> targetProcessor;
+ private final AdditionalInformation additionalInformation;
+
+ public ReprocessingOneMailTask(ReprocessingService reprocessingService,
+ String repositoryUrl, String targetQueue, String mailKey, Optional<String> targetProcessor) {
+ this.reprocessingService = reprocessingService;
+ this.repositoryUrl = repositoryUrl;
+ this.targetQueue = targetQueue;
+ this.mailKey = mailKey;
+ this.targetProcessor = targetProcessor;
+ this.additionalInformation = new AdditionalInformation(repositoryUrl, targetQueue, mailKey, targetProcessor);
+ }
+
+ @Override
+ public Result run() {
+ try {
+ reprocessingService.reprocess(repositoryUrl, mailKey, targetProcessor, targetQueue);
+ return Result.COMPLETED;
+ } catch (MessagingException | MailRepositoryStore.MailRepositoryStoreException e) {
+ LOGGER.error("Encountered error while reprocessing repository", e);
+ return Result.PARTIAL;
+ }
+ }
+
+ @Override
+ public String type() {
+ return TYPE;
+ }
+
+ @Override
+ public Optional<TaskExecutionDetails.AdditionalInformation> details() {
+ return Optional.of(additionalInformation);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/e6fdeae7/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingService.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingService.java b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingService.java
new file mode 100644
index 0000000..8eee51b
--- /dev/null
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/service/ReprocessingService.java
@@ -0,0 +1,76 @@
+/****************************************************************
+ * 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.webadmin.service;
+
+import java.util.Optional;
+import java.util.function.Consumer;
+
+import javax.inject.Inject;
+import javax.mail.MessagingException;
+
+import org.apache.james.mailrepository.api.MailRepository;
+import org.apache.james.mailrepository.api.MailRepositoryStore;
+import org.apache.james.queue.api.MailQueue;
+import org.apache.james.queue.api.MailQueueFactory;
+import org.apache.james.util.streams.Iterators;
+import org.apache.mailet.Mail;
+
+import com.github.fge.lambdas.Throwing;
+
+public class ReprocessingService {
+
+ private final MailQueueFactory<?> mailQueueFactory;
+ private final MailRepositoryStoreService mailRepositoryStoreService;
+
+ @Inject
+ public ReprocessingService(MailQueueFactory<?> mailQueueFactory,
+ MailRepositoryStoreService mailRepositoryStoreService) {
+ this.mailQueueFactory = mailQueueFactory;
+ this.mailRepositoryStoreService = mailRepositoryStoreService;
+ }
+
+ public void reprocessAll(String url, Optional<String> targetProcessor, String targetQueue, Consumer<String> keyListener) throws MailRepositoryStore.MailRepositoryStoreException, MessagingException {
+ MailRepository repository = mailRepositoryStoreService.getRepository(url);
+ MailQueue mailQueue = getMailQueue(targetQueue);
+
+ Iterators.toStream(repository.list())
+ .peek(keyListener)
+ .forEach(Throwing.consumer(key -> reprocess(repository, mailQueue, key, targetProcessor)));
+ }
+
+ public void reprocess(String url, String key, Optional<String> targetProcessor, String targetQueue) throws MailRepositoryStore.MailRepositoryStoreException, MessagingException {
+ MailRepository repository = mailRepositoryStoreService.getRepository(url);
+ MailQueue mailQueue = getMailQueue(targetQueue);
+
+ reprocess(repository, mailQueue, key, targetProcessor);
+ }
+
+ private void reprocess(MailRepository repository, MailQueue mailQueue, String key, Optional<String> targetProcessor) throws MessagingException {
+ Mail mail = repository.retrieve(key);
+ targetProcessor.ifPresent(mail::setState);
+ mailQueue.enQueue(mail);
+ repository.remove(key);
+ }
+
+ private MailQueue getMailQueue(String targetQueue) {
+ return mailQueueFactory.getQueue(targetQueue)
+ .orElseThrow(() -> new RuntimeException("Can not find queue " + targetQueue));
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[10/10] james-project git commit: JAMES-2317 Simplify code by using a
multimap and copy the result of get to handle concurrency
Posted by bt...@apache.org.
JAMES-2317 Simplify code by using a multimap and copy the result of get to handle concurrency
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/866d09e2
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/866d09e2
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/866d09e2
Branch: refs/heads/master
Commit: 866d09e2424c813cb7f6b643556d2ef45762f1fc
Parents: f9df417
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Thu Jan 25 17:32:00 2018 +0100
Committer: benwa <bt...@linagora.com>
Committed: Fri Jan 26 08:12:21 2018 +0700
----------------------------------------------------------------------
.../user/InMemorySubscriptionMapper.java | 36 ++++++--------------
1 file changed, 10 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/866d09e2/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java
index 7ef4d62..48679ea 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/user/InMemorySubscriptionMapper.java
@@ -18,36 +18,31 @@
****************************************************************/
package org.apache.james.mailbox.inmemory.user;
-import java.util.ArrayList;
import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
import org.apache.james.mailbox.store.transaction.NonTransactionalMapper;
import org.apache.james.mailbox.store.user.SubscriptionMapper;
import org.apache.james.mailbox.store.user.model.Subscription;
+import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ListMultimap;
+import com.google.common.collect.Multimaps;
public class InMemorySubscriptionMapper extends NonTransactionalMapper implements SubscriptionMapper {
- private static final int INITIAL_SIZE = 64;
- private final Map<String, List<Subscription>> subscriptionsByUser;
+ private final ListMultimap<String, Subscription> subscriptionsByUser;
public InMemorySubscriptionMapper() {
- subscriptionsByUser = new ConcurrentHashMap<>(INITIAL_SIZE);
+ subscriptionsByUser = Multimaps.synchronizedListMultimap(ArrayListMultimap.create());
}
public synchronized void delete(Subscription subscription) {
- final String user = subscription.getUser();
- final List<Subscription> subscriptions = subscriptionsByUser.get(user);
- if (subscriptions != null) {
- subscriptions.remove(subscription);
- }
+ subscriptionsByUser.remove(subscription.getUser(), subscription);
}
public Subscription findMailboxSubscriptionForUser(String user, String mailbox) {
- final List<Subscription> subscriptions = subscriptionsByUser.get(user);
+ final List<Subscription> subscriptions = ImmutableList.copyOf(subscriptionsByUser.get(user));
if (subscriptions != null) {
return subscriptions.stream()
.filter(subscription -> subscription.getMailbox().equals(mailbox))
@@ -59,25 +54,14 @@ public class InMemorySubscriptionMapper extends NonTransactionalMapper implement
public List<Subscription> findSubscriptionsForUser(String user) {
final List<Subscription> subcriptions = subscriptionsByUser.get(user);
- final List<Subscription> results;
if (subcriptions == null) {
- results = ImmutableList.of();
- } else {
- results = ImmutableList.copyOf(subcriptions);
+ return ImmutableList.of();
}
- return results;
+ return ImmutableList.copyOf(subcriptions);
}
public synchronized void save(Subscription subscription) {
- final String user = subscription.getUser();
- final List<Subscription> subscriptions = subscriptionsByUser.get(user);
- if (subscriptions == null) {
- final List<Subscription> newSubscriptions = new ArrayList<>();
- newSubscriptions.add(subscription);
- subscriptionsByUser.put(user, newSubscriptions);
- } else {
- subscriptions.add(subscription);
- }
+ subscriptionsByUser.put(subscription.getUser(), subscription);
}
public void deleteAll() {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[07/10] james-project git commit: JAMES-2294 Rename awaitOneMinute to
awaitAtMostOneMinute
Posted by bt...@apache.org.
JAMES-2294 Rename awaitOneMinute to awaitAtMostOneMinute
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d45cf810
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d45cf810
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d45cf810
Branch: refs/heads/master
Commit: d45cf8109b35298d1c928bc01db88ce2837e40a7
Parents: 1d14ccb
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Thu Jan 25 18:11:18 2018 +0100
Committer: benwa <bt...@linagora.com>
Committed: Fri Jan 26 08:12:21 2018 +0700
----------------------------------------------------------------------
.../james/mailets/AddDeliveredToHeaderTest.java | 6 +-
.../james/mailets/BounceIntegrationTest.java | 16 ++---
.../mailets/CommonMailetConfigurationTest.java | 6 +-
.../GatewayRemoteDeliveryIntegrationTest.java | 20 +++---
.../apache/james/mailets/MailetErrorsTest.java | 38 +++++------
.../mailets/NetworkMatcherIntegrationTest.java | 34 +++++-----
.../RecipientRewriteTableIntegrationTest.java | 26 ++++----
.../org/apache/james/mailets/SieveDelivery.java | 6 +-
.../james/mailets/SmtpAuthIntegrationTest.java | 10 +--
.../james/mailets/configuration/Constants.java | 2 +-
.../crypto/SMIMEDecryptIntegrationTest.java | 14 ++--
.../crypto/SMIMESignIntegrationTest.java | 10 +--
.../james/smtp/SmtpAuthorizedAddressesTest.java | 18 +++---
.../james/smtp/SmtpBracketEnforcementTest.java | 10 +--
.../smtp/SmtpIdentityVerificationTest.java | 8 +--
.../james/smtp/SmtpSizeLimitationTest.java | 6 +-
.../james/transport/mailets/AddFooterTest.java | 10 +--
.../mailets/AmqpForwardAttachmentTest.java | 6 +-
.../transport/mailets/ContactExtractorTest.java | 6 +-
.../transport/mailets/GroupMappingTest.java | 68 ++++++++++----------
.../mailets/ICSAttachmentWorkflowTest.java | 42 ++++++------
.../transport/mailets/SpamAssassinTest.java | 14 ++--
.../transport/mailets/StripAttachmentTest.java | 6 +-
.../transport/mailets/ToRepositoryTest.java | 28 ++++----
24 files changed, 205 insertions(+), 205 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/AddDeliveredToHeaderTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/AddDeliveredToHeaderTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/AddDeliveredToHeaderTest.java
index e95be9e..f173489 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/AddDeliveredToHeaderTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/AddDeliveredToHeaderTest.java
@@ -26,7 +26,7 @@ import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.RECIPIENT;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import static org.assertj.core.api.Assertions.assertThat;
import org.apache.james.probe.DataProbe;
@@ -68,12 +68,12 @@ public class AddDeliveredToHeaderTest {
public void receivedMessagesShouldContainDeliveredToHeaders() throws Exception {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, RECIPIENT)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
assertThat(imapMessageReader.readFirstMessageHeaders())
.contains(AddDeliveredToHeader.DELIVERED_TO + ": " + RECIPIENT);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/BounceIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/BounceIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/BounceIntegrationTest.java
index 120f5d3..295bdd6 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/BounceIntegrationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/BounceIntegrationTest.java
@@ -25,7 +25,7 @@ import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.RECIPIENT;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import org.apache.james.MemoryJamesServerMain;
import org.apache.james.mailets.configuration.MailetConfiguration;
@@ -91,7 +91,7 @@ public class BounceIntegrationTest {
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(BOUNCE_RECEIVER, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -116,7 +116,7 @@ public class BounceIntegrationTest {
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(BOUNCE_RECEIVER, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -141,7 +141,7 @@ public class BounceIntegrationTest {
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(BOUNCE_RECEIVER, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -167,7 +167,7 @@ public class BounceIntegrationTest {
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(BOUNCE_RECEIVER, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -193,7 +193,7 @@ public class BounceIntegrationTest {
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(BOUNCE_RECEIVER, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -218,7 +218,7 @@ public class BounceIntegrationTest {
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(BOUNCE_RECEIVER, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -243,7 +243,7 @@ public class BounceIntegrationTest {
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(POSTMASTER, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
private MailetContainer.Builder generateMailetContainerConfiguration(MailetConfiguration.Builder redirectionMailetConfiguration) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/CommonMailetConfigurationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/CommonMailetConfigurationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/CommonMailetConfigurationTest.java
index cb6a182..d45f29c 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/CommonMailetConfigurationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/CommonMailetConfigurationTest.java
@@ -26,7 +26,7 @@ import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.RECIPIENT;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import org.apache.james.probe.DataProbe;
import org.apache.james.utils.DataProbeImpl;
@@ -70,11 +70,11 @@ public class CommonMailetConfigurationTest {
public void simpleMailShouldBeSent() throws Exception {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, RECIPIENT)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java
index 5e780f1..cb4cf10 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/GatewayRemoteDeliveryIntegrationTest.java
@@ -26,7 +26,7 @@ import static org.apache.james.mailets.configuration.Constants.IMAP_PORT;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import static org.assertj.core.api.Assertions.assertThat;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasSize;
@@ -70,7 +70,7 @@ public class GatewayRemoteDeliveryIntegrationTest {
@Before
public void setup() throws Exception {
- fakeSmtp.awaitStarted(awaitOneMinute);
+ fakeSmtp.awaitStarted(awaitAtMostOneMinute);
inMemoryDNSService = new InMemoryDNSService()
.registerMxRecord(JAMES_ANOTHER_DOMAIN, fakeSmtp.getContainer().getContainerIp());
@@ -99,7 +99,7 @@ public class GatewayRemoteDeliveryIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, RECIPIENT);
- awaitOneMinute.until(this::messageIsReceivedByTheSmtpServer);
+ awaitAtMostOneMinute.until(this::messageIsReceivedByTheSmtpServer);
}
@Test
@@ -118,7 +118,7 @@ public class GatewayRemoteDeliveryIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, RECIPIENT);
- awaitOneMinute.until(this::messageIsReceivedByTheSmtpServer);
+ awaitAtMostOneMinute.until(this::messageIsReceivedByTheSmtpServer);
}
@Test
@@ -137,7 +137,7 @@ public class GatewayRemoteDeliveryIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, RECIPIENT);
- awaitOneMinute.until(this::messageIsReceivedByTheSmtpServer);
+ awaitAtMostOneMinute.until(this::messageIsReceivedByTheSmtpServer);
}
@Test
@@ -156,7 +156,7 @@ public class GatewayRemoteDeliveryIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, RECIPIENT);
- awaitOneMinute.until(this::messageIsReceivedByTheSmtpServer);
+ awaitAtMostOneMinute.until(this::messageIsReceivedByTheSmtpServer);
}
@Test
@@ -180,7 +180,7 @@ public class GatewayRemoteDeliveryIntegrationTest {
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
assertThat(fakeSmtp.isReceived(response -> response.body("", hasSize(0))))
.isTrue();
}
@@ -205,7 +205,7 @@ public class GatewayRemoteDeliveryIntegrationTest {
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -234,7 +234,7 @@ public class GatewayRemoteDeliveryIntegrationTest {
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -256,7 +256,7 @@ public class GatewayRemoteDeliveryIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, RECIPIENT);
- awaitOneMinute.until(this::messageIsReceivedByTheSmtpServer);
+ awaitAtMostOneMinute.until(this::messageIsReceivedByTheSmtpServer);
}
private boolean messageIsReceivedByTheSmtpServer() {
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MailetErrorsTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MailetErrorsTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MailetErrorsTest.java
index 763f908..ffd8013 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MailetErrorsTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/MailetErrorsTest.java
@@ -25,7 +25,7 @@ import static org.apache.james.mailets.configuration.Constants.DEFAULT_DOMAIN;
import static org.apache.james.mailets.configuration.Constants.FROM;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import org.apache.james.mailets.configuration.CommonProcessors;
import org.apache.james.mailets.configuration.MailetConfiguration;
@@ -81,7 +81,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(ERROR_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(ERROR_REPOSITORY) == 1);
}
@Test
@@ -100,7 +100,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(ERROR_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(ERROR_REPOSITORY) == 1);
}
@Test
@@ -121,7 +121,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
}
@@ -143,7 +143,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
}
@Test
@@ -168,7 +168,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
}
@Test
@@ -193,7 +193,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
}
@Test
@@ -212,7 +212,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(ERROR_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(ERROR_REPOSITORY) == 1);
}
@Test
@@ -231,7 +231,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(ERROR_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(ERROR_REPOSITORY) == 1);
}
@Test
@@ -252,7 +252,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
}
@Test
@@ -273,7 +273,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
}
@Test
@@ -298,7 +298,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
}
@Test
@@ -323,7 +323,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
}
@Test
@@ -348,7 +348,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
}
@Test
@@ -373,7 +373,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
}
@Test
@@ -402,7 +402,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
}
@Test
@@ -431,7 +431,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(ERROR_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(ERROR_REPOSITORY) == 1);
}
@Test
@@ -460,7 +460,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
}
@Test
@@ -489,7 +489,7 @@ public class MailetErrorsTest {
smtpMessageSender.connect(LOCALHOST_IP, SMTP_PORT).sendMessage(FROM, FROM);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(ERROR_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(ERROR_REPOSITORY) == 1);
}
private ProcessorConfiguration.Builder errorProcessor() {
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/NetworkMatcherIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/NetworkMatcherIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/NetworkMatcherIntegrationTest.java
index 362f5af..e844d54 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/NetworkMatcherIntegrationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/NetworkMatcherIntegrationTest.java
@@ -24,7 +24,7 @@ import static org.apache.james.mailets.configuration.Constants.IMAP_PORT;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import static org.assertj.core.api.Assertions.assertThat;
import org.apache.james.MemoryJamesServerMain;
@@ -98,12 +98,12 @@ public class NetworkMatcherIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(FROM, PASSWORD)
.sendMessage(FROM, FROM)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -119,12 +119,12 @@ public class NetworkMatcherIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(FROM, PASSWORD)
.sendMessage(FROM, FROM)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -140,12 +140,12 @@ public class NetworkMatcherIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(FROM, PASSWORD)
.sendMessage(FROM, FROM)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -161,12 +161,12 @@ public class NetworkMatcherIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(FROM, PASSWORD)
.sendMessage(FROM, FROM)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -182,12 +182,12 @@ public class NetworkMatcherIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(FROM, PASSWORD)
.sendMessage(FROM, FROM)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -203,12 +203,12 @@ public class NetworkMatcherIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(FROM, PASSWORD)
.sendMessage(FROM, FROM)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -224,10 +224,10 @@ public class NetworkMatcherIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(FROM, PASSWORD)
.sendMessage(FROM, FROM)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
MailRepositoryProbeImpl repositoryProbe = jamesServer.getProbe(MailRepositoryProbeImpl.class);
- awaitOneMinute.until(() -> repositoryProbe.getRepositoryMailCount(DROPPED_MAILS) == 1);
+ awaitAtMostOneMinute.until(() -> repositoryProbe.getRepositoryMailCount(DROPPED_MAILS) == 1);
assertThat(
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
@@ -249,10 +249,10 @@ public class NetworkMatcherIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(FROM, PASSWORD)
.sendMessage(FROM, FROM)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
MailRepositoryProbeImpl repositoryProbe = jamesServer.getProbe(MailRepositoryProbeImpl.class);
- awaitOneMinute.until(() -> repositoryProbe.getRepositoryMailCount(DROPPED_MAILS) == 1);
+ awaitAtMostOneMinute.until(() -> repositoryProbe.getRepositoryMailCount(DROPPED_MAILS) == 1);
assertThat(
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java
index d6d1162..c176fba 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/RecipientRewriteTableIntegrationTest.java
@@ -24,7 +24,7 @@ import static org.apache.james.mailets.configuration.Constants.IMAP_PORT;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import org.apache.james.probe.DataProbe;
import org.apache.james.utils.DataProbeImpl;
@@ -80,16 +80,16 @@ public class RecipientRewriteTableIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, RECIPIENT)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(ANY_AT_JAMES, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(OTHER_AT_JAMES, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -99,12 +99,12 @@ public class RecipientRewriteTableIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, RECIPIENT)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitNoMessage(awaitOneMinute);
+ .awaitNoMessage(awaitAtMostOneMinute);
}
@Test
@@ -118,16 +118,16 @@ public class RecipientRewriteTableIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, RECIPIENT)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(localUser, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(OTHER_AT_JAMES, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -137,12 +137,12 @@ public class RecipientRewriteTableIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, ANY_AT_JAMES)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(ANY_AT_ANOTHER_DOMAIN, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -152,12 +152,12 @@ public class RecipientRewriteTableIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, ANY_AT_JAMES)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(ANY_AT_JAMES, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitNoMessage(awaitOneMinute);
+ .awaitNoMessage(awaitAtMostOneMinute);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SieveDelivery.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SieveDelivery.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SieveDelivery.java
index 1b7b524..cfe116b 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SieveDelivery.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SieveDelivery.java
@@ -26,7 +26,7 @@ import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.RECIPIENT;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.modules.MailboxProbeImpl;
@@ -79,11 +79,11 @@ public class SieveDelivery {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, RECIPIENT)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(TARGETED_MAILBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SmtpAuthIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SmtpAuthIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SmtpAuthIntegrationTest.java
index 19a3b5d..89dee69 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SmtpAuthIntegrationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/SmtpAuthIntegrationTest.java
@@ -24,7 +24,7 @@ import static org.apache.james.mailets.configuration.Constants.IMAP_PORT;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import static org.assertj.core.api.Assertions.assertThat;
import org.apache.james.MemoryJamesServerMain;
@@ -104,21 +104,21 @@ public class SmtpAuthIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(FROM, PASSWORD)
.sendMessage(FROM, FROM)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
public void nonAuthenticatedSmtpSessionsShouldNotBeDelivered() throws Exception {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, FROM)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
- awaitOneMinute.until(() -> repositoryProbe.getRepositoryMailCount(DROPPED_MAILS) == 1);
+ awaitAtMostOneMinute.until(() -> repositoryProbe.getRepositoryMailCount(DROPPED_MAILS) == 1);
assertThat(
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/configuration/Constants.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/configuration/Constants.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/configuration/Constants.java
index c4c902b..0bdfb82 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/configuration/Constants.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/configuration/Constants.java
@@ -34,7 +34,7 @@ public class Constants {
.with()
.pollDelay(slowPacedPollInterval)
.await();
- public static ConditionFactory awaitOneMinute = calmlyAwait.atMost(ONE_MINUTE);
+ public static ConditionFactory awaitAtMostOneMinute = calmlyAwait.atMost(ONE_MINUTE);
public static final String DEFAULT_DOMAIN = "james.org";
public static final String LOCALHOST_IP = "127.0.0.1";
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMEDecryptIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMEDecryptIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMEDecryptIntegrationTest.java
index cb821ef..e1b2d57 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMEDecryptIntegrationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMEDecryptIntegrationTest.java
@@ -22,7 +22,7 @@ package org.apache.james.mailets.crypto;
import static org.apache.james.mailets.configuration.Constants.DEFAULT_DOMAIN;
import static org.apache.james.mailets.configuration.Constants.IMAP_PORT;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import static org.assertj.core.api.Assertions.assertThat;
import java.time.ZonedDateTime;
@@ -100,12 +100,12 @@ public class SMIMEDecryptIntegrationTest {
.authenticate(FROM, PASSWORD)
.sendMessageWithHeaders(FROM, FROM,
ClassLoaderUtils.getSystemResourceAsString("eml/crypted.eml"))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
assertThat(imapMessageReader.readFirstMessage()).containsSequence("Crypted content");
}
@@ -115,12 +115,12 @@ public class SMIMEDecryptIntegrationTest {
.authenticate(FROM, PASSWORD)
.sendMessageWithHeaders(FROM, FROM,
ClassLoaderUtils.getSystemResourceAsString("eml/crypted_with_attachment.eml"))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
assertThat(imapMessageReader.readFirstMessage())
.containsSequence("Crypted Content with attachment");
}
@@ -131,12 +131,12 @@ public class SMIMEDecryptIntegrationTest {
.authenticate(FROM, PASSWORD)
.sendMessageWithHeaders(FROM, FROM,
ClassLoaderUtils.getSystemResourceAsString("eml/bad_crypted.eml"))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
assertThat(imapMessageReader.readFirstMessage())
.containsSequence("MIAGCSqGSIb3DQEHA6CAMIACAQAxggKpMIICpQIBADCBjDCBhjELMAkGA1UE");
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMESignIntegrationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMESignIntegrationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMESignIntegrationTest.java
index 3bf2eb6..859ee94 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMESignIntegrationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/mailets/crypto/SMIMESignIntegrationTest.java
@@ -23,7 +23,7 @@ import static org.apache.james.mailets.configuration.Constants.DEFAULT_DOMAIN;
import static org.apache.james.mailets.configuration.Constants.IMAP_PORT;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import static org.assertj.core.api.Assertions.assertThat;
import java.time.ZonedDateTime;
@@ -115,12 +115,12 @@ public class SMIMESignIntegrationTest {
messageSender.connect(LOCALHOST_IP, SMTP_SECURE_PORT)
.authenticate(FROM, PASSWORD)
.sendMessage(FROM, RECIPIENT)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX);
- awaitOneMinute.until(imapMessageReader::hasAMessage);
+ awaitAtMostOneMinute.until(imapMessageReader::hasAMessage);
assertThat(imapMessageReader.readFirstMessage())
.containsSequence("Content-Description: S/MIME Cryptographic Signature");
}
@@ -129,12 +129,12 @@ public class SMIMESignIntegrationTest {
public void nonAuthenticatedMessagesShouldNotBeSigned() throws Exception {
messageSender.connect(LOCALHOST_IP, SMTP_SECURE_PORT)
.sendMessage(FROM, RECIPIENT)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX);
- awaitOneMinute.until(imapMessageReader::hasAMessage);
+ awaitAtMostOneMinute.until(imapMessageReader::hasAMessage);
assertThat(imapMessageReader.readFirstMessage())
.doesNotContain("Content-Description: S/MIME Cryptographic Signature");
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpAuthorizedAddressesTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpAuthorizedAddressesTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpAuthorizedAddressesTest.java
index db71574..bdc6e39 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpAuthorizedAddressesTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpAuthorizedAddressesTest.java
@@ -24,7 +24,7 @@ import static org.apache.james.mailets.configuration.Constants.IMAP_PORT;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasSize;
@@ -64,7 +64,7 @@ public class SmtpAuthorizedAddressesTest {
@Before
public void setup() throws Exception {
- fakeSmtp.awaitStarted(awaitOneMinute);
+ fakeSmtp.awaitStarted(awaitAtMostOneMinute);
}
private void createJamesServer(SmtpConfiguration.Builder smtpConfiguration) throws Exception {
@@ -102,9 +102,9 @@ public class SmtpAuthorizedAddressesTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, TO)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
- awaitOneMinute.until(() -> fakeSmtp.isReceived(response -> response
+ awaitAtMostOneMinute.until(() -> fakeSmtp.isReceived(response -> response
.body("", hasSize(1))
.body("[0].from", equalTo(FROM))
.body("[0].subject", equalTo("test"))));
@@ -118,7 +118,7 @@ public class SmtpAuthorizedAddressesTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(FROM, TO)
- .awaitSentFail(awaitOneMinute);
+ .awaitSentFail(awaitAtMostOneMinute);
}
@Test
@@ -130,9 +130,9 @@ public class SmtpAuthorizedAddressesTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(FROM, PASSWORD)
.sendMessage(FROM, TO)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
- awaitOneMinute.until(() -> fakeSmtp.isReceived(response -> response
+ awaitAtMostOneMinute.until(() -> fakeSmtp.isReceived(response -> response
.body("", hasSize(1))
.body("[0].from", equalTo(FROM))
.body("[0].subject", equalTo("test"))));
@@ -146,12 +146,12 @@ public class SmtpAuthorizedAddressesTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(TO, FROM)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(FROM, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpBracketEnforcementTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpBracketEnforcementTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpBracketEnforcementTest.java
index aeed2bb..4f2832b 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpBracketEnforcementTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpBracketEnforcementTest.java
@@ -23,7 +23,7 @@ import static org.apache.james.mailets.configuration.Constants.DEFAULT_DOMAIN;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import org.apache.james.mailets.TemporaryJamesServer;
import org.apache.james.mailets.configuration.SmtpConfiguration;
@@ -70,7 +70,7 @@ public class SmtpBracketEnforcementTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(USER, PASSWORD)
.sendMessage(USER, USER)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
}
@Test
@@ -81,7 +81,7 @@ public class SmtpBracketEnforcementTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(USER, PASSWORD)
.sendMessageNoBracket(USER, USER)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
}
@Test
@@ -92,7 +92,7 @@ public class SmtpBracketEnforcementTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(USER, PASSWORD)
.sendMessage(USER, USER)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
}
@Test
@@ -103,6 +103,6 @@ public class SmtpBracketEnforcementTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(USER, PASSWORD)
.sendMessageNoBracket(USER, USER)
- .awaitSentFail(awaitOneMinute);
+ .awaitSentFail(awaitAtMostOneMinute);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpIdentityVerificationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpIdentityVerificationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpIdentityVerificationTest.java
index 1c652d6..5a8582d 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpIdentityVerificationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpIdentityVerificationTest.java
@@ -23,7 +23,7 @@ import static org.apache.james.mailets.configuration.Constants.DEFAULT_DOMAIN;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import org.apache.james.mailets.TemporaryJamesServer;
import org.apache.james.mailets.configuration.SmtpConfiguration;
@@ -74,7 +74,7 @@ public class SmtpIdentityVerificationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(USER, PASSWORD).sendMessage(USER, USER)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
}
@Test
@@ -86,7 +86,7 @@ public class SmtpIdentityVerificationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(ATTACKER, ATTACKER_PASSWORD)
.sendMessage(USER, USER)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
}
@Test
@@ -98,7 +98,7 @@ public class SmtpIdentityVerificationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(ATTACKER, ATTACKER_PASSWORD)
.sendMessage(USER, USER)
- .awaitSentFail(awaitOneMinute);
+ .awaitSentFail(awaitAtMostOneMinute);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpSizeLimitationTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpSizeLimitationTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpSizeLimitationTest.java
index ff8bed4..28b31ea 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpSizeLimitationTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/smtp/SmtpSizeLimitationTest.java
@@ -23,7 +23,7 @@ import static org.apache.james.mailets.configuration.Constants.DEFAULT_DOMAIN;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import org.apache.james.mailets.TemporaryJamesServer;
import org.apache.james.mailets.configuration.SmtpConfiguration;
@@ -73,7 +73,7 @@ public class SmtpSizeLimitationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(USER, PASSWORD)
.sendMessageWithHeaders(USER, USER, Strings.repeat("Long message", 1024))
- .awaitSentFail(awaitOneMinute);
+ .awaitSentFail(awaitAtMostOneMinute);
}
@Test
@@ -85,6 +85,6 @@ public class SmtpSizeLimitationTest {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.authenticate(USER, PASSWORD)
.sendMessageWithHeaders(USER, USER,"Short message")
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
index 5caac02..3e35051 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AddFooterTest.java
@@ -26,7 +26,7 @@ import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.RECIPIENT;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import static org.assertj.core.api.Assertions.assertThat;
import org.apache.james.core.builder.MimeMessageBuilder;
@@ -91,12 +91,12 @@ public class AddFooterTest {
.setSubject("test"))
.sender(FROM)
.recipient(RECIPIENT))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
String processedMessage = imapMessageReader.readFirstMessage();
assertThat(processedMessage).contains(MATCH_ME);
}
@@ -116,12 +116,12 @@ public class AddFooterTest {
.setSubject("test"))
.sender(FROM)
.recipient(RECIPIENT))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
String processedMessage = imapMessageReader.readFirstMessage();
assertThat(processedMessage).contains(MATCH_ME);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java
index dd35211..b67d4eb 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/AmqpForwardAttachmentTest.java
@@ -24,7 +24,7 @@ import static org.apache.james.mailets.configuration.Constants.IMAP_PORT;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import static org.assertj.core.api.Assertions.assertThat;
import java.nio.charset.StandardCharsets;
@@ -131,12 +131,12 @@ public class AmqpForwardAttachmentTest {
.mimeMessage(message)
.sender(FROM)
.recipient(RECIPIENT))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
assertThat(amqpRule.readContentAsBytes()).contains(TEST_ATTACHMENT_CONTENT);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
index 06cfa0d..ba6bda2 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ContactExtractorTest.java
@@ -24,7 +24,7 @@ import static org.apache.james.mailets.configuration.Constants.IMAP_PORT;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.Optional;
@@ -126,12 +126,12 @@ public class ContactExtractorTest {
.mimeMessage(message)
.sender(SENDER)
.recipients(TO, TO2, CC, CC2, BCC, BCC2))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(TO, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
Optional<String> actual = amqpRule.readContent();
assertThat(actual).isNotEmpty();
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
index 1ccaf61..d1c71a8 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/GroupMappingTest.java
@@ -25,7 +25,7 @@ import static org.apache.james.mailets.configuration.Constants.IMAP_PORT;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import static org.assertj.core.api.Assertions.assertThat;
import static org.hamcrest.Matchers.equalTo;
@@ -104,7 +104,7 @@ public class GroupMappingTest {
.withMailetContainer(mailetContainer)
.build(temporaryFolder);
- fakeSmtp.awaitStarted(awaitOneMinute);
+ fakeSmtp.awaitStarted(awaitAtMostOneMinute);
dataProbe = jamesServer.getProbe(DataProbeImpl.class);
dataProbe.addDomain(DOMAIN1);
@@ -143,12 +143,12 @@ public class GroupMappingTest {
.mimeMessage(message)
.sender(SENDER)
.recipient(GROUP_ON_DOMAIN1))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN1, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
assertThat(imapMessageReader.readFirstMessage()).contains(MESSAGE_CONTENT);
}
@@ -161,12 +161,12 @@ public class GroupMappingTest {
.mimeMessage(message)
.sender(SENDER)
.recipient(GROUP_ON_DOMAIN1))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN2, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
assertThat(imapMessageReader.readFirstMessage()).contains(MESSAGE_CONTENT);
}
@@ -181,16 +181,16 @@ public class GroupMappingTest {
.mimeMessage(message)
.sender(SENDER)
.recipient(GROUP_ON_DOMAIN1))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN1, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN2, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -204,12 +204,12 @@ public class GroupMappingTest {
.mimeMessage(message)
.sender(SENDER)
.recipient(GROUP_ON_DOMAIN1))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN2, PASSWORD)
.select(IMAPMessageReader.INBOX);
- awaitOneMinute.until(imapMessageReader::hasAMessage);
+ awaitAtMostOneMinute.until(imapMessageReader::hasAMessage);
assertThat(imapMessageReader.readFirstMessage()).contains(MESSAGE_CONTENT);
}
@@ -226,12 +226,12 @@ public class GroupMappingTest {
.mimeMessage(message)
.sender(SENDER)
.recipient(GROUP_ON_DOMAIN1))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN1, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -243,12 +243,12 @@ public class GroupMappingTest {
.mimeMessage(message)
.sender(SENDER)
.recipients(GROUP_ON_DOMAIN1, USER_DOMAIN1))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN1, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -264,17 +264,17 @@ public class GroupMappingTest {
.mimeMessage(message)
.sender(SENDER)
.recipient(GROUP_ON_DOMAIN1))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN2, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN1, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -292,17 +292,17 @@ public class GroupMappingTest {
.mimeMessage(message)
.sender(SENDER)
.recipient(GROUP_ON_DOMAIN1))
- .awaitSentFail(awaitOneMinute);
+ .awaitSentFail(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN1, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitNoMessage(awaitOneMinute);
+ .awaitNoMessage(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN1, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitNoMessage(awaitOneMinute);
+ .awaitNoMessage(awaitAtMostOneMinute);
}
@Test
@@ -316,12 +316,12 @@ public class GroupMappingTest {
.mimeMessage(message)
.sender(SENDER)
.recipient(GROUP_ON_DOMAIN1))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN2, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -335,12 +335,12 @@ public class GroupMappingTest {
.mimeMessage(message)
.sender(SENDER)
.recipient(GROUP_ON_DOMAIN1))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN1, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitNoMessage(awaitOneMinute);
+ .awaitNoMessage(awaitAtMostOneMinute);
}
@Test
@@ -354,12 +354,12 @@ public class GroupMappingTest {
.mimeMessage(message)
.sender(SENDER)
.recipient((GROUP_ON_DOMAIN1)))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN2, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -373,12 +373,12 @@ public class GroupMappingTest {
.mimeMessage(message)
.sender(SENDER)
.recipient(groupWithSlash))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN1, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -393,12 +393,12 @@ public class GroupMappingTest {
.mimeMessage(message)
.sender(SENDER)
.recipient(GROUP_ON_DOMAIN1))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(userWithSlash, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -412,12 +412,12 @@ public class GroupMappingTest {
.mimeMessage(message)
.sender(SENDER)
.recipient(GROUP_ON_DOMAIN1))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(USER_DOMAIN1, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
}
@Test
@@ -430,7 +430,7 @@ public class GroupMappingTest {
.mimeMessage(message)
.sender(SENDER)
.recipient(GROUP_ON_DOMAIN1))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
fakeSmtp.isReceived(response -> response
.body("[0].from", equalTo(SENDER))
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java
index a7d0a5e..d3e68e6 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ICSAttachmentWorkflowTest.java
@@ -24,7 +24,7 @@ import static org.apache.james.mailets.configuration.Constants.IMAP_PORT;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import static org.assertj.core.api.Assertions.assertThat;
import java.nio.charset.StandardCharsets;
@@ -559,12 +559,12 @@ public class ICSAttachmentWorkflowTest {
.mimeMessage(messageWithoutICSAttached)
.sender(FROM)
.recipient(RECIPIENT))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
assertThat(amqpRule.readContent()).isEmpty();
}
@@ -576,12 +576,12 @@ public class ICSAttachmentWorkflowTest {
.mimeMessage(messageWithICSAttached)
.sender(FROM)
.recipient(RECIPIENT))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
Optional<String> content = amqpRule.readContent();
assertThat(content).isPresent();
@@ -609,12 +609,12 @@ public class ICSAttachmentWorkflowTest {
.mimeMessage(messageWithoutICSAttached)
.sender(FROM)
.recipient(RECIPIENT))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
String receivedHeaders = imapMessageReader.readFirstMessageHeaders();
assertThat(receivedHeaders).doesNotContain("X-MEETING-UID");
@@ -631,12 +631,12 @@ public class ICSAttachmentWorkflowTest {
.mimeMessage(messageWithICSAttached)
.sender(FROM)
.recipient(RECIPIENT))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
String receivedHeaders = imapMessageReader.readFirstMessageHeaders();
assertThat(receivedHeaders).contains("X-MEETING-UID: " + ICS_UID);
@@ -652,12 +652,12 @@ public class ICSAttachmentWorkflowTest {
.mimeMessage(messageWithICSBase64Attached)
.sender(FROM)
.recipient(RECIPIENT))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
String receivedHeaders = imapMessageReader.readFirstMessageHeaders();
assertThat(receivedHeaders).contains("X-MEETING-UID: " + ICS_BASE64_UID);
@@ -673,12 +673,12 @@ public class ICSAttachmentWorkflowTest {
.mimeMessage(messageWithICSBase64Attached)
.sender(FROM)
.recipient(RECIPIENT))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
Optional<String> content = amqpRule.readContent();
assertThat(content).isPresent();
@@ -699,12 +699,12 @@ public class ICSAttachmentWorkflowTest {
.mimeMessage(yahooInvitationMessage)
.sender(FROM)
.recipient(RECIPIENT))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
Optional<String> content = amqpRule.readContent();
assertThat(content).isPresent();
@@ -726,12 +726,12 @@ public class ICSAttachmentWorkflowTest {
.mimeMessage(messageWithThreeICSAttached)
.sender(FROM)
.recipient(RECIPIENT))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
String receivedHeaders = imapMessageReader.readFirstMessageHeaders();
assertThat(receivedHeaders).contains("X-MEETING-UID: " + ICS_UID);
@@ -747,12 +747,12 @@ public class ICSAttachmentWorkflowTest {
.mimeMessage(messageWithThreeICSAttached)
.sender(FROM)
.recipient(RECIPIENT))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
Optional<String> content1 = amqpRule.readContent();
assertThat(content1).isPresent();
@@ -786,12 +786,12 @@ public class ICSAttachmentWorkflowTest {
.mimeMessage(calendarMessage)
.sender(FROM)
.recipient(RECIPIENT))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
assertThat(imapMessageReader.readFirstMessage())
.containsSequence("Content-Type: multipart/mixed", "Content-Disposition: attachment");
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java
index f97bf1d..bd1d74b 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/SpamAssassinTest.java
@@ -26,7 +26,7 @@ import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.RECIPIENT;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import static org.assertj.core.api.Assertions.assertThat;
import javax.mail.MessagingException;
@@ -106,12 +106,12 @@ public class SpamAssassinTest {
public void spamAssassinShouldAppendNewHeaderOnMessage() throws Exception {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(mailWithContent("This is the content"))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
messageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
assertThat(messageReader.readFirstMessageHeaders())
.contains(
@@ -123,12 +123,12 @@ public class SpamAssassinTest {
public void spamAssassinShouldAppendNewHeaderWhichDetectIsSpamWhenSpamMessage() throws Exception {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(mailWithContent(SPAM_CONTENT))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
messageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
String receivedHeaders = messageReader.readFirstMessageHeaders();
assertThat(receivedHeaders).contains(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME + ": YES");
@@ -139,12 +139,12 @@ public class SpamAssassinTest {
public void spamAssassinShouldAppendNewHeaderWhichNoWhenNonSpamMessage() throws Exception {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(mailWithContent("This is the content"))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
messageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
String receivedHeaders = messageReader.readFirstMessageHeaders();
assertThat(receivedHeaders).contains(SpamAssassinInvoker.FLAG_MAIL_ATTRIBUTE_NAME + ": NO");
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
index 967ce53..9e35168 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/StripAttachmentTest.java
@@ -24,7 +24,7 @@ import static org.apache.james.mailets.configuration.Constants.IMAP_PORT;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import static org.assertj.core.api.Assertions.assertThat;
import javax.mail.internet.MimeMessage;
@@ -123,12 +123,12 @@ public class StripAttachmentTest {
.mimeMessage(message)
.sender(FROM)
.recipient(RECIPIENT))
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute);
+ .awaitMessage(awaitAtMostOneMinute);
assertThat(imapMessageReader.readFirstMessage()).contains("Matching attachment");
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d45cf810/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToRepositoryTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToRepositoryTest.java
index 3f821fa..4a4edb5 100644
--- a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToRepositoryTest.java
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToRepositoryTest.java
@@ -25,7 +25,7 @@ import static org.apache.james.mailets.configuration.Constants.IMAP_PORT;
import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
import static org.apache.james.mailets.configuration.Constants.PASSWORD;
import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
-import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+import static org.apache.james.mailets.configuration.Constants.awaitAtMostOneMinute;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
@@ -99,22 +99,22 @@ public class ToRepositoryTest {
public void incomingShouldBeStoredInProcessorByDefault() throws Exception {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(RECIPIENT, RECIPIENT)
- .awaitSent(awaitOneMinute)
+ .awaitSent(awaitAtMostOneMinute)
.sendMessage(RECIPIENT, RECIPIENT)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 2);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 2);
}
@Test
public void userShouldBeAbleToAccessReprocessedMails() throws Exception {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(RECIPIENT, RECIPIENT)
- .awaitSent(awaitOneMinute)
+ .awaitSent(awaitAtMostOneMinute)
.sendMessage(RECIPIENT, RECIPIENT)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 2);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 2);
with()
.spec(webAdminAPI)
@@ -129,20 +129,20 @@ public class ToRepositoryTest {
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute)
+ .awaitMessage(awaitAtMostOneMinute)
.hasMessageCount(2);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 0);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 0);
}
@Test
public void userShouldBeAbleToAccessReprocessedMail() throws Exception {
messageSender.connect(LOCALHOST_IP, SMTP_PORT)
.sendMessage(RECIPIENT, RECIPIENT)
- .awaitSent(awaitOneMinute)
+ .awaitSent(awaitAtMostOneMinute)
.sendMessage(RECIPIENT, RECIPIENT)
- .awaitSent(awaitOneMinute);
+ .awaitSent(awaitAtMostOneMinute);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 2);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 2);
String key = probe.listMailKeys(CUSTOM_REPOSITORY).get(0);
with()
@@ -158,8 +158,8 @@ public class ToRepositoryTest {
imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
.login(RECIPIENT, PASSWORD)
.select(IMAPMessageReader.INBOX)
- .awaitMessage(awaitOneMinute)
+ .awaitMessage(awaitAtMostOneMinute)
.hasMessageCount(1);
- awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+ awaitAtMostOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[02/10] james-project git commit: JAMES-2294 Routes for mail
reprocessing
Posted by bt...@apache.org.
JAMES-2294 Routes for mail reprocessing
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c73d5de8
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c73d5de8
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c73d5de8
Branch: refs/heads/master
Commit: c73d5de8df02bc638dbcfe5916e63163dd3b5111
Parents: e6fdeae
Author: benwa <bt...@linagora.com>
Authored: Thu Jan 25 10:57:41 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jan 26 08:12:05 2018 +0700
----------------------------------------------------------------------
.../webadmin/routes/MailRepositoriesRoutes.java | 139 +++-
.../routes/MailRepositoriesRoutesTest.java | 646 ++++++++++++++++++-
2 files changed, 755 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/c73d5de8/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/routes/MailRepositoriesRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/routes/MailRepositoriesRoutes.java b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/routes/MailRepositoriesRoutes.java
index 1078206..a90323b 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/routes/MailRepositoriesRoutes.java
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/main/java/org/apache/james/webadmin/routes/MailRepositoriesRoutes.java
@@ -19,6 +19,7 @@
package org.apache.james.webadmin.routes;
+import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.util.List;
@@ -32,6 +33,7 @@ import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import org.apache.james.mailrepository.api.MailRepositoryStore;
+import org.apache.james.queue.api.MailQueueFactory;
import org.apache.james.task.Task;
import org.apache.james.task.TaskId;
import org.apache.james.task.TaskManager;
@@ -42,6 +44,9 @@ import org.apache.james.webadmin.Routes;
import org.apache.james.webadmin.dto.ExtendedMailRepositoryResponse;
import org.apache.james.webadmin.dto.TaskIdDto;
import org.apache.james.webadmin.service.MailRepositoryStoreService;
+import org.apache.james.webadmin.service.ReprocessingAllMailsTask;
+import org.apache.james.webadmin.service.ReprocessingOneMailTask;
+import org.apache.james.webadmin.service.ReprocessingService;
import org.apache.james.webadmin.utils.ErrorResponder;
import org.apache.james.webadmin.utils.ErrorResponder.ErrorType;
import org.apache.james.webadmin.utils.JsonTransformer;
@@ -55,6 +60,7 @@ import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
+import io.swagger.jaxrs.PATCH;
import spark.Request;
import spark.Service;
@@ -67,13 +73,15 @@ public class MailRepositoriesRoutes implements Routes {
private final JsonTransformer jsonTransformer;
private final MailRepositoryStoreService repositoryStoreService;
+ private final ReprocessingService reprocessingService;
private final TaskManager taskManager;
private Service service;
@Inject
- public MailRepositoriesRoutes(MailRepositoryStoreService repositoryStoreService, JsonTransformer jsonTransformer, TaskManager taskManager) {
+ public MailRepositoriesRoutes(MailRepositoryStoreService repositoryStoreService, JsonTransformer jsonTransformer, ReprocessingService reprocessingService, TaskManager taskManager) {
this.repositoryStoreService = repositoryStoreService;
this.jsonTransformer = jsonTransformer;
+ this.reprocessingService = reprocessingService;
this.taskManager = taskManager;
}
@@ -92,6 +100,10 @@ public class MailRepositoriesRoutes implements Routes {
defineDeleteMail();
defineDeleteAll();
+
+ defineReprocessAll();
+
+ defineReprocessOne();
}
@GET
@@ -168,7 +180,7 @@ public class MailRepositoriesRoutes implements Routes {
})
public void defineGetMail() {
service.get(MAIL_REPOSITORIES + "/:encodedUrl/mails/:mailKey", (request, response) -> {
- String url = URLDecoder.decode(request.params("encodedUrl"), StandardCharsets.UTF_8.displayName());
+ String url = decodedRepositoryUrl(request);
String mailKey = request.params("mailKey");
try {
return repositoryStoreService.retrieveMail(url, mailKey)
@@ -228,7 +240,7 @@ public class MailRepositoriesRoutes implements Routes {
})
public void defineDeleteMail() {
service.delete(MAIL_REPOSITORIES + "/:encodedUrl/mails/:mailKey", (request, response) -> {
- String url = URLDecoder.decode(request.params("encodedUrl"), StandardCharsets.UTF_8.displayName());
+ String url = decodedRepositoryUrl(request);
String mailKey = request.params("mailKey");
try {
response.status(HttpStatus.NO_CONTENT_204);
@@ -255,7 +267,7 @@ public class MailRepositoriesRoutes implements Routes {
})
public void defineDeleteAll() {
service.delete(MAIL_REPOSITORIES + "/:encodedUrl/mails", (request, response) -> {
- String url = URLDecoder.decode(request.params("encodedUrl"), StandardCharsets.UTF_8.displayName());
+ String url = decodedRepositoryUrl(request);
try {
Task task = repositoryStoreService.createClearMailRepositoryTask(url);
TaskId taskId = taskManager.submit(task);
@@ -271,6 +283,125 @@ public class MailRepositoriesRoutes implements Routes {
}, jsonTransformer);
}
+ @PATCH
+ @Path("/{encodedUrl}/mails")
+ @ApiOperation(value = "Reprocessing all mails in that mailRepository")
+ @ApiImplicitParams({
+ @ApiImplicitParam(
+ required = true,
+ name = "action",
+ paramType = "query parameter",
+ dataType = "String",
+ defaultValue = "none",
+ example = "?action=reprocess",
+ value = "Compulsory. Only supported value is `reprocess`"),
+ @ApiImplicitParam(
+ required = false,
+ name = "queue",
+ paramType = "query parameter",
+ dataType = "String",
+ defaultValue = "spool",
+ example = "?queue=outgoing",
+ value = "Indicates in which queue the mails stored in the repository should be re-enqueued"),
+ @ApiImplicitParam(
+ required = false,
+ paramType = "query parameter",
+ name = "processor",
+ dataType = "String",
+ defaultValue = "absent",
+ example = "?processor=transport",
+ value = "If present, modifies the state property of the mail to allow their processing by a specific mail container processor.")
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.CREATED_201, message = "Task is created", response = TaskIdDto.class),
+ @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = "Internal server error - Something went bad on the server side."),
+ @ApiResponse(code = HttpStatus.BAD_REQUEST_400, message = "Bad request - unknown action")
+ })
+ public void defineReprocessAll() {
+ service.patch(MAIL_REPOSITORIES + "/:encodedUrl/mails", (request, response) -> {
+ Task task = toAllMailReprocessingTask(request);
+ TaskId taskId = taskManager.submit(task);
+ return TaskIdDto.respond(response, taskId);
+ }, jsonTransformer);
+ }
+
+ private Task toAllMailReprocessingTask(Request request) throws UnsupportedEncodingException, MailRepositoryStore.MailRepositoryStoreException, MessagingException {
+ String url = decodedRepositoryUrl(request);
+ enforceActionParameter(request);
+ Optional<String> targetProcessor = Optional.ofNullable(request.queryParams("processor"));
+ String targetQueue = Optional.ofNullable(request.queryParams("queue")).orElse(MailQueueFactory.SPOOL);
+
+ Long repositorySize = repositoryStoreService.size(url).orElse(0L);
+ return new ReprocessingAllMailsTask(reprocessingService, repositorySize, url, targetQueue, targetProcessor);
+ }
+
+ @PATCH
+ @Path("/{encodedUrl}/mails/{key}")
+ @ApiOperation(value = "Reprocessing a single mail in that mailRepository")
+ @ApiImplicitParams({
+ @ApiImplicitParam(
+ required = true,
+ name = "action",
+ paramType = "query parameter",
+ dataType = "String",
+ defaultValue = "none",
+ example = "?action=reprocess",
+ value = "Compulsory. Only supported value is `reprocess`"),
+ @ApiImplicitParam(
+ required = false,
+ name = "queue",
+ paramType = "query parameter",
+ dataType = "String",
+ defaultValue = "spool",
+ example = "?queue=outgoing",
+ value = "Indicates in which queue the mails stored in the repository should be re-enqueued"),
+ @ApiImplicitParam(
+ required = false,
+ paramType = "query parameter",
+ name = "processor",
+ dataType = "String",
+ defaultValue = "absent",
+ example = "?processor=transport",
+ value = "If present, modifies the state property of the mail to allow their processing by a specific mail container processor.")
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.CREATED_201, message = "Task is created", response = TaskIdDto.class),
+ @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = "Internal server error - Something went bad on the server side."),
+ @ApiResponse(code = HttpStatus.BAD_REQUEST_400, message = "Bad request - unknown action")
+ })
+ public void defineReprocessOne() {
+ service.patch(MAIL_REPOSITORIES + "/:encodedUrl/mails/:key", (request, response) -> {
+ Task task = toOneMailReprocessingTask(request);
+ TaskId taskId = taskManager.submit(task);
+ return TaskIdDto.respond(response, taskId);
+ }, jsonTransformer);
+ }
+
+ private Task toOneMailReprocessingTask(Request request) throws UnsupportedEncodingException {
+ String url = decodedRepositoryUrl(request);
+ String key = request.params("key");
+ enforceActionParameter(request);
+ Optional<String> targetProcessor = Optional.ofNullable(request.queryParams("processor"));
+ String targetQueue = Optional.ofNullable(request.queryParams("queue")).orElse(MailQueueFactory.SPOOL);
+
+ return new ReprocessingOneMailTask(reprocessingService, url, targetQueue, key, targetProcessor);
+ }
+
+ private void enforceActionParameter(Request request) {
+ String action = request.queryParams("action");
+ if (!"reprocess".equals(action)) {
+ throw ErrorResponder.builder()
+ .statusCode(HttpStatus.BAD_REQUEST_400)
+ .type(ErrorType.INVALID_ARGUMENT)
+ .message("action query parameter is mandatory. The only supported value is `reprocess`")
+ .haltError();
+ }
+ }
+
+ private String decodedRepositoryUrl(Request request) throws UnsupportedEncodingException {
+ return URLDecoder.decode(request.params("encodedUrl"), StandardCharsets.UTF_8.displayName());
+ }
+
private Optional<Integer> assertPositiveInteger(Request request, String parameterName) {
try {
return Optional.ofNullable(request.queryParams(parameterName))
http://git-wip-us.apache.org/repos/asf/james-project/blob/c73d5de8/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
index cbad2b4..a6dd4de 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
@@ -41,13 +41,21 @@ import java.util.Optional;
import org.apache.james.mailrepository.api.MailRepositoryStore;
import org.apache.james.mailrepository.memory.MemoryMailRepository;
import org.apache.james.metrics.api.NoopMetricFactory;
+import org.apache.james.queue.api.MailQueueFactory;
+import org.apache.james.queue.api.ManageableMailQueue;
+import org.apache.james.queue.api.RawMailQueueItemDecoratorFactory;
+import org.apache.james.queue.memory.MemoryMailQueueFactory;
import org.apache.james.task.MemoryTaskManager;
import org.apache.james.webadmin.WebAdminServer;
import org.apache.james.webadmin.WebAdminUtils;
import org.apache.james.webadmin.service.ClearMailRepositoryTask;
import org.apache.james.webadmin.service.MailRepositoryStoreService;
+import org.apache.james.webadmin.service.ReprocessingAllMailsTask;
+import org.apache.james.webadmin.service.ReprocessingOneMailTask;
+import org.apache.james.webadmin.service.ReprocessingService;
import org.apache.james.webadmin.utils.ErrorResponder;
import org.apache.james.webadmin.utils.JsonTransformer;
+import org.apache.mailet.Mail;
import org.apache.mailet.base.test.FakeMail;
import org.eclipse.jetty.http.HttpStatus;
import org.junit.After;
@@ -63,9 +71,14 @@ public class MailRepositoriesRoutesTest {
public static final String URL_MY_REPO = "url://myRepo";
public static final String URL_ESCAPED_MY_REPO = "url%3A%2F%2FmyRepo";
public static final String MY_REPO_MAILS = "url%3A%2F%2FmyRepo/mails";
+ public static final String CUSTOM_QUEUE = "customQueue";
+ public static final String NAME_1 = "name1";
+ public static final String NAME_2 = "name2";
private WebAdminServer webAdminServer;
private MailRepositoryStore mailRepositoryStore;
private MemoryMailRepository mailRepository;
+ private ManageableMailQueue spoolQueue;
+ private ManageableMailQueue customQueue;
@Before
public void setUp() throws Exception {
@@ -74,10 +87,18 @@ public class MailRepositoriesRoutesTest {
MemoryTaskManager taskManager = new MemoryTaskManager();
JsonTransformer jsonTransformer = new JsonTransformer();
+ MailQueueFactory<ManageableMailQueue> queueFactory = new MemoryMailQueueFactory(new RawMailQueueItemDecoratorFactory());
+ spoolQueue = queueFactory.createQueue(MailQueueFactory.SPOOL);
+ customQueue = queueFactory.createQueue(CUSTOM_QUEUE);
+
+ MailRepositoryStoreService repositoryStoreService = new MailRepositoryStoreService(mailRepositoryStore);
+
+ ReprocessingService reprocessingService = new ReprocessingService(queueFactory, repositoryStoreService);
+
webAdminServer = WebAdminUtils.createWebAdminServer(
new NoopMetricFactory(),
- new MailRepositoriesRoutes(new MailRepositoryStoreService(mailRepositoryStore),
- jsonTransformer, taskManager),
+ new MailRepositoriesRoutes(repositoryStoreService,
+ jsonTransformer, reprocessingService, taskManager),
new TasksRoutes(taskManager, jsonTransformer));
webAdminServer.configure(NO_CONFIGURATION);
webAdminServer.await();
@@ -289,10 +310,10 @@ public class MailRepositoriesRoutesTest {
when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
mailRepository.store(FakeMail.builder()
- .name("name1")
+ .name(NAME_1)
.build());
mailRepository.store(FakeMail.builder()
- .name("name2")
+ .name(NAME_2)
.build());
when()
@@ -300,7 +321,7 @@ public class MailRepositoriesRoutesTest {
.then()
.statusCode(HttpStatus.OK_200)
.body("", hasSize(2))
- .body("mailKey", containsInAnyOrder("name1", "name2"));
+ .body("mailKey", containsInAnyOrder(NAME_1, NAME_2));
}
@Test
@@ -354,7 +375,7 @@ public class MailRepositoriesRoutesTest {
when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
mailRepository.store(FakeMail.builder()
- .name("name1")
+ .name(NAME_1)
.build());
given()
@@ -369,7 +390,7 @@ public class MailRepositoriesRoutesTest {
public void retrievingAMailShouldDisplayItsInformation() throws Exception {
when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
- String name = "name1";
+ String name = NAME_1;
String sender = "sender@domain";
String recipient1 = "recipient1@domain";
String recipient2 = "recipient2@domain";
@@ -398,16 +419,15 @@ public class MailRepositoriesRoutesTest {
public void retrievingAMailShouldNotFailWhenOnlyNameProperty() throws Exception {
when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
- String name = "name1";
mailRepository.store(FakeMail.builder()
- .name(name)
+ .name(NAME_1)
.build());
when()
- .get(URL_ESCAPED_MY_REPO + "/mails/" + name)
+ .get(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1)
.then()
.statusCode(HttpStatus.OK_200)
- .body("name", is(name))
+ .body("name", is(NAME_1))
.body("sender", isEmptyOrNullString())
.body("state", isEmptyOrNullString())
.body("error", isEmptyOrNullString())
@@ -432,37 +452,34 @@ public class MailRepositoriesRoutesTest {
public void deletingAMailShouldRemoveIt() throws Exception {
when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
- String name1 = "name1";
- String name2 = "name2";
mailRepository.store(FakeMail.builder()
- .name(name1)
+ .name(NAME_1)
.build());
mailRepository.store(FakeMail.builder()
- .name(name2)
+ .name(NAME_2)
.build());
given()
- .delete(URL_ESCAPED_MY_REPO + "/mails/" + name1);
+ .delete(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1);
when()
.get(URL_ESCAPED_MY_REPO + "/mails")
.then()
.statusCode(HttpStatus.OK_200)
.body("", hasSize(1))
- .body("mailKey", contains(name2));
+ .body("mailKey", contains(NAME_2));
}
@Test
public void deletingAMailShouldReturnOkWhenExist() throws Exception {
when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
- String name1 = "name1";
mailRepository.store(FakeMail.builder()
- .name(name1)
+ .name(NAME_1)
.build());
when()
- .delete(URL_ESCAPED_MY_REPO + "/mails/" + name1)
+ .delete(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1)
.then()
.statusCode(HttpStatus.NO_CONTENT_204);
}
@@ -493,13 +510,11 @@ public class MailRepositoriesRoutesTest {
public void clearTaskShouldHaveDetails() throws Exception {
when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
- String name1 = "name1";
- String name2 = "name2";
mailRepository.store(FakeMail.builder()
- .name(name1)
+ .name(NAME_1)
.build());
mailRepository.store(FakeMail.builder()
- .name(name2)
+ .name(NAME_2)
.build());
String taskId = with()
@@ -528,10 +543,10 @@ public class MailRepositoriesRoutesTest {
when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
mailRepository.store(FakeMail.builder()
- .name("name1")
+ .name(NAME_1)
.build());
mailRepository.store(FakeMail.builder()
- .name("name2")
+ .name(NAME_2)
.build());
String taskId = with()
@@ -576,4 +591,583 @@ public class MailRepositoriesRoutesTest {
.body("message", is(URL_MY_REPO + "does not exist"));
}
+ @Test
+ public void reprocessingAllTaskShouldCreateATask() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+
+ when()
+ .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess")
+ .then()
+ .statusCode(HttpStatus.CREATED_201)
+ .header("Location", is(notNullValue()))
+ .body("taskId", is(notNullValue()));
+ }
+
+ @Test
+ public void reprocessingAllTaskShouldRejectInvalidActions() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+
+ when()
+ .patch(URL_ESCAPED_MY_REPO + "/mails?action=invalid")
+ .then()
+ .statusCode(HttpStatus.BAD_REQUEST_400)
+ .body("statusCode", is(400))
+ .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
+ .body("message", is("action query parameter is mandatory. The only supported value is `reprocess`"));
+ }
+
+ @Test
+ public void reprocessingAllTaskShouldRequireAction() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+
+ when()
+ .patch(URL_ESCAPED_MY_REPO + "/mails")
+ .then()
+ .statusCode(HttpStatus.BAD_REQUEST_400)
+ .body("statusCode", is(400))
+ .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
+ .body("message", is("action query parameter is mandatory. The only supported value is `reprocess`"));
+ }
+
+ @Test
+ public void reprocessingAllTaskShouldIncludeDetailsWhenDefaultValues() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_2)
+ .build());
+
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess")
+ .jsonPath()
+ .get("taskId");
+
+ given()
+ .basePath(TasksRoutes.BASE)
+ .when()
+ .get(taskId + "/await")
+ .then()
+ .body("status", is("completed"))
+ .body("taskId", is(notNullValue()))
+ .body("type", is(ReprocessingAllMailsTask.TYPE))
+ .body("additionalInformation.repositoryUrl", is(URL_MY_REPO))
+ .body("additionalInformation.initialCount", is(2))
+ .body("additionalInformation.remainingCount", is(0))
+ .body("additionalInformation.targetProcessor", isEmptyOrNullString())
+ .body("additionalInformation.targetQueue", is(MailQueueFactory.SPOOL))
+ .body("startedDate", is(notNullValue()))
+ .body("submitDate", is(notNullValue()))
+ .body("completedDate", is(notNullValue()));
+ }
+
+ @Test
+ public void reprocessingAllTaskShouldIncludeDetails() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ String name1 = "name1";
+ String name2 = "name2";
+ mailRepository.store(FakeMail.builder()
+ .name(name1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(name2)
+ .build());
+
+ String transport = "transport";
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess" +
+ "&queue=" + CUSTOM_QUEUE +
+ "&processor=" + transport)
+ .jsonPath()
+ .get("taskId");
+
+ given()
+ .basePath(TasksRoutes.BASE)
+ .when()
+ .get(taskId + "/await")
+ .then()
+ .body("status", is("completed"))
+ .body("taskId", is(notNullValue()))
+ .body("type", is(ReprocessingAllMailsTask.TYPE))
+ .body("additionalInformation.repositoryUrl", is(URL_MY_REPO))
+ .body("additionalInformation.initialCount", is(2))
+ .body("additionalInformation.remainingCount", is(0))
+ .body("additionalInformation.targetProcessor", is(transport))
+ .body("additionalInformation.targetQueue", is(CUSTOM_QUEUE))
+ .body("startedDate", is(notNullValue()))
+ .body("submitDate", is(notNullValue()))
+ .body("completedDate", is(notNullValue()));
+ }
+
+ @Test
+ public void reprocessingAllTaskShouldClearMailRepository() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ String name1 = "name1";
+ String name2 = "name2";
+ mailRepository.store(FakeMail.builder()
+ .name(name1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(name2)
+ .build());
+
+ String transport = "transport";
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess" +
+ "&queue=" + CUSTOM_QUEUE +
+ "&processor=" + transport)
+ .jsonPath()
+ .get("taskId");
+
+ with()
+ .basePath(TasksRoutes.BASE)
+ .get(taskId + "/await");
+
+ assertThat(mailRepository.list()).isEmpty();
+ }
+
+ @Test
+ public void reprocessingAllTaskShouldEnqueueMailsOnDefaultQueue() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_2)
+ .build());
+
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess")
+ .jsonPath()
+ .get("taskId");
+
+ with()
+ .basePath(TasksRoutes.BASE)
+ .get(taskId + "/await");
+
+ assertThat(spoolQueue.browse())
+ .extracting(ManageableMailQueue.MailQueueItemView::getMail)
+ .extracting(Mail::getName)
+ .containsOnly(NAME_1, NAME_2);
+ }
+
+ @Test
+ public void reprocessingAllTaskShouldPreserveStateWhenProcessorIsNotSpecified() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ String state1 = "state1";
+ String state2 = "state2";
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_1)
+ .state(state1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_2)
+ .state(state2)
+ .build());
+
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess")
+ .jsonPath()
+ .get("taskId");
+
+ with()
+ .basePath(TasksRoutes.BASE)
+ .get(taskId + "/await");
+
+ assertThat(spoolQueue.browse())
+ .extracting(ManageableMailQueue.MailQueueItemView::getMail)
+ .extracting(Mail::getState)
+ .containsOnly(state1, state2);
+ }
+
+ @Test
+ public void reprocessingAllTaskShouldOverWriteStateWhenProcessorSpecified() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ String state1 = "state1";
+ String state2 = "state2";
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_1)
+ .state(state1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_2)
+ .state(state2)
+ .build());
+
+ String transport = "transport";
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess"
+ + "&processor=" + transport)
+ .jsonPath()
+ .get("taskId");
+
+ with()
+ .basePath(TasksRoutes.BASE)
+ .get(taskId + "/await");
+
+ assertThat(spoolQueue.browse())
+ .extracting(ManageableMailQueue.MailQueueItemView::getMail)
+ .extracting(Mail::getState)
+ .containsOnly(transport, transport);
+ }
+
+ @Test
+ public void reprocessingAllTaskShouldEnqueueMailsOnSpecifiedQueue() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_2)
+ .build());
+
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess"
+ + "&queue=" + CUSTOM_QUEUE)
+ .jsonPath()
+ .get("taskId");
+
+ with()
+ .basePath(TasksRoutes.BASE)
+ .get(taskId + "/await");
+
+ assertThat(customQueue.browse())
+ .extracting(ManageableMailQueue.MailQueueItemView::getMail)
+ .extracting(Mail::getName)
+ .containsOnly(NAME_1, NAME_2);
+ }
+
+ @Test
+ public void reprocessingOneTaskShouldCreateATask() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_1)
+ .build());
+
+ when()
+ .patch(URL_ESCAPED_MY_REPO + "/mails/name1?action=reprocess")
+ .then()
+ .statusCode(HttpStatus.CREATED_201)
+ .header("Location", is(notNullValue()))
+ .body("taskId", is(notNullValue()));
+ }
+
+ @Test
+ public void reprocessingOneTaskShouldRejectInvalidActions() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_1)
+ .build());
+
+ when()
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=invalid")
+ .then()
+ .statusCode(HttpStatus.BAD_REQUEST_400)
+ .body("statusCode", is(400))
+ .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
+ .body("message", is("action query parameter is mandatory. The only supported value is `reprocess`"));
+ }
+
+ @Test
+ public void reprocessingOneTaskShouldRequireAction() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_1)
+ .build());
+
+ when()
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1)
+ .then()
+ .statusCode(HttpStatus.BAD_REQUEST_400)
+ .body("statusCode", is(400))
+ .body("type", is(ErrorResponder.ErrorType.INVALID_ARGUMENT.getType()))
+ .body("message", is("action query parameter is mandatory. The only supported value is `reprocess`"));
+ }
+
+ @Test
+ public void reprocessingOneTaskShouldIncludeDetailsWhenDefaultValues() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ String name1 = "name1";
+ String name2 = "name2";
+ mailRepository.store(FakeMail.builder()
+ .name(name1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(name2)
+ .build());
+
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=reprocess")
+ .jsonPath()
+ .get("taskId");
+
+ given()
+ .basePath(TasksRoutes.BASE)
+ .when()
+ .get(taskId + "/await")
+ .then()
+ .body("status", is("completed"))
+ .body("taskId", is(notNullValue()))
+ .body("type", is(ReprocessingOneMailTask.TYPE))
+ .body("additionalInformation.repositoryUrl", is(URL_MY_REPO))
+ .body("additionalInformation.mailKey", is(NAME_1))
+ .body("additionalInformation.targetProcessor", isEmptyOrNullString())
+ .body("additionalInformation.targetQueue", is(MailQueueFactory.SPOOL))
+ .body("startedDate", is(notNullValue()))
+ .body("submitDate", is(notNullValue()))
+ .body("completedDate", is(notNullValue()));
+ }
+
+ @Test
+ public void reprocessingOneTaskShouldIncludeDetails() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ String name1 = "name1";
+ String name2 = "name2";
+ mailRepository.store(FakeMail.builder()
+ .name(name1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(name2)
+ .build());
+
+ String transport = "transport";
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=reprocess" +
+ "&queue=" + CUSTOM_QUEUE +
+ "&processor=" + transport)
+ .jsonPath()
+ .get("taskId");
+
+ given()
+ .basePath(TasksRoutes.BASE)
+ .when()
+ .get(taskId + "/await")
+ .then()
+ .body("status", is("completed"))
+ .body("taskId", is(notNullValue()))
+ .body("type", is(ReprocessingOneMailTask.TYPE))
+ .body("additionalInformation.repositoryUrl", is(URL_MY_REPO))
+ .body("additionalInformation.mailKey", is(NAME_1))
+ .body("additionalInformation.targetProcessor", is(transport))
+ .body("additionalInformation.targetQueue", is(CUSTOM_QUEUE))
+ .body("startedDate", is(notNullValue()))
+ .body("submitDate", is(notNullValue()))
+ .body("completedDate", is(notNullValue()));
+ }
+
+ @Test
+ public void reprocessingOneTaskShouldRemoveMailFromRepository() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ String name1 = "name1";
+ String name2 = "name2";
+ mailRepository.store(FakeMail.builder()
+ .name(name1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(name2)
+ .build());
+
+ String transport = "transport";
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=reprocess" +
+ "&queue=" + CUSTOM_QUEUE +
+ "&processor=" + transport)
+ .jsonPath()
+ .get("taskId");
+
+ with()
+ .basePath(TasksRoutes.BASE)
+ .get(taskId + "/await");
+
+ assertThat(mailRepository.list())
+ .containsOnly(NAME_2);
+ }
+
+ @Test
+ public void reprocessingOneTaskShouldEnqueueMailsOnDefaultQueue() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_2)
+ .build());
+
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=reprocess")
+ .jsonPath()
+ .get("taskId");
+
+ with()
+ .basePath(TasksRoutes.BASE)
+ .get(taskId + "/await");
+
+ assertThat(spoolQueue.browse())
+ .extracting(ManageableMailQueue.MailQueueItemView::getMail)
+ .extracting(Mail::getName)
+ .containsOnly(NAME_1);
+ }
+
+ @Test
+ public void reprocessingOneTaskShouldPreserveStateWhenProcessorIsNotSpecified() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ String state1 = "state1";
+ String state2 = "state2";
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_1)
+ .state(state1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_2)
+ .state(state2)
+ .build());
+
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=reprocess")
+ .jsonPath()
+ .get("taskId");
+
+ with()
+ .basePath(TasksRoutes.BASE)
+ .get(taskId + "/await");
+
+ assertThat(spoolQueue.browse())
+ .extracting(ManageableMailQueue.MailQueueItemView::getMail)
+ .extracting(Mail::getState)
+ .containsOnly(state1);
+ }
+
+ @Test
+ public void reprocessingOneTaskShouldOverWriteStateWhenProcessorSpecified() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ String state1 = "state1";
+ String state2 = "state2";
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_1)
+ .state(state1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_2)
+ .state(state2)
+ .build());
+
+ String transport = "transport";
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=reprocess"
+ + "&processor=" + transport)
+ .jsonPath()
+ .get("taskId");
+
+ with()
+ .basePath(TasksRoutes.BASE)
+ .get(taskId + "/await");
+
+ assertThat(spoolQueue.browse())
+ .extracting(ManageableMailQueue.MailQueueItemView::getMail)
+ .extracting(Mail::getState)
+ .containsOnly(transport);
+ }
+
+ @Test
+ public void reprocessingOneTaskShouldEnqueueMailsOnSpecifiedQueue() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_2)
+ .build());
+
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=reprocess"
+ + "&queue=" + CUSTOM_QUEUE)
+ .jsonPath()
+ .get("taskId");
+
+ with()
+ .basePath(TasksRoutes.BASE)
+ .get(taskId + "/await");
+
+ assertThat(customQueue.browse())
+ .extracting(ManageableMailQueue.MailQueueItemView::getMail)
+ .extracting(Mail::getName)
+ .containsOnly(NAME_1);
+ }
+
+ @Test
+ public void reprocessingOneTaskShouldNotEnqueueUnknownMailKey() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_2)
+ .build());
+
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + "unknown" + "?action=reprocess"
+ + "&queue=" + CUSTOM_QUEUE)
+ .jsonPath()
+ .get("taskId");
+
+ with()
+ .basePath(TasksRoutes.BASE)
+ .get(taskId + "/await");
+
+ assertThat(customQueue.browse())
+ .isEmpty();
+ }
+
+ @Test
+ public void reprocessingOneTaskShouldNotRemoveMailFromRepositoryWhenUnknownMailKey() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_2)
+ .build());
+
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + "unknown" + "?action=reprocess"
+ + "&queue=" + CUSTOM_QUEUE)
+ .jsonPath()
+ .get("taskId");
+
+ with()
+ .basePath(TasksRoutes.BASE)
+ .get(taskId + "/await");
+
+ assertThat(mailRepository.size())
+ .isEqualTo(2);
+ }
+
+ @Test
+ public void reprocessingOneTaskShouldFailWhenUnknownMailKey() throws Exception {
+ when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_1)
+ .build());
+ mailRepository.store(FakeMail.builder()
+ .name(NAME_2)
+ .build());
+
+ String taskId = with()
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + "unknown" + "?action=reprocess"
+ + "&queue=" + CUSTOM_QUEUE)
+ .jsonPath()
+ .get("taskId");
+
+ given()
+ .basePath(TasksRoutes.BASE)
+ .when()
+ .get(taskId + "/await")
+ .then()
+ .body("status", is("failed"));
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[09/10] james-project git commit: JAMES-2294 Rely on RestAssured for
query parameters in tests
Posted by bt...@apache.org.
JAMES-2294 Rely on RestAssured for query parameters in tests
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/1d14ccbf
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/1d14ccbf
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/1d14ccbf
Branch: refs/heads/master
Commit: 1d14ccbf8c10fb5df64d0d6c0b288cc80513dba7
Parents: 3562155
Author: benwa <bt...@linagora.com>
Authored: Thu Jan 25 17:03:16 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jan 26 08:12:21 2018 +0700
----------------------------------------------------------------------
.../routes/MailRepositoriesRoutesTest.java | 154 ++++++++++++-------
1 file changed, 98 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/1d14ccbf/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
index a6dd4de..6bb564b 100644
--- a/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailrepository/src/test/java/org/apache/james/webadmin/routes/MailRepositoriesRoutesTest.java
@@ -217,8 +217,11 @@ public class MailRepositoriesRoutesTest {
.name("name3")
.build());
- when()
- .get(MY_REPO_MAILS + "?offset=1&limit=1")
+ given()
+ .param("limit", "1")
+ .param("offset", "1")
+ .when()
+ .get(MY_REPO_MAILS)
.then()
.statusCode(HttpStatus.OK_200)
.body("", hasSize(1))
@@ -242,8 +245,10 @@ public class MailRepositoriesRoutesTest {
@Test
public void listingKeysShouldReturnErrorOnInvalidOffset() throws Exception {
- when()
- .get(MY_REPO_MAILS + "?offset=invalid")
+ given()
+ .param("offset", "invalid")
+ .when()
+ .get(MY_REPO_MAILS)
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -253,8 +258,10 @@ public class MailRepositoriesRoutesTest {
@Test
public void listingKeysShouldReturnErrorOnNegativeOffset() throws Exception {
- when()
- .get(MY_REPO_MAILS + "?offset=-1")
+ given()
+ .param("offset", "-1")
+ .when()
+ .get(MY_REPO_MAILS)
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -276,8 +283,10 @@ public class MailRepositoriesRoutesTest {
.name("name3")
.build());
- when()
- .get(MY_REPO_MAILS + "?offset=5")
+ given()
+ .param("offset", "5")
+ .when()
+ .get(MY_REPO_MAILS)
.then()
.statusCode(HttpStatus.OK_200)
.body("", hasSize(0));
@@ -285,8 +294,10 @@ public class MailRepositoriesRoutesTest {
@Test
public void listingKeysShouldReturnErrorOnInvalidLimit() throws Exception {
- when()
- .get(MY_REPO_MAILS + "?limit=invalid")
+ given()
+ .param("limit", "invalid")
+ .when()
+ .get(MY_REPO_MAILS)
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -296,8 +307,10 @@ public class MailRepositoriesRoutesTest {
@Test
public void listingKeysShouldReturnErrorOnNegativeLimit() throws Exception {
- when()
- .get(MY_REPO_MAILS + "?limit=-1")
+ given()
+ .param("limit", "-1")
+ .when()
+ .get(MY_REPO_MAILS)
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -316,8 +329,10 @@ public class MailRepositoriesRoutesTest {
.name(NAME_2)
.build());
- when()
- .get(MY_REPO_MAILS + "?offset=0")
+ given()
+ .param("offset", "0")
+ .when()
+ .get(MY_REPO_MAILS)
.then()
.statusCode(HttpStatus.OK_200)
.body("", hasSize(2))
@@ -326,8 +341,10 @@ public class MailRepositoriesRoutesTest {
@Test
public void zeroLimitShouldNotBeValid() throws Exception {
- when()
- .get(MY_REPO_MAILS + "?limit=0")
+ given()
+ .param("limit", "0")
+ .when()
+ .get(MY_REPO_MAILS)
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -595,8 +612,10 @@ public class MailRepositoriesRoutesTest {
public void reprocessingAllTaskShouldCreateATask() throws Exception {
when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
- when()
- .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess")
+ given()
+ .param("action", "reprocess")
+ .when()
+ .patch(URL_ESCAPED_MY_REPO + "/mails")
.then()
.statusCode(HttpStatus.CREATED_201)
.header("Location", is(notNullValue()))
@@ -607,8 +626,10 @@ public class MailRepositoriesRoutesTest {
public void reprocessingAllTaskShouldRejectInvalidActions() throws Exception {
when(mailRepositoryStore.get(URL_MY_REPO)).thenReturn(Optional.of(mailRepository));
- when()
- .patch(URL_ESCAPED_MY_REPO + "/mails?action=invalid")
+ given()
+ .param("action", "invalid")
+ .when()
+ .patch(URL_ESCAPED_MY_REPO + "/mails")
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -640,7 +661,8 @@ public class MailRepositoriesRoutesTest {
.build());
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess")
+ .param("action", "reprocess")
+ .patch(URL_ESCAPED_MY_REPO + "/mails")
.jsonPath()
.get("taskId");
@@ -676,9 +698,10 @@ public class MailRepositoriesRoutesTest {
String transport = "transport";
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess" +
- "&queue=" + CUSTOM_QUEUE +
- "&processor=" + transport)
+ .param("action", "reprocess")
+ .param("queue", CUSTOM_QUEUE)
+ .param("processor", transport)
+ .patch(URL_ESCAPED_MY_REPO + "/mails")
.jsonPath()
.get("taskId");
@@ -714,9 +737,10 @@ public class MailRepositoriesRoutesTest {
String transport = "transport";
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess" +
- "&queue=" + CUSTOM_QUEUE +
- "&processor=" + transport)
+ .param("action", "reprocess")
+ .param("queue", CUSTOM_QUEUE)
+ .param("processor", transport)
+ .patch(URL_ESCAPED_MY_REPO + "/mails")
.jsonPath()
.get("taskId");
@@ -738,7 +762,8 @@ public class MailRepositoriesRoutesTest {
.build());
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess")
+ .param("action", "reprocess")
+ .patch(URL_ESCAPED_MY_REPO + "/mails")
.jsonPath()
.get("taskId");
@@ -767,7 +792,8 @@ public class MailRepositoriesRoutesTest {
.build());
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess")
+ .param("action", "reprocess")
+ .patch(URL_ESCAPED_MY_REPO + "/mails")
.jsonPath()
.get("taskId");
@@ -797,8 +823,9 @@ public class MailRepositoriesRoutesTest {
String transport = "transport";
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess"
- + "&processor=" + transport)
+ .param("action", "reprocess")
+ .param("processor", transport)
+ .patch(URL_ESCAPED_MY_REPO + "/mails")
.jsonPath()
.get("taskId");
@@ -823,8 +850,9 @@ public class MailRepositoriesRoutesTest {
.build());
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails?action=reprocess"
- + "&queue=" + CUSTOM_QUEUE)
+ .param("action", "reprocess")
+ .param("queue", CUSTOM_QUEUE)
+ .patch(URL_ESCAPED_MY_REPO + "/mails")
.jsonPath()
.get("taskId");
@@ -846,8 +874,10 @@ public class MailRepositoriesRoutesTest {
.name(NAME_1)
.build());
- when()
- .patch(URL_ESCAPED_MY_REPO + "/mails/name1?action=reprocess")
+ given()
+ .param("action", "reprocess")
+ .when()
+ .patch(URL_ESCAPED_MY_REPO + "/mails/name1")
.then()
.statusCode(HttpStatus.CREATED_201)
.header("Location", is(notNullValue()))
@@ -862,8 +892,10 @@ public class MailRepositoriesRoutesTest {
.name(NAME_1)
.build());
- when()
- .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=invalid")
+ given()
+ .param("action", "invalid")
+ .when()
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1)
.then()
.statusCode(HttpStatus.BAD_REQUEST_400)
.body("statusCode", is(400))
@@ -901,7 +933,8 @@ public class MailRepositoriesRoutesTest {
.build());
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=reprocess")
+ .param("action", "reprocess")
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1)
.jsonPath()
.get("taskId");
@@ -936,9 +969,10 @@ public class MailRepositoriesRoutesTest {
String transport = "transport";
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=reprocess" +
- "&queue=" + CUSTOM_QUEUE +
- "&processor=" + transport)
+ .param("action", "reprocess")
+ .param("queue", CUSTOM_QUEUE)
+ .param("processor", transport)
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1)
.jsonPath()
.get("taskId");
@@ -973,9 +1007,10 @@ public class MailRepositoriesRoutesTest {
String transport = "transport";
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=reprocess" +
- "&queue=" + CUSTOM_QUEUE +
- "&processor=" + transport)
+ .param("action", "reprocess")
+ .param("queue", CUSTOM_QUEUE)
+ .param("processor", transport)
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1)
.jsonPath()
.get("taskId");
@@ -998,7 +1033,8 @@ public class MailRepositoriesRoutesTest {
.build());
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=reprocess")
+ .param("action", "reprocess")
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1)
.jsonPath()
.get("taskId");
@@ -1027,7 +1063,8 @@ public class MailRepositoriesRoutesTest {
.build());
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=reprocess")
+ .param("action", "reprocess")
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1)
.jsonPath()
.get("taskId");
@@ -1057,8 +1094,9 @@ public class MailRepositoriesRoutesTest {
String transport = "transport";
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=reprocess"
- + "&processor=" + transport)
+ .param("action", "reprocess")
+ .param("processor", transport)
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1)
.jsonPath()
.get("taskId");
@@ -1083,8 +1121,9 @@ public class MailRepositoriesRoutesTest {
.build());
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1 + "?action=reprocess"
- + "&queue=" + CUSTOM_QUEUE)
+ .param("action", "reprocess")
+ .param("queue", CUSTOM_QUEUE)
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + NAME_1)
.jsonPath()
.get("taskId");
@@ -1109,8 +1148,9 @@ public class MailRepositoriesRoutesTest {
.build());
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails/" + "unknown" + "?action=reprocess"
- + "&queue=" + CUSTOM_QUEUE)
+ .param("action", "reprocess")
+ .param("queue", CUSTOM_QUEUE)
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + "unknown")
.jsonPath()
.get("taskId");
@@ -1133,8 +1173,9 @@ public class MailRepositoriesRoutesTest {
.build());
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails/" + "unknown" + "?action=reprocess"
- + "&queue=" + CUSTOM_QUEUE)
+ .param("action", "reprocess")
+ .param("queue", CUSTOM_QUEUE)
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + "unknown")
.jsonPath()
.get("taskId");
@@ -1157,8 +1198,9 @@ public class MailRepositoriesRoutesTest {
.build());
String taskId = with()
- .patch(URL_ESCAPED_MY_REPO + "/mails/" + "unknown" + "?action=reprocess"
- + "&queue=" + CUSTOM_QUEUE)
+ .param("action", "reprocess")
+ .param("queue", CUSTOM_QUEUE)
+ .patch(URL_ESCAPED_MY_REPO + "/mails/" + "unknown")
.jsonPath()
.get("taskId");
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[05/10] james-project git commit: JAMES-2294 Integration test for
mail reprocessing
Posted by bt...@apache.org.
JAMES-2294 Integration test for mail reprocessing
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/d5594ae7
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/d5594ae7
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/d5594ae7
Branch: refs/heads/master
Commit: d5594ae7d0e8369528c197887b38616138b02f42
Parents: c73d5de
Author: benwa <bt...@linagora.com>
Authored: Thu Jan 25 11:35:16 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jan 26 08:12:21 2018 +0700
----------------------------------------------------------------------
.../james/utils/MailRepositoryProbeImpl.java | 15 +-
server/mailet/integration-testing/pom.xml | 5 +
.../transport/mailets/ToRepositoryTest.java | 165 +++++++++++++++++++
.../apache/james/utils/IMAPMessageReader.java | 6 +-
.../apache/james/utils/SMTPMessageSender.java | 3 +-
5 files changed, 187 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/d5594ae7/server/container/guice/guice-common/src/main/java/org/apache/james/utils/MailRepositoryProbeImpl.java
----------------------------------------------------------------------
diff --git a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/MailRepositoryProbeImpl.java b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/MailRepositoryProbeImpl.java
index baac629..e3143f2 100644
--- a/server/container/guice/guice-common/src/main/java/org/apache/james/utils/MailRepositoryProbeImpl.java
+++ b/server/container/guice/guice-common/src/main/java/org/apache/james/utils/MailRepositoryProbeImpl.java
@@ -19,11 +19,13 @@
package org.apache.james.utils;
+import java.util.List;
+
import javax.inject.Inject;
import org.apache.james.mailrepository.api.MailRepositoryStore;
-import com.google.common.collect.Iterators;
+import com.google.common.collect.ImmutableList;
public class MailRepositoryProbeImpl implements GuiceProbe {
@@ -37,9 +39,14 @@ public class MailRepositoryProbeImpl implements GuiceProbe {
/**
* Get the count of email currently stored in a given repository
*/
- public int getRepositoryMailCount(String url) throws Exception {
- return Iterators.size(repositoryStore.select(url)
- .list());
+ public long getRepositoryMailCount(String url) throws Exception {
+ return repositoryStore.select(url).size();
+ }
+
+ public List<String> listMailKeys(String url) throws Exception {
+ return ImmutableList.copyOf(
+ repositoryStore.select(url)
+ .list());
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/d5594ae7/server/mailet/integration-testing/pom.xml
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/pom.xml b/server/mailet/integration-testing/pom.xml
index 30e083a..58b2f3f 100644
--- a/server/mailet/integration-testing/pom.xml
+++ b/server/mailet/integration-testing/pom.xml
@@ -145,6 +145,11 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>org.junit.platform</groupId>
+ <artifactId>junit-platform-launcher</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/d5594ae7/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToRepositoryTest.java b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToRepositoryTest.java
new file mode 100644
index 0000000..3f821fa
--- /dev/null
+++ b/server/mailet/integration-testing/src/test/java/org/apache/james/transport/mailets/ToRepositoryTest.java
@@ -0,0 +1,165 @@
+/****************************************************************
+ * 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.transport.mailets;
+
+import static com.jayway.restassured.RestAssured.with;
+import static org.apache.james.mailets.configuration.Constants.DEFAULT_DOMAIN;
+import static org.apache.james.mailets.configuration.Constants.IMAP_PORT;
+import static org.apache.james.mailets.configuration.Constants.LOCALHOST_IP;
+import static org.apache.james.mailets.configuration.Constants.PASSWORD;
+import static org.apache.james.mailets.configuration.Constants.SMTP_PORT;
+import static org.apache.james.mailets.configuration.Constants.awaitOneMinute;
+
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+
+import org.apache.james.mailets.TemporaryJamesServer;
+import org.apache.james.mailets.configuration.MailetConfiguration;
+import org.apache.james.mailets.configuration.MailetContainer;
+import org.apache.james.mailets.configuration.ProcessorConfiguration;
+import org.apache.james.probe.DataProbe;
+import org.apache.james.transport.matchers.All;
+import org.apache.james.utils.DataProbeImpl;
+import org.apache.james.utils.IMAPMessageReader;
+import org.apache.james.utils.MailRepositoryProbeImpl;
+import org.apache.james.utils.SMTPMessageSender;
+import org.apache.james.utils.WebAdminGuiceProbe;
+import org.apache.james.webadmin.WebAdminUtils;
+import org.apache.james.webadmin.routes.MailRepositoriesRoutes;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+
+import com.jayway.restassured.specification.RequestSpecification;
+
+public class ToRepositoryTest {
+ private static final String RECIPIENT = "touser@" + DEFAULT_DOMAIN;
+ public static final String CUSTOM_REPOSITORY = "file://var/mail/custom/";
+
+ @Rule
+ public TemporaryFolder temporaryFolder = new TemporaryFolder();
+ @Rule
+ public IMAPMessageReader imapMessageReader = new IMAPMessageReader();
+ @Rule
+ public SMTPMessageSender messageSender = new SMTPMessageSender(DEFAULT_DOMAIN);
+
+ private TemporaryJamesServer jamesServer;
+ private MailRepositoryProbeImpl probe;
+ private RequestSpecification webAdminAPI;
+
+ @Before
+ public void setup() throws Exception {
+ MailetContainer.Builder mailetContainer = TemporaryJamesServer.SIMPLE_MAILET_CONTAINER_CONFIGURATION
+ .putProcessor(ProcessorConfiguration.root()
+ .addMailet(MailetConfiguration.builder()
+ .matcher(All.class)
+ .mailet(ToRepository.class)
+ .addProperty("repositoryPath", CUSTOM_REPOSITORY)));
+
+ jamesServer = TemporaryJamesServer.builder()
+ .withMailetContainer(mailetContainer)
+ .build(temporaryFolder);
+
+ DataProbe dataProbe = jamesServer.getProbe(DataProbeImpl.class);
+ dataProbe.addDomain(DEFAULT_DOMAIN);
+ dataProbe.addUser(RECIPIENT, PASSWORD);
+
+ probe = jamesServer.getProbe(MailRepositoryProbeImpl.class);
+ webAdminAPI = WebAdminUtils.buildRequestSpecification(
+ jamesServer.getProbe(WebAdminGuiceProbe.class)
+ .getWebAdminPort())
+ .build();
+ }
+
+ @After
+ public void tearDown() {
+ jamesServer.shutdown();
+ }
+
+ @Test
+ public void incomingShouldBeStoredInProcessorByDefault() throws Exception {
+ messageSender.connect(LOCALHOST_IP, SMTP_PORT)
+ .sendMessage(RECIPIENT, RECIPIENT)
+ .awaitSent(awaitOneMinute)
+ .sendMessage(RECIPIENT, RECIPIENT)
+ .awaitSent(awaitOneMinute);
+
+ awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 2);
+ }
+
+ @Test
+ public void userShouldBeAbleToAccessReprocessedMails() throws Exception {
+ messageSender.connect(LOCALHOST_IP, SMTP_PORT)
+ .sendMessage(RECIPIENT, RECIPIENT)
+ .awaitSent(awaitOneMinute)
+ .sendMessage(RECIPIENT, RECIPIENT)
+ .awaitSent(awaitOneMinute);
+
+ awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 2);
+
+ with()
+ .spec(webAdminAPI)
+ .queryParam("processor", ProcessorConfiguration.STATE_TRANSPORT)
+ .queryParam("action", "reprocess")
+ .patch(MailRepositoriesRoutes.MAIL_REPOSITORIES
+ + "/" + URLEncoder.encode(CUSTOM_REPOSITORY, StandardCharsets.UTF_8.displayName())
+ + "/mails")
+ .jsonPath()
+ .get("taskId");
+
+ imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
+ .login(RECIPIENT, PASSWORD)
+ .select(IMAPMessageReader.INBOX)
+ .awaitMessage(awaitOneMinute)
+ .hasMessageCount(2);
+ awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 0);
+ }
+
+ @Test
+ public void userShouldBeAbleToAccessReprocessedMail() throws Exception {
+ messageSender.connect(LOCALHOST_IP, SMTP_PORT)
+ .sendMessage(RECIPIENT, RECIPIENT)
+ .awaitSent(awaitOneMinute)
+ .sendMessage(RECIPIENT, RECIPIENT)
+ .awaitSent(awaitOneMinute);
+
+ awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 2);
+ String key = probe.listMailKeys(CUSTOM_REPOSITORY).get(0);
+
+ with()
+ .spec(webAdminAPI)
+ .queryParam("processor", ProcessorConfiguration.STATE_TRANSPORT)
+ .queryParam("action", "reprocess")
+ .patch(MailRepositoriesRoutes.MAIL_REPOSITORIES
+ + "/" + URLEncoder.encode(CUSTOM_REPOSITORY, StandardCharsets.UTF_8.displayName())
+ + "/mails/" + key)
+ .jsonPath()
+ .get("taskId");
+
+ imapMessageReader.connect(LOCALHOST_IP, IMAP_PORT)
+ .login(RECIPIENT, PASSWORD)
+ .select(IMAPMessageReader.INBOX)
+ .awaitMessage(awaitOneMinute)
+ .hasMessageCount(1);
+ awaitOneMinute.until(() -> probe.getRepositoryMailCount(CUSTOM_REPOSITORY) == 1);
+ }
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/d5594ae7/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
----------------------------------------------------------------------
diff --git a/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java b/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
index 14a1fad..277fe6d 100644
--- a/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
+++ b/server/testing/src/main/java/org/apache/james/utils/IMAPMessageReader.java
@@ -72,12 +72,14 @@ public class IMAPMessageReader extends ExternalResource implements Closeable {
.contains("OK FETCH completed");
}
- public void awaitMessage(ConditionFactory conditionFactory) throws IOException {
+ public IMAPMessageReader awaitMessage(ConditionFactory conditionFactory) throws IOException {
conditionFactory.until(this::hasAMessage);
+ return this;
}
- public void awaitNoMessage(ConditionFactory conditionFactory) throws IOException {
+ public IMAPMessageReader awaitNoMessage(ConditionFactory conditionFactory) throws IOException {
conditionFactory.until(this::userDoesNotReceiveMessage);
+ return this;
}
public boolean hasAMessageWithFlags(String flags) throws IOException {
http://git-wip-us.apache.org/repos/asf/james-project/blob/d5594ae7/server/testing/src/main/java/org/apache/james/utils/SMTPMessageSender.java
----------------------------------------------------------------------
diff --git a/server/testing/src/main/java/org/apache/james/utils/SMTPMessageSender.java b/server/testing/src/main/java/org/apache/james/utils/SMTPMessageSender.java
index bb8d982..cc35a0a 100644
--- a/server/testing/src/main/java/org/apache/james/utils/SMTPMessageSender.java
+++ b/server/testing/src/main/java/org/apache/james/utils/SMTPMessageSender.java
@@ -164,8 +164,9 @@ public class SMTPMessageSender extends ExternalResource implements Closeable {
.contains("250 2.6.0 Message received");
}
- public void awaitSent(ConditionFactory conditionFactory) {
+ public SMTPMessageSender awaitSent(ConditionFactory conditionFactory) {
conditionFactory.until(this::messageHasBeenSent);
+ return this;
}
public void awaitSentFail(ConditionFactory conditionFactory) {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[08/10] james-project git commit: JAMES-2292 Add DELETE
/mailQueues/{mailQueueName}/mails endpoint
Posted by bt...@apache.org.
JAMES-2292 Add DELETE /mailQueues/{mailQueueName}/mails endpoint
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/f9df417d
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/f9df417d
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/f9df417d
Branch: refs/heads/master
Commit: f9df417d3679e6e5b902d916523f07c0d16dd097
Parents: a5abe35
Author: Antoine Duprat <ad...@linagora.com>
Authored: Wed Jan 24 14:52:04 2018 +0100
Committer: benwa <bt...@linagora.com>
Committed: Fri Jan 26 08:12:21 2018 +0700
----------------------------------------------------------------------
.../webadmin/webadmin-mailqueue/pom.xml | 4 +
.../james/webadmin/routes/MailQueueRoutes.java | 118 +++++++++++-
.../webadmin/routes/MailQueueRoutesTest.java | 183 +++++++++++++++++++
3 files changed, 304 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9df417d/server/protocols/webadmin/webadmin-mailqueue/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailqueue/pom.xml b/server/protocols/webadmin/webadmin-mailqueue/pom.xml
index 92402e5..6e4cfd1 100644
--- a/server/protocols/webadmin/webadmin-mailqueue/pom.xml
+++ b/server/protocols/webadmin/webadmin-mailqueue/pom.xml
@@ -56,6 +56,10 @@
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
+ <artifactId>james-server-task</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
<artifactId>james-server-webadmin-core</artifactId>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9df417d/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/routes/MailQueueRoutes.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/routes/MailQueueRoutes.java b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/routes/MailQueueRoutes.java
index 58a5576..933bc38 100644
--- a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/routes/MailQueueRoutes.java
+++ b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/routes/MailQueueRoutes.java
@@ -25,15 +25,19 @@ import java.util.List;
import java.util.Optional;
import javax.inject.Inject;
+import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
+import org.apache.james.core.MailAddress;
import org.apache.james.queue.api.MailQueue.MailQueueException;
import org.apache.james.queue.api.MailQueueFactory;
import org.apache.james.queue.api.ManageableMailQueue;
+import org.apache.james.queue.api.ManageableMailQueue.Type;
import org.apache.james.util.streams.Iterators;
import org.apache.james.util.streams.Limit;
+import org.apache.james.webadmin.Constants;
import org.apache.james.webadmin.Routes;
import org.apache.james.webadmin.dto.MailQueueDTO;
import org.apache.james.webadmin.dto.MailQueueItemDTO;
@@ -45,6 +49,7 @@ import org.eclipse.jetty.http.HttpStatus;
import com.github.fge.lambdas.Throwing;
import com.github.steveash.guavate.Guavate;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.primitives.Booleans;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -54,6 +59,7 @@ import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import spark.HaltException;
import spark.Request;
+import spark.Response;
import spark.Service;
@@ -69,6 +75,10 @@ public class MailQueueRoutes implements Routes {
private static final String DELAYED_QUERY_PARAM = "delayed";
private static final String LIMIT_QUERY_PARAM = "limit";
@VisibleForTesting static final int DEFAULT_LIMIT_VALUE = 100;
+
+ private static final String SENDER_QUERY_PARAM = "sender";
+ private static final String NAME_QUERY_PARAM = "name";
+ private static final String RECIPIENT_QUERY_PARAM = "recipient";
private final MailQueueFactory<ManageableMailQueue> mailQueueFactory;
private final JsonTransformer jsonTransformer;
@@ -85,8 +95,10 @@ public class MailQueueRoutes implements Routes {
defineListQueues(service);
getMailQueue(service);
-
+
listMails(service);
+
+ deleteMails(service);
}
@GET
@@ -239,4 +251,108 @@ public class MailQueueRoutes implements Routes {
return isDelayed.map(delayed -> delayed == item.getNextDelivery().isPresent())
.orElse(true);
}
+
+ @DELETE
+ @Path("/{mailQueueName}/mails")
+ @ApiImplicitParams({
+ @ApiImplicitParam(required = true, dataType = "string", name = "mailQueueName", paramType = "path"),
+ @ApiImplicitParam(
+ required = false,
+ dataType = "MailAddress",
+ name = SENDER_QUERY_PARAM,
+ paramType = "query",
+ example = "?sender=sender@james.org",
+ value = "The sender of the mails to be deleted should be equals to this query parameter."),
+ @ApiImplicitParam(
+ required = false,
+ dataType = "String",
+ name = NAME_QUERY_PARAM,
+ paramType = "query",
+ example = "?name=mailName",
+ value = "The name of the mails to be deleted should be equals to this query parameter."),
+ @ApiImplicitParam(
+ required = false,
+ dataType = "MailAddress",
+ name = RECIPIENT_QUERY_PARAM,
+ paramType = "query",
+ example = "?recipient=recipient@james.org",
+ value = "The recipients of the mails to be deleted should contain this query parameter."),
+ })
+ @ApiOperation(
+ value = "Delete mails from the MailQueue"
+ )
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.NO_CONTENT_204, message = "OK, the request is being processed"),
+ @ApiResponse(code = HttpStatus.NOT_FOUND_404, message = "The MailQueue does not exist."),
+ @ApiResponse(code = HttpStatus.BAD_REQUEST_400, message = "Invalid request for deleting mails from the mail queue."),
+ @ApiResponse(code = HttpStatus.INTERNAL_SERVER_ERROR_500, message = "Internal server error - Something went bad on the server side.")
+ })
+ public void deleteMails(Service service) {
+ service.delete(BASE_URL + SEPARATOR + MAIL_QUEUE_NAME + MAILS,
+ (request, response) -> deleteMails(request, response));
+ }
+
+ private Object deleteMails(Request request, Response response) {
+ String mailQueueName = request.params(MAIL_QUEUE_NAME);
+ Object bodyResponse = mailQueueFactory.getQueue(mailQueueName)
+ .map(name -> deleteMails(name,
+ sender(request.queryParams(SENDER_QUERY_PARAM)),
+ name(request.queryParams(NAME_QUERY_PARAM)),
+ recipient(request.queryParams(RECIPIENT_QUERY_PARAM))))
+ .orElseThrow(
+ () -> ErrorResponder.builder()
+ .message(String.format("%s can not be found", mailQueueName))
+ .statusCode(HttpStatus.NOT_FOUND_404)
+ .type(ErrorResponder.ErrorType.NOT_FOUND)
+ .haltError());
+ response.status(HttpStatus.NO_CONTENT_204);
+ return bodyResponse;
+ }
+
+ private Optional<MailAddress> sender(String senderAsString) throws HaltException {
+ try {
+ return Optional.ofNullable(senderAsString)
+ .map(Throwing.function((String sender) -> new MailAddress(sender)).sneakyThrow());
+ } catch (Exception e) {
+ throw ErrorResponder.builder()
+ .statusCode(HttpStatus.BAD_REQUEST_400)
+ .type(ErrorType.INVALID_ARGUMENT)
+ .message("'sender' should be a mail address (i.e. sender@james.org)")
+ .cause(e)
+ .haltError();
+ }
+ }
+
+ private Optional<String> name(String nameAsString) {
+ return Optional.ofNullable(nameAsString);
+ }
+
+ private Optional<MailAddress> recipient(String recipientAsString) throws HaltException {
+ try {
+ return Optional.ofNullable(recipientAsString)
+ .map(Throwing.function((String recipient) -> new MailAddress(recipient)).sneakyThrow());
+ } catch (Exception e) {
+ throw ErrorResponder.builder()
+ .statusCode(HttpStatus.BAD_REQUEST_400)
+ .type(ErrorType.INVALID_ARGUMENT)
+ .message("'recipient' should be a mail address (i.e. recipient@james.org)")
+ .cause(e)
+ .haltError();
+ }
+ }
+
+ private Object deleteMails(ManageableMailQueue queue, Optional<MailAddress> maybeSender, Optional<String> maybeName, Optional<MailAddress> maybeRecipient) {
+ if (Booleans.countTrue(maybeSender.isPresent(), maybeName.isPresent(), maybeRecipient.isPresent()) != 1) {
+ throw ErrorResponder.builder()
+ .statusCode(HttpStatus.BAD_REQUEST_400)
+ .type(ErrorType.INVALID_ARGUMENT)
+ .message("You should provide one and only one of the query parameters 'sender', 'name' or 'recipient'.")
+ .haltError();
+ }
+
+ maybeSender.ifPresent(Throwing.consumer((MailAddress sender) -> queue.remove(Type.Sender, sender.asString())).sneakyThrow());
+ maybeName.ifPresent(Throwing.consumer((String name) -> queue.remove(Type.Name, name)).sneakyThrow());
+ maybeRecipient.ifPresent(Throwing.consumer((MailAddress recipient) -> queue.remove(Type.Recipient, recipient.asString())).sneakyThrow());
+ return Constants.EMPTY_BODY;
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/f9df417d/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/routes/MailQueueRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/routes/MailQueueRoutesTest.java b/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/routes/MailQueueRoutesTest.java
index 291c6b1..f8e69b7 100644
--- a/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/routes/MailQueueRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/routes/MailQueueRoutesTest.java
@@ -36,6 +36,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.james.core.MailAddress;
import org.apache.james.metrics.api.NoopMetricFactory;
import org.apache.james.queue.api.Mails;
+import org.apache.james.queue.api.ManageableMailQueue;
import org.apache.james.queue.api.RawMailQueueItemDecoratorFactory;
import org.apache.james.queue.memory.MemoryMailQueueFactory;
import org.apache.james.queue.memory.MemoryMailQueueFactory.MemoryMailQueue;
@@ -320,4 +321,186 @@ public class MailQueueRoutesTest {
.then()
.statusCode(HttpStatus.BAD_REQUEST_400);
}
+
+ @Test
+ public void deleteMailsShouldReturnNotFoundWhenMailQueueDoesntExist() {
+ when()
+ .delete(FIRST_QUEUE + "/mails")
+ .then()
+ .statusCode(HttpStatus.NOT_FOUND_404);
+ }
+
+ @Test
+ public void deleteMailsShouldReturnBadRequestWhenSenderIsInvalid() {
+ mailQueueFactory.createQueue(FIRST_QUEUE);
+
+ given()
+ .param("sender", "123")
+ .when()
+ .delete(FIRST_QUEUE + "/mails")
+ .then()
+ .statusCode(HttpStatus.BAD_REQUEST_400);
+ }
+
+ @Test
+ public void deleteMailsShouldReturnBadRequestWhenRecipientIsInvalid() {
+ mailQueueFactory.createQueue(FIRST_QUEUE);
+
+ given()
+ .param("recipient", "123")
+ .when()
+ .delete(FIRST_QUEUE + "/mails")
+ .then()
+ .statusCode(HttpStatus.BAD_REQUEST_400);
+ }
+
+ @Test
+ public void deleteMailsShouldReturnNoContentWhenSenderIsValid() {
+ mailQueueFactory.createQueue(FIRST_QUEUE);
+
+ given()
+ .param("sender", "sender@james.org")
+ .when()
+ .delete(FIRST_QUEUE + "/mails")
+ .then()
+ .statusCode(HttpStatus.NO_CONTENT_204);
+ }
+
+ @Test
+ public void deleteMailsShouldReturnNoContentWhenNameIsValid() {
+ mailQueueFactory.createQueue(FIRST_QUEUE);
+
+ given()
+ .param("name", "mailName")
+ .when()
+ .delete(FIRST_QUEUE + "/mails")
+ .then()
+ .statusCode(HttpStatus.NO_CONTENT_204);
+ }
+
+ @Test
+ public void deleteMailsShouldReturnNoContentWhenRecipientIsValid() {
+ mailQueueFactory.createQueue(FIRST_QUEUE);
+
+ given()
+ .param("recipient", "recipient@james.org")
+ .when()
+ .delete(FIRST_QUEUE + "/mails")
+ .then()
+ .statusCode(HttpStatus.NO_CONTENT_204);
+ }
+
+ @Test
+ public void deleteMailsShouldReturnBadRequestWhenNoQueryParameters() {
+ mailQueueFactory.createQueue(FIRST_QUEUE);
+
+ when()
+ .delete(FIRST_QUEUE + "/mails")
+ .then()
+ .statusCode(HttpStatus.BAD_REQUEST_400);
+ }
+
+ @Test
+ public void deleteMailsShouldDeleteMailsWhenSenderIsGiven() throws Exception {
+ MemoryMailQueue queue = mailQueueFactory.createQueue(FIRST_QUEUE);
+ String sender = "sender@james.org";
+ queue.enQueue(Mails.defaultMail()
+ .sender(sender)
+ .build());
+
+ given()
+ .param("sender", sender)
+ .when()
+ .delete(FIRST_QUEUE + "/mails")
+ .then()
+ .statusCode(HttpStatus.NO_CONTENT_204);
+
+ assertThat(queue.browse()).isEmpty();
+ }
+
+ @Test
+ public void deleteMailsShouldDeleteMailsWhenNameIsGiven() throws Exception {
+ MemoryMailQueue queue = mailQueueFactory.createQueue(FIRST_QUEUE);
+ String name = "mailName";
+ queue.enQueue(Mails.defaultMail()
+ .name(name)
+ .build());
+
+ given()
+ .param("name", name)
+ .when()
+ .delete(FIRST_QUEUE + "/mails")
+ .then()
+ .statusCode(HttpStatus.NO_CONTENT_204);
+
+ assertThat(queue.browse()).isEmpty();
+ }
+
+ @Test
+ public void deleteMailsShouldDeleteMailsWhenRecipientIsGiven() throws Exception {
+ MemoryMailQueue queue = mailQueueFactory.createQueue(FIRST_QUEUE);
+ String recipient = "recipient@james.org";
+ queue.enQueue(Mails.defaultMail()
+ .recipient(recipient)
+ .build());
+
+ given()
+ .param("recipient", recipient)
+ .when()
+ .delete(FIRST_QUEUE + "/mails")
+ .then()
+ .statusCode(HttpStatus.NO_CONTENT_204);
+
+ assertThat(queue.browse()).isEmpty();
+ }
+
+ @Test
+ public void deleteMailsShouldReturnBadRequestWhenAllParametersAreGiven() throws Exception {
+ mailQueueFactory.createQueue(FIRST_QUEUE);
+ given()
+ .param("sender", "sender@james.org")
+ .param("name", "mailName")
+ .param("recipient", "recipient@james.org")
+ .when()
+ .delete(FIRST_QUEUE + "/mails")
+ .then()
+ .statusCode(HttpStatus.BAD_REQUEST_400);
+ }
+
+ @Test
+ public void deleteMailsShouldReturnBadRequestWhenTwoParametersAreGiven() throws Exception {
+ mailQueueFactory.createQueue(FIRST_QUEUE);
+ given()
+ .param("sender", "sender@james.org")
+ .param("name", "mailName")
+ .when()
+ .delete(FIRST_QUEUE + "/mails")
+ .then()
+ .statusCode(HttpStatus.BAD_REQUEST_400);
+ }
+
+ @Test
+ public void deleteMailsShouldDeleteMailsWhenTheyAreMatching() throws Exception {
+ MemoryMailQueue queue = mailQueueFactory.createQueue(FIRST_QUEUE);
+ String recipient = "recipient@james.org";
+ queue.enQueue(Mails.defaultMail()
+ .recipient(recipient)
+ .build());
+ queue.enQueue(Mails.defaultMail().build());
+ queue.enQueue(Mails.defaultMail().build());
+
+ given()
+ .param("recipient", recipient)
+ .when()
+ .delete(FIRST_QUEUE + "/mails")
+ .then()
+ .statusCode(HttpStatus.NO_CONTENT_204);
+
+ MailAddress deletedRecipientMailAddress = new MailAddress(recipient);
+ assertThat(queue.browse())
+ .hasSize(2)
+ .allSatisfy((ManageableMailQueue.MailQueueItemView item) -> {
+ assertThat(item.getMail().getRecipients()).doesNotContain(deletedRecipientMailAddress);
+ });
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[06/10] james-project git commit: JAMES-2264 Correct TaskRoute test
synchronisation
Posted by bt...@apache.org.
JAMES-2264 Correct TaskRoute test synchronisation
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/35621556
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/35621556
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/35621556
Branch: refs/heads/master
Commit: 35621556c54b277edc950fa0f64d3f8444eb6ab8
Parents: d5594ae
Author: benwa <bt...@linagora.com>
Authored: Sat Jan 20 08:49:25 2018 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Jan 26 08:12:21 2018 +0700
----------------------------------------------------------------------
.../java/org/apache/james/webadmin/routes/TasksRoutesTest.java | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/35621556/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/TasksRoutesTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/TasksRoutesTest.java b/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/TasksRoutesTest.java
index ea56a6c..4317035 100644
--- a/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/TasksRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/TasksRoutesTest.java
@@ -131,12 +131,16 @@ public class TasksRoutesTest {
}
@Test
- public void listShouldReturnEmptyWhenNonMatchingStatusFilter() {
+ public void listShouldReturnEmptyWhenNonMatchingStatusFilter() throws Exception {
+ CountDownLatch inProgressLatch = new CountDownLatch(1);
taskManager.submit(() -> {
+ inProgressLatch.countDown();
await();
return Task.Result.COMPLETED;
});
+ inProgressLatch.await();
+
given()
.param("status", TaskManager.Status.WAITING.getValue())
.when()
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org