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

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

commit b0c05b5de7fde5c06a7f612575aca2649cd8a536
Author: Gautier DI FOLCO <[email protected]>
AuthorDate: Tue Sep 3 18:32:06 2019 +0200

    JAMES-2813 Extract DeletedMessagesVaultExportTask
---
 .../routes/DeletedMessagesVaultExportTask.java     |  94 ++----------------
 .../routes/DeletedMessagesVaultExportTaskDTO.java  | 110 +++++++++++++++++++++
 ...edMessagesVaultExportTaskSerializationTest.java |   4 +-
 3 files changed, 122 insertions(+), 86 deletions(-)

diff --git 
a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTask.java
 
b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTask.java
index d10cc1c..59bbff1 100644
--- 
a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTask.java
+++ 
b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTask.java
@@ -22,105 +22,23 @@ package org.apache.james.webadmin.vault.routes;
 import java.io.IOException;
 import java.util.Optional;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.function.Function;
-
-import javax.inject.Inject;
-import javax.mail.internet.AddressException;
 
 import org.apache.james.core.MailAddress;
 import org.apache.james.core.User;
-import org.apache.james.json.DTOModule;
-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.apache.james.vault.dto.query.QueryDTO;
-import org.apache.james.vault.dto.query.QueryTranslator;
 import org.apache.james.vault.search.Query;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
 import com.google.common.annotations.VisibleForTesting;
 
 class DeletedMessagesVaultExportTask implements Task {
 
     static final TaskType TYPE = TaskType.of("deletedMessages/export");
 
-    public static final Function<DeletedMessagesVaultExportTask.Factory, 
TaskDTOModule<DeletedMessagesVaultExportTask, 
DeletedMessagesVaultExportTaskDTO>> MODULE = (factory) ->
-        DTOModule
-            .forDomainObject(DeletedMessagesVaultExportTask.class)
-            
.convertToDTO(DeletedMessagesVaultExportTask.DeletedMessagesVaultExportTaskDTO.class)
-            .toDomainObjectConverter(dto -> {
-                try {
-                    return factory.create(dto);
-                } catch (AddressException e) {
-                    throw new RuntimeException(e);
-                }
-            })
-            .toDTOConverter(factory::createDTO)
-            .typeName(TYPE.asString())
-            .withFactory(TaskDTOModule::new);
-
-    public static class DeletedMessagesVaultExportTaskDTO implements TaskDTO {
-
-        private final String type;
-        private final String userExportFrom;
-        private final QueryDTO exportQuery;
-        private final String exportTo;
-
-        public DeletedMessagesVaultExportTaskDTO(@JsonProperty("type") String 
type,
-                                                 
@JsonProperty("userExportFrom") String userExportFrom,
-                                                 @JsonProperty("exportQuery") 
QueryDTO exportQuery,
-                                                 @JsonProperty("exportTo") 
String exportTo) {
-            this.type = type;
-            this.userExportFrom = userExportFrom;
-            this.exportQuery = exportQuery;
-            this.exportTo = exportTo;
-        }
-
-        public String getUserExportFrom() {
-            return userExportFrom;
-        }
-
-        public QueryDTO getExportQuery() {
-            return exportQuery;
-        }
-
-        public String getExportTo() {
-            return exportTo;
-        }
-
-        public String getType() {
-            return type;
-        }
-
-    }
-
-    public static class Factory {
-
-        private final ExportService exportService;
-        private final QueryTranslator queryTranslator;
-
-        @Inject
-        public Factory(ExportService exportService, QueryTranslator 
queryTranslator) {
-            this.exportService = exportService;
-            this.queryTranslator = queryTranslator;
-        }
-
-        public DeletedMessagesVaultExportTask 
create(DeletedMessagesVaultExportTask.DeletedMessagesVaultExportTaskDTO dto) 
throws AddressException {
-            User userExportFrom = User.fromUsername(dto.userExportFrom);
-            Query exportQuery = queryTranslator.translate(dto.exportQuery);
-            MailAddress exportTo = new MailAddress(dto.exportTo);
-            return new DeletedMessagesVaultExportTask(exportService, 
userExportFrom, exportQuery, exportTo);
-        }
-
-        public 
DeletedMessagesVaultExportTask.DeletedMessagesVaultExportTaskDTO 
createDTO(DeletedMessagesVaultExportTask task, String type) {
-            return new 
DeletedMessagesVaultExportTask.DeletedMessagesVaultExportTaskDTO(type, 
task.userExportFrom.asString(), queryTranslator.toDTO(task.exportQuery), 
task.exportTo.asString());
-        }
-    }
-
     public class AdditionalInformation implements 
TaskExecutionDetails.AdditionalInformation {
 
         private final User userExportFrom;
@@ -151,7 +69,7 @@ class DeletedMessagesVaultExportTask implements Task {
     private final ExportService exportService;
     private final User userExportFrom;
     @VisibleForTesting
-    public final Query exportQuery;
+    final Query exportQuery;
     private final MailAddress exportTo;
     private final AtomicLong totalExportedMessages;
 
@@ -184,4 +102,12 @@ class DeletedMessagesVaultExportTask implements Task {
     public Optional<TaskExecutionDetails.AdditionalInformation> details() {
         return Optional.of(new AdditionalInformation(userExportFrom, exportTo, 
totalExportedMessages.get()));
     }
+
+    User getUserExportFrom() {
+        return userExportFrom;
+    }
+
+    MailAddress getExportTo() {
+        return exportTo;
+    }
 }
diff --git 
a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskDTO.java
 
b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskDTO.java
new file mode 100644
index 0000000..2c46b41
--- /dev/null
+++ 
b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskDTO.java
@@ -0,0 +1,110 @@
+/**
+ * *************************************************************
+ * 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.vault.routes;
+
+import java.util.function.Function;
+
+import javax.inject.Inject;
+import javax.mail.internet.AddressException;
+
+import org.apache.james.core.MailAddress;
+import org.apache.james.core.User;
+import org.apache.james.json.DTOModule;
+import org.apache.james.server.task.json.dto.TaskDTO;
+import org.apache.james.server.task.json.dto.TaskDTOModule;
+import org.apache.james.vault.dto.query.QueryDTO;
+import org.apache.james.vault.dto.query.QueryTranslator;
+import org.apache.james.vault.search.Query;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class DeletedMessagesVaultExportTaskDTO implements TaskDTO {
+
+    public static final Function<Factory, 
TaskDTOModule<DeletedMessagesVaultExportTask, 
DeletedMessagesVaultExportTaskDTO>> MODULE = (factory) ->
+        DTOModule
+            .forDomainObject(DeletedMessagesVaultExportTask.class)
+            .convertToDTO(DeletedMessagesVaultExportTaskDTO.class)
+            .toDomainObjectConverter(dto -> {
+                try {
+                    return factory.create(dto);
+                } catch (AddressException e) {
+                    throw new RuntimeException(e);
+                }
+            })
+            .toDTOConverter(factory::createDTO)
+            .typeName(DeletedMessagesVaultExportTask.TYPE.asString())
+            .withFactory(TaskDTOModule::new);
+
+    public static class Factory {
+
+        private final ExportService exportService;
+        private final QueryTranslator queryTranslator;
+
+        @Inject
+        public Factory(ExportService exportService, QueryTranslator 
queryTranslator) {
+            this.exportService = exportService;
+            this.queryTranslator = queryTranslator;
+        }
+
+        public DeletedMessagesVaultExportTask 
create(DeletedMessagesVaultExportTaskDTO dto) throws AddressException {
+            User userExportFrom = User.fromUsername(dto.userExportFrom);
+            Query exportQuery = queryTranslator.translate(dto.exportQuery);
+            MailAddress exportTo = new MailAddress(dto.exportTo);
+            return new DeletedMessagesVaultExportTask(exportService, 
userExportFrom, exportQuery, exportTo);
+        }
+
+        DeletedMessagesVaultExportTaskDTO 
createDTO(DeletedMessagesVaultExportTask task, String type) {
+            return new DeletedMessagesVaultExportTaskDTO(type, 
task.getUserExportFrom().asString(), queryTranslator.toDTO(task.exportQuery), 
task.getExportTo().asString());
+        }
+    }
+
+    private final String type;
+    private final String userExportFrom;
+    private final QueryDTO exportQuery;
+    private final String exportTo;
+
+    public DeletedMessagesVaultExportTaskDTO(@JsonProperty("type") String type,
+                                             @JsonProperty("userExportFrom") 
String userExportFrom,
+                                             @JsonProperty("exportQuery") 
QueryDTO exportQuery,
+                                             @JsonProperty("exportTo") String 
exportTo) {
+        this.type = type;
+        this.userExportFrom = userExportFrom;
+        this.exportQuery = exportQuery;
+        this.exportTo = exportTo;
+    }
+
+    public String getUserExportFrom() {
+        return userExportFrom;
+    }
+
+    public QueryDTO getExportQuery() {
+        return exportQuery;
+    }
+
+    public String getExportTo() {
+        return exportTo;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+}
diff --git 
a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskSerializationTest.java
 
b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskSerializationTest.java
index 86f60c4..5bd8648 100644
--- 
a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskSerializationTest.java
+++ 
b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultExportTaskSerializationTest.java
@@ -66,8 +66,8 @@ class DeletedMessagesVaultExportTaskSerializationTest {
     @BeforeEach
     void setUp() {
         exportService = mock(ExportService.class);
-        DeletedMessagesVaultExportTask.Factory factory = new 
DeletedMessagesVaultExportTask.Factory(exportService, queryTranslator);
-        taskSerializer = new 
JsonTaskSerializer(DeletedMessagesVaultExportTask.MODULE.apply(factory));
+        DeletedMessagesVaultExportTaskDTO.Factory factory = new 
DeletedMessagesVaultExportTaskDTO.Factory(exportService, queryTranslator);
+        taskSerializer = new 
JsonTaskSerializer(DeletedMessagesVaultExportTaskDTO.MODULE.apply(factory));
     }
 
     @Test


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to