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

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


The following commit(s) were added to refs/heads/dev by this push:
     new c13a563994 [Improve][File Connector]Improve xml read code & fix can 
not use true for a boolean option (#6930)
c13a563994 is described below

commit c13a5639947a5026ac03887cadce9c289c056902
Author: Eric <gaojun2...@gmail.com>
AuthorDate: Thu Jun 13 15:04:57 2024 +0800

    [Improve][File Connector]Improve xml read code & fix can not use true for a 
boolean option (#6930)
---
 .../file/source/reader/XmlReadStrategy.java        | 22 ++++------------------
 .../src/test/resources/xml/test_read_xml.conf      |  2 +-
 2 files changed, 5 insertions(+), 19 deletions(-)

diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/source/reader/XmlReadStrategy.java
 
b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/source/reader/XmlReadStrategy.java
index d09431f12b..814a9fbdb5 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/source/reader/XmlReadStrategy.java
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/source/reader/XmlReadStrategy.java
@@ -252,8 +252,9 @@ public class XmlReadStrategy extends AbstractReadStrategy {
 
     /** Performs pre-checks and initialization of the configuration for 
reading XML files. */
     private void preCheckAndInitializeConfiguration() {
-        this.tableRowName = 
getPrimitiveConfigValue(BaseSourceConfigOptions.XML_ROW_TAG);
-        this.useAttrFormat = 
getPrimitiveConfigValue(BaseSourceConfigOptions.XML_USE_ATTR_FORMAT);
+        ReadonlyConfig readonlyConfig = 
ReadonlyConfig.fromConfig(pluginConfig);
+        this.tableRowName = 
readonlyConfig.get(BaseSourceConfigOptions.XML_ROW_TAG);
+        this.useAttrFormat = 
readonlyConfig.get(BaseSourceConfigOptions.XML_USE_ATTR_FORMAT);
 
         // Check mandatory configurations
         if (StringUtils.isEmpty(tableRowName) || useAttrFormat == null) {
@@ -265,7 +266,7 @@ public class XmlReadStrategy extends AbstractReadStrategy {
                             
BaseSourceConfigOptions.XML_USE_ATTR_FORMAT.key()));
         }
 
-        this.delimiter = 
getPrimitiveConfigValue(BaseSourceConfigOptions.FIELD_DELIMITER);
+        this.delimiter = 
readonlyConfig.get(BaseSourceConfigOptions.FIELD_DELIMITER);
 
         this.dateFormat =
                 getComplexDateConfigValue(
@@ -282,21 +283,6 @@ public class XmlReadStrategy extends AbstractReadStrategy {
                         .orElse(StandardCharsets.UTF_8.name());
     }
 
-    /**
-     * Retrieves the value of a primitive configuration option.
-     *
-     * @param option the configuration option to retrieve the value for
-     * @param <T> the type of the configuration option
-     * @return the value of the configuration option, or the default value if 
the option is not set
-     */
-    @SuppressWarnings("unchecked")
-    private <T> T getPrimitiveConfigValue(Option<?> option) {
-        if (!pluginConfig.hasPath(option.key())) {
-            return (T) option.defaultValue();
-        }
-        return (T) pluginConfig.getAnyRef(option.key());
-    }
-
     /**
      * Retrieves the complex date configuration value for the given option.
      *
diff --git 
a/seatunnel-connectors-v2/connector-file/connector-file-base/src/test/resources/xml/test_read_xml.conf
 
b/seatunnel-connectors-v2/connector-file/connector-file-base/src/test/resources/xml/test_read_xml.conf
index f81534b8b7..8e0aab2b0e 100644
--- 
a/seatunnel-connectors-v2/connector-file/connector-file-base/src/test/resources/xml/test_read_xml.conf
+++ 
b/seatunnel-connectors-v2/connector-file/connector-file-base/src/test/resources/xml/test_read_xml.conf
@@ -17,7 +17,7 @@
 
 {
   xml_row_tag = "RECORD"
-  xml_use_attr_format = true
+  xml_use_attr_format = "true"
   schema = {
     fields {
       c_bytes = "tinyint"

Reply via email to