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 <[email protected]>
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.