JAMES-1947 MessageManager should support method to getApplicableFlag
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/2d7b78a0 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/2d7b78a0 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/2d7b78a0 Branch: refs/heads/master Commit: 2d7b78a05ec183ca8f747302c9b121e83c5a41a9 Parents: c7f3e37 Author: Quynh Nguyen <[email protected]> Authored: Thu Feb 23 16:02:29 2017 +0700 Committer: benwa <[email protected]> Committed: Tue Feb 28 10:37:20 2017 +0700 ---------------------------------------------------------------------- .../src/main/java/org/apache/james/mailbox/MessageManager.java | 4 +++- .../cassandra/CassandraMailboxSessionMapperFactory.java | 2 +- .../org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java | 3 ++- .../org/apache/james/mailbox/store/StoreMessageManager.java | 6 ++++++ .../apache/james/mailbox/store/mail/AbstractMessageMapper.java | 1 + .../james/imap/processor/base/MailboxEventAnalyserTest.java | 5 +++++ .../apache/james/modules/mailbox/CassandraMailboxModule.java | 3 ++- 7 files changed, 20 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/2d7b78a0/mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java ---------------------------------------------------------------------- diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java b/mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java index 596cb82..e0a2d40 100644 --- a/mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java +++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MessageManager.java @@ -169,7 +169,9 @@ public interface MessageManager { * Gets the path of the referenced mailbox */ MailboxPath getMailboxPath() throws MailboxException; - + + Flags getApplicableFlag(MailboxSession session) throws MailboxException; + /** * Gets current meta data for the mailbox.<br> * Consolidates common calls together to allow improved performance.<br> http://git-wip-us.apache.org/repos/asf/james-project/blob/2d7b78a0/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java ---------------------------------------------------------------------- diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java index 12746f9..9ee5f19 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/CassandraMailboxSessionMapperFactory.java @@ -109,7 +109,7 @@ public class CassandraMailboxSessionMapperFactory extends MailboxSessionMapperFa public CassandraMessageMapper createMessageMapper(MailboxSession mailboxSession) { return new CassandraMessageMapper(uidProvider, modSeqProvider, null, maxRetry, (CassandraAttachmentMapper) createAttachmentMapper(mailboxSession), - messageDAO, messageIdDAO, imapUidDAO, mailboxCounterDAO, mailboxRecentsDAO, indexTableHandler, firstUnseenDAO); + messageDAO, messageIdDAO, imapUidDAO, mailboxCounterDAO, mailboxRecentsDAO, applicableFlagDAO, indexTableHandler, firstUnseenDAO); } @Override http://git-wip-us.apache.org/repos/asf/james-project/blob/2d7b78a0/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java index 7d0d9a7..b36c783 100644 --- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java +++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMessageMapper.java @@ -289,7 +289,8 @@ public class JPAMessageMapper extends JPATransactionalMapper implements MessageM @Override public Flags getApplicableFlag(Mailbox mailbox) throws MailboxException { - return new ApplicableFlagCalculator(findMessagesInMailbox((JPAId) mailbox.getMailboxId(), -1)) + int maxBatchSize = -1; + return new ApplicableFlagCalculator(findMessagesInMailbox((JPAId) mailbox.getMailboxId(), maxBatchSize)) .computeApplicableFlags(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/2d7b78a0/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 d48ce5d..71d1eb4 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 @@ -857,4 +857,10 @@ public class StoreMessageManager implements org.apache.james.mailbox.MessageMana public MailboxPath getMailboxPath() throws MailboxException { return new StoreMailboxPath(getMailboxEntity()); } + + @Override + public Flags getApplicableFlag(MailboxSession session) throws MailboxException { + return mapperFactory.getMessageMapper(session) + .getApplicableFlag(mailbox); + } } http://git-wip-us.apache.org/repos/asf/james-project/blob/2d7b78a0/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AbstractMessageMapper.java ---------------------------------------------------------------------- diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AbstractMessageMapper.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AbstractMessageMapper.java index 93e27c6..d63bd0e 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AbstractMessageMapper.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AbstractMessageMapper.java @@ -24,6 +24,7 @@ import java.util.List; import javax.mail.Flags; +import org.apache.commons.lang.NotImplementedException; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MessageUid; import org.apache.james.mailbox.exception.MailboxException; http://git-wip-us.apache.org/repos/asf/james-project/blob/2d7b78a0/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java ---------------------------------------------------------------------- diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java index 5c53a8f..a02d070 100644 --- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java +++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java @@ -322,6 +322,11 @@ public class MailboxEventAnalyserTest { public MailboxPath getMailboxPath() { return null; } + + @Override + public Flags getApplicableFlag(MailboxSession session) throws MailboxException { + throw new NotImplementedException(); + } }; } http://git-wip-us.apache.org/repos/asf/james-project/blob/2d7b78a0/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java ---------------------------------------------------------------------- diff --git a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java index cbc6575..291d154 100644 --- a/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java +++ b/server/container/guice/cassandra-guice/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java @@ -116,7 +116,8 @@ public class CassandraMailboxModule extends AbstractModule { cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.modules.CassandraModSeqModule.class); cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.modules.CassandraAttachmentModule.class); cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.modules.CassandraAnnotationModule.class); - + cassandraDataDefinitions.addBinding().to(org.apache.james.mailbox.cassandra.modules.CassandraApplicableFlagsModule.class); + Multibinder.newSetBinder(binder(), MailboxManagerDefinition.class).addBinding().to(CassandraMailboxManagerDefinition.class); } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
