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 2015/11/28 13:53:31 UTC
svn commit: r1716952 - in /james/project/trunk:
mailbox/api/src/main/java/org/apache/james/mailbox/
mailbox/api/src/test/java/org/apache/james/mailbox/
mailbox/api/src/test/java/org/apache/james/mailbox/util/
mailbox/caching/src/main/java/org/apache/ja...
Author: btellier
Date: Sat Nov 28 12:53:31 2015
New Revision: 1716952
URL: http://svn.apache.org/viewvc?rev=1716952&view=rev
Log:
MAILBOX-211 MailboxListener should indicate its registration type
Modified:
james/project/trunk/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java
james/project/trunk/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java
james/project/trunk/mailbox/api/src/test/java/org/apache/james/mailbox/util/EventCollector.java
james/project/trunk/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CacheInvalidatingMailboxListener.java
james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManager.java
james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java
james/project/trunk/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
james/project/trunk/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java
james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/HashMapDelegatingMailboxListener.java
james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java
james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/StoreCurrentQuotaManager.java
james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java
james/project/trunk/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
james/project/trunk/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java
Modified: james/project/trunk/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java?rev=1716952&r1=1716951&r2=1716952&view=diff
==============================================================================
--- james/project/trunk/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java (original)
+++ james/project/trunk/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxListener.java Sat Nov 28 12:53:31 2015
@@ -34,6 +34,14 @@ import org.apache.james.mailbox.model.Up
*/
public interface MailboxListener {
+ enum ListenerType {
+ ONCE,
+ EACH_NODE,
+ MAILBOX
+ }
+
+ ListenerType getType();
+
/**
* Informs this listener about the given event.
*
Modified: james/project/trunk/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java?rev=1716952&r1=1716951&r2=1716952&view=diff
==============================================================================
--- james/project/trunk/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java (original)
+++ james/project/trunk/mailbox/api/src/test/java/org/apache/james/mailbox/AbstractStressTest.java Sat Nov 28 12:53:31 2015
@@ -59,6 +59,10 @@ public abstract class AbstractStressTest
getMailboxManager().createMailbox(path, session);
getMailboxManager().addListener(path, new MailboxListener() {
+ @Override
+ public ListenerType getType() {
+ return ListenerType.MAILBOX;
+ }
@Override
public void event(Event event) {
Modified: james/project/trunk/mailbox/api/src/test/java/org/apache/james/mailbox/util/EventCollector.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/api/src/test/java/org/apache/james/mailbox/util/EventCollector.java?rev=1716952&r1=1716951&r2=1716952&view=diff
==============================================================================
--- james/project/trunk/mailbox/api/src/test/java/org/apache/james/mailbox/util/EventCollector.java (original)
+++ james/project/trunk/mailbox/api/src/test/java/org/apache/james/mailbox/util/EventCollector.java Sat Nov 28 12:53:31 2015
@@ -26,7 +26,26 @@ import org.apache.james.mailbox.MailboxL
public class EventCollector implements MailboxListener {
- public final List<Event> events = new ArrayList<Event>();
+ private final List<Event> events = new ArrayList<Event>();
+
+ private ListenerType listenerType;
+
+ public EventCollector(ListenerType listenerType) {
+ this.listenerType = listenerType;
+ }
+
+ public EventCollector() {
+ this(ListenerType.EACH_NODE);
+ }
+
+ @Override
+ public ListenerType getType() {
+ return listenerType;
+ }
+
+ public List<Event> getEvents() {
+ return events;
+ }
public void event(Event event) {
events.add(event);
Modified: james/project/trunk/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CacheInvalidatingMailboxListener.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CacheInvalidatingMailboxListener.java?rev=1716952&r1=1716951&r2=1716952&view=diff
==============================================================================
--- james/project/trunk/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CacheInvalidatingMailboxListener.java (original)
+++ james/project/trunk/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CacheInvalidatingMailboxListener.java Sat Nov 28 12:53:31 2015
@@ -31,6 +31,11 @@ public class CacheInvalidatingMailboxLis
}
@Override
+ public ListenerType getType() {
+ return ListenerType.EACH_NODE;
+ }
+
+ @Override
public void event(Event event) {
// TODO this needs for sure to be smarter
try {
Modified: james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManager.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManager.java?rev=1716952&r1=1716951&r2=1716952&view=diff
==============================================================================
--- james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManager.java (original)
+++ james/project/trunk/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/quota/CassandraCurrentQuotaManager.java Sat Nov 28 12:53:31 2015
@@ -30,6 +30,7 @@ import com.datastax.driver.core.Prepared
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Session;
import com.google.common.base.Preconditions;
+import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.cassandra.table.CassandraCurrentQuota;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.QuotaRoot;
@@ -67,6 +68,11 @@ public class CassandraCurrentQuotaManage
}
@Override
+ public MailboxListener.ListenerType getAssociatedListenerType() {
+ return MailboxListener.ListenerType.ONCE;
+ }
+
+ @Override
public void increase(QuotaRoot quotaRoot, long count, long size) throws MailboxException {
checkArguments(count, size);
session.execute(increaseStatement.bind(count, size, quotaRoot.getValue()));
Modified: james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java?rev=1716952&r1=1716951&r2=1716952&view=diff
==============================================================================
--- james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java (original)
+++ james/project/trunk/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java Sat Nov 28 12:53:31 2015
@@ -59,6 +59,11 @@ public class ElasticSearchListeningMessa
}
@Override
+ public ListenerType getType() {
+ return ListenerType.ONCE;
+ }
+
+ @Override
public Iterator<Long> search(MailboxSession session, Mailbox<Id> mailbox, SearchQuery searchQuery) throws MailboxException {
return searcher.search(mailbox, searchQuery);
}
Modified: james/project/trunk/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java?rev=1716952&r1=1716951&r2=1716952&view=diff
==============================================================================
--- james/project/trunk/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java (original)
+++ james/project/trunk/mailbox/lucene/src/main/java/org/apache/james/mailbox/lucene/search/LuceneMessageSearchIndex.java Sat Nov 28 12:53:31 2015
@@ -349,7 +349,12 @@ public class LuceneMessageSearchIndex<Id
super(factory);
this.writer = writer;
}
-
+
+ @Override
+ public ListenerType getType() {
+ return ListenerType.EACH_NODE;
+ }
+
/**
* Set the max count of results which will get returned from a query. The default is {@link #DEFAULT_MAX_QUERY_RESULTS}
*
Modified: james/project/trunk/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java?rev=1716952&r1=1716951&r2=1716952&view=diff
==============================================================================
--- james/project/trunk/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java (original)
+++ james/project/trunk/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java Sat Nov 28 12:53:31 2015
@@ -25,6 +25,11 @@ import java.util.concurrent.atomic.Atomi
import javax.inject.Inject;
import javax.inject.Singleton;
+import com.google.common.base.Preconditions;
+import com.google.common.cache.CacheBuilder;
+import com.google.common.cache.CacheLoader;
+import com.google.common.cache.LoadingCache;
+import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.QuotaRoot;
@@ -33,11 +38,6 @@ import org.apache.james.mailbox.store.qu
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Preconditions;
-import com.google.common.cache.CacheBuilder;
-import com.google.common.cache.CacheLoader;
-import com.google.common.cache.LoadingCache;
-
@Singleton
public class InMemoryCurrentQuotaManager implements StoreCurrentQuotaManager {
@@ -55,6 +55,10 @@ public class InMemoryCurrentQuotaManager
});
}
+ @Override
+ public MailboxListener.ListenerType getAssociatedListenerType() {
+ return MailboxListener.ListenerType.EACH_NODE;
+ }
@Override
public void increase(QuotaRoot quotaRoot, long count, long size) throws MailboxException {
Modified: james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/HashMapDelegatingMailboxListener.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/HashMapDelegatingMailboxListener.java?rev=1716952&r1=1716951&r2=1716952&view=diff
==============================================================================
--- james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/HashMapDelegatingMailboxListener.java (original)
+++ james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/HashMapDelegatingMailboxListener.java Sat Nov 28 12:53:31 2015
@@ -38,6 +38,11 @@ public class HashMapDelegatingMailboxLis
private List<MailboxListener> globalListeners = new ArrayList<MailboxListener>();
@Override
+ public ListenerType getType() {
+ return ListenerType.EACH_NODE;
+ }
+
+ @Override
protected Map<MailboxPath, List<MailboxListener>> getListeners() {
return listeners;
}
Modified: james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java?rev=1716952&r1=1716951&r2=1716952&view=diff
==============================================================================
--- james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java (original)
+++ james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdater.java Sat Nov 28 12:53:31 2015
@@ -45,6 +45,11 @@ public class ListeningCurrentQuotaUpdate
}
@Override
+ public ListenerType getType() {
+ return currentQuotaManager.getAssociatedListenerType();
+ }
+
+ @Override
public void event(Event event) {
try {
QuotaRoot quotaRoot = quotaRootResolver.getQuotaRoot(event.getMailboxPath());
Modified: james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/StoreCurrentQuotaManager.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/StoreCurrentQuotaManager.java?rev=1716952&r1=1716951&r2=1716952&view=diff
==============================================================================
--- james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/StoreCurrentQuotaManager.java (original)
+++ james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/StoreCurrentQuotaManager.java Sat Nov 28 12:53:31 2015
@@ -19,12 +19,15 @@
package org.apache.james.mailbox.store.quota;
+import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.QuotaRoot;
import org.apache.james.mailbox.quota.CurrentQuotaManager;
public interface StoreCurrentQuotaManager extends CurrentQuotaManager {
+ MailboxListener.ListenerType getAssociatedListenerType();
+
void increase(QuotaRoot quotaRoot, long count, long size) throws MailboxException;
void decrease(QuotaRoot quotaRoot, long count, long size) throws MailboxException;
Modified: james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java
URL: http://svn.apache.org/viewvc/james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java?rev=1716952&r1=1716951&r2=1716952&view=diff
==============================================================================
--- james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java (original)
+++ james/project/trunk/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java Sat Nov 28 12:53:31 2015
@@ -23,6 +23,7 @@ import java.util.concurrent.ConcurrentHa
import javax.mail.Flags;
+import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.MessageRange;
@@ -52,9 +53,12 @@ public class LazyMessageSearchIndex<Id e
super(index.getFactory());
this.index = index;
}
-
-
-
+
+ @Override
+ public ListenerType getType() {
+ return index.getType();
+ }
+
@Override
public void add(MailboxSession session, Mailbox<Id> mailbox, Message<Id> message) throws MailboxException {
index.add(session, mailbox, message);
Modified: james/project/trunk/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
URL: http://svn.apache.org/viewvc/james/project/trunk/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java?rev=1716952&r1=1716951&r2=1716952&view=diff
==============================================================================
--- james/project/trunk/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java (original)
+++ james/project/trunk/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java Sat Nov 28 12:53:31 2015
@@ -189,5 +189,10 @@ public class IdleProcessor extends Abstr
unsolicitedResponses(session, responder, false);
}
}
+
+ @Override
+ public ListenerType getType() {
+ return ListenerType.MAILBOX;
+ }
}
}
Modified: james/project/trunk/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java
URL: http://svn.apache.org/viewvc/james/project/trunk/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java?rev=1716952&r1=1716951&r2=1716952&view=diff
==============================================================================
--- james/project/trunk/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java (original)
+++ james/project/trunk/protocols/imap/src/main/java/org/apache/james/imap/processor/base/SelectedMailboxImpl.java Sat Nov 28 12:53:31 2015
@@ -101,7 +101,11 @@ public class SelectedMailboxImpl impleme
this.path = path;
init();
}
-
+
+ @Override
+ public ListenerType getType() {
+ return ListenerType.MAILBOX;
+ }
private void init() throws MailboxException {
MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session);
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org