This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit 789026e01633f057eb1228a8824413ef427a72a2
Author: RĂ©mi Kowalski <rkowal...@linagora.com>
AuthorDate: Tue Sep 3 14:52:58 2019 +0200

    JAMES-2813 extract DeleteMailsFromMailQueueTaskDTO
---
 .../service/DeleteMailsFromMailQueueTask.java      | 103 +++++----------------
 .../service/DeleteMailsFromMailQueueTaskDTO.java   |  84 +++++++++++++++++
 .../service/DeleteMailsFromMailQueueTaskTest.java  |  14 +--
 3 files changed, 113 insertions(+), 88 deletions(-)

diff --git 
a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTask.java
 
b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTask.java
index bf41ea8..9800b5a 100644
--- 
a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTask.java
+++ 
b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTask.java
@@ -20,21 +20,15 @@
 package org.apache.james.webadmin.service;
 
 import java.util.Optional;
-import java.util.function.Function;
 import java.util.function.Supplier;
 
 import org.apache.james.core.MailAddress;
-import org.apache.james.json.DTOModule;
 import org.apache.james.queue.api.MailQueue;
-import org.apache.james.queue.api.MailQueueFactory;
 import org.apache.james.queue.api.ManageableMailQueue;
-import org.apache.james.server.task.json.dto.TaskDTO;
-import org.apache.james.server.task.json.dto.TaskDTOModule;
 import org.apache.james.task.Task;
 import org.apache.james.task.TaskExecutionDetails;
 import org.apache.james.task.TaskType;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import com.github.fge.lambdas.Throwing;
 import com.google.common.base.Preconditions;
 import com.google.common.primitives.Booleans;
@@ -93,76 +87,7 @@ public class DeleteMailsFromMailQueueTask implements Task {
         }
     }
 
-    private static class DeleteMailsFromMailQueueTaskDTO implements TaskDTO {
-
-        public static DeleteMailsFromMailQueueTaskDTO 
toDTO(DeleteMailsFromMailQueueTask domainObject, String typeName) {
-            return new DeleteMailsFromMailQueueTaskDTO(
-                typeName,
-                domainObject.queue.getName(),
-                domainObject.maybeSender.map(MailAddress::asString),
-                domainObject.maybeName,
-                domainObject.maybeRecipient.map(MailAddress::asString)
-            );
-        }
-
-        private final String type;
-        private final String queue;
-        private final Optional<String> sender;
-        private final Optional<String> name;
-        private final Optional<String> recipient;
-
-        public DeleteMailsFromMailQueueTaskDTO(@JsonProperty("type") String 
type,
-                                               @JsonProperty("queue") String 
queue,
-                                               @JsonProperty("sender") 
Optional<String> sender,
-                                               @JsonProperty("name") 
Optional<String> name,
-                                               @JsonProperty("recipient") 
Optional<String> recipient) {
-            this.type = type;
-            this.queue = queue;
-            this.sender = sender;
-            this.name = name;
-            this.recipient = recipient;
-        }
-
-        public DeleteMailsFromMailQueueTask 
fromDTO(MailQueueFactory<ManageableMailQueue> mailQueueFactory) {
-            return new DeleteMailsFromMailQueueTask(
-                    mailQueueFactory.getQueue(queue).orElseThrow(() -> new 
UnknownSerializedQueue(queue)),
-                    sender.map(Throwing.<String, 
MailAddress>function(MailAddress::new).sneakyThrow()),
-                    name,
-                    recipient.map(Throwing.<String, 
MailAddress>function(MailAddress::new).sneakyThrow())
-            );
-        }
-
-        @Override
-        public String getType() {
-            return type;
-        }
-
-        public String getQueue() {
-            return queue;
-        }
-
-        public Optional<String> getSender() {
-            return sender;
-        }
-
-        public Optional<String> getName() {
-            return name;
-        }
-
-        public Optional<String> getRecipient() {
-            return recipient;
-        }
-    }
-
     public static final TaskType TYPE = 
