JAMES-1934 Merge IndexableMessageWithId into IndexableMessage and make it immutable
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/83e9e0c4 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/83e9e0c4 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/83e9e0c4 Branch: refs/heads/master Commit: 83e9e0c46de33800ef88fd9c5a8492acec000541 Parents: 98e7ccb Author: Luc DUZAN <[email protected]> Authored: Thu Feb 9 11:22:19 2017 +0100 Committer: Benoit Tellier <[email protected]> Committed: Wed Feb 15 06:59:45 2017 +0700 ---------------------------------------------------------------------- .../elasticsearch/json/IndexableMessage.java | 551 +++++++++++-------- .../json/IndexableMessageWithMessageId.java | 72 --- .../json/MessageToElasticSearchJson.java | 32 +- .../json/IndexableMessageTest.java | 166 +++++- .../json/MessageToElasticSearchJsonTest.java | 4 +- 5 files changed, 495 insertions(+), 330 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/83e9e0c4/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessage.java ---------------------------------------------------------------------- diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessage.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessage.java index 6150b19..c6e3ce7 100644 --- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessage.java +++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessage.java @@ -48,186 +48,288 @@ import com.google.common.collect.Multimap; public class IndexableMessage { - public static final SimpleProperty HAS_ATTACHMENT_PROPERTY = new SimpleProperty(PropertyBuilder.JAMES_INTERNALS, PropertyBuilder.HAS_ATTACHMENT, "true"); + public static class Builder { + private static ZonedDateTime getSanitizedInternalDate(MailboxMessage message, ZoneId zoneId) { + if (message.getInternalDate() == null) { + return ZonedDateTime.now(); + } + return ZonedDateTime.ofInstant( + Instant.ofEpochMilli(message.getInternalDate().getTime()), + zoneId); + } + private IndexAttachments indexAttachments; + private MailboxMessage message; + private TextExtractor textExtractor; + private List<User> users; - public static IndexableMessage from(MailboxMessage message, List<User> users, TextExtractor textExtractor, - ZoneId zoneId, IndexAttachments indexAttachments) { + private ZoneId zoneId; - Preconditions.checkNotNull(message.getMailboxId()); - Preconditions.checkArgument(!users.isEmpty()); - IndexableMessage indexableMessage = new IndexableMessage(); - try { - MimePart parsingResult = new MimePartParser(message, textExtractor).parse(); - indexableMessage.users = users.stream().map(User::getUserName).collect(Guavate.toImmutableList()); - indexableMessage.bodyText = parsingResult.locateFirstTextBody(); - indexableMessage.bodyHtml = parsingResult.locateFirstHtmlBody(); - indexableMessage.hasAttachment = message.getProperties() - .stream() - .anyMatch(property -> property.equals(HAS_ATTACHMENT_PROPERTY)); - indexableMessage.setFlattenedAttachments(parsingResult, indexAttachments); - indexableMessage.copyHeaderFields(parsingResult.getHeaderCollection(), getSanitizedInternalDate(message, zoneId)); - indexableMessage.generateText(); - } catch (IOException | MimeException e) { - throw Throwables.propagate(e); + private Builder() { } - indexableMessage.copyMessageFields(message, zoneId); - return indexableMessage; - } - private void setFlattenedAttachments(MimePart parsingResult, IndexAttachments indexAttachments) { - List<MimePart> mimeparts = parsingResult.getAttachmentsStream() + public IndexableMessage build() { + Preconditions.checkNotNull(message.getMailboxId()); + Preconditions.checkNotNull(message.getMessageId()); + Preconditions.checkNotNull(users); + Preconditions.checkNotNull(textExtractor); + Preconditions.checkNotNull(indexAttachments); + Preconditions.checkNotNull(zoneId); + Preconditions.checkState(!users.isEmpty()); + + try { + return instanciateIndexedMessage(); + } catch (IOException | MimeException e) { + throw Throwables.propagate(e); + } + } + + public Builder extractor(TextExtractor textExtractor) { + this.textExtractor = textExtractor; + return this; + } + + public Builder indexAttachments(IndexAttachments indexAttachments) { + this.indexAttachments = indexAttachments; + return this; + } + + public Builder message(MailboxMessage message) { + this.message = message; + return this; + } + + public Builder users(List<User> users) { + this.users = users; + return this; + } + + public Builder zoneId(ZoneId zoneId) { + this.zoneId = zoneId; + return this; + } + + private boolean computeHasAttachment(MailboxMessage message) { + return message.getProperties() + .stream() + .anyMatch(property -> property.equals(HAS_ATTACHMENT_PROPERTY)); + } + + private IndexableMessage instanciateIndexedMessage() throws IOException, MimeException { + String messageId = message.getMessageId().serialize(); + MimePart parsingResult = new MimePartParser(message, textExtractor).parse(); + + List<String> stringifiedUsers = users.stream() + .map(User::getUserName) .collect(Guavate.toImmutableList()); - if (IndexAttachments.YES.equals(indexAttachments)) { - this.attachments = mimeparts; - } else { - this.attachments = ImmutableList.of(); + Optional<String> bodyText = parsingResult.locateFirstTextBody(); + Optional<String> bodyHtml = parsingResult.locateFirstHtmlBody(); + + boolean hasAttachment = computeHasAttachment(message); + List<MimePart> attachments = setFlattenedAttachments(parsingResult, indexAttachments); + + HeaderCollection headerCollection = parsingResult.getHeaderCollection(); + ZonedDateTime internalDate = getSanitizedInternalDate(message, zoneId); + + Multimap<String, String> headers = headerCollection.getHeaders(); + Subjects subjects = Subjects.from(headerCollection.getSubjectSet()); + EMailers from = EMailers.from(headerCollection.getFromAddressSet()); + EMailers to = EMailers.from(headerCollection.getToAddressSet()); + EMailers replyTo = EMailers.from(headerCollection.getReplyToAddressSet()); + EMailers cc = EMailers.from(headerCollection.getCcAddressSet()); + EMailers bcc = EMailers.from(headerCollection.getBccAddressSet()); + String sentDate = DateResolutionFormater.DATE_TIME_FOMATTER.format(headerCollection.getSentDate().orElse(internalDate)); + + String text = Stream.of(from.serialize(), + to.serialize(), + cc.serialize(), + bcc.serialize(), + subjects.serialize(), + bodyText.orElse(null), + bodyHtml.orElse(null)) + .filter(str -> !Strings.isNullOrEmpty(str)) + .collect(Collectors.joining(" ")); + + long uid = message.getUid().asLong(); + String mailboxId = message.getMailboxId().serialize(); + long modSeq = message.getModSeq(); + long size = message.getFullContentOctets(); + String date = DateResolutionFormater.DATE_TIME_FOMATTER.format(getSanitizedInternalDate(message, zoneId)); + String mediaType = message.getMediaType(); + String subType = message.getSubType(); + boolean isAnswered = message.isAnswered(); + boolean isDeleted = message.isDeleted(); + boolean isDraft = message.isDraft(); + boolean isFlagged = message.isFlagged(); + boolean isRecent = message.isRecent(); + boolean isUnRead = !message.isSeen(); + String[] userFlags = message.createFlags().getUserFlags(); + List<Property> properties = message.getProperties(); + + return new IndexableMessage( + attachments, + bcc, + bodyHtml, + bodyText, + cc, + date, + from, + hasAttachment, + headers, + isAnswered, + isDeleted, + isDraft, + isFlagged, + isRecent, + isUnRead, + mailboxId, + mediaType, + messageId, + modSeq, + properties, + replyTo, + sentDate, + size, + subjects, + subType, + text, + to, + uid, + userFlags, + stringifiedUsers); } - } - private void copyHeaderFields(HeaderCollection headerCollection, ZonedDateTime internalDate) { - this.headers = headerCollection.getHeaders(); - this.subjects = Subjects.from(headerCollection.getSubjectSet()); - this.from = EMailers.from(headerCollection.getFromAddressSet()); - this.to = EMailers.from(headerCollection.getToAddressSet()); - this.replyTo = EMailers.from(headerCollection.getReplyToAddressSet()); - this.cc = EMailers.from(headerCollection.getCcAddressSet()); - this.bcc = EMailers.from(headerCollection.getBccAddressSet()); - this.sentDate = DateResolutionFormater.DATE_TIME_FOMATTER.format(headerCollection.getSentDate().orElse(internalDate)); - } - - private void copyMessageFields(MailboxMessage message, ZoneId zoneId) { - this.uid = message.getUid().asLong(); - this.mailboxId = message.getMailboxId().serialize(); - this.modSeq = message.getModSeq(); - this.size = message.getFullContentOctets(); - this.date = DateResolutionFormater.DATE_TIME_FOMATTER.format(getSanitizedInternalDate(message, zoneId)); - this.mediaType = message.getMediaType(); - this.subType = message.getSubType(); - this.isAnswered = message.isAnswered(); - this.isDeleted = message.isDeleted(); - this.isDraft = message.isDraft(); - this.isFlagged = message.isFlagged(); - this.isRecent = message.isRecent(); - this.isUnRead = ! message.isSeen(); - this.userFlags = message.createFlags().getUserFlags(); - this.properties = message.getProperties(); - } - - private static ZonedDateTime getSanitizedInternalDate(MailboxMessage message, ZoneId zoneId) { - if (message.getInternalDate() == null) { - return ZonedDateTime.now(); + private List<MimePart> setFlattenedAttachments(MimePart parsingResult, IndexAttachments indexAttachments) { + if (IndexAttachments.YES.equals(indexAttachments)) { + return parsingResult.getAttachmentsStream() + .collect(Guavate.toImmutableList()); + } else { + return ImmutableList.of(); + } } - return ZonedDateTime.ofInstant( - Instant.ofEpochMilli(message.getInternalDate().getTime()), - zoneId); - } - - private void generateText() { - this.text = Stream.of(from.serialize(), - to.serialize(), - cc.serialize(), - bcc.serialize(), - subjects.serialize(), - bodyText.orElse(null), - bodyHtml.orElse(null)) - .filter(str -> !Strings.isNullOrEmpty(str)) - .collect(Collectors.joining(" ")); - } - - private long uid; - private String mailboxId; - private List<String> users; - private long modSeq; - private long size; - private String date; - private String mediaType; - private String subType; - private boolean hasAttachment; - private boolean isUnRead; - private boolean isRecent; - private boolean isFlagged; - private boolean isDeleted; - private boolean isDraft; - private boolean isAnswered; - private String[] userFlags; - private Multimap<String, String> headers; - private EMailers from; - private EMailers to; - private EMailers cc; - private EMailers bcc; - private EMailers replyTo; - private Subjects subjects; - private String sentDate; - private List<Property> properties; - private List<MimePart> attachments; - private Optional<String> bodyText; - private Optional<String> bodyHtml; - private String text; - - - public IndexableMessage(long uid, String mailboxId, List<String> users, long modSeq, long size, String date, String mediaType, - String subType, boolean isUnRead, boolean isRecent, boolean isFlagged, boolean isDeleted, boolean isDraft, - boolean isAnswered, String[] userFlags, Multimap<String, String> headers, EMailers from, EMailers to, - EMailers cc, EMailers bcc, EMailers replyTo, Subjects subjects, String sentDate, List<Property> properties, - List<MimePart> attachments, boolean hasAttachment, Optional<String> bodyText, Optional<String> bodyHtml, String text) { - this.uid = uid; - this.mailboxId = mailboxId; - this.users = users; - this.modSeq = modSeq; - this.size = size; + } + + public static final SimpleProperty HAS_ATTACHMENT_PROPERTY = new SimpleProperty(PropertyBuilder.JAMES_INTERNALS, PropertyBuilder.HAS_ATTACHMENT, "true"); + + public static Builder builder() { + return new Builder(); + } + + private final List<MimePart> attachments; + private final EMailers bcc; + private final Optional<String> bodyHtml; + private final Optional<String> bodyText; + private final EMailers cc; + private final String date; + private final EMailers from; + private final boolean hasAttachment; + private final Multimap<String, String> headers; + private final boolean isAnswered; + private final boolean isDeleted; + private final boolean isDraft; + private final boolean isFlagged; + private final boolean isRecent; + private final boolean isUnRead; + private final String mailboxId; + private final String mediaType; + private final String messageId; + private final long modSeq; + private final List<Property> properties; + private final EMailers replyTo; + private final String sentDate; + private final long size; + private final Subjects subjects; + private final String subType; + private final String text; + private final EMailers to; + private final long uid; + private final String[] userFlags; + private final List<String> users; + + private IndexableMessage( + List<MimePart> attachments, + EMailers bcc, + Optional<String> bodyHtml, + Optional<String> bodyText, + EMailers cc, + String date, + EMailers from, + boolean hasAttachment, + Multimap<String, String> headers, + boolean isAnswered, + boolean isDeleted, + boolean isDraft, + boolean isFlagged, + boolean isRecent, + boolean isUnRead, + String mailboxId, + String mediaType, + String messageId, + long modSeq, + List<Property> properties, + EMailers replyTo, + String sentDate, + long size, + Subjects subjects, + String subType, + String text, + EMailers to, + long uid, + String[] userFlags, + List<String> users) { + this.attachments = attachments; + this.bcc = bcc; + this.bodyHtml = bodyHtml; + this.bodyText = bodyText; + this.cc = cc; this.date = date; - this.mediaType = mediaType; - this.subType = subType; - this.isUnRead = isUnRead; - this.isRecent = isRecent; - this.isFlagged = isFlagged; + this.from = from; + this.hasAttachment = hasAttachment; + this.headers = headers; + this.isAnswered = isAnswered; this.isDeleted = isDeleted; this.isDraft = isDraft; - this.isAnswered = isAnswered; - this.userFlags = userFlags; - this.headers = headers; - this.from = from; - this.to = to; - this.cc = cc; - this.bcc = bcc; + this.isFlagged = isFlagged; + this.isRecent = isRecent; + this.isUnRead = isUnRead; + this.mailboxId = mailboxId; + this.mediaType = mediaType; + this.messageId = messageId; + this.modSeq = modSeq; + this.properties = properties; this.replyTo = replyTo; - this.subjects = subjects; this.sentDate = sentDate; - this.properties = properties; - this.attachments = attachments; - this.hasAttachment = hasAttachment; - this.bodyText = bodyText; - this.bodyHtml = bodyHtml; + this.size = size; + this.subjects = subjects; + this.subType = subType; this.text = text; + this.to = to; + this.uid = uid; + this.userFlags = userFlags; + this.users = users; } - public IndexableMessage() { - } - - @JsonProperty(JsonMessageConstants.UID) - public Long getUid() { - return uid; + @JsonProperty(JsonMessageConstants.ATTACHMENTS) + public List<MimePart> getAttachments() { + return attachments; } - - @JsonProperty(JsonMessageConstants.MAILBOX_ID) - public String getMailboxId() { - return mailboxId; + @JsonProperty(JsonMessageConstants.BCC) + public EMailers getBcc() { + return bcc; } - - @JsonProperty(JsonMessageConstants.USERS) - public List<String> getUsers() { - return users; + @JsonProperty(JsonMessageConstants.HTML_BODY) + public Optional<String> getBodyHtml() { + return bodyHtml; } - @JsonProperty(JsonMessageConstants.MODSEQ) - public long getModSeq() { - return modSeq; + @JsonProperty(JsonMessageConstants.TEXT_BODY) + public Optional<String> getBodyText() { + return bodyText; } - @JsonProperty(JsonMessageConstants.SIZE) - public long getSize() { - return size; + @JsonProperty(JsonMessageConstants.CC) + public EMailers getCc() { + return cc; } @JsonProperty(JsonMessageConstants.DATE) @@ -235,54 +337,59 @@ public class IndexableMessage { return date; } - @JsonProperty(JsonMessageConstants.MEDIA_TYPE) - public String getMediaType() { - return mediaType; + @JsonProperty(JsonMessageConstants.FROM) + public EMailers getFrom() { + return from; } - @JsonProperty(JsonMessageConstants.SUBTYPE) - public String getSubType() { - return subType; + @JsonProperty(JsonMessageConstants.HAS_ATTACHMENT) + public boolean getHasAttachment() { + return hasAttachment; } - @JsonProperty(JsonMessageConstants.IS_UNREAD) - public boolean isUnRead() { - return isUnRead; + @JsonProperty(JsonMessageConstants.HEADERS) + public Multimap<String, String> getHeaders() { + return headers; } - @JsonProperty(JsonMessageConstants.IS_RECENT) - public boolean isRecent() { - return isRecent; + @JsonProperty(JsonMessageConstants.MAILBOX_ID) + public String getMailboxId() { + return mailboxId; } - @JsonProperty(JsonMessageConstants.IS_FLAGGED) - public boolean isFlagged() { - return isFlagged; + @JsonProperty(JsonMessageConstants.MEDIA_TYPE) + public String getMediaType() { + return mediaType; } - @JsonProperty(JsonMessageConstants.IS_DELETED) - public boolean isDeleted() { - return isDeleted; + @JsonProperty(JsonMessageConstants.MESSAGE_ID) + public String getMessageId() { + return messageId; } - @JsonProperty(JsonMessageConstants.IS_DRAFT) - public boolean isDraft() { - return isDraft; + @JsonProperty(JsonMessageConstants.MODSEQ) + public long getModSeq() { + return modSeq; } - @JsonProperty(JsonMessageConstants.IS_ANSWERED) - public boolean isAnswered() { - return isAnswered; + @JsonProperty(JsonMessageConstants.PROPERTIES) + public List<Property> getProperties() { + return properties; } - @JsonProperty(JsonMessageConstants.USER_FLAGS) - public String[] getUserFlags() { - return userFlags; + @JsonProperty(JsonMessageConstants.REPLY_TO) + public EMailers getReplyTo() { + return replyTo; } - @JsonProperty(JsonMessageConstants.HEADERS) - public Multimap<String, String> getHeaders() { - return headers; + @JsonProperty(JsonMessageConstants.SENT_DATE) + public String getSentDate() { + return sentDate; + } + + @JsonProperty(JsonMessageConstants.SIZE) + public long getSize() { + return size; } @JsonProperty(JsonMessageConstants.SUBJECT) @@ -290,9 +397,14 @@ public class IndexableMessage { return subjects; } - @JsonProperty(JsonMessageConstants.FROM) - public EMailers getFrom() { - return from; + @JsonProperty(JsonMessageConstants.SUBTYPE) + public String getSubType() { + return subType; + } + + @JsonProperty(JsonMessageConstants.TEXT) + public String getText() { + return text; } @JsonProperty(JsonMessageConstants.TO) @@ -300,53 +412,48 @@ public class IndexableMessage { return to; } - @JsonProperty(JsonMessageConstants.CC) - public EMailers getCc() { - return cc; - } - - @JsonProperty(JsonMessageConstants.BCC) - public EMailers getBcc() { - return bcc; + @JsonProperty(JsonMessageConstants.UID) + public Long getUid() { + return uid; } - @JsonProperty(JsonMessageConstants.REPLY_TO) - public EMailers getReplyTo() { - return replyTo; + @JsonProperty(JsonMessageConstants.USER_FLAGS) + public String[] getUserFlags() { + return userFlags; } - @JsonProperty(JsonMessageConstants.SENT_DATE) - public String getSentDate() { - return sentDate; + @JsonProperty(JsonMessageConstants.USERS) + public List<String> getUsers() { + return users; } - @JsonProperty(JsonMessageConstants.PROPERTIES) - public List<Property> getProperties() { - return properties; + @JsonProperty(JsonMessageConstants.IS_ANSWERED) + public boolean isAnswered() { + return isAnswered; } - @JsonProperty(JsonMessageConstants.ATTACHMENTS) - public List<MimePart> getAttachments() { - return attachments; + @JsonProperty(JsonMessageConstants.IS_DELETED) + public boolean isDeleted() { + return isDeleted; } - @JsonProperty(JsonMessageConstants.TEXT_BODY) - public Optional<String> getBodyText() { - return bodyText; + @JsonProperty(JsonMessageConstants.IS_DRAFT) + public boolean isDraft() { + return isDraft; } - @JsonProperty(JsonMessageConstants.HTML_BODY) - public Optional<String> getBodyHtml() { - return bodyHtml; + @JsonProperty(JsonMessageConstants.IS_FLAGGED) + public boolean isFlagged() { + return isFlagged; } - @JsonProperty(JsonMessageConstants.HAS_ATTACHMENT) - public boolean getHasAttachment() { - return hasAttachment; + @JsonProperty(JsonMessageConstants.IS_RECENT) + public boolean isRecent() { + return isRecent; } - @JsonProperty(JsonMessageConstants.TEXT) - public String getText() { - return text; + @JsonProperty(JsonMessageConstants.IS_UNREAD) + public boolean isUnRead() { + return isUnRead; } } http://git-wip-us.apache.org/repos/asf/james-project/blob/83e9e0c4/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageWithMessageId.java ---------------------------------------------------------------------- diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageWithMessageId.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageWithMessageId.java deleted file mode 100644 index 2578580..0000000 --- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageWithMessageId.java +++ /dev/null @@ -1,72 +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.elasticsearch.json; - -import java.time.ZoneId; -import java.util.List; -import java.util.Optional; - -import org.apache.james.mailbox.MailboxSession; -import org.apache.james.mailbox.elasticsearch.IndexAttachments; -import org.apache.james.mailbox.extractor.TextExtractor; -import org.apache.james.mailbox.store.mail.model.MailboxMessage; -import org.apache.james.mailbox.store.mail.model.Property; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.google.common.collect.Multimap; - -public class IndexableMessageWithMessageId extends IndexableMessage { - - public static IndexableMessage from(MailboxMessage message, List<MailboxSession.User> users, TextExtractor textExtractor, - ZoneId zoneId, IndexAttachments indexAttachments) { - IndexableMessage indexableMessage = IndexableMessage.from(message, users, textExtractor, zoneId, indexAttachments); - return new IndexableMessageWithMessageId(indexableMessage.getUid(), indexableMessage.getMailboxId(), indexableMessage.getUsers(), - indexableMessage.getModSeq(), indexableMessage.getSize(), indexableMessage.getDate(), indexableMessage.getMediaType(), - indexableMessage.getSubType(), indexableMessage.isUnRead(), indexableMessage.isRecent(), indexableMessage.isFlagged(), - indexableMessage.isDeleted(), indexableMessage.isDraft(), indexableMessage.isAnswered(), indexableMessage.getUserFlags(), - indexableMessage.getHeaders(), indexableMessage.getFrom(), indexableMessage.getTo(), indexableMessage.getCc(), indexableMessage.getBcc(), - indexableMessage.getReplyTo(), indexableMessage.getSubjects(), indexableMessage.getSentDate(), indexableMessage.getProperties(), - indexableMessage.getAttachments(), indexableMessage.getHasAttachment(), indexableMessage.getBodyText(), indexableMessage.getBodyHtml(), indexableMessage.getText(), - message.getMessageId().serialize()); - } - - private String messageId; - - public IndexableMessageWithMessageId(long uid, String mailboxId, List<String> users, long modSeq, long size, String date, - String mediaType, String subType, boolean isUnRead, boolean isRecent, boolean isFlagged, - boolean isDeleted, boolean isDraft, boolean isAnswered, String[] userFlags, Multimap<String, String> headers, - EMailers from, EMailers to, EMailers cc, EMailers bcc, EMailers replyTo, Subjects subjects, - String sentDate, List<Property> properties, List<MimePart> attachments, boolean hasAttachments, Optional<String> bodyText, - Optional<String> bodyHtml, String text, String messageId) { - super(uid, mailboxId, users, modSeq, size, date, mediaType, subType, isUnRead, isRecent, isFlagged, isDeleted, - isDraft, isAnswered, userFlags, headers, from, to, cc, bcc, replyTo, subjects, sentDate, properties, attachments, hasAttachments, - bodyText, bodyHtml, text); - this.messageId = messageId; - } - - public IndexableMessageWithMessageId(String messageId) { - this.messageId = messageId; - } - - @JsonProperty(JsonMessageConstants.MESSAGE_ID) - public String getMessageId() { - return messageId; - } -} http://git-wip-us.apache.org/repos/asf/james-project/blob/83e9e0c4/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJson.java ---------------------------------------------------------------------- diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJson.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJson.java index 6b699b9..d4c896e 100644 --- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJson.java +++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJson.java @@ -73,9 +73,21 @@ public class MessageToElasticSearchJson { Preconditions.checkNotNull(message); switch (indexMessageId) { case Required: - return mapper.writeValueAsString(IndexableMessageWithMessageId.from(message, users, textExtractor, zoneId, indexAttachments)); + return mapper.writeValueAsString(IndexableMessage.builder() + .message(message) + .users(users) + .extractor(textExtractor) + .zoneId(zoneId) + .indexAttachments(indexAttachments) + .build()); case Optional: - return mapper.writeValueAsString(IndexableMessage.from(message, users, textExtractor, zoneId, indexAttachments)); + return mapper.writeValueAsString(IndexableMessage.builder() + .message(message) + .users(users) + .extractor(textExtractor) + .zoneId(zoneId) + .indexAttachments(indexAttachments) + .build()); default: throw new NotImplementedException(); } @@ -85,9 +97,21 @@ public class MessageToElasticSearchJson { Preconditions.checkNotNull(message); switch (indexMessageId) { case Required: - return mapper.writeValueAsString(IndexableMessageWithMessageId.from(message, users, textExtractor, zoneId, IndexAttachments.NO)); + return mapper.writeValueAsString(IndexableMessage.builder() + .message(message) + .users(users) + .extractor(textExtractor) + .zoneId(zoneId) + .indexAttachments(IndexAttachments.NO) + .build()); case Optional: - return mapper.writeValueAsString(IndexableMessage.from(message, users, textExtractor, zoneId, IndexAttachments.NO)); + return mapper.writeValueAsString(IndexableMessage.builder() + .message(message) + .users(users) + .extractor(textExtractor) + .zoneId(zoneId) + .indexAttachments(IndexAttachments.NO) + .build()); default: throw new NotImplementedException(); } http://git-wip-us.apache.org/repos/asf/james-project/blob/83e9e0c4/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageTest.java ---------------------------------------------------------------------- diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageTest.java index a66f326..56aedb3 100644 --- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageTest.java +++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/IndexableMessageTest.java @@ -35,6 +35,7 @@ import org.apache.james.mailbox.MessageUid; import org.apache.james.mailbox.elasticsearch.IndexAttachments; import org.apache.james.mailbox.extractor.ParsedContent; import org.apache.james.mailbox.extractor.TextExtractor; +import org.apache.james.mailbox.inmemory.InMemoryMessageId; import org.apache.james.mailbox.mock.MockMailboxSession; import org.apache.james.mailbox.model.TestId; import org.apache.james.mailbox.store.extractor.DefaultTextExtractor; @@ -57,6 +58,8 @@ public class IndexableMessageTest { TestId mailboxId = TestId.of(1); when(mailboxMessage.getMailboxId()) .thenReturn(mailboxId); + when(mailboxMessage.getMessageId()) + .thenReturn(InMemoryMessageId.of(42)); when(mailboxMessage.getFullContent()) .thenReturn(new ByteArrayInputStream("".getBytes())); when(mailboxMessage.createFlags()) @@ -64,8 +67,13 @@ public class IndexableMessageTest { when(mailboxMessage.getUid()) .thenReturn(MESSAGE_UID); - IndexableMessage indexableMessage = IndexableMessage.from(mailboxMessage, ImmutableList.of(new MockMailboxSession("username").getUser()), - new DefaultTextExtractor(), ZoneId.of("Europe/Paris"), IndexAttachments.NO); + IndexableMessage indexableMessage = IndexableMessage.builder() + .message(mailboxMessage) + .users(ImmutableList.of(new MockMailboxSession("username").getUser())) + .extractor(new DefaultTextExtractor()) + .zoneId(ZoneId.of("Europe/Paris")) + .indexAttachments(IndexAttachments.NO) + .build(); assertThat(indexableMessage.getText()).isEmpty(); } @@ -76,6 +84,8 @@ public class IndexableMessageTest { TestId mailboxId = TestId.of(1); when(mailboxMessage.getMailboxId()) .thenReturn(mailboxId); + when(mailboxMessage.getMessageId()) + .thenReturn(InMemoryMessageId.of(42)); when(mailboxMessage.getFullContent()) .thenReturn(new ByteArrayInputStream("From: First user <[email protected]>\nFrom: Second user <[email protected]>".getBytes())); when(mailboxMessage.createFlags()) @@ -83,8 +93,13 @@ public class IndexableMessageTest { when(mailboxMessage.getUid()) .thenReturn(MESSAGE_UID); - IndexableMessage indexableMessage = IndexableMessage.from(mailboxMessage, ImmutableList.of(new MockMailboxSession("username").getUser()), - new DefaultTextExtractor(), ZoneId.of("Europe/Paris"), IndexAttachments.NO); + IndexableMessage indexableMessage = IndexableMessage.builder() + .message(mailboxMessage) + .users(ImmutableList.of(new MockMailboxSession("username").getUser())) + .extractor(new DefaultTextExtractor()) + .zoneId(ZoneId.of("Europe/Paris")) + .indexAttachments(IndexAttachments.NO) + .build(); assertThat(indexableMessage.getText()).isEqualTo("Second user [email protected] First user [email protected]"); } @@ -95,6 +110,8 @@ public class IndexableMessageTest { TestId mailboxId = TestId.of(1); when(mailboxMessage.getMailboxId()) .thenReturn(mailboxId); + when(mailboxMessage.getMessageId()) + .thenReturn(InMemoryMessageId.of(42)); when(mailboxMessage.getFullContent()) .thenReturn(new ByteArrayInputStream("To: First to <[email protected]>\nTo: Second to <[email protected]>".getBytes())); when(mailboxMessage.createFlags()) @@ -102,8 +119,13 @@ public class IndexableMessageTest { when(mailboxMessage.getUid()) .thenReturn(MESSAGE_UID); - IndexableMessage indexableMessage = IndexableMessage.from(mailboxMessage, ImmutableList.of(new MockMailboxSession("username").getUser()), - new DefaultTextExtractor(), ZoneId.of("Europe/Paris"), IndexAttachments.NO); + IndexableMessage indexableMessage = IndexableMessage.builder() + .message(mailboxMessage) + .users(ImmutableList.of(new MockMailboxSession("username").getUser())) + .extractor(new DefaultTextExtractor()) + .zoneId(ZoneId.of("Europe/Paris")) + .indexAttachments(IndexAttachments.NO) + .build(); assertThat(indexableMessage.getText()).isEqualTo("First to [email protected] Second to [email protected]"); } @@ -114,6 +136,8 @@ public class IndexableMessageTest { TestId mailboxId = TestId.of(1); when(mailboxMessage.getMailboxId()) .thenReturn(mailboxId); + when(mailboxMessage.getMessageId()) + .thenReturn(InMemoryMessageId.of(42)); when(mailboxMessage.getFullContent()) .thenReturn(new ByteArrayInputStream("Cc: First cc <[email protected]>\nCc: Second cc <[email protected]>".getBytes())); when(mailboxMessage.createFlags()) @@ -121,8 +145,13 @@ public class IndexableMessageTest { when(mailboxMessage.getUid()) .thenReturn(MESSAGE_UID); - IndexableMessage indexableMessage = IndexableMessage.from(mailboxMessage, ImmutableList.of(new MockMailboxSession("username").getUser()), - new DefaultTextExtractor(), ZoneId.of("Europe/Paris"), IndexAttachments.NO); + IndexableMessage indexableMessage = IndexableMessage.builder() + .message(mailboxMessage) + .users(ImmutableList.of(new MockMailboxSession("username").getUser())) + .extractor(new DefaultTextExtractor()) + .zoneId(ZoneId.of("Europe/Paris")) + .indexAttachments(IndexAttachments.NO) + .build(); assertThat(indexableMessage.getText()).isEqualTo("First cc [email protected] Second cc [email protected]"); } @@ -133,6 +162,8 @@ public class IndexableMessageTest { TestId mailboxId = TestId.of(1); when(mailboxMessage.getMailboxId()) .thenReturn(mailboxId); + when(mailboxMessage.getMessageId()) + .thenReturn(InMemoryMessageId.of(42)); when(mailboxMessage.getUid()) .thenReturn(MESSAGE_UID); when(mailboxMessage.getFullContent()) @@ -140,8 +171,13 @@ public class IndexableMessageTest { when(mailboxMessage.createFlags()) .thenReturn(new Flags()); - IndexableMessage indexableMessage = IndexableMessage.from(mailboxMessage, ImmutableList.of(new MockMailboxSession("username").getUser()), - new DefaultTextExtractor(), ZoneId.of("Europe/Paris"), IndexAttachments.NO); + IndexableMessage indexableMessage = IndexableMessage.builder() + .message(mailboxMessage) + .users(ImmutableList.of(new MockMailboxSession("username").getUser())) + .extractor(new DefaultTextExtractor()) + .zoneId(ZoneId.of("Europe/Paris")) + .indexAttachments(IndexAttachments.NO) + .build(); assertThat(indexableMessage.getText()).isEqualTo("Second bcc [email protected] First bcc [email protected]"); } @@ -152,6 +188,8 @@ public class IndexableMessageTest { TestId mailboxId = TestId.of(1); when(mailboxMessage.getMailboxId()) .thenReturn(mailboxId); + when(mailboxMessage.getMessageId()) + .thenReturn(InMemoryMessageId.of(42)); when(mailboxMessage.getFullContent()) .thenReturn(new ByteArrayInputStream("Subject: subject1\nSubject: subject2".getBytes())); when(mailboxMessage.createFlags()) @@ -159,8 +197,13 @@ public class IndexableMessageTest { when(mailboxMessage.getUid()) .thenReturn(MESSAGE_UID); - IndexableMessage indexableMessage = IndexableMessage.from(mailboxMessage, ImmutableList.of(new MockMailboxSession("username").getUser()), - new DefaultTextExtractor(), ZoneId.of("Europe/Paris"), IndexAttachments.NO); + IndexableMessage indexableMessage = IndexableMessage.builder() + .message(mailboxMessage) + .users(ImmutableList.of(new MockMailboxSession("username").getUser())) + .extractor(new DefaultTextExtractor()) + .zoneId(ZoneId.of("Europe/Paris")) + .indexAttachments(IndexAttachments.NO) + .build(); assertThat(indexableMessage.getText()).isEqualTo("subject1 subject2"); } @@ -171,6 +214,8 @@ public class IndexableMessageTest { TestId mailboxId = TestId.of(1); when(mailboxMessage.getMailboxId()) .thenReturn(mailboxId); + when(mailboxMessage.getMessageId()) + .thenReturn(InMemoryMessageId.of(42)); when(mailboxMessage.getFullContent()) .thenReturn(new ByteArrayInputStream("\nMy body".getBytes())); when(mailboxMessage.createFlags()) @@ -178,8 +223,13 @@ public class IndexableMessageTest { when(mailboxMessage.getUid()) .thenReturn(MESSAGE_UID); - IndexableMessage indexableMessage = IndexableMessage.from(mailboxMessage, ImmutableList.of(new MockMailboxSession("username").getUser()), - new DefaultTextExtractor(), ZoneId.of("Europe/Paris"), IndexAttachments.NO); + IndexableMessage indexableMessage = IndexableMessage.builder() + .message(mailboxMessage) + .users(ImmutableList.of(new MockMailboxSession("username").getUser())) + .extractor(new DefaultTextExtractor()) + .zoneId(ZoneId.of("Europe/Paris")) + .indexAttachments(IndexAttachments.NO) + .build(); assertThat(indexableMessage.getText()).isEqualTo("My body"); } @@ -190,6 +240,8 @@ public class IndexableMessageTest { TestId mailboxId = TestId.of(1); when(mailboxMessage.getMailboxId()) .thenReturn(mailboxId); + when(mailboxMessage.getMessageId()) + .thenReturn(InMemoryMessageId.of(42)); when(mailboxMessage.getFullContent()) .thenReturn(new ByteArrayInputStream(IOUtils.toByteArray(ClassLoader.getSystemResourceAsStream("eml/mailWithHeaders.eml")))); when(mailboxMessage.createFlags()) @@ -197,8 +249,13 @@ public class IndexableMessageTest { when(mailboxMessage.getUid()) .thenReturn(MESSAGE_UID); - IndexableMessage indexableMessage = IndexableMessage.from(mailboxMessage, ImmutableList.of(new MockMailboxSession("username").getUser()), - new DefaultTextExtractor(), ZoneId.of("Europe/Paris"), IndexAttachments.NO); + IndexableMessage indexableMessage = IndexableMessage.builder() + .message(mailboxMessage) + .users(ImmutableList.of(new MockMailboxSession("username").getUser())) + .extractor(new DefaultTextExtractor()) + .zoneId(ZoneId.of("Europe/Paris")) + .indexAttachments(IndexAttachments.NO) + .build(); assertThat(indexableMessage.getText()).isEqualTo("Ad Min [email protected] " + "a@test a@test B b@test " + @@ -218,6 +275,8 @@ public class IndexableMessageTest { TestId mailboxId = TestId.of(1); when(mailboxMessage.getMailboxId()) .thenReturn(mailboxId); + when(mailboxMessage.getMessageId()) + .thenReturn(InMemoryMessageId.of(42)); when(mailboxMessage.getFullContent()) .thenReturn(new ByteArrayInputStream(IOUtils.toByteArray(ClassLoader.getSystemResourceAsStream("eml/mailWithHeaders.eml")))); when(mailboxMessage.createFlags()) @@ -227,8 +286,13 @@ public class IndexableMessageTest { when(mailboxMessage.getProperties()).thenReturn(ImmutableList.of(IndexableMessage.HAS_ATTACHMENT_PROPERTY)); // When - IndexableMessage indexableMessage = IndexableMessage.from(mailboxMessage, ImmutableList.of(new MockMailboxSession("username").getUser()), - new DefaultTextExtractor(), ZoneId.of("Europe/Paris"), IndexAttachments.YES); + IndexableMessage indexableMessage = IndexableMessage.builder() + .message(mailboxMessage) + .users(ImmutableList.of(new MockMailboxSession("username").getUser())) + .extractor(new DefaultTextExtractor()) + .zoneId(ZoneId.of("Europe/Paris")) + .indexAttachments(IndexAttachments.YES) + .build(); // Then assertThat(indexableMessage.getHasAttachment()).isTrue(); @@ -241,6 +305,8 @@ public class IndexableMessageTest { TestId mailboxId = TestId.of(1); when(mailboxMessage.getMailboxId()) .thenReturn(mailboxId); + when(mailboxMessage.getMessageId()) + .thenReturn(InMemoryMessageId.of(42)); when(mailboxMessage.getFullContent()) .thenReturn(new ByteArrayInputStream(IOUtils.toByteArray(ClassLoader.getSystemResourceAsStream("eml/mailWithHeaders.eml")))); when(mailboxMessage.createFlags()) @@ -251,8 +317,13 @@ public class IndexableMessageTest { .thenReturn(ImmutableList.of(new SimpleProperty(PropertyBuilder.JAMES_INTERNALS, PropertyBuilder.HAS_ATTACHMENT, "false"))); // When - IndexableMessage indexableMessage = IndexableMessage.from(mailboxMessage, ImmutableList.of(new MockMailboxSession("username").getUser()), - new DefaultTextExtractor(), ZoneId.of("Europe/Paris"), IndexAttachments.YES); + IndexableMessage indexableMessage = IndexableMessage.builder() + .message(mailboxMessage) + .users(ImmutableList.of(new MockMailboxSession("username").getUser())) + .extractor(new DefaultTextExtractor()) + .zoneId(ZoneId.of("Europe/Paris")) + .indexAttachments(IndexAttachments.NO) + .build(); // Then assertThat(indexableMessage.getHasAttachment()).isFalse(); @@ -265,6 +336,8 @@ public class IndexableMessageTest { TestId mailboxId = TestId.of(1); when(mailboxMessage.getMailboxId()) .thenReturn(mailboxId); + when(mailboxMessage.getMessageId()) + .thenReturn(InMemoryMessageId.of(42)); when(mailboxMessage.getFullContent()) .thenReturn(new ByteArrayInputStream(IOUtils.toByteArray(ClassLoader.getSystemResourceAsStream("eml/mailWithHeaders.eml")))); when(mailboxMessage.createFlags()) @@ -275,8 +348,13 @@ public class IndexableMessageTest { .thenReturn(ImmutableList.of()); // When - IndexableMessage indexableMessage = IndexableMessage.from(mailboxMessage, ImmutableList.of(new MockMailboxSession("username").getUser()), - new DefaultTextExtractor(), ZoneId.of("Europe/Paris"), IndexAttachments.YES); + IndexableMessage indexableMessage = IndexableMessage.builder() + .message(mailboxMessage) + .users(ImmutableList.of(new MockMailboxSession("username").getUser())) + .extractor(new DefaultTextExtractor()) + .zoneId(ZoneId.of("Europe/Paris")) + .indexAttachments(IndexAttachments.NO) + .build(); // Then assertThat(indexableMessage.getHasAttachment()).isFalse(); @@ -289,6 +367,8 @@ public class IndexableMessageTest { TestId mailboxId = TestId.of(1); when(mailboxMessage.getMailboxId()) .thenReturn(mailboxId); + when(mailboxMessage.getMessageId()) + .thenReturn(InMemoryMessageId.of(42)); when(mailboxMessage.getFullContent()) .thenReturn(new ByteArrayInputStream(IOUtils.toByteArray(ClassLoader.getSystemResourceAsStream("eml/mailWithHeaders.eml")))); when(mailboxMessage.createFlags()) @@ -297,8 +377,13 @@ public class IndexableMessageTest { .thenReturn(MESSAGE_UID); // When - IndexableMessage indexableMessage = IndexableMessage.from(mailboxMessage, ImmutableList.of(new MockMailboxSession("username").getUser()), - new DefaultTextExtractor(), ZoneId.of("Europe/Paris"), IndexAttachments.NO); + IndexableMessage indexableMessage = IndexableMessage.builder() + .message(mailboxMessage) + .users(ImmutableList.of(new MockMailboxSession("username").getUser())) + .extractor(new DefaultTextExtractor()) + .zoneId(ZoneId.of("Europe/Paris")) + .indexAttachments(IndexAttachments.NO) + .build(); // Then assertThat(indexableMessage.getAttachments()).isEmpty(); @@ -311,6 +396,8 @@ public class IndexableMessageTest { TestId mailboxId = TestId.of(1); when(mailboxMessage.getMailboxId()) .thenReturn(mailboxId); + when(mailboxMessage.getMessageId()) + .thenReturn(InMemoryMessageId.of(42)); when(mailboxMessage.getFullContent()) .thenReturn(new ByteArrayInputStream(IOUtils.toByteArray(ClassLoader.getSystemResourceAsStream("eml/emailWith3Attachments.eml")))); when(mailboxMessage.createFlags()) @@ -319,8 +406,13 @@ public class IndexableMessageTest { .thenReturn(MESSAGE_UID); // When - IndexableMessage indexableMessage = IndexableMessage.from(mailboxMessage, ImmutableList.of(new MockMailboxSession("username").getUser()), - new DefaultTextExtractor(), ZoneId.of("Europe/Paris"), IndexAttachments.YES); + IndexableMessage indexableMessage = IndexableMessage.builder() + .message(mailboxMessage) + .users(ImmutableList.of(new MockMailboxSession("username").getUser())) + .extractor(new DefaultTextExtractor()) + .zoneId(ZoneId.of("Europe/Paris")) + .indexAttachments(IndexAttachments.YES) + .build(); // Then assertThat(indexableMessage.getAttachments()).isNotEmpty(); @@ -333,6 +425,8 @@ public class IndexableMessageTest { TestId mailboxId = TestId.of(1); when(mailboxMessage.getMailboxId()) .thenReturn(mailboxId); + when(mailboxMessage.getMessageId()) + .thenReturn(InMemoryMessageId.of(42)); when(mailboxMessage.getFullContent()) .thenReturn(new ByteArrayInputStream(IOUtils.toByteArray(ClassLoader.getSystemResourceAsStream("eml/emailWith3Attachments.eml")))); when(mailboxMessage.createFlags()) @@ -347,8 +441,13 @@ public class IndexableMessageTest { .thenReturn(new ParsedContent("third attachment content", ImmutableMap.of())); // When - IndexableMessage indexableMessage = IndexableMessage.from(mailboxMessage, ImmutableList.of(new MockMailboxSession("username").getUser()), - textExtractor, ZoneId.of("Europe/Paris"), IndexAttachments.YES); + IndexableMessage indexableMessage = IndexableMessage.builder() + .message(mailboxMessage) + .users(ImmutableList.of(new MockMailboxSession("username").getUser())) + .extractor(textExtractor) + .zoneId(ZoneId.of("Europe/Paris")) + .indexAttachments(IndexAttachments.YES) + .build(); // Then assertThat(indexableMessage.getText()).contains("first attachment content"); @@ -362,6 +461,8 @@ public class IndexableMessageTest { TestId mailboxId = TestId.of(1); when(mailboxMessage.getMailboxId()) .thenReturn(mailboxId); + when(mailboxMessage.getMessageId()) + .thenReturn(InMemoryMessageId.of(42)); when(mailboxMessage.getFullContent()) .thenReturn(new ByteArrayInputStream(IOUtils.toByteArray(ClassLoader.getSystemResourceAsStream("eml/bodyMakeTikaToFail.eml")))); when(mailboxMessage.createFlags()) @@ -370,8 +471,13 @@ public class IndexableMessageTest { .thenReturn(MESSAGE_UID); // When - IndexableMessage indexableMessage = IndexableMessage.from(mailboxMessage, ImmutableList.of(new MockMailboxSession("username").getUser()), - new TikaTextExtractor(), ZoneId.of("Europe/Paris"), IndexAttachments.YES); + IndexableMessage indexableMessage = IndexableMessage.builder() + .message(mailboxMessage) + .users(ImmutableList.of(new MockMailboxSession("username").getUser())) + .extractor(new TikaTextExtractor()) + .zoneId(ZoneId.of("Europe/Paris")) + .indexAttachments(IndexAttachments.YES) + .build(); // Then assertThat(indexableMessage.getText()).contains("subject should be parsed"); http://git-wip-us.apache.org/repos/asf/james-project/blob/83e9e0c4/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJsonTest.java ---------------------------------------------------------------------- diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJsonTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJsonTest.java index 7efb14a..f508766 100644 --- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJsonTest.java +++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/json/MessageToElasticSearchJsonTest.java @@ -95,7 +95,7 @@ public class MessageToElasticSearchJsonTest { ImmutableList<User> users = ImmutableList.of(); assertThatThrownBy(() -> messageToElasticSearchJson.convertToJson(spamMail, users)) - .isInstanceOf(IllegalArgumentException.class); + .isInstanceOf(IllegalStateException.class); } @Test @@ -372,7 +372,7 @@ public class MessageToElasticSearchJsonTest { MessageToElasticSearchJson messageToElasticSearchJson = new MessageToElasticSearchJson( new DefaultTextExtractor(), ZoneId.of("Europe/Paris"), - IndexAttachments.YES, + IndexAttachments.NO, MessageSearchIndex.IndexMessageId.Required); String convertToJsonWithoutAttachment = messageToElasticSearchJson.convertToJsonWithoutAttachment(message, ImmutableList.of(new MockMailboxSession("username").getUser())); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
