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 eb28fc39917e85d43f584ffde9aae83330ffe273 Author: Benoit TELLIER <btell...@linagora.com> AuthorDate: Tue Dec 10 23:22:00 2024 +0100 [PERF] Leverage events for IMAP move --- .../james/mailbox/store/StoreMessageManager.java | 51 +++++++++++----------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java index 699974a7af..9c998cf80c 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java @@ -984,32 +984,31 @@ public class StoreMessageManager implements MessageManager { .targetMailboxIds(to.getMailboxEntity().getMailboxId()) .build(); - return Flux.concat( - eventBus.dispatch(EventFactory.added() - .randomEventId() - .mailboxSession(session) - .mailbox(to.getMailboxEntity()) - .metaData(moveUids) - .isDelivery(!IS_DELIVERY) - .isAppended(!IS_APPENDED) - .movedFrom(getId()) - .build(), - new MailboxIdRegistrationKey(to.getMailboxEntity().getMailboxId())), - eventBus.dispatch(EventFactory.expunged() - .randomEventId() - .mailboxSession(session) - .mailbox(getMailboxEntity()) - .addMetaData(moveResult.getOriginalMessages()) - .movedTo(to.getId()) - .build(), - new MailboxIdRegistrationKey(mailbox.getMailboxId())), - eventBus.dispatch(EventFactory.moved() - .messageMoves(messageMoves) - .messageId(messageIds) - .session(session) - .build(), - messageMoves.impactedMailboxIds().map(MailboxIdRegistrationKey::new).collect(ImmutableSet.toImmutableSet()))) - .then() + EventBus.EventWithRegistrationKey added = new EventBus.EventWithRegistrationKey(EventFactory.added() + .randomEventId() + .mailboxSession(session) + .mailbox(to.getMailboxEntity()) + .metaData(moveUids) + .isDelivery(!IS_DELIVERY) + .isAppended(!IS_APPENDED) + .movedFrom(getId()) + .build(), + ImmutableSet.of(new MailboxIdRegistrationKey(to.getMailboxEntity().getMailboxId()))); + EventBus.EventWithRegistrationKey expunged = new EventBus.EventWithRegistrationKey(EventFactory.expunged() + .randomEventId() + .mailboxSession(session) + .mailbox(getMailboxEntity()) + .addMetaData(moveResult.getOriginalMessages()) + .movedTo(to.getId()) + .build(), + ImmutableSet.of(new MailboxIdRegistrationKey(mailbox.getMailboxId()))); + EventBus.EventWithRegistrationKey moved = new EventBus.EventWithRegistrationKey(EventFactory.moved() + .messageMoves(messageMoves) + .messageId(messageIds) + .session(session) + .build(), + messageMoves.impactedMailboxIds().map(MailboxIdRegistrationKey::new).collect(ImmutableSet.toImmutableSet())); + return Mono.from(eventBus.dispatch(ImmutableList.of(added, expunged, moved))) .thenReturn(moveUids); }))); } --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@james.apache.org For additional commands, e-mail: notifications-h...@james.apache.org