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 ad...@apache.org on 2016/07/11 12:32:56 UTC
james-project git commit: JAMES-1796 Unwrap Cid
Repository: james-project
Updated Branches:
refs/heads/master 0cad05775 -> b87c93905
JAMES-1796 Unwrap Cid
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/b87c9390
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/b87c9390
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/b87c9390
Branch: refs/heads/master
Commit: b87c93905cd3e0c79e8d859bc4e49ebc59db2a4b
Parents: 0cad057
Author: Antoine Duprat <ad...@linagora.com>
Authored: Mon Jul 11 11:50:57 2016 +0200
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Mon Jul 11 14:32:26 2016 +0200
----------------------------------------------------------------------
.../cassandra/mail/CassandraMessageMapper.java | 5 +-
.../store/mail/model/MessageAttachment.java | 19 +++--
.../mailbox/store/mail/model/impl/Cid.java | 72 +++++++++++++++++++
.../store/mail/model/impl/MessageParser.java | 19 +++--
.../store/mail/model/MessageAttachmentTest.java | 7 +-
.../store/mail/model/MessageMapperTest.java | 7 +-
.../mailbox/store/mail/model/impl/CidTest.java | 74 ++++++++++++++++++++
.../mail/model/impl/MessageParserTest.java | 2 +-
.../test/resources/cucumber/GetMessages.feature | 2 +-
.../jmap/methods/MIMEMessageConverter.java | 2 +-
.../methods/SetMessagesCreationProcessor.java | 3 +-
.../apache/james/jmap/model/MessageFactory.java | 3 +-
.../jmap/methods/MIMEMessageConverterTest.java | 9 +--
.../james/jmap/model/MailboxMessageTest.java | 3 +-
14 files changed, 198 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/b87c9390/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
index 1d1bc16..6bd1e5a 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageMapper.java
@@ -98,6 +98,7 @@ import org.apache.james.mailbox.store.mail.model.AttachmentId;
import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.apache.james.mailbox.store.mail.model.MessageAttachment;
+import org.apache.james.mailbox.store.mail.model.impl.Cid;
import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
import org.apache.james.mailbox.store.mail.model.impl.SimpleProperty;
@@ -354,7 +355,7 @@ public class CassandraMessageMapper implements MessageMapper {
MessageAttachment.builder()
.attachment(attachmentsById.get(attachmentIdFrom(x)))
.name(x.getString(Attachments.NAME))
- .cid(x.getString(Attachments.CID))
+ .cid(com.google.common.base.Optional.fromNullable(x.getString(Attachments.CID)).transform(Cid::from))
.isInline(x.getBool(Attachments.IS_INLINE))
.build()))
.collect(ImmutableCollectors.toImmutableList());
@@ -424,7 +425,7 @@ public class CassandraMessageMapper implements MessageMapper {
.newValue()
.setString(Attachments.ID, messageAttachment.getAttachmentId().getId())
.setString(Attachments.NAME, messageAttachment.getName().orNull())
- .setString(Attachments.CID, messageAttachment.getCid().orNull())
+ .setString(Attachments.CID, messageAttachment.getCid().transform(Cid::getValue).orNull())
.setBool(Attachments.IS_INLINE, messageAttachment.isInline());
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b87c9390/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MessageAttachment.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MessageAttachment.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MessageAttachment.java
index 23cfc55..2fb9b78 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MessageAttachment.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/MessageAttachment.java
@@ -19,6 +19,8 @@
package org.apache.james.mailbox.store.mail.model;
+import org.apache.james.mailbox.store.mail.model.impl.Cid;
+
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
@@ -35,7 +37,7 @@ public class MessageAttachment {
private Attachment attachment;
private Optional<String> name;
- private Optional<String> cid;
+ private Optional<Cid> cid;
private Boolean isInline;
private Builder() {
@@ -54,7 +56,14 @@ public class MessageAttachment {
return this;
}
- public Builder cid(String cid) {
+ public Builder cid(Optional<Cid> cid) {
+ Preconditions.checkNotNull(cid);
+ this.cid = cid;
+ return this;
+ }
+
+
+ public Builder cid(Cid cid) {
this.cid = Optional.fromNullable(cid);
return this;
}
@@ -78,10 +87,10 @@ public class MessageAttachment {
private final Attachment attachment;
private final Optional<String> name;
- private final Optional<String> cid;
+ private final Optional<Cid> cid;
private final boolean isInline;
- @VisibleForTesting MessageAttachment(Attachment attachment, Optional<String> name, Optional<String> cid, boolean isInline) {
+ @VisibleForTesting MessageAttachment(Attachment attachment, Optional<String> name, Optional<Cid> cid, boolean isInline) {
this.attachment = attachment;
this.name = name;
this.cid = cid;
@@ -100,7 +109,7 @@ public class MessageAttachment {
return name;
}
- public Optional<String> getCid() {
+ public Optional<Cid> getCid() {
return cid;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b87c9390/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/Cid.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/Cid.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/Cid.java
new file mode 100644
index 0000000..23c43fd
--- /dev/null
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/Cid.java
@@ -0,0 +1,72 @@
+/****************************************************************
+ * 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.mail.model.impl;
+
+
+import com.google.common.base.Objects;
+import com.google.common.base.Preconditions;
+
+public class Cid {
+
+ public static Cid from(String cidAsString) {
+ Preconditions.checkNotNull(cidAsString);
+ Preconditions.checkArgument(!cidAsString.isEmpty(), "'cidAsString' is mandatory");
+ return new Cid(normalizedCid(cidAsString));
+ }
+
+ private static String normalizedCid(String input) {
+ if (isWrappedWithAngleBrackets(input)) {
+ return unwrap(input);
+ }
+ return input;
+ }
+
+ private static String unwrap(String cidAsString) {
+ return cidAsString.substring(1, cidAsString.length() - 1);
+ }
+
+ private static boolean isWrappedWithAngleBrackets(String cidAsString) {
+ return cidAsString.startsWith("<") && cidAsString.endsWith(">");
+ }
+
+ private final String value;
+
+ private Cid(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public final boolean equals(Object obj) {
+ if (obj instanceof Cid) {
+ Cid other = (Cid) obj;
+ return Objects.equal(this.value, other.value);
+ }
+ return false;
+ }
+
+ @Override
+ public final int hashCode() {
+ return Objects.hashCode(this.value);
+ }
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b87c9390/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
index 7e3f2fd..ff4e28c 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/MessageParser.java
@@ -88,7 +88,7 @@ public class MessageParser {
Optional<ContentTypeField> contentTypeField = getContentTypeField(entity);
Optional<String> contentType = contentType(contentTypeField);
Optional<String> name = name(contentTypeField);
- Optional<String> cid = cid(castField(entity.getHeader().getField(CONTENT_ID), ContentIdField.class));
+ Optional<Cid> cid = cid(castField(entity.getHeader().getField(CONTENT_ID), ContentIdField.class));
boolean isInline = isInline(castField(entity.getHeader().getField(CONTENT_DISPOSITION), ContentDispositionField.class));
return MessageAttachment.builder()
@@ -132,13 +132,20 @@ public class MessageParser {
}).or(Optional.<String> absent());
}
- private Optional<String> cid(Optional<ContentIdField> contentIdField) {
- return contentIdField.transform(new Function<ContentIdField, Optional<String>>() {
+ private Optional<Cid> cid(Optional<ContentIdField> contentIdField) {
+ return contentIdField.transform(new Function<ContentIdField, Optional<Cid>>() {
@Override
- public Optional<String> apply(ContentIdField field) {
- return Optional.fromNullable(field.getId());
+ public Optional<Cid> apply(ContentIdField field) {
+ return Optional.fromNullable(field.getId())
+ .transform(new Function<String, Cid>() {
+
+ @Override
+ public Cid apply(String cid) {
+ return Cid.from(cid);
+ }
+ });
}
- }).or(Optional.<String> absent());
+ }).or(Optional.<Cid> absent());
}
private boolean isMultipart(Entity entity) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/b87c9390/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageAttachmentTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageAttachmentTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageAttachmentTest.java
index 115a568..f29c116 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageAttachmentTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageAttachmentTest.java
@@ -21,6 +21,7 @@ package org.apache.james.mailbox.store.mail.model;
import static org.assertj.core.api.Assertions.assertThat;
+import org.apache.james.mailbox.store.mail.model.impl.Cid;
import org.junit.Test;
import com.google.common.base.Optional;
@@ -45,7 +46,7 @@ public class MessageAttachmentTest {
.bytes("content".getBytes())
.type("type")
.build();
- MessageAttachment expectedMessageAttachment = new MessageAttachment(attachment, Optional.<String> absent(), Optional.<String> absent(), false);
+ MessageAttachment expectedMessageAttachment = new MessageAttachment(attachment, Optional.<String> absent(), Optional.<Cid> absent(), false);
MessageAttachment messageAttachment = MessageAttachment.builder()
.attachment(attachment)
@@ -87,12 +88,12 @@ public class MessageAttachmentTest {
.bytes("content".getBytes())
.type("type")
.build();
- MessageAttachment expectedMessageAttachment = new MessageAttachment(attachment, Optional.of("name"), Optional.of("cid"), true);
+ MessageAttachment expectedMessageAttachment = new MessageAttachment(attachment, Optional.of("name"), Optional.of(Cid.from("cid")), true);
MessageAttachment messageAttachment = MessageAttachment.builder()
.attachment(attachment)
.name("name")
- .cid("cid")
+ .cid(Cid.from("cid"))
.isInline(true)
.build();
http://git-wip-us.apache.org/repos/asf/james-project/blob/b87c9390/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
index 82ac2a3..f93936d 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java
@@ -41,6 +41,7 @@ import org.apache.james.mailbox.store.FlagsUpdateCalculator;
import org.apache.james.mailbox.store.mail.AttachmentMapper;
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.impl.Cid;
import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
@@ -118,19 +119,19 @@ public class MessageMapperTest<T extends MapperProvider> {
message7With1Attachment = createMessage(attachmentsMailbox, "Subject: Test7 \n\nBody7\n.\n", BODY_START, new PropertyBuilder(),
ImmutableList.of(MessageAttachment.builder()
.attachment(attachment)
- .cid("cid")
+ .cid(Cid.from("cid"))
.isInline(true)
.build()));
message8With2Attachments = createMessage(attachmentsMailbox, "Subject: Test8 \n\nBody8\n.\n", BODY_START, new PropertyBuilder(),
ImmutableList.of(
MessageAttachment.builder()
.attachment(attachment)
- .cid("cid")
+ .cid(Cid.from("cid"))
.isInline(true)
.build(),
MessageAttachment.builder()
.attachment(attachment2)
- .cid("cid2")
+ .cid(Cid.from("cid2"))
.isInline(false)
.build()));
http://git-wip-us.apache.org/repos/asf/james-project/blob/b87c9390/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/CidTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/CidTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/CidTest.java
new file mode 100644
index 0000000..1028614
--- /dev/null
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/CidTest.java
@@ -0,0 +1,74 @@
+/****************************************************************
+ * 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.mail.model.impl;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+import nl.jqno.equalsverifier.EqualsVerifier;
+
+public class CidTest {
+
+ @Rule public ExpectedException expectedException = ExpectedException.none();
+
+ @Test
+ public void fromShouldThrowWhenNull() {
+ expectedException.expect(NullPointerException.class);
+ Cid.from(null);
+ }
+
+ @Test
+ public void fromShouldThrowWhenEmpty() {
+ expectedException.expect(IllegalArgumentException.class);
+ Cid.from("");
+ }
+
+ @Test
+ public void fromShouldRemoveTagsWhenExists() {
+ Cid cid = Cid.from("<123>");
+ assertThat(cid.getValue()).isEqualTo("123");
+ }
+
+ @Test
+ public void fromShouldNotRemoveTagsWhenNone() {
+ Cid cid = Cid.from("123");
+ assertThat(cid.getValue()).isEqualTo("123");
+ }
+
+ @Test
+ public void fromShouldNotRemoveTagsWhenNotEndTag() {
+ Cid cid = Cid.from("<123");
+ assertThat(cid.getValue()).isEqualTo("<123");
+ }
+
+ @Test
+ public void fromShouldNotRemoveTagsWhenNotStartTag() {
+ Cid cid = Cid.from("123>");
+ assertThat(cid.getValue()).isEqualTo("123>");
+ }
+
+ @Test
+ public void shouldRespectJavaBeanContract() {
+ EqualsVerifier.forClass(Cid.class).verify();
+ }
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b87c9390/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/MessageParserTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/MessageParserTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/MessageParserTest.java
index 054ebd0..b5d0f5c 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/MessageParserTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/impl/MessageParserTest.java
@@ -144,7 +144,7 @@ public class MessageParserTest {
List<MessageAttachment> attachments = testee.retrieveAttachments(ClassLoader.getSystemResourceAsStream("eml/oneInlinedAttachment.eml"));
assertThat(attachments).hasSize(1);
- assertThat(attachments.get(0).getCid()).isEqualTo(Optional.of("<pa...@linagora.com>"));
+ assertThat(attachments.get(0).getCid()).isEqualTo(Optional.of(Cid.from("part1.37A15C92.A7C3488D@linagora.com")));
}
@Test
http://git-wip-us.apache.org/repos/asf/james-project/blob/b87c9390/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/GetMessages.feature
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/GetMessages.feature b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/GetMessages.feature
index 9b77a3f..0cf3fb7 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/GetMessages.feature
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/resources/cucumber/GetMessages.feature
@@ -153,7 +153,7 @@ Feature: GetMessages method
|blobId |"58aa22c2ec5770fb9e574ba19008dbfc647eba43" |
|type |"image/jpeg" |
|size |597 |
- |cid |"<pa...@linagora.com>" |
+ |cid |"part1.37A15C92.A7C3488D@linagora.com" |
|isInline |true |
Scenario: Retrieving message should return attachments and html body when some attachments and html message
http://git-wip-us.apache.org/repos/asf/james-project/blob/b87c9390/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MIMEMessageConverter.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MIMEMessageConverter.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MIMEMessageConverter.java
index 4be01ee..7a50287 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MIMEMessageConverter.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/MIMEMessageConverter.java
@@ -246,7 +246,7 @@ public class MIMEMessageConverter {
private void contentId(BodyPartBuilder builder, MessageAttachment att) {
if (att.getCid().isPresent()) {
- builder.setField(new RawField("Content-ID", att.getCid().get()));
+ builder.setField(new RawField("Content-ID", att.getCid().get().getValue()));
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b87c9390/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
index 9d6210e..124658c 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/methods/SetMessagesCreationProcessor.java
@@ -70,6 +70,7 @@ import org.apache.james.mailbox.store.mail.model.Mailbox;
import org.apache.james.mailbox.store.mail.model.MailboxId;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.apache.james.mailbox.store.mail.model.MessageAttachment;
+import org.apache.james.mailbox.store.mail.model.impl.Cid;
import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
import org.apache.james.util.streams.ImmutableCollectors;
@@ -327,7 +328,7 @@ public class SetMessagesCreationProcessor implements SetMessagesProcessor {
return MessageAttachment.builder()
.attachment(attachmentMapper.getAttachment(AttachmentId.from(attachment.getBlobId().getRawValue())))
.name(attachment.getName().orElse(null))
- .cid(attachment.getCid().orElse(null))
+ .cid(attachment.getCid().map(Cid::from).orElse(null))
.isInline(attachment.isIsInline())
.build();
} catch (AttachmentNotFoundException e) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/b87c9390/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
index d23215e..1c592bf 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageFactory.java
@@ -34,6 +34,7 @@ import org.apache.james.jmap.model.message.IndexableMessage;
import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.apache.james.mailbox.store.mail.model.MessageAttachment;
+import org.apache.james.mailbox.store.mail.model.impl.Cid;
import org.apache.james.util.streams.ImmutableCollectors;
import com.google.common.base.Strings;
@@ -163,7 +164,7 @@ public class MessageFactory {
.type(attachment.getAttachment().getType())
.size(attachment.getAttachment().getSize())
.name(attachment.getName().orNull())
- .cid(attachment.getCid().orNull())
+ .cid(attachment.getCid().transform(Cid::getValue).orNull())
.isInline(attachment.isInline())
.build();
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/b87c9390/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/MIMEMessageConverterTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/MIMEMessageConverterTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/MIMEMessageConverterTest.java
index 08e8625..b898aff 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/MIMEMessageConverterTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/MIMEMessageConverterTest.java
@@ -32,6 +32,7 @@ import org.apache.james.jmap.model.CreationMessage.DraftEmailer;
import org.apache.james.jmap.model.CreationMessageId;
import org.apache.james.mailbox.store.mail.model.AttachmentId;
import org.apache.james.mailbox.store.mail.model.MessageAttachment;
+import org.apache.james.mailbox.store.mail.model.impl.Cid;
import org.apache.james.mime4j.Charsets;
import org.apache.james.mime4j.dom.Entity;
import org.apache.james.mime4j.dom.Message;
@@ -335,7 +336,7 @@ public class MIMEMessageConverterTest {
.htmlBody("Hello <b>all<b>!")
.build();
- String expectedCID = "<cid>";
+ String expectedCID = "cid";
String expectedMimeType = "image/png";
String text = "123456";
TextBody expectedBody = new BasicBodyFactory().textBody(text.getBytes(), Charsets.UTF_8);
@@ -345,7 +346,7 @@ public class MIMEMessageConverterTest {
.bytes(text.getBytes())
.type(expectedMimeType)
.build())
- .cid(expectedCID)
+ .cid(Cid.from(expectedCID))
.isInline(true)
.build();
@@ -380,7 +381,7 @@ public class MIMEMessageConverterTest {
TextBody expectedTextBody = new BasicBodyFactory().textBody("Hello all!".getBytes(), Charsets.UTF_8);
TextBody expectedHtmlBody = new BasicBodyFactory().textBody("Hello <b>all<b>!".getBytes(), Charsets.UTF_8);
- String expectedCID = "<cid>";
+ String expectedCID = "cid";
String expectedMimeType = "image/png";
String text = "123456";
TextBody expectedAttachmentBody = new BasicBodyFactory().textBody(text.getBytes(), Charsets.UTF_8);
@@ -390,7 +391,7 @@ public class MIMEMessageConverterTest {
.bytes(text.getBytes())
.type(expectedMimeType)
.build())
- .cid(expectedCID)
+ .cid(Cid.from(expectedCID))
.isInline(true)
.build();
http://git-wip-us.apache.org/repos/asf/james-project/blob/b87c9390/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MailboxMessageTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MailboxMessageTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MailboxMessageTest.java
index 0293808..ac8e736 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MailboxMessageTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MailboxMessageTest.java
@@ -36,6 +36,7 @@ import org.apache.james.mailbox.store.TestId;
import org.apache.james.mailbox.store.mail.model.AttachmentId;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.apache.james.mailbox.store.mail.model.MessageAttachment;
+import org.apache.james.mailbox.store.mail.model.impl.Cid;
import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
import org.junit.Before;
@@ -422,7 +423,7 @@ public class MailboxMessageTest {
.bytes(payload.getBytes())
.type(type)
.build())
- .cid("cid")
+ .cid(Cid.from("cid"))
.isInline(true)
.build()),
x -> MessageId.of("user|box|" + x));
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org