You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by rc...@apache.org on 2021/05/25 08:58:29 UTC
[james-project] branch master updated (1a45cbe -> ff7c608)
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git.
from 1a45cbe JAMES-3587 Optimize MDCBuilder::build
new f51daec JAMES-3516 Define ThreadId POJO
new 5650dcf JAMES-3516 Add ThreadIdTest
new c539fe3 JAMES-3516 Add getThreadId method to MailboxMessage and fix its implementations
new cc5f2b3 JAMES-3516 Add getThreadId method to MessageResult and fix its implementations
new ff7c608 JAMES-3516 Add threadId unit tests following MessageResult and MailboxMessage POJOs changes
The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../apache/james/mailbox/model/MessageResult.java | 2 +
.../org/apache/james/mailbox/model/ThreadId.java | 66 +++++++++++-----------
.../apache/james/mailbox/MailboxManagerTest.java | 7 +++
.../{CurrentQuotasTest.java => ThreadIdTest.java} | 42 +++++++-------
.../model/openjpa/AbstractJPAMailboxMessage.java | 6 ++
.../james/mailbox/store/MessageResultImpl.java | 8 ++-
.../mailbox/store/StoreMessageResultIterator.java | 6 ++
.../store/mail/model/DelegatingMailboxMessage.java | 5 ++
.../mailbox/store/mail/model/MailboxMessage.java | 3 +
.../mail/model/impl/SimpleMailboxMessageTest.java | 5 ++
10 files changed, 94 insertions(+), 56 deletions(-)
copy protocols/imap/src/main/java/org/apache/james/imap/api/Tag.java => mailbox/api/src/main/java/org/apache/james/mailbox/model/ThreadId.java (68%)
copy mailbox/api/src/test/java/org/apache/james/mailbox/model/{CurrentQuotasTest.java => ThreadIdTest.java} (83%)
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org
[james-project] 04/05: JAMES-3516 Add getThreadId method to
MessageResult and fix its implementations
Posted by rc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit cc5f2b345448e01738aa3a878baf670095581abc
Author: quanth <hq...@linagora.com>
AuthorDate: Fri May 21 15:17:06 2021 +0700
JAMES-3516 Add getThreadId method to MessageResult and fix its implementations
---
.../main/java/org/apache/james/mailbox/model/MessageResult.java | 2 ++
.../java/org/apache/james/mailbox/store/MessageResultImpl.java | 8 +++++++-
.../apache/james/mailbox/store/StoreMessageResultIterator.java | 6 ++++++
3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageResult.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageResult.java
index 515507b..331ddf6 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageResult.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MessageResult.java
@@ -62,6 +62,8 @@ import org.apache.james.mailbox.exception.MailboxException;
public interface MessageResult extends Comparable<MessageResult> {
MessageId getMessageId();
+ ThreadId getThreadId();
+
Date getInternalDate();
Flags getFlags();
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java
index c7671c9..f4cee70 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/MessageResultImpl.java
@@ -42,6 +42,7 @@ import org.apache.james.mailbox.model.MessageMetaData;
import org.apache.james.mailbox.model.MessageResult;
import org.apache.james.mailbox.model.MimeDescriptor;
import org.apache.james.mailbox.model.MimePath;
+import org.apache.james.mailbox.model.ThreadId;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.apache.james.mailbox.store.streaming.InputStreamContent;
import org.apache.james.mailbox.store.streaming.InputStreamContent.Type;
@@ -87,7 +88,12 @@ public class MessageResultImpl implements MessageResult {
public MessageId getMessageId() {
return message.getMessageId();
}
-
+
+ @Override
+ public ThreadId getThreadId() {
+ return message.getThreadId();
+ }
+
@Override
public Date getInternalDate() {
return message.getInternalDate();
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageResultIterator.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageResultIterator.java
index 2fcd537..0d5ea7a 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageResultIterator.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageResultIterator.java
@@ -46,6 +46,7 @@ import org.apache.james.mailbox.model.MessageResult;
import org.apache.james.mailbox.model.MessageResultIterator;
import org.apache.james.mailbox.model.MimeDescriptor;
import org.apache.james.mailbox.model.MimePath;
+import org.apache.james.mailbox.model.ThreadId;
import org.apache.james.mailbox.store.mail.MessageMapper;
import org.apache.james.mailbox.store.mail.MessageMapper.FetchType;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
@@ -192,6 +193,11 @@ public class StoreMessageResultIterator implements MessageResultIterator {
}
@Override
+ public ThreadId getThreadId() {
+ return new ThreadId(messageMetaData.getMessageId());
+ }
+
+ @Override
public Date getInternalDate() {
return messageMetaData().getInternalDate();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org
[james-project] 02/05: JAMES-3516 Add ThreadIdTest
Posted by rc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 5650dcff195aef70268647799228b911fc55aa4a
Author: quanth <hq...@linagora.com>
AuthorDate: Fri May 21 14:15:58 2021 +0700
JAMES-3516 Add ThreadIdTest
---
.../apache/james/mailbox/model/ThreadIdTest.java | 32 ++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/ThreadIdTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/ThreadIdTest.java
new file mode 100644
index 0000000..001be9f
--- /dev/null
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/ThreadIdTest.java
@@ -0,0 +1,32 @@
+/******************************************************************
+ * 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.model;
+
+import org.junit.jupiter.api.Test;
+
+import nl.jqno.equalsverifier.EqualsVerifier;
+
+public class ThreadIdTest {
+ @Test
+ void shouldMatchBeanContact() {
+ EqualsVerifier.forClass(ThreadId.class)
+ .verify();
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org
[james-project] 03/05: JAMES-3516 Add getThreadId method to
MailboxMessage and fix its implementations
Posted by rc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit c539fe32bde4e25c05a6c8b514a52b923781cc4b
Author: quanth <hq...@linagora.com>
AuthorDate: Fri May 21 15:07:04 2021 +0700
JAMES-3516 Add getThreadId method to MailboxMessage and fix its implementations
---
.../mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java | 6 ++++++
.../james/mailbox/store/mail/model/DelegatingMailboxMessage.java | 5 +++++
.../org/apache/james/mailbox/store/mail/model/MailboxMessage.java | 3 +++
3 files changed, 14 insertions(+)
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java
index 7f62ce3..6c833e2 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/openjpa/AbstractJPAMailboxMessage.java
@@ -55,6 +55,7 @@ import org.apache.james.mailbox.model.ComposedMessageIdWithMetaData;
import org.apache.james.mailbox.model.MessageAttachmentMetadata;
import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.model.ParsedAttachment;
+import org.apache.james.mailbox.model.ThreadId;
import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
import org.apache.james.mailbox.store.mail.model.DelegatingMailboxMessage;
import org.apache.james.mailbox.store.mail.model.FlagsFactory;
@@ -493,6 +494,11 @@ public abstract class AbstractJPAMailboxMessage implements MailboxMessage {
return new DefaultMessageId();
}
+ @Override
+ public ThreadId getThreadId() {
+ return new ThreadId(getMessageId());
+ }
+
public String toString() {
return "message("
+ "mailboxId = " + this.getMailboxId() + TOSTRING_SEPARATOR
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DelegatingMailboxMessage.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DelegatingMailboxMessage.java
index 6b5c5f9..94fa44d 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DelegatingMailboxMessage.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/DelegatingMailboxMessage.java
@@ -27,6 +27,7 @@ import javax.mail.Flags;
import org.apache.james.mailbox.model.MessageAttachmentMetadata;
import org.apache.james.mailbox.model.MessageId;
+import org.apache.james.mailbox.model.ThreadId;
import org.apache.james.mailbox.store.mail.model.impl.Properties;
public abstract class DelegatingMailboxMessage implements MailboxMessage {
@@ -112,6 +113,10 @@ public abstract class DelegatingMailboxMessage implements MailboxMessage {
return message.getMessageId();
}
+ public ThreadId getThreadId() {
+ return new ThreadId(message.getMessageId());
+ }
+
public Message getMessage() {
return message;
}
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 2ecf5b0..b92930c 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
@@ -25,6 +25,7 @@ import org.apache.james.mailbox.ModSeq;
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.model.ThreadId;
/**
* A MIME message, consisting of meta-data (including MIME headers)
@@ -33,6 +34,8 @@ import org.apache.james.mailbox.model.MessageMetaData;
*/
public interface MailboxMessage extends Message, Comparable<MailboxMessage> {
+ ThreadId getThreadId();
+
ComposedMessageIdWithMetaData getComposedMessageIdWithMetaData();
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org
[james-project] 01/05: JAMES-3516 Define ThreadId POJO
Posted by rc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit f51daec1092dee00af37dd28ed94c805ce8a714b
Author: quanth <hq...@linagora.com>
AuthorDate: Fri May 21 14:15:35 2021 +0700
JAMES-3516 Define ThreadId POJO
---
.../org/apache/james/mailbox/model/ThreadId.java | 58 ++++++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/ThreadId.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/ThreadId.java
new file mode 100644
index 0000000..1f76adf
--- /dev/null
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/ThreadId.java
@@ -0,0 +1,58 @@
+/******************************************************************
+ * 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.model;
+
+import java.util.Objects;
+
+import com.google.common.base.MoreObjects;
+
+
+public class ThreadId {
+ private final MessageId baseMessageId;
+
+ public ThreadId(MessageId baseMessageId) {
+ this.baseMessageId = baseMessageId;
+ }
+
+ public MessageId getBaseMessageId() {
+ return baseMessageId;
+ }
+
+ @Override
+ public final boolean equals(Object o) {
+ if (o instanceof ThreadId) {
+ ThreadId that = (ThreadId) o;
+ return Objects.equals(this.baseMessageId, that.baseMessageId);
+ }
+ return false;
+ }
+
+ @Override
+ public final int hashCode() {
+ return Objects.hashCode(baseMessageId);
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("baseMessageId", baseMessageId)
+ .toString();
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org
[james-project] 05/05: JAMES-3516 Add threadId unit tests following
MessageResult and MailboxMessage POJOs changes
Posted by rc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
rcordier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit ff7c60836bd7a58f4d41e4663b131886cce5588e
Author: quanth <hq...@linagora.com>
AuthorDate: Mon May 24 11:43:40 2021 +0700
JAMES-3516 Add threadId unit tests following MessageResult and MailboxMessage POJOs changes
---
.../src/test/java/org/apache/james/mailbox/MailboxManagerTest.java | 7 +++++++
.../mailbox/store/mail/model/impl/SimpleMailboxMessageTest.java | 5 +++++
2 files changed, 12 insertions(+)
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
index 7a23c69..4cce073 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java
@@ -2855,6 +2855,13 @@ public abstract class MailboxManagerTest<T extends MailboxManager> {
.collectList().block())
.isEmpty();
}
+
+ @Test
+ void shouldBeAbleToAccessThreadIdOfAMessageAndThatThreadIdShouldWrapsMessageId() throws Exception {
+ ComposedMessageId composeId1 = inboxManager.appendMessage(AppendCommand.builder().build(message), session).getId();
+ MessageResult messageResult = inboxManager.getMessages(MessageRange.one(composeId1.getUid()), FetchGroup.MINIMAL, session).next();
+ assertThat(messageResult.getThreadId().getBaseMessageId()).isInstanceOf(MessageId.class);
+ }
}
@Nested
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessageTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessageTest.java
index 6082fc4..910ff8d 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessageTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessageTest.java
@@ -334,4 +334,9 @@ class SimpleMailboxMessageTest {
.isInstanceOf(NullPointerException.class);
}
+ @Test
+ void simpleMessageShouldReturnThreadIdWhichWrapsMessageId() {
+ assertThat(message.getThreadId().getBaseMessageId()).isEqualTo(message.getMessageId());
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org