TaskType.of("delete-mails-from-mail-queue");
-    public static final Function<MailQueueFactory<ManageableMailQueue>, 
TaskDTOModule<DeleteMailsFromMailQueueTask,DeleteMailsFromMailQueueTaskDTO>> 
MODULE = (mailQueueFactory) ->
-        DTOModule
-            .forDomainObject(DeleteMailsFromMailQueueTask.class)
-            .convertToDTO(DeleteMailsFromMailQueueTaskDTO.class)
-            .toDomainObjectConverter(dto -> dto.fromDTO(mailQueueFactory))
-            .toDTOConverter(DeleteMailsFromMailQueueTaskDTO::toDTO)
-            .typeName(TYPE.asString())
-            .withFactory(TaskDTOModule::new);
 
     private final ManageableMailQueue queue;
     private final Optional<MailAddress> maybeSender;
@@ -173,8 +98,8 @@ public class DeleteMailsFromMailQueueTask implements Task {
     public DeleteMailsFromMailQueueTask(ManageableMailQueue queue, 
Optional<MailAddress> maybeSender,
                                         Optional<String> maybeName, 
Optional<MailAddress> maybeRecipient) {
         Preconditions.checkArgument(
-                Booleans.countTrue(maybeSender.isPresent(), 
maybeName.isPresent(), maybeRecipient.isPresent()) == 1,
-                "You should provide one and only one of the query parameters 
'sender', 'name' or 'recipient'.");
+            Booleans.countTrue(maybeSender.isPresent(), maybeName.isPresent(), 
maybeRecipient.isPresent()) == 1,
+            "You should provide one and only one of the query parameters 
'sender', 'name' or 'recipient'.");
 
         this.queue = queue;
         this.maybeSender = maybeSender;
@@ -182,17 +107,17 @@ public class DeleteMailsFromMailQueueTask implements Task 
{
         this.maybeRecipient = maybeRecipient;
 
         additionalInformation = new AdditionalInformation(queue.getName(), 
this::getRemainingSize, maybeSender,
-                maybeName, maybeRecipient);
+            maybeName, maybeRecipient);
     }
 
     @Override
     public Result run() {
         maybeSender.ifPresent(Throwing.consumer(
-                (MailAddress sender) -> 
queue.remove(ManageableMailQueue.Type.Sender, sender.asString())));
+            (MailAddress sender) -> 
queue.remove(ManageableMailQueue.Type.Sender, sender.asString())));
         maybeName.ifPresent(Throwing.consumer(
-                (String name) -> queue.remove(ManageableMailQueue.Type.Name, 
name)));
+            (String name) -> queue.remove(ManageableMailQueue.Type.Name, 
name)));
         maybeRecipient.ifPresent(Throwing.consumer(
-                (MailAddress recipient) -> 
queue.remove(ManageableMailQueue.Type.Recipient, recipient.asString())));
+            (MailAddress recipient) -> 
queue.remove(ManageableMailQueue.Type.Recipient, recipient.asString())));
 
         return Result.COMPLETED;
     }
@@ -202,6 +127,22 @@ public class DeleteMailsFromMailQueueTask implements Task {
         return TYPE;
     }
 
