diff --git a/hudi-common/src/main/java/org/apache/hudi/io/storage/HFileReaderFactory.java b/hudi-common/src/main/java/org/apache/hudi/io/storage/HFileReaderFactory.java index c6a8c83d29bb2..fca261ba62022 100644 --- a/hudi-common/src/main/java/org/apache/hudi/io/storage/HFileReaderFactory.java +++ b/hudi-common/src/main/java/org/apache/hudi/io/storage/HFileReaderFactory.java @@ -27,7 +27,6 @@ import org.apache.hudi.common.util.Option; import org.apache.hudi.common.util.ValidationUtils; import org.apache.hudi.common.util.hash.MurmurHash; -import org.apache.hudi.common.util.io.ByteBufferBackedInputStream; import org.apache.hudi.io.ByteArraySeekableDataInputStream; import org.apache.hudi.io.SeekableDataInputStream; import org.apache.hudi.io.hfile.CachingHFileReaderImpl; @@ -110,11 +109,11 @@ private SeekableDataInputStream createInputStream(long fileSize) throws IOExcept buffer = new byte[(int) storage.getPathInfo(path).getLength()]; stream.readFully(buffer); } - return new ByteArraySeekableDataInputStream(new ByteBufferBackedInputStream(buffer)); + return new ByteArraySeekableDataInputStream(storage.openByteArray(buffer)); } return storage.openSeekable(fileSource.asLeft(), false); } - return new ByteArraySeekableDataInputStream(new ByteBufferBackedInputStream(fileSource.asRight())); + return new ByteArraySeekableDataInputStream(storage.openByteArray(fileSource.asRight())); } public static Builder builder() { diff --git a/hudi-common/src/main/java/org/apache/hudi/parquet/io/ByteBufferBackedInputFile.java b/hudi-common/src/main/java/org/apache/hudi/parquet/io/ByteBufferBackedInputFile.java index 1802eba2e4bc8..64d78ff7dfa81 100644 --- a/hudi-common/src/main/java/org/apache/hudi/parquet/io/ByteBufferBackedInputFile.java +++ b/hudi-common/src/main/java/org/apache/hudi/parquet/io/ByteBufferBackedInputFile.java @@ -18,7 +18,7 @@ package org.apache.hudi.parquet.io; -import org.apache.hudi.common.util.io.ByteBufferBackedInputStream; +import org.apache.hudi.io.ByteBufferBackedInputStream; import org.apache.parquet.io.DelegatingSeekableInputStream; import org.apache.parquet.io.InputFile; @@ -27,6 +27,7 @@ /** * Implementation of {@link InputFile} backed by {@code byte[]} buffer */ +@Deprecated public class ByteBufferBackedInputFile implements InputFile { private final byte[] buffer; private final int offset; diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/log/block/TestHoodieAvroDataBlock.java b/hudi-common/src/test/java/org/apache/hudi/common/table/log/block/TestHoodieAvroDataBlock.java index 716f08a88b302..75b37e5fbebdc 100644 --- a/hudi-common/src/test/java/org/apache/hudi/common/table/log/block/TestHoodieAvroDataBlock.java +++ b/hudi-common/src/test/java/org/apache/hudi/common/table/log/block/TestHoodieAvroDataBlock.java @@ -28,7 +28,7 @@ import org.apache.hudi.common.table.log.block.HoodieLogBlock.HeaderMetadataType; import org.apache.hudi.common.util.Option; import org.apache.hudi.common.util.collection.ClosableIterator; -import org.apache.hudi.common.util.io.ByteBufferBackedInputStream; +import org.apache.hudi.io.ByteBufferBackedInputStream; import org.apache.hudi.exception.HoodieIOException; import org.apache.hudi.io.ByteArraySeekableDataInputStream; import org.apache.hudi.io.SeekableDataInputStream; diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/log/block/TestHoodieLogBlock.java b/hudi-common/src/test/java/org/apache/hudi/common/table/log/block/TestHoodieLogBlock.java index fd5dc1251495c..391423421531c 100644 --- a/hudi-common/src/test/java/org/apache/hudi/common/table/log/block/TestHoodieLogBlock.java +++ b/hudi-common/src/test/java/org/apache/hudi/common/table/log/block/TestHoodieLogBlock.java @@ -21,7 +21,7 @@ import org.apache.hudi.common.model.HoodieLogFile; import org.apache.hudi.common.util.Option; -import org.apache.hudi.common.util.io.ByteBufferBackedInputStream; +import org.apache.hudi.io.ByteBufferBackedInputStream; import org.apache.hudi.io.ByteArraySeekableDataInputStream; import org.apache.hudi.io.SeekableDataInputStream; import org.apache.hudi.storage.HoodieStorage; diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/io/TestByteBufferBackedInputStream.java b/hudi-common/src/test/java/org/apache/hudi/io/TestByteBufferBackedInputStream.java similarity index 98% rename from hudi-common/src/test/java/org/apache/hudi/common/util/io/TestByteBufferBackedInputStream.java rename to hudi-common/src/test/java/org/apache/hudi/io/TestByteBufferBackedInputStream.java index 56291648daa9e..477360b23a4c3 100644 --- a/hudi-common/src/test/java/org/apache/hudi/common/util/io/TestByteBufferBackedInputStream.java +++ b/hudi-common/src/test/java/org/apache/hudi/io/TestByteBufferBackedInputStream.java @@ -16,7 +16,7 @@ * limitations under the License. */ -package org.apache.hudi.common.util.io; +package org.apache.hudi.io; import org.junit.jupiter.api.Test; diff --git a/hudi-io/src/main/java/org/apache/hudi/io/ByteArraySeekableDataInputStream.java b/hudi-io/src/main/java/org/apache/hudi/io/ByteArraySeekableDataInputStream.java index 5ebe3a1729b36..8088e94b20eb1 100644 --- a/hudi-io/src/main/java/org/apache/hudi/io/ByteArraySeekableDataInputStream.java +++ b/hudi-io/src/main/java/org/apache/hudi/io/ByteArraySeekableDataInputStream.java @@ -19,8 +19,6 @@ package org.apache.hudi.io; -import org.apache.hudi.common.util.io.ByteBufferBackedInputStream; - import java.io.IOException; /** diff --git a/hudi-io/src/main/java/org/apache/hudi/common/util/io/ByteBufferBackedInputStream.java b/hudi-io/src/main/java/org/apache/hudi/io/ByteBufferBackedInputStream.java similarity index 99% rename from hudi-io/src/main/java/org/apache/hudi/common/util/io/ByteBufferBackedInputStream.java rename to hudi-io/src/main/java/org/apache/hudi/io/ByteBufferBackedInputStream.java index b8a2ea2f213ff..7dcb7542708b1 100644 --- a/hudi-io/src/main/java/org/apache/hudi/common/util/io/ByteBufferBackedInputStream.java +++ b/hudi-io/src/main/java/org/apache/hudi/io/ByteBufferBackedInputStream.java @@ -16,7 +16,7 @@ * limitations under the License. */ -package org.apache.hudi.common.util.io; +package org.apache.hudi.io; import javax.annotation.Nonnull; diff --git a/hudi-io/src/main/java/org/apache/hudi/storage/HoodieStorage.java b/hudi-io/src/main/java/org/apache/hudi/storage/HoodieStorage.java index 004d88b661834..d54951bc7089a 100644 --- a/hudi-io/src/main/java/org/apache/hudi/storage/HoodieStorage.java +++ b/hudi-io/src/main/java/org/apache/hudi/storage/HoodieStorage.java @@ -24,6 +24,7 @@ import org.apache.hudi.PublicAPIMethod; import org.apache.hudi.common.util.Option; import org.apache.hudi.exception.HoodieIOException; +import org.apache.hudi.io.ByteBufferBackedInputStream; import org.apache.hudi.io.SeekableDataInputStream; import org.slf4j.Logger; @@ -437,6 +438,14 @@ public SeekableDataInputStream openSeekable(StoragePath path, boolean wrapStream return openSeekable(path, getDefaultBlockSize(path), wrapStream); } + /** + * todo doc + */ + @PublicAPIMethod(maturity = ApiMaturityLevel.EVOLVING) + public ByteBufferBackedInputStream openByteArray(byte[] array) { + return new ByteBufferBackedInputStream(array); + } + /** * Lists the file info of the direct files/directories in the given list of paths, * if the paths are directory. diff --git a/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileCompatibility.java b/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileCompatibility.java index 97dc821cb79db..62fb4ae8b26ee 100644 --- a/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileCompatibility.java +++ b/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileCompatibility.java @@ -19,7 +19,7 @@ package org.apache.hudi.io.hfile; -import org.apache.hudi.common.util.io.ByteBufferBackedInputStream; +import org.apache.hudi.io.ByteBufferBackedInputStream; import org.apache.hudi.io.ByteArraySeekableDataInputStream; import org.apache.hudi.io.SeekableDataInputStream; import org.apache.hudi.io.util.IOUtils; diff --git a/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileReadCompatibility.java b/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileReadCompatibility.java index 45f1dab9c931e..373e84eef95c5 100644 --- a/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileReadCompatibility.java +++ b/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileReadCompatibility.java @@ -19,7 +19,7 @@ package org.apache.hudi.io.hfile; -import org.apache.hudi.common.util.io.ByteBufferBackedInputStream; +import org.apache.hudi.io.ByteBufferBackedInputStream; import org.apache.hudi.io.ByteArraySeekableDataInputStream; import org.apache.hudi.io.SeekableDataInputStream; import org.apache.hudi.io.util.IOUtils; diff --git a/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileReader.java b/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileReader.java index 469ba37c27709..26bb3ca6bb26d 100644 --- a/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileReader.java +++ b/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileReader.java @@ -20,7 +20,7 @@ package org.apache.hudi.io.hfile; import org.apache.hudi.common.util.Option; -import org.apache.hudi.common.util.io.ByteBufferBackedInputStream; +import org.apache.hudi.io.ByteBufferBackedInputStream; import org.apache.hudi.io.ByteArraySeekableDataInputStream; import org.junit.jupiter.api.Test; diff --git a/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileWriter.java b/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileWriter.java index 18f11f7ea5a44..f6b015ba68a78 100644 --- a/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileWriter.java +++ b/hudi-io/src/test/java/org/apache/hudi/io/hfile/TestHFileWriter.java @@ -19,7 +19,7 @@ package org.apache.hudi.io.hfile; -import org.apache.hudi.common.util.io.ByteBufferBackedInputStream; +import org.apache.hudi.io.ByteBufferBackedInputStream; import org.apache.hudi.io.ByteArraySeekableDataInputStream; import org.apache.hudi.io.SeekableDataInputStream;