diff --git a/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/ReadonlyConfig.java b/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/ReadonlyConfig.java index b4f6b31fe2e..ebf4d3853a0 100644 --- a/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/ReadonlyConfig.java +++ b/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/ReadonlyConfig.java @@ -105,7 +105,7 @@ public Optional getOptional(Option option) { if (value == null) { return Optional.empty(); } - return Optional.of(convertValue(value, option.typeReference())); + return Optional.of(convertValue(value, option)); } @Override diff --git a/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/ConfigUtil.java b/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/ConfigUtil.java index 3d020c65910..20541e1dc7f 100644 --- a/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/ConfigUtil.java +++ b/seatunnel-api/src/main/java/org/apache/seatunnel/api/configuration/util/ConfigUtil.java @@ -24,6 +24,10 @@ import org.apache.seatunnel.shade.com.typesafe.config.Config; import org.apache.seatunnel.shade.com.typesafe.config.ConfigFactory; +import org.apache.seatunnel.api.configuration.Option; + +import lombok.extern.slf4j.Slf4j; + import java.lang.reflect.ParameterizedType; import java.util.ArrayList; import java.util.Arrays; @@ -33,6 +37,7 @@ import java.util.Map; import java.util.stream.Collectors; +@Slf4j public class ConfigUtil { private static final JavaPropsMapper PROPERTIES_MAPPER = new JavaPropsMapper(); private static final ObjectMapper JACKSON_MAPPER = new ObjectMapper(); @@ -113,7 +118,8 @@ static Object flatteningMapWithObject(Object rawValue) { } @SuppressWarnings("unchecked") - public static T convertValue(Object rawValue, TypeReference typeReference) { + public static T convertValue(Object rawValue, Option option) { + TypeReference typeReference = option.typeReference(); rawValue = flatteningMapWithObject(rawValue); if (typeReference.getType() instanceof Class) { // simple type @@ -135,6 +141,10 @@ public static T convertValue(Object rawValue, TypeReference typeReference && List.class.equals( ((ParameterizedType) typeReference.getType()).getRawType())) { try { + log.warn( + String.format( + "Option '%s' is a List, and it is recommended to configure it as [\"string1\",\"string2\"]; we will only use ',' to split the String into a list.", + option.key())); return (T) convertToList( rawValue,