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 ro...@apache.org on 2016/08/29 13:28:00 UTC

[03/17] james-project git commit: JAMES-1818 Move Attachment and AttachmentId to API

JAMES-1818 Move Attachment and AttachmentId to API


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/81f3420a
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/81f3420a
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/81f3420a

Branch: refs/heads/master
Commit: 81f3420a7656167eda12b00b1a14fd264fb7b5ff
Parents: 10cbc71
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Thu Aug 18 15:05:54 2016 +0200
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Mon Aug 29 15:15:43 2016 +0200

----------------------------------------------------------------------
 mailbox/api/pom.xml                             |   4 +
 .../apache/james/mailbox/model/Attachment.java  | 137 +++++++++++++++++++
 .../james/mailbox/model/AttachmentId.java       |  72 ++++++++++
 .../james/mailbox/model/AttachmentIdTest.java   |  57 ++++++++
 .../james/mailbox/model/AttachmentTest.java     | 127 +++++++++++++++++
 .../mail/CassandraAttachmentMapper.java         |   4 +-
 .../cassandra/mail/CassandraMessageMapper.java  |   4 +-
 .../inmemory/mail/InMemoryAttachmentMapper.java |   4 +-
 mailbox/store/pom.xml                           |   4 -
 .../mailbox/store/StoreMessageManager.java      |   2 +-
 .../mailbox/store/mail/AttachmentMapper.java    |   4 +-
 .../store/mail/NoopAttachmentMapper.java        |   4 +-
 .../mailbox/store/mail/model/Attachment.java    | 137 -------------------
 .../mailbox/store/mail/model/AttachmentId.java  |  72 ----------
 .../store/mail/model/MessageAttachment.java     |   2 +
 .../store/mail/model/impl/MessageParser.java    |   2 +-
 .../store/mail/model/AttachmentIdTest.java      |  56 --------
 .../store/mail/model/AttachmentMapperTest.java  |   2 +
 .../store/mail/model/AttachmentTest.java        | 125 -----------------
 .../store/mail/model/MessageAttachmentTest.java |   1 +
 .../store/mail/model/MessageMapperTest.java     |   2 +
 .../mail/model/impl/MessageParserTest.java      |   2 +-
 .../integration/SetMessagesMethodTest.java      |   2 +-
 .../org/apache/james/jmap/DownloadServlet.java  |   4 +-
 .../org/apache/james/jmap/UploadHandler.java    |   2 +-
 .../methods/SetMessagesCreationProcessor.java   |   2 +-
 .../jmap/methods/MIMEMessageConverterTest.java  |   6 +-
 .../SetMessagesCreationProcessorTest.java       |   2 +-
 .../james/jmap/model/MailboxMessageTest.java    |   4 +-
 29 files changed, 428 insertions(+), 418 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/api/pom.xml
----------------------------------------------------------------------
diff --git a/mailbox/api/pom.xml b/mailbox/api/pom.xml
index 9dbca1d..86b1f27 100644
--- a/mailbox/api/pom.xml
+++ b/mailbox/api/pom.xml
@@ -41,6 +41,10 @@
             <artifactId>commons-lang</artifactId>
         </dependency>
         <dependency>
+            <groupId>commons-codec</groupId>
+            <artifactId>commons-codec</artifactId>
+        </dependency>
+        <dependency>
             <groupId>${javax.mail.groupId}</groupId>
             <artifactId>${javax.mail.artifactId}</artifactId>
         </dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/api/src/main/java/org/apache/james/mailbox/model/Attachment.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/Attachment.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/Attachment.java
