You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2023/12/31 06:14:41 UTC
(shardingsphere) branch master updated: Check specific properties when deserializing XML file (#29577)
This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 3fbe164b774 Check specific properties when deserializing XML file (#29577)
3fbe164b774 is described below
commit 3fbe164b77443297e099b4c741d60986046f7bd9
Author: Ling Hengqian <li...@outlook.com>
AuthorDate: Sun Dec 31 14:14:34 2023 +0800
Check specific properties when deserializing XML file (#29577)
---
.../sqlfederation/optimizer/it/TestCases.java | 2 ++
.../sqlfederation/optimizer/it/TestCasesLoader.java | 2 +-
.../repository/standalone/jdbc/sql/JDBCRepositorySQL.java | 13 +++++++++++++
.../standalone/jdbc/sql/JDBCRepositorySQLLoader.java | 2 +-
4 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/kernel/sql-federation/optimizer/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/it/TestCases.java b/kernel/sql-federation/optimizer/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/it/TestCases.java
index aaddf5b660c..b84e92c7806 100644
--- a/kernel/sql-federation/optimizer/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/it/TestCases.java
+++ b/kernel/sql-federation/optimizer/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/it/TestCases.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.sqlfederation.optimizer.it;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import lombok.Getter;
@@ -32,5 +33,6 @@ import java.util.LinkedList;
public final class TestCases {
@JacksonXmlProperty(localName = "test-case")
+ @JacksonXmlElementWrapper(useWrapping = false)
private final Collection<TestCase> testCases = new LinkedList<>();
}
diff --git a/kernel/sql-federation/optimizer/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/it/TestCasesLoader.java b/kernel/sql-federation/optimizer/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/it/TestCasesLoader.java
index 54ea2a2a374..c8413dfc7c4 100644
--- a/kernel/sql-federation/optimizer/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/it/TestCasesLoader.java
+++ b/kernel/sql-federation/optimizer/src/test/java/org/apache/shardingsphere/sqlfederation/optimizer/it/TestCasesLoader.java
@@ -34,7 +34,7 @@ public final class TestCasesLoader {
private static final TestCasesLoader INSTANCE = new TestCasesLoader();
- private static final ObjectMapper XML_MAPPER = XmlMapper.builder().defaultUseWrapper(false).build();
+ private static final ObjectMapper XML_MAPPER = XmlMapper.builder().build();
/**
* Get singleton instance.
diff --git a/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQL.java b/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQL.java
index 06a934555d4..ff13c72344b 100644
--- a/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQL.java
+++ b/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQL.java
@@ -17,41 +17,54 @@
package org.apache.shardingsphere.mode.repository.standalone.jdbc.sql;
+import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
import lombok.Getter;
/**
* JDBC repository SQL.
+ * `required` in {@link com.fasterxml.jackson.annotation.JsonProperty} only provides Metadata without detecting Null values, which is actually consistent with the design of the JAXB API.
+ * See <a href="https://github.com/FasterXML/jackson-dataformat-xml/issues/625">FasterXML/jackson-dataformat-xml#625</a>
+ *
+ * @see JsonProperty
*/
@JacksonXmlRootElement(localName = "sql")
@Getter
public final class JDBCRepositorySQL {
+ @JsonProperty(required = true)
@JacksonXmlProperty(isAttribute = true)
private String type;
+ @JsonProperty(required = true)
@JacksonXmlProperty(localName = "driver-class-name", isAttribute = true)
private String driverClassName;
@JacksonXmlProperty(localName = "default", isAttribute = true)
private boolean isDefault;
+ @JsonProperty(required = true)
@JacksonXmlProperty(localName = "create-table")
private String createTableSQL;
+ @JsonProperty(required = true)
@JacksonXmlProperty(localName = "select-by-key")
private String selectByKeySQL;
+ @JsonProperty(required = true)
@JacksonXmlProperty(localName = "select-by-parent")
private String selectByParentKeySQL;
+ @JsonProperty(required = true)
@JacksonXmlProperty(localName = "insert")
private String insertSQL;
+ @JsonProperty(required = true)
@JacksonXmlProperty(localName = "update")
private String updateSQL;
+ @JsonProperty(required = true)
@JacksonXmlProperty(localName = "delete")
private String deleteSQL;
}
diff --git a/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQLLoader.java b/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQLLoader.java
index fa5f68bdbb5..870aba4b7b1 100644
--- a/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQLLoader.java
+++ b/mode/type/standalone/repository/provider/jdbc/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/sql/JDBCRepositorySQLLoader.java
@@ -58,7 +58,7 @@ public final class JDBCRepositorySQLLoader {
private static final Collection<String> JAR_URL_PROTOCOLS = new HashSet<>(Arrays.asList("jar", "war", "zip", "wsjar", "vfszip"));
- private static final ObjectMapper XML_MAPPER = XmlMapper.builder().defaultUseWrapper(false).build();
+ private static final ObjectMapper XML_MAPPER = XmlMapper.builder().build();
/**
* Load JDBC repository SQL.