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

[email protected]
Newsgroups gmane.text.xml.xindice.devel
Message-ID <[email protected]>
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");
         }
     }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.