JAMES-2641 Introduce GroupMailboxListener That is mailboxListener carrying their default execution group around.
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/0a3b38ab Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/0a3b38ab Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/0a3b38ab Branch: refs/heads/master Commit: 0a3b38abea5ee8b030a6973ec812ee4fe5c1790c Parents: 8cf25c7 Author: Benoit Tellier <btell...@linagora.com> Authored: Thu Jan 10 10:49:06 2019 +0700 Committer: Benoit Tellier <btell...@linagora.com> Committed: Thu Jan 17 10:23:41 2019 +0700 ---------------------------------------------------------------------- .../java/org/apache/james/mailbox/MailboxListener.java | 5 +++++ .../org/apache/james/mailbox/util/EventCollector.java | 11 ++++++++++- .../caching/CacheInvalidatingMailboxListener.java | 10 +++++++++- .../cassandra/MailboxOperationLoggingListener.java | 11 ++++++++++- .../events/ElasticSearchListeningMessageSearchIndex.java | 8 ++++++++ .../mailbox/lucene/search/LuceneMessageSearchIndex.java | 8 ++++++++ .../listeners/QuotaThresholdCrossingListener.java | 11 ++++++++++- .../events/ElasticSearchQuotaMailboxListener.java | 10 +++++++++- .../james/mailbox/spamassassin/SpamAssassinListener.java | 8 ++++++++ .../james/mailbox/store/event/SpamEventListener.java | 2 +- .../store/quota/ListeningCurrentQuotaUpdater.java | 10 +++++++++- .../mailbox/store/search/LazyMessageSearchIndex.java | 8 ++++++++ .../store/search/ListeningMessageSearchIndex.java | 2 +- .../james/modules/mailbox/NoopMailboxListener.java | 11 ++++++++++- .../james/jmap/event/PropagateLookupRightListener.java | 11 ++++++++++- 15 files changed, 116 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/0a3b38ab/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 7eb3709..253347c 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 @@ -30,6 +30,7 @@ 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.acl.ACLDiff; +import org.apache.james.mailbox.events.Group; import org.apache.james.mailbox.model.MailboxId; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.model.MessageMetaData; @@ -48,6 +49,10 @@ import com.google.common.collect.ImmutableMap; */ public interface MailboxListener { + interface GroupMailboxListener extends MailboxListener { + Group getGroup(); + } + enum ListenerType { ONCE, EACH_NODE, http://git-wip-us.apache.org/repos/asf/james-project/blob/0a3b38ab/mailbox/api/src/test/java/org/apache/james/mailbox/util/EventCollector.java ---------------------------------------------------------------------- diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/util/EventCollector.java b/mailbox/api/src/test/java/org/apache/james/mailbox/util/EventCollector.java index 7152cf3..7b8cffa 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/util/EventCollector.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/util/EventCollector.java @@ -24,8 +24,12 @@ import java.util.List; import org.apache.james.mailbox.Event; import org.apache.james.mailbox.MailboxListener; +import org.apache.james.mailbox.events.Group; -public class EventCollector implements MailboxListener { +public class EventCollector implements MailboxListener.GroupMailboxListener { + private static class EventCollectorGroup extends Group {} + + private static final Group GROUP = new EventCollectorGroup(); private final List<Event> events = new ArrayList<>(); @@ -40,6 +44,11 @@ public class EventCollector implements MailboxListener { } @Override + public Group getGroup() { + return GROUP; + } + + @Override public ListenerType getType() { return listenerType; } http://git-wip-us.apache.org/repos/asf/james-project/blob/0a3b38ab/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CacheInvalidatingMailboxListener.java ---------------------------------------------------------------------- diff --git a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CacheInvalidatingMailboxListener.java b/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CacheInvalidatingMailboxListener.java index fdbf311..02b436b 100644 --- a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CacheInvalidatingMailboxListener.java +++ b/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CacheInvalidatingMailboxListener.java @@ -3,6 +3,7 @@ package org.apache.james.mailbox.caching; import org.apache.james.mailbox.Event; import org.apache.james.mailbox.MailboxListener; import org.apache.james.mailbox.MailboxListenerSupport; +import org.apache.james.mailbox.events.Group; import org.apache.james.mailbox.exception.MailboxException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -11,9 +12,11 @@ import org.slf4j.LoggerFactory; * A MailboxListener that invalidates the configured caches in response to Events * */ -public class CacheInvalidatingMailboxListener implements MailboxListener { +public class CacheInvalidatingMailboxListener implements MailboxListener.GroupMailboxListener { + private static class CacheInvalidatingMailboxListenerGroup extends Group {} private static final Logger LOGGER = LoggerFactory.getLogger(CacheInvalidatingMailboxListener.class); + private static final Group GROUP = new CacheInvalidatingMailboxListenerGroup(); private final MailboxByPathCache mailboxCacheByPath; private final MailboxMetadataCache mailboxMetadataCache; @@ -23,6 +26,11 @@ public class CacheInvalidatingMailboxListener implements MailboxListener { this.mailboxMetadataCache = mailboxMetadataCache; } + @Override + public Group getGroup() { + return GROUP; + } + /** * Used to register the CacheInvalidatingMailboxListener as a global listener * into the main MailboxListener http://git-wip-us.apache.org/repos/asf/james-project/blob/0a3b38ab/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/MailboxOperationLoggingListener.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/MailboxOperationLoggingListener.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/MailboxOperationLoggingListener.java index 8d8ae40..2d96b04 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/MailboxOperationLoggingListener.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/MailboxOperationLoggingListener.java @@ -25,15 +25,19 @@ import static org.apache.james.mailbox.cassandra.GhostMailbox.TYPE; import org.apache.james.mailbox.Event; import org.apache.james.mailbox.MailboxListener; +import org.apache.james.mailbox.events.Group; /** * See https://issues.apache.org/jira/browse/MAILBOX-322 for reading about the Ghost mailbox bug. * * This class logs mailboxes writes in order to give context to analyse ghost mailbox bug. */ -public class MailboxOperationLoggingListener implements MailboxListener { +public class MailboxOperationLoggingListener implements MailboxListener.GroupMailboxListener { + private static class MailboxOperationLoggingListenerGroup extends Group {} + public static final String ADDED = "Added"; public static final String REMOVED = "Removed"; + private static final Group GROUP = new MailboxOperationLoggingListenerGroup(); @Override public ListenerType getType() { @@ -41,6 +45,11 @@ public class MailboxOperationLoggingListener implements MailboxListener { } @Override + public Group getGroup() { + return GROUP; + } + + @Override public void event(Event event) { if (event instanceof MailboxRenamed) { MailboxRenamed mailboxRenamed = (MailboxRenamed) event; http://git-wip-us.apache.org/repos/asf/james-project/blob/0a3b38ab/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java ---------------------------------------------------------------------- diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java index 6d4929e..644a5ee 100644 --- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java +++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java @@ -40,6 +40,7 @@ import org.apache.james.mailbox.elasticsearch.MailboxElasticSearchConstants; import org.apache.james.mailbox.elasticsearch.json.JsonMessageConstants; import org.apache.james.mailbox.elasticsearch.json.MessageToElasticSearchJson; import org.apache.james.mailbox.elasticsearch.search.ElasticSearchSearcher; +import org.apache.james.mailbox.events.Group; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.MailboxId; import org.apache.james.mailbox.model.MessageId; @@ -59,9 +60,11 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; public class ElasticSearchListeningMessageSearchIndex extends ListeningMessageSearchIndex { + private static class ElasticSearchListeningMessageSearchIndexGroup extends Group {} private static final Logger LOGGER = LoggerFactory.getLogger(ElasticSearchListeningMessageSearchIndex.class); private static final String ID_SEPARATOR = ":"; + private static final Group GROUP = new ElasticSearchListeningMessageSearchIndexGroup(); private final ElasticSearchIndexer elasticSearchIndexer; private final ElasticSearchSearcher searcher; @@ -84,6 +87,11 @@ public class ElasticSearchListeningMessageSearchIndex extends ListeningMessageSe } @Override + public Group getGroup() { + return GROUP; + } + + @Override public EnumSet<SearchCapabilities> getSupportedCapabilities(EnumSet<MessageCapabilities> messageCapabilities) { return EnumSet.of( SearchCapabilities.MultimailboxSearch, http://git-wip-us.apache.org/repos/asf/james-project/blob/0a3b38ab/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java ---------------------------------------------------------------------- diff --git a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java index 7fffb74..8ab47aa 100644 --- a/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java +++ b/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java @@ -131,9 +131,12 @@ import com.google.common.collect.ImmutableList; * @param */ public class LuceneMessageSearchIndex extends ListeningMessageSearchIndex { + private static class LuceneMessageSearchIndexGroup extends org.apache.james.mailbox.events.Group {} + private static final Logger LOGGER = LoggerFactory.getLogger(LuceneMessageSearchIndex.class); private static final Date MAX_DATE; private static final Date MIN_DATE; + private static final org.apache.james.mailbox.events.Group GROUP = new LuceneMessageSearchIndexGroup(); static { Calendar cal = Calendar.getInstance(); @@ -399,6 +402,11 @@ public class LuceneMessageSearchIndex extends ListeningMessageSearchIndex { } @Override + public org.apache.james.mailbox.events.Group getGroup() { + return GROUP; + } + + @Override public ListenerType getType() { return ListenerType.EACH_NODE; } http://git-wip-us.apache.org/repos/asf/james-project/blob/0a3b38ab/mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdCrossingListener.java ---------------------------------------------------------------------- diff --git a/mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdCrossingListener.java b/mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdCrossingListener.java index 3f421c3..cb87c55 100644 --- a/mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdCrossingListener.java +++ b/mailbox/plugin/quota-mailing/src/main/java/org/apache/james/mailbox/quota/mailing/listeners/QuotaThresholdCrossingListener.java @@ -30,6 +30,7 @@ import org.apache.james.eventsourcing.eventstore.EventStore; import org.apache.james.filesystem.api.FileSystem; import org.apache.james.mailbox.Event; import org.apache.james.mailbox.MailboxListener; +import org.apache.james.mailbox.events.Group; import org.apache.james.mailbox.quota.mailing.QuotaMailingListenerConfiguration; import org.apache.james.mailbox.quota.mailing.commands.DetectThresholdCrossing; import org.apache.james.mailbox.quota.mailing.commands.DetectThresholdCrossingHandler; @@ -41,8 +42,11 @@ import org.slf4j.LoggerFactory; import com.google.common.collect.ImmutableSet; -public class QuotaThresholdCrossingListener implements MailboxListener { +public class QuotaThresholdCrossingListener implements MailboxListener.GroupMailboxListener { + private static class QuotaThresholdCrossingListenerGroup extends Group {} + private static final Logger LOGGER = LoggerFactory.getLogger(QuotaThresholdCrossingListener.class); + private static final Group GROUP = new QuotaThresholdCrossingListenerGroup(); private final EventSourcingSystem eventSourcingSystem; @@ -62,6 +66,11 @@ public class QuotaThresholdCrossingListener implements MailboxListener { } @Override + public Group getGroup() { + return GROUP; + } + + @Override public ListenerType getType() { return ListenerType.ONCE; } http://git-wip-us.apache.org/repos/asf/james-project/blob/0a3b38ab/mailbox/plugin/quota-search-elasticsearch/src/main/java/org/apache/james/quota/search/elasticsearch/events/ElasticSearchQuotaMailboxListener.java ---------------------------------------------------------------------- diff --git a/mailbox/plugin/quota-search-elasticsearch/src/main/java/org/apache/james/quota/search/elasticsearch/events/ElasticSearchQuotaMailboxListener.java b/mailbox/plugin/quota-search-elasticsearch/src/main/java/org/apache/james/quota/search/elasticsearch/events/ElasticSearchQuotaMailboxListener.java index f901cfd..ac9fed0 100644 --- a/mailbox/plugin/quota-search-elasticsearch/src/main/java/org/apache/james/quota/search/elasticsearch/events/ElasticSearchQuotaMailboxListener.java +++ b/mailbox/plugin/quota-search-elasticsearch/src/main/java/org/apache/james/quota/search/elasticsearch/events/ElasticSearchQuotaMailboxListener.java @@ -25,6 +25,7 @@ import org.apache.james.backends.es.ElasticSearchIndexer; import org.apache.james.core.User; import org.apache.james.mailbox.Event; import org.apache.james.mailbox.MailboxListener; +import org.apache.james.mailbox.events.Group; import org.apache.james.quota.search.elasticsearch.QuotaRatioElasticSearchConstants; import org.apache.james.quota.search.elasticsearch.json.QuotaRatioToElasticSearchJson; import org.slf4j.Logger; @@ -32,9 +33,11 @@ import org.slf4j.LoggerFactory; import com.fasterxml.jackson.core.JsonProcessingException; -public class ElasticSearchQuotaMailboxListener implements MailboxListener { +public class ElasticSearchQuotaMailboxListener implements MailboxListener.GroupMailboxListener { + private static class ElasticSearchQuotaMailboxListenerGroup extends Group {} private static final Logger LOGGER = LoggerFactory.getLogger(ElasticSearchQuotaMailboxListener.class); + private static final Group GROUP = new ElasticSearchQuotaMailboxListenerGroup(); private final ElasticSearchIndexer indexer; private final QuotaRatioToElasticSearchJson quotaRatioToElasticSearchJson; @@ -48,6 +51,11 @@ public class ElasticSearchQuotaMailboxListener implements MailboxListener { } @Override + public Group getGroup() { + return GROUP; + } + + @Override public ListenerType getType() { return ListenerType.ONCE; } http://git-wip-us.apache.org/repos/asf/james-project/blob/0a3b38ab/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java ---------------------------------------------------------------------- diff --git a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java index b6ffcd4..f64061c 100644 --- a/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java +++ b/mailbox/plugin/spamassassin/src/main/java/org/apache/james/mailbox/spamassassin/SpamAssassinListener.java @@ -30,6 +30,7 @@ import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MessageMoveEvent; import org.apache.james.mailbox.Role; import org.apache.james.mailbox.SystemMailboxesProvider; +import org.apache.james.mailbox.events.Group; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.MailboxId; import org.apache.james.mailbox.model.MessageRange; @@ -49,9 +50,11 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; public class SpamAssassinListener implements SpamEventListener { + private static class SpamAssassinListenerGroup extends Group {} private static final Logger LOGGER = LoggerFactory.getLogger(SpamAssassinListener.class); private static final int LIMIT = 1; + private static final Group GROUP = new SpamAssassinListenerGroup(); private final SpamAssassin spamAssassin; private final SystemMailboxesProvider systemMailboxesProvider; @@ -69,6 +72,11 @@ public class SpamAssassinListener implements SpamEventListener { } @Override + public Group getGroup() { + return GROUP; + } + + @Override public ListenerType getType() { return ListenerType.ONCE; } http://git-wip-us.apache.org/repos/asf/james-project/blob/0a3b38ab/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/SpamEventListener.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/SpamEventListener.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/SpamEventListener.java index 94321c7..d908a98 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/SpamEventListener.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/event/SpamEventListener.java @@ -20,6 +20,6 @@ package org.apache.james.mailbox.store.event; import org.apache.james.mailbox.MailboxListener; -public interface SpamEventListener extends MailboxListener { +public interface SpamEventListener extends MailboxListener.GroupMailboxListener { } http://git-wip-us.apache.org/repos/asf/james-project/blob/0a3b38ab/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 e00c087..c084bcd 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 @@ -26,6 +26,7 @@ import javax.inject.Inject; import org.apache.james.mailbox.Event; import org.apache.james.mailbox.MailboxListener; import org.apache.james.mailbox.MessageUid; +import org.apache.james.mailbox.events.Group; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.QuotaRoot; import org.apache.james.mailbox.quota.QuotaManager; @@ -35,9 +36,11 @@ import org.apache.james.mailbox.store.event.EventFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ListeningCurrentQuotaUpdater implements MailboxListener, QuotaUpdater { +public class ListeningCurrentQuotaUpdater implements MailboxListener.GroupMailboxListener, QuotaUpdater { + private static class ListeningCurrentQuotaUpdaterGroup extends Group {} private static final Logger LOGGER = LoggerFactory.getLogger(ListeningCurrentQuotaUpdater.class); + private static final Group GROUP = new ListeningCurrentQuotaUpdaterGroup(); private final StoreCurrentQuotaManager currentQuotaManager; private final QuotaRootResolver quotaRootResolver; @@ -53,6 +56,11 @@ public class ListeningCurrentQuotaUpdater implements MailboxListener, QuotaUpdat } @Override + public Group getGroup() { + return GROUP; + } + + @Override public ListenerType getType() { return currentQuotaManager.getAssociatedListenerType(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/0a3b38ab/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java index 32f9d32..7ad6fce 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java @@ -28,6 +28,7 @@ import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxManager.SearchCapabilities; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MessageUid; +import org.apache.james.mailbox.events.Group; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.exception.UnsupportedSearchException; import org.apache.james.mailbox.model.MailboxId; @@ -55,8 +56,10 @@ import com.google.common.base.Preconditions; * */ public class LazyMessageSearchIndex extends ListeningMessageSearchIndex { + private static class LazyMessageSearchIndexGroup extends Group {} private static final Logger LOGGER = LoggerFactory.getLogger(LazyMessageSearchIndex.class); + private static final Group GROUP = new LazyMessageSearchIndexGroup(); private final ListeningMessageSearchIndex index; private final ConcurrentHashMap<MailboxId, Object> indexed = new ConcurrentHashMap<>(); @@ -70,6 +73,11 @@ public class LazyMessageSearchIndex extends ListeningMessageSearchIndex { } @Override + public Group getGroup() { + return GROUP; + } + + @Override public ListenerType getType() { return index.getType(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/0a3b38ab/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java index 25d9952..c6301c2 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndex.java @@ -45,7 +45,7 @@ import com.google.common.collect.ImmutableList; * * */ -public abstract class ListeningMessageSearchIndex implements MessageSearchIndex, MailboxListener { +public abstract class ListeningMessageSearchIndex implements MessageSearchIndex, MailboxListener.GroupMailboxListener { private static final Logger LOGGER = LoggerFactory.getLogger(ListeningMessageSearchIndex.class); private static final int UNLIMITED = -1; http://git-wip-us.apache.org/repos/asf/james-project/blob/0a3b38ab/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/NoopMailboxListener.java ---------------------------------------------------------------------- diff --git a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/NoopMailboxListener.java b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/NoopMailboxListener.java index 003c56e..f5c10d5 100644 --- a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/NoopMailboxListener.java +++ b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/mailbox/NoopMailboxListener.java @@ -20,8 +20,12 @@ package org.apache.james.modules.mailbox; import org.apache.james.mailbox.Event; import org.apache.james.mailbox.MailboxListener; +import org.apache.james.mailbox.events.Group; -public class NoopMailboxListener implements MailboxListener { +public class NoopMailboxListener implements MailboxListener.GroupMailboxListener { + private static class NoopMailboxListenerGroup extends Group {} + + public static final Group GROUP = new NoopMailboxListenerGroup(); @Override public ListenerType getType() { @@ -29,6 +33,11 @@ public class NoopMailboxListener implements MailboxListener { } @Override + public Group getGroup() { + return GROUP; + } + + @Override public void event(Event event) { } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/james-project/blob/0a3b38ab/server/protocols/jmap/src/main/java/org/apache/james/jmap/event/PropagateLookupRightListener.java ---------------------------------------------------------------------- diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/event/PropagateLookupRightListener.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/event/PropagateLookupRightListener.java index f890c4a..53cd813 100644 --- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/event/PropagateLookupRightListener.java +++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/event/PropagateLookupRightListener.java @@ -29,6 +29,7 @@ import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.RightManager; import org.apache.james.mailbox.acl.ACLDiff; +import org.apache.james.mailbox.events.Group; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.MailboxACL; import org.apache.james.mailbox.model.MailboxACL.Entry; @@ -37,8 +38,11 @@ import org.apache.james.mailbox.model.MailboxPath; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class PropagateLookupRightListener implements MailboxListener { +public class PropagateLookupRightListener implements MailboxListener.GroupMailboxListener { + private static class PropagateLookupRightListenerGroup extends Group {} + private static final Logger LOGGER = LoggerFactory.getLogger(PropagateLookupRightListener.class); + private static final Group GROUP = new PropagateLookupRightListenerGroup(); private final RightManager rightManager; private final MailboxManager mailboxManager; @@ -50,6 +54,11 @@ public class PropagateLookupRightListener implements MailboxListener { } @Override + public Group getGroup() { + return GROUP; + } + + @Override public ListenerType getType() { return ListenerType.ONCE; } --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org