[Yanel-commits] rev 22827 - public/yanel/trunk/src/core/java/org/wyona/yanel/servlet

michi at wyona.com michi at wyona.com
Wed Feb 21 15:29:30 CET 2007


Author: michi
Date: 2007-02-21 15:29:28 +0100 (Wed, 21 Feb 2007)
New Revision: 22827

Modified:
   public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
global data added

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java	2007-02-21 14:12:37 UTC (rev 22826)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java	2007-02-21 14:29:28 UTC (rev 22827)
@@ -177,16 +177,26 @@
     public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         HttpSession session = request.getSession(true);
 
+        // Check for requests for global data
         Resource resource = getResource(request, response);
         String path = resource.getPath();
-        log.error("Realm path: " + path);
         if (path.indexOf("/" + reservedPrefix + "/") == 0) {
-            log.error("Global data: " + path);
             File globalFile = org.wyona.commons.io.FileUtil.file(servletContextRealPath, "htdocs" + File.separator + path.substring(reservedPrefix.length() + 2));
             if (globalFile.exists()) {
-                log.error("Global data: " + globalFile);
+                log.debug("Global data: " + globalFile);
+                // TODO: Set HTTP header (mime-type, size, etc.)
+                byte buffer[] = new byte[8192];
+                int bytesRead;
+                InputStream in = new java.io.FileInputStream(globalFile);
+                OutputStream out = response.getOutputStream();
+                while ((bytesRead = in.read(buffer)) != -1) {
+                    out.write(buffer, 0, bytesRead);
+                }
+                return;
             } else {
                 log.error("No such file or directory: " + globalFile);
+                response.setStatus(javax.servlet.http.HttpServletResponse.SC_NOT_FOUND);
+                return;
             }
         }
 
@@ -204,12 +214,14 @@
             }
         }
 
+        // Check for requests refered by WebDAV
         String yanelWebDAV = request.getParameter("yanel.webdav");
         if(yanelWebDAV != null && yanelWebDAV.equals("propfind1")) {
             log.error("DEBUG: WebDAV client (" + request.getHeader("User-Agent") + ") requests to \"edit\" a resource: " + resource.getRealm() + ", " + resource.getPath());
             //return;
         }
 
+        // Possibly embed toolbar
         String toolbar = (String) session.getAttribute(TOOLBAR_KEY);
         if (toolbar != null && toolbar.equals("on")) {
             String mimeType = null;




More information about the Yanel-commits mailing list