new file mode 100644
index 0000000..2be135a
--- /dev/null
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/Attachment.java
@@ -0,0 +1,137 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.mailbox.model;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+
+import com.google.common.base.MoreObjects;
+import com.google.common.base.Objects;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
+
+public class Attachment {
+
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    public static class Builder {
+
+        private AttachmentId attachmentId;
+        private byte[] bytes;
+        private String type;
+
+        public Builder attachmentId(AttachmentId attachmentId) {
+            Preconditions.checkArgument(attachmentId != null);
+            this.attachmentId = attachmentId;
+            return this;
+        }
+
+        public Builder bytes(byte[] bytes) {
+            Preconditions.checkArgument(bytes != null);
+            this.bytes = bytes;
+            return this;
+        }
+
+        public Builder type(String type) {
+            Preconditions.checkArgument(!Strings.isNullOrEmpty(type));
+            this.type = type;
+            return this;
+        }
+
+        public Attachment build() {
+            Preconditions.checkState(bytes != null, "'bytes' is mandatory");
+            AttachmentId builtAttachmentId = attachmentId();
+            Preconditions.checkState(builtAttachmentId != null, "'attachmentId' is mandatory");
+            Preconditions.checkState(type != null, "'type' is mandatory");
+            return new Attachment(bytes, builtAttachmentId, type, size());
+        }
+
+        private AttachmentId attachmentId() {
+            if (attachmentId != null) {
+                return attachmentId;
+            }
+            return AttachmentId.forPayload(bytes);
+        }
+
+        private long size() {
+            return bytes.length;
+        }
+    }
+
+    private final byte[] bytes;
+    private final AttachmentId attachmentId;
+    private final String type;
+    private final long size;
+
+    private Attachment(byte[] bytes, AttachmentId attachmentId, String type, long size) {
+        this.bytes = bytes;
+        this.attachmentId = attachmentId;
+        this.type = type;
+        this.size = size;
+    }
+
+    public AttachmentId getAttachmentId() {
+        return attachmentId;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public long getSize() {
+        return size;
+    }
+
+    public InputStream getStream() throws IOException {
+        return new ByteArrayInputStream(bytes);
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (obj instanceof Attachment) {
+            Attachment other = (Attachment) obj;
+            return Objects.equal(attachmentId, other.attachmentId)
+                && Arrays.equals(bytes, other.bytes)
+                && Objects.equal(type, other.type)
+                && Objects.equal(size, other.size);
+        }
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hashCode(attachmentId, bytes, type, size);
+    }
+
+    @Override
+    public String toString() {
+        return MoreObjects
+                .toStringHelper(this)
+                .add("attachmentId", attachmentId)
+                .add("bytes", bytes)
+                .add("type", type)
+                .add("size", size)
+                .toString();
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/api/src/main/java/org/apache/james/mailbox/model/AttachmentId.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/AttachmentId.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/AttachmentId.java
new file mode 100644
index 0000000..0cdc4c3
--- /dev/null
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/AttachmentId.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.model;
+
+
+import org.apache.commons.codec.digest.DigestUtils;
+
+import com.google.common.base.MoreObjects;
+import com.google.common.base.Objects;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
+
+public class AttachmentId {
+
+    public static AttachmentId forPayload(byte[] payload) {
+        Preconditions.checkArgument(payload != null);
+        return new AttachmentId(DigestUtils.sha1Hex(payload));
+    }
+
+    public static AttachmentId from(String id) {
+        Preconditions.checkArgument(!Strings.isNullOrEmpty(id));
+        return new AttachmentId(id);
+    }
+
+    private final String id;
+
+    private AttachmentId(String id) {
+        this.id = id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (obj instanceof AttachmentId) {
+            AttachmentId other = (AttachmentId) obj;
+            return Objects.equal(id, other.id);
+        }
+        return false;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hashCode(id);
+    }
+
+    @Override
+    public String toString() {
+        return MoreObjects
+                .toStringHelper(this)
+                .add("id", id)
+                .toString();
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/api/src/test/java/org/apache/james/mailbox/model/AttachmentIdTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/AttachmentIdTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/AttachmentIdTest.java
new file mode 100644
index 0000000..75039bd
--- /dev/null
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/AttachmentIdTest.java
@@ -0,0 +1,57 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.mailbox.model;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.apache.james.mailbox.model.AttachmentId;
+import org.junit.Test;
+
+public class AttachmentIdTest {
+
+    @Test
+    public void forPayloadShouldCalculateTheUnderlyingSha1() {
+        AttachmentId attachmentId = AttachmentId.forPayload("payload".getBytes());
+        String expectedId = "f07e5a815613c5abeddc4b682247a4c42d8a95df";
+        assertThat(attachmentId.getId()).isEqualTo(expectedId);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void forPayloadShouldThrowWhenPayloadIsNull() {
+        AttachmentId.forPayload(null);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void fromShouldThrowWhenIdIsNull() {
+        AttachmentId.from(null);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void fromShouldThrowWhenIdIsEmpty() {
+        AttachmentId.from("");
+    }
+
+    @Test
+    public void fromShouldWork() {
+        String expectedId = "f07e5a815613c5abeddc4b682247a4c42d8a95df";
+        AttachmentId attachmentId = AttachmentId.from(expectedId);
+        assertThat(attachmentId.getId()).isEqualTo(expectedId);
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/api/src/test/java/org/apache/james/mailbox/model/AttachmentTest.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/AttachmentTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/AttachmentTest.java
new file mode 100644
index 0000000..6a1c29c
--- /dev/null
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/AttachmentTest.java
@@ -0,0 +1,127 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+
+package org.apache.james.mailbox.model;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.io.InputStream;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.james.mailbox.model.Attachment;
+
+import org.junit.Test;
+
+public class AttachmentTest {
+
+    @Test
+    public void streamShouldBeConsumedOneTime() throws Exception {
+        String input = "mystream";
+        Attachment attachment = Attachment.builder()
+                .bytes(input.getBytes())
+                .type("content")
+                .build();
+
+        InputStream stream = attachment.getStream();
+        assertThat(stream).isNotNull();
+        assertThat(IOUtils.toString(stream)).isEqualTo(input);
+    }
+
+    @Test
+    public void streamShouldBeConsumedMoreThanOneTime() throws Exception {
+        String input = "mystream";
+        Attachment attachment = Attachment.builder()
+                .bytes(input.getBytes())
+                .type("content")
+                .build();
+
+        attachment.getStream();
+        InputStream stream = attachment.getStream();
+        assertThat(stream).isNotNull();
+        assertThat(IOUtils.toString(stream)).isEqualTo(input);
+    }
+
+    @Test (expected = IllegalArgumentException.class)
+    public void builderShouldThrowWhenAttachmentIdIsNull() {
+        Attachment.builder()
+            .attachmentId(null);
+    }
+
+    @Test (expected = IllegalArgumentException.class)
+    public void builderShouldThrowWhenBytesIsNull() {
+        Attachment.builder()
+            .bytes(null);
+    }
+
+    @Test (expected = IllegalArgumentException.class)
+    public void builderShouldThrowWhenTypeIsNull() {
+        Attachment.builder()
+            .type(null);
+    }
+
+    @Test (expected = IllegalArgumentException.class)
+    public void builderShouldThrowWhenTypeIsEmpty() {
+        Attachment.builder()
+            .type("");
+    }
+
+    @Test (expected = IllegalStateException.class)
+    public void buildShouldThrowWhenAttachmentIdIsNotProvided() {
+        Attachment.builder().build();
+    }
+
+    @Test (expected = IllegalStateException.class)
+    public void buildShouldThrowWhenBytesIsNotProvided() {
+        Attachment.builder()
+            .attachmentId(AttachmentId.forPayload("mystream".getBytes()))
+            .build();
+    }
+
+    @Test (expected = IllegalStateException.class)
+    public void buildShouldThrowWhenTypeIsNotProvided() {
+        Attachment.builder()
+            .attachmentId(AttachmentId.forPayload("mystream".getBytes()))
+            .bytes("mystream".getBytes())
+            .build();
+    }
+
+    @Test
+    public void buildShouldSetTheAttachmentId() throws Exception {
+        byte[] bytes = "mystream".getBytes();
+        Attachment attachment = Attachment.builder()
+                .bytes(bytes)
+                .type("content")
+                .build();
+        AttachmentId expected = AttachmentId.forPayload(bytes);
+
+        assertThat(attachment.getAttachmentId()).isEqualTo(expected);
+    }
+
+    @Test
+    public void buildShouldSetTheSize() throws Exception {
+        String input = "mystream";
+        Attachment attachment = Attachment.builder()
+                .bytes(input.getBytes())
+                .type("content")
+                .build();
+
+        assertThat(attachment.getSize()).isEqualTo(input.getBytes().length);
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
index e47ad93..768c964 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraAttachmentMapper.java
@@ -40,9 +40,9 @@ import org.apache.commons.io.IOUtils;
 import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
 import org.apache.james.mailbox.exception.AttachmentNotFoundException;
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.Attachment;
+import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.store.mail.AttachmentMapper;
-import org.apache.james.mailbox.store.mail.model.Attachment;
-import org.apache.james.mailbox.store.mail.model.AttachmentId;
 
 import com.datastax.driver.core.ResultSet;
 import com.datastax.driver.core.Row;

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/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 4e7bd9f..4818ed7 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
@@ -84,6 +84,8 @@ import org.apache.james.mailbox.cassandra.table.CassandraMessageTable;
 import org.apache.james.mailbox.cassandra.table.CassandraMessageTable.Attachments;
 import org.apache.james.mailbox.cassandra.table.CassandraMessageTable.Properties;
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.Attachment;
+import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.model.MessageMetaData;
 import org.apache.james.mailbox.model.MessageRange;
 import org.apache.james.mailbox.model.UpdatedFlags;
@@ -93,8 +95,6 @@ import org.apache.james.mailbox.store.mail.AttachmentMapper;
 import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.ModSeqProvider;
 import org.apache.james.mailbox.store.mail.UidProvider;
-import org.apache.james.mailbox.store.mail.model.Attachment;
-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;

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAttachmentMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAttachmentMapper.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAttachmentMapper.java
index 188318e..43e4699 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAttachmentMapper.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryAttachmentMapper.java
@@ -25,9 +25,9 @@ import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.james.mailbox.exception.AttachmentNotFoundException;
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.Attachment;
+import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.store.mail.AttachmentMapper;
-import org.apache.james.mailbox.store.mail.model.Attachment;
-import org.apache.james.mailbox.store.mail.model.AttachmentId;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/store/pom.xml
----------------------------------------------------------------------
diff --git a/mailbox/store/pom.xml b/mailbox/store/pom.xml
index 599e1bc..fd4993a 100644
--- a/mailbox/store/pom.xml
+++ b/mailbox/store/pom.xml
@@ -69,10 +69,6 @@
             <artifactId>commons-lang</artifactId>
         </dependency>
         <dependency>
-            <groupId>commons-codec</groupId>
-            <artifactId>commons-codec</artifactId>
-        </dependency>
-        <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
index f0452db..5bdb68c 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
@@ -49,6 +49,7 @@ import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.ReadOnlyException;
 import org.apache.james.mailbox.exception.UnsupportedRightException;
+import org.apache.james.mailbox.model.Attachment;
 import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxACL.MailboxACLRights;
 import org.apache.james.mailbox.model.MailboxId;
@@ -65,7 +66,6 @@ import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
 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.Attachment;
 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;

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AttachmentMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AttachmentMapper.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AttachmentMapper.java
index 946a460..dffc815 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AttachmentMapper.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/AttachmentMapper.java
@@ -23,8 +23,8 @@ import java.util.List;
 
 import org.apache.james.mailbox.exception.AttachmentNotFoundException;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.store.mail.model.Attachment;
-import org.apache.james.mailbox.store.mail.model.AttachmentId;
+import org.apache.james.mailbox.model.Attachment;
+import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.store.transaction.Mapper;
 
 public interface AttachmentMapper extends Mapper {

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/NoopAttachmentMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/NoopAttachmentMapper.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/NoopAttachmentMapper.java
index 36000e8..072ae70 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/NoopAttachmentMapper.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/NoopAttachmentMapper.java
@@ -24,8 +24,8 @@ import java.util.List;
 
 import org.apache.james.mailbox.exception.AttachmentNotFoundException;
 import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.store.mail.model.Attachment;
-import org.apache.james.mailbox.store.mail.model.AttachmentId;
+import org.apache.james.mailbox.model.Attachment;
+import org.apache.james.mailbox.model.AttachmentId;
 
 public class NoopAttachmentMapper implements AttachmentMapper {
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Attachment.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Attachment.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Attachment.java
deleted file mode 100644
index 441b690..0000000
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/Attachment.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.james.mailbox.store.mail.model;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-
-import com.google.common.base.MoreObjects;
-import com.google.common.base.Objects;
-import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
-
-public class Attachment {
-
-    public static Builder builder() {
-        return new Builder();
-    }
-
-    public static class Builder {
-
-        private AttachmentId attachmentId;
-        private byte[] bytes;
-        private String type;
-
-        public Builder attachmentId(AttachmentId attachmentId) {
-            Preconditions.checkArgument(attachmentId != null);
-            this.attachmentId = attachmentId;
-            return this;
-        }
-
-        public Builder bytes(byte[] bytes) {
-            Preconditions.checkArgument(bytes != null);
-            this.bytes = bytes;
-            return this;
-        }
-
-        public Builder type(String type) {
-            Preconditions.checkArgument(!Strings.isNullOrEmpty(type));
-            this.type = type;
-            return this;
-        }
-
-        public Attachment build() {
-            Preconditions.checkState(bytes != null, "'bytes' is mandatory");
-            AttachmentId builtAttachmentId = attachmentId();
-            Preconditions.checkState(builtAttachmentId != null, "'attachmentId' is mandatory");
-            Preconditions.checkState(type != null, "'type' is mandatory");
-            return new Attachment(bytes, builtAttachmentId, type, size());
-        }
-
-        private AttachmentId attachmentId() {
-            if (attachmentId != null) {
-                return attachmentId;
-            }
-            return AttachmentId.forPayload(bytes);
-        }
-
-        private long size() {
-            return bytes.length;
-        }
-    }
-
-    private final byte[] bytes;
-    private final AttachmentId attachmentId;
-    private final String type;
-    private final long size;
-
-    private Attachment(byte[] bytes, AttachmentId attachmentId, String type, long size) {
-        this.bytes = bytes;
-        this.attachmentId = attachmentId;
-        this.type = type;
-        this.size = size;
-    }
-
-    public AttachmentId getAttachmentId() {
-        return attachmentId;
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public long getSize() {
-        return size;
-    }
-
-    public InputStream getStream() throws IOException {
-        return new ByteArrayInputStream(bytes);
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (obj instanceof Attachment) {
-            Attachment other = (Attachment) obj;
-            return Objects.equal(attachmentId, other.attachmentId)
-                && Arrays.equals(bytes, other.bytes)
-                && Objects.equal(type, other.type)
-                && Objects.equal(size, other.size);
-        }
-        return false;
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hashCode(attachmentId, bytes, type, size);
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects
-                .toStringHelper(this)
-                .add("attachmentId", attachmentId)
-                .add("bytes", bytes)
-                .add("type", type)
-                .add("size", size)
-                .toString();
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/AttachmentId.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/AttachmentId.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/AttachmentId.java
deleted file mode 100644
index 344c84e..0000000
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/AttachmentId.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.store.mail.model;
-
-
-import org.apache.commons.codec.digest.DigestUtils;
-
-import com.google.common.base.MoreObjects;
-import com.google.common.base.Objects;
-import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
-
-public class AttachmentId {
-
-    public static AttachmentId forPayload(byte[] payload) {
-        Preconditions.checkArgument(payload != null);
-        return new AttachmentId(DigestUtils.sha1Hex(payload));
-    }
-
-    public static AttachmentId from(String id) {
-        Preconditions.checkArgument(!Strings.isNullOrEmpty(id));
-        return new AttachmentId(id);
-    }
-
-    private final String id;
-
-    private AttachmentId(String id) {
-        this.id = id;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (obj instanceof AttachmentId) {
-            AttachmentId other = (AttachmentId) obj;
-            return Objects.equal(id, other.id);
-        }
-        return false;
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hashCode(id);
-    }
-
-    @Override
-    public String toString() {
-        return MoreObjects
-                .toStringHelper(this)
-                .add("id", id)
-                .toString();
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/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 2fb9b78..e59912c 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.model.Attachment;
+import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.store.mail.model.impl.Cid;
 
 import com.google.common.annotations.VisibleForTesting;

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/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 ba407bb..c4d877a 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
@@ -24,7 +24,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.List;
 
-import org.apache.james.mailbox.store.mail.model.Attachment;
+import org.apache.james.mailbox.model.Attachment;
 import org.apache.james.mailbox.store.mail.model.MessageAttachment;
 import org.apache.james.mime4j.MimeException;
 import org.apache.james.mime4j.dom.Body;

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentIdTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentIdTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentIdTest.java
deleted file mode 100644
index b95dc84..0000000
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentIdTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-package org.apache.james.mailbox.store.mail.model;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import org.junit.Test;
-
-public class AttachmentIdTest {
-
-    @Test
-    public void forPayloadShouldCalculateTheUnderlyingSha1() {
-        AttachmentId attachmentId = AttachmentId.forPayload("payload".getBytes());
-        String expectedId = "f07e5a815613c5abeddc4b682247a4c42d8a95df";
-        assertThat(attachmentId.getId()).isEqualTo(expectedId);
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void forPayloadShouldThrowWhenPayloadIsNull() {
-        AttachmentId.forPayload(null);
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void fromShouldThrowWhenIdIsNull() {
-        AttachmentId.from(null);
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void fromShouldThrowWhenIdIsEmpty() {
-        AttachmentId.from("");
-    }
-
-    @Test
-    public void fromShouldWork() {
-        String expectedId = "f07e5a815613c5abeddc4b682247a4c42d8a95df";
-        AttachmentId attachmentId = AttachmentId.from(expectedId);
-        assertThat(attachmentId.getId()).isEqualTo(expectedId);
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java
index 830cbf5..d3ba172 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentMapperTest.java
@@ -25,6 +25,8 @@ import java.util.List;
 
 import org.apache.james.mailbox.exception.AttachmentNotFoundException;
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.Attachment;
+import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.store.mail.AttachmentMapper;
 import org.junit.After;
 import org.junit.Rule;

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentTest.java
deleted file mode 100644
index a0018ba..0000000
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AttachmentTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-
-
-package org.apache.james.mailbox.store.mail.model;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.io.InputStream;
-
-import org.apache.commons.io.IOUtils;
-import org.junit.Test;
-
-public class AttachmentTest {
-
-    @Test
-    public void streamShouldBeConsumedOneTime() throws Exception {
-        String input = "mystream";
-        Attachment attachment = Attachment.builder()
-                .bytes(input.getBytes())
-                .type("content")
-                .build();
-
-        InputStream stream = attachment.getStream();
-        assertThat(stream).isNotNull();
-        assertThat(IOUtils.toString(stream)).isEqualTo(input);
-    }
-
-    @Test
-    public void streamShouldBeConsumedMoreThanOneTime() throws Exception {
-        String input = "mystream";
-        Attachment attachment = Attachment.builder()
-                .bytes(input.getBytes())
-                .type("content")
-                .build();
-
-        attachment.getStream();
-        InputStream stream = attachment.getStream();
-        assertThat(stream).isNotNull();
-        assertThat(IOUtils.toString(stream)).isEqualTo(input);
-    }
-
-    @Test (expected = IllegalArgumentException.class)
-    public void builderShouldThrowWhenAttachmentIdIsNull() {
-        Attachment.builder()
-            .attachmentId(null);
-    }
-
-    @Test (expected = IllegalArgumentException.class)
-    public void builderShouldThrowWhenBytesIsNull() {
-        Attachment.builder()
-            .bytes(null);
-    }
-
-    @Test (expected = IllegalArgumentException.class)
-    public void builderShouldThrowWhenTypeIsNull() {
-        Attachment.builder()
-            .type(null);
-    }
-
-    @Test (expected = IllegalArgumentException.class)
-    public void builderShouldThrowWhenTypeIsEmpty() {
-        Attachment.builder()
-            .type("");
-    }
-
-    @Test (expected = IllegalStateException.class)
-    public void buildShouldThrowWhenAttachmentIdIsNotProvided() {
-        Attachment.builder().build();
-    }
-
-    @Test (expected = IllegalStateException.class)
-    public void buildShouldThrowWhenBytesIsNotProvided() {
-        Attachment.builder()
-            .attachmentId(AttachmentId.forPayload("mystream".getBytes()))
-            .build();
-    }
-
-    @Test (expected = IllegalStateException.class)
-    public void buildShouldThrowWhenTypeIsNotProvided() {
-        Attachment.builder()
-            .attachmentId(AttachmentId.forPayload("mystream".getBytes()))
-            .bytes("mystream".getBytes())
-            .build();
-    }
-
-    @Test
-    public void buildShouldSetTheAttachmentId() throws Exception {
-        byte[] bytes = "mystream".getBytes();
-        Attachment attachment = Attachment.builder()
-                .bytes(bytes)
-                .type("content")
-                .build();
-        AttachmentId expected = AttachmentId.forPayload(bytes);
-
-        assertThat(attachment.getAttachmentId()).isEqualTo(expected);
-    }
-
-    @Test
-    public void buildShouldSetTheSize() throws Exception {
-        String input = "mystream";
-        Attachment attachment = Attachment.builder()
-                .bytes(input.getBytes())
-                .type("content")
-                .build();
-
-        assertThat(attachment.getSize()).isEqualTo(input.getBytes().length);
-    }
-}

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/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 f29c116..7d13932 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.model.Attachment;
 import org.apache.james.mailbox.store.mail.model.impl.Cid;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/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 3c22274..0bfda0c 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
@@ -33,6 +33,8 @@ import javax.mail.util.SharedByteArrayInputStream;
 import org.apache.james.mailbox.FlagsBuilder;
 import org.apache.james.mailbox.MessageManager.FlagsUpdateMode;
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.Attachment;
+import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageMetaData;

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/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 ca5354e..fa1edcd 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
@@ -23,7 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import java.util.List;
 
-import org.apache.james.mailbox.store.mail.model.Attachment;
+import org.apache.james.mailbox.model.Attachment;
 import org.apache.james.mailbox.store.mail.model.MessageAttachment;
 import org.junit.Before;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
index 9bb8220..c70a7be 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetMessagesMethodTest.java
@@ -54,9 +54,9 @@ import org.apache.james.jmap.JmapAuthentication;
 import org.apache.james.jmap.api.access.AccessToken;
 import org.apache.james.jmap.model.mailbox.Role;
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.Attachment;
 import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailbox.model.MailboxPath;
-import org.apache.james.mailbox.store.mail.model.Attachment;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.util.ZeroedInputStream;
 import org.hamcrest.Matchers;

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/server/protocols/jmap/src/main/java/org/apache/james/jmap/DownloadServlet.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/DownloadServlet.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/DownloadServlet.java
index d54a7e3..35f283a 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/DownloadServlet.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/DownloadServlet.java
@@ -38,10 +38,10 @@ import org.apache.james.jmap.utils.DownloadPath;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.AttachmentNotFoundException;
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.Attachment;
+import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
 import org.apache.james.mailbox.store.mail.AttachmentMapper;
-import org.apache.james.mailbox.store.mail.model.Attachment;
-import org.apache.james.mailbox.store.mail.model.AttachmentId;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/server/protocols/jmap/src/main/java/org/apache/james/jmap/UploadHandler.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/UploadHandler.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/UploadHandler.java
index 1bd5af3..4ec90b3 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/UploadHandler.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/UploadHandler.java
@@ -30,9 +30,9 @@ import org.apache.james.jmap.json.ObjectMapperFactory;
 import org.apache.james.jmap.model.UploadResponse;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.model.Attachment;
 import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
 import org.apache.james.mailbox.store.mail.AttachmentMapper;
-import org.apache.james.mailbox.store.mail.model.Attachment;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.io.ByteStreams;

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/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 4ffd308..5d1b1e6 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
@@ -61,13 +61,13 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.AttachmentNotFoundException;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
+import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
 import org.apache.james.mailbox.store.mail.AttachmentMapper;
 import org.apache.james.mailbox.store.mail.AttachmentMapperFactory;
 import org.apache.james.mailbox.store.mail.MessageMapper;
-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;

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/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 3bbe36c..5876bc3 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
@@ -30,7 +30,7 @@ import org.apache.james.jmap.methods.ValueWithId.MessageWithId;
 import org.apache.james.jmap.model.CreationMessage;
 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.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;
@@ -366,7 +366,7 @@ public class MIMEMessageConverterTest {
         String text = "123456";
         TextBody expectedBody = new BasicBodyFactory().textBody(text.getBytes(), Charsets.UTF_8);
         MessageAttachment attachment = MessageAttachment.builder()
-                .attachment(org.apache.james.mailbox.store.mail.model.Attachment.builder()
+                .attachment(org.apache.james.mailbox.model.Attachment.builder()
                     .attachmentId(AttachmentId.from("blodId"))
                     .bytes(text.getBytes())
                     .type(expectedMimeType)
@@ -412,7 +412,7 @@ public class MIMEMessageConverterTest {
         String text = "123456";
         TextBody expectedAttachmentBody = new BasicBodyFactory().textBody(text.getBytes(), Charsets.UTF_8);
         MessageAttachment attachment = MessageAttachment.builder()
-                .attachment(org.apache.james.mailbox.store.mail.model.Attachment.builder()
+                .attachment(org.apache.james.mailbox.model.Attachment.builder()
                     .attachmentId(AttachmentId.from("blodId"))
                     .bytes(text.getBytes())
                     .type(expectedMimeType)

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
index 178c554..f8cc675 100644
--- a/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
+++ b/server/protocols/jmap/src/test/java/org/apache/james/jmap/methods/SetMessagesCreationProcessorTest.java
@@ -61,6 +61,7 @@ import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.exception.AttachmentNotFoundException;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.mock.MockMailboxSession;
+import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
 import org.apache.james.mailbox.store.TestId;
@@ -68,7 +69,6 @@ import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
 import org.apache.james.mailbox.store.mail.AttachmentMapper;
 import org.apache.james.mailbox.store.mail.AttachmentMapperFactory;
 import org.apache.james.mailbox.store.mail.MessageMapper;
-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.impl.SimpleMailbox;

http://git-wip-us.apache.org/repos/asf/james-project/blob/81f3420a/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 a9280e0..d42e539 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
@@ -32,8 +32,8 @@ import javax.mail.util.SharedByteArrayInputStream;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.james.jmap.utils.HtmlTextExtractor;
+import org.apache.james.mailbox.model.AttachmentId;
 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;
@@ -418,7 +418,7 @@ public class MailboxMessageTest {
                 .build();
         Message testee = messageFactory.fromMailboxMessage(testMail,
                 ImmutableList.of(MessageAttachment.builder()
-                        .attachment(org.apache.james.mailbox.store.mail.model.Attachment.builder()
+                        .attachment(org.apache.james.mailbox.model.Attachment.builder()
                             .attachmentId(AttachmentId.from(blodId.getRawValue()))
                             .bytes(payload.getBytes())
                             .type(type)


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