+    ManageableMailQueue getQueue() {
+        return queue;
+    }
+
+    Optional<String> getMaybeName() {
+        return maybeName;
+    }
+
+    Optional<MailAddress> getMaybeRecipient() {
+        return maybeRecipient;
+    }
+
+    Optional<MailAddress> getMaybeSender() {
+        return maybeSender;
+    }
+
     @Override
     public Optional<TaskExecutionDetails.AdditionalInformation> details() {
         return Optional.of(additionalInformation);
diff --git 
a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskDTO.java
 
b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskDTO.java
new file mode 100644
index 0000000..5f5160c
--- /dev/null
+++ 
b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskDTO.java
@@ -0,0 +1,84 @@
+package org.apache.james.webadmin.service;
+
+import java.util.Optional;
+import java.util.function.Function;
+
+import org.apache.james.core.MailAddress;
+import org.apache.james.json.DTOModule;
+import org.apache.james.queue.api.MailQueueFactory;
+import org.apache.james.queue.api.ManageableMailQueue;
+import org.apache.james.server.task.json.dto.TaskDTO;
+import org.apache.james.server.task.json.dto.TaskDTOModule;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.github.fge.lambdas.Throwing;
+
+public class DeleteMailsFromMailQueueTaskDTO implements TaskDTO {
+
+    public static final Function<MailQueueFactory<ManageableMailQueue>, 
TaskDTOModule<DeleteMailsFromMailQueueTask, DeleteMailsFromMailQueueTaskDTO>> 
MODULE = (mailQueueFactory) ->
+        DTOModule
+            .forDomainObject(DeleteMailsFromMailQueueTask.class)
+            .convertToDTO(DeleteMailsFromMailQueueTaskDTO.class)
+            .toDomainObjectConverter(dto -> dto.fromDTO(mailQueueFactory))
+            .toDTOConverter(DeleteMailsFromMailQueueTaskDTO::toDTO)
+            .typeName(DeleteMailsFromMailQueueTask.TYPE.asString())
+            .withFactory(TaskDTOModule::new);
+
+    public static DeleteMailsFromMailQueueTaskDTO 
toDTO(DeleteMailsFromMailQueueTask domainObject, String typeName) {
+        return new DeleteMailsFromMailQueueTaskDTO(
+            typeName,
+            domainObject.getQueue().getName(),
+            domainObject.getMaybeSender().map(MailAddress::asString),
+            domainObject.getMaybeName(),
+            domainObject.getMaybeRecipient().map(MailAddress::asString)
+        );
+    }
+
+    private final String type;
+    private final String queue;
+    private final Optional<String> sender;
+    private final Optional<String> name;
+    private final Optional<String> recipient;
+
+    public DeleteMailsFromMailQueueTaskDTO(@JsonProperty("type") String type,
+                                           @JsonProperty("queue") String queue,
+                                           @JsonProperty("sender") 
Optional<String> sender,
+                                           @JsonProperty("name") 
Optional<String> name,
+                                           @JsonProperty("recipient") 
Optional<String> recipient) {
+        this.type = type;
+        this.queue = queue;
+        this.sender = sender;
+        this.name = name;
+        this.recipient = recipient;
+    }
+
+    public DeleteMailsFromMailQueueTask 
fromDTO(MailQueueFactory<ManageableMailQueue> mailQueueFactory) {
+        return new DeleteMailsFromMailQueueTask(
+            mailQueueFactory.getQueue(queue).orElseThrow(() -> new 
DeleteMailsFromMailQueueTask.UnknownSerializedQueue(queue)),
+            sender.map(Throwing.<String, 
MailAddress>function(MailAddress::new).sneakyThrow()),
+            name,
+            recipient.map(Throwing.<String, 
MailAddress>function(MailAddress::new).sneakyThrow())
+        );
+    }
+
+    @Override
+    public String getType() {
+        return type;
+    }
+
+    public String getQueue() {
+        return queue;
+    }
+
+    public Optional<String> getSender() {
+        return sender;
+    }
+
+    public Optional<String> getName() {
+        return name;
+    }
+
+    public Optional<String> getRecipient() {
+        return recipient;
+    }
+}
\ No newline at end of file
diff --git 
a/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskTest.java
 
b/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskTest.java
index e8a5750..1fad4ac 100644
--- 
a/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskTest.java
+++ 
b/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/DeleteMailsFromMailQueueTaskTest.java
@@ -26,18 +26,18 @@ import static org.mockito.Mockito.when;
 import java.util.Optional;
 import java.util.stream.Stream;
 
-import net.javacrumbs.jsonunit.assertj.JsonAssertions;
+import javax.mail.internet.AddressException;
+
 import org.apache.james.core.MailAddress;
 import org.apache.james.queue.api.MailQueueFactory;
 import org.apache.james.queue.api.ManageableMailQueue;
 import org.apache.james.server.task.json.JsonTaskSerializer;
-
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.Arguments;
 import org.junit.jupiter.params.provider.MethodSource;
 
-import javax.mail.internet.AddressException;
+import net.javacrumbs.jsonunit.assertj.JsonAssertions;
 
 class DeleteMailsFromMailQueueTaskTest {
     @ParameterizedTest
@@ -48,7 +48,7 @@ class DeleteMailsFromMailQueueTaskTest {
         String queueName = "anyQueue";
         when(mockedQueue.getName()).thenReturn(queueName);
         when(mailQueueFactory.getQueue(anyString())).thenAnswer(arg -> 
Optional.of(mockedQueue));
-        JsonTaskSerializer testee = new 
JsonTaskSerializer(DeleteMailsFromMailQueueTask.MODULE.apply(mailQueueFactory));
+        JsonTaskSerializer testee = new 
JsonTaskSerializer(DeleteMailsFromMailQueueTaskDTO.MODULE.apply(mailQueueFactory));
 
         ManageableMailQueue queue = mailQueueFactory.getQueue(queueName).get();
         DeleteMailsFromMailQueueTask task = new 
DeleteMailsFromMailQueueTask(queue, sender, name, recipient);
@@ -67,7 +67,7 @@ class DeleteMailsFromMailQueueTaskTest {
         String queueName = "anyQueue";
         when(mockedQueue.getName()).thenReturn(queueName);
         when(mailQueueFactory.getQueue(anyString())).thenAnswer(arg -> 
Optional.of(mockedQueue));
-        JsonTaskSerializer testee = new 
JsonTaskSerializer(DeleteMailsFromMailQueueTask.MODULE.apply(mailQueueFactory));
+        JsonTaskSerializer testee = new 
JsonTaskSerializer(DeleteMailsFromMailQueueTaskDTO.MODULE.apply(mailQueueFactory));
 
         ManageableMailQueue queue = mailQueueFactory.getQueue(queueName).get();
         DeleteMailsFromMailQueueTask task = new 
DeleteMailsFromMailQueueTask(queue, sender, name, recipient);
@@ -90,7 +90,7 @@ class DeleteMailsFromMailQueueTaskTest {
     void taskShouldThrowWhenDeserializeAnUnknownQueue() throws Exception {
         MailQueueFactory<ManageableMailQueue> mailQueueFactory = 
mock(MailQueueFactory.class);
         
when(mailQueueFactory.getQueue(anyString())).thenReturn(Optional.empty());
-        JsonTaskSerializer testee = new 
JsonTaskSerializer(DeleteMailsFromMailQueueTask.MODULE.apply(mailQueueFactory));
+        JsonTaskSerializer testee = new 
JsonTaskSerializer(DeleteMailsFromMailQueueTaskDTO.MODULE.apply(mailQueueFactory));
 
         String serializedJson = "{\"type\": \"delete-mails-from-mail-queue\", 
\"queue\": \"anyQueue\", \"sender\": \"a@b.c\"}";
         assertThatThrownBy(() -> testee.deserialize(serializedJson))
@@ -104,7 +104,7 @@ class DeleteMailsFromMailQueueTaskTest {
         String queueName = "anyQueue";
         when(mockedQueue.getName()).thenReturn(queueName);
         when(mailQueueFactory.getQueue(anyString())).thenAnswer(arg -> 
Optional.of(mockedQueue));
-        JsonTaskSerializer testee = new 
JsonTaskSerializer(DeleteMailsFromMailQueueTask.MODULE.apply(mailQueueFactory));
+        JsonTaskSerializer testee = new 
JsonTaskSerializer(DeleteMailsFromMailQueueTaskDTO.MODULE.apply(mailQueueFactory));
 
         String serializedJson = "{\"type\": \"delete-mails-from-mail-queue\", 
\"queue\": \"" + queueName + "\", \"sender\": \"a.b.c\"}";
         assertThatThrownBy(() -> testee.deserialize(serializedJson))


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to