You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/01/08 08:00:58 UTC

[39/47] james-project git commit: JAMES-2641 Remove MailboxEventDispatcher extra methods

JAMES-2641 Remove MailboxEventDispatcher extra methods

Callers should use directly the builders and call the `event` method

This transform the MailboxEventDispatcher into a useless wrapper around
the delegatingMailboxListener that is now easier to remove.


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/185810d0
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/185810d0
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/185810d0

Branch: refs/heads/master
Commit: 185810d05bdea16ada99d4e5f5f94b18c546b87c
Parents: b4d9035
Author: Benoit Tellier <bt...@linagora.com>
Authored: Mon Jan 7 11:26:31 2019 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Tue Jan 8 14:46:02 2019 +0700

----------------------------------------------------------------------
 .../mailbox/store/StoreMailboxManager.java      |  28 +++-
 .../mailbox/store/StoreMessageIdManager.java    |  35 ++++-
 .../mailbox/store/StoreMessageManager.java      |  80 +++++++---
 .../james/mailbox/store/StoreRightManager.java  |  13 +-
 .../james/mailbox/store/event/EventFactory.java |  17 +-
 .../store/event/MailboxEventDispatcher.java     | 157 +------------------
 .../quota/ListeningCurrentQuotaUpdater.java     |  28 ++--
 .../store/MessageIdManagerTestSystem.java       |   7 +-
 8 files changed, 156 insertions(+), 209 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/185810d0/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
index f86b20b..c281068 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
@@ -69,6 +69,7 @@ import org.apache.james.mailbox.model.search.MailboxQuery;
 import org.apache.james.mailbox.quota.QuotaManager;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
 import org.apache.james.mailbox.store.event.DelegatingMailboxListener;
+import org.apache.james.mailbox.store.event.EventFactory;
 import org.apache.james.mailbox.store.event.MailboxAnnotationListener;
 import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
 import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
@@ -524,7 +525,10 @@ public class StoreMailboxManager implements MailboxManager {
                         try {
                             mapper.execute(Mapper.toTransaction(() -> mailboxIds.add(mapper.save(m))));
                             // notify listeners
-                            dispatcher.mailboxAdded(mailboxSession, m);
+                            dispatcher.event(EventFactory.mailboxAdded()
+                                .mailboxSession(mailboxSession)
+                                .mailbox(m)
+                                .build());
                         } catch (MailboxExistsException e) {
                             LOGGER.info("{} mailbox was created concurrently", m.generateAssociatedPath());
                         }
@@ -568,7 +572,13 @@ public class StoreMailboxManager implements MailboxManager {
             // mailbox once we remove it
             SimpleMailbox m = new SimpleMailbox(mailbox);
             mailboxMapper.delete(mailbox);
-            dispatcher.mailboxDeleted(session, mailbox, quotaRoot, QuotaCount.count(messageCount), QuotaSize.size(totalSize));
+            dispatcher.event(EventFactory.mailboxDeleted()
+                .mailboxSession(session)
+                .mailbox(mailbox)
+                .quotaRoot(quotaRoot)
+                .quotaCount(QuotaCount.count(messageCount))
+                .quotaSize(QuotaSize.size(totalSize))
+                .build());
             return m;
         });
 
