This is an automated email from the ASF dual-hosted git repository. rcordier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit f353c08c109b417216f2289cadbe645f273f2a24 Author: Benoit Tellier <[email protected]> AuthorDate: Wed Aug 4 17:14:29 2021 +0700 JAMES-3544 Upload should provide a supplier of content --- .../src/main/java/org/apache/james/jmap/api/model/Upload.scala | 8 ++++---- .../apache/james/jmap/memory/upload/InMemoryUploadRepository.java | 2 +- .../apache/james/jmap/api/upload/UploadRepositoryContract.scala | 6 +++++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/model/Upload.scala b/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/model/Upload.scala index 73e8578..7bb8e5e 100644 --- a/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/model/Upload.scala +++ b/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/model/Upload.scala @@ -19,15 +19,15 @@ package org.apache.james.jmap.api.model +import java.io.InputStream + import org.apache.james.blob.api.BlobId import org.apache.james.jmap.api.model.Size.Size import org.apache.james.mailbox.model.ContentType -import java.io.InputStream - object Upload { - def from(metaData: UploadMetaData, content: InputStream): Upload = + def from(metaData: UploadMetaData, content: () => InputStream): Upload = Upload(uploadId = metaData.uploadId, size = metaData.size, contentType = metaData.contentType, @@ -37,7 +37,7 @@ object Upload { case class Upload(uploadId: UploadId, size: Size, contentType: ContentType, - content: InputStream) + content: () => InputStream) case class UploadNotFoundException(uploadId: UploadId) extends RuntimeException(s"Upload not found $uploadId") diff --git a/server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/upload/InMemoryUploadRepository.java b/server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/upload/InMemoryUploadRepository.java index 256409a..b8e3b5d 100644 --- a/server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/upload/InMemoryUploadRepository.java +++ b/server/data/data-jmap/src/main/java/org/apache/james/jmap/memory/upload/InMemoryUploadRepository.java @@ -86,7 +86,7 @@ public class InMemoryUploadRepository implements UploadRepository { private Mono<Upload> retrieveUpload(UploadMetaData uploadMetaData) { return Mono.from(blobStore.readBytes(bucketName, uploadMetaData.blobId())) - .map(content -> Upload.from(uploadMetaData, new ByteArrayInputStream(content))); + .map(content -> Upload.from(uploadMetaData, () -> new ByteArrayInputStream(content))); } private byte[] toByteArray(InputStream inputStream) { diff --git a/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/upload/UploadRepositoryContract.scala b/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/upload/UploadRepositoryContract.scala index 3a485eb..6757f90 100644 --- a/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/upload/UploadRepositoryContract.scala +++ b/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/upload/UploadRepositoryContract.scala @@ -19,6 +19,10 @@ package org.apache.james.jmap.api.upload + import java.io.InputStream + import java.nio.charset.StandardCharsets + import java.util.UUID + import org.apache.commons.io.IOUtils import org.apache.james.core.Username import org.apache.james.jmap.api.model.Size.sanitizeSize @@ -77,7 +81,7 @@ .isEqualTo(CONTENT_TYPE) assertThat(actualUpload.size) .isEqualTo(sanitizeSize(DATA_STRING.length)) - assertThat(actualUpload.content.readAllBytes()) + assertThat(actualUpload.content.apply().readAllBytes()) .isEqualTo(DATA_STRING.getBytes) } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
