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]

Reply via email to