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/07/17 02:24:20 UTC

[james-project] 06/31: JAMES-2904 Remove unused MessageResult::hasAttachment

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 d3cf49f82f9e2feb96db86e8f4a621f41b9b356c
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Wed Jul 15 13:22:04 2020 +0700

    JAMES-2904 Remove unused MessageResult::hasAttachment
---
 .../apache/james/mailbox/model/MessageResult.java  |  5 ----
 .../apache/james/mailbox/MailboxManagerTest.java   | 31 ---------------------
 .../cassandra/mail/CassandraMessageDAO.java        |  6 ----
 .../cassandra/mail/MessageRepresentation.java      |  5 +---
 .../model/openjpa/AbstractJPAMailboxMessage.java   |  6 ----
 .../mailbox/maildir/mail/model/MaildirMessage.java |  5 ----
 .../james/mailbox/store/MessageResultImpl.java     |  5 ----
 .../mailbox/store/StoreMessageResultIterator.java  |  5 ----
 .../store/mail/model/DelegatingMailboxMessage.java |  5 ----
 .../james/mailbox/store/mail/model/Message.java    |  2 --
 .../mail/model/impl/SimpleMailboxMessage.java      | 29 ++------------------
 .../store/mail/model/impl/SimpleMessage.java       |  9 +-----
 .../store/AbstractMessageIdManagerStorageTest.java | 32 ----------------------
 13 files changed, 5 insertions(+), 140 deletions(-)

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 0dabf05..515507b 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
@@ -163,9 +163,4 @@ public interface MessageResult extends Comparable<MessageResult> {
      */
     List<MessageAttachmentMetadata> getLoadedAttachments() throws MailboxException;
 
-    /**
-     * Indicates if the message have attachments, regardless of loaded attachments.
-     */
-    boolean hasAttachments() throws MailboxException;
-
 }
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 c1692e9..78d528e 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
@@ -64,7 +64,6 @@ import org.apache.james.mailbox.exception.TooLongMailboxNameException;
 import org.apache.james.mailbox.extension.PreDeletionHook;
 import org.apache.james.mailbox.mock.DataProvisioner;
 import org.apache.james.mailbox.model.ComposedMessageId;
-import org.apache.james.mailbox.model.ComposedMessageIdWithMetaData;
 import org.apache.james.mailbox.model.FetchGroup;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxAnnotation;
@@ -76,7 +75,6 @@ import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.model.MessageResult;
-import org.apache.james.mailbox.model.MessageResultIterator;
 import org.apache.james.mailbox.model.MultimailboxesSearchQuery;
 import org.apache.james.mailbox.model.Quota;
 import org.apache.james.mailbox.model.QuotaRoot;
@@ -93,7 +91,6 @@ import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mockito.ArgumentCaptor;
 
-import com.github.fge.lambdas.Throwing;
 import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
@@ -2721,34 +2718,6 @@ public abstract class MailboxManagerTest<T extends MailboxManager> {
                     .collectList().block())
                 .isEmpty();
         }
-
-        @Test
-        void getMessagesShouldIncludeHasAttachmentInformation() throws Exception {
-            ComposedMessageId composeId = inboxManager.appendMessage(AppendCommand.builder()
-                .withFlags(new Flags(Flags.Flag.DELETED))
-                .build(ClassLoaderUtils.getSystemResourceAsSharedStream("eml/twoAttachmentsApi.eml")), session).getId();
-
-            MessageResultIterator messages = inboxManager.getMessages(MessageRange.one(composeId.getUid()), FetchGroup.MINIMAL, session);
-
-            assertThat(messages).toIterable()
-                .hasSize(1)
-                .first()
-                .satisfies(Throwing.consumer(messageResult -> assertThat(messageResult.hasAttachments()).isTrue()));
-        }
-
-        @Test
-        void getMessagesShouldNotIncludeAttachmentInformationWhenNone() throws Exception {
-            ComposedMessageId composeId = inboxManager.appendMessage(AppendCommand.builder()
-                .withFlags(new Flags(Flags.Flag.DELETED))
-                .build(message), session).getId();
-
-            MessageResultIterator messages = inboxManager.getMessages(MessageRange.one(composeId.getUid()), FetchGroup.MINIMAL, session);
-
-            assertThat(messages).toIterable()
-                .hasSize(1)
-                .first()
-                .satisfies(Throwing.consumer(messageResult -> assertThat(messageResult.hasAttachments()).isFalse()));
-        }
     }
 
     @Nested
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
index 8c447d7..01ca6b9 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageDAO.java
@@ -263,7 +263,6 @@ public class CassandraMessageDAO {
                 row.getInt(BODY_START_OCTET),
                 new SharedByteArrayInputStream(content),
                 getPropertyBuilder(row),
-                hasAttachment(row),
                 getAttachments(row).collect(Guavate.toImmutableList())));
     }
 
