This is an automated email from the ASF dual-hosted git repository. btellier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 77edc84eebb98fee2acc8f54c6f5da2eb5a7fa8d Author: Matthieu Baechler <[email protected]> AuthorDate: Mon Jan 20 10:39:32 2020 +0100 JAMES-3028 promote DataChunker as a general-purpose util --- .../org/apache/james/blob/cassandra/CassandraDumbBlobStore.java | 8 +++----- .../util/src/main/java/org/apache/james/util}/DataChunker.java | 8 ++++---- .../src/test/java/org/apache/james/util}/DataChunkerTest.java | 2 +- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraDumbBlobStore.java b/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraDumbBlobStore.java index 69dbf41..61cdd93 100644 --- a/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraDumbBlobStore.java +++ b/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/CassandraDumbBlobStore.java @@ -34,7 +34,7 @@ import org.apache.james.blob.api.BucketName; import org.apache.james.blob.api.DumbBlobStore; import org.apache.james.blob.api.ObjectNotFoundException; import org.apache.james.blob.api.ObjectStoreIOException; -import org.apache.james.blob.cassandra.utils.DataChunker; +import org.apache.james.util.DataChunker; import org.apache.james.util.ReactorUtils; import com.github.fge.lambdas.Throwing; @@ -50,7 +50,6 @@ public class CassandraDumbBlobStore implements DumbBlobStore { private final CassandraDefaultBucketDAO defaultBucketDAO; private final CassandraBucketDAO bucketDAO; - private final DataChunker dataChunker; private final CassandraConfiguration configuration; private final BucketName defaultBucket; @@ -64,7 +63,6 @@ public class CassandraDumbBlobStore implements DumbBlobStore { this.bucketDAO = bucketDAO; this.configuration = cassandraConfiguration; this.defaultBucket = defaultBucket; - this.dataChunker = new DataChunker(); } @Override @@ -83,7 +81,7 @@ public class CassandraDumbBlobStore implements DumbBlobStore { public Mono<Void> save(BucketName bucketName, BlobId blobId, byte[] data) { Preconditions.checkNotNull(data); - return Mono.fromCallable(() -> dataChunker.chunk(data, configuration.getBlobPartSize())) + return Mono.fromCallable(() -> DataChunker.chunk(data, configuration.getBlobPartSize())) .flatMap(chunks -> save(bucketName, blobId, chunks)); } @@ -92,7 +90,7 @@ public class CassandraDumbBlobStore implements DumbBlobStore { Preconditions.checkNotNull(bucketName); Preconditions.checkNotNull(inputStream); - return Mono.fromCallable(() -> dataChunker.chunkStream(inputStream, configuration.getBlobPartSize())) + return Mono.fromCallable(() -> DataChunker.chunkStream(inputStream, configuration.getBlobPartSize())) .flatMap(chunks -> save(bucketName, blobId, chunks)) .onErrorMap(e -> new ObjectStoreIOException("Exception occurred while saving input stream", e)); } diff --git a/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/utils/DataChunker.java b/server/container/util/src/main/java/org/apache/james/util/DataChunker.java similarity index 91% rename from server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/utils/DataChunker.java rename to server/container/util/src/main/java/org/apache/james/util/DataChunker.java index 1c2c395..935bd39 100644 --- a/server/blob/blob-cassandra/src/main/java/org/apache/james/blob/cassandra/utils/DataChunker.java +++ b/server/container/util/src/main/java/org/apache/james/util/DataChunker.java @@ -17,7 +17,7 @@ * under the License. * ****************************************************************/ -package org.apache.james.blob.cassandra.utils; +package org.apache.james.util; import java.io.BufferedInputStream; import java.io.IOException; @@ -33,7 +33,7 @@ public class DataChunker { private static final String CHUNK_SIZE_MUST_BE_STRICTLY_POSITIVE = "ChunkSize must be strictly positive"; - public Flux<ByteBuffer> chunk(byte[] data, int chunkSize) { + public static Flux<ByteBuffer> chunk(byte[] data, int chunkSize) { Preconditions.checkNotNull(data); Preconditions.checkArgument(chunkSize > 0, CHUNK_SIZE_MUST_BE_STRICTLY_POSITIVE); @@ -46,14 +46,14 @@ public class DataChunker { lastChunk(data, chunkSize * fullChunkCount, fullChunkCount)); } - private Mono<ByteBuffer> lastChunk(byte[] data, int offset, int index) { + private static Mono<ByteBuffer> lastChunk(byte[] data, int offset, int index) { if (offset == data.length && index > 0) { return Mono.empty(); } return Mono.just(ByteBuffer.wrap(data, offset, data.length - offset)); } - public Flux<ByteBuffer> chunkStream(InputStream data, int chunkSize) { + public static Flux<ByteBuffer> chunkStream(InputStream data, int chunkSize) { Preconditions.checkNotNull(data); Preconditions.checkArgument(chunkSize > 0, CHUNK_SIZE_MUST_BE_STRICTLY_POSITIVE); BufferedInputStream bufferedInputStream = new BufferedInputStream(data); diff --git a/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/utils/DataChunkerTest.java b/server/container/util/src/test/java/org/apache/james/util/DataChunkerTest.java similarity index 99% rename from server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/utils/DataChunkerTest.java rename to server/container/util/src/test/java/org/apache/james/util/DataChunkerTest.java index f40d6ec..d879da7 100644 --- a/server/blob/blob-cassandra/src/test/java/org/apache/james/blob/cassandra/utils/DataChunkerTest.java +++ b/server/container/util/src/test/java/org/apache/james/util/DataChunkerTest.java @@ -17,7 +17,7 @@ * under the License. * ****************************************************************/ -package org.apache.james.blob.cassandra.utils; +package org.apache.james.util; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
