From 506c92c733e44de4087d0c4b530a155a34706941 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Wed, 9 Jan 2013 12:52:19 -0800 Subject: [PATCH] Use StAX to write config XML. --- .../net/basic/ConfigurationList.java | 41 +++++++++++++------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/ConfigurationList.java b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/ConfigurationList.java index d8f287374..ac1807d91 100644 --- a/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/ConfigurationList.java +++ b/guacamole/src/main/java/net/sourceforge/guacamole/net/basic/ConfigurationList.java @@ -19,11 +19,13 @@ package net.sourceforge.guacamole.net.basic; */ import java.io.IOException; -import java.io.PrintWriter; import java.util.Map; import java.util.Map.Entry; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.xml.stream.XMLOutputFactory; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamWriter; import net.sourceforge.guacamole.protocol.GuacamoleConfiguration; /** @@ -45,23 +47,38 @@ public class ConfigurationList extends AuthenticatingHttpServlet { // Write XML response.setHeader("Content-Type", "text/xml"); - PrintWriter out = response.getWriter(); - out.println(""); - for (Entry entry : configs.entrySet()) { + try { - GuacamoleConfiguration config = entry.getValue(); + XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); + XMLStreamWriter xml = outputFactory.createXMLStreamWriter(response.getWriter()); - // Write config - out.print(""); + // Begin document + xml.writeStartDocument(); + xml.writeStartElement("configs"); + + // For each entry, write corresponding config element + for (Entry entry : configs.entrySet()) { + + // Get config + GuacamoleConfiguration config = entry.getValue(); + + // Write config + xml.writeEmptyElement("config"); + xml.writeAttribute("id", entry.getKey()); + xml.writeAttribute("protocol", config.getProtocol()); + + } + + // End document + xml.writeEndElement(); + xml.writeEndDocument(); } + catch (XMLStreamException e) { + throw new IOException("Unable to write configuration list XML.", e); + } - out.println(""); } }