You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2022/02/11 15:58:55 UTC
[tomcat] 02/02: Improve human readability of WebDAV XML responses.
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 5569e41c1412d0495f0685d2989055582347b414
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Fri Feb 11 15:35:59 2022 +0000
Improve human readability of WebDAV XML responses.
---
java/org/apache/catalina/util/XMLWriter.java | 32 +++++++++++++++++++++-------
webapps/docs/changelog.xml | 5 +++++
2 files changed, 29 insertions(+), 8 deletions(-)
diff --git a/java/org/apache/catalina/util/XMLWriter.java b/java/org/apache/catalina/util/XMLWriter.java
index 937fd07..019c4b9 100644
--- a/java/org/apache/catalina/util/XMLWriter.java
+++ b/java/org/apache/catalina/util/XMLWriter.java
@@ -24,10 +24,8 @@ import java.io.Writer;
*/
public class XMLWriter {
-
// -------------------------------------------------------------- Constants
-
/**
* Opening tag.
*/
@@ -48,7 +46,6 @@ public class XMLWriter {
// ----------------------------------------------------- Instance Variables
-
/**
* Buffer.
*/
@@ -61,8 +58,10 @@ public class XMLWriter {
protected final Writer writer;
- // ----------------------------------------------------------- Constructors
+ protected boolean lastWriteWasOpen;
+
+ // ----------------------------------------------------------- Constructors
/**
* New XML writer utility that will store its data in an internal buffer.
@@ -87,7 +86,6 @@ public class XMLWriter {
// --------------------------------------------------------- Public Methods
-
/**
* Retrieve generated XML.
*
@@ -138,6 +136,9 @@ public class XMLWriter {
if ((namespace != null) && (namespace.length() > 0)) {
switch (type) {
case OPENING:
+ if (lastWriteWasOpen) {
+ buffer.append('\n');
+ }
if (namespaceInfo != null) {
buffer.append("<" + namespace + ":" + name + " xmlns:"
+ namespace + "=\""
@@ -145,32 +146,47 @@ public class XMLWriter {
} else {
buffer.append("<" + namespace + ":" + name + ">");
}
+ lastWriteWasOpen = true;
break;
case CLOSING:
buffer.append("</" + namespace + ":" + name + ">\n");
+ lastWriteWasOpen = false;
break;
case NO_CONTENT:
default:
+ if (lastWriteWasOpen) {
+ buffer.append('\n');
+ }
if (namespaceInfo != null) {
buffer.append("<" + namespace + ":" + name + " xmlns:"
+ namespace + "=\""
- + namespaceInfo + "\"/>");
+ + namespaceInfo + "\"/>\n");
} else {
- buffer.append("<" + namespace + ":" + name + "/>");
+ buffer.append("<" + namespace + ":" + name + "/>\n");
}
+ lastWriteWasOpen = false;
break;
}
} else {
switch (type) {
case OPENING:
+ if (lastWriteWasOpen) {
+ buffer.append('\n');
+ }
buffer.append("<" + name + ">");
+ lastWriteWasOpen = true;
break;
case CLOSING:
buffer.append("</" + name + ">\n");
+ lastWriteWasOpen = false;
break;
case NO_CONTENT:
default:
- buffer.append("<" + name + "/>");
+ if (lastWriteWasOpen) {
+ buffer.append('\n');
+ }
+ buffer.append("<" + name + "/>\n");
+ lastWriteWasOpen = false;
break;
}
}
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index 62d492d..5dfed80 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -145,6 +145,11 @@
copy or delete. Report the paths relative to the server root for any
resources with an error. (markt)
</fix>
+ <fix>
+ Improve the format of WebDAV XML responses to make them easier for
+ humans to read. The change ensures that there is always a line break
+ before starting a new element. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org