[Yanel-commits] rev 43139 - public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet

michi at wyona.com michi at wyona.com
Fri Jun 5 15:13:49 CEST 2009


Author: michi
Date: 2009-06-05 15:13:48 +0200 (Fri, 05 Jun 2009)
New Revision: 43139

Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
introspection moved into separate method

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2009-06-05 12:54:19 UTC (rev 43138)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2009-06-05 13:13:48 UTC (rev 43139)
@@ -625,29 +625,9 @@
         }
         // END first try
 
-        // TODO: Move this introspection generation somewhere else ...
         // START introspection generation
-        try {
-            if (usecase != null && usecase.equals("introspection")) {
-                if (ResourceAttributeHelper.hasAttributeImplemented(res, "Introspectable", "1")) {
-                    String introspection = ((IntrospectableV1)res).getIntrospection();
-                    response.setContentType("application/xml");
-                    response.setStatus(javax.servlet.http.HttpServletResponse.SC_OK);
-                    response.getWriter().print(introspection);
-                } else {
-                    String message = "Resource is not introspectable.";
-                    Element exceptionElement = (Element) rootElement.appendChild(doc.createElementNS(NAMESPACE, "exception"));
-                    exceptionElement.appendChild(doc.createTextNode(message));
-                    setYanelOutput(request, response, doc);
-                }
-                return;
-            }
-        } catch(Exception e) {
-            log.error(e.getMessage(), e);
-            Element exceptionElement = (Element) rootElement.appendChild(doc.createElementNS(NAMESPACE, "exception"));
-            exceptionElement.appendChild(doc.createTextNode(e.getMessage()));
-            response.setStatus(javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-            setYanelOutput(request, response, doc);
+        if (usecase != null && usecase.equals("introspection")) {
+            sendIntrospectionAsResponse(res, doc, rootElement, request, response);
             return;
         }
         // END introspection generation
@@ -2265,4 +2245,31 @@
     private String getClientAuthenticationScheme(HttpServletRequest request) {
         return request.getHeader("WWW-Authenticate");
     }
+
+    /**
+     * Respond with introspection
+     */
+    private void sendIntrospectionAsResponse(Resource res, Document doc, Element rootElement, HttpServletRequest request, HttpServletResponse response) throws ServletException {
+        try {
+            if (ResourceAttributeHelper.hasAttributeImplemented(res, "Introspectable", "1")) {
+                String introspection = ((IntrospectableV1)res).getIntrospection();
+                response.setContentType("application/xml");
+                response.setStatus(javax.servlet.http.HttpServletResponse.SC_OK);
+                response.getWriter().print(introspection);
+            } else {
+                String message = "Resource is not introspectable.";
+                Element exceptionElement = (Element) rootElement.appendChild(doc.createElementNS(NAMESPACE, "exception"));
+                exceptionElement.appendChild(doc.createTextNode(message));
+                setYanelOutput(request, response, doc);
+            }
+            return;
+        } catch(Exception e) {
+            log.error(e.getMessage(), e);
+            Element exceptionElement = (Element) rootElement.appendChild(doc.createElementNS(NAMESPACE, "exception"));
+            exceptionElement.appendChild(doc.createTextNode(e.getMessage()));
+            response.setStatus(javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+            setYanelOutput(request, response, doc);
+            return;
+        }
+    }
 }



More information about the Yanel-commits mailing list