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 2020/03/20 04:17:27 UTC
[james-project] 04/10: JAMES-3116 Group reading count & unseen
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 3bfae08134d7257f8c869eae5c4d6944e854f9b4
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Mar 13 21:08:00 2020 +0700
JAMES-3116 Group reading count & unseen
Also remove countUnseen
---
.../mailbox/cassandra/mail/CassandraMessageMapper.java | 5 -----
.../apache/james/mailbox/jpa/mail/JPAMessageMapper.java | 1 -
.../mailbox/jpa/mail/TransactionalMessageMapper.java | 3 +--
.../apache/james/mailbox/store/StoreMessageManager.java | 10 +++-------
.../james/mailbox/store/mail/AbstractMessageMapper.java | 1 +
.../apache/james/mailbox/store/mail/MessageMapper.java | 6 ------
.../store/StoreMailboxMessageResultIteratorTest.java | 15 +++------------
.../mailbox/store/mail/model/MessageIdMapperTest.java | 16 ++++++++--------
.../mailbox/store/mail/model/MessageMapperTest.java | 16 ++++++++--------
.../james/mailbox/store/mail/model/MessageMoveTest.java | 8 ++++----
10 files changed, 28 insertions(+), 53 deletions(-)
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
index 6f4b7df..23dbc07 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
@@ -117,11 +117,6 @@ public class CassandraMessageMapper implements MessageMapper {
}
@Override
- public long countUnseenMessagesInMailbox(Mailbox mailbox) {
- return getMailboxCounters(mailbox).getUnseen();
- }
-
- @Override
public MailboxCounters getMailboxCounters(Mailbox mailbox) {
return getMailboxCountersAsMono(mailbox).block();
}
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 b1b8f71..996cd6b 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
@@ -138,7 +138,6 @@ public class JPAMessageMapper extends JPATransactionalMapper implements MessageM
}
}
- @Override
public long countUnseenMessagesInMailbox(Mailbox mailbox) throws MailboxException {
JPAId mailboxId = (JPAId) mailbox.getMailboxId();
return countUnseenMessagesInMailbox(mailboxId);
diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMessageMapper.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMessageMapper.java
index 2242197..e932fc8 100644
--- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMessageMapper.java
+++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMessageMapper.java
@@ -95,8 +95,7 @@ public class TransactionalMessageMapper implements MessageMapper {
return messageMapper.countMessagesInMailbox(mailbox);
}
- @Override
- public long countUnseenMessagesInMailbox(Mailbox mailbox) throws MailboxException {
+ private long countUnseenMessagesInMailbox(Mailbox mailbox) throws MailboxException {
return messageMapper.countUnseenMessagesInMailbox(mailbox);
}
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 f97e5f0..f9f7d71 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
@@ -546,8 +546,9 @@ public class StoreMessageManager implements MessageManager {
MessageUid firstUnseen;
switch (fetchGroup) {
case UNSEEN_COUNT:
- unseenCount = countUnseenMessagesInMailbox(mailboxSession);
- messageCount = getMessageCount(mailboxSession);
+ MailboxCounters mailboxCounters = getMailboxCounters(mailboxSession);
+ unseenCount = mailboxCounters.getUnseen();
+ messageCount = mailboxCounters.getCount();
firstUnseen = null;
recent = recent(resetRecent, mailboxSession);
@@ -872,11 +873,6 @@ public class StoreMessageManager implements MessageManager {
return copiedMessages;
}
- protected long countUnseenMessagesInMailbox(MailboxSession session) throws MailboxException {
- MessageMapper messageMapper = mapperFactory.getMessageMapper(session);
- return messageMapper.countUnseenMessagesInMailbox(getMailboxEntity());
- }
-
/**
* Return the uid of the first unseen message or null of none is found
*/
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 c4fe7ed..5a993d4 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
@@ -141,6 +141,7 @@ public abstract class AbstractMessageMapper extends TransactionalMapper implemen
*/
protected abstract MessageMetaData save(Mailbox mailbox, MailboxMessage message) throws MailboxException;
+ protected abstract long countUnseenMessagesInMailbox(Mailbox mailbox) throws MailboxException;
/**
* Copy the MailboxMessage to the Mailbox, using the given uid and modSeq for the new MailboxMessage
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java
index 2d850ea..ff1faf0 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java
@@ -68,12 +68,6 @@ public interface MessageMapper extends Mapper {
long countMessagesInMailbox(Mailbox mailbox)
throws MailboxException;
- /**
- * Return the count of unseen messages in the mailbox
- */
- long countUnseenMessagesInMailbox(Mailbox mailbox)
- throws MailboxException;
-
MailboxCounters getMailboxCounters(Mailbox mailbox) throws MailboxException;
List<MailboxCounters> getMailboxCounters(Collection<Mailbox> mailboxes) throws MailboxException;
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxMessageResultIteratorTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxMessageResultIteratorTest.java
index f5b1635..25067ca 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxMessageResultIteratorTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreMailboxMessageResultIteratorTest.java
@@ -72,17 +72,13 @@ class StoreMailboxMessageResultIteratorTest {
}
@Override
- public <T> T execute(Transaction<T> transaction) throws MailboxException {
+ public <T> T execute(Transaction<T> transaction) {
throw new UnsupportedOperationException();
}
@Override
- public MailboxCounters getMailboxCounters(Mailbox mailbox) throws MailboxException {
- return MailboxCounters.builder()
- .mailboxId(mailbox.getMailboxId())
- .count(countMessagesInMailbox(mailbox))
- .unseen(countUnseenMessagesInMailbox(mailbox))
- .build();
+ public MailboxCounters getMailboxCounters(Mailbox mailbox) {
+ throw new UnsupportedOperationException();
}
@Override
@@ -128,11 +124,6 @@ class StoreMailboxMessageResultIteratorTest {
}
@Override
- public long countUnseenMessagesInMailbox(Mailbox mailbox) throws MailboxException {
- throw new UnsupportedOperationException();
- }
-
- @Override
public void delete(Mailbox mailbox, MailboxMessage message) throws MailboxException {
throw new UnsupportedOperationException();
}
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
index 731f35a..9939095 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
@@ -737,7 +737,7 @@ public abstract class MessageIdMapperTest {
message1.setFlags(new Flags(Flag.SEEN));
sut.save(message1);
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(0);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(0);
}
@Test
@@ -746,7 +746,7 @@ public abstract class MessageIdMapperTest {
message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
sut.save(message1);
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(1);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(1);
}
@Test
@@ -768,7 +768,7 @@ public abstract class MessageIdMapperTest {
sut.delete(message1.getMessageId(), ImmutableList.of(benwaInboxMailbox.getMailboxId()));
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(0);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(0);
}
@Test
@@ -784,7 +784,7 @@ public abstract class MessageIdMapperTest {
sut.delete(message1.getMessageId(), ImmutableList.of(benwaInboxMailbox.getMailboxId()));
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(1);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(1);
}
@Test
@@ -795,7 +795,7 @@ public abstract class MessageIdMapperTest {
sut.setFlags(message1.getMessageId(), ImmutableList.of(message1.getMailboxId()), new Flags(Flag.SEEN), FlagsUpdateMode.ADD);
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(0);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(0);
}
@Test
@@ -807,7 +807,7 @@ public abstract class MessageIdMapperTest {
sut.setFlags(message1.getMessageId(), ImmutableList.of(message1.getMailboxId()), new Flags(Flag.SEEN), FlagsUpdateMode.REMOVE);
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(1);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(1);
}
@Test
@@ -880,7 +880,7 @@ public abstract class MessageIdMapperTest {
sut.setFlags(message1.getMessageId(), ImmutableList.of(message1.getMailboxId()), new Flags(Flag.ANSWERED), FlagsUpdateMode.REMOVE);
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(1);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(1);
}
@Test
@@ -944,7 +944,7 @@ public abstract class MessageIdMapperTest {
.put(message2.getMessageId(), benwaInboxMailbox.getMailboxId())
.build());
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox))
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen())
.isEqualTo(0);
}
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
index 44b45b8..11cf811 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
@@ -153,13 +153,13 @@ public abstract class MessageMapperTest {
@Test
void emptyMailboxShouldNotHaveUnseenMessages() throws MailboxException {
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(0);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(0);
}
@Test
void mailboxContainingMessagesShouldHaveTheGoodUnseenMessageCount() throws MailboxException {
saveMessages();
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(5);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(5);
}
@Test
@@ -169,7 +169,7 @@ public abstract class MessageMapperTest {
messageMapper.updateFlags(benwaInboxMailbox, newFlags, message1.getUid().toRange());
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(4);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(4);
}
@Test
@@ -177,14 +177,14 @@ public abstract class MessageMapperTest {
saveMessages();
messageMapper.updateFlags(benwaInboxMailbox, new FlagsUpdateCalculator(new Flags(Flags.Flag.SEEN), FlagsUpdateMode.REPLACE), MessageRange.one(message1.getUid()));
messageMapper.updateFlags(benwaInboxMailbox, new FlagsUpdateCalculator(new Flags(), FlagsUpdateMode.REPLACE), MessageRange.one(message1.getUid()));
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(5);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(5);
}
@Test
void mailboxUnSeenCountShouldBeDecrementedAfterAMessageDelete() throws MailboxException {
saveMessages();
messageMapper.delete(benwaInboxMailbox, message1);
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(4);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(4);
}
@Test
@@ -573,7 +573,7 @@ public abstract class MessageMapperTest {
void copyOfUnSeenMessageShouldIncrementUnSeenMessageCount() throws MailboxException {
saveMessages();
messageMapper.copy(benwaInboxMailbox, SimpleMailboxMessage.copy(benwaInboxMailbox.getMailboxId(), message6));
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(6);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(6);
}
@Test
@@ -606,10 +606,10 @@ public abstract class MessageMapperTest {
void copyOfSeenMessageShouldNotIncrementUnSeenMessageCount() throws MailboxException {
message6.setFlags(new Flags(Flags.Flag.SEEN));
saveMessages();
- long expectedUnseenMessages = messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox);
+ long expectedUnseenMessages = messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen();
messageMapper.copy(benwaInboxMailbox, SimpleMailboxMessage.copy(benwaInboxMailbox.getMailboxId(), message6));
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(expectedUnseenMessages);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(expectedUnseenMessages);
}
@Test
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMoveTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMoveTest.java
index 4542f2f..d640246 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMoveTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMoveTest.java
@@ -118,8 +118,8 @@ public abstract class MessageMoveTest {
messageMapper.move(benwaWorkMailbox, message1);
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(0);
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaWorkMailbox)).isEqualTo(1);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(0);
+ assertThat(messageMapper.getMailboxCounters(benwaWorkMailbox).getUnseen()).isEqualTo(1);
}
@Test
@@ -130,8 +130,8 @@ public abstract class MessageMoveTest {
messageMapper.move(benwaWorkMailbox, message1);
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(0);
- assertThat(messageMapper.countUnseenMessagesInMailbox(benwaWorkMailbox)).isEqualTo(0);
+ assertThat(messageMapper.getMailboxCounters(benwaInboxMailbox).getUnseen()).isEqualTo(0);
+ assertThat(messageMapper.getMailboxCounters(benwaWorkMailbox).getUnseen()).isEqualTo(0);
}
private Mailbox createMailbox(MailboxPath mailboxPath) throws MailboxException {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org