You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by bl...@apache.org on 2022/01/24 00:40:05 UTC

[iceberg] branch master updated: Core: Added no-arg constructor in ResolvingFileIO (#3923)

This is an automated email from the ASF dual-hosted git repository.

blue pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iceberg.git


The following commit(s) were added to refs/heads/master by this push:
     new 65b22ad  Core: Added no-arg constructor in ResolvingFileIO (#3923)
65b22ad is described below

commit 65b22adddc871762047d75a6bcc1c6749fab08bc
Author: Rajarshi Sarkar <sr...@amazon.com>
AuthorDate: Mon Jan 24 06:09:55 2022 +0530

    Core: Added no-arg constructor in ResolvingFileIO (#3923)
---
 .../main/java/org/apache/iceberg/io/ResolvingFileIO.java  | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/core/src/main/java/org/apache/iceberg/io/ResolvingFileIO.java b/core/src/main/java/org/apache/iceberg/io/ResolvingFileIO.java
index 3247459..f57bb54 100644
--- a/core/src/main/java/org/apache/iceberg/io/ResolvingFileIO.java
+++ b/core/src/main/java/org/apache/iceberg/io/ResolvingFileIO.java
@@ -40,17 +40,26 @@ public class ResolvingFileIO implements FileIO, HadoopConfigurable {
   private static final Logger LOG = LoggerFactory.getLogger(ResolvingFileIO.class);
   private static final String DEFAULT_SCHEME = "fs";
   private static final String FALLBACK_IMPL = "org.apache.iceberg.hadoop.HadoopFileIO";
+  private static final String S3_FILE_IO_IMPL = "org.apache.iceberg.aws.s3.S3FileIO";
   private static final Map<String, String> SCHEME_TO_FILE_IO = ImmutableMap.of(
       DEFAULT_SCHEME, FALLBACK_IMPL,
-      "s3", "org.apache.iceberg.aws.s3.S3FileIO",
-      "s3a", "org.apache.iceberg.aws.s3.S3FileIO",
-      "s3n", "org.apache.iceberg.aws.s3.S3FileIO"
+      "s3", S3_FILE_IO_IMPL,
+      "s3a", S3_FILE_IO_IMPL,
+      "s3n", S3_FILE_IO_IMPL
   );
 
   private final Map<String, FileIO> ioInstances = Maps.newHashMap();
   private Map<String, String> properties;
   private SerializableSupplier<Configuration> hadoopConf;
 
+  /**
+   * No-arg constructor to load the FileIO dynamically.
+   * <p>
+   * All fields are initialized by calling {@link ResolvingFileIO#initialize(Map)} later.
+   */
+  public ResolvingFileIO() {
+  }
+
   @Override
   public InputFile newInputFile(String location) {
     return io(location).newInputFile(location);