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 b5b41900577f8fcbacdb941effb8bdd23093f479
Author: Rémi Kowalski <rkowal...@linagora.com>
AuthorDate: Wed Sep 4 14:48:56 2019 +0200

    JAMES-2813 extract ClearMailQueueTaskDTO
---
 .../james/webadmin/service/ClearMailQueueTask.java | 47 ++-------------
 .../webadmin/service/ClearMailQueueTaskDTO.java    | 66 ++++++++++++++++++++++
 .../webadmin/service/ClearMailQueueTaskTest.java   |  8 +--
 3 files changed, 74 insertions(+), 47 deletions(-)

diff --git 
a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTask.java
 
b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTask.java
index 197d162..f8db79f 100644
--- 
a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTask.java
+++ 
b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTask.java
@@ -20,22 +20,15 @@
 package org.apache.james.webadmin.service;
 
 import java.util.Optional;
-import java.util.function.Function;
 
-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 org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
-
 public class ClearMailQueueTask implements Task {
 
     public static class AdditionalInformation implements 
TaskExecutionDetails.AdditionalInformation {
@@ -68,44 +61,8 @@ public class ClearMailQueueTask implements Task {
         }
     }
 
-    private static class ClearMailQueueTaskDTO implements TaskDTO {
-
-        public static ClearMailQueueTaskDTO toDTO(ClearMailQueueTask 
domainObject, String typeName) {
-            return new ClearMailQueueTaskDTO(typeName, 
domainObject.queue.getName());
-        }
-
-        private final String type;
-        private final String queue;
-
-        public ClearMailQueueTaskDTO(@JsonProperty("type") String type, 
@JsonProperty("queue") String queue) {
-            this.type = type;
-            this.queue = queue;
-        }
-
-        public ClearMailQueueTask 
fromDTO(MailQueueFactory<ManageableMailQueue> mailQueueFactory) {
-            return new 
ClearMailQueueTask(mailQueueFactory.getQueue(queue).orElseThrow(() -> new 
UnknownSerializedQueue(queue)));
-        }
-
-        @Override
-        public String getType() {
-            return type;
-        }
-
-        public String getQueue() {
-            return queue;
-        }
-    }
-
     private static final Logger LOGGER = 
LoggerFactory.getLogger(ClearMailQueueTask.class);
     public static final TaskType TYPE = TaskType.of("clear-mail-queue");
-    public static final Function<MailQueueFactory<ManageableMailQueue>, 
TaskDTOModule<ClearMailQueueTask, ClearMailQueueTaskDTO>> MODULE = 
(mailQueueFactory) ->
-        DTOModule
-            .forDomainObject(ClearMailQueueTask.class)
-            .convertToDTO(ClearMailQueueTaskDTO.class)
-            .toDomainObjectConverter(dto -> dto.fromDTO(mailQueueFactory))
-            .toDTOConverter(ClearMailQueueTaskDTO::toDTO)
-            .typeName(TYPE.asString())
-            .withFactory(TaskDTOModule::new);
 
     private final ManageableMailQueue queue;
     private final long initialCount;
@@ -137,6 +94,10 @@ public class ClearMailQueueTask implements Task {
         return Optional.of(new AdditionalInformation(queue.getName(), 
initialCount, getRemainingSize()));
     }
 
+    ManageableMailQueue getQueue() {
+        return queue;
+    }
+
     private long getRemainingSize() {
         try {
             return queue.getSize();
diff --git 
a/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTaskDTO.java
 
b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTaskDTO.java
new file mode 100644
index 0000000..aec2ed6
--- /dev/null
+++ 
b/server/protocols/webadmin/webadmin-mailqueue/src/main/java/org/apache/james/webadmin/service/ClearMailQueueTaskDTO.java
@@ -0,0 +1,66 @@
+/****************************************************************
+ * 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.function.Function;
+
+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;
+
+class ClearMailQueueTaskDTO implements TaskDTO {
+
+    public static final Function<MailQueueFactory<ManageableMailQueue>, 
TaskDTOModule<ClearMailQueueTask, ClearMailQueueTaskDTO>> MODULE = 
(mailQueueFactory) ->
+        DTOModule
+            .forDomainObject(ClearMailQueueTask.class)
+            .convertToDTO(ClearMailQueueTaskDTO.class)
+            .toDomainObjectConverter(dto -> dto.fromDTO(mailQueueFactory))
+            .toDTOConverter(ClearMailQueueTaskDTO::toDTO)
+            .typeName(ClearMailQueueTask.TYPE.asString())
+            .withFactory(TaskDTOModule::new);
+
+    public static ClearMailQueueTaskDTO toDTO(ClearMailQueueTask domainObject, 
String typeName) {
+        return new ClearMailQueueTaskDTO(typeName, 
domainObject.getQueue().getName());
+    }
+
+    private final String type;
+    private final String queue;
+
+    public ClearMailQueueTaskDTO(@JsonProperty("type") String type, 
@JsonProperty("queue") String queue) {
+        this.type = type;
+        this.queue = queue;
+    }
+
+    public ClearMailQueueTask fromDTO(MailQueueFactory<ManageableMailQueue> 
mailQueueFactory) {
+        return new 
ClearMailQueueTask(mailQueueFactory.getQueue(queue).orElseThrow(() -> new 
ClearMailQueueTask.UnknownSerializedQueue(queue)));
+    }
+
+    @Override
+    public String getType() {
+        return type;
+    }
+
+    public String getQueue() {
+        return queue;
+    }
+}
diff --git 
a/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/ClearMailQueueTaskTest.java
 
b/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/ClearMailQueueTaskTest.java
index cb2b75a..71aa869 100644
--- 
a/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/ClearMailQueueTaskTest.java
+++ 
b/server/protocols/webadmin/webadmin-mailqueue/src/test/java/org/apache/james/webadmin/service/ClearMailQueueTaskTest.java
@@ -28,9 +28,9 @@ import java.util.Optional;
 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 net.javacrumbs.jsonunit.assertj.JsonAssertions;
-import org.junit.jupiter.api.Test;
 
 class ClearMailQueueTaskTest {
 
@@ -43,7 +43,7 @@ class ClearMailQueueTaskTest {
         String queueName = "anyQueue";
         when(mockedQueue.getName()).thenReturn(queueName);
         when(mailQueueFactory.getQueue(anyString())).thenAnswer(arg -> 
Optional.of(mockedQueue));
-        JsonTaskSerializer testee = new 
JsonTaskSerializer(ClearMailQueueTask.MODULE.apply(mailQueueFactory));
+        JsonTaskSerializer testee = new 
JsonTaskSerializer(ClearMailQueueTaskDTO.MODULE.apply(mailQueueFactory));
 
         ManageableMailQueue queue = mailQueueFactory.getQueue(queueName).get();
         ClearMailQueueTask task = new ClearMailQueueTask(queue);
@@ -57,7 +57,7 @@ class ClearMailQueueTaskTest {
         String queueName = "anyQueue";
         when(mockedQueue.getName()).thenReturn(queueName);
         when(mailQueueFactory.getQueue(anyString())).thenAnswer(arg -> 
Optional.of(mockedQueue));
-        JsonTaskSerializer testee = new 
JsonTaskSerializer(ClearMailQueueTask.MODULE.apply(mailQueueFactory));
+        JsonTaskSerializer testee = new 
JsonTaskSerializer(ClearMailQueueTaskDTO.MODULE.apply(mailQueueFactory));
 
         ManageableMailQueue queue = mailQueueFactory.getQueue(queueName).get();
         ClearMailQueueTask task = new ClearMailQueueTask(queue);
@@ -68,7 +68,7 @@ class ClearMailQueueTaskTest {
     void taskShouldThrowWhenDeserializeAnUnknownQueue() throws Exception {
         MailQueueFactory<ManageableMailQueue> mailQueueFactory = 
mock(MailQueueFactory.class);
         
when(mailQueueFactory.getQueue(anyString())).thenReturn(Optional.empty());
-        JsonTaskSerializer testee = new 
JsonTaskSerializer(ClearMailQueueTask.MODULE.apply(mailQueueFactory));
+        JsonTaskSerializer testee = new 
JsonTaskSerializer(ClearMailQueueTaskDTO.MODULE.apply(mailQueueFactory));
 
         String serializedJson = "{\"type\": \"clear-mail-queue\", \"queue\": 
\"anyQueue\"}";
         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