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 1a6010adf56d676329cc631b2b616513fec84427 Author: Gautier DI FOLCO <[email protected]> AuthorDate: Tue Sep 3 17:12:14 2019 +0200 JAMES-2813 Extract DeletedMessagesVaultRestoreTaskDTO --- .../routes/DeletedMessagesVaultRestoreTask.java | 72 +--------------- .../routes/DeletedMessagesVaultRestoreTaskDTO.java | 95 ++++++++++++++++++++++ ...dMessagesVaultRestoreTaskSerializationTest.java | 4 +- .../WebadminApiQuerySerializationContractTest.java | 4 +- 4 files changed, 103 insertions(+), 72 deletions(-) diff --git a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTask.java b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTask.java index 75249d5..ffe95d9 100644 --- a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTask.java +++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTask.java @@ -23,90 +23,22 @@ import static org.apache.james.webadmin.vault.routes.RestoreService.RestoreResul import java.util.Optional; import java.util.concurrent.atomic.AtomicLong; -import java.util.function.Function; - -import javax.inject.Inject; import org.apache.james.core.User; -import org.apache.james.json.DTOModule; import org.apache.james.mailbox.exception.MailboxException; -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 DeletedMessagesVaultRestoreTask implements Task { static final TaskType TYPE = TaskType.of("deletedMessages/restore"); - public static final Function<DeletedMessagesVaultRestoreTask.Factory, TaskDTOModule<DeletedMessagesVaultRestoreTask, DeletedMessagesVaultRestoreTaskDTO>> MODULE = (factory) -> - DTOModule - .forDomainObject(DeletedMessagesVaultRestoreTask.class) - .convertToDTO(DeletedMessagesVaultRestoreTask.DeletedMessagesVaultRestoreTaskDTO.class) - .toDomainObjectConverter(factory::create) - .toDTOConverter(factory::createDTO) - .typeName(TYPE.asString()) - .withFactory(TaskDTOModule::new); - - public static class DeletedMessagesVaultRestoreTaskDTO implements TaskDTO { - - private final String type; - private final String userToRestore; - private final QueryDTO query; - - public DeletedMessagesVaultRestoreTaskDTO(@JsonProperty("type") String type, - @JsonProperty("userToRestore") String userToRestore, - @JsonProperty("query") QueryDTO query) { - this.type = type; - this.userToRestore = userToRestore; - this.query = query; - } - - public String getUserToRestore() { - return userToRestore; - } - - public QueryDTO getQuery() { - return query; - } - - public String getType() { - return type; - } - - } - - public static class Factory { - - private final RestoreService restoreService; - private final QueryTranslator queryTranslator; - - @Inject - public Factory(RestoreService restoreService, QueryTranslator queryTranslator) { - this.restoreService = restoreService; - this.queryTranslator = queryTranslator; - } - - public DeletedMessagesVaultRestoreTask create(DeletedMessagesVaultRestoreTask.DeletedMessagesVaultRestoreTaskDTO dto) { - User userToRestore = User.fromUsername(dto.userToRestore); - Query query = queryTranslator.translate(dto.query); - return new DeletedMessagesVaultRestoreTask(restoreService, userToRestore, query); - } - - public DeletedMessagesVaultRestoreTask.DeletedMessagesVaultRestoreTaskDTO createDTO(DeletedMessagesVaultRestoreTask task, String type) { - return new DeletedMessagesVaultRestoreTask.DeletedMessagesVaultRestoreTaskDTO(type, task.userToRestore.asString(), queryTranslator.toDTO(task.query)); - } - } - public static class AdditionalInformation implements TaskExecutionDetails.AdditionalInformation { private final User user; private final AtomicLong successfulRestoreCount; @@ -195,4 +127,8 @@ class DeletedMessagesVaultRestoreTask implements Task { public Optional<TaskExecutionDetails.AdditionalInformation> details() { return Optional.of(additionalInformation); } + + User getUserToRestore() { + return userToRestore; + } } diff --git a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskDTO.java b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskDTO.java new file mode 100644 index 0000000..2b13f11 --- /dev/null +++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/main/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskDTO.java @@ -0,0 +1,95 @@ +/** + * ************************************************************* + * 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 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 DeletedMessagesVaultRestoreTaskDTO implements TaskDTO { + + public static class Factory { + + private final RestoreService restoreService; + private final QueryTranslator queryTranslator; + + @Inject + public Factory(RestoreService restoreService, QueryTranslator queryTranslator) { + this.restoreService = restoreService; + this.queryTranslator = queryTranslator; + } + + public DeletedMessagesVaultRestoreTask create(DeletedMessagesVaultRestoreTaskDTO dto) { + User userToRestore = User.fromUsername(dto.userToRestore); + Query query = queryTranslator.translate(dto.query); + return new DeletedMessagesVaultRestoreTask(restoreService, userToRestore, query); + } + + public DeletedMessagesVaultRestoreTaskDTO createDTO(DeletedMessagesVaultRestoreTask task, String type) { + return new DeletedMessagesVaultRestoreTaskDTO(type, task.getUserToRestore().asString(), queryTranslator.toDTO(task.query)); + } + } + + public static final Function<DeletedMessagesVaultRestoreTaskDTO.Factory, TaskDTOModule<DeletedMessagesVaultRestoreTask, DeletedMessagesVaultRestoreTaskDTO>> MODULE = (factory) -> + DTOModule + .forDomainObject(DeletedMessagesVaultRestoreTask.class) + .convertToDTO(DeletedMessagesVaultRestoreTaskDTO.class) + .toDomainObjectConverter(factory::create) + .toDTOConverter(factory::createDTO) + .typeName(DeletedMessagesVaultRestoreTask.TYPE.asString()) + .withFactory(TaskDTOModule::new); + + + private final String type; + private final String userToRestore; + private final QueryDTO query; + + public DeletedMessagesVaultRestoreTaskDTO(@JsonProperty("type") String type, + @JsonProperty("userToRestore") String userToRestore, + @JsonProperty("query") QueryDTO query) { + this.type = type; + this.userToRestore = userToRestore; + this.query = query; + } + + public String getUserToRestore() { + return userToRestore; + } + + public QueryDTO getQuery() { + return query; + } + + 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/DeletedMessagesVaultRestoreTaskSerializationTest.java b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskSerializationTest.java index 48a82ec..d2bb22e 100644 --- a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskSerializationTest.java +++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/DeletedMessagesVaultRestoreTaskSerializationTest.java @@ -56,8 +56,8 @@ class DeletedMessagesVaultRestoreTaskSerializationTest { @BeforeEach void setUp() { exportService = mock(RestoreService.class); - DeletedMessagesVaultRestoreTask.Factory factory = new DeletedMessagesVaultRestoreTask.Factory(exportService, queryTranslator); - taskSerializer = new JsonTaskSerializer(DeletedMessagesVaultRestoreTask.MODULE.apply(factory)); + DeletedMessagesVaultRestoreTaskDTO.Factory factory = new DeletedMessagesVaultRestoreTaskDTO.Factory(exportService, queryTranslator); + taskSerializer = new JsonTaskSerializer(DeletedMessagesVaultRestoreTaskDTO.MODULE.apply(factory)); } @Test diff --git a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/WebadminApiQuerySerializationContractTest.java b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/WebadminApiQuerySerializationContractTest.java index 967ef88..f2e45d5 100644 --- a/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/WebadminApiQuerySerializationContractTest.java +++ b/server/protocols/webadmin/webadmin-mailbox-deleted-message-vault/src/test/java/org/apache/james/webadmin/vault/routes/WebadminApiQuerySerializationContractTest.java @@ -93,8 +93,8 @@ class WebadminApiQuerySerializationContractTest { private final static TestId.Factory mailboxIdFactory = new TestId.Factory(); private final static QueryTranslator queryTranslator = new QueryTranslator(mailboxIdFactory); private final static RestoreService restoreService = Mockito.mock(RestoreService.class); - private final static DeletedMessagesVaultRestoreTask.Factory factory = new DeletedMessagesVaultRestoreTask.Factory(restoreService, queryTranslator); - private final static JsonTaskSerializer taskSerializer = new JsonTaskSerializer(DeletedMessagesVaultRestoreTask.MODULE.apply(factory)); + private final static DeletedMessagesVaultRestoreTaskDTO.Factory factory = new DeletedMessagesVaultRestoreTaskDTO.Factory(restoreService, queryTranslator); + private final static JsonTaskSerializer taskSerializer = new JsonTaskSerializer(DeletedMessagesVaultRestoreTaskDTO.MODULE.apply(factory)); /** * Enforce that the format of the query serialized in json in the body of the request to the webadmin is stable. --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