@@ -285,11 +284,6 @@ public class CassandraMessageDAO {
         return attachmentByIds(udtValues);
     }
 
-    private boolean hasAttachment(Row row) {
-        List<UDTValue> udtValues = row.getList(ATTACHMENTS, UDTValue.class);
-        return !udtValues.isEmpty();
-    }
-
     private Stream<MessageAttachmentRepresentation> attachmentByIds(List<UDTValue> udtValues) {
         return udtValues.stream()
             .map(this::messageAttachmentByIdFrom);
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageRepresentation.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageRepresentation.java
index d627f2b..7a9a0b1 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageRepresentation.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/MessageRepresentation.java
@@ -37,18 +37,16 @@ public class MessageRepresentation {
     private final Integer bodySize;
     private final SharedByteArrayInputStream content;
     private final PropertyBuilder propertyBuilder;
-    private final boolean hasAttachment;
     private final List<MessageAttachmentRepresentation> attachments;
 
     public MessageRepresentation(MessageId messageId, Date internalDate, Long size, Integer bodySize, SharedByteArrayInputStream content,
-                                 PropertyBuilder propertyBuilder, boolean hasAttachment, List<MessageAttachmentRepresentation> attachments) {
+                                 PropertyBuilder propertyBuilder, List<MessageAttachmentRepresentation> attachments) {
         this.messageId = messageId;
         this.internalDate = internalDate;
         this.size = size;
         this.bodySize = bodySize;
         this.content = content;
         this.propertyBuilder = propertyBuilder;
-        this.hasAttachment = hasAttachment;
         this.attachments = attachments;
     }
 
@@ -65,7 +63,6 @@ public class MessageRepresentation {
             .flags(metadata.getFlags())
             .propertyBuilder(propertyBuilder)
             .addAttachments(attachments)
-            .hasAttachment(hasAttachment)
             .build();
     }
 
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 004c317..480989a 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
@@ -523,10 +523,4 @@ public abstract class AbstractJPAMailboxMessage implements MailboxMessage {
     private AttachmentId generateFixedAttachmentId(int position) {
         return AttachmentId.from(getMailboxId().serialize() + "-" + getUid().asLong() + "-" + position);
     }
-
-    @Override
-    public boolean hasAttachment() {
-        return !getAttachments().isEmpty();
-    }
-
 }
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
index d094699..3861dd9 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
@@ -292,9 +292,4 @@ public class MaildirMessage implements Message {
         return AttachmentId.from(messageName.getFullName() + "-" + position);
     }
 
-    @Override
-    public boolean hasAttachment() {
-        return !getAttachments().isEmpty();
-    }
-
 }
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 6d68e3d..b52a655 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
@@ -310,11 +310,6 @@ public class MessageResultImpl implements MessageResult {
         return message.getAttachments();
     }
 
-    @Override
-    public boolean hasAttachments() {
-        return message.hasAttachment();
-    }
-
     private static final class HeadersImpl implements Headers {
 
         private final MailboxMessage msg;
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 02a3b19..2fcd537 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
@@ -227,11 +227,6 @@ public class StoreMessageResultIterator implements MessageResultIterator {
         }
 
         @Override
-        public boolean hasAttachments() throws MailboxException {
-            throw exception;
-        }
-
-        @Override
         public int compareTo(MessageResult that) {
             return getUid().compareTo(that.getUid());
         }
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 398ec51..cdd3ff2 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
@@ -119,9 +119,4 @@ public abstract class DelegatingMailboxMessage implements MailboxMessage {
     public List<MessageAttachmentMetadata> getAttachments() {
         return message.getAttachments();
     }
-
-    @Override
-    public boolean hasAttachment() {
-        return message.hasAttachment();
-    }
 }
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Message.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Message.java
index c2e3fb8..9cacbfc 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Message.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Message.java
@@ -109,6 +109,4 @@ public interface Message {
      */
     List<MessageAttachmentMetadata> getAttachments();
 
-    boolean hasAttachment();
-
 }
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java
index c19d5c2..32be330 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java
@@ -65,7 +65,6 @@ public class SimpleMailboxMessage extends DelegatingMailboxMessage {
         private Optional<MessageUid> uid = Optional.empty();
         private Optional<ModSeq> modseq = Optional.empty();
         private ImmutableList.Builder<MessageAttachmentMetadata> attachments = ImmutableList.builder();
-        private Optional<Boolean> hasAttachment = Optional.empty();
 
         public Builder messageId(MessageId messageId) {
             this.messageId = messageId;
@@ -104,16 +103,6 @@ public class SimpleMailboxMessage extends DelegatingMailboxMessage {
             return this;
         }
 
-        public Builder hasAttachment() {
-            this.hasAttachment = Optional.of(true);
-            return this;
-        }
-
-        public Builder hasAttachment(boolean hasAttachment) {
-            this.hasAttachment = Optional.of(hasAttachment);
-            return this;
-        }
-
         public Builder flags(Flags flags) {
             this.flags = flags;
             return this;
@@ -145,9 +134,8 @@ public class SimpleMailboxMessage extends DelegatingMailboxMessage {
             Preconditions.checkNotNull(mailboxId, "mailboxId is required");
 
             ImmutableList<MessageAttachmentMetadata> attachments = this.attachments.build();
-            boolean hasAttachment = this.hasAttachment.orElse(!attachments.isEmpty());
             SimpleMailboxMessage simpleMailboxMessage = new SimpleMailboxMessage(messageId, internalDate, size,
-                bodyStartOctet, content, flags, propertyBuilder, mailboxId, attachments, hasAttachment);
+                bodyStartOctet, content, flags, propertyBuilder, mailboxId, attachments);
 
             uid.ifPresent(simpleMailboxMessage::setUid);
             modseq.ifPresent(simpleMailboxMessage::setModSeq);
@@ -175,7 +163,6 @@ public class SimpleMailboxMessage extends DelegatingMailboxMessage {
             .internalDate(original.getInternalDate())
             .size(original.getFullContentOctets())
             .flags(original.createFlags())
-            .hasAttachment(original.hasAttachment())
             .propertyBuilder(propertyBuilder);
     }
 
@@ -205,8 +192,7 @@ public class SimpleMailboxMessage extends DelegatingMailboxMessage {
 
     public SimpleMailboxMessage(MessageId messageId, Date internalDate, long size, int bodyStartOctet,
             SharedInputStream content, Flags flags,
-            PropertyBuilder propertyBuilder, MailboxId mailboxId, List<MessageAttachmentMetadata> attachments,
-            boolean hasAttachment) {
+            PropertyBuilder propertyBuilder, MailboxId mailboxId, List<MessageAttachmentMetadata> attachments) {
         super(new SimpleMessage(
                 messageId,
                 content, size, internalDate, propertyBuilder.getSubType(),
@@ -214,8 +200,7 @@ public class SimpleMailboxMessage extends DelegatingMailboxMessage {
                 bodyStartOctet,
                 propertyBuilder.getTextualLineCount(),
                 propertyBuilder.toProperties(),
-                attachments,
-                hasAttachment));
+                attachments));
 
             setFlags(flags);
             this.mailboxId = mailboxId;
@@ -223,14 +208,6 @@ public class SimpleMailboxMessage extends DelegatingMailboxMessage {
     }
 
     public SimpleMailboxMessage(MessageId messageId, Date internalDate, long size, int bodyStartOctet,
-            SharedInputStream content, Flags flags,
-            PropertyBuilder propertyBuilder, MailboxId mailboxId, List<MessageAttachmentMetadata> attachments) {
-        this(messageId, internalDate, size, bodyStartOctet,
-            content, flags,
-            propertyBuilder, mailboxId, attachments, !attachments.isEmpty());
-    }
-
-    public SimpleMailboxMessage(MessageId messageId, Date internalDate, long size, int bodyStartOctet,
                                 SharedInputStream content, Flags flags,
                                 PropertyBuilder propertyBuilder, MailboxId mailboxId) {
         this(messageId, internalDate, size, bodyStartOctet,
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMessage.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMessage.java
index 36042a3..62a5b86 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMessage.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMessage.java
@@ -42,9 +42,8 @@ public class SimpleMessage implements Message {
     private final Long textualLineCount;
     private final List<Property> properties;
     private final List<MessageAttachmentMetadata> attachments;
-    private final boolean hasAttachments;
 
-    public SimpleMessage(MessageId messageId, SharedInputStream content, long size, Date internalDate, String subType, String mediaType, int bodyStartOctet, Long textualLineCount, List<Property> properties, List<MessageAttachmentMetadata> attachments, boolean hasAttachments) {
+    public SimpleMessage(MessageId messageId, SharedInputStream content, long size, Date internalDate, String subType, String mediaType, int bodyStartOctet, Long textualLineCount, List<Property> properties, List<MessageAttachmentMetadata> attachments) {
         this.messageId = messageId;
         this.subType = subType;
         this.mediaType = mediaType;
@@ -55,7 +54,6 @@ public class SimpleMessage implements Message {
         this.textualLineCount = textualLineCount;
         this.properties = properties;
         this.attachments = attachments;
-        this.hasAttachments = hasAttachments;
     }
 
     @Override
@@ -126,9 +124,4 @@ public class SimpleMessage implements Message {
     public List<MessageAttachmentMetadata> getAttachments() {
         return attachments;
     }
-
-    @Override
-    public boolean hasAttachment() {
-        return hasAttachments;
-    }
 }
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
index 4c7f73a..8416d42 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerStorageTest.java
@@ -49,11 +49,9 @@ import org.apache.james.mailbox.model.MailboxACL.Right;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.model.MessageResult;
-import org.apache.james.util.ClassLoaderUtils;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import com.github.fge.lambdas.Throwing;
 import com.github.steveash.guavate.Guavate;
 import com.google.common.collect.ImmutableList;
 
@@ -981,34 +979,4 @@ public abstract class AbstractMessageIdManagerStorageTest {
             .extracting(MessageResult::getFlags)
             .containsOnly(flags);
     }
-
-    @Test
-    void getMessagesShouldIncludeAttachmentInformation() throws Exception {
-        MessageId messageId = testingData.getMailboxManager().getMailbox(bobMailbox1.getMailboxId(), bobSession)
-            .appendMessage(MessageManager.AppendCommand.builder()
-            .withFlags(new Flags(Flags.Flag.DELETED))
-            .build(ClassLoaderUtils.getSystemResourceAsSharedStream("eml/twoAttachmentsApi.eml")), bobSession)
-            .getId()
-            .getMessageId();
-
-        List<MessageResult> messages = messageIdManager.getMessage(messageId, FetchGroup.MINIMAL, bobSession);
-
-        assertThat(messages)
-            .hasSize(1)
-            .first()
-            .satisfies(Throwing.consumer(messageResult -> assertThat(messageResult.hasAttachments()).isTrue()));
-    }
-
-    @Test
-    void getMessagesShouldNotIncludeAttachmentInformationWhenNone() throws Exception {
-        Flags flags = new Flags(Flags.Flag.FLAGGED);
-        MessageId messageId = testingData.persist(bobMailbox1.getMailboxId(), messageUid1, flags, bobSession);
-
-        List<MessageResult> messages = messageIdManager.getMessage(messageId, FetchGroup.MINIMAL, bobSession);
-
-        assertThat(messages)
-            .hasSize(1)
-            .first()
-            .satisfies(Throwing.consumer(messageResult -> assertThat(messageResult.hasAttachments()).isFalse()));
-    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org