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 2018/12/19 04:10:38 UTC
[12/13] james-project git commit: MAILBOX-359 POJOify MessageMetaData
& remove SimpleMessageMetaData
MAILBOX-359 POJOify MessageMetaData & remove SimpleMessageMetaData
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b16d06f0
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b16d06f0
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b16d06f0
Branch: refs/heads/master
Commit: b16d06f0a8ea9e583f71203c6ff3b62ca8aaec60
Parents: ecb6258
Author: Benoit Tellier <bt...@linagora.com>
Authored: Sat Dec 15 10:59:12 2018 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Dec 19 10:58:07 2018 +0700
----------------------------------------------------------------------
.../james/mailbox/model/MessageMetaData.java | 72 +++++++++++----
.../mailbox/store/SimpleMessageMetaData.java | 93 --------------------
.../store/mail/model/MailboxMessage.java | 3 +-
.../store/AbstractCombinationManagerTest.java | 3 +-
.../AbstractMessageIdManagerSideEffectTest.java | 2 +-
.../store/mail/model/MetadataMapAssertTest.java | 9 +-
.../quota/ListeningCurrentQuotaUpdaterTest.java | 10 +--
.../base/MailboxEventAnalyserTest.java | 5 +-
.../processor/base/SelectedMailboxImplTest.java | 3 +-
9 files changed, 73 insertions(+), 127 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/b16d06f0/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageMetaData.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageMetaData.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageMetaData.java
index 6f629fc..03b26f3 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageMetaData.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageMetaData.java
@@ -24,23 +24,35 @@ import javax.mail.Flags;
import org.apache.james.mailbox.MessageUid;
-public interface MessageMetaData {
+import com.google.common.base.Objects;
- MessageUid getUid();
-
-
- /**
- * Return the modify-sequence number of the message. This is kind of optional and the mailbox
- * implementation may not support this. If so it will return -1
- */
- long getModSeq();
+public class MessageMetaData {
+ private final MessageUid uid;
+ private final Flags flags;
+ private final long size;
+ private final Date internalDate;
+ private final long modSeq;
+ private final MessageId messageId;
+
+ public MessageMetaData(MessageUid uid, long modSeq, Flags flags, long size, Date internalDate, MessageId messageId) {
+ this.uid = uid;
+ this.flags = flags;
+ this.size = size;
+ this.modSeq = modSeq;
+ this.internalDate = internalDate;
+ this.messageId = messageId;
+ }
+
+ public Flags getFlags() {
+ return flags;
+ }
- Flags getFlags();
-
/**
* Return the size in bytes
*/
- long getSize();
+ public long getSize() {
+ return size;
+ }
/**
* <p>
@@ -48,7 +60,37 @@ public interface MessageMetaData {
* (by smtp). Clients are also allowed to set the internalDate on append.
* </p>
*/
- Date getInternalDate();
-
- MessageId getMessageId();
+ public Date getInternalDate() {
+ return internalDate;
+ }
+
+ public MessageUid getUid() {
+ return uid;
+ }
+
+ public MessageId getMessageId() {
+ return messageId;
+ }
+
+ /**
+ * Return the modify-sequence number of the message. This is kind of optional and the mailbox
+ * implementation may not support this. If so it will return -1
+ */
+ public long getModSeq() {
+ return modSeq;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj instanceof MessageMetaData) {
+ return uid.equals(((MessageMetaData) obj).getUid());
+ }
+ return false;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hashCode(uid);
+ }
+
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b16d06f0/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMessageMetaData.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMessageMetaData.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMessageMetaData.java
deleted file mode 100644
index 61e2f54..0000000
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/SimpleMessageMetaData.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-package org.apache.james.mailbox.store;
-
-import java.util.Date;
-
-import javax.mail.Flags;
-
-import org.apache.james.mailbox.MessageUid;
-import org.apache.james.mailbox.model.MessageId;
-import org.apache.james.mailbox.model.MessageMetaData;
-
-import com.google.common.base.Objects;
-
-
-public class SimpleMessageMetaData implements MessageMetaData {
- private final MessageUid uid;
- private final Flags flags;
- private final long size;
- private final Date internalDate;
- private final long modSeq;
- private final MessageId messageId;
-
- public SimpleMessageMetaData(MessageUid uid, long modSeq, Flags flags, long size, Date internalDate, MessageId messageId) {
- this.uid = uid;
- this.flags = flags;
- this.size = size;
- this.modSeq = modSeq;
- this.internalDate = internalDate;
- this.messageId = messageId;
- }
-
- @Override
- public Flags getFlags() {
- return flags;
- }
-
- @Override
- public long getSize() {
- return size;
- }
-
- @Override
- public Date getInternalDate() {
- return internalDate;
- }
-
- @Override
- public MessageUid getUid() {
- return uid;
- }
-
- @Override
- public MessageId getMessageId() {
- return messageId;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof SimpleMessageMetaData) {
- return uid.equals(((SimpleMessageMetaData) obj).getUid());
- }
- return false;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(uid);
- }
-
- @Override
- public long getModSeq() {
- return modSeq;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b16d06f0/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MailboxMessage.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MailboxMessage.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MailboxMessage.java
index 2842356..7d0df02 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MailboxMessage.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MailboxMessage.java
@@ -24,7 +24,6 @@ import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.model.ComposedMessageIdWithMetaData;
import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MessageMetaData;
-import org.apache.james.mailbox.store.SimpleMessageMetaData;
/**
* A MIME message, consisting of meta-data (including MIME headers)
@@ -129,7 +128,7 @@ public interface MailboxMessage extends Message, Comparable<MailboxMessage> {
Flags createFlags();
default MessageMetaData metaData() {
- return new SimpleMessageMetaData(getUid(), getModSeq(), createFlags(), getFullContentOctets(), getInternalDate(), getMessageId());
+ return new MessageMetaData(getUid(), getModSeq(), createFlags(), getFullContentOctets(), getInternalDate(), getMessageId());
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/b16d06f0/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
index 0ed6dda..08d8747 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractCombinationManagerTest.java
@@ -384,7 +384,8 @@ public abstract class AbstractCombinationManagerTest {
assertThat(messageManager1.getMessages(MessageRange.all(), FetchGroupImpl.MINIMAL, session)).isEmpty();
assertThat(messageManager2.getMessages(MessageRange.all(), FetchGroupImpl.MINIMAL, session))
.hasSize(1)
- .extractingResultOf("getMessageId").containsOnly(messageId);
+ .extracting(MessageResult::getMessageId)
+ .containsOnly(messageId);
}
@Test
http://git-wip-us.apache.org/repos/asf/james-project/blob/b16d06f0/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
index b916395..0a02502 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
@@ -210,7 +210,7 @@ public abstract class AbstractMessageIdManagerSideEffectTest {
assertThat(messageResults).hasSize(2);
messageIdManager.setInMailboxes(messageId, ImmutableList.of(mailbox1.getMailboxId(), mailbox3.getMailboxId()), session);
- verify(dispatcher).expunged(eq(session), any(SimpleMessageMetaData.class), eq(mailbox2));
+ verify(dispatcher).expunged(eq(session), any(MessageMetaData.class), eq(mailbox2));
verify(dispatcher).added(eq(session), eq(mailbox3), any(MailboxMessage.class));
verify(dispatcher).moved(eq(session), any(), any());
verifyNoMoreInteractions(dispatcher);
http://git-wip-us.apache.org/repos/asf/james-project/blob/b16d06f0/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MetadataMapAssertTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MetadataMapAssertTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MetadataMapAssertTest.java
index 0fd78d7..e8870b9 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MetadataMapAssertTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MetadataMapAssertTest.java
@@ -30,7 +30,6 @@ import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.model.MessageMetaData;
import org.apache.james.mailbox.model.TestId;
-import org.apache.james.mailbox.store.SimpleMessageMetaData;
import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
import org.junit.Before;
@@ -59,14 +58,14 @@ public class MetadataMapAssertTest {
@Test
public void metadataMapAssertShouldSucceedWhenContainingRightMetadata() {
Map<MessageUid, MessageMetaData> metaDataMap = new HashMap<>();
- metaDataMap.put(UID, new SimpleMessageMetaData(UID, MODSEQ, new Flags(), HEADER_STRING.length() + BODY_STRING.length(), DATE, MESSAGE_ID));
+ metaDataMap.put(UID, new MessageMetaData(UID, MODSEQ, new Flags(), HEADER_STRING.length() + BODY_STRING.length(), DATE, MESSAGE_ID));
MetadataMapAssert.assertThat(metaDataMap).containsMetadataForMessages(message1);
}
@Test(expected = AssertionError.class)
public void metadataMapAssertShouldFailWhenUidMismatch() {
Map<MessageUid, MessageMetaData> metaDataMap = new HashMap<>();
- metaDataMap.put(UID, new SimpleMessageMetaData(UID.next(), MODSEQ, new Flags(), HEADER_STRING.length() + BODY_STRING.length(), DATE, MESSAGE_ID));
+ metaDataMap.put(UID, new MessageMetaData(UID.next(), MODSEQ, new Flags(), HEADER_STRING.length() + BODY_STRING.length(), DATE, MESSAGE_ID));
MetadataMapAssert.assertThat(metaDataMap).containsMetadataForMessages(message1);
}
@@ -75,14 +74,14 @@ public class MetadataMapAssertTest {
Map<MessageUid, MessageMetaData> metaDataMap = new HashMap<>();
Date date = new Date();
date.setTime(DATE.getTime() + 100L);
- metaDataMap.put(UID, new SimpleMessageMetaData(UID, MODSEQ, new Flags(), HEADER_STRING.length() + BODY_STRING.length(), date, MESSAGE_ID));
+ metaDataMap.put(UID, new MessageMetaData(UID, MODSEQ, new Flags(), HEADER_STRING.length() + BODY_STRING.length(), date, MESSAGE_ID));
MetadataMapAssert.assertThat(metaDataMap).containsMetadataForMessages(message1);
}
@Test(expected = AssertionError.class)
public void metadataMapAssertShouldFailWhenSizeMismatch() {
Map<MessageUid, MessageMetaData> metaDataMap = new HashMap<>();
- metaDataMap.put(UID, new SimpleMessageMetaData(UID, MODSEQ, new Flags(), HEADER_STRING.length() + BODY_STRING.length() + 1, DATE, MESSAGE_ID));
+ metaDataMap.put(UID, new MessageMetaData(UID, MODSEQ, new Flags(), HEADER_STRING.length() + BODY_STRING.length() + 1, DATE, MESSAGE_ID));
MetadataMapAssert.assertThat(metaDataMap).containsMetadataForMessages(message1);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b16d06f0/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdaterTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdaterTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdaterTest.java
index 241b62b..0d62a90 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdaterTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/ListeningCurrentQuotaUpdaterTest.java
@@ -37,11 +37,11 @@ import org.apache.james.core.quota.QuotaSize;
import org.apache.james.mailbox.MailboxListener;
import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.model.MailboxId;
+import org.apache.james.mailbox.model.MessageMetaData;
import org.apache.james.mailbox.model.QuotaRoot;
import org.apache.james.mailbox.model.TestId;
import org.apache.james.mailbox.quota.QuotaManager;
import org.apache.james.mailbox.quota.QuotaRootResolver;
-import org.apache.james.mailbox.store.SimpleMessageMetaData;
import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
import org.junit.Before;
@@ -73,8 +73,8 @@ public class ListeningCurrentQuotaUpdaterTest {
public void addedEventShouldIncreaseCurrentQuotaValues() throws Exception {
MailboxListener.Added added = mock(MailboxListener.Added.class);
when(added.getMailboxId()).thenReturn(MAILBOX_ID);
- when(added.getMetaData(MessageUid.of(36))).thenReturn(new SimpleMessageMetaData(MessageUid.of(36),0,new Flags(), SIZE, new Date(), new DefaultMessageId()));
- when(added.getMetaData(MessageUid.of(38))).thenReturn(new SimpleMessageMetaData(MessageUid.of(38),0,new Flags(), SIZE, new Date(), new DefaultMessageId()));
+ when(added.getMetaData(MessageUid.of(36))).thenReturn(new MessageMetaData(MessageUid.of(36),0,new Flags(), SIZE, new Date(), new DefaultMessageId()));
+ when(added.getMetaData(MessageUid.of(38))).thenReturn(new MessageMetaData(MessageUid.of(38),0,new Flags(), SIZE, new Date(), new DefaultMessageId()));
when(added.getUids()).thenReturn(Lists.newArrayList(MessageUid.of(36), MessageUid.of(38)));
when(added.getUser()).thenReturn(USER_BENWA);
when(mockedQuotaRootResolver.getQuotaRoot(eq(MAILBOX_ID))).thenReturn(QUOTA_ROOT);
@@ -87,8 +87,8 @@ public class ListeningCurrentQuotaUpdaterTest {
@Test
public void expungedEventShouldDecreaseCurrentQuotaValues() throws Exception {
MailboxListener.Expunged expunged = mock(MailboxListener.Expunged.class);
- when(expunged.getMetaData(MessageUid.of(36))).thenReturn(new SimpleMessageMetaData(MessageUid.of(36),0,new Flags(), SIZE, new Date(), new DefaultMessageId()));
- when(expunged.getMetaData(MessageUid.of(38))).thenReturn(new SimpleMessageMetaData(MessageUid.of(38),0,new Flags(), SIZE, new Date(), new DefaultMessageId()));
+ when(expunged.getMetaData(MessageUid.of(36))).thenReturn(new MessageMetaData(MessageUid.of(36),0,new Flags(), SIZE, new Date(), new DefaultMessageId()));
+ when(expunged.getMetaData(MessageUid.of(38))).thenReturn(new MessageMetaData(MessageUid.of(38),0,new Flags(), SIZE, new Date(), new DefaultMessageId()));
when(expunged.getUids()).thenReturn(Lists.newArrayList(MessageUid.of(36), MessageUid.of(38)));
when(expunged.getMailboxId()).thenReturn(MAILBOX_ID);
when(expunged.getUser()).thenReturn(USER_BENWA);
http://git-wip-us.apache.org/repos/asf/james-project/blob/b16d06f0/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 e26ff4f..cc12128 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
@@ -46,7 +46,6 @@ import org.apache.james.mailbox.model.MessageResult;
import org.apache.james.mailbox.model.MessageResultIterator;
import org.apache.james.mailbox.model.TestId;
import org.apache.james.mailbox.model.UpdatedFlags;
-import org.apache.james.mailbox.store.SimpleMessageMetaData;
import org.apache.james.mailbox.store.event.EventFactory;
import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
@@ -149,7 +148,7 @@ public class MailboxEventAnalyserTest {
MailboxListener.Added mailboxAdded = eventFactory.added(
MAILBOX_SESSION,
ImmutableSortedMap.of(MessageUid.of(11),
- new SimpleMessageMetaData(MessageUid.of(11), 0, new Flags(), 45, new Date(), new DefaultMessageId())),
+ new MessageMetaData(MessageUid.of(11), 0, new Flags(), 45, new Date(), new DefaultMessageId())),
DEFAULT_MAILBOX);
testee.event(mailboxAdded);
assertThat(testee.isSizeChanged()).isTrue();
@@ -160,7 +159,7 @@ public class MailboxEventAnalyserTest {
MailboxListener.Added mailboxAdded = eventFactory.added(
MAILBOX_SESSION,
ImmutableSortedMap.of(MessageUid.of(11),
- new SimpleMessageMetaData(MessageUid.of(11), 0, new Flags(), 45, new Date(), new DefaultMessageId())),
+ new MessageMetaData(MessageUid.of(11), 0, new Flags(), 45, new Date(), new DefaultMessageId())),
DEFAULT_MAILBOX);
testee.event(mailboxAdded);
testee.resetEvents();
http://git-wip-us.apache.org/repos/asf/james-project/blob/b16d06f0/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java
index 7973ab2..437c41f 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/SelectedMailboxImplTest.java
@@ -50,7 +50,6 @@ import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.MessageMetaData;
import org.apache.james.mailbox.model.SearchQuery;
import org.apache.james.mailbox.model.TestId;
-import org.apache.james.mailbox.store.SimpleMessageMetaData;
import org.apache.james.mailbox.store.event.EventFactory;
import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
import org.apache.james.mailbox.store.mail.model.Mailbox;
@@ -168,7 +167,7 @@ public class SelectedMailboxImplTest {
private void emitEvent(MailboxListener mailboxListener) {
SecureRandom random = new SecureRandom();
TreeMap<MessageUid, MessageMetaData> result = new TreeMap<>();
- result.put(EMITTED_EVENT_UID, new SimpleMessageMetaData(EMITTED_EVENT_UID, MOD_SEQ, new Flags(), SIZE, new Date(), new DefaultMessageId()));
+ result.put(EMITTED_EVENT_UID, new MessageMetaData(EMITTED_EVENT_UID, MOD_SEQ, new Flags(), SIZE, new Date(), new DefaultMessageId()));
mailboxListener.event(new EventFactory().added(MailboxSession.SessionId.of(random.nextLong()),
mock(User.class), result, mailbox));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org