You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2023/05/13 22:16:45 UTC
[ws-axiom] branch master updated: Fix the implementation of the DOM getXmlVersion method
This is an automated email from the ASF dual-hosted git repository.
veithen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ws-axiom.git
The following commit(s) were added to refs/heads/master by this push:
new d9263a49c Fix the implementation of the DOM getXmlVersion method
d9263a49c is described below
commit d9263a49ccf997308cf14455c58c06235e427888
Author: Andreas Veithen <an...@gmail.com>
AuthorDate: Sat May 13 23:15:55 2023 +0100
Fix the implementation of the DOM getXmlVersion method
---
.../java/org/apache/axiom/core/CoreDocument.java | 3 +++
.../axiom/dom/impl/mixin/DOMDocumentMixin.java | 3 ++-
.../apache/axiom/ts/dom/DOMTestSuiteBuilder.java | 3 +++
...ersionFromParsedDocumentWithoutDeclaration.java | 23 ++++++++++++++++++++++
4 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/mixins/core-mixins/src/main/java/org/apache/axiom/core/CoreDocument.java b/mixins/core-mixins/src/main/java/org/apache/axiom/core/CoreDocument.java
index b810541b4..ac3f8ba03 100644
--- a/mixins/core-mixins/src/main/java/org/apache/axiom/core/CoreDocument.java
+++ b/mixins/core-mixins/src/main/java/org/apache/axiom/core/CoreDocument.java
@@ -23,6 +23,9 @@ public interface CoreDocument extends CoreParentNode {
void coreSetInputEncoding(String inputEncoding);
+ /**
+ * Returns the XML version declared on the XML declaration or {@code null} if none was declared.
+ */
String coreGetXmlVersion();
void coreSetXmlVersion(String xmlVersion);
diff --git a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentMixin.java b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentMixin.java
index b4f4d095f..3d47e77c6 100644
--- a/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentMixin.java
+++ b/mixins/dom-mixins/src/main/java/org/apache/axiom/dom/impl/mixin/DOMDocumentMixin.java
@@ -176,7 +176,8 @@ public abstract class DOMDocumentMixin implements DOMDocument {
@Override
public final String getXmlVersion() {
- return coreGetXmlVersion();
+ String version = coreGetXmlVersion();
+ return version == null ? "1.0" : version;
}
@Override
diff --git a/testing/dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuiteBuilder.java b/testing/dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuiteBuilder.java
index 5b82a4947..be9db5dc1 100644
--- a/testing/dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuiteBuilder.java
+++ b/testing/dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuiteBuilder.java
@@ -99,6 +99,9 @@ public final class DOMTestSuiteBuilder extends MatrixTestSuiteBuilder {
addTest(new org.apache.axiom.ts.dom.document.TestDocumentSiblings(dbf));
addTest(new org.apache.axiom.ts.dom.document.TestGetDomConfigDefaults(dbf));
addTest(new org.apache.axiom.ts.dom.document.TestGetOwnerDocument(dbf));
+ addTest(
+ new org.apache.axiom.ts.dom.document
+ .TestGetXmlVersionFromParsedDocumentWithoutDeclaration(dbf));
addTest(new org.apache.axiom.ts.dom.document.TestLookupNamespaceURI(dbf));
addTest(new org.apache.axiom.ts.dom.document.TestLookupNamespaceURIWithEmptyDocument(dbf));
addTest(new org.apache.axiom.ts.dom.document.TestLookupPrefixWithEmptyDocument(dbf));
diff --git a/testing/dom-testsuite/src/main/java/org/apache/axiom/ts/dom/document/TestGetXmlVersionFromParsedDocumentWithoutDeclaration.java b/testing/dom-testsuite/src/main/java/org/apache/axiom/ts/dom/document/TestGetXmlVersionFromParsedDocumentWithoutDeclaration.java
new file mode 100644
index 000000000..6708364a8
--- /dev/null
+++ b/testing/dom-testsuite/src/main/java/org/apache/axiom/ts/dom/document/TestGetXmlVersionFromParsedDocumentWithoutDeclaration.java
@@ -0,0 +1,23 @@
+package org.apache.axiom.ts.dom.document;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import java.io.StringReader;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.axiom.ts.dom.DOMTestCase;
+import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
+
+public class TestGetXmlVersionFromParsedDocumentWithoutDeclaration extends DOMTestCase {
+ public TestGetXmlVersionFromParsedDocumentWithoutDeclaration(DocumentBuilderFactory dbf) {
+ super(dbf);
+ }
+
+ @Override
+ protected void runTest() throws Throwable {
+ Document doc = dbf.newDocumentBuilder().parse(new InputSource(new StringReader("<root/>")));
+ assertThat(doc.getXmlVersion()).isEqualTo("1.0");
+ }
+}