You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2008/09/02 16:01:09 UTC

svn commit: r691249 - in /incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/helpers: HtmlRendererServlet.java PlainTextRendererServlet.java

Author: cziegeler
Date: Tue Sep  2 07:01:07 2008
New Revision: 691249

URL: http://svn.apache.org/viewvc?rev=691249&view=rev
Log:
Return no content if content can't be rendered, only render surrounding html if the request is not included.

Modified:
    incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/helpers/HtmlRendererServlet.java
    incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/helpers/PlainTextRendererServlet.java

Modified: incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/helpers/HtmlRendererServlet.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/helpers/HtmlRendererServlet.java?rev=691249&r1=691248&r2=691249&view=diff
==============================================================================
--- incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/helpers/HtmlRendererServlet.java (original)
+++ incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/helpers/HtmlRendererServlet.java Tue Sep  2 07:01:07 2008
@@ -22,7 +22,9 @@
 import java.util.Map;
 
 import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletResponse;
 
+import org.apache.sling.api.SlingConstants;
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.api.resource.Resource;
@@ -56,22 +58,44 @@
 
         final PrintWriter pw = resp.getWriter();
 
-        pw.println("<html><body>");
-        pw.println("<h1>Resource dumped by " + getClass().getSimpleName() + "</h1>");
-        pw.println("<p>Resource path: <b>" + r.getPath() + "</b></p>");
-        pw.println("<p>Resource metadata: <b>" + r.getResourceMetadata()
-            + "</b></p>");
+        final boolean isIncluded = req.getAttribute(SlingConstants.ATTR_REQUEST_SERVLET) != null;
 
         @SuppressWarnings("unchecked")
         final Map map = r.adaptTo(Map.class);
         if ( map != null ) {
+            printProlog(pw, isIncluded);
+            printResourceInfo(pw, r);
             render(pw, r, map);
+            printEpilog(pw, isIncluded);
         } else if ( r.adaptTo(String.class) != null ) {
+            printProlog(pw, isIncluded);
+            printResourceInfo(pw, r);
             render(pw, r, r.adaptTo(String.class));
+            printEpilog(pw, isIncluded);
         } else {
-            pw.println("<p>Resource can't be adapted to a map or a string.</p>");
+            if ( !isIncluded ) {
+                resp.sendError(HttpServletResponse.SC_NO_CONTENT); // NO Content
+            }
         }
-        pw.println("</body></html>");
+    }
+
+    private void printProlog(PrintWriter pw, boolean isIncluded) {
+        if ( !isIncluded ) {
+            pw.println("<html><body>");
+        }
+    }
+
+    private void printEpilog(PrintWriter pw, boolean isIncluded) {
+        if ( !isIncluded ) {
+            pw.println("</body></html>");
+        }
+    }
+
+    private void printResourceInfo(PrintWriter pw, Resource r) {
+        pw.println("<h1>Resource dumped by " + getClass().getSimpleName() + "</h1>");
+        pw.println("<p>Resource path: <b>" + r.getPath() + "</b></p>");
+        pw.println("<p>Resource metadata: <b>" + r.getResourceMetadata()
+            + "</b></p>");
     }
 
     @SuppressWarnings("unchecked")

Modified: incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/helpers/PlainTextRendererServlet.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/helpers/PlainTextRendererServlet.java?rev=691249&r1=691248&r2=691249&view=diff
==============================================================================
--- incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/helpers/PlainTextRendererServlet.java (original)
+++ incubator/sling/trunk/servlets/get/src/main/java/org/apache/sling/servlets/get/helpers/PlainTextRendererServlet.java Tue Sep  2 07:01:07 2008
@@ -22,6 +22,7 @@
 import java.util.Map;
 
 import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletResponse;
 
 import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
@@ -60,12 +61,6 @@
         resp.setCharacterEncoding("UTF-8");
 
         final PrintWriter pw = resp.getWriter();
-        renderResource(pw, r);
-    }
-
-    /** Render a resource (map or string) */
-    private void renderResource(PrintWriter pw, Resource r)
-            throws ServletException {
         @SuppressWarnings("unchecked")
         final Map map = r.adaptTo(Map.class);
         if ( map != null ) {
@@ -73,8 +68,7 @@
         } else if ( r.adaptTo(String.class) != null ) {
             printPropertyValue(pw, ResourceUtil.getName(r), r.adaptTo(String.class), false);
         } else {
-            throw new ServletException("Resource " + r
-                + " does not adapt to a map or string.");
+            resp.sendError(HttpServletResponse.SC_NO_CONTENT);
         }
     }