JAMES-2616 replace getSession() in MailboxEvent Serializing Adding getSessionId() api into Events, SelectedMailbox Listener requires sessionId from events.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c81c2ae9 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c81c2ae9 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c81c2ae9 Branch: refs/heads/master Commit: c81c2ae98b80dd1459bcf471888e5041430dc43a Parents: 9ce7667 Author: tran tien duc <dt...@linagora.com> Authored: Mon Dec 3 13:30:36 2018 +0700 Committer: Benoit Tellier <btell...@linagora.com> Committed: Fri Dec 7 07:52:51 2018 +0700 ---------------------------------------------------------------------- .../apache/james/mailbox/MailboxListener.java | 84 ++++++++++++-------- .../spamassassin/SpamAssassinListenerTest.java | 6 +- .../james/mailbox/store/event/EventFactory.java | 59 +++++++------- .../store/event/MailboxEventDispatcher.java | 16 ++-- .../mailbox/store/event/MessageMoveEvent.java | 42 ++++++++-- .../event/MailboxAnnotationListenerTest.java | 3 +- .../mailbox/store/json/EventSerializerTest.java | 0 .../processor/base/SelectedMailboxImplTest.java | 3 +- 8 files changed, 130 insertions(+), 83 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/c81c2ae9/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java ---------------------------------------------------------------------- diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java index 02c5856..c44597f 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java @@ -64,12 +64,12 @@ public interface MailboxListener { /** * Informs this listener about the given event. - * + * * @param event * not null */ void event(Event event); - + interface QuotaEvent extends Event { QuotaRoot getQuotaRoot(); } @@ -198,6 +198,7 @@ public interface MailboxListener { private final MailboxPath path; private final MailboxId mailboxId; private final User user; + private final long sessionId; public MailboxEvent(MailboxSession session, MailboxPath path, MailboxId mailboxId) { this.session = session; @@ -208,13 +209,17 @@ public interface MailboxListener { .map(MailboxSession::getUser) .map(MailboxSession.User::getCoreUser) .orElse(null); + this.sessionId = Optional.ofNullable(session) + .map(MailboxSession::getSessionId) + .orElse(0L); } - public MailboxEvent(User user, MailboxPath path, MailboxId mailboxId) { + public MailboxEvent(long sessionId, User user, MailboxPath path, MailboxId mailboxId) { this.user = user; this.path = path; this.mailboxId = mailboxId; this.session = new DummyMailboxSession(); + this.sessionId = sessionId; } /** @@ -232,7 +237,7 @@ public interface MailboxListener { /** * Gets the {@link MailboxSession} in which's context the {@link MailboxEvent} * happened - * + * * @return session */ @Override @@ -241,8 +246,19 @@ public interface MailboxListener { } /** + * Gets the sessionId in which's context the {@link MailboxEvent} + * happened + * + * @return sessionId + */ + @Override + public long getSessionId() { + return sessionId; + } + + /** * Return the path of the Mailbox this event belongs to. - * + * * @return path */ public MailboxPath getMailboxPath() { @@ -265,7 +281,7 @@ public interface MailboxListener { class MailboxDeletion extends MailboxEvent { /** - * + * */ private static final long serialVersionUID = 1L; @@ -281,9 +297,9 @@ public interface MailboxListener { this.totalDeletedSize = totalDeletedSize; } - public MailboxDeletion(User user, MailboxPath path, QuotaRoot quotaRoot, QuotaCount deletedMessageCOunt, QuotaSize totalDeletedSize, + public MailboxDeletion(long sessionId, User user, MailboxPath path, QuotaRoot quotaRoot, QuotaCount deletedMessageCOunt, QuotaSize totalDeletedSize, MailboxId mailboxId) { - super(user, path, mailboxId); + super(sessionId, user, path, mailboxId); this.quotaRoot = quotaRoot; this.deletedMessageCOunt = deletedMessageCOunt; this.totalDeletedSize = totalDeletedSize; @@ -307,7 +323,7 @@ public interface MailboxListener { */ class MailboxAdded extends MailboxEvent { /** - * + * */ private static final long serialVersionUID = 1L; @@ -315,8 +331,8 @@ public interface MailboxListener { super(session, path, mailboxId); } - public MailboxAdded(User user, MailboxPath path, MailboxId mailboxId) { - super(user, path, mailboxId); + public MailboxAdded(long sessionId, User user, MailboxPath path, MailboxId mailboxId) { + super(sessionId, user, path, mailboxId); } } @@ -325,7 +341,7 @@ public interface MailboxListener { */ abstract class MailboxRenamed extends MailboxEvent { /** - * + * */ private static final long serialVersionUID = 1L; @@ -333,13 +349,13 @@ public interface MailboxListener { super(session, path, mailboxId); } - public MailboxRenamed(User user, MailboxPath path, MailboxId mailboxId) { - super(user, path, mailboxId); + public MailboxRenamed(long sessionId, User user, MailboxPath path, MailboxId mailboxId) { + super(sessionId, user, path, mailboxId); } /** * Gets the new name for this mailbox. - * + * * @return name, not null */ public abstract MailboxPath getNewPath(); @@ -358,8 +374,8 @@ public interface MailboxListener { this.aclDiff = aclDiff; } - public MailboxACLUpdated(User user, MailboxPath path, ACLDiff aclDiff, MailboxId mailboxId) { - super(user, path, mailboxId); + public MailboxACLUpdated(long sessionId, User user, MailboxPath path, ACLDiff aclDiff, MailboxId mailboxId) { + super(sessionId, user, path, mailboxId); this.aclDiff = aclDiff; } @@ -368,14 +384,14 @@ public interface MailboxListener { } } - + /** * A mailbox event related to a message. */ abstract class MessageEvent extends MailboxEvent { /** - * + * */ private static final long serialVersionUID = 1L; @@ -383,13 +399,13 @@ public interface MailboxListener { super(session, path, mailboxId); } - public MessageEvent(User user, MailboxPath path, MailboxId mailboxId) { - super(user, path, mailboxId); + public MessageEvent(long sessionId, User user, MailboxPath path, MailboxId mailboxId) { + super(sessionId, user, path, mailboxId); } /** * Gets the message UIDs for the subject of this event. - * + * * @return message uids */ public abstract List<MessageUid> getUids(); @@ -401,8 +417,8 @@ public interface MailboxListener { super(session, path, mailboxId); } - public MetaDataHoldingEvent(User user, MailboxPath path, MailboxId mailboxId) { - super(user, path, mailboxId); + public MetaDataHoldingEvent(long sessionId, User user, MailboxPath path, MailboxId mailboxId) { + super(sessionId, user, path, mailboxId); } /** @@ -417,7 +433,7 @@ public interface MailboxListener { abstract class Expunged extends MetaDataHoldingEvent { /** - * + * */ private static final long serialVersionUID = 1L; @@ -425,13 +441,13 @@ public interface MailboxListener { super(session, path, mailboxId); } - public Expunged(User user, MailboxPath path, MailboxId mailboxId) { - super(user, path, mailboxId); + public Expunged(long sessionId, User user, MailboxPath path, MailboxId mailboxId) { + super(sessionId, user, path, mailboxId); } /** * Return the flags which were set for the added message - * + * * @return flags */ @Override @@ -444,7 +460,7 @@ public interface MailboxListener { abstract class FlagsUpdated extends MessageEvent { /** - * + * */ private static final long serialVersionUID = 1L; @@ -452,8 +468,8 @@ public interface MailboxListener { super(session, path, mailboxId); } - public FlagsUpdated(User user, MailboxPath path, MailboxId mailboxId) { - super(user, path, mailboxId); + public FlagsUpdated(long sessionId, User user, MailboxPath path, MailboxId mailboxId) { + super(sessionId, user, path, mailboxId); } public abstract List<UpdatedFlags> getUpdatedFlags(); @@ -465,7 +481,7 @@ public interface MailboxListener { abstract class Added extends MetaDataHoldingEvent { /** - * + * */ private static final long serialVersionUID = 1L; @@ -473,8 +489,8 @@ public interface MailboxListener { super(session, path, mailboxId); } - public Added(User user, MailboxPath path, MailboxId mailboxId) { - super(user, path, mailboxId); + public Added(long sessionId, User user, MailboxPath path, MailboxId mailboxId) { + super(sessionId, user, path, mailboxId); } /** http://git-wip-us.apache.org/repos/asf/james-project/blob/c81c2ae9/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java ---------------------------------------------------------------------- diff --git a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java index d1ba383..19e7755 100644 --- a/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java +++ b/mailbox/plugin/spamassassin/src/test/java/org/apache/james/mailbox/spamassassin/SpamAssassinListenerTest.java @@ -251,7 +251,8 @@ public class SpamAssassinListenerTest { SimpleMailboxMessage message = createMessage(inboxId); EventFactory eventFactory = new EventFactory(); AddedImpl addedEvent = eventFactory.new AddedImpl( - MAILBOX_SESSION, + MAILBOX_SESSION.getSessionId(), + MAILBOX_SESSION.getUser().getCoreUser(), inbox, ImmutableSortedMap.of(MessageUid.of(45), new SimpleMessageMetaData(message)), ImmutableMap.of(MessageUid.of(45), message)); @@ -266,7 +267,8 @@ public class SpamAssassinListenerTest { SimpleMailboxMessage message = createMessage(mailboxId1); EventFactory eventFactory = new EventFactory(); AddedImpl addedEvent = eventFactory.new AddedImpl( - MAILBOX_SESSION, + MAILBOX_SESSION.getSessionId(), + MAILBOX_SESSION.getUser().getCoreUser(), mailbox1, ImmutableSortedMap.of(MessageUid.of(45), new SimpleMessageMetaData(message)), ImmutableMap.of(MessageUid.of(45), message)); http://git-wip-us.apache.org/repos/asf/james-project/blob/c81c2ae9/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java index 2af8b42..483101c 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/EventFactory.java @@ -23,10 +23,10 @@ import java.util.List; import java.util.Map; import java.util.SortedMap; +import org.apache.james.core.User; import org.apache.james.core.quota.QuotaCount; import org.apache.james.core.quota.QuotaSize; import org.apache.james.mailbox.MailboxListener; -import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MessageUid; import org.apache.james.mailbox.acl.ACLDiff; import org.apache.james.mailbox.model.MailboxId; @@ -53,8 +53,8 @@ public class EventFactory { private final Map<MessageUid, MailboxMessage> availableMessages; private final Mailbox mailbox; - public AddedImpl(MailboxSession session, Mailbox mailbox, SortedMap<MessageUid, MessageMetaData> uids, Map<MessageUid, MailboxMessage> availableMessages) { - super(session, new StoreMailboxPath(mailbox), mailbox.getMailboxId()); + public AddedImpl(long sessionId, User user, Mailbox mailbox, SortedMap<MessageUid, MessageMetaData> uids, Map<MessageUid, MailboxMessage> availableMessages) { + super(sessionId, user, new StoreMailboxPath(mailbox), mailbox.getMailboxId()); this.added = ImmutableMap.copyOf(uids); this.mailbox = mailbox; this.availableMessages = ImmutableMap.copyOf(availableMessages); @@ -84,8 +84,8 @@ public class EventFactory { private final Map<MessageUid, MessageMetaData> uids; private final Mailbox mailbox; - public ExpungedImpl(MailboxSession session, Mailbox mailbox, Map<MessageUid, MessageMetaData> uids) { - super(session, new StoreMailboxPath(mailbox), mailbox.getMailboxId()); + public ExpungedImpl(long sessionId, User user, Mailbox mailbox, Map<MessageUid, MessageMetaData> uids) { + super(sessionId, user, new StoreMailboxPath(mailbox), mailbox.getMailboxId()); this.uids = ImmutableMap.copyOf(uids); this.mailbox = mailbox; } @@ -113,8 +113,8 @@ public class EventFactory { private final List<UpdatedFlags> uFlags; - public FlagsUpdatedImpl(MailboxSession session, Mailbox mailbox, List<MessageUid> uids, List<UpdatedFlags> uFlags) { - super(session, new StoreMailboxPath(mailbox), mailbox.getMailboxId()); + public FlagsUpdatedImpl(long sessionId, User user, Mailbox mailbox, List<MessageUid> uids, List<UpdatedFlags> uFlags) { + super(sessionId, user, new StoreMailboxPath(mailbox), mailbox.getMailboxId()); this.uids = ImmutableList.copyOf(uids); this.uFlags = ImmutableList.copyOf(uFlags); this.mailbox = mailbox; @@ -140,8 +140,8 @@ public class EventFactory { public final class MailboxDeletionImpl extends MailboxListener.MailboxDeletion implements MailboxAware { private final Mailbox mailbox; - public MailboxDeletionImpl(MailboxSession session, Mailbox mailbox, QuotaRoot quotaRoot, QuotaCount deletedMessageCount, QuotaSize totalDeletedSize) { - super(session, new StoreMailboxPath(mailbox), quotaRoot, deletedMessageCount, totalDeletedSize, mailbox.getMailboxId()); + public MailboxDeletionImpl(long sessionId, User user, Mailbox mailbox, QuotaRoot quotaRoot, QuotaCount deletedMessageCount, QuotaSize totalDeletedSize) { + super(sessionId, user, new StoreMailboxPath(mailbox), quotaRoot, deletedMessageCount, totalDeletedSize, mailbox.getMailboxId()); this.mailbox = mailbox; } @@ -157,8 +157,8 @@ public class EventFactory { private final Mailbox mailbox; - public MailboxAddedImpl(MailboxSession session, Mailbox mailbox) { - super(session, new StoreMailboxPath(mailbox), mailbox.getMailboxId()); + public MailboxAddedImpl(long sessionId, User user, Mailbox mailbox) { + super(sessionId, user, new StoreMailboxPath(mailbox), mailbox.getMailboxId()); this.mailbox = mailbox; } @@ -175,8 +175,8 @@ public class EventFactory { private final MailboxPath newPath; private final Mailbox newMailbox; - public MailboxRenamedEventImpl(MailboxSession session, MailboxPath oldPath, Mailbox newMailbox) { - super(session, oldPath, newMailbox.getMailboxId()); + public MailboxRenamedEventImpl(long sessionId, User user, MailboxPath oldPath, Mailbox newMailbox) { + super(sessionId, user, oldPath, newMailbox.getMailboxId()); this.newPath = new StoreMailboxPath(newMailbox); this.newMailbox = newMailbox; } @@ -192,38 +192,39 @@ public class EventFactory { } } - public MailboxListener.Added added(MailboxSession session, SortedMap<MessageUid, MessageMetaData> uids, Mailbox mailbox, Map<MessageUid, MailboxMessage> cachedMessages) { - return new AddedImpl(session, mailbox, uids, cachedMessages); + public MailboxListener.Added added(long sessionId, User user, SortedMap<MessageUid, MessageMetaData> uids, Mailbox mailbox, Map<MessageUid, MailboxMessage> cachedMessages) { + return new AddedImpl(sessionId, user, mailbox, uids, cachedMessages); } - public MailboxListener.Expunged expunged(MailboxSession session, Map<MessageUid, MessageMetaData> uids, Mailbox mailbox) { - return new ExpungedImpl(session, mailbox, uids); + public MailboxListener.Expunged expunged(long sessionId, User user, Map<MessageUid, MessageMetaData> uids, Mailbox mailbox) { + return new ExpungedImpl(sessionId, user, mailbox, uids); } - public MailboxListener.FlagsUpdated flagsUpdated(MailboxSession session, List<MessageUid> uids, Mailbox mailbox, List<UpdatedFlags> uflags) { - return new FlagsUpdatedImpl(session, mailbox, uids, uflags); + public MailboxListener.FlagsUpdated flagsUpdated(long sessionId, User user, List<MessageUid> uids, Mailbox mailbox, List<UpdatedFlags> uflags) { + return new FlagsUpdatedImpl(sessionId, user, mailbox, uids, uflags); } - public MailboxListener.MailboxRenamed mailboxRenamed(MailboxSession session, MailboxPath from, Mailbox to) { - return new MailboxRenamedEventImpl(session, from, to); + public MailboxListener.MailboxRenamed mailboxRenamed(long sessionId, User user, MailboxPath from, Mailbox to) { + return new MailboxRenamedEventImpl(sessionId, user, from, to); } - public MailboxListener.MailboxDeletion mailboxDeleted(MailboxSession session, Mailbox mailbox, QuotaRoot quotaRoot, + public MailboxListener.MailboxDeletion mailboxDeleted(long sessionId, User user, Mailbox mailbox, QuotaRoot quotaRoot, QuotaCount deletedMessageCount, QuotaSize totalDeletedSize) { - return new MailboxDeletionImpl(session, mailbox, quotaRoot, deletedMessageCount, totalDeletedSize); + return new MailboxDeletionImpl(sessionId, user, mailbox, quotaRoot, deletedMessageCount, totalDeletedSize); } - public MailboxListener.MailboxAdded mailboxAdded(MailboxSession session, Mailbox mailbox) { - return new MailboxAddedImpl(session, mailbox); + public MailboxListener.MailboxAdded mailboxAdded(long sessionId, User user, Mailbox mailbox) { + return new MailboxAddedImpl(sessionId, user, mailbox); } - public MailboxListener.MailboxACLUpdated aclUpdated(MailboxSession session, MailboxPath mailboxPath, ACLDiff aclDiff, MailboxId mailboxId) { - return new MailboxListener.MailboxACLUpdated(session, mailboxPath, aclDiff, mailboxId); + public MailboxListener.MailboxACLUpdated aclUpdated(long sessionId, User user, MailboxPath mailboxPath, ACLDiff aclDiff, MailboxId mailboxId) { + return new MailboxListener.MailboxACLUpdated(sessionId, user, mailboxPath, aclDiff, mailboxId); } - public MessageMoveEvent moved(MailboxSession session, MessageMoves messageMoves, Map<MessageUid, MailboxMessage> messages) { + public MessageMoveEvent moved(long sessionId, User user, MessageMoves messageMoves, Map<MessageUid, MailboxMessage> messages) { return MessageMoveEvent.builder() - .session(session) + .sessionId(sessionId) + .user(user) .messageMoves(messageMoves) .messages(messages) .build(); http://git-wip-us.apache.org/repos/asf/james-project/blob/c81c2ae9/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java index 206e8b7..c7df6a5 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MailboxEventDispatcher.java @@ -82,7 +82,7 @@ public class MailboxEventDispatcher { * @param mailbox The mailbox */ public void added(MailboxSession session, SortedMap<MessageUid, MessageMetaData> uids, Mailbox mailbox, Map<MessageUid, MailboxMessage> cachedMessages) { - listener.event(eventFactory.added(session, uids, mailbox, cachedMessages)); + listener.event(eventFactory.added(session.getSessionId(), session.getUser().getCoreUser(), uids, mailbox, cachedMessages)); } public void added(MailboxSession session, Mailbox mailbox, MailboxMessage mailboxMessage) { @@ -110,7 +110,7 @@ public class MailboxEventDispatcher { */ public void expunged(MailboxSession session, Map<MessageUid, MessageMetaData> uids, Mailbox mailbox) { if (!uids.isEmpty()) { - listener.event(eventFactory.expunged(session, uids, mailbox)); + listener.event(eventFactory.expunged(session.getSessionId(), session.getUser().getCoreUser(), uids, mailbox)); } } @@ -127,7 +127,7 @@ public class MailboxEventDispatcher { */ public void flagsUpdated(MailboxSession session, List<MessageUid> uids, Mailbox mailbox, List<UpdatedFlags> uflags) { if (!uids.isEmpty()) { - listener.event(eventFactory.flagsUpdated(session, uids, mailbox, uflags)); + listener.event(eventFactory.flagsUpdated(session.getSessionId(), session.getUser().getCoreUser(), uids, mailbox, uflags)); } } @@ -140,7 +140,7 @@ public class MailboxEventDispatcher { * MailboxListener will get triggered then */ public void mailboxRenamed(MailboxSession session, MailboxPath from, Mailbox to) { - listener.event(eventFactory.mailboxRenamed(session, from, to)); + listener.event(eventFactory.mailboxRenamed(session.getSessionId(), session.getUser().getCoreUser(), from, to)); } /** @@ -148,7 +148,7 @@ public class MailboxEventDispatcher { * MailboxListener will get triggered then */ public void mailboxDeleted(MailboxSession session, Mailbox mailbox, QuotaRoot quotaRoot, QuotaCount deletedMessageCount, QuotaSize totalDeletedSize) { - listener.event(eventFactory.mailboxDeleted(session, mailbox, quotaRoot, deletedMessageCount, totalDeletedSize)); + listener.event(eventFactory.mailboxDeleted(session.getSessionId(), session.getUser().getCoreUser(), mailbox, quotaRoot, deletedMessageCount, totalDeletedSize)); } /** @@ -156,15 +156,15 @@ public class MailboxEventDispatcher { * MailboxListener will get triggered then */ public void mailboxAdded(MailboxSession session, Mailbox mailbox) { - listener.event(eventFactory.mailboxAdded(session, mailbox)); + listener.event(eventFactory.mailboxAdded(session.getSessionId(), session.getUser().getCoreUser(), mailbox)); } public void aclUpdated(MailboxSession session, MailboxPath mailboxPath, ACLDiff aclDiff, MailboxId mailboxId) { - listener.event(eventFactory.aclUpdated(session, mailboxPath, aclDiff, mailboxId)); + listener.event(eventFactory.aclUpdated(session.getSessionId(), session.getUser().getCoreUser(), mailboxPath, aclDiff, mailboxId)); } public void moved(MailboxSession session, MessageMoves messageMoves, Map<MessageUid, MailboxMessage> messages) { - MessageMoveEvent moveEvent = eventFactory.moved(session, messageMoves, messages); + MessageMoveEvent moveEvent = eventFactory.moved(session.getSessionId(), session.getUser().getCoreUser(), messageMoves, messages); if (!moveEvent.isNoop()) { listener.event(moveEvent); } http://git-wip-us.apache.org/repos/asf/james-project/blob/c81c2ae9/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java index 06221c9..3526af2 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/MessageMoveEvent.java @@ -20,6 +20,7 @@ package org.apache.james.mailbox.store.event; import java.util.Map; +import org.apache.james.core.User; import org.apache.james.mailbox.Event; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MessageUid; @@ -39,7 +40,8 @@ public class MessageMoveEvent implements Event { public static class Builder { - private MailboxSession session; + private long sessionId; + private User user; private MessageMoves messageMoves; private ImmutableMap.Builder<MessageUid, MailboxMessage> messagesBuilder; @@ -48,7 +50,18 @@ public class MessageMoveEvent implements Event { } public Builder session(MailboxSession session) { - this.session = session; + this.sessionId = session.getSessionId(); + this.user = session.getUser().getCoreUser(); + return this; + } + + public Builder sessionId(long sessionId) { + this.sessionId = sessionId; + return this; + } + + public Builder user(User user) { + this.user = user; return this; } @@ -63,22 +76,25 @@ public class MessageMoveEvent implements Event { } public MessageMoveEvent build() { - Preconditions.checkNotNull(session, "'session' is mandatory"); + Preconditions.checkNotNull(sessionId, "'sessionId' is mandatory"); + Preconditions.checkNotNull(user, "'user' is mandatory"); Preconditions.checkNotNull(messageMoves, "'messageMoves' is mandatory"); ImmutableMap<MessageUid, MailboxMessage> messages = messagesBuilder.build(); - return new MessageMoveEvent(session, messageMoves, messages); + return new MessageMoveEvent(sessionId, user, messageMoves, messages); } } - private final MailboxSession session; + private final long sessionId; + private final User user; private final MessageMoves messageMoves; private final Map<MessageUid, MailboxMessage> messages; @VisibleForTesting - MessageMoveEvent(MailboxSession session, MessageMoves messageMoves, Map<MessageUid, MailboxMessage> messages) { - this.session = session; + MessageMoveEvent(long sessionId, User user, MessageMoves messageMoves, Map<MessageUid, MailboxMessage> messages) { + this.sessionId = sessionId; + this.user = user; this.messageMoves = messageMoves; this.messages = messages; } @@ -89,7 +105,17 @@ public class MessageMoveEvent implements Event { @Override public MailboxSession getSession() { - return session; + throw new UnsupportedOperationException("wiil be removed"); + } + + @Override + public User getUser() { + return user; + } + + @Override + public long getSessionId() { + return sessionId; } public MessageMoves getMessageMoves() { http://git-wip-us.apache.org/repos/asf/james-project/blob/c81c2ae9/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java index 9a62834..f9e1ec1 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/event/MailboxAnnotationListenerTest.java @@ -86,7 +86,8 @@ public class MailboxAnnotationListenerTest { QuotaRoot quotaRoot = QuotaRoot.quotaRoot("root", Optional.empty()); QuotaCount quotaCount = QuotaCount.count(123); QuotaSize quotaSize = QuotaSize.size(456); - deleteEvent = eventFactory.mailboxDeleted(mailboxSession, mailbox, quotaRoot, quotaCount, quotaSize); + deleteEvent = eventFactory.mailboxDeleted(mailboxSession.getSessionId(), mailboxSession.getUser().getCoreUser(), + mailbox, quotaRoot, quotaCount, quotaSize); when(mailboxManager.createSystemSession(deleteEvent.getUser().asString())) .thenReturn(mailboxSession); http://git-wip-us.apache.org/repos/asf/james-project/blob/c81c2ae9/mailbox/store/src/test/java/org/apache/james/mailbox/store/json/EventSerializerTest.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/json/EventSerializerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/json/EventSerializerTest.java new file mode 100644 index 0000000..e69de29 http://git-wip-us.apache.org/repos/asf/james-project/blob/c81c2ae9/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java index ef8d5b9..d05ccf3 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java @@ -36,6 +36,7 @@ import java.util.concurrent.atomic.AtomicInteger; import javax.mail.Flags; +import org.apache.james.core.User; import org.apache.james.imap.api.ImapSessionUtils; import org.apache.james.imap.api.process.ImapSession; import org.apache.james.mailbox.MailboxListener; @@ -167,6 +168,6 @@ public class SelectedMailboxImplTest { private void emitEvent(MailboxListener mailboxListener) { TreeMap<MessageUid, MessageMetaData> result = new TreeMap<>(); result.put(EMITTED_EVENT_UID, new SimpleMessageMetaData(EMITTED_EVENT_UID, MOD_SEQ, new Flags(), SIZE, new Date(), new DefaultMessageId())); - mailboxListener.event(new EventFactory().added(mock(MailboxSession.class), result, mailbox, ImmutableMap.of())); + mailboxListener.event(new EventFactory().added(0L, mock(User.class), result, mailbox, ImmutableMap.of())); } } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org