Skip to content

Commit 49b9de7

Browse files
danny0405fengjian
authored andcommitted
[HUDI-4999] Refactor FlinkOptions#allOptions and CatalogOptions#allOptions (apache#6901)
1 parent a8f80c6 commit 49b9de7

3 files changed

Lines changed: 31 additions & 32 deletions

File tree

hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/configuration/FlinkOptions.java

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.apache.hudi.common.table.HoodieTableConfig;
3030
import org.apache.hudi.config.HoodieIndexConfig;
3131
import org.apache.hudi.config.HoodieWriteConfig;
32-
import org.apache.hudi.exception.HoodieException;
3332
import org.apache.hudi.hive.MultiPartKeysValueExtractor;
3433
import org.apache.hudi.hive.ddl.HiveSyncMode;
3534
import org.apache.hudi.index.HoodieIndex;
@@ -41,8 +40,6 @@
4140
import org.apache.flink.configuration.ConfigOptions;
4241
import org.apache.flink.configuration.Configuration;
4342

44-
import java.lang.reflect.Field;
45-
import java.util.ArrayList;
4643
import java.util.HashMap;
4744
import java.util.HashSet;
4845
import java.util.List;
@@ -921,18 +918,6 @@ public static Set<ConfigOption<?>> optionalOptions() {
921918
* Returns all the config options.
922919
*/
923920
public static List<ConfigOption<?>> allOptions() {
924-
Field[] declaredFields = FlinkOptions.class.getDeclaredFields();
925-
List<ConfigOption<?>> options = new ArrayList<>();
926-
for (Field field : declaredFields) {
927-
if (java.lang.reflect.Modifier.isStatic(field.getModifiers())
928-
&& field.getType().equals(ConfigOption.class)) {
929-
try {
930-
options.add((ConfigOption<?>) field.get(ConfigOption.class));
931-
} catch (IllegalAccessException e) {
932-
throw new HoodieException("Error while fetching static config option", e);
933-
}
934-
}
935-
}
936-
return options;
921+
return OptionsResolver.allOptions(FlinkOptions.class);
937922
}
938923
}

hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/configuration/OptionsResolver.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,16 @@
2222
import org.apache.hudi.common.model.WriteOperationType;
2323
import org.apache.hudi.common.table.cdc.HoodieCDCSupplementalLoggingMode;
2424
import org.apache.hudi.common.util.StringUtils;
25+
import org.apache.hudi.exception.HoodieException;
2526
import org.apache.hudi.index.HoodieIndex;
2627
import org.apache.hudi.table.format.FilePathUtils;
2728

29+
import org.apache.flink.configuration.ConfigOption;
2830
import org.apache.flink.configuration.Configuration;
2931

32+
import java.lang.reflect.Field;
33+
import java.util.ArrayList;
34+
import java.util.List;
3035
import java.util.Locale;
3136
import java.util.Map;
3237

@@ -198,4 +203,27 @@ public static HoodieCDCSupplementalLoggingMode getCDCSupplementalLoggingMode(Con
198203
String mode = conf.getString(FlinkOptions.SUPPLEMENTAL_LOGGING_MODE);
199204
return HoodieCDCSupplementalLoggingMode.parse(mode);
200205
}
206+
207+
// -------------------------------------------------------------------------
208+
// Utilities
209+
// -------------------------------------------------------------------------
210+
211+
/**
212+
* Returns all the config options with the given class {@code clazz}.
213+
*/
214+
public static List<ConfigOption<?>> allOptions(Class<?> clazz) {
215+
Field[] declaredFields = clazz.getDeclaredFields();
216+
List<ConfigOption<?>> options = new ArrayList<>();
217+
for (Field field : declaredFields) {
218+
if (java.lang.reflect.Modifier.isStatic(field.getModifiers())
219+
&& field.getType().equals(ConfigOption.class)) {
220+
try {
221+
options.add((ConfigOption<?>) field.get(ConfigOption.class));
222+
} catch (IllegalAccessException e) {
223+
throw new HoodieException("Error while fetching static config option", e);
224+
}
225+
}
226+
}
227+
return options;
228+
}
201229
}

hudi-flink-datasource/hudi-flink/src/main/java/org/apache/hudi/table/catalog/CatalogOptions.java

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,13 @@
1818

1919
package org.apache.hudi.table.catalog;
2020

21-
import org.apache.hudi.exception.HoodieException;
21+
import org.apache.hudi.configuration.OptionsResolver;
2222

2323
import org.apache.flink.configuration.ConfigOption;
2424
import org.apache.flink.configuration.ConfigOptions;
2525
import org.apache.flink.configuration.Configuration;
2626
import org.apache.flink.table.catalog.CommonCatalogOptions;
2727

28-
import java.lang.reflect.Field;
29-
import java.util.ArrayList;
3028
import java.util.List;
3129
import java.util.Map;
3230

@@ -69,19 +67,7 @@ public class CatalogOptions {
6967
* Returns all the config options.
7068
*/
7169
public static List<ConfigOption<?>> allOptions() {
72-
Field[] declaredFields = CatalogOptions.class.getDeclaredFields();
73-
List<ConfigOption<?>> options = new ArrayList<>();
74-
for (Field field : declaredFields) {
75-
if (java.lang.reflect.Modifier.isStatic(field.getModifiers())
76-
&& field.getType().equals(ConfigOption.class)) {
77-
try {
78-
options.add((ConfigOption<?>) field.get(ConfigOption.class));
79-
} catch (IllegalAccessException e) {
80-
throw new HoodieException("Error while fetching static config option", e);
81-
}
82-
}
83-
}
84-
return options;
70+
return OptionsResolver.allOptions(CatalogOptions.class);
8571
}
8672

8773
/**

0 commit comments

Comments
 (0)