diff --git a/paimon-common/src/main/java/org/apache/paimon/fs/hadoop/HadoopFileIO.java b/paimon-common/src/main/java/org/apache/paimon/fs/hadoop/HadoopFileIO.java
index 49ca2cdc87b4..6db49a919b5c 100644
--- a/paimon-common/src/main/java/org/apache/paimon/fs/hadoop/HadoopFileIO.java
+++ b/paimon-common/src/main/java/org/apache/paimon/fs/hadoop/HadoopFileIO.java
@@ -87,6 +87,10 @@ public Configuration hadoopConf() {
return hadoopConf.get();
}
+ public org.apache.paimon.options.Options hadoopOptions() {
+ return new org.apache.paimon.options.Options(hadoopConf.get());
+ }
+
@Override
public SeekableInputStream newInputStream(Path path) throws IOException {
org.apache.hadoop.fs.Path hadoopPath = path(path);
diff --git a/paimon-lance/pom.xml b/paimon-lance/pom.xml
index b2d1fe76d456..21bd05914ec0 100644
--- a/paimon-lance/pom.xml
+++ b/paimon-lance/pom.xml
@@ -61,20 +61,6 @@ under the License.
provided
-
- org.apache.paimon
- paimon-oss
- ${project.version}
- provided
-
-
-
- org.apache.paimon
- paimon-oss-impl
- ${project.version}
- provided
-
-
org.apache.paimon
paimon-core
@@ -82,13 +68,6 @@ under the License.
provided
-
- org.apache.paimon
- paimon-jindo
- ${project.version}
- provided
-
-
diff --git a/paimon-lance/src/main/java/org/apache/paimon/format/lance/LanceUtils.java b/paimon-lance/src/main/java/org/apache/paimon/format/lance/LanceUtils.java
index 3748d0403cb4..4edb803195c2 100644
--- a/paimon-lance/src/main/java/org/apache/paimon/format/lance/LanceUtils.java
+++ b/paimon-lance/src/main/java/org/apache/paimon/format/lance/LanceUtils.java
@@ -22,9 +22,7 @@
import org.apache.paimon.fs.Path;
import org.apache.paimon.fs.PluginFileIO;
import org.apache.paimon.fs.hadoop.HadoopFileIO;
-import org.apache.paimon.jindo.JindoFileIO;
import org.apache.paimon.options.Options;
-import org.apache.paimon.oss.OSSFileIO;
import org.apache.paimon.rest.RESTTokenFileIO;
import org.apache.paimon.utils.Pair;
@@ -116,13 +114,25 @@ private static Pair> toLanceSpecified(
Options originOptions;
if (ossFileIOKlass != null && ossFileIOKlass.isInstance(fileIO)) {
- originOptions = ((OSSFileIO) fileIO).hadoopOptions();
+ try {
+ originOptions = (Options) ossFileIOKlass.getMethod("hadoopOptions").invoke(fileIO);
+ } catch (Exception e) {
+ throw new RuntimeException("Failed to invoke hadoopOptions on OSSFileIO", e);
+ }
} else if (jindoFileIOKlass != null && jindoFileIOKlass.isInstance(fileIO)) {
- originOptions = ((JindoFileIO) fileIO).hadoopOptions(path, isRead ? "read" : "write");
+ try {
+ originOptions =
+ (Options)
+ jindoFileIOKlass
+ .getMethod("hadoopOptions", Path.class, String.class)
+ .invoke(fileIO, path, isRead ? "read" : "write");
+ } catch (Exception e) {
+ throw new RuntimeException("Failed to invoke hadoopOptions on JindoFileIO", e);
+ }
} else if (pluginFileIOKlass != null && pluginFileIOKlass.isInstance(fileIO)) {
originOptions = ((PluginFileIO) fileIO).options();
} else if (hadoopFileIOKlass != null && hadoopFileIOKlass.isInstance(fileIO)) {
- originOptions = new Options(((HadoopFileIO) fileIO).hadoopConf());
+ originOptions = ((HadoopFileIO) fileIO).hadoopOptions();
} else {
originOptions = new Options();
}