[Yanel-commits] rev 20676 - in public/yanel/trunk/src: core/java/org/wyona/yanel/servlet webapp webapp/xslt

simon at wyona.com simon at wyona.com
Fri Dec 8 11:34:41 CET 2006


Author: simon
Date: 2006-12-08 11:34:39 +0100 (Fri, 08 Dec 2006)
New Revision: 20676

Added:
   public/yanel/trunk/src/webapp/xslt/
   public/yanel/trunk/src/webapp/xslt/xmlInfo2xhtml.xsl
Modified:
   public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
adds a xslt for the error page. fixes bug#5081. thanks to paloma!

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	2006-12-08 08:41:39 UTC (rev 20675)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/servlet/YanelServlet.java	2006-12-08 10:34:39 UTC (rev 20676)
@@ -1,5 +1,6 @@
 package org.wyona.yanel.servlet;
 
+import java.io.File;
 import java.io.BufferedReader;
 import java.io.InputStream;
 import java.io.IOException;
@@ -16,6 +17,9 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamSource;
 
 import org.wyona.yanel.core.Path;
 import org.wyona.yanel.core.Resource;
@@ -1208,8 +1212,10 @@
     private void setYanelOutput(HttpServletResponse response, Document doc) throws ServletException {
         response.setContentType("application/xml");
         try {
-            javax.xml.transform.TransformerFactory.newInstance().newTransformer().transform(new javax.xml.transform.dom.DOMSource(doc), new javax.xml.transform.stream.StreamResult(response.getWriter()));
-
+            File xsltFile = org.wyona.commons.io.FileUtil.file(config.getServletContext().getRealPath("/"), "xslt" + File.separator + "xmlInfo2xhtml.xsl");
+            Transformer transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(xsltFile));
+            transformer.transform(new javax.xml.transform.dom.DOMSource(doc), new javax.xml.transform.stream.StreamResult(response.getWriter()));
+             
 /*
             OutputStream out = response.getOutputStream();
             javax.xml.transform.TransformerFactory.newInstance().newTransformer().transform(new javax.xml.transform.dom.DOMSource(doc), new javax.xml.transform.stream.StreamResult(out));

Added: public/yanel/trunk/src/webapp/xslt/xmlInfo2xhtml.xsl
===================================================================
--- public/yanel/trunk/src/webapp/xslt/xmlInfo2xhtml.xsl	2006-12-08 08:41:39 UTC (rev 20675)
+++ public/yanel/trunk/src/webapp/xslt/xmlInfo2xhtml.xsl	2006-12-08 10:34:39 UTC (rev 20676)
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet version="1.0"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:xhtml="http://www.w3.org/1999/xhtml"
+  xmlns:i18n="http://apache.org/cocoon/i18n/2.1"
+  xmlns="http://www.w3.org/1999/xhtml"
+>
+
+  <xsl:output method="xhtml" encoding="UTF-8"/>
+  
+  <xsl:template match="/">
+    <html>
+      <head>
+        <title>
+          Yanel 
+          <xsl:if test="child::node()/exception">
+            <i18n:text>- An error occurred</i18n:text>
+          </xsl:if>
+      </title>
+      </head>      
+      <body>
+        <xsl:if test="child::node()/exception">
+          <h1>Yanel: An error occurred</h1>
+          <h2>Debugging Information</h2>
+        </xsl:if>
+        <p>
+          <h4>Servlet Context Real Path</h4>
+          <xsl:value-of select="child::node()/@servlet-context-real-path"/>
+        </p>
+        <xsl:apply-templates select="child::node()"/>
+      </body>
+      </html>
+  </xsl:template>
+  
+  <xsl:template match="request">
+    <p>
+    <h4>Request:</h4>
+    <ul>
+      <li>Servlet Path: <xsl:value-of select="@servlet-path"/></li>
+      <li>URI: <xsl:value-of select="@uri"/></li>
+    </ul>
+    </p>
+  </xsl:template>
+  
+  <xsl:template match="session">
+    <p>
+      <h4>Session:</h4>
+      <ul>
+        <li>Session ID: <xsl:value-of select="@id"/></li>
+        <xsl:for-each select="attribute">
+          <li><xsl:value-of select="@name"/><xsl:text>: </xsl:text> <xsl:value-of select="."/></li>
+        </xsl:for-each>
+      </ul>
+    </p>
+  </xsl:template>
+  
+  <xsl:template match="resource-type-identifier">
+    <p>
+      <h4> Resource Type Identifier:</h4>
+      <ul> 
+        <li>Namespace: <xsl:value-of select="@namespace"/></li>
+        <li>Local Name: <xsl:value-of select="@local-name"/></li>
+      </ul>
+    </p>   
+  </xsl:template>
+  
+  <xsl:template match="resource">
+    <p>
+      <h4>Resource:</h4>
+      <ul>
+        <li>View: <xsl:value-of select="view"/></li>
+        <xsl:if test="last-modified">
+          <li>Last Modified: <xsl:value-of select="last-modified"/></li>
+        </xsl:if>
+        <xsl:if test="revisions">
+          <li>Revisions: <xsl:apply-templates select="revisions"/></li>
+         </xsl:if>
+      </ul>
+    </p>    
+  </xsl:template>
+  
+  <xsl:template match="revisions">
+    <p>
+      <ul>
+        <xsl:for-each select="revision">
+          <li>Revision: <xsl:value-of select="."/></li>
+        </xsl:for-each>
+      </ul>
+    </p>
+  </xsl:template>
+  
+  <xsl:template match="no-resource-type-identifier">
+    <p>
+      <h4>No Resource Type Identifier:</h4>
+      <ul>
+        <li>Servlet Path: <xsl:value-of select="@servlet-path"/></li>
+      </ul>
+      </p>     
+  </xsl:template>
+  
+  <xsl:template match="exception">
+    <p>
+      <h4>Exception</h4>
+      <ul>
+        <xsl:if test="@status"><li>Status: <xsl:value-of select="@status"/></li></xsl:if>
+        <li>Error Message: 
+          <ul>
+            <li><xsl:value-of select="."/></li>
+          </ul>
+        </li>
+      </ul>
+    </p>
+  </xsl:template> 
+
+</xsl:stylesheet>
\ No newline at end of file




More information about the Yanel-commits mailing list