]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/uwobo/src/it/unibo/cs/helm/uwobo/Servlet.java
This commit was manufactured by cvs2svn to create branch 'init'.
[helm.git] / helm / uwobo / src / it / unibo / cs / helm / uwobo / Servlet.java
diff --git a/helm/uwobo/src/it/unibo/cs/helm/uwobo/Servlet.java b/helm/uwobo/src/it/unibo/cs/helm/uwobo/Servlet.java
deleted file mode 100644 (file)
index d259c3f..0000000
+++ /dev/null
@@ -1,343 +0,0 @@
-/* Copyright (C) 2001, HELM Team
- *
- * This file is part of UWOBO, developed at the Computer Science
- * Department, University of Bologna, Italy.
- * 
- * UWOBO is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * UWOBO is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with UWOBO; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA  02111-1307, USA.
- *
- * For details, see the UWOBO World-Wide-Web page,
- * http://cs.unibo.it/helm/uwobo
- */
-
-package it.unibo.cs.helm.uwobo;
-
-import java.io.*;
-import java.util.*;
-import javax.servlet.*;
-import javax.servlet.http.*;
-import javax.xml.transform.*;
-import org.xml.sax.*;
-
-// WARNING: next comment is obsolete!!!!!
-/*
-*
-* usage:
-*   http://hostname/helm/servlet/uwobo/help
-*   http://hostname/helm/servlet/uwobo/add?bind=key,stylesheet[&bind=key,stylesheet]*
-*   http://hostname/helm/servlet/uwobo/remove[?keys=key_1,...,key_n]
-*   http://hostname/helm/servlet/uwobo/list
-*   http://hostname/helm/servlet/uwobo/reload[?keys=key_1,...,key_n]
-*   http://hostname/helm/servlet/uwobo/apply?xmluri=xmldata&keys=key_1,...,key_n[&param.name=value]*[&param.key.name=value]*[&prop.name=[value]]*
-*
-* example:
-*   http://aristotele/helm/servlet/uwobo/add?bind=foo1,file:///D:/Archivio/Progetti/helm/resources/xsl/foo1.xsl
-*   http://aristotele/helm/servlet/uwobo/add?bind=foo2,file:///D:/Archivio/Progetti/helm/resources/xsl/foo2.xsl
-*   http://aristotele/helm/servlet/uwobo/apply?xmluri=file:///D:/Archivio/Progetti/helm/resources/xsl/foo.xml&keys=foo1,foo2
-*
-* installation notes (Tomcat):
-*      replace parser.jar and jaxp.jar from /lib with xerces.jar and add xalan.jar
-*
-*      add in conf/server.xml
-*              <Context path="/helm" 
-*                      docBase="webapps/helm" 
-*                      crossContext="false"
-*                      debug="0" 
-*                      reloadable="true" > 
-*              </Context>
-*
-*      add in uriworkermap.properties
-*              /helm/*=ajp12
-*
-*
-* @author The HELM team
-*/
-public class Servlet extends HttpServlet {
-   
-   public static final String[] usage = {
-      "http://<i>hostname</i>/helm/servlet/uwobo/help",
-      "http://<i>hostname</i>/helm/servlet/uwobo/add?bind=<i>key</i>,<i>stylesheet</i>[&bind=<i>key</i>,<i>stylesheet</i>]*",
-      "http://<i>hostname</i>/helm/servlet/uwobo/remove[?keys=<i>key_1,...,key_n</i>]",
-      "http://<i>hostname</i>/helm/servlet/uwobo/list",
-      "http://<i>hostname</i>/helm/servlet/uwobo/reload[?keys=<i>key_1,...,key_n</i>]",
-      "http://<i>hostname</i>/helm/servlet/uwobo/apply?xmluri=<i>xmldata</i>&keys=<i>key_1,...,key_n</i>[&param.<i>name</i>=<i>value</i>]*[&param.<i>key</i>.<i>name</i>=<i>value</i>]*[&prop.<i>name</i>=[<i>value</i>]]*"
-   };
-   public static final String help;
-          
-   static {
-      StringBuffer sb = new StringBuffer();
-      sb.append("<ul>");
-      for (int i=0; i<usage.length; i++)
-         sb.append("<li>").append(usage[i]).append("</li>");
-      sb.append("</ul>");
-      help = sb.toString();
-   }
-
-   private Server server;
-
-   public void init(ServletConfig config)
-   throws ServletException
-   {
-      super.init(config);
-
-      System.out.println("UWOBO init");
-      server = new Server();
-   }
-
-   private static String[] split(final String s, final String delim)
-   {
-      String[] res = {null}; 
-      if (s == null) return res;
-      StringTokenizer st = new StringTokenizer(s, delim);
-      res = new String[st.countTokens()];
-      for (int i = 0; i < res.length; i++) res[i] = st.nextToken();
-      return res;
-   }
-       
-   private static String[] split2(final String s, final String delim)
-   {
-      String[] res = new String[2];
-      StringTokenizer st = new StringTokenizer(s);
-      res[0] = st.nextToken(delim); res[1] = st.nextToken("").substring(1);
-      return res;
-   }
-
-   private void html_open(HttpServletResponse resp, ServletOutputStream out)
-   throws IOException
-   {  
-      resp.setContentType("text/html");
-      out.println("<html><body bgcolor=\"#ffffff\"><h1>" + server.PACKAGE + " servlet</h1>");
-   }
-   
-   private void html_close(ServletOutputStream out)
-   throws IOException
-   {
-      out.println("<p>done</p></body></html>");
-      out.close();
-   }
-
-   private String msg_out(String message)
-   {
-      return message+"<br />";
-   }
-   
-   private String exc_out(String message, Exception e)
-   {
-      if (message == null)
-      {
-        message = e.getClass().getName();
-        message = message.substring(message.lastIndexOf('.')+1);
-      }
-      String local = e.getLocalizedMessage();
-      local = local.substring(local.lastIndexOf(':')+1);
-      return "<b style=\"color: red\">"+message+": "+local+"</b><br />";
-   }
-   
-   public void doGet(HttpServletRequest request, HttpServletResponse response)
-   throws ServletException, IOException
-   {
-      ServletOutputStream out = response.getOutputStream();
-      String log = "";
-      
-      response.setHeader("Cache-Control", "no-cache");
-      response.setHeader("Pragma", "no-cache");
-      response.setHeader("Expires", "0");
-      System.out.println("UWOBO "+request.getPathInfo());
-               
-      try { 
-        final String cmd = request.getPathInfo();
-        if (cmd == null) { 
-           sendError(response, out, "unknown command", help); return;
-        } 
-        if (cmd.equals("/add")) {
-           final String[] xslkey = request.getParameterValues("bind");
-           if (xslkey == null) {
-              sendError(response, out, "bad parameters", usage[1]); return;
-           } 
-           html_open(response, out);
-           for (int i = 0; i < xslkey.length; i++) {
-              final String data[] = split2(xslkey[i], ",");
-              out.println(msg_out("adding stylesheet "+data[0]+" ("+data[1]+")"));
-              try {
-                 log = server.add(data[1], data[0]);
-                  if(!log.equals(""))
-                     out.println(msg_out(log));
-               } catch (TransformerConfigurationException tce) {
-                  out.println(exc_out("Stylesheet Error", tce));
-               } catch (Exception e) {
-                 out.println(exc_out(null, e));
-              }
-           }
-           html_close(out); return;
-        }
-        if (cmd.equals("/apply")) {
-           final String infile = request.getParameter("xmluri");
-           final String keys = request.getParameter("keys");
-
-           if (infile == null || keys == null) {
-              sendError(response, out, "bad parameters", usage[6]); return;
-           } 
-
-           final String[] keyName = split(keys, ",");
-           final Key[] keySeq = new Key[keyName.length];
-           for (int i = 0; i < keySeq.length; i++) {
-               keySeq[i] = new Key();
-              keySeq[i].name = keyName[i];
-              keySeq[i].params = new HashMap();
-           }
-
-           final Properties props = new Properties();
-           final Enumeration e = request.getParameterNames();
-           while (e.hasMoreElements()) {
-              String param = (String) e.nextElement();
-              if (param.startsWith("param.")) {
-                 final String name = param.substring(6);
-                 final String value = request.getParameter(param);
-                 final String[] keyParam = split(name, ".");
-                 if (keyParam.length == 1) {
-                    // this is a global parameter
-                    Server.log("global parameter: " + keyParam[0] + " = " + value);
-                    for (int i = 0; i < keySeq.length; i++)
-                       // we add the global parameter only if there is no
-                       // local parameter with the same name
-                       if (!keySeq[i].params.containsKey(keyParam[0]))
-                          keySeq[i].params.put(keyParam[0], value);
-                 } else
-                 if (keyParam.length == 2) {
-                    // this is a local parameter
-                    Server.log("local parameter: " + keyParam[0] + "." + keyParam[1] + " = " + value);
-                    for (int i = 0; i < keySeq.length; i++) {
-                       if (keySeq[i].name.equals(keyParam[0]))
-                          keySeq[i].params.put(keyParam[1], value);
-                    }
-                 } else { 
-                    sendError(response, out, "bad parameters", usage[6]); return;
-                 }
-              } else
-              if (param.startsWith("prop.")) {
-                 final String name = param.substring(5);
-                 final String value = request.getParameter(param);
-                 Server.log("property: " + name + " = " + value);
-                 props.setProperty(name, value);
-              }
-           }
-                                       
-           String contentType = props.getProperty(OutputKeys.MEDIA_TYPE);
-           if (contentType == null && keySeq.length > 0) 
-              contentType = server.getContentType(keySeq[keySeq.length - 1].name);
-           else if (contentType == null)
-              contentType = "text/xml";
-           response.setContentType(contentType);
-           Server.log("content type: " + contentType);
-
-           try {
-              out = response.getOutputStream(); 
-              server.apply(infile, out, keySeq, props);
-              out.close();
-           } catch (TransformerConfigurationException tce) {
-               sendError(response, out, exc_out("stylesheet error", tce), "");
-            } catch (Exception ee) {
-              sendError(response, out, exc_out(null, ee), "");
-            }
-           return;
-        }
-        if (cmd.equals("/remove")) {
-           final String key = request.getParameter("keys");
-           final String [] data = split(key, ",");
-           html_open(response, out);
-           for (int i = 0; i < data.length; i++) { 
-              if (data[i] == null) {
-                 out.println(msg_out("removing all keys"));
-                  ArrayList res;
-                 res = server.removeAll();
-                  Iterator j = res.iterator();
-                  while (j.hasNext())
-                     out.println(msg_out((String)j.next()));
-              } else {
-                 out.println(msg_out("removing key "+data[i]));
-                 out.println(msg_out(server.remove(data[i])));
-              }
-           }
-           html_close(out); return;
-        }
-        if (cmd.equals("/list")) {
-           html_open(response, out);
-           out.println("<p>stylesheet list:</p><ul>");
-           
-           Iterator i = server.list().iterator();
-            while (i.hasNext())
-              out.println("<li>"+i.next()+"</li>");
-           out.println("</ul>"); html_close(out); return;
-        }
-        if (cmd.equals("/reload")) {
-           final String key = request.getParameter("keys");
-           final String [] data = split(key, ",");
-           html_open(response, out);
-           for (int i = 0; i < data.length; i++) {
-              try {
-                 if (data[i] == null) {
-                    out.println(msg_out("reloading all keys"));
-                     ArrayList res;
-                    res = server.reloadAll();
-                     Iterator j = res.iterator();
-                     while(j.hasNext())
-                        out.println(msg_out((String)j.next()));
-                 } else {
-                    out.println(msg_out("reloading key "+data[i]));
-                    out.println(msg_out(server.reload(data[i])));
-                 }
-              } catch (TransformerConfigurationException tce) {
-                  out.println(exc_out("Stylesheet Error", tce));
-               } catch (Exception e) {
-                 out.println(exc_out(null, e));
-               }
-           }
-           html_close(out); return;
-        }
-        if (cmd.equals("/help")) {
-           html_open(response, out);
-           out.println("<h2>Version "+server.VERSION+"</h1>");
-           out.println("<b>compiled "+server.DATE+" at "+server.TIME.substring(0,2)+":"+server.TIME.substring(2)+"</b>");
-            if(Server.SERIALIZATION_DIR.equals("")) {
-               out.println("<p><b>Stylesheet serialization is off.</b>");
-               out.println("(To turn it on, choose a non-empty value for the " +
-                  "SERIALIZATION_DIR property.)</p>");
-            } else
-               out.println("<p><b>Serialized stylesheed are stored in &quot;" +
-                  Server.SERIALIZATION_DIR + "&quot;.</b></p>");
-           out.println("<p>usage:</p>"+help+"</body></html>");
-           html_close(out); return;
-        }
-        sendError(response, out, "unknown command", help); return;
-      } catch (Exception e) {
-        sendError(response, out, exc_out(null, e),"");
-        return;
-      }
-   }
-
-   private void sendError(HttpServletResponse resp, ServletOutputStream out, 
-                         String msg, String usage)
-   throws IOException 
-   {
-      html_open(resp, out);
-      out.println("<p>"+msg+"</p>usage: "+usage);
-      html_close(out);
-   }
-       
-   public String getServletInfo()
-   {
-      return "The UWOBO servlet";
-   }
-}