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:05 UTC
[08/17] james-project git commit: JAMES-1818 Use AttachmentManager in
upload servlet
JAMES-1818 Use AttachmentManager in upload servlet
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/49b3ba33
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/49b3ba33
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/49b3ba33
Branch: refs/heads/master
Commit: 49b3ba33b0828b568aa1f677effc6974d5ec9582
Parents: 6e81f25
Author: Raphael Ouazana <ra...@linagora.com>
Authored: Thu Aug 18 15:49:47 2016 +0200
Committer: Raphael Ouazana <ra...@linagora.com>
Committed: Mon Aug 29 15:15:43 2016 +0200
----------------------------------------------------------------------
.../org/apache/james/jmap/UploadHandler.java | 19 ++++++++-----------
.../org/apache/james/jmap/UploadServlet.java | 8 +++++++-
2 files changed, 15 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/49b3ba33/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 4ec90b3..ff1ec90 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
@@ -28,38 +28,35 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.james.jmap.json.ObjectMapperFactory;
import org.apache.james.jmap.model.UploadResponse;
+import org.apache.james.mailbox.AttachmentManager;
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 com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.io.ByteStreams;
public class UploadHandler {
- private final MailboxSessionMapperFactory mailboxSessionMapperFactory;
+ private final AttachmentManager attachmentManager;
private final ObjectMapper objectMapper;
@Inject
- private UploadHandler(MailboxSessionMapperFactory mailboxSessionMapperFactory, ObjectMapperFactory objectMapperFactory) {
- this.mailboxSessionMapperFactory = mailboxSessionMapperFactory;
+ private UploadHandler(AttachmentManager attachmentManager, ObjectMapperFactory objectMapperFactory) {
+ this.attachmentManager = attachmentManager;
this.objectMapper = objectMapperFactory.forWriting();
}
- public void handle(String contentType, InputStream content, HttpServletResponse response) throws IOException, MailboxException {
- UploadResponse storedContent = uploadContent(contentType, content);
+ public void handle(String contentType, InputStream content, MailboxSession mailboxSession, HttpServletResponse response) throws IOException, MailboxException {
+ UploadResponse storedContent = uploadContent(contentType, content, mailboxSession);
buildResponse(response, storedContent);
}
- private UploadResponse uploadContent(String contentType, InputStream inputStream) throws IOException, MailboxException {
- MailboxSession session = null;
- AttachmentMapper attachmentMapper = mailboxSessionMapperFactory.createAttachmentMapper(session);
+ private UploadResponse uploadContent(String contentType, InputStream inputStream, MailboxSession session) throws IOException, MailboxException {
Attachment attachment = Attachment.builder()
.bytes(ByteStreams.toByteArray(inputStream))
.type(contentType)
.build();
- attachmentMapper.storeAttachment(attachment);
+ attachmentManager.storeAttachment(attachment, session);
return UploadResponse.builder()
.blobId(attachment.getAttachmentId().getId())
.type(attachment.getType())
http://git-wip-us.apache.org/repos/asf/james-project/blob/49b3ba33/server/protocols/jmap/src/main/java/org/apache/james/jmap/UploadServlet.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/UploadServlet.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/UploadServlet.java
index a0635a3..873bf5e 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/UploadServlet.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/UploadServlet.java
@@ -29,6 +29,7 @@ import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.exception.MailboxException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,11 +53,16 @@ public class UploadServlet extends HttpServlet {
resp.setStatus(SC_BAD_REQUEST);
} else {
try {
- uploadHandler.handle(contentType, req.getInputStream(), resp);
+ uploadHandler.handle(contentType, req.getInputStream(), getMailboxSession(req), resp);
} catch (IOException | MailboxException e) {
LOGGER.error("Error while uploading content", e);
resp.setStatus(SC_INTERNAL_SERVER_ERROR);
}
}
}
+
+ private MailboxSession getMailboxSession(HttpServletRequest req) {
+ return (MailboxSession) req.getAttribute(AuthenticationFilter.MAILBOX_SESSION);
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org