@@ -607,7 +617,12 @@ public class StoreMailboxManager implements MailboxManager {
         mailbox.setName(to.getName());
         mapper.save(mailbox);
 
-        dispatcher.mailboxRenamed(session, from, mailbox);
+        dispatcher.event(EventFactory.mailboxRenamed()
+            .mailboxSession(session)
+            .mailboxId(mailbox.getMailboxId())
+            .oldPath(from)
+            .newPath(to)
+            .build());
 
         // rename submailboxes
         MailboxPath children = new MailboxPath(from.getNamespace(), from.getUser(), from.getName() + getDelimiter() + "%");
@@ -619,7 +634,12 @@ public class StoreMailboxManager implements MailboxManager {
                 MailboxPath fromPath = new MailboxPath(children, subOriginalName);
                 sub.setName(subNewName);
                 mapper.save(sub);
-                dispatcher.mailboxRenamed(session, fromPath, sub);
+                dispatcher.event(EventFactory.mailboxRenamed()
+                    .mailboxSession(session)
+                    .mailboxId(sub.getMailboxId())
+                    .oldPath(fromPath)
+                    .newPath(sub.generateAssociatedPath())
+                    .build());
 
                 LOGGER.debug("Rename mailbox sub-mailbox {} to {}", subOriginalName, subNewName);
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/185810d0/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
index ff93e53..8554380 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageIdManager.java
@@ -51,6 +51,7 @@ import org.apache.james.mailbox.model.QuotaRoot;
 import org.apache.james.mailbox.model.UpdatedFlags;
 import org.apache.james.mailbox.quota.QuotaManager;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
+import org.apache.james.mailbox.store.event.EventFactory;
 import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
 import org.apache.james.mailbox.store.mail.MailboxMapper;
 import org.apache.james.mailbox.store.mail.MessageIdMapper;
@@ -217,8 +218,11 @@ public class StoreMessageIdManager implements MessageIdManager {
 
         MailboxMapper mailboxMapper = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession);
         for (MetadataWithMailboxId metadataWithMailboxId : metadataWithMailbox) {
-            dispatcher.expunged(mailboxSession, metadataWithMailboxId.messageMetaData,
-                mailboxMapper.findMailboxById(metadataWithMailboxId.mailboxId));
+            dispatcher.event(EventFactory.expunged()
+                .mailboxSession(mailboxSession)
+                .mailbox(mailboxMapper.findMailboxById(metadataWithMailboxId.mailboxId))
+                .addMetaData(metadataWithMailboxId.messageMetaData)
+                .build());
         }
     }
 
@@ -280,7 +284,12 @@ public class StoreMessageIdManager implements MessageIdManager {
 
         addMessageToMailboxes(mailboxMessage, messageMoves.addedMailboxIds(), mailboxSession);
         removeMessageFromMailboxes(mailboxMessage, messageMoves.removedMailboxIds(), mailboxSession);
-        dispatcher.moved(mailboxSession, messageMoves, ImmutableList.of(mailboxMessage.getMessageId()));
+
+        dispatcher.event(EventFactory.moved()
+            .session(mailboxSession)
+            .messageMoves(messageMoves)
+            .messageId(mailboxMessage.getMessageId())
+            .build());
     }
 
     private void removeMessageFromMailboxes(MailboxMessage message, Set<MailboxId> mailboxesToRemove, MailboxSession mailboxSession) throws MailboxException {
@@ -290,7 +299,11 @@ public class StoreMessageIdManager implements MessageIdManager {
 
         for (MailboxId mailboxId: mailboxesToRemove) {
             messageIdMapper.delete(message.getMessageId(), mailboxesToRemove);
-            dispatcher.expunged(mailboxSession, eventPayload, mailboxMapper.findMailboxById(mailboxId));
+            dispatcher.event(EventFactory.expunged()
+                .mailboxSession(mailboxSession)
+                .mailbox(mailboxMapper.findMailboxById(mailboxId))
+                .addMetaData(eventPayload)
+                .build());
         }
     }
 
@@ -301,7 +314,12 @@ public class StoreMessageIdManager implements MessageIdManager {
     private void dispatchFlagsChange(MailboxSession mailboxSession, MailboxId mailboxId, UpdatedFlags updatedFlags) throws MailboxException {
         if (updatedFlags.flagsChanged()) {
             Mailbox mailbox = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId);
-            dispatcher.flagsUpdated(mailboxSession, mailbox, updatedFlags);
+
+            dispatcher.event(EventFactory.flagsUpdated()
+                .mailboxSession(mailboxSession)
+                .mailbox(mailbox)
+                .updatedFlag(updatedFlags)
+                .build());
         }
     }
 
@@ -362,7 +380,12 @@ public class StoreMessageIdManager implements MessageIdManager {
                             .build())
                     .build();
             save(mailboxSession, messageIdMapper, copy);
-            dispatcher.added(mailboxSession, mailboxMapper.findMailboxById(mailboxId), copy);
+
+            dispatcher.event(EventFactory.added()
+                .mailboxSession(mailboxSession)
+                .mailbox(mailboxMapper.findMailboxById(mailboxId))
+                .addMessage(copy)
+                .build());
         }
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/185810d0/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
----------------------------------------------------------------------
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 36cb3e8..6ec668d 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
@@ -65,6 +65,7 @@ import org.apache.james.mailbox.model.SearchQuery;
 import org.apache.james.mailbox.model.UpdatedFlags;
 import org.apache.james.mailbox.quota.QuotaManager;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
+import org.apache.james.mailbox.store.event.EventFactory;
 import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
 import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.MessageMapper.FetchType;
@@ -86,10 +87,13 @@ import org.apache.james.mime4j.stream.MimeTokenStream;
 import org.apache.james.mime4j.stream.RecursionMode;
 import org.apache.james.util.BodyOffsetInputStream;
 import org.apache.james.util.IteratorWrapper;
+import org.apache.james.util.streams.Iterators;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.github.steveash.guavate.Guavate;
 import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSortedMap;
 
 /**
  * Base class for {@link org.apache.james.mailbox.MessageManager}
@@ -272,7 +276,11 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
         }
         Map<MessageUid, MessageMetaData> uids = deleteMarkedInMailbox(set, mailboxSession);
 
-        dispatcher.expunged(mailboxSession, uids, getMailboxEntity());
+        dispatcher.event(EventFactory.expunged()
+            .mailboxSession(mailboxSession)
+            .mailbox(getMailboxEntity())
+            .metaData(ImmutableSortedMap.copyOf(uids))
+            .build());
         return uids.keySet().iterator();
     }
 
@@ -414,7 +422,11 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
 
                         Mailbox mailbox = getMailboxEntity();
                         MailboxMessage copy = copyMessage(message);
-                        dispatcher.added(mailboxSession, mailbox, copy);
+                        dispatcher.event(EventFactory.added()
+                            .mailboxSession(mailboxSession)
+                            .mailbox(mailbox)
+                            .addMessage(copy)
+                            .build());
                         return new ComposedMessageId(mailbox.getMailboxId(), data.getMessageId(), data.getUid());
                     }, true);
                 }
@@ -563,25 +575,23 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
         if (!isWriteable(mailboxSession)) {
             throw new ReadOnlyException(getMailboxPath(), mailboxSession.getPathDelimiter());
         }
-        final SortedMap<MessageUid, Flags> newFlagsByUid = new TreeMap<>();
 
         trimFlags(flags, mailboxSession);
 
-        final MessageMapper messageMapper = mapperFactory.getMessageMapper(mailboxSession);
+        MessageMapper messageMapper = mapperFactory.getMessageMapper(mailboxSession);
 
         Iterator<UpdatedFlags> it = messageMapper.execute(() -> messageMapper.updateFlags(getMailboxEntity(), new FlagsUpdateCalculator(flags, flagsUpdateMode), set));
+        List<UpdatedFlags> updatedFlags = Iterators.toStream(it).collect(Guavate.toImmutableList());
 
-        final SortedMap<MessageUid, UpdatedFlags> uFlags = new TreeMap<>();
-
-        while (it.hasNext()) {
-            UpdatedFlags flag = it.next();
-            newFlagsByUid.put(flag.getUid(), flag.getNewFlags());
-            uFlags.put(flag.getUid(), flag);
-        }
-
-        dispatcher.flagsUpdated(mailboxSession, getMailboxEntity(), new ArrayList<>(uFlags.values()));
+        dispatcher.event(EventFactory.flagsUpdated()
+            .mailboxSession(mailboxSession)
+            .mailbox(getMailboxEntity())
+            .updatedFlags(updatedFlags)
+            .build());
 
-        return newFlagsByUid;
+        return updatedFlags.stream().collect(Guavate.toImmutableMap(
+            UpdatedFlags::getUid,
+            UpdatedFlags::getNewFlags));
     }
 
     /**
@@ -735,13 +745,21 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
         for (MailboxMessage message : originalRows.getEntriesSeen()) {
             messageIds.add(message.getMessageId());
         }
-        dispatcher.added(session, copiedUids, to.getMailboxEntity());
-        dispatcher.moved(session,
-            MessageMoves.builder()
+
+        dispatcher.event(EventFactory.added()
+            .mailboxSession(session)
+            .mailbox(to.getMailboxEntity())
+            .metaData(copiedUids)
+            .build());
+        dispatcher.event(EventFactory.moved()
+            .session(session)
+            .messageMoves(MessageMoves.builder()
                 .previousMailboxIds(getMailboxEntity().getMailboxId())
                 .targetMailboxIds(to.getMailboxEntity().getMailboxId(), getMailboxEntity().getMailboxId())
-                .build(),
-            messageIds.build());
+                .build())
+            .messageId(messageIds.build())
+            .build());
+
         return copiedUids;
     }
 
@@ -755,14 +773,26 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana
         for (MailboxMessage message : originalRows.getEntriesSeen()) {
             messageIds.add(message.getMessageId());
         }
-        dispatcher.added(session, moveUids, to.getMailboxEntity());
-        dispatcher.expunged(session, collectMetadata(moveResult.getOriginalMessages()), getMailboxEntity());
-        dispatcher.moved(session,
-            MessageMoves.builder()
+
+        dispatcher.event(EventFactory.added()
+            .mailboxSession(session)
+            .mailbox(to.getMailboxEntity())
+            .metaData(moveUids)
+            .build());
+        dispatcher.event(EventFactory.expunged()
+            .mailboxSession(session)
+            .mailbox(getMailboxEntity())
+            .addMetaData(moveResult.getOriginalMessages())
+            .build());
+        dispatcher.event(EventFactory.moved()
+            .messageMoves(MessageMoves.builder()
                 .previousMailboxIds(getMailboxEntity().getMailboxId())
                 .targetMailboxIds(to.getMailboxEntity().getMailboxId())
-                .build(),
-            messageIds.build());
+                .build())
+            .messageId(messageIds.build())
+            .session(session)
+            .build());
+
         return moveUids;
     }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/185810d0/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java
index b97793f..df0924c 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreRightManager.java
@@ -43,6 +43,7 @@ import org.apache.james.mailbox.model.MailboxACL.Rfc4314Rights;
 import org.apache.james.mailbox.model.MailboxACL.Right;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.store.event.EventFactory;
 import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
 import org.apache.james.mailbox.store.mail.MailboxMapper;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
@@ -138,7 +139,11 @@ public class StoreRightManager implements RightManager {
         Mailbox mailbox = mapper.findMailboxByPath(mailboxPath);
         ACLDiff aclDiff = mapper.updateACL(mailbox, mailboxACLCommand);
 
-        dispatcher.aclUpdated(session, mailboxPath, aclDiff, mailbox.getMailboxId());
+        dispatcher.event(EventFactory.aclUpdated()
+            .mailboxSession(session)
+            .mailbox(mailbox)
+            .aclDiff(aclDiff)
+            .build());
     }
 
     private void assertSharesBelongsToUserDomain(String user, ACLCommand mailboxACLCommand) throws DifferentDomainException {
@@ -216,7 +221,11 @@ public class StoreRightManager implements RightManager {
     private void setRights(MailboxACL mailboxACL, MailboxMapper mapper, Mailbox mailbox, MailboxSession session) throws MailboxException {
         ACLDiff aclDiff = mapper.setACL(mailbox, mailboxACL);
 
-        dispatcher.aclUpdated(session, mailbox.generateAssociatedPath(), aclDiff, mailbox.getMailboxId());
+        dispatcher.event(EventFactory.aclUpdated()
+            .mailboxSession(session)
+            .mailbox(mailbox)
+            .aclDiff(aclDiff)
+            .build());
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/james-project/blob/185810d0/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 e4a96e8..6dd75a9 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
@@ -20,6 +20,9 @@
 package org.apache.james.mailbox.store.event;
 
 import java.time.Instant;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.SortedMap;
 
 import org.apache.james.core.User;
 import org.apache.james.core.quota.QuotaCount;
@@ -92,7 +95,7 @@ public class EventFactory {
 
     @FunctionalInterface
     public interface RequireMetadata<T> {
-        T metaData(ImmutableSortedMap<MessageUid, MessageMetaData> metaData);
+        T metaData(SortedMap<MessageUid, MessageMetaData> metaData);
 
         default T addMetaData(MessageMetaData metaData) {
             return metaData(ImmutableSortedMap.of(metaData.getUid(), metaData));
@@ -108,6 +111,10 @@ public class EventFactory {
                 .collect(Guavate.toImmutableSortedMap(MessageMetaData::getUid)));
         }
 
+        default T addMetaData(Iterator<MessageMetaData> metaData) {
+            return addMetaData(ImmutableList.copyOf(metaData));
+        }
+
         default T addMessages(Iterable<MailboxMessage> messages) {
             return metaData(ImmutableList.copyOf(messages)
                 .stream()
@@ -197,12 +204,12 @@ public class EventFactory {
         private final MailboxSession.SessionId sessionId;
         private final ImmutableSortedMap<MessageUid, MessageMetaData> metaData;
 
-        AddedFinalStage(MailboxPath path, MailboxId mailboxId, User user, MailboxSession.SessionId sessionId, ImmutableSortedMap<MessageUid, MessageMetaData> metaData) {
+        AddedFinalStage(MailboxPath path, MailboxId mailboxId, User user, MailboxSession.SessionId sessionId, Map<MessageUid, MessageMetaData> metaData) {
             this.path = path;
             this.mailboxId = mailboxId;
             this.user = user;
             this.sessionId = sessionId;
-            this.metaData = metaData;
+            this.metaData = ImmutableSortedMap.copyOf(metaData);
         }
 
         public MailboxListener.Added build() {
@@ -223,12 +230,12 @@ public class EventFactory {
         private final MailboxSession.SessionId sessionId;
         private final ImmutableSortedMap<MessageUid, MessageMetaData> metaData;
 
-        ExpungedFinalStage(MailboxPath path, MailboxId mailboxId, User user, MailboxSession.SessionId sessionId, ImmutableSortedMap<MessageUid, MessageMetaData> metaData) {
+        ExpungedFinalStage(MailboxPath path, MailboxId mailboxId, User user, MailboxSession.SessionId sessionId, Map<MessageUid, MessageMetaData> metaData) {
             this.path = path;
             this.mailboxId = mailboxId;
             this.user = user;
             this.sessionId = sessionId;
-            this.metaData = metaData;
+            this.metaData = ImmutableSortedMap.copyOf(metaData);
         }
 
         public MailboxListener.Expunged build() {

http://git-wip-us.apache.org/repos/asf/james-project/blob/185810d0/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 c82bb13..d3d02ea 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
@@ -19,36 +19,10 @@
 
 package org.apache.james.mailbox.store.event;
 
-import java.time.Instant;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.SortedMap;
-
 import javax.inject.Inject;
 
-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.Event;
 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;
-import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.model.MessageId;
-import org.apache.james.mailbox.model.MessageMetaData;
-import org.apache.james.mailbox.model.MessageMoves;
-import org.apache.james.mailbox.model.Quota;
-import org.apache.james.mailbox.model.QuotaRoot;
-import org.apache.james.mailbox.model.UpdatedFlags;
-import org.apache.james.mailbox.store.mail.model.Mailbox;
-import org.apache.james.mailbox.store.mail.model.MailboxMessage;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSortedMap;
 
 /**
  * Helper class to dispatch {@link org.apache.james.mailbox.Event}'s to registerend MailboxListener
@@ -60,136 +34,7 @@ public class MailboxEventDispatcher {
     public MailboxEventDispatcher(DelegatingMailboxListener delegatingMailboxListener) {
         this.listener = delegatingMailboxListener;
     }
-
-    /**
-     * Should get called when a new message was added to a Mailbox. All
-     * registered MailboxListener will get triggered then
-     *
-     * @param session The mailbox session
-     * @param uids Sorted map with uids and message meta data
-     * @param mailbox The mailbox
-     */
-    public void added(MailboxSession session, SortedMap<MessageUid, MessageMetaData> uids, Mailbox mailbox) {
-        event(EventFactory.added()
-            .mailboxSession(session)
-            .mailbox(mailbox)
-            .addMetaData(uids.values())
-            .build());
-    }
-
-    public void added(MailboxSession session, Mailbox mailbox, MailboxMessage mailboxMessage) {
-        MessageMetaData messageMetaData = mailboxMessage.metaData();
-        SortedMap<MessageUid, MessageMetaData> metaDataMap = ImmutableSortedMap.<MessageUid, MessageMetaData>naturalOrder()
-                .put(messageMetaData.getUid(), messageMetaData)
-                .build();
-        added(session, metaDataMap, mailbox);
-    }
-
-    public void added(MailboxSession session, MessageMetaData messageMetaData, Mailbox mailbox) {
-        SortedMap<MessageUid, MessageMetaData> metaDataMap = ImmutableSortedMap.<MessageUid, MessageMetaData>naturalOrder()
-            .put(messageMetaData.getUid(), messageMetaData)
-            .build();
-        added(session, metaDataMap, mailbox);
-    }
-
-    /**
-     * Should get called when a message was expunged from a Mailbox. All
-     * registered MailboxListener will get triggered then
-     *
-     * @param session The mailbox session
-     * @param uids Sorted map with uids and message meta data
-     * @param mailbox The mailbox
-     */
-    public void expunged(MailboxSession session,  Map<MessageUid, MessageMetaData> uids, Mailbox mailbox) {
-        event(EventFactory.expunged()
-            .mailboxSession(session)
-            .mailbox(mailbox)
-            .addMetaData(uids.values())
-            .build());
-    }
-
-    public void expunged(MailboxSession session,  MessageMetaData messageMetaData, Mailbox mailbox) {
-        Map<MessageUid, MessageMetaData> metaDataMap = ImmutableMap.<MessageUid, MessageMetaData>builder()
-            .put(messageMetaData.getUid(), messageMetaData)
-            .build();
-        expunged(session, metaDataMap, mailbox);
-    }
-
-    /**
-     * Should get called when the message flags were update in a Mailbox. All
-     * registered MailboxListener will get triggered then
-     */
-    public void flagsUpdated(MailboxSession session, Mailbox mailbox, List<UpdatedFlags> uflags) {
-        event(EventFactory.flagsUpdated()
-            .mailboxSession(session)
-            .mailbox(mailbox)
-            .updatedFlags(uflags)
-            .build());
-    }
-
-    public void flagsUpdated(MailboxSession session, Mailbox mailbox, UpdatedFlags uflags) {
-        flagsUpdated(session, mailbox, ImmutableList.of(uflags));
-    }
-
-    /**
-     * Should get called when a Mailbox was renamed. All registered
-     * MailboxListener will get triggered then
-     */
-    public void mailboxRenamed(MailboxSession session, MailboxPath from, Mailbox to) {
-        event(EventFactory.mailboxRenamed()
-            .mailboxSession(session)
-            .mailboxId(to.getMailboxId())
-            .oldPath(from)
-            .newPath(to.generateAssociatedPath())
-            .build());
-    }
-
-    /**
-     * Should get called when a Mailbox was deleted. All registered
-     * MailboxListener will get triggered then
-     */
-    public void mailboxDeleted(MailboxSession session, Mailbox mailbox, QuotaRoot quotaRoot, QuotaCount deletedMessageCount, QuotaSize totalDeletedSize) {
-        event(EventFactory.mailboxDeleted()
-            .mailboxSession(session)
-            .mailbox(mailbox)
-            .quotaRoot(quotaRoot)
-            .quotaCount(deletedMessageCount)
-            .quotaSize(totalDeletedSize)
-            .build());
-    }
-
-    /**
-     * Should get called when a Mailbox was added. All registered
-     * MailboxListener will get triggered then
-     */
-    public void mailboxAdded(MailboxSession session, Mailbox mailbox) {
-        event(EventFactory.mailboxAdded()
-            .mailboxSession(session)
-            .mailbox(mailbox)
-            .build());
-    }
-
-    public void aclUpdated(MailboxSession session, MailboxPath mailboxPath, ACLDiff aclDiff, MailboxId mailboxId) {
-        event(EventFactory.aclUpdated()
-            .mailboxSession(session)
-            .mailboxId(mailboxId)
-            .mailboxPath(mailboxPath)
-            .aclDiff(aclDiff)
-            .build());
-    }
-
-    public void moved(MailboxSession session, MessageMoves messageMoves, Collection<MessageId> messageIds) {
-        event(EventFactory.moved()
-            .session(session)
-            .messageMoves(messageMoves)
-            .messageId(messageIds)
-            .build());
-    }
-
-    public void quota(User user, QuotaRoot quotaRoot, Quota<QuotaCount> countQuota, Quota<QuotaSize> sizeQuota) {
-        event(new MailboxListener.QuotaUsageUpdatedEvent(user, quotaRoot, countQuota, sizeQuota, Instant.now()));
-    }
-
+    
     public void event(Event event) {
         listener.event(event);
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/185810d0/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java
index a3519b8..baa33fe 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java
@@ -18,6 +18,7 @@
  ****************************************************************/
 package org.apache.james.mailbox.store.quota;
 
+import java.time.Instant;
 import java.util.Collection;
 
 import javax.inject.Inject;
@@ -29,6 +30,7 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.QuotaRoot;
 import org.apache.james.mailbox.quota.QuotaManager;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
+import org.apache.james.mailbox.store.event.EventFactory;
 import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -87,11 +89,14 @@ public class ListeningCurrentQuotaUpdater implements MailboxListener, QuotaUpdat
         if (addedCount != 0 && addedSize != 0) {
             currentQuotaManager.decrease(quotaRoot, addedCount, addedSize);
         }
-        dispatcher.quota(
-            expunged.getUser(),
-            quotaRoot,
-            quotaManager.getMessageQuota(quotaRoot),
-            quotaManager.getStorageQuota(quotaRoot));
+        dispatcher.event(
+            EventFactory.quotaUpdated()
+                .user(expunged.getUser())
+                .quotaRoot(quotaRoot)
+                .quotaCount(quotaManager.getMessageQuota(quotaRoot))
+                .quotaSize(quotaManager.getStorageQuota(quotaRoot))
+                .instant(Instant.now())
+                .build());
     }
 
     private void handleAddedEvent(Added added, QuotaRoot quotaRoot) throws MailboxException {
@@ -105,11 +110,14 @@ public class ListeningCurrentQuotaUpdater implements MailboxListener, QuotaUpdat
         if (addedCount != 0 && addedSize != 0) {
             currentQuotaManager.increase(quotaRoot, addedCount, addedSize);
         }
-        dispatcher.quota(
-            added.getUser(),
-            quotaRoot,
-            quotaManager.getMessageQuota(quotaRoot),
-            quotaManager.getStorageQuota(quotaRoot));
+        dispatcher.event(
+            EventFactory.quotaUpdated()
+                .user(added.getUser())
+                .quotaRoot(quotaRoot)
+                .quotaCount(quotaManager.getMessageQuota(quotaRoot))
+                .quotaSize(quotaManager.getStorageQuota(quotaRoot))
+                .instant(Instant.now())
+                .build());
     }
 
     private void handleMailboxDeletionEvent(MailboxDeletion mailboxDeletionEvent) throws MailboxException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/185810d0/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageIdManagerTestSystem.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageIdManagerTestSystem.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageIdManagerTestSystem.java
index f195e92..0e549fe 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageIdManagerTestSystem.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageIdManagerTestSystem.java
@@ -33,6 +33,7 @@ import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageId;
+import org.apache.james.mailbox.store.event.EventFactory;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
@@ -81,7 +82,11 @@ public class MessageIdManagerTestSystem {
             Mailbox mailbox = mapperFactory.getMailboxMapper(mailboxSession).findMailboxById(mailboxId);
             MailboxMessage message = createMessage(mailboxId, flags, messageId, uid);
             mapperFactory.getMessageMapper(mailboxSession).add(mailbox, message);
-            mailboxManager.getEventDispatcher().added(mailboxSession, message.metaData(), mailbox);
+            mailboxManager.getEventDispatcher().event(EventFactory.added()
+                .mailboxSession(mailboxSession)
+                .mailbox(mailbox)
+                .addMessage(message)
+                .build());
             return messageId;
         } catch (Exception e) {
             throw new RuntimeException(e);


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org