"
+ *
+ * Outer File Path format:
+ * "outer_file_scheme://path/to/outer/file"
+ *
+ * Example
+ * Input: "inlinefs://file1/s3a/?start_offset=20&length=40".
+ * Output: "s3a://file1"
+ *
+ * @param inlineFSPath InLineFS Path to get the outer file Path
+ * @return Outer file Path from the InLineFS Path
+ */
+ public static Path getOuterFilePathFromInlinePath(Path inlineFSPath) {
+ StoragePath storagePath = convertToStoragePath(inlineFSPath);
+ StoragePath outerFilePath = getOuterFilePathFromInlinePath(storagePath);
+ return convertToHadoopPath(outerFilePath);
+ }
+}
diff --git a/hudi-hadoop-common/src/main/java/org/apache/hudi/hadoop/fs/inline/InLineFileSystem.java b/hudi-hadoop-common/src/main/java/org/apache/hudi/hadoop/fs/inline/InLineFileSystem.java
index 9d7d187b807e..9296b7178999 100644
--- a/hudi-hadoop-common/src/main/java/org/apache/hudi/hadoop/fs/inline/InLineFileSystem.java
+++ b/hudi-hadoop-common/src/main/java/org/apache/hudi/hadoop/fs/inline/InLineFileSystem.java
@@ -20,6 +20,7 @@
package org.apache.hudi.hadoop.fs.inline;
import org.apache.hudi.storage.StoragePath;
+import org.apache.hudi.storage.inline.InLineFSUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
@@ -33,6 +34,8 @@
import java.io.IOException;
import java.net.URI;
+import static org.apache.hudi.hadoop.fs.HadoopFSUtils.convertToStoragePath;
+
/**
* Enables reading any inline file at a given offset and length. This {@link FileSystem} is used only in read path and does not support
* any write apis.
@@ -46,7 +49,7 @@
*/
public class InLineFileSystem extends FileSystem {
- public static final String SCHEME = "inlinefs";
+ public static final String SCHEME = InLineFSUtils.SCHEME;
private Configuration conf = null;
@Override
@@ -67,11 +70,11 @@ public String getScheme() {
@Override
public FSDataInputStream open(Path inlinePath, int bufferSize) throws IOException {
- Path outerPath = InLineFSUtils.getOuterFilePathFromInlinePath(inlinePath);
+ Path outerPath = HadoopInLineFSUtils.getOuterFilePathFromInlinePath(inlinePath);
FileSystem outerFs = outerPath.getFileSystem(conf);
FSDataInputStream outerStream = outerFs.open(outerPath, bufferSize);
- StoragePath inlineStoragePath = new StoragePath(inlinePath.toUri());
- return new InLineFsDataInputStream(InLineFSUtils.startOffset(inlineStoragePath), outerStream, InLineFSUtils.length(inlineStoragePath));
+ StoragePath inlineStoragePath = convertToStoragePath(inlinePath);
+ return new InLineFsDataInputStream(HadoopInLineFSUtils.startOffset(inlineStoragePath), outerStream, HadoopInLineFSUtils.length(inlineStoragePath));
}
@Override
@@ -85,10 +88,10 @@ public boolean exists(Path f) {
@Override
public FileStatus getFileStatus(Path inlinePath) throws IOException {
- Path outerPath = InLineFSUtils.getOuterFilePathFromInlinePath(inlinePath);
+ Path outerPath = HadoopInLineFSUtils.getOuterFilePathFromInlinePath(inlinePath);
FileSystem outerFs = outerPath.getFileSystem(conf);
FileStatus status = outerFs.getFileStatus(outerPath);
- FileStatus toReturn = new FileStatus(InLineFSUtils.length(new StoragePath(inlinePath.toUri())), status.isDirectory(), status.getReplication(), status.getBlockSize(),
+ FileStatus toReturn = new FileStatus(HadoopInLineFSUtils.length(convertToStoragePath(inlinePath)), status.isDirectory(), status.getReplication(), status.getBlockSize(),
status.getModificationTime(), status.getAccessTime(), status.getPermission(), status.getOwner(),
status.getGroup(), inlinePath);
return toReturn;
diff --git a/hudi-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroHFileWriter.java b/hudi-hadoop-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroHFileWriter.java
similarity index 98%
rename from hudi-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroHFileWriter.java
rename to hudi-hadoop-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroHFileWriter.java
index 5d7366ac9399..6de6b24868b5 100644
--- a/hudi-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroHFileWriter.java
+++ b/hudi-hadoop-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroHFileWriter.java
@@ -21,10 +21,10 @@
import org.apache.hudi.avro.HoodieAvroUtils;
import org.apache.hudi.common.bloom.BloomFilter;
import org.apache.hudi.common.engine.TaskContextSupplier;
-import org.apache.hudi.common.fs.FSUtils;
import org.apache.hudi.common.model.HoodieKey;
import org.apache.hudi.common.util.Option;
import org.apache.hudi.exception.HoodieDuplicateKeyException;
+import org.apache.hudi.hadoop.fs.HadoopFSUtils;
import org.apache.hudi.hadoop.fs.HoodieWrapperFileSystem;
import org.apache.hudi.metadata.MetadataPartitionType;
import org.apache.hudi.storage.StoragePath;
@@ -80,7 +80,7 @@ public class HoodieAvroHFileWriter
public HoodieAvroHFileWriter(String instantTime, StoragePath file, HoodieHFileConfig hfileConfig, Schema schema,
TaskContextSupplier taskContextSupplier, boolean populateMetaFields) throws IOException {
- Configuration conf = FSUtils.registerFileSystem(file, hfileConfig.getHadoopConf());
+ Configuration conf = HadoopFSUtils.registerFileSystem(file, hfileConfig.getHadoopConf());
this.file = HoodieWrapperFileSystem.convertToHoodiePath(file, conf);
this.fs = (HoodieWrapperFileSystem) this.file.getFileSystem(conf);
this.hfileConfig = hfileConfig;
diff --git a/hudi-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroOrcWriter.java b/hudi-hadoop-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroOrcWriter.java
similarity index 94%
rename from hudi-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroOrcWriter.java
rename to hudi-hadoop-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroOrcWriter.java
index 3346816125bf..07e7bc7f1223 100644
--- a/hudi-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroOrcWriter.java
+++ b/hudi-hadoop-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroOrcWriter.java
@@ -18,13 +18,14 @@
package org.apache.hudi.io.storage;
+import org.apache.hudi.avro.HoodieAvroWriteSupport;
import org.apache.hudi.avro.HoodieBloomFilterWriteSupport;
import org.apache.hudi.common.bloom.BloomFilter;
import org.apache.hudi.common.bloom.HoodieDynamicBoundedBloomFilter;
import org.apache.hudi.common.engine.TaskContextSupplier;
-import org.apache.hudi.common.fs.FSUtils;
import org.apache.hudi.common.model.HoodieKey;
import org.apache.hudi.common.util.AvroOrcUtils;
+import org.apache.hudi.hadoop.fs.HadoopFSUtils;
import org.apache.hudi.hadoop.fs.HoodieWrapperFileSystem;
import org.apache.hudi.storage.StoragePath;
@@ -45,7 +46,6 @@
import java.util.List;
import java.util.concurrent.atomic.AtomicLong;
-import static org.apache.hudi.avro.HoodieAvroWriteSupport.HOODIE_AVRO_BLOOM_FILTER_METADATA_KEY;
import static org.apache.hudi.common.util.StringUtils.getUTF8Bytes;
public class HoodieAvroOrcWriter implements HoodieAvroFileWriter, Closeable {
@@ -70,7 +70,7 @@ public class HoodieAvroOrcWriter implements HoodieAvroFileWriter, Closeable {
public HoodieAvroOrcWriter(String instantTime, StoragePath file, HoodieOrcConfig config, Schema schema,
TaskContextSupplier taskContextSupplier) throws IOException {
- Configuration conf = FSUtils.registerFileSystem(file, config.getHadoopConf());
+ Configuration conf = HadoopFSUtils.registerFileSystem(file, config.getHadoopConf());
this.file = HoodieWrapperFileSystem.convertToHoodiePath(file, conf);
this.fs = (HoodieWrapperFileSystem) this.file.getFileSystem(conf);
this.instantTime = instantTime;
@@ -152,7 +152,7 @@ public void close() throws IOException {
if (orcConfig.useBloomFilter()) {
final BloomFilter bloomFilter = orcConfig.getBloomFilter();
- writer.addUserMetadata(HOODIE_AVRO_BLOOM_FILTER_METADATA_KEY, ByteBuffer.wrap(getUTF8Bytes(bloomFilter.serializeToString())));
+ writer.addUserMetadata(HoodieAvroWriteSupport.HOODIE_AVRO_BLOOM_FILTER_METADATA_KEY, ByteBuffer.wrap(getUTF8Bytes(bloomFilter.serializeToString())));
if (minRecordKey != null && maxRecordKey != null) {
writer.addUserMetadata(HoodieBloomFilterWriteSupport.HOODIE_MIN_RECORD_KEY_FOOTER, ByteBuffer.wrap(getUTF8Bytes(minRecordKey)));
writer.addUserMetadata(HoodieBloomFilterWriteSupport.HOODIE_MAX_RECORD_KEY_FOOTER, ByteBuffer.wrap(getUTF8Bytes(maxRecordKey)));
diff --git a/hudi-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroParquetWriter.java b/hudi-hadoop-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroParquetWriter.java
similarity index 100%
rename from hudi-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroParquetWriter.java
rename to hudi-hadoop-common/src/main/java/org/apache/hudi/io/storage/HoodieAvroParquetWriter.java
diff --git a/hudi-common/src/main/java/org/apache/hudi/io/storage/HoodieBaseParquetWriter.java b/hudi-hadoop-common/src/main/java/org/apache/hudi/io/storage/HoodieBaseParquetWriter.java
similarity index 97%
rename from hudi-common/src/main/java/org/apache/hudi/io/storage/HoodieBaseParquetWriter.java
rename to hudi-hadoop-common/src/main/java/org/apache/hudi/io/storage/HoodieBaseParquetWriter.java
index f237db139ab4..06f1e513055f 100644
--- a/hudi-common/src/main/java/org/apache/hudi/io/storage/HoodieBaseParquetWriter.java
+++ b/hudi-hadoop-common/src/main/java/org/apache/hudi/io/storage/HoodieBaseParquetWriter.java
@@ -18,8 +18,8 @@
package org.apache.hudi.io.storage;
-import org.apache.hudi.common.fs.FSUtils;
import org.apache.hudi.common.util.VisibleForTesting;
+import org.apache.hudi.hadoop.fs.HadoopFSUtils;
import org.apache.hudi.hadoop.fs.HoodieWrapperFileSystem;
import org.apache.hudi.storage.StoragePath;
@@ -73,7 +73,7 @@ protected WriteSupport getWriteSupport(Configuration conf) {
parquetWriterbuilder.withDictionaryEncoding(parquetConfig.dictionaryEnabled());
parquetWriterbuilder.withValidation(ParquetWriter.DEFAULT_IS_VALIDATING_ENABLED);
parquetWriterbuilder.withWriterVersion(ParquetWriter.DEFAULT_WRITER_VERSION);
- parquetWriterbuilder.withConf(FSUtils.registerFileSystem(file, parquetConfig.getHadoopConf()));
+ parquetWriterbuilder.withConf(HadoopFSUtils.registerFileSystem(file, parquetConfig.getHadoopConf()));
handleParquetBloomFilters(parquetWriterbuilder, parquetConfig.getHadoopConf());
parquetWriter = parquetWriterbuilder.build();
diff --git a/hudi-hadoop-common/src/main/java/org/apache/hudi/storage/hadoop/HadoopStorageConfiguration.java b/hudi-hadoop-common/src/main/java/org/apache/hudi/storage/hadoop/HadoopStorageConfiguration.java
index f272f8333eb7..ed7b24052472 100644
--- a/hudi-hadoop-common/src/main/java/org/apache/hudi/storage/hadoop/HadoopStorageConfiguration.java
+++ b/hudi-hadoop-common/src/main/java/org/apache/hudi/storage/hadoop/HadoopStorageConfiguration.java
@@ -20,6 +20,7 @@
package org.apache.hudi.storage.hadoop;
import org.apache.hudi.common.util.Option;
+import org.apache.hudi.hadoop.fs.inline.HadoopInLineFSUtils;
import org.apache.hudi.storage.StorageConfiguration;
import org.apache.hadoop.conf.Configuration;
@@ -37,8 +38,8 @@ public class HadoopStorageConfiguration extends StorageConfiguration getString(String key) {
return Option.ofNullable(configuration.get(key));
}
+ @Override
+ public StorageConfiguration getInline() {
+ return HadoopInLineFSUtils.buildInlineConf(this);
+ }
+
@Override
public String toString() {
StringBuilder stringBuilder = new StringBuilder();
diff --git a/hudi-hadoop-common/src/main/java/org/apache/hudi/storage/hadoop/HoodieHadoopStorage.java b/hudi-hadoop-common/src/main/java/org/apache/hudi/storage/hadoop/HoodieHadoopStorage.java
index 1e1ba67ae66f..126b17617eb2 100644
--- a/hudi-hadoop-common/src/main/java/org/apache/hudi/storage/hadoop/HoodieHadoopStorage.java
+++ b/hudi-hadoop-common/src/main/java/org/apache/hudi/storage/hadoop/HoodieHadoopStorage.java
@@ -19,8 +19,11 @@
package org.apache.hudi.storage.hadoop;
+import org.apache.hudi.common.fs.ConsistencyGuard;
import org.apache.hudi.hadoop.fs.HadoopFSUtils;
import org.apache.hudi.hadoop.fs.HadoopSeekableDataInputStream;
+import org.apache.hudi.hadoop.fs.HoodieRetryWrapperFileSystem;
+import org.apache.hudi.hadoop.fs.HoodieWrapperFileSystem;
import org.apache.hudi.io.SeekableDataInputStream;
import org.apache.hudi.storage.HoodieStorage;
import org.apache.hudi.storage.StorageConfiguration;
@@ -43,9 +46,11 @@
import java.util.List;
import java.util.stream.Collectors;
+import static org.apache.hudi.common.util.ValidationUtils.checkArgument;
import static org.apache.hudi.hadoop.fs.HadoopFSUtils.convertToHadoopPath;
import static org.apache.hudi.hadoop.fs.HadoopFSUtils.convertToStoragePath;
import static org.apache.hudi.hadoop.fs.HadoopFSUtils.convertToStoragePathInfo;
+import static org.apache.hudi.hadoop.fs.HadoopFSUtils.getFs;
/**
* Implementation of {@link HoodieStorage} using Hadoop's {@link FileSystem}
@@ -53,6 +58,46 @@
public class HoodieHadoopStorage extends HoodieStorage {
private final FileSystem fs;
+ public HoodieHadoopStorage(HoodieStorage storage) {
+ FileSystem fs = (FileSystem) storage.getFileSystem();
+ if (fs instanceof HoodieWrapperFileSystem) {
+ this.fs = ((HoodieWrapperFileSystem) fs).getFileSystem();
+ } else {
+ this.fs = fs;
+ }
+ }
+
+ public HoodieHadoopStorage(String basePath, Configuration conf) {
+ this(HadoopFSUtils.getFs(basePath, conf));
+ }
+
+ public HoodieHadoopStorage(StoragePath path, StorageConfiguration> conf) {
+ this(HadoopFSUtils.getFs(path, conf.unwrapAs(Configuration.class)));
+ }
+
+ public HoodieHadoopStorage(String basePath, StorageConfiguration> conf) {
+ this(HadoopFSUtils.getFs(basePath, conf));
+ }
+
+ public HoodieHadoopStorage(StoragePath path,
+ StorageConfiguration> conf,
+ boolean enableRetry,
+ long maxRetryIntervalMs,
+ int maxRetryNumbers,
+ long initialRetryIntervalMs,
+ String retryExceptions,
+ ConsistencyGuard consistencyGuard) {
+ FileSystem fileSystem = getFs(path, conf.unwrapCopyAs(Configuration.class));
+
+ if (enableRetry) {
+ fileSystem = new HoodieRetryWrapperFileSystem(fileSystem,
+ maxRetryIntervalMs, maxRetryNumbers, initialRetryIntervalMs, retryExceptions);
+ }
+ checkArgument(!(fileSystem instanceof HoodieWrapperFileSystem),
+ "File System not expected to be that of HoodieWrapperFileSystem");
+ this.fs = new HoodieWrapperFileSystem(fileSystem, consistencyGuard);
+ }
+
public HoodieHadoopStorage(FileSystem fs) {
this.fs = fs;
}
@@ -98,9 +143,9 @@ public InputStream open(StoragePath path) throws IOException {
}
@Override
- public SeekableDataInputStream openSeekable(StoragePath path, int bufferSize) throws IOException {
+ public SeekableDataInputStream openSeekable(StoragePath path, int bufferSize, boolean wrapStream) throws IOException {
return new HadoopSeekableDataInputStream(
- HadoopFSUtils.getFSDataInputStream(fs, path, bufferSize));
+ HadoopFSUtils.getFSDataInputStream(fs, path, bufferSize, wrapStream));
}
@Override
diff --git a/hudi-common/src/test/java/org/apache/hudi/client/transaction/lock/TestInProcessLockProvider.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/client/transaction/lock/TestInProcessLockProvider.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/client/transaction/lock/TestInProcessLockProvider.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/client/transaction/lock/TestInProcessLockProvider.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/bloom/TestBloomFilter.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/bloom/TestBloomFilter.java
similarity index 98%
rename from hudi-common/src/test/java/org/apache/hudi/common/bloom/TestBloomFilter.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/bloom/TestBloomFilter.java
index 2e72b3737a0d..cb7d78476940 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/bloom/TestBloomFilter.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/bloom/TestBloomFilter.java
@@ -31,7 +31,7 @@
import java.util.UUID;
import java.util.stream.Collectors;
-import static org.apache.hudi.common.testutils.FileSystemTestUtils.readLastLineFromResourceFile;
+import static org.apache.hudi.common.testutils.HoodieTestTable.readLastLineFromResourceFile;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/bootstrap/TestBootstrapIndex.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/bootstrap/TestBootstrapIndex.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/bootstrap/TestBootstrapIndex.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/bootstrap/TestBootstrapIndex.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/fs/TestFSUtils.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/TestFSUtils.java
similarity index 97%
rename from hudi-common/src/test/java/org/apache/hudi/common/fs/TestFSUtils.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/TestFSUtils.java
index b3949f468956..a9f2f273a7ae 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/fs/TestFSUtils.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/TestFSUtils.java
@@ -30,8 +30,7 @@
import org.apache.hudi.exception.HoodieIOException;
import org.apache.hudi.hadoop.fs.HadoopFSUtils;
import org.apache.hudi.hadoop.fs.HoodieWrapperFileSystem;
-import org.apache.hudi.hadoop.fs.NoOpConsistencyGuard;
-import org.apache.hudi.hadoop.fs.inline.InLineFSUtils;
+import org.apache.hudi.hadoop.fs.inline.HadoopInLineFSUtils;
import org.apache.hudi.storage.HoodieStorage;
import org.apache.hudi.storage.HoodieStorageUtils;
import org.apache.hudi.storage.StoragePath;
@@ -94,15 +93,15 @@ public void tearDown() throws Exception {
public void testMakeDataFileName() {
String instantTime = HoodieActiveTimeline.formatDate(new Date());
String fileName = UUID.randomUUID().toString();
- assertEquals(FSUtils.makeBaseFileName(instantTime, TEST_WRITE_TOKEN, fileName, BASE_FILE_EXTENSION),
- fileName + "_" + TEST_WRITE_TOKEN + "_" + instantTime + BASE_FILE_EXTENSION);
+ assertEquals(FSUtils.makeBaseFileName(instantTime, TEST_WRITE_TOKEN, fileName, HoodieCommonTestHarness.BASE_FILE_EXTENSION),
+ fileName + "_" + TEST_WRITE_TOKEN + "_" + instantTime + HoodieCommonTestHarness.BASE_FILE_EXTENSION);
}
@Test
public void testMaskFileName() {
String instantTime = HoodieActiveTimeline.formatDate(new Date());
int taskPartitionId = 2;
- assertEquals(FSUtils.maskWithoutFileId(instantTime, taskPartitionId), "*_" + taskPartitionId + "_" + instantTime + BASE_FILE_EXTENSION);
+ assertEquals(FSUtils.maskWithoutFileId(instantTime, taskPartitionId), "*_" + taskPartitionId + "_" + instantTime + HoodieCommonTestHarness.BASE_FILE_EXTENSION);
}
/**
@@ -130,7 +129,7 @@ public void testProcessFiles() throws Exception {
"2016/05/16/2_1-0-1_20190528120000",
".hoodie/.temp/2/2016/05/16/2_1-0-1_20190528120000",
".hoodie/.temp/2/2016/04/15/1_1-0-1_20190528120000")
- .map(fileName -> fileName + BASE_FILE_EXTENSION)
+ .map(fileName -> fileName + HoodieCommonTestHarness.BASE_FILE_EXTENSION)
.collect(Collectors.toList());
files.forEach(f -> {
@@ -170,7 +169,7 @@ public void testProcessFiles() throws Exception {
public void testGetCommitTime() {
String instantTime = HoodieActiveTimeline.formatDate(new Date());
String fileName = UUID.randomUUID().toString();
- String fullFileName = FSUtils.makeBaseFileName(instantTime, TEST_WRITE_TOKEN, fileName, BASE_FILE_EXTENSION);
+ String fullFileName = FSUtils.makeBaseFileName(instantTime, TEST_WRITE_TOKEN, fileName, HoodieCommonTestHarness.BASE_FILE_EXTENSION);
assertEquals(instantTime, FSUtils.getCommitTime(fullFileName));
// test log file name
fullFileName = FSUtils.makeLogFileName(fileName, HOODIE_LOG.getFileExtension(), instantTime, 1, TEST_WRITE_TOKEN);
@@ -181,7 +180,7 @@ public void testGetCommitTime() {
public void testGetFileNameWithoutMeta() {
String instantTime = HoodieActiveTimeline.formatDate(new Date());
String fileName = UUID.randomUUID().toString();
- String fullFileName = FSUtils.makeBaseFileName(instantTime, TEST_WRITE_TOKEN, fileName, BASE_FILE_EXTENSION);
+ String fullFileName = FSUtils.makeBaseFileName(instantTime, TEST_WRITE_TOKEN, fileName, HoodieCommonTestHarness.BASE_FILE_EXTENSION);
assertEquals(fileName, FSUtils.getFileId(fullFileName));
}
@@ -247,7 +246,7 @@ public void tesLogFileName() {
String logFile = FSUtils.makeLogFileName(fileName, ".log", "100", 2, "1-0-1");
System.out.println("Log File =" + logFile);
StoragePath rlPath = new StoragePath(new StoragePath(partitionPath), logFile);
- StoragePath inlineFsPath = InLineFSUtils.getInlineFilePath(
+ StoragePath inlineFsPath = HadoopInLineFSUtils.getInlineFilePath(
new StoragePath(rlPath.toUri()), "file", 0, 100);
assertTrue(FSUtils.isLogFile(rlPath));
assertTrue(FSUtils.isLogFile(inlineFsPath));
@@ -372,7 +371,7 @@ public void testFileNameRelatedFunctions() throws Exception {
final String LOG_EXTENSION = "." + LOG_STR;
// data file name
- String dataFileName = FSUtils.makeBaseFileName(instantTime, writeToken, fileId, BASE_FILE_EXTENSION);
+ String dataFileName = FSUtils.makeBaseFileName(instantTime, writeToken, fileId, HoodieCommonTestHarness.BASE_FILE_EXTENSION);
assertEquals(instantTime, FSUtils.getCommitTime(dataFileName));
assertEquals(fileId, FSUtils.getFileId(dataFileName));
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/fs/TestFSUtilsWithRetryWrapperEnable.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/TestFSUtilsWithRetryWrapperEnable.java
similarity index 99%
rename from hudi-common/src/test/java/org/apache/hudi/common/fs/TestFSUtilsWithRetryWrapperEnable.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/TestFSUtilsWithRetryWrapperEnable.java
index 2ee65d6f045a..2093e658c4e4 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/fs/TestFSUtilsWithRetryWrapperEnable.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/TestFSUtilsWithRetryWrapperEnable.java
@@ -21,7 +21,6 @@
import org.apache.hudi.hadoop.fs.HadoopFSUtils;
import org.apache.hudi.hadoop.fs.HoodieRetryWrapperFileSystem;
import org.apache.hudi.hadoop.fs.HoodieWrapperFileSystem;
-import org.apache.hudi.hadoop.fs.NoOpConsistencyGuard;
import org.apache.hudi.storage.HoodieStorage;
import org.apache.hudi.storage.HoodieStorageUtils;
import org.apache.hudi.storage.StoragePath;
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/fs/TestHoodieWrapperFileSystem.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/TestHoodieWrapperFileSystem.java
similarity index 98%
rename from hudi-common/src/test/java/org/apache/hudi/common/fs/TestHoodieWrapperFileSystem.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/TestHoodieWrapperFileSystem.java
index 93a321166c0d..c7b5217524e5 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/fs/TestHoodieWrapperFileSystem.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/TestHoodieWrapperFileSystem.java
@@ -23,7 +23,6 @@
import org.apache.hudi.common.util.Option;
import org.apache.hudi.hadoop.fs.HadoopFSUtils;
import org.apache.hudi.hadoop.fs.HoodieWrapperFileSystem;
-import org.apache.hudi.hadoop.fs.NoOpConsistencyGuard;
import org.apache.hudi.storage.HoodieStorage;
import org.apache.hudi.storage.HoodieStorageUtils;
import org.apache.hudi.storage.StoragePath;
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/fs/TestStorageSchemes.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/TestStorageSchemes.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/fs/TestStorageSchemes.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/TestStorageSchemes.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/fs/inline/InLineFSUtilsTest.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/InLineFSUtilsTest.java
similarity index 93%
rename from hudi-common/src/test/java/org/apache/hudi/common/fs/inline/InLineFSUtilsTest.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/InLineFSUtilsTest.java
index 04eefcf15dd6..f46a8d23f250 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/fs/inline/InLineFSUtilsTest.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/InLineFSUtilsTest.java
@@ -19,9 +19,8 @@
package org.apache.hudi.common.fs.inline;
import org.apache.hudi.common.testutils.FileSystemTestUtils;
-import org.apache.hudi.hadoop.fs.inline.InLineFSUtils;
-import org.apache.hudi.hadoop.fs.inline.InLineFileSystem;
import org.apache.hudi.storage.StoragePath;
+import org.apache.hudi.storage.inline.InLineFSUtils;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
@@ -32,7 +31,7 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
- * Tests {@link InLineFileSystem}.
+ * Tests {@link InLineFSUtils}.
*/
public class InLineFSUtilsTest {
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystem.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystem.java
similarity index 98%
rename from hudi-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystem.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystem.java
index dd9bdc8cc497..76b55429024f 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystem.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystem.java
@@ -20,7 +20,7 @@
import org.apache.hudi.common.testutils.FileSystemTestUtils;
import org.apache.hudi.common.util.collection.Pair;
-import org.apache.hudi.hadoop.fs.inline.InLineFSUtils;
+import org.apache.hudi.hadoop.fs.inline.HadoopInLineFSUtils;
import org.apache.hudi.hadoop.fs.inline.InLineFileSystem;
import org.apache.hudi.storage.StoragePath;
@@ -350,12 +350,12 @@ public void testInLineFSPathConversions() {
if (inputPath.toString().contains(":")) {
scheme = inputPath.toString().split(":")[0];
}
- final StoragePath actualInLineFSPath = InLineFSUtils.getInlineFilePath(
+ final StoragePath actualInLineFSPath = HadoopInLineFSUtils.getInlineFilePath(
new StoragePath(inputPath.toUri()), scheme, 10, 10);
assertEquals(expectedInLineFSPath, actualInLineFSPath);
final StoragePath actualOuterFilePath =
- InLineFSUtils.getOuterFilePathFromInlinePath(actualInLineFSPath);
+ HadoopInLineFSUtils.getOuterFilePathFromInlinePath(actualInLineFSPath);
assertEquals(expectedTransformedInputPath, actualOuterFilePath);
}
}
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystemHFileInLiningBase.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystemHFileInLiningBase.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystemHFileInLiningBase.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystemHFileInLiningBase.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystemWithHBaseHFileReader.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystemWithHBaseHFileReader.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystemWithHBaseHFileReader.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystemWithHBaseHFileReader.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystemWithHFileReader.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystemWithHFileReader.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystemWithHFileReader.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/TestInLineFileSystemWithHFileReader.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/fs/inline/TestInMemoryFileSystem.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/TestInMemoryFileSystem.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/fs/inline/TestInMemoryFileSystem.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/TestInMemoryFileSystem.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/fs/inline/TestParquetInLining.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/TestParquetInLining.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/fs/inline/TestParquetInLining.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/fs/inline/TestParquetInLining.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/functional/TestHoodieLogFormat.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/functional/TestHoodieLogFormat.java
similarity index 99%
rename from hudi-common/src/test/java/org/apache/hudi/common/functional/TestHoodieLogFormat.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/functional/TestHoodieLogFormat.java
index af8096cc9854..367dc506b218 100755
--- a/hudi-common/src/test/java/org/apache/hudi/common/functional/TestHoodieLogFormat.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/functional/TestHoodieLogFormat.java
@@ -63,7 +63,6 @@
import org.apache.hudi.common.util.collection.ExternalSpillableMap;
import org.apache.hudi.common.util.collection.Pair;
import org.apache.hudi.exception.CorruptedLogFileException;
-import org.apache.hudi.hadoop.fs.HadoopFSUtils;
import org.apache.hudi.storage.HoodieStorage;
import org.apache.hudi.storage.HoodieStorageUtils;
import org.apache.hudi.storage.StoragePath;
@@ -73,7 +72,6 @@
import org.apache.avro.generic.GenericData;
import org.apache.avro.generic.GenericRecord;
import org.apache.avro.generic.IndexedRecord;
-import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocalFileSystem;
@@ -459,7 +457,7 @@ public void testHugeLogFileWrite() throws IOException, URISyntaxException, Inter
header.put(HoodieLogBlock.HeaderMetadataType.SCHEMA, getSimpleSchema().toString());
byte[] dataBlockContentBytes = getDataBlock(DEFAULT_DATA_BLOCK_TYPE, records, header).getContentBytes();
HoodieLogBlock.HoodieLogBlockContentLocation logBlockContentLoc = new HoodieLogBlock.HoodieLogBlockContentLocation(
- HadoopFSUtils.getStorageConf(new Configuration()), null, 0, dataBlockContentBytes.length, 0);
+ HoodieTestUtils.getDefaultStorageConfWithDefaults(), null, 0, dataBlockContentBytes.length, 0);
HoodieDataBlock reusableDataBlock = new HoodieAvroDataBlock(null, Option.ofNullable(dataBlockContentBytes), false,
logBlockContentLoc, Option.ofNullable(getSimpleSchema()), header, new HashMap<>(), HoodieRecord.RECORD_KEY_METADATA_FIELD);
long writtenSize = 0;
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/functional/TestHoodieLogFormatAppendFailure.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/functional/TestHoodieLogFormatAppendFailure.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/functional/TestHoodieLogFormatAppendFailure.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/functional/TestHoodieLogFormatAppendFailure.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/model/TestHoodieFileGroup.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/model/TestHoodieFileGroup.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/model/TestHoodieFileGroup.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/model/TestHoodieFileGroup.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/model/TestHoodiePartitionMetadata.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/model/TestHoodiePartitionMetadata.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/model/TestHoodiePartitionMetadata.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/model/TestHoodiePartitionMetadata.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/model/TestHoodieRecord.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/model/TestHoodieRecord.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/model/TestHoodieRecord.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/model/TestHoodieRecord.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/model/TestHoodieRecordDelegate.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/model/TestHoodieRecordDelegate.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/model/TestHoodieRecordDelegate.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/model/TestHoodieRecordDelegate.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/TestHoodieTableConfig.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/TestHoodieTableConfig.java
similarity index 97%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/TestHoodieTableConfig.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/TestHoodieTableConfig.java
index 750f286f7bb1..70cb9eea6d5f 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/table/TestHoodieTableConfig.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/TestHoodieTableConfig.java
@@ -19,14 +19,13 @@
package org.apache.hudi.common.table;
import org.apache.hudi.common.testutils.HoodieCommonTestHarness;
+import org.apache.hudi.common.testutils.HoodieTestUtils;
import org.apache.hudi.common.util.CollectionUtils;
import org.apache.hudi.exception.HoodieIOException;
-import org.apache.hudi.hadoop.fs.HadoopFSUtils;
import org.apache.hudi.storage.HoodieStorage;
import org.apache.hudi.storage.HoodieStorageUtils;
import org.apache.hudi.storage.StoragePath;
-import org.apache.hadoop.conf.Configuration;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -63,7 +62,7 @@ public class TestHoodieTableConfig extends HoodieCommonTestHarness {
@BeforeEach
public void setUp() throws Exception {
initPath();
- storage = HoodieStorageUtils.getStorage(basePath, HadoopFSUtils.getStorageConf(new Configuration()));
+ storage = HoodieStorageUtils.getStorage(basePath, HoodieTestUtils.getDefaultStorageConfWithDefaults());
metaPath = new StoragePath(basePath, HoodieTableMetaClient.METAFOLDER_NAME);
Properties props = new Properties();
props.setProperty(HoodieTableConfig.NAME.key(), "test-table");
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/TestHoodieTableMetaClient.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/TestHoodieTableMetaClient.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/TestHoodieTableMetaClient.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/TestHoodieTableMetaClient.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/TestTableSchemaResolver.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/TestTableSchemaResolver.java
similarity index 95%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/TestTableSchemaResolver.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/TestTableSchemaResolver.java
index 13498528f17c..efb88412a210 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/table/TestTableSchemaResolver.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/TestTableSchemaResolver.java
@@ -24,9 +24,9 @@
import org.apache.hudi.common.table.log.block.HoodieDataBlock;
import org.apache.hudi.common.table.log.block.HoodieLogBlock;
import org.apache.hudi.common.testutils.HoodieTestDataGenerator;
+import org.apache.hudi.common.testutils.HoodieTestUtils;
import org.apache.hudi.common.testutils.SchemaTestUtil;
import org.apache.hudi.common.util.Option;
-import org.apache.hudi.hadoop.fs.HadoopFSUtils;
import org.apache.hudi.internal.schema.HoodieSchemaException;
import org.apache.hudi.storage.HoodieStorage;
import org.apache.hudi.storage.HoodieStorageUtils;
@@ -34,7 +34,6 @@
import org.apache.avro.Schema;
import org.apache.avro.generic.IndexedRecord;
-import org.apache.hadoop.conf.Configuration;
import org.apache.parquet.avro.AvroSchemaConverter;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
@@ -100,7 +99,7 @@ public void testReadSchemaFromLogFile() throws IOException, URISyntaxException,
assertEquals(
new AvroSchemaConverter().convert(expectedSchema),
TableSchemaResolver.readSchemaFromLogFile(HoodieStorageUtils.getStorage(
- logFilePath, HadoopFSUtils.getStorageConf(new Configuration())), logFilePath));
+ logFilePath, HoodieTestUtils.getDefaultStorageConfWithDefaults()), logFilePath));
}
private String initTestDir(String folderName) throws IOException {
@@ -111,7 +110,7 @@ private String initTestDir(String folderName) throws IOException {
private StoragePath writeLogFile(StoragePath partitionPath, Schema schema) throws IOException, URISyntaxException, InterruptedException {
HoodieStorage storage = HoodieStorageUtils.getStorage(
- partitionPath, HadoopFSUtils.getStorageConf(new Configuration()));
+ partitionPath, HoodieTestUtils.getDefaultStorageConfWithDefaults());
HoodieLogFormat.Writer writer =
HoodieLogFormat.newWriterBuilder().onParentPath(partitionPath).withFileExtension(HoodieLogFile.DELTA_EXTENSION)
.withFileId("test-fileid1").withDeltaCommit("100").withStorage(storage).build();
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/TestTimelineUtils.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/TestTimelineUtils.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/TestTimelineUtils.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/TestTimelineUtils.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/log/TestLogReaderUtils.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/log/TestLogReaderUtils.java
similarity index 97%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/log/TestLogReaderUtils.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/log/TestLogReaderUtils.java
index f06599fbe746..6e65ef3c656e 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/table/log/TestLogReaderUtils.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/log/TestLogReaderUtils.java
@@ -31,7 +31,7 @@
import java.util.Set;
import java.util.stream.Collectors;
-import static org.apache.hudi.common.testutils.FileSystemTestUtils.readLastLineFromResourceFile;
+import static org.apache.hudi.common.testutils.HoodieTestTable.readLastLineFromResourceFile;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/read/TestCustomMerger.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/read/TestCustomMerger.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/read/TestCustomMerger.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/read/TestCustomMerger.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/read/TestEventTimeMerging.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/read/TestEventTimeMerging.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/read/TestEventTimeMerging.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/read/TestEventTimeMerging.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/timeline/TestHoodieActiveTimeline.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/timeline/TestHoodieActiveTimeline.java
similarity index 99%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/timeline/TestHoodieActiveTimeline.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/timeline/TestHoodieActiveTimeline.java
index 5ec75b31ef87..f744cc216a8f 100755
--- a/hudi-common/src/test/java/org/apache/hudi/common/table/timeline/TestHoodieActiveTimeline.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/timeline/TestHoodieActiveTimeline.java
@@ -18,6 +18,7 @@
package org.apache.hudi.common.table.timeline;
+import org.apache.hudi.common.fs.NoOpConsistencyGuard;
import org.apache.hudi.common.table.HoodieTableMetaClient;
import org.apache.hudi.common.table.timeline.HoodieInstant.State;
import org.apache.hudi.common.table.timeline.versioning.TimelineLayoutVersion;
@@ -27,7 +28,6 @@
import org.apache.hudi.common.util.Option;
import org.apache.hudi.exception.HoodieException;
import org.apache.hudi.hadoop.fs.HoodieWrapperFileSystem;
-import org.apache.hudi.hadoop.fs.NoOpConsistencyGuard;
import org.apache.hudi.storage.HoodieStorage;
import org.apache.hudi.storage.HoodieStorageUtils;
import org.apache.hudi.storage.StoragePath;
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/timeline/TestHoodieInstant.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/timeline/TestHoodieInstant.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/timeline/TestHoodieInstant.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/timeline/TestHoodieInstant.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/timeline/TestWaitBasedTimeGenerator.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/timeline/TestWaitBasedTimeGenerator.java
similarity index 96%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/timeline/TestWaitBasedTimeGenerator.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/timeline/TestWaitBasedTimeGenerator.java
index 681e62bdeef9..9ebd0b36073c 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/table/timeline/TestWaitBasedTimeGenerator.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/timeline/TestWaitBasedTimeGenerator.java
@@ -21,11 +21,10 @@
import org.apache.hudi.client.transaction.lock.InProcessLockProvider;
import org.apache.hudi.common.config.HoodieTimeGeneratorConfig;
import org.apache.hudi.common.config.LockConfiguration;
+import org.apache.hudi.common.testutils.HoodieTestUtils;
import org.apache.hudi.exception.HoodieLockException;
-import org.apache.hudi.hadoop.fs.HadoopFSUtils;
import org.apache.hudi.storage.StorageConfiguration;
-import org.apache.hadoop.conf.Configuration;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.params.ParameterizedTest;
@@ -75,7 +74,7 @@ public boolean tryLock(long time, TimeUnit unit) {
// Clock skew time
private final long clockSkewTime = 20L;
- private final StorageConfiguration> storageConf = HadoopFSUtils.getStorageConf(new Configuration());
+ private final StorageConfiguration> storageConf = HoodieTestUtils.getDefaultStorageConfWithDefaults();
private HoodieTimeGeneratorConfig timeGeneratorConfig;
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFSViewWithClustering.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFSViewWithClustering.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFSViewWithClustering.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFSViewWithClustering.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFileSystemView.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFileSystemView.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFileSystemView.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestHoodieTableFileSystemView.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/view/TestIncrementalFSViewSync.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestIncrementalFSViewSync.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/view/TestIncrementalFSViewSync.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestIncrementalFSViewSync.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/view/TestRocksDBBasedIncrementalFSViewSync.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestRocksDBBasedIncrementalFSViewSync.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/view/TestRocksDBBasedIncrementalFSViewSync.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestRocksDBBasedIncrementalFSViewSync.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/view/TestRocksDbBasedFileSystemView.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestRocksDbBasedFileSystemView.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/view/TestRocksDbBasedFileSystemView.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestRocksDbBasedFileSystemView.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/view/TestSpillableMapBasedFileSystemView.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestSpillableMapBasedFileSystemView.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/view/TestSpillableMapBasedFileSystemView.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestSpillableMapBasedFileSystemView.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/table/view/TestSpillableMapBasedIncrementalFSViewSync.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestSpillableMapBasedIncrementalFSViewSync.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/table/view/TestSpillableMapBasedIncrementalFSViewSync.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/table/view/TestSpillableMapBasedIncrementalFSViewSync.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/testutils/FileSystemTestUtils.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/FileSystemTestUtils.java
similarity index 61%
rename from hudi-common/src/test/java/org/apache/hudi/common/testutils/FileSystemTestUtils.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/FileSystemTestUtils.java
index 232c14cc31c4..162740b55a14 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/testutils/FileSystemTestUtils.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/FileSystemTestUtils.java
@@ -18,26 +18,15 @@
package org.apache.hudi.common.testutils;
-import org.apache.hudi.common.table.log.TestLogReaderUtils;
-import org.apache.hudi.common.util.FileIOUtils;
-import org.apache.hudi.hadoop.fs.inline.InLineFSUtils;
import org.apache.hudi.hadoop.fs.inline.InLineFileSystem;
import org.apache.hudi.hadoop.fs.inline.InMemoryFileSystem;
-import org.apache.hudi.storage.HoodieStorage;
import org.apache.hudi.storage.StoragePath;
-import org.apache.hudi.storage.StoragePathInfo;
+import org.apache.hudi.storage.inline.InLineFSUtils;
-import org.apache.hadoop.fs.FileStatus;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.fs.RemoteIterator;
import java.io.File;
import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
import java.util.Random;
import java.util.UUID;
@@ -79,34 +68,4 @@ public static void deleteFile(File fileToDelete) throws IOException {
throw new IOException(message);
}
}
-
- public static List listRecursive(FileSystem fs, Path path) throws IOException {
- return listFiles(fs, path, true);
- }
-
- public static List listFiles(FileSystem fs, Path path, boolean recursive) throws IOException {
- RemoteIterator itr = fs.listFiles(path, recursive);
- List statuses = new ArrayList<>();
- while (itr.hasNext()) {
- statuses.add(itr.next());
- }
- return statuses;
- }
-
- public static List listRecursive(HoodieStorage storage, StoragePath path)
- throws IOException {
- return listFiles(storage, path);
- }
-
- public static List listFiles(HoodieStorage storage, StoragePath path)
- throws IOException {
- return storage.listFiles(path);
- }
-
- public static String readLastLineFromResourceFile(String resourceName) throws IOException {
- try (InputStream inputStream = TestLogReaderUtils.class.getResourceAsStream(resourceName)) {
- List lines = FileIOUtils.readAsUTFStringLines(inputStream);
- return lines.get(lines.size() - 1);
- }
- }
}
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/testutils/HoodieCommonTestHarness.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/HoodieCommonTestHarness.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/testutils/HoodieCommonTestHarness.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/HoodieCommonTestHarness.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/testutils/HoodieTestTable.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/HoodieTestTable.java
similarity index 97%
rename from hudi-common/src/test/java/org/apache/hudi/common/testutils/HoodieTestTable.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/HoodieTestTable.java
index 2720aa42dd01..8b0e24b40741 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/testutils/HoodieTestTable.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/HoodieTestTable.java
@@ -52,12 +52,14 @@
import org.apache.hudi.common.model.WriteOperationType;
import org.apache.hudi.common.table.HoodieTableMetaClient;
import org.apache.hudi.common.table.log.HoodieLogFormat;
+import org.apache.hudi.common.table.log.TestLogReaderUtils;
import org.apache.hudi.common.table.timeline.HoodieActiveTimeline;
import org.apache.hudi.common.table.timeline.HoodieInstant;
import org.apache.hudi.common.table.timeline.HoodieTimeline;
import org.apache.hudi.common.table.timeline.TimelineMetadataUtils;
import org.apache.hudi.common.table.timeline.versioning.clean.CleanPlanV2MigrationHandler;
import org.apache.hudi.common.util.CompactionUtils;
+import org.apache.hudi.common.util.FileIOUtils;
import org.apache.hudi.common.util.Option;
import org.apache.hudi.common.util.StringUtils;
import org.apache.hudi.common.util.ValidationUtils;
@@ -69,11 +71,14 @@
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.LocatedFileStatus;
import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.fs.RemoteIterator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
+import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.time.Instant;
@@ -824,17 +829,47 @@ public List listAllBaseFiles() throws IOException {
}
public List listAllBaseFiles(String fileExtension) throws IOException {
- return FileSystemTestUtils.listRecursive(storage, new StoragePath(basePath)).stream()
+ return listRecursive(storage, new StoragePath(basePath)).stream()
.filter(fileInfo -> fileInfo.getPath().getName().endsWith(fileExtension))
.collect(Collectors.toList());
}
+ public static List listRecursive(FileSystem fs, Path path) throws IOException {
+ return listFiles(fs, path, true);
+ }
+
+ public static List listFiles(FileSystem fs, Path path, boolean recursive) throws IOException {
+ RemoteIterator itr = fs.listFiles(path, recursive);
+ List statuses = new ArrayList<>();
+ while (itr.hasNext()) {
+ statuses.add(itr.next());
+ }
+ return statuses;
+ }
+
+ public static List listRecursive(HoodieStorage storage, StoragePath path)
+ throws IOException {
+ return listFiles(storage, path);
+ }
+
+ public static List listFiles(HoodieStorage storage, StoragePath path)
+ throws IOException {
+ return storage.listFiles(path);
+ }
+
+ public static String readLastLineFromResourceFile(String resourceName) throws IOException {
+ try (InputStream inputStream = TestLogReaderUtils.class.getResourceAsStream(resourceName)) {
+ List lines = FileIOUtils.readAsUTFStringLines(inputStream);
+ return lines.get(lines.size() - 1);
+ }
+ }
+
public List listAllLogFiles() throws IOException {
return listAllLogFiles(HoodieFileFormat.HOODIE_LOG.getFileExtension());
}
public List listAllLogFiles(String fileExtension) throws IOException {
- return FileSystemTestUtils.listRecursive(storage, new StoragePath(basePath)).stream()
+ return listRecursive(storage, new StoragePath(basePath)).stream()
.filter(
fileInfo -> !fileInfo.getPath().toString()
.contains(HoodieTableMetaClient.METAFOLDER_NAME))
@@ -849,7 +884,7 @@ public List listAllBaseAndLogFiles() throws IOException {
}
public FileStatus[] listAllFilesInPartition(String partitionPath) throws IOException {
- return FileSystemTestUtils.listRecursive(fs,
+ return listRecursive(fs,
new Path(Paths.get(basePath, partitionPath).toString())).stream()
.filter(entry -> {
boolean toReturn = true;
@@ -872,7 +907,7 @@ public FileStatus[] listAllFilesInPartition(String partitionPath) throws IOExcep
}
public FileStatus[] listAllFilesInTempFolder() throws IOException {
- return FileSystemTestUtils.listRecursive(fs, new Path(Paths.get(basePath, HoodieTableMetaClient.TEMPFOLDER_NAME).toString())).toArray(new FileStatus[0]);
+ return listRecursive(fs, new Path(Paths.get(basePath, HoodieTableMetaClient.TEMPFOLDER_NAME).toString())).toArray(new FileStatus[0]);
}
public void deleteFilesInPartition(String partitionPath, List filesToDelete) throws IOException {
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/testutils/minicluster/HdfsTestService.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/minicluster/HdfsTestService.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/testutils/minicluster/HdfsTestService.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/minicluster/HdfsTestService.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/testutils/reader/HoodieFileGroupReaderTestHarness.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/reader/HoodieFileGroupReaderTestHarness.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/testutils/reader/HoodieFileGroupReaderTestHarness.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/testutils/reader/HoodieFileGroupReaderTestHarness.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/TestAvroOrcUtils.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestAvroOrcUtils.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/util/TestAvroOrcUtils.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestAvroOrcUtils.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/TestClusteringUtils.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestClusteringUtils.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/util/TestClusteringUtils.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestClusteringUtils.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/TestCommitUtils.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestCommitUtils.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/util/TestCommitUtils.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestCommitUtils.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/TestCompactionUtils.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestCompactionUtils.java
similarity index 99%
rename from hudi-common/src/test/java/org/apache/hudi/common/util/TestCompactionUtils.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestCompactionUtils.java
index 32ced12c480e..e7174ec1ac51 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/util/TestCompactionUtils.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestCompactionUtils.java
@@ -32,7 +32,6 @@
import org.apache.hudi.common.table.timeline.versioning.compaction.CompactionPlanMigrator;
import org.apache.hudi.common.testutils.CompactionTestUtils.DummyHoodieBaseFile;
import org.apache.hudi.common.testutils.HoodieCommonTestHarness;
-import org.apache.hudi.common.testutils.HoodieTestUtils;
import org.apache.hudi.common.util.collection.Pair;
import org.apache.hudi.storage.StoragePath;
@@ -216,7 +215,7 @@ public void testGetAllPendingCompactionOperationsWithDupFileId() throws IOExcept
// schedule similar plan again so that there will be duplicates
plan1.getOperations().get(0).setDataFilePath("bla");
scheduleCompaction(metaClient, "005", plan1);
- metaClient = HoodieTestUtils.createMetaClient(metaClient.getStorageConf(), basePath);
+ metaClient = createMetaClient(metaClient.getStorageConf(), basePath);
assertThrows(IllegalStateException.class, () -> {
CompactionUtils.getAllPendingCompactionOperations(metaClient);
});
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/TestDFSPropertiesConfiguration.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestDFSPropertiesConfiguration.java
similarity index 96%
rename from hudi-common/src/test/java/org/apache/hudi/common/util/TestDFSPropertiesConfiguration.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestDFSPropertiesConfiguration.java
index 21412696f2ce..f6caa31a62c6 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/util/TestDFSPropertiesConfiguration.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestDFSPropertiesConfiguration.java
@@ -21,6 +21,7 @@
import org.apache.hudi.common.config.DFSPropertiesConfiguration;
import org.apache.hudi.common.config.TypedProperties;
+import org.apache.hudi.common.testutils.HoodieTestUtils;
import org.apache.hudi.common.testutils.minicluster.HdfsTestService;
import org.apache.hudi.exception.HoodieIOException;
import org.apache.hudi.hadoop.fs.HadoopFSUtils;
@@ -42,8 +43,6 @@
import java.io.IOException;
import java.io.PrintStream;
-import static org.apache.hudi.common.testutils.HoodieTestUtils.shouldUseExternalHdfs;
-import static org.apache.hudi.common.testutils.HoodieTestUtils.useExternalHdfs;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -65,8 +64,8 @@ public class TestDFSPropertiesConfiguration {
@BeforeAll
public static void initClass() throws Exception {
- if (shouldUseExternalHdfs()) {
- dfs = useExternalHdfs();
+ if (HoodieTestUtils.shouldUseExternalHdfs()) {
+ dfs = HoodieTestUtils.useExternalHdfs();
} else {
hdfsTestService = new HdfsTestService();
dfsCluster = hdfsTestService.start(true);
@@ -169,7 +168,7 @@ public void testLocalFileSystemLoading() throws IOException {
String.format(
"file:%s",
getClass().getClassLoader()
- .getResource("props/test.properties")
+ .getResource("props/testdfs.properties")
.getPath()
)
));
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/TestFileIOUtils.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestFileIOUtils.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/util/TestFileIOUtils.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestFileIOUtils.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/TestMarkerUtils.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestMarkerUtils.java
similarity index 94%
rename from hudi-common/src/test/java/org/apache/hudi/common/util/TestMarkerUtils.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestMarkerUtils.java
index c604d276ba96..085a981b220c 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/util/TestMarkerUtils.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestMarkerUtils.java
@@ -20,13 +20,12 @@
import org.apache.hudi.common.table.marker.MarkerType;
import org.apache.hudi.common.testutils.HoodieCommonTestHarness;
+import org.apache.hudi.common.testutils.HoodieTestUtils;
import org.apache.hudi.exception.HoodieException;
-import org.apache.hudi.hadoop.fs.HadoopFSUtils;
import org.apache.hudi.storage.HoodieStorage;
import org.apache.hudi.storage.HoodieStorageUtils;
import org.apache.hudi.storage.StoragePath;
-import org.apache.hadoop.conf.Configuration;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -43,8 +42,7 @@ class TestMarkerUtils extends HoodieCommonTestHarness {
@BeforeEach
public void setup() {
initPath();
- storage = HoodieStorageUtils.getStorage(
- basePath, HadoopFSUtils.getStorageConf(new Configuration()));
+ storage = HoodieStorageUtils.getStorage(basePath, HoodieTestUtils.getDefaultStorageConfWithDefaults());
}
@Test
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/TestParquetUtils.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestParquetUtils.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/util/TestParquetUtils.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestParquetUtils.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/TestTablePathUtils.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestTablePathUtils.java
similarity index 96%
rename from hudi-common/src/test/java/org/apache/hudi/common/util/TestTablePathUtils.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestTablePathUtils.java
index 95b08d9d6203..94943a436eeb 100644
--- a/hudi-common/src/test/java/org/apache/hudi/common/util/TestTablePathUtils.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/TestTablePathUtils.java
@@ -21,12 +21,11 @@
import org.apache.hudi.common.model.HoodiePartitionMetadata;
import org.apache.hudi.common.table.HoodieTableConfig;
import org.apache.hudi.common.table.HoodieTableMetaClient;
-import org.apache.hudi.hadoop.fs.HadoopFSUtils;
+import org.apache.hudi.common.testutils.HoodieTestUtils;
import org.apache.hudi.storage.HoodieStorage;
import org.apache.hudi.storage.HoodieStorageUtils;
import org.apache.hudi.storage.StoragePath;
-import org.apache.hadoop.conf.Configuration;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
import org.junit.jupiter.params.ParameterizedTest;
@@ -64,8 +63,7 @@ private void setup() throws IOException {
private void setup(Option partitionMetafileFormat) throws IOException {
URI tablePathURI = Paths.get(tempDir.getAbsolutePath(), "test_table").toUri();
tablePath = new StoragePath(tablePathURI);
- storage = HoodieStorageUtils.getStorage(
- tablePathURI.toString(), HadoopFSUtils.getStorageConf(new Configuration()));
+ storage = HoodieStorageUtils.getStorage(tablePathURI.toString(), HoodieTestUtils.getDefaultStorageConfWithDefaults());
// Create bootstrap index folder
assertTrue(new File(
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/collection/TestBitCaskDiskMap.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/collection/TestBitCaskDiskMap.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/util/collection/TestBitCaskDiskMap.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/collection/TestBitCaskDiskMap.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/collection/TestExternalSpillableMap.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/collection/TestExternalSpillableMap.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/util/collection/TestExternalSpillableMap.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/collection/TestExternalSpillableMap.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/collection/TestRocksDbBasedMap.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/collection/TestRocksDbBasedMap.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/util/collection/TestRocksDbBasedMap.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/collection/TestRocksDbBasedMap.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/common/util/collection/TestRocksDbDiskMap.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/collection/TestRocksDbDiskMap.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/common/util/collection/TestRocksDbDiskMap.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/common/util/collection/TestRocksDbDiskMap.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/internal/schema/io/TestFileBasedInternalSchemaStorageManager.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/internal/schema/io/TestFileBasedInternalSchemaStorageManager.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/internal/schema/io/TestFileBasedInternalSchemaStorageManager.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/internal/schema/io/TestFileBasedInternalSchemaStorageManager.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/io/storage/TestHoodieAvroFileReaderFactory.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/io/storage/TestHoodieAvroFileReaderFactory.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/io/storage/TestHoodieAvroFileReaderFactory.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/io/storage/TestHoodieAvroFileReaderFactory.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/io/storage/TestHoodieBaseParquetWriter.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/io/storage/TestHoodieBaseParquetWriter.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/io/storage/TestHoodieBaseParquetWriter.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/io/storage/TestHoodieBaseParquetWriter.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/io/storage/TestHoodieHBaseHFileReaderWriter.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/io/storage/TestHoodieHBaseHFileReaderWriter.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/io/storage/TestHoodieHBaseHFileReaderWriter.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/io/storage/TestHoodieHBaseHFileReaderWriter.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/io/storage/TestHoodieHFileReaderWriter.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/io/storage/TestHoodieHFileReaderWriter.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/io/storage/TestHoodieHFileReaderWriter.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/io/storage/TestHoodieHFileReaderWriter.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/io/storage/TestHoodieHFileReaderWriterBase.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/io/storage/TestHoodieHFileReaderWriterBase.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/io/storage/TestHoodieHFileReaderWriterBase.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/io/storage/TestHoodieHFileReaderWriterBase.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/io/storage/TestHoodieOrcReaderWriter.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/io/storage/TestHoodieOrcReaderWriter.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/io/storage/TestHoodieOrcReaderWriter.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/io/storage/TestHoodieOrcReaderWriter.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/io/storage/TestHoodieReaderWriterBase.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/io/storage/TestHoodieReaderWriterBase.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/io/storage/TestHoodieReaderWriterBase.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/io/storage/TestHoodieReaderWriterBase.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/metadata/TestFileSystemBackedTableMetadata.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/metadata/TestFileSystemBackedTableMetadata.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/metadata/TestFileSystemBackedTableMetadata.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/metadata/TestFileSystemBackedTableMetadata.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/metadata/TestHoodieMetadataPayload.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/metadata/TestHoodieMetadataPayload.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/metadata/TestHoodieMetadataPayload.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/metadata/TestHoodieMetadataPayload.java
diff --git a/hudi-common/src/test/java/org/apache/hudi/metadata/TestHoodieTableMetadataUtil.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/metadata/TestHoodieTableMetadataUtil.java
similarity index 100%
rename from hudi-common/src/test/java/org/apache/hudi/metadata/TestHoodieTableMetadataUtil.java
rename to hudi-hadoop-common/src/test/java/org/apache/hudi/metadata/TestHoodieTableMetadataUtil.java
diff --git a/hudi-common/src/test/resources/external-config/hudi-defaults.conf b/hudi-hadoop-common/src/test/resources/external-config/hudi-defaults.conf
similarity index 100%
rename from hudi-common/src/test/resources/external-config/hudi-defaults.conf
rename to hudi-hadoop-common/src/test/resources/external-config/hudi-defaults.conf
diff --git a/hudi-hadoop-common/src/test/resources/props/testdfs.properties b/hudi-hadoop-common/src/test/resources/props/testdfs.properties
new file mode 100644
index 000000000000..0e9f3e7aa27f
--- /dev/null
+++ b/hudi-hadoop-common/src/test/resources/props/testdfs.properties
@@ -0,0 +1,17 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+some.random.prop=123
\ No newline at end of file
diff --git a/hudi-hadoop-mr/pom.xml b/hudi-hadoop-mr/pom.xml
index 191f49f40d1e..1dacca6bd9fb 100644
--- a/hudi-hadoop-mr/pom.xml
+++ b/hudi-hadoop-mr/pom.xml
@@ -44,6 +44,12 @@
${project.version}