You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@seatunnel.apache.org by ki...@apache.org on 2022/02/24 11:58:03 UTC

[incubator-seatunnel] branch dev updated: [Improve][Common] Add List type check for CheckConfigUtil (#1214)

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

kirs pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new b4f473a  [Improve][Common] Add List type check for CheckConfigUtil (#1214)
b4f473a is described below

commit b4f473ae8eea6ae932158afff92602497df5587c
Author: Simon <zh...@cvte.com>
AuthorDate: Thu Feb 24 19:57:58 2022 +0800

    [Improve][Common] Add List type check for CheckConfigUtil (#1214)
---
 .../apache/seatunnel/common/config/CheckConfigUtil.java    | 14 ++++++++++++--
 .../seatunnel/common/config/CheckConfigUtilTest.java       |  5 ++++-
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/seatunnel-common/src/main/java/org/apache/seatunnel/common/config/CheckConfigUtil.java b/seatunnel-common/src/main/java/org/apache/seatunnel/common/config/CheckConfigUtil.java
index 1202cc4..815d8d0 100644
--- a/seatunnel-common/src/main/java/org/apache/seatunnel/common/config/CheckConfigUtil.java
+++ b/seatunnel-common/src/main/java/org/apache/seatunnel/common/config/CheckConfigUtil.java
@@ -39,7 +39,7 @@ public final class CheckConfigUtil {
 
     public static CheckResult checkAllExists(Config config, String... params) {
         List<String> missingParams = Arrays.stream(params)
-                .filter(param -> !config.hasPath(param) || config.getAnyRef(param) == null)
+                .filter(param -> !isValidParam(config, param))
                 .collect(Collectors.toList());
 
         if (missingParams.size() > 0) {
@@ -61,7 +61,7 @@ public final class CheckConfigUtil {
 
         List<String> missingParams = new LinkedList<>();
         for (String param : params) {
-            if (!config.hasPath(param) || config.getAnyRef(param) == null) {
+            if (!isValidParam(config, param)) {
                 missingParams.add(param);
             }
         }
@@ -75,6 +75,16 @@ public final class CheckConfigUtil {
         }
     }
 
+    public static boolean isValidParam(Config config, String param) {
+        boolean isValidParam = true;
+        if (!config.hasPath(param)) {
+            isValidParam = false;
+        } else if (config.getAnyRef(param) instanceof List) {
+            isValidParam = !((List<?>) config.getAnyRef(param)).isEmpty();
+        }
+        return isValidParam;
+    }
+
     /**
      * merge all check result
      */
diff --git a/seatunnel-common/src/test/java/org/apache/seatunnel/common/config/CheckConfigUtilTest.java b/seatunnel-common/src/test/java/org/apache/seatunnel/common/config/CheckConfigUtilTest.java
index b1f0f9b..a1fd47e 100644
--- a/seatunnel-common/src/test/java/org/apache/seatunnel/common/config/CheckConfigUtilTest.java
+++ b/seatunnel-common/src/test/java/org/apache/seatunnel/common/config/CheckConfigUtilTest.java
@@ -27,6 +27,7 @@ import org.apache.seatunnel.shade.com.typesafe.config.ConfigFactory;
 import org.junit.Assert;
 import org.junit.Test;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -78,9 +79,11 @@ public class CheckConfigUtilTest {
     }
 
     public Config getConfig() {
-        Map<String, String> configMap = new HashMap<>();
+        Map<String, Object> configMap = new HashMap<>();
         configMap.put("k0", "v0");
         configMap.put("k1", "v1");
+        configMap.put("k2", new ArrayList<>());
+        configMap.put("k3", null);
         return ConfigFactory.parseMap(configMap);
     }
 }