Author: crossley Date: Wed Dec 11 13:57:21 2013 New Revision: 1550140 URL: http://svn.apache.org/r1550140 Log: Enable per-project configuration of Cocoon error handling. Issue: FOR-1245
Added: forrest/trunk/main/webapp/resources/stylesheets/exception-to-text.xsl - copied, changed from r1546505, forrest/trunk/main/webapp/resources/stylesheets/exception-to-html.xsl Modified: forrest/trunk/main/webapp/WEB-INF/logkit.xconf forrest/trunk/main/webapp/sitemap.xmap forrest/trunk/site-author/content/xdocs/docs_0_100/faq.xml forrest/trunk/site-author/content/xdocs/site.xml forrest/trunk/site-author/status.xml Modified: forrest/trunk/main/webapp/WEB-INF/logkit.xconf URL: http://svn.apache.org/viewvc/forrest/trunk/main/webapp/WEB-INF/logkit.xconf?rev=1550140&r1=1550139&r2=1550140&view=diff ============================================================================== --- forrest/trunk/main/webapp/WEB-INF/logkit.xconf (original) +++ forrest/trunk/main/webapp/WEB-INF/logkit.xconf Wed Dec 11 13:57:21 2013 @@ -102,6 +102,14 @@ <append>false</append> </cocoon> + <cocoon id="exception"> + <filename>${context-root}/WEB-INF/logs/exception.log</filename> + <format type="cocoon"> + %7.7{priority} %{time} [%{category}] (%{uri}): %{message}\n%{throwable} + </format> + <append>false</append> + </cocoon> + <cocoon id="idgen"> <filename>${context-root}/WEB-INF/logs/idgen.log</filename> <format type="cocoon"> @@ -246,6 +254,10 @@ <log-target id-ref="linkrewriter"/> <log-target id-ref="error"/> </category> + <category name="handled-errors" log-level="INFO"> + <log-target id-ref="exception"/> + <log-target id-ref="error"/> + </category> <log-target id-ref="sitemap"/> <log-target id-ref="error"/> Copied: forrest/trunk/main/webapp/resources/stylesheets/exception-to-text.xsl (from r1546505, forrest/trunk/main/webapp/resources/stylesheets/exception-to-html.xsl) URL: http://svn.apache.org/viewvc/forrest/trunk/main/webapp/resources/stylesheets/exception-to-text.xsl?p2=forrest/trunk/main/webapp/resources/stylesheets/exception-to-text.xsl&p1=forrest/trunk/main/webapp/resources/stylesheets/exception-to-html.xsl&r1=1546505&r2=1550140&rev=1550140&view=diff ============================================================================== --- forrest/trunk/main/webapp/resources/stylesheets/exception-to-html.xsl (original) +++ forrest/trunk/main/webapp/resources/stylesheets/exception-to-text.xsl Wed Dec 11 13:57:21 2013 @@ -17,37 +17,19 @@ --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:ex="http://apache.org/cocoon/exception/1.0"> - <xsl:template match="/"> - <html> - <head> - <title>Exception</title> - </head> - <body> - <xsl:apply-templates/> - </body> - </html> - </xsl:template> + xmlns:ex="http://apache.org/cocoon/exception/1.0" + exclude-result-prefixes="ex"> + <xsl:param name="type"/> <xsl:template match="ex:exception-report"> <xsl:choose> <xsl:when test="contains(ex:message, '(Access is denied)')"> - <h1>An Error Occurred</h1> - <p> - It looks like there is a problem with an unresolved hint in the your - locationmap. - </p> - <p> - More information can be found in the logs. - </p> + <xsl:text>It looks like there is a problem with an unresolved hint in your locationmap.</xsl:text> + </xsl:when> + <xsl:when test="contains(ex:message, '(No such file')"> + <xsl:text>No such source content.</xsl:text> </xsl:when> <xsl:otherwise> - <h1>An Error Occurred</h1> - <p> - <xsl:value-of select="ex:message"/> - </p> - <p> - More information can be found in the logs. - </p> + <xsl:value-of select="ex:message"/> </xsl:otherwise> </xsl:choose> </xsl:template> Modified: forrest/trunk/main/webapp/sitemap.xmap URL: http://svn.apache.org/viewvc/forrest/trunk/main/webapp/sitemap.xmap?rev=1550140&r1=1550139&r2=1550140&view=diff ============================================================================== --- forrest/trunk/main/webapp/sitemap.xmap (original) +++ forrest/trunk/main/webapp/sitemap.xmap Wed Dec 11 13:57:21 2013 @@ -223,8 +223,9 @@ $Revision: 1.12 $ <map:selectors> <map:selector name="exists" logger="sitemap.selector.exists" src="org.apache.forrest.sourceexists.SourceExistsSelector" /> - <map:selector name="exception" src="org.apache.cocoon.selection.ExceptionSelector"> + <map:selector name="exception" logger="sitemap.selector.exception" src="org.apache.cocoon.selection.ExceptionSelector"> <exception name="resourceNotFound" class="org.apache.cocoon.ResourceNotFoundException"/> + <exception name="transformer" class="javax.xml.transform.TransformerException"/> <exception class="java.lang.Throwable" unroll="true"/> </map:selector> <map:selector name="config" logger="sitemap.selector.config" @@ -638,16 +639,7 @@ $Revision: 1.12 $ <map:redirect-to uri="index.html"/> </map:match> </map:pipeline> -<!-- - <map:handle-errors> - <map:select type="exception"> - <map:when test="resourceNotFound"> - <map:generate type="exception"/> - <map:transform src="{lm:transform.exception.html}"/> - <map:serialize type="html"/> - </map:when> - </map:select> - </map:handle-errors> - --> +<!-- Enable Cocoon error handling. See FOR-1245. --> + &handle-errors; </map:pipelines> </map:sitemap> Modified: forrest/trunk/site-author/content/xdocs/docs_0_100/faq.xml URL: http://svn.apache.org/viewvc/forrest/trunk/site-author/content/xdocs/docs_0_100/faq.xml?rev=1550140&r1=1550139&r2=1550140&view=diff ============================================================================== --- forrest/trunk/site-author/content/xdocs/docs_0_100/faq.xml (original) +++ forrest/trunk/site-author/content/xdocs/docs_0_100/faq.xml Wed Dec 11 13:57:21 2013 @@ -1313,6 +1313,50 @@ X [0] /docs_0_80/upgrading_08.ht </p> </answer> </faq> + <faq id="handle-errors"> + <question>How to enable Cocoon error handling?</question> + <answer> + <p> + When Cocoon encounters an exception then it will present a default + page to explain the error. Better error handling can be configured + by adding a "map:handle-errors" section to each sitemap from which + such exceptions might arise. + </p> + <p> + That is easily added directly to your project sitemap for any + special processing. + However for many cases it needs to be added to the main + webapp/sitemap.xmap file. + </p> + <p> + Do this by adding a "handle-errors" xml entity to your project + "symbols" file (<a href="#sitemap-entities">explained above</a>). + For example: + </p> + <source> +<![CDATA[<!ENTITY handle-errors ' + <map:handle-errors> + <map:select type="exception"> + <map:when test="resourceNotFound"> + <map:generate type="exception"/> + <map:transform src="{lm:transform.exception.text}"> + <map:parameter name="type" value="404"/> + </map:transform> + <map:serialize type="text" status-code="404"/> + </map:when> + </map:select> + </map:handle-errors> +'>]]></source> + <p> + Some exception selectors are configured in webapp/sitemap.xmap file + at the "map:selectors" section. + Please send patches for others if you need them to be added. + </p> + <p> + See further <a href="http://s.apache.org/b8V">exxplanation</a>. + </p> + </answer> + </faq> <faq id="svn-eol-style"> <question>Why are there SVN diffs for some documents, even though they have not changed?</question> <answer> Modified: forrest/trunk/site-author/content/xdocs/site.xml URL: http://svn.apache.org/viewvc/forrest/trunk/site-author/content/xdocs/site.xml?rev=1550140&r1=1550139&r2=1550140&view=diff ============================================================================== --- forrest/trunk/site-author/content/xdocs/site.xml (original) +++ forrest/trunk/site-author/content/xdocs/site.xml Wed Dec 11 13:57:21 2013 @@ -340,6 +340,7 @@ <run_port href="#run_port"/> <single-document href="#single-document"/> <sitemap-entities href="#sitemap-entities"/> + <handle-errors href="#handle-errors"/> <svn-eol-style href="#svn-eol-style"/> <tab-index href="#tab-index"/> <cli-xconf href="#cli-xconf"/> Modified: forrest/trunk/site-author/status.xml URL: http://svn.apache.org/viewvc/forrest/trunk/site-author/status.xml?rev=1550140&r1=1550139&r2=1550140&view=diff ============================================================================== --- forrest/trunk/site-author/status.xml (original) +++ forrest/trunk/site-author/status.xml Wed Dec 11 13:57:21 2013 @@ -153,6 +153,11 @@ Added document to facilitate <link href="site:upgrading_010">upgrading to v0.10-dev</link> </action> +<!-- 2013-12 --> + <action context="code" type="add" dev="DC" fixes-bug="FOR-1245"> + Enable per-project configuration of Cocoon error handling. + Added an <link href="site:faq/handle-errors">FAQ</link>. + </action> <!-- 2013-11 --> <action context="code" type="update" dev="DC"> Updated JSch to v0.1.50