You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xindice-dev@xml.apache.org by na...@apache.org on 2008/11/06 21:13:11 UTC

svn commit: r711958 - in /xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer: ./ components/

Author: natalia
Date: Thu Nov  6 12:12:54 2008
New Revision: 711958

URL: http://svn.apache.org/viewvc?rev=711958&view=rev
Log:
Fixed encoding issues for both request and response.

Modified:
    xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/HtmlViewerComponent.java
    xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionConfigurationViewer.java
    xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionIndexesViewer.java
    xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ContentResourceViewer.java
    xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CreateCollectionViewer.java
    xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/DeleteCollectionViewer.java
    xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/DeleteResourceViewer.java
    xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ListCollectionViewer.java
    xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ListDatabaseViewer.java
    xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/MetadataCollectionViewer.java
    xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/MetadataResourceViewer.java
    xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/UploadCollectionViewer.java
    xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/XPathSearchCollectionViewer.java
    xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/XUpdateCollectionViewer.java

Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/HtmlViewerComponent.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/HtmlViewerComponent.java?rev=711958&r1=711957&r2=711958&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/HtmlViewerComponent.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/HtmlViewerComponent.java Thu Nov  6 12:12:54 2008
@@ -20,11 +20,12 @@
 package org.apache.xindice.webadmin.viewer;
 
 import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
 import java.util.HashMap;
 import java.util.Map;
 
 import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.xindice.server.Xindice;
@@ -162,32 +163,32 @@
 
     protected abstract String getName();
 
-    protected ServletOutputStream startViewer(String title, String path, HttpServletResponse res)
+    protected Writer startViewer(String title, String path, HttpServletResponse res)
             throws ServletException, IOException {
 
         res.setContentType("text/html; charset=utf-8");
-        ServletOutputStream output = res.getOutputStream();
+        Writer output = new OutputStreamWriter(res.getOutputStream(), "utf-8");
         printHeader(output, title);
         printTabs(output, path);
         return output;
     }
 
-    protected void finishViewer(ServletOutputStream output) throws IOException {
-        output.print(FOOTER);
-        output.print(HTML_TAIL_SECTION);
+    protected void finishViewer(Writer output) throws IOException {
+        output.write(FOOTER);
+        output.write(HTML_TAIL_SECTION);
         output.flush();
     }
 
-    protected void printHeader(ServletOutputStream output, String title) throws IOException {
-        output.print(HTML_HEADER_SECTION);
-        output.print(title);
-        output.print(END_HTML_HEADER_SECTION);
-        output.print(LOGO_SECTION);
+    protected void printHeader(Writer output, String title) throws IOException {
+        output.write(HTML_HEADER_SECTION);
+        output.write(title);
+        output.write(END_HTML_HEADER_SECTION);
+        output.write(LOGO_SECTION);
     }
 
-    protected void printTabs(ServletOutputStream output, String path) throws IOException {
+    protected void printTabs(Writer output, String path) throws IOException {
 
-        output.print(START_TABS_SECTION);
+        output.write(START_TABS_SECTION);
 
         String[] viewers = new String[]{};
         if (this instanceof HtmlCollectionViewer) {
@@ -201,147 +202,147 @@
         for (int i = 0; i < viewers.length; i++) {
             if (viewers[i].equals(getName())) {
                 if (i > 0) {
-                    output.print(TAB_SPACE_SELECTED);
+                    output.write(TAB_SPACE_SELECTED);
                 }
-                output.print(START_TAB_SELECTED);
-                output.print(getName());
-                output.print(END_TAB);
+                output.write(START_TAB_SELECTED);
+                output.write(getName());
+                output.write(END_TAB);
             } else {
                 if (i > 0) {
-                    output.print(TAB_SPACE);
+                    output.write(TAB_SPACE);
                 }
-                output.print(START_TAB);
+                output.write(START_TAB);
                 if (viewers[i].length() > 0) {
-                    output.print("<a href=\"?viewer="); // TODO do in START_TAB
-                    output.print(viewers[i]);
-                    output.print("\" class=\"unselected\">");
-                    output.print(viewers[i]);
-                    output.print("</a>");
+                    output.write("<a href=\"?viewer="); // TODO do in START_TAB
+                    output.write(viewers[i]);
+                    output.write("\" class=\"unselected\">");
+                    output.write(viewers[i]);
+                    output.write("</a>");
                 } else {
-                    output.print("&nbsp;");
+                    output.write("&nbsp;");
                 }
-                output.print(END_TAB);
+                output.write(END_TAB);
             }
         }
-        output.print(END_TABS_SECTION);
+        output.write(END_TABS_SECTION);
 
         // path section
-        output.print(LEFT_PATH_SECTION);
+        output.write(LEFT_PATH_SECTION);
         if (path != null && path.length() > 1) {
-            output.print(path);
+            output.write(path);
         } else {
-            output.print("/");
+            output.write("/");
         }
-        output.print(RIGHT_PATH_SECTION);
-        output.print("&nbsp;");
-        output.print(END_PATH_SECTION);
+        output.write(RIGHT_PATH_SECTION);
+        output.write("&nbsp;");
+        output.write(END_PATH_SECTION);
     }
 
-    protected void printStartTable(String title, ServletOutputStream output) throws IOException {
+    protected void printStartTable(String title, Writer output) throws IOException {
         String[] titles = {title};
         printStartTable(titles, output);
     }
 
-    protected void printStartTable(String[] titles, ServletOutputStream output) throws IOException {
-        output.print(START_TABLE);
-        output.print(START_TABLE_ROW);
+    protected void printStartTable(String[] titles, Writer output) throws IOException {
+        output.write(START_TABLE);
+        output.write(START_TABLE_ROW);
 
         for (int i = 0; i < titles.length; i++) {
-            output.print(START_TABLE_BOX_TITLE);
+            output.write(START_TABLE_BOX_TITLE);
             if (titles[i].length() > 0) {
-                output.print(titles[i]);
+                output.write(titles[i]);
             } else {
-                output.print("&nbsp;");
+                output.write("&nbsp;");
             }
-            output.print(END_TABLE_BOX);
+            output.write(END_TABLE_BOX);
         }
 
-        output.print(END_TABLE_ROW);
+        output.write(END_TABLE_ROW);
     }
 
-    protected void printEndTable(ServletOutputStream output) throws IOException {
-        output.print(END_TABLE);
+    protected void printEndTable(Writer output) throws IOException {
+        output.write(END_TABLE);
     }
 
-    protected void printTableRow(String content, ServletOutputStream output) throws IOException {
+    protected void printTableRow(String content, Writer output) throws IOException {
         String[] contents = {content};
         printTableRow(contents, output);
     }
 
-    protected void printTableRow(String[] contents, ServletOutputStream output) throws IOException {
-        output.print(START_TABLE_ROW);
+    protected void printTableRow(String[] contents, Writer output) throws IOException {
+        output.write(START_TABLE_ROW);
 
         for (int i = 0; i < contents.length; i++) {
-            output.print(START_TABLE_BOX);
+            output.write(START_TABLE_BOX);
             if (contents[i] != null && contents[i].length() > 0) {
-                output.print(contents[i]);
+                output.write(contents[i]);
             } else {
-                output.print("&nbsp;");
+                output.write("&nbsp;");
             }
-            output.print(END_TABLE_BOX);
+            output.write(END_TABLE_BOX);
         }
 
-        output.print(END_TABLE_ROW);
+        output.write(END_TABLE_ROW);
     }
 
-    protected void printStartSingleTableBox(ServletOutputStream output) throws IOException {
-        output.print(START_TABLE_ROW);
-        output.print(START_TABLE_BOX);
+    protected void printStartSingleTableBox(Writer output) throws IOException {
+        output.write(START_TABLE_ROW);
+        output.write(START_TABLE_BOX);
     }
 
-    protected void printEndSingleTableBox(ServletOutputStream output) throws IOException {
-        output.print(END_TABLE_BOX);
-        output.print(END_TABLE_ROW);
+    protected void printEndSingleTableBox(Writer output) throws IOException {
+        output.write(END_TABLE_BOX);
+        output.write(END_TABLE_ROW);
     }
 
-    protected void printSearchFromRow(String viewer, String query, String[] ns, ServletOutputStream output)
+    protected void printSearchFromRow(String viewer, String query, String[] ns, Writer output)
             throws IOException {
 
         query = query.replaceAll("\"", "&quot;");
 
-        output.print(START_TABLE_ROW);
-        output.print(START_TABLE_BOX);
-        output.print(START_SEARCH_FORM);
-        output.print(SEARCH_FROM_START_HIDDEN_VIEWER);
-        output.print(viewer);
-        output.print(SEARCH_FROM_END_HIDDEN_VIEWER);
-        output.print(SEARCH_FROM_START_QUERY);
-        output.print(query);
-        output.print(SEARCH_FROM_END_QUERY);
-        output.print(SEARCH_FROM_START_NS_HEADER);
+        output.write(START_TABLE_ROW);
+        output.write(START_TABLE_BOX);
+        output.write(START_SEARCH_FORM);
+        output.write(SEARCH_FROM_START_HIDDEN_VIEWER);
+        output.write(viewer);
+        output.write(SEARCH_FROM_END_HIDDEN_VIEWER);
+        output.write(SEARCH_FROM_START_QUERY);
+        output.write(query);
+        output.write(SEARCH_FROM_END_QUERY);
+        output.write(SEARCH_FROM_START_NS_HEADER);
 
         int nsSize = ns.length / 2;
         for (int i = 1; i < 10; i++) {
             if (i == nsSize) {
-                output.print(SEARCH_FROM_START_NS_HEADER_OPT_SEL);
+                output.write(SEARCH_FROM_START_NS_HEADER_OPT_SEL);
             } else {
-                output.print(SEARCH_FROM_START_NS_HEADER_OPT);
+                output.write(SEARCH_FROM_START_NS_HEADER_OPT);
             }
-            output.print(i);
-            output.print(SEARCH_FROM_END_NS_HEADER_OPT);
+            output.write(i);
+            output.write(SEARCH_FROM_END_NS_HEADER_OPT);
         }
 
-        output.print(SEARCH_FROM_END_NS_HEADER);
+        output.write(SEARCH_FROM_END_NS_HEADER);
 
         int thisNs = 1;
         for (int i = 0; i < ns.length; i++) {
-            output.print(SEARCH_FROM_START_NS);
-            output.print(thisNs);
-            output.print(SEARCH_FROM_START_NS_PREFIX);
-            output.print(thisNs);
-            output.print(SEARCH_FROM_END_NS_PREFIX);
-            output.print(ns[i]);
+            output.write(SEARCH_FROM_START_NS);
+            output.write(thisNs);
+            output.write(SEARCH_FROM_START_NS_PREFIX);
+            output.write(thisNs);
+            output.write(SEARCH_FROM_END_NS_PREFIX);
+            output.write(ns[i]);
             i++;
-            output.print(SEARCH_FROM_START_NS_URI);
-            output.print(thisNs);
-            output.print(SEARCH_FROM_MIDDLE_NS_URI);
-            output.print(ns[i]);
-            output.print(SEARCH_FROM_END_NS_URI);
+            output.write(SEARCH_FROM_START_NS_URI);
+            output.write(thisNs);
+            output.write(SEARCH_FROM_MIDDLE_NS_URI);
+            output.write(ns[i]);
+            output.write(SEARCH_FROM_END_NS_URI);
             thisNs++;
         }
-        output.print(END_SEARCH_FORM);
-        output.print(END_TABLE_BOX);
-        output.print(END_TABLE_ROW);
+        output.write(END_SEARCH_FORM);
+        output.write(END_TABLE_BOX);
+        output.write(END_TABLE_ROW);
     }
 
     // ---------------------------------------------------- Protected Constants
@@ -349,6 +350,7 @@
     protected static final String HTML_HEADER_SECTION =
             "<html> \n"
             + "<head> \n"
+            + "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n"
             + "<style type=\"text/css\"><!-- \n"
             + "small { \n"
             + "  font-family: verdana,sans-serif; \n"

Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionConfigurationViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionConfigurationViewer.java?rev=711958&r1=711957&r2=711958&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionConfigurationViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionConfigurationViewer.java Thu Nov  6 12:12:54 2008
@@ -20,9 +20,9 @@
 package org.apache.xindice.webadmin.viewer.components;
 
 import java.io.IOException;
+import java.io.Writer;
 
 import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -50,7 +50,7 @@
         String path = col.getCanonicalName();
         String title = "Collection Configuration for " + path;
 
-        ServletOutputStream output = startViewer(title, path, res);
+        Writer output = startViewer(title, path, res);
         printStartTable(title, output);
         printStartSingleTableBox(output);
 
@@ -60,8 +60,8 @@
             printEndTable(output);
         } catch (ReadOnlyException e) {
             log.error(e);
-            output.print("Cannot read configuration: ");
-            output.print(e.getMessage());
+            output.write("Cannot read configuration: ");
+            output.write(e.getMessage());
         }
 
         printEndSingleTableBox(output);

Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionIndexesViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionIndexesViewer.java?rev=711958&r1=711957&r2=711958&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionIndexesViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CollectionIndexesViewer.java Thu Nov  6 12:12:54 2008
@@ -20,9 +20,9 @@
 package org.apache.xindice.webadmin.viewer.components;
 
 import java.io.IOException;
+import java.io.Writer;
 
 import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -30,6 +30,7 @@
 import org.apache.xindice.core.DBException;
 import org.apache.xindice.core.indexer.Indexer;
 import org.apache.xindice.util.Configuration;
+import org.apache.xindice.util.StringUtilities;
 import org.apache.xindice.webadmin.viewer.HtmlViewerComponent;
 import org.apache.xindice.webadmin.viewer.HtmlCollectionViewer;
 import org.apache.xindice.xml.dom.DocumentImpl;
@@ -57,7 +58,7 @@
         String path = col.getCanonicalName();
         String title = "Collection Indexes for " + path;
 
-        ServletOutputStream output = startViewer(title, path, res);
+        Writer output = startViewer(title, path, res);
 
         String name = req.getParameter("name");
         String pattern = req.getParameter("pattern");
@@ -75,10 +76,10 @@
                 log.error(e);
                 printStartTable("Message", output);
                 printStartSingleTableBox(output);
-                output.println("<b>Cannot create Indexer " + name + ": " + e.getMessage() + "</b>");
+                output.write("<b>Cannot create Indexer " + name + ": " + e.getMessage() + "</b>\n");
                 printEndSingleTableBox(output);
                 printEndTable(output);
-                output.println("<br />\n");
+                output.write("<br />\n");
             }
         } else if (delete != null && delete.length() > 0) {
             printStartTable("Message", output);
@@ -87,27 +88,27 @@
                 deleteIndex(col, delete, output);
             } catch (DBException e) {
                 log.error(e);
-                output.println("<b>Cannot delete Indexer " + name + ": " + e.getMessage() + "</b>");
+                output.write("<b>Cannot delete Indexer " + name + ": " + e.getMessage() + "</b>\n");
             }
             printEndSingleTableBox(output);
             printEndTable(output);
-            output.println("<br />\n");
+            output.write("<br />\n");
         }
 
         // form
         printStartTable("Add Index for " + path, output);
         printStartSingleTableBox(output);
-        output.print(INDEXES_UPDATE_FORM_1);
-        output.print(INDEXES_UPDATE_FORM_2);
-        output.print(INDEXES_UPDATE_FORM_3);
+        output.write(INDEXES_UPDATE_FORM_1);
+        output.write(INDEXES_UPDATE_FORM_2);
+        output.write(INDEXES_UPDATE_FORM_3);
         printTypeSelector(output);
-        output.print(INDEXES_UPDATE_FORM_4);
-        output.print(INDEXES_UPDATE_FORM_5);
-        output.print(INDEXES_UPDATE_FORM_6);
+        output.write(INDEXES_UPDATE_FORM_4);
+        output.write(INDEXES_UPDATE_FORM_5);
+        output.write(INDEXES_UPDATE_FORM_6);
         printEndSingleTableBox(output);
         printEndTable(output);
 
-        output.print("<br />");
+        output.write("<br />");
         output.flush();
 
         try {
@@ -116,21 +117,21 @@
             log.error(e);
             printStartTable("Error", output);
             printStartSingleTableBox(output);
-            output.print("Sorry, cannot get Indexes: ");
-            output.print(e.getMessage());
+            output.write("Sorry, cannot get Indexes: ");
+            output.write(e.getMessage());
             printEndSingleTableBox(output);
             printEndTable(output);
         }
         finishViewer(output);
     }
 
-    private void listIndexes(Collection col, ServletOutputStream output) throws DBException, IOException {
+    private void listIndexes(Collection col, Writer output) throws DBException, IOException {
         String[] indexes = col.listIndexers();
         if (indexes.length == 0) {
             String message = "Collection contains no Indexes!";
             printStartTable(message, output);
             printStartSingleTableBox(output);
-            output.print(message);
+            output.write(message);
             printEndSingleTableBox(output);
             printEndTable(output);
         } else {
@@ -155,7 +156,7 @@
                         indexerType,
                         thisConf.getAttribute("pagesize", ""),
                         thisConf.getAttribute("maxkeysize", ""),
-                        "<a href=\"?viewer=" + getName() + "&delete="
+                        "<a href=\"?viewer=" + StringUtilities.escapePath(getName()) + "&delete="
                         + indexerName + "\">delete</a>"
                 };
                 printTableRow(contents, output);
@@ -164,17 +165,17 @@
         }
     }
 
-    private void deleteIndex(Collection col, String name, ServletOutputStream output) throws IOException, DBException {
+    private void deleteIndex(Collection col, String name, Writer output) throws IOException, DBException {
         // delete indexer
         Indexer delIndex = col.getIndexer(name);
         if (delIndex != null) {
             if (col.dropIndexer(delIndex)) {
-                output.println("<b>Indexer " + name + " deleted!</b>");
+                output.write("<b>Indexer " + name + " deleted!</b>\n");
             } else {
-                output.println("<b>Cannot delete Indexer " + name + "!</b>");
+                output.write("<b>Cannot delete Indexer " + name + "!</b>\n");
             }
         } else {
-            output.println("<b>Cannot get Indexer " + name + "!</b>");
+            output.write("<b>Cannot get Indexer " + name + "!</b>\n");
         }
     }
 
@@ -208,14 +209,14 @@
         return col.createIndexer(new Configuration(doc, false));
     }
 
-    private void printTypeSelector(ServletOutputStream output) throws IOException {
-        output.println("<select name=\"type\" size\"1\">");
-        output.println("<option value=\"\">default</option>");
+    private void printTypeSelector(Writer output) throws IOException {
+        output.write("<select name=\"type\" size\"1\">\n");
+        output.write("<option value=\"\">default</option>\n");
         for (int i = 0; i < IDX_TYPES.length; i += 2) {
-            output.print("<option value=\"" + IDX_TYPES[i] + "\"");
-            output.print(" >" + IDX_TYPES[i] + ": " + IDX_TYPES[i + 1] + "</option>");
+            output.write("<option value=\"" + IDX_TYPES[i] + "\"");
+            output.write(" >" + IDX_TYPES[i] + ": " + IDX_TYPES[i + 1] + "</option>");
         }
-        output.println("</select>");
+        output.write("</select>\n");
     }
 
     /**

Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ContentResourceViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ContentResourceViewer.java?rev=711958&r1=711957&r2=711958&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ContentResourceViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ContentResourceViewer.java Thu Nov  6 12:12:54 2008
@@ -20,9 +20,9 @@
 package org.apache.xindice.webadmin.viewer.components;
 
 import java.io.IOException;
+import java.io.Writer;
 
 import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -61,18 +61,19 @@
             throw new ServletException(e);
         }
 
-        ServletOutputStream output = startViewer(title, path, res);
+        Writer output = startViewer(title, path, res);
         printStartTable(title, output);
         printStartSingleTableBox(output);
-        output.print("<a href=\"./?viewer=default\">up to parent collection</a>");
+        output.write("<a href=\"./?viewer=default\">up to parent collection</a>");
         printEndSingleTableBox(output);
         printStartSingleTableBox(output);
+        // todo: NullPointerException resource == null
         if (resource.getEntryType() == Entry.DOCUMENT) {
             Xml2HtmlWriter.write((Document) resource.getValue(), output);
         } else {
-            output.print("binary resource <a href=\"./");
-            output.print(name);
-            output.print("\">view content</a>");
+            output.write("binary resource <a href=\"./");
+            output.write(name);
+            output.write("\">view content</a>");
         }
         printEndSingleTableBox(output);
         printEndTable(output);

Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CreateCollectionViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CreateCollectionViewer.java?rev=711958&r1=711957&r2=711958&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CreateCollectionViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/CreateCollectionViewer.java Thu Nov  6 12:12:54 2008
@@ -20,14 +20,15 @@
 package org.apache.xindice.webadmin.viewer.components;
 
 import java.io.IOException;
+import java.io.Writer;
 
 import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.xindice.core.Collection;
 import org.apache.xindice.util.Configuration;
+import org.apache.xindice.util.StringUtilities;
 import org.apache.xindice.webadmin.util.CollectionConfigurationHelper;
 import org.apache.xindice.webadmin.viewer.HtmlCollectionViewer;
 import org.apache.xindice.webadmin.viewer.HtmlViewerComponent;
@@ -49,7 +50,7 @@
         String path = col.getCanonicalName();
         String title = "Create Subcollection in " + path;
 
-        ServletOutputStream output = startViewer(title, path, res);
+        Writer output = startViewer(title, path, res);
 
         String name = req.getParameter("name");
         String inlineMeta = req.getParameter("meta");
@@ -59,17 +60,17 @@
         if (name == null || name.length() == 0) {
             printStartTable(title, output);
             printStartSingleTableBox(output);
-            output.print(CREATE_FORM_START);
-            output.print(CollectionConfigurationHelper.getDefaultInlineMetadata());
-            output.print(CREATE_FORM_META_DEFAULT);
-            output.print(!CollectionConfigurationHelper.getDefaultInlineMetadata());
-            output.print(CREATE_FORM_META_END);
-            output.print(CollectionConfigurationHelper.getDefaultCompressed());
-            output.print(CREATE_FORM_COMPRESSED_DEFAULT);
-            output.print(!CollectionConfigurationHelper.getDefaultCompressed());
-            output.print(CREATE_FORM_COMPRESSED_END);
-            output.print(CollectionConfigurationHelper.getDefaultFilerClass());
-            output.print(CREATE_FORM_FILER);
+            output.write(CREATE_FORM_START);
+            output.write(Boolean.toString(CollectionConfigurationHelper.getDefaultInlineMetadata()));
+            output.write(CREATE_FORM_META_DEFAULT);
+            output.write(Boolean.toString(!CollectionConfigurationHelper.getDefaultInlineMetadata()));
+            output.write(CREATE_FORM_META_END);
+            output.write(Boolean.toString(CollectionConfigurationHelper.getDefaultCompressed()));
+            output.write(CREATE_FORM_COMPRESSED_DEFAULT);
+            output.write(Boolean.toString(!CollectionConfigurationHelper.getDefaultCompressed()));
+            output.write(CREATE_FORM_COMPRESSED_END);
+            output.write(CollectionConfigurationHelper.getDefaultFilerClass());
+            output.write(CREATE_FORM_FILER);
             printEndSingleTableBox(output);
             printEndTable(output);
         } else {
@@ -79,11 +80,11 @@
 
                 printStartTable(title, output);
                 printStartSingleTableBox(output);
-                output.print("<b>Collection <a href=\"./");
-                output.print(name);
-                output.print("/?viewer=default\"><b>");
-                output.print(name);
-                output.print("</b></a> created!</b>");
+                output.write("<b>Collection <a href=\"./");
+                output.write(StringUtilities.escapePath(name));
+                output.write("/?viewer=default\"><b>");
+                output.write(name);
+                output.write("</b></a> created!</b>");
                 printEndSingleTableBox(output);
                 printEndTable(output);
             } catch (Exception e) {
@@ -91,10 +92,10 @@
                 title = "Error while creating new Collection!";
                 printStartTable(title, output);
                 printStartSingleTableBox(output);
-                output.print("<b>Could not create Collection ");
-                output.print(name);
-                output.print("!</b><br />");
-                output.print(e.getMessage());
+                output.write("<b>Could not create Collection ");
+                output.write(name);
+                output.write("!</b><br />");
+                output.write(e.getMessage());
                 printEndSingleTableBox(output);
                 printEndTable(output);
             }

Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/DeleteCollectionViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/DeleteCollectionViewer.java?rev=711958&r1=711957&r2=711958&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/DeleteCollectionViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/DeleteCollectionViewer.java Thu Nov  6 12:12:54 2008
@@ -20,9 +20,9 @@
 package org.apache.xindice.webadmin.viewer.components;
 
 import java.io.IOException;
+import java.io.Writer;
 
 import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -55,15 +55,15 @@
             redirect = "";
         }
         if (!"yes".equals(action)) {
-            ServletOutputStream output = startViewer(title, path, res);
+            Writer output = startViewer(title, path, res);
             printStartTable(title, output);
             printStartSingleTableBox(output);
-            output.print("Do you really want to delete the collection ");
-            output.print(colName);
-            output.print("? <a href=\"javascript:history.back()\">no</a> ");
-            output.print(" <a href=\"?viewer=delete&action=yes&redirect=");
-            output.print(redirect);
-            output.print("\">yes</a>");
+            output.write("Do you really want to delete the collection ");
+            output.write(colName);
+            output.write("? <a href=\"javascript:history.back()\">no</a> ");
+            output.write(" <a href=\"?viewer=delete&action=yes&redirect=");
+            output.write(redirect);
+            output.write("\">yes</a>");
             printEndSingleTableBox(output);
             printEndTable(output);
             finishViewer(output);
@@ -71,12 +71,12 @@
             try {
                 // check if it is a database
                 if (col.getParentCollection() == null) {
-                    ServletOutputStream output = startViewer(title, path, res);
+                    Writer output = startViewer(title, path, res);
                     title = "Error while deleting Collection!";
                     printStartTable(title, output);
                     printStartSingleTableBox(output);
-                    output.print("<b>Database cannot be deleted. Please manually change configuration files to delete or add a database.");
-                    output.print("</b><br />");
+                    output.write("<b>Database cannot be deleted. Please manually change configuration files to delete or add a database.");
+                    output.write("</b><br />");
                     printEndSingleTableBox(output);
                     printEndTable(output);
                     finishViewer(output);
@@ -90,15 +90,15 @@
                 if (redirect.length() > 0) {
                     res.sendRedirect(redirect);
                 } else {
-                    ServletOutputStream output = startViewer(title, path, res);
+                    Writer output = startViewer(title, path, res);
                     printStartTable(title, output);
                     printStartSingleTableBox(output);
-                    output.print("<a href=\"../?viewer=default\">up to parent collection</a>");
+                    output.write("<a href=\"../?viewer=default\">up to parent collection</a>");
                     printEndSingleTableBox(output);
                     printStartSingleTableBox(output);
-                    output.print("<b>Collection ");
-                    output.print(colName);
-                    output.print(" deleted!</b>");
+                    output.write("<b>Collection ");
+                    output.write(colName);
+                    output.write(" deleted!</b>");
                     printEndSingleTableBox(output);
                     printEndTable(output);
                     finishViewer(output);
@@ -106,16 +106,16 @@
             } catch (DBException e) {
                 log.error(e);
 
-                ServletOutputStream output = startViewer(title, path, res);
+                Writer output = startViewer(title, path, res);
                 printStartTable(title, output);
                 printStartSingleTableBox(output);
-                output.print("<a href=\"../../?viewer=default\">up to parent collection</a>");
+                output.write("<a href=\"../../?viewer=default\">up to parent collection</a>");
                 printEndSingleTableBox(output);
                 printStartSingleTableBox(output);
-                output.print("Cannot delete Collection");
-                output.print(colName);
-                output.print("! <br />");
-                output.print(e.getMessage());
+                output.write("Cannot delete Collection");
+                output.write(colName);
+                output.write("! <br />");
+                output.write(e.getMessage());
                 printEndSingleTableBox(output);
                 printEndTable(output);
                 finishViewer(output);

Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/DeleteResourceViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/DeleteResourceViewer.java?rev=711958&r1=711957&r2=711958&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/DeleteResourceViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/DeleteResourceViewer.java Thu Nov  6 12:12:54 2008
@@ -20,9 +20,9 @@
 package org.apache.xindice.webadmin.viewer.components;
 
 import java.io.IOException;
+import java.io.Writer;
 
 import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -55,18 +55,18 @@
         }
 
         if (!"yes".equals(action)) { // ask confirmation
-            ServletOutputStream output = startViewer(title, path, res);
+            Writer output = startViewer(title, path, res);
             printStartTable(title, output);
             printStartSingleTableBox(output);
-            output.print("<a href=\"./?viewer=default\">up to parent collection</a>");
+            output.write("<a href=\"./?viewer=default\">up to parent collection</a>");
             printEndSingleTableBox(output);
             printStartSingleTableBox(output);
-            output.print("Do you really want to delete ");
-            output.print(resourceName);
-            output.print("? <a href=\"javascript:history.back()\">no</a> ");
-            output.print("<a href=\"?viewer=delete&action=yes&redirect=");
-            output.print(redirect);
-            output.print("\">yes</a>");
+            output.write("Do you really want to delete ");
+            output.write(resourceName);
+            output.write("? <a href=\"javascript:history.back()\">no</a> ");
+            output.write("<a href=\"?viewer=delete&action=yes&redirect=");
+            output.write(redirect);
+            output.write("\">yes</a>");
             printEndSingleTableBox(output);
             printEndTable(output);
             finishViewer(output);
@@ -79,31 +79,31 @@
                 if (redirect.length() > 0) {
                     res.sendRedirect(redirect);
                 } else {
-                    ServletOutputStream output = startViewer(title, path, res);
+                    Writer output = startViewer(title, path, res);
                     printStartTable(title, output);
                     printStartSingleTableBox(output);
-                    output.print("<a href=\"./?viewer=default\">up to parent collection</a>");
+                    output.write("<a href=\"./?viewer=default\">up to parent collection</a>");
                     printEndSingleTableBox(output);
                     printStartSingleTableBox(output);
-                    output.print("<b>Document ");
-                    output.print(resourceName);
-                    output.print(" deleted! </b>");
+                    output.write("<b>Document ");
+                    output.write(resourceName);
+                    output.write(" deleted! </b>");
                     printEndSingleTableBox(output);
                     printEndTable(output);
                     finishViewer(output);
                 }
             } catch (DBException e) {
                 log.error(e);
-                ServletOutputStream output = startViewer(title, path, res);
+                Writer output = startViewer(title, path, res);
                 printStartTable(title, output);
                 printStartSingleTableBox(output);
-                output.print("<a href=\"./?viewer=default\">up to parent collection</a>");
+                output.write("<a href=\"./?viewer=default\">up to parent collection</a>");
                 printEndSingleTableBox(output);
                 printStartSingleTableBox(output);
-                output.print("<b>Cannot delete ");
-                output.print(resourceName);
-                output.print(": ");
-                output.print(e.getMessage());
+                output.write("<b>Cannot delete ");
+                output.write(resourceName);
+                output.write(": ");
+                output.write(e.getMessage());
                 printEndSingleTableBox(output);
                 printEndTable(output);
                 finishViewer(output);

Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ListCollectionViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ListCollectionViewer.java?rev=711958&r1=711957&r2=711958&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ListCollectionViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ListCollectionViewer.java Thu Nov  6 12:12:54 2008
@@ -20,13 +20,13 @@
 package org.apache.xindice.webadmin.viewer.components;
 
 import java.io.IOException;
+import java.io.Writer;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Locale;
 import java.util.TimeZone;
 
 import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -34,6 +34,7 @@
 import org.apache.xindice.core.DBException;
 import org.apache.xindice.webadmin.viewer.HtmlCollectionViewer;
 import org.apache.xindice.webadmin.viewer.HtmlViewerComponent;
+import org.apache.xindice.util.StringUtilities;
 
 /**
  * Xindice Html Viewer for collection listings.
@@ -55,7 +56,7 @@
         String title = "List contents for " + path;
 
         TableRow row = new TableRow();
-        ServletOutputStream output = startViewer(title, path, res);
+        Writer output = startViewer(title, path, res);
         printStartTable(row.getTitles(), output);
 
         // write parent
@@ -128,20 +129,22 @@
 
         protected String[] getCollection(String name) {
             reset();
-            content[0] = createLink(name + "/?viewer=list", name);
+            String encName = StringUtilities.escapePath(name);
+            content[0] = createLink(encName + "/?viewer=list", name);
             content[1] = "collection";
             content[3] = "&nbsp;";
-            content[4] = createLink(name + "/?viewer=delete&redirect=../?viewer=list", "delete");
+            content[4] = createLink(encName + "/?viewer=delete&redirect=../?viewer=list", "delete");
             return content;
         }
 
         protected String[] getResource(String name, String date) {
             reset();
-            content[0] = createLink(name + "?viewer=default", name);
+            String encName = StringUtilities.escapePath(name);
+            content[0] = createLink(encName + "?viewer=default", name);
             content[1] = "resource";
             content[2] = date;
-            content[3] = createLink(name, "src");
-            content[4] = createLink(name + "?viewer=delete&redirect=./?viewer=list", "delete");
+            content[3] = createLink(encName, "src");
+            content[4] = createLink(encName + "?viewer=delete&redirect=./?viewer=list", "delete");
             return content;
         }
 

Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ListDatabaseViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ListDatabaseViewer.java?rev=711958&r1=711957&r2=711958&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ListDatabaseViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/ListDatabaseViewer.java Thu Nov  6 12:12:54 2008
@@ -22,12 +22,13 @@
 import org.apache.xindice.webadmin.viewer.HtmlViewerComponent;
 import org.apache.xindice.webadmin.viewer.HtmlDatabaseViewer;
 import org.apache.xindice.core.Database;
+import org.apache.xindice.util.StringUtilities;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
 import java.io.IOException;
+import java.io.Writer;
 
 /**
  * Xindice Html Viewer for database listings.
@@ -44,7 +45,7 @@
         String title = "List databases";
 
         ListDatabaseViewer.TableRow row = new ListDatabaseViewer.TableRow();
-        ServletOutputStream output = startViewer(title, path, res);
+        Writer output = startViewer(title, path, res);
         printStartTable(row.getTitles(), output);
 
         for (int i = 0; i < databases.length; i++) {
@@ -85,7 +86,7 @@
 
         protected String[] getDatabase(String name, boolean metaEnabled, String dbRoot) {
             reset();
-            content[0] = createLink(name + "/?viewer=list", name);
+            content[0] = createLink(StringUtilities.escapePath(name) + "/?viewer=list", name);
             content[1] = "database";
             content[2] = Boolean.toString(metaEnabled);
             content[3] = dbRoot;

Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/MetadataCollectionViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/MetadataCollectionViewer.java?rev=711958&r1=711957&r2=711958&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/MetadataCollectionViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/MetadataCollectionViewer.java Thu Nov  6 12:12:54 2008
@@ -40,11 +40,11 @@
 import org.w3c.dom.Element;
 
 import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import java.io.IOException;
+import java.io.Writer;
 import java.util.Enumeration;
 import java.util.Iterator;
 
@@ -64,7 +64,7 @@
         String path = col.getCanonicalName();
         String title = "Collection Metadata for " + path;
 
-        ServletOutputStream output = startViewer(title, path, res);
+        Writer output = startViewer(title, path, res);
 
         String attrName = req.getParameter("attrname");
         if (attrName == null) {
@@ -194,14 +194,14 @@
 
         printStartTable("Add/Update Metadata Attribute", output);
         printStartSingleTableBox(output);
-        output.print(META_ATTR_UPDATE_FORM_START);
-        output.print(attrName);
-        output.print(META_ATTR_UPDATE_FORM_MIDDLE);
-        output.print(attrValue);
-        output.print(META_ATTR_UPDATE_FORM_END);
+        output.write(META_ATTR_UPDATE_FORM_START);
+        output.write(attrName);
+        output.write(META_ATTR_UPDATE_FORM_MIDDLE);
+        output.write(attrValue);
+        output.write(META_ATTR_UPDATE_FORM_END);
         printEndSingleTableBox(output);
         printEndTable(output);
-        output.println("<br />\n");
+        output.write("<br />\n");
 
         if (col.isMetaEnabled()) {
             MetaData metaData;
@@ -213,7 +213,7 @@
             }
             if (metaData != null) {
                 printAttributes(metaData, output);
-                output.println("<br />\n");
+                output.write("<br />\n");
                 printCustom(metaData, output);
             }
         }
@@ -221,7 +221,7 @@
         finishViewer(output);
     }
 
-    private void printAttributes(MetaData meta, ServletOutputStream output) throws IOException {
+    private void printAttributes(MetaData meta, Writer output) throws IOException {
 
         String[] attrTitle = {"Attribute Name", "Attribute Value", "delete Attribute"};
         if (meta.getAttributeKeys().hasMoreElements()) {
@@ -242,17 +242,17 @@
             String message = "No Attributes available!";
             printStartTable(message, output);
             printStartSingleTableBox(output);
-            output.println(message);
+            output.write(message + "\n");
             printEndSingleTableBox(output);
             printEndTable(output);
         }
     }
 
-    private void printCustom(MetaData meta, ServletOutputStream output) throws IOException {
+    private void printCustom(MetaData meta, Writer output) throws IOException {
         Document custom = meta.getCustomDocument();
         printStartTable("Add/Update MetaData Custom", output);
         printStartSingleTableBox(output);
-        output.println(META_CUSTOM_UPDATE_FORM_START);
+        output.write(META_CUSTOM_UPDATE_FORM_START);
         if (custom != null && custom.getDocumentElement() != null) {
             Element customEle = custom.getDocumentElement();
             if (!customEle.hasChildNodes()) {
@@ -262,17 +262,17 @@
             }
             TextWriter.write(custom.getDocumentElement(), output);
         }
-        output.println(META_CUSTOM_UPDATE_FORM_END);
+        output.write(META_CUSTOM_UPDATE_FORM_END);
         printEndSingleTableBox(output);
         printStartSingleTableBox(output);
-        output.println("<a href=\"?viewer=" + getName() + "&deleteCustom=true\">");
-        output.println("delete Custom</a>");
+        output.write("<a href=\"?viewer=" + getName() + "&deleteCustom=true\">\n");
+        output.write("delete Custom</a>\n");
         printEndSingleTableBox(output);
         printStartSingleTableBox(output);
-        output.println(META_CUSTOM_UPLOAD_FORM);
+        output.write(META_CUSTOM_UPLOAD_FORM);
         printEndSingleTableBox(output);
         printEndTable(output);
-        output.println("<br />");
+        output.write("<br />\n");
         printStartTable("MetaData Custom", output);
         printStartSingleTableBox(output);
         if (custom != null && custom.getDocumentElement() != null) {
@@ -283,19 +283,19 @@
                }*/
             Xml2HtmlWriter.write(custom.getDocumentElement(), output);
         } else {
-            output.println("No Custom Document!");
+            output.write("No Custom Document!\n");
         }
         printEndSingleTableBox(output);
         printEndTable(output);
     }
 
-    private void printError(String message, ServletOutputStream output) throws IOException {
+    private void printError(String message, Writer output) throws IOException {
         printStartTable("Error", output);
         printStartSingleTableBox(output);
-        output.println(message);
+        output.write(message + "\n");
         printEndSingleTableBox(output);
         printEndTable(output);
-        output.println("<br />\n");
+        output.write("<br />\n");
     }
 
     private static final String META_ATTR_UPDATE_FORM_START =
@@ -318,7 +318,7 @@
             "<input name=\"viewer\" value=\"meta\" type=\"hidden\" /> \n" +
             "<table class=\"upload-form\"> \n" +
             "<tr><td> \n" +
-            "<textarea name=\"custom\" cols=\"80\" rows=\"8\">";
+            "<textarea name=\"custom\" cols=\"80\" rows=\"8\">\n";
 
     private static final String META_CUSTOM_UPDATE_FORM_END =
             "</textarea> \n" +

Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/MetadataResourceViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/MetadataResourceViewer.java?rev=711958&r1=711957&r2=711958&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/MetadataResourceViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/MetadataResourceViewer.java Thu Nov  6 12:12:54 2008
@@ -40,11 +40,11 @@
 import org.w3c.dom.Element;
 
 import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import java.io.IOException;
+import java.io.Writer;
 import java.util.Iterator;
 
 /**
@@ -62,7 +62,7 @@
         String path = col.getCanonicalDocumentName(name);
         String title = "Resource Metadata for " + path;
 
-        ServletOutputStream output = startViewer(title, path, res);
+        Writer output = startViewer(title, path, res);
 
         String custom = req.getParameter("custom");
         String deleteCustom = req.getParameter("deleteCustom");
@@ -167,14 +167,14 @@
         finishViewer(output);
     }
 
-    private void printCustom(MetaData meta, ServletOutputStream output) throws IOException {
+    private void printCustom(MetaData meta, Writer output) throws IOException {
         Document custom = meta.getCustomDocument();
         printStartTable("Add/Update MetaData Custom", output);
         printStartSingleTableBox(output);
-        output.print("<a href=\"./?viewer=default\">up to parent collection</a>");
+        output.write("<a href=\"./?viewer=default\">up to parent collection</a>");
         printEndSingleTableBox(output);
         printStartSingleTableBox(output);
-        output.println(META_CUSTOM_UPDATE_FORM_START);
+        output.write(META_CUSTOM_UPDATE_FORM_START);
         if (custom != null && custom.getDocumentElement() != null) {
             Element customEle = custom.getDocumentElement();
             if (!customEle.hasChildNodes()) {
@@ -183,35 +183,35 @@
             }
             TextWriter.write(custom.getDocumentElement(), output);
         }
-        output.println(META_CUSTOM_UPDATE_FORM_END);
+        output.write(META_CUSTOM_UPDATE_FORM_END);
         printEndSingleTableBox(output);
         printStartSingleTableBox(output);
-        output.println("<a href=\"?viewer=" + getName() + "&deleteCustom=true\">");
-        output.println("delete Custom</a>");
+        output.write("<a href=\"?viewer=" + getName() + "&deleteCustom=true\">\n");
+        output.write("delete Custom</a>\n");
         printEndSingleTableBox(output);
         printStartSingleTableBox(output);
-        output.println(META_CUSTOM_UPLOAD_FORM);
+        output.write(META_CUSTOM_UPLOAD_FORM);
         printEndSingleTableBox(output);
         printEndTable(output);
-        output.println("<br />");
+        output.write("<br />\n");
         printStartTable("MetaData Custom", output);
         printStartSingleTableBox(output);
         if (custom != null && custom.getDocumentElement() != null) {
             Xml2HtmlWriter.write(custom.getDocumentElement(), output);
         } else {
-            output.println("No Custom Document!");
+            output.write("No Custom Document!\n");
         }
         printEndSingleTableBox(output);
         printEndTable(output);
     }
 
-    private void printError(String message, ServletOutputStream output) throws IOException {
+    private void printError(String message, Writer output) throws IOException {
         printStartTable("Error", output);
         printStartSingleTableBox(output);
-        output.println(message);
+        output.write(message);
         printEndSingleTableBox(output);
         printEndTable(output);
-        output.println("<br />\n");
+        output.write("<br />\n");
     }
 
     private static final String META_CUSTOM_UPDATE_FORM_START =
@@ -219,7 +219,7 @@
             "<input name=\"viewer\" value=\"meta\" type=\"hidden\" /> \n" +
             "<table class=\"upload-form\"> \n" +
             "<tr><td> \n" +
-            "<textarea name=\"custom\" cols=\"80\" rows=\"8\">";
+            "<textarea name=\"custom\" cols=\"80\" rows=\"8\">\n";
 
     private static final String META_CUSTOM_UPDATE_FORM_END =
             "</textarea> \n" +

Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/UploadCollectionViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/UploadCollectionViewer.java?rev=711958&r1=711957&r2=711958&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/UploadCollectionViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/UploadCollectionViewer.java Thu Nov  6 12:12:54 2008
@@ -29,18 +29,17 @@
 import org.apache.xindice.core.DBException;
 import org.apache.xindice.core.FaultCodes;
 import org.apache.xindice.util.XindiceException;
+import org.apache.xindice.util.StringUtilities;
 import org.apache.xindice.webadmin.viewer.HtmlCollectionViewer;
 import org.apache.xindice.webadmin.viewer.HtmlViewerComponent;
 import org.apache.xindice.xml.dom.DOMParser;
-
 import org.w3c.dom.Document;
 
 import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-
 import java.io.IOException;
+import java.io.Writer;
 import java.util.Iterator;
 
 /**
@@ -60,18 +59,19 @@
         String path = col.getCanonicalName();
         String title = "Upload Document to Collection " + path;
 
-        ServletOutputStream output = startViewer(title, path, res);
+        Writer output = startViewer(title, path, res);
         printStartTable(title, output);
         printStartSingleTableBox(output);
 
         String method = req.getMethod();
         if (!method.equalsIgnoreCase("POST")) {
-            output.print(UPLOAD_FORM);
+            output.write(UPLOAD_FORM);
         } else {
             //	Create a new file upload handler
             ServletFileUpload upload = new ServletFileUpload();
             // Set upload parameters
             upload.setSizeMax(-1);
+            upload.setHeaderEncoding(req.getCharacterEncoding());
             upload.setFileItemFactory(new DiskFileItemFactory());
 
             Form form;
@@ -98,7 +98,7 @@
         finishViewer(output);
     }
 
-    private Form parseUpload(HttpServletRequest req, ServletFileUpload upload) throws FileUploadException {
+    private Form parseUpload(HttpServletRequest req, ServletFileUpload upload) throws FileUploadException, IOException {
         Form form = new Form();
 
         // Process the uploaded fields
@@ -115,7 +115,7 @@
                 } else if (item.getFieldName().equals("type")) {
                     form.type = item.getString().charAt(0);
                 } else if (item.getFieldName().equals("name")) {
-                    form.name = item.getString();
+                    form.name = item.getString(req.getCharacterEncoding());
                 }
             }
             item.delete();
@@ -124,7 +124,7 @@
         return form;
     }
 
-    private void handleXML(Collection col, Form form, ServletOutputStream out) throws IOException {
+    private void handleXML(Collection col, Form form, Writer out) throws IOException {
         try {
             insertXML(col, form.name, form.content, form.overwrite, out);
         } catch (XindiceException e) {
@@ -141,7 +141,7 @@
         }
     }
 
-    private void handleBinary(Collection col, Form form, ServletOutputStream out) throws IOException {
+    private void handleBinary(Collection col, Form form, Writer out) throws IOException {
         try {
             insertBinary(col, form.name, form.content, form.overwrite, out);
         } catch (DBException e) {
@@ -154,22 +154,22 @@
         return "upload";
     }
 
-    private void printMetaError(ServletOutputStream output) throws IOException {
-        output.print("<b>Metadata storage is not enabled!<br />");
-        output.print("If you want to store binary content please ");
-        output.print("enable metadata storage inside the server.xml");
-        output.print(" and enable Inline Metadata inside this ");
-        output.print("Collection Configuration!</b>");
-    }
-
-    private void printError(String info, String message, ServletOutputStream output) throws IOException {
-        output.print("<b>");
-        output.print(info);
-        output.print("</b><br />");
-        output.print(message);
+    private void printMetaError(Writer output) throws IOException {
+        output.write("<b>Metadata storage is not enabled!<br />");
+        output.write("If you want to store binary content please ");
+        output.write("enable metadata storage inside the server.xml");
+        output.write(" and enable Inline Metadata inside this ");
+        output.write("Collection Configuration!</b>");
+    }
+
+    private void printError(String info, String message, Writer output) throws IOException {
+        output.write("<b>");
+        output.write(info);
+        output.write("</b><br />");
+        output.write(message);
     }
 
-    private void insertXML(Collection col, String name, byte[] content, boolean overwrite, ServletOutputStream out)
+    private void insertXML(Collection col, String name, byte[] content, boolean overwrite, Writer out)
             throws XindiceException, IOException {
         Document resource = DOMParser.toDocument(content);
         if (name.trim().length() == 0) {
@@ -189,14 +189,14 @@
         } else {
             col.setDocument(name, resource);
         }
-        out.print("<b>Resource <a href=\"./");
-        out.print(name);
-        out.print("?viewer=default\">");
-        out.print(name);
-        out.print("</a> created!</b>");
+        out.write("<b>Resource <a href=\"./");
+        out.write(StringUtilities.escapePath(name));
+        out.write("?viewer=default\">");
+        out.write(name);
+        out.write("</a> created!</b>");
     }
 
-    private void insertBinary(Collection col, String name, byte[] content, boolean overwrite, ServletOutputStream out)
+    private void insertBinary(Collection col, String name, byte[] content, boolean overwrite, Writer out)
             throws DBException, IOException {
 
         boolean inlineMetaSupported = col.getConfig().getBooleanAttribute(INLINE_METADATA, false);
@@ -221,11 +221,11 @@
                 col.setBinary(name, content);
             }
 
-            out.print("<b>Binary <a href=\"./");
-            out.print(name);
-            out.print("?viewer=default\">");
-            out.print(name);
-            out.print("</a> created!</b>");
+            out.write("<b>Binary <a href=\"./");
+            out.write(name);
+            out.write("?viewer=default\">");
+            out.write(name);
+            out.write("</a> created!</b>");
         }
     }
 

Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/XPathSearchCollectionViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/XPathSearchCollectionViewer.java?rev=711958&r1=711957&r2=711958&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/XPathSearchCollectionViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/XPathSearchCollectionViewer.java Thu Nov  6 12:12:54 2008
@@ -20,9 +20,9 @@
 package org.apache.xindice.webadmin.viewer.components;
 
 import java.io.IOException;
+import java.io.Writer;
 
 import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -58,7 +58,7 @@
 
         String path = col.getCanonicalName();
         String title = "XPATH Query for " + path;
-        ServletOutputStream output = startViewer(title, path, res);
+        Writer output = startViewer(title, path, res);
 
         // get namespaces
         String[] ns = {"", ""};
@@ -87,7 +87,7 @@
         }
 
         printQueryForm(output, query, path, ns);
-        output.print("<br />\n");
+        output.write("<br />\n");
         output.flush();
 
         if (query.length() > 0) { // print result
@@ -103,8 +103,8 @@
                 log.error(e);
                 printStartTable("Error while XPath Query", output);
                 printStartSingleTableBox(output);
-                output.print("<b>Error while XPath Query:</b><br />");
-                output.print(e.getMessage());
+                output.write("<b>Error while XPath Query:</b><br />");
+                output.write(e.getMessage());
                 printEndSingleTableBox(output);
                 printEndTable(output);
             }
@@ -117,7 +117,7 @@
         return "xpath";
     }
 
-    private void printQuery(NodeSet result, ServletOutputStream output, String query, String path)
+    private void printQuery(NodeSet result, Writer output, String query, String path)
             throws IOException {
 
         String resultTitle = "Result for Query " + query;
@@ -125,7 +125,7 @@
 
         if (!result.hasMoreNodes()) {
             printStartSingleTableBox(output);
-            output.print("No result for query " + query + "");
+            output.write("No result for query " + query + "");
             printEndSingleTableBox(output);
         }
 
@@ -137,14 +137,14 @@
                 Xml2HtmlWriter.write((Node) node, output);
             } else {
                 //	TODO print something, that makes sense
-                output.print("Node is no Node");
+                output.write("Node is no Node");
             }
             printEndSingleTableBox(output);
         }
         printEndTable(output);
     }
 
-    private void printQueryForm(ServletOutputStream output, String query, String path, String[] ns)
+    private void printQueryForm(Writer output, String query, String path, String[] ns)
             throws IOException {
         String formTitle = "XPath Query for Collection " + path;
         printStartTable(formTitle, output);

Modified: xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/XUpdateCollectionViewer.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/XUpdateCollectionViewer.java?rev=711958&r1=711957&r2=711958&view=diff
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/XUpdateCollectionViewer.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/webadmin/viewer/components/XUpdateCollectionViewer.java Thu Nov  6 12:12:54 2008
@@ -20,9 +20,9 @@
 package org.apache.xindice.webadmin.viewer.components;
 
 import java.io.IOException;
+import java.io.Writer;
 
 import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -53,7 +53,7 @@
         String path = col.getCanonicalName();
         String title = "XUpdate for " + path;
 
-        ServletOutputStream output = startViewer(title, path, res);
+        Writer output = startViewer(title, path, res);
 
         String xupdate = req.getParameter("xupdate");
         if(xupdate == null) {
@@ -70,23 +70,23 @@
 
         printStartTable(title, output);
         printStartSingleTableBox(output);
-        output.print(XUPDATE_FORM_START);
-        output.print(xupdate);
-        output.print(XUPDATE_FORM_END);
+        output.write(XUPDATE_FORM_START);
+        output.write(xupdate);
+        output.write(XUPDATE_FORM_END);
         printEndSingleTableBox(output);
         printEndTable(output);
 
-        output.println("<br />");
+        output.write("<br />\n");
         printStartTable("Examples", output);
         printStartSingleTableBox(output);
-        output.println(XUPDATE_EXAMPLES);
+        output.write(XUPDATE_EXAMPLES);
         printEndSingleTableBox(output);
         printEndTable(output);
 
         finishViewer(output);
     }
 
-    private void printResult(NodeSet result, ServletOutputStream output) throws IOException {
+    private void printResult(NodeSet result, Writer output) throws IOException {
         if(result != null && result.hasMoreNodes()) {
             Object node = result.getNextNode();
             String modified;
@@ -98,10 +98,10 @@
             }
             printStartTable("XUpdate Result", output);
             printStartSingleTableBox(output);
-            output.println("Modified <b>"+modified+"</b> Nodes!");
+            output.write("Modified <b>"+modified+"</b> Nodes!\n");
             printEndSingleTableBox(output);
             printEndTable(output);
-            output.println("<br />");
+            output.write("<br />\n");
         }
     }