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 48daa66b16c1e62fd7cb4b2d3fb584dd9fdd787f Author: Benoit Tellier <[email protected]> AuthorDate: Fri Apr 17 14:43:07 2020 +0700 JAMES-3148 Readability enhencements: method rename and extraction --- .../mailbox/cassandra/DeleteMessageListener.java | 46 +++++++++++++--------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/DeleteMessageListener.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/DeleteMessageListener.java index ce1a3ce..53b1d2e 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/DeleteMessageListener.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/DeleteMessageListener.java @@ -123,12 +123,7 @@ public class DeleteMessageListener implements MailboxListener.GroupMailboxListen if (event instanceof Expunged) { Expunged expunged = (Expunged) event; - Flux.fromIterable(expunged.getExpunged() - .values()) - .map(MessageMetaData::getMessageId) - .map(CassandraMessageId.class::cast) - .concatMap(this::handleDeletion) - .then() + handleMessageDeletion(expunged) .block(); } if (event instanceof MailboxDeletion) { @@ -136,28 +131,41 @@ public class DeleteMessageListener implements MailboxListener.GroupMailboxListen CassandraId mailboxId = (CassandraId) mailboxDeletion.getMailboxId(); - messageIdDAO.retrieveMessages(mailboxId, MessageRange.all()) - .map(ComposedMessageIdWithMetaData::getComposedMessageId) - .concatMap(metadata -> handleDeletion((CassandraMessageId) metadata.getMessageId(), mailboxId) - .then(imapUidDAO.delete((CassandraMessageId) metadata.getMessageId(), mailboxId)) - .then(messageIdDAO.delete(mailboxId, metadata.getUid()))) - .then(deleteAcl(mailboxId)) - .then(applicableFlagDAO.delete(mailboxId)) - .then(firstUnseenDAO.removeAll(mailboxId)) - .then(deletedMessageDAO.removeAll(mailboxId)) - .then(counterDAO.delete(mailboxId)) - .then(recentsDAO.delete(mailboxId)) + handleMailboxDeletion(mailboxId) .block(); } } + private Mono<Void> handleMailboxDeletion(CassandraId mailboxId) { + return messageIdDAO.retrieveMessages(mailboxId, MessageRange.all()) + .map(ComposedMessageIdWithMetaData::getComposedMessageId) + .concatMap(metadata -> handleMessageDeletionAsPartOfMailboxDeletion((CassandraMessageId) metadata.getMessageId(), mailboxId) + .then(imapUidDAO.delete((CassandraMessageId) metadata.getMessageId(), mailboxId)) + .then(messageIdDAO.delete(mailboxId, metadata.getUid()))) + .then(deleteAcl(mailboxId)) + .then(applicableFlagDAO.delete(mailboxId)) + .then(firstUnseenDAO.removeAll(mailboxId)) + .then(deletedMessageDAO.removeAll(mailboxId)) + .then(counterDAO.delete(mailboxId)) + .then(recentsDAO.delete(mailboxId)); + } + + private Mono<Void> handleMessageDeletion(Expunged expunged) { + return Flux.fromIterable(expunged.getExpunged() + .values()) + .map(MessageMetaData::getMessageId) + .map(CassandraMessageId.class::cast) + .concatMap(this::handleMessageDeletion) + .then(); + } + private Mono<Void> deleteAcl(CassandraId mailboxId) { return aclMapper.getACL(mailboxId) .flatMap(acl -> rightsDAO.update(mailboxId, ACLDiff.computeDiff(acl, MailboxACL.EMPTY))) .then(aclMapper.delete(mailboxId)); } - private Mono<Void> handleDeletion(CassandraMessageId messageId) { + private Mono<Void> handleMessageDeletion(CassandraMessageId messageId) { return Mono.just(messageId) .filterWhen(this::isReferenced) .flatMap(id -> readMessage(id) @@ -166,7 +174,7 @@ public class DeleteMessageListener implements MailboxListener.GroupMailboxListen .then(messageDAO.delete(messageId))); } - private Mono<Void> handleDeletion(CassandraMessageId messageId, CassandraId excludedId) { + private Mono<Void> handleMessageDeletionAsPartOfMailboxDeletion(CassandraMessageId messageId, CassandraId excludedId) { return Mono.just(messageId) .filterWhen(id -> isReferenced(id, excludedId)) .flatMap(id -> readMessage(id) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
