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

michi at wyona.com michi at wyona.com
Wed Mar 14 17:14:22 CET 2007


Author: michi
Date: 2007-03-14 17:14:21 +0100 (Wed, 14 Mar 2007)
New Revision: 23262

Modified:
   public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
introspection 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-03-14 09:47:53 UTC (rev 23261)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java	2007-03-14 16:14:21 UTC (rev 23262)
@@ -38,6 +38,7 @@
 import org.wyona.yanel.core.ResourceTypeIdentifier;
 import org.wyona.yanel.core.ResourceTypeRegistry;
 import org.wyona.yanel.core.Yanel;
+import org.wyona.yanel.core.api.attributes.IntrospectableV1;
 import org.wyona.yanel.core.api.attributes.ModifiableV1;
 import org.wyona.yanel.core.api.attributes.ModifiableV2;
 import org.wyona.yanel.core.api.attributes.VersionableV2;
@@ -505,6 +506,25 @@
                 return;
             }
 
+            // TODO: Move this introspection generation somewhere else ...
+            try {
+                    if (usecase != null && usecase.equals("introspection")) {
+                        if (ResourceAttributeHelper.hasAttributeImplemented(res, "Introspectable", "1")) {
+                            String introspection = ((IntrospectableV1)res).getIntrospection();
+                            response.setContentType("application/neutron+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);
+            }
 
 
         String meta = request.getParameter("yanel.resource.meta");




More information about the Yanel-commits mailing list