You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by bu...@apache.org on 2015/07/19 23:21:30 UTC

svn commit: r958985 [20/29] - in /websites/production/tapestry/content: ./ 2009/09/13/ 2009/10/27/ 2009/11/25/ 2010/07/18/ 2010/07/24/ 2010/10/11/ 2010/10/31/ 2010/11/18/ 2010/12/16/ 2010/12/17/ 2011/01/18/ 2011/03/23/ 2011/03/29/ 2011/03/30/ 2011/03/3...

Modified: websites/production/tapestry/content/news.html
==============================================================================
--- websites/production/tapestry/content/news.html (original)
+++ websites/production/tapestry/content/news.html Sun Jul 19 21:21:27 2015
@@ -57,19 +57,19 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><div id="bar"><p><br clear="none"> <strong>We think you will love Tapestry!</strong> Give us 20 minutes and <strong><a shape="rect" href="tapestry-tutorial.html">follow our tutorial</a></strong>.</p></div><p>&#160;</p><p>&#160;</p><div><p>&#160;</p><h2 id="News-News">News <a shape="rect" href="https://cwiki.apache.org/confluence/createrssfeed.action?types=blogpost&amp;spaces=TAPESTRY&amp;title=Apache+Tapestry+News+RSS+Feed&amp;labelString%3D&amp;sort=created&amp;maxResults=10&amp;timeSpan=12&amp;confirm=Create&amp;showContent=true&amp;showDiff=false"><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="news.data/Feed-icon.gif" data-image-src="/confluence/download/attachments/24185588/Feed-icon.gif?version=1&amp;modificationDate=1289228682000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="24346803" data-linked-resource
 -version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="Feed-icon.gif" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/gif" data-linked-resource-container-id="24185588" data-linked-resource-container-version="37"></span></a></h2><p>    
+<div id="ConfluenceContent"><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><div id="bar"><p><br clear="none"> <strong>We think you will love Tapestry!</strong> Give us 20 minutes and <strong><a shape="rect" href="tapestry-tutorial.html">follow our tutorial</a></strong>.</p></div><p>&#160;</p><p>&#160;</p><div><p>&#160;</p><h2 id="News-News">News <a shape="rect" href="https://cwiki.apache.org/confluence/createrssfeed.action?types=blogpost&amp;spaces=TAPESTRY&amp;title=Apache+Tapestry+News+RSS+Feed&amp;labelString%3D&amp;sort=created&amp;maxResults=10&amp;timeSpan=12&amp;confirm=Create&amp;showContent=true&amp;showDiff=false"><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" src="news.data/Feed-icon.gif"></span></a></h2><p>    
 
     
         
 </p><div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2015/01/19/tapestry-54-beta-26.html">Tapestry 5.4-beta-26</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Jan 19, 2015</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Jan 19, 2015</div>
             
         </div>
     
@@ -84,12 +84,12 @@
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~kaosko ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: kaosko" title="kaosko">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~kaosko">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: kaosko" title="kaosko">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2014/12/11/tapestry-538.html">Tapestry 5.3.8</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~kaosko ">Kalle Korhonen</a> posted on Dec 11, 2014</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~kaosko">Kalle Korhonen</a> posted on Dec 11, 2014</div>
             
         </div>
     
@@ -114,12 +114,12 @@ Tapestry 5.3.8 is the latest maintenance
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2014/09/25/tapestry-54-beta-22.html">Tapestry 5.4-beta-22</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Sep 25, 2014</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Sep 25, 2014</div>
             
         </div>
     
@@ -138,12 +138,12 @@ This release is available from the Maven
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2014/05/29/tapestry-54-beta-6.html">Tapestry 5.4-beta-6</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on May 29, 2014</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on May 29, 2014</div>
             
         </div>
     
@@ -163,12 +163,12 @@ While not an actual release candidate,&#
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~bobharner ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: bobharner" title="bobharner">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~bobharner">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: bobharner" title="bobharner">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2014/03/07/tapestry-54-beta-3-preview-now-available.html">Tapestry 5.4-beta-3 preview now available</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~bobharner ">Bob Harner</a> posted on Mar 07, 2014</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~bobharner">Bob Harner</a> posted on Mar 07, 2014</div>
             
         </div>
     
@@ -185,12 +185,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~bobharner ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: bobharner" title="bobharner">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~bobharner">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: bobharner" title="bobharner">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2014/02/23/tapestry-54-beta-3-preview-release-vote-underway.html">Tapestry 5.4-beta-3 preview release vote underway</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~bobharner ">Bob Harner</a> posted on Feb 23, 2014</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~bobharner">Bob Harner</a> posted on Feb 23, 2014</div>
             
         </div>
     
@@ -205,12 +205,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~mlusetti ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: mlusetti" title="mlusetti">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~mlusetti">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: mlusetti" title="mlusetti">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2013/04/29/announcing-tapestry-537.html">Announcing Tapestry 5.3.7</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~mlusetti ">Massimo Lusetti</a> posted on Apr 29, 2013</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~mlusetti">Massimo Lusetti</a> posted on Apr 29, 2013</div>
             
         </div>
     
@@ -225,12 +225,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~uli ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: uli" title="uli">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~uli">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: uli" title="uli">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2013/02/04/new-website-infrastructure.html">New Website Infrastructure</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~uli ">Ulrich St&#228;rk</a> posted on Feb 04, 2013</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~uli">Ulrich St&#228;rk</a> posted on Feb 04, 2013</div>
             
         </div>
     
@@ -245,12 +245,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2012/10/12/announcing-tapestry-536.html">Announcing Tapestry 5.3.6</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Oct 12, 2012</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Oct 12, 2012</div>
             
         </div>
     
@@ -265,12 +265,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2012/08/30/announcing-tapestry-535.html">Announcing Tapestry 5.3.5</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Aug 30, 2012</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Aug 30, 2012</div>
             
         </div>
     
@@ -285,12 +285,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2012/07/16/announcing-tapestry-534.html">Announcing Tapestry 5.3.4</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Jul 16, 2012</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Jul 16, 2012</div>
             
         </div>
     
@@ -305,12 +305,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2012/04/24/announcing-tapestry-533.html">Announcing Tapestry 5.3.3</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Apr 24, 2012</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Apr 24, 2012</div>
             
         </div>
     
@@ -325,12 +325,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2012/02/08/tapestry-on-heroku.html">Tapestry on Heroku</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Feb 08, 2012</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Feb 08, 2012</div>
             
         </div>
     
@@ -345,12 +345,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~mlusetti ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: mlusetti" title="mlusetti">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~mlusetti">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: mlusetti" title="mlusetti">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2012/02/07/announcing-tapestry-532.html">Announcing Tapestry 5.3.2</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~mlusetti ">Massimo Lusetti</a> posted on Feb 07, 2012</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~mlusetti">Massimo Lusetti</a> posted on Feb 07, 2012</div>
             
         </div>
     
@@ -365,12 +365,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~mlusetti ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: mlusetti" title="mlusetti">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~mlusetti">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: mlusetti" title="mlusetti">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2011/12/21/announcing-tapestry-531.html">Announcing Tapestry 5.3.1</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~mlusetti ">Massimo Lusetti</a> posted on Dec 21, 2011</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~mlusetti">Massimo Lusetti</a> posted on Dec 21, 2011</div>
             
         </div>
     
@@ -385,12 +385,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2011/11/23/announcing-tapestry-53.html">Announcing Tapestry 5.3</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Nov 23, 2011</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Nov 23, 2011</div>
             
         </div>
     
@@ -405,12 +405,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2011/10/31/tapestry-53-release-candidate.html">Tapestry 5.3 Release Candidate</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Oct 31, 2011</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Oct 31, 2011</div>
             
         </div>
     
@@ -425,12 +425,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="/confluence/pages/viewpage.action?pageId=27828095">Tapestry Feedback!</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Oct 03, 2011</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Oct 03, 2011</div>
             
         </div>
     
@@ -445,12 +445,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2011/08/27/tapestry-53-beta-preview.html">Tapestry 5.3 Beta Preview</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Aug 27, 2011</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Aug 27, 2011</div>
             
         </div>
     
@@ -465,12 +465,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2011/08/16/tapestry-53-exception-reporting.html">Tapestry 5.3 Exception Reporting</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Aug 16, 2011</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Aug 16, 2011</div>
             
         </div>
     
@@ -485,12 +485,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2011/07/29/tapestry-53-screencast.html">Tapestry 5.3 screencast</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Jul 29, 2011</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Jul 29, 2011</div>
             
         </div>
     
@@ -505,12 +505,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2011/06/29/526-maintenance-release.html">5.2.6 Maintenance Release</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Jun 29, 2011</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Jun 29, 2011</div>
             
         </div>
     
@@ -525,12 +525,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2011/06/24/first-alpha-of-53-now-available.html">First alpha of 5.3 now available</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Jun 24, 2011</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Jun 24, 2011</div>
             
         </div>
     
@@ -545,12 +545,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2011/06/13/tapestrys-performance-tested.html">Tapestry's Performance Tested</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Jun 13, 2011</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Jun 13, 2011</div>
             
         </div>
     
@@ -565,12 +565,12 @@ If you're using Maven (or Gradle or Ivy,
 <div class="blog-post-listing">
             <div class="logo-heading-block">
             <span class="logoBlock">
-                <a shape="rect" class="userLogoLink" href="    /confluence/display/~hlship ">
-               <img class="userLogo logo" src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
+                <a shape="rect" class="userLogoLink" href="https://cwiki.apache.org/confluence/display/~hlship">
+               <img class="userLogo logo" src="/images/confluence/icons/profilepics/default.png" alt="User icon: hlship" title="hlship">
            </a>            </span>
             <span class="blogHeading">
                 <a shape="rect" class="blogHeading" href="2011/04/20/tapestry-magic.html">Tapestry Magic</a>
-                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="    /confluence/display/~hlship ">Howard M. Lewis Ship</a> posted on Apr 20, 2011</div>
+                </span><div class="page-metadata not-personal">    <a shape="rect" class="url fn confluence-userlink" href="https://cwiki.apache.org/confluence/display/~hlship">Howard M. Lewis Ship</a> posted on Apr 20, 2011</div>
             
         </div>
     

Modified: websites/production/tapestry/content/object-providers.html
==============================================================================
--- websites/production/tapestry/content/object-providers.html (original)
+++ websites/production/tapestry/content/object-providers.html Sun Jul 19 21:21:27 2015
@@ -27,6 +27,16 @@
   </title>
   <link type="text/css" rel="stylesheet" href="/resources/space.css">
 
+    <link href='/resources/highlighter/styles/shCoreCXF.css' rel='stylesheet' type='text/css' />
+  <link href='/resources/highlighter/styles/shThemeCXF.css' rel='stylesheet' type='text/css' />
+  <script src='/resources/highlighter/scripts/shCore.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushJava.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushXml.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushPlain.js' type='text/javascript'></script>
+  <script type="text/javascript">
+  SyntaxHighlighter.defaults['toolbar'] = false;
+  SyntaxHighlighter.all();
+  </script>
 
   <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
 
@@ -57,15 +67,7 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><style type="text/css">/*<![CDATA[*/
-table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
-table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
-table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
-table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
-table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
-table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
-
-/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="injection-in-detail.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="injection-in-detail.html">Injection in Detail</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="ioc.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="ioc.html">IoC</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="service-serialization.html">Service Serialization</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="service-serialization.html"><img align="middl
 e" border="0" src="https://cwiki.apache.org/confluence/images/icons/forwd_16.gif" width="16" height="16"></a></td></tr></table></div>
+<div id="ConfluenceContent">
 
 <h1 id="ObjectProviders-ObjectProviders">Object Providers</h1>
 
@@ -86,11 +88,11 @@ Usually, the @Inject annotation is suppl
 <p>The Value annotation allows a literal value to be injected. When combined with <a shape="rect" href="symbols.html">symbols</a>, they represent a way for parts of the overall service network to be spot-configured. For example:</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
-  public MyService build(@Value(&quot;${max-seconds}&quot;) long maxSeconds)
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
+  public MyService build(@Value("${max-seconds}") long maxSeconds)
   {
     return new MyServiceImpl(maxSeconds);
-  }]]></script>
+  }</pre>
 </div></div>
 
 <p>Here, the MyService service requires a configuration of a number of seconds. The value is supplied as a symbol, with a factory default that may be overwritten with an application default.</p>
@@ -102,11 +104,11 @@ Usually, the @Inject annotation is suppl
 <p>This is closely related to the @Value annotation approach, except that the annotation directly specifies a symbol name.</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
-  public MyService build(@Symbol(&quot;max-seconds&quot;) long maxSeconds)
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
+  public MyService build(@Symbol("max-seconds") long maxSeconds)
   {
     return new MyServiceImpl(maxSeconds);
-  }]]></script>
+  }</pre>
 </div></div>
 
 <h1 id="ObjectProviders-ServiceProvider">Service Provider</h1>
@@ -128,26 +130,17 @@ Usually, the @Inject annotation is suppl
 <p>Example:</p>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
   public void contributeMasterObjectProvider(OrderedConfiguration&lt;ObjectProvider&gt; configuration)
   {
-    configuration.add(&quot;MyObject&quot;, new MyObjectProvider());
-  }]]></script>
+    configuration.add("MyObject", new MyObjectProvider());
+  }</pre>
 </div></div>
 
 <p>This establishes a name for the object provider (useful if the exact order of execution of the provider, relative to other providers, is relevant).</p>
 
 <p>Of course, this is a simplified example. In a real scenario, the provider is most likely a service with its own dependencies.</p>
-
-<style type="text/css">/*<![CDATA[*/
-table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
-table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
-table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
-table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
-table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
-table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
-
-/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="injection-in-detail.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="injection-in-detail.html">Injection in Detail</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="ioc.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="ioc.html">IoC</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="service-serialization.html">Service Serialization</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="service-serialization.html"><img align="middl
 e" border="0" src="https://cwiki.apache.org/confluence/images/icons/forwd_16.gif" width="16" height="16"></a></td></tr></table></div></div>
+</div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/ordering-by-constraints.html
==============================================================================
--- websites/production/tapestry/content/ordering-by-constraints.html (original)
+++ websites/production/tapestry/content/ordering-by-constraints.html Sun Jul 19 21:21:27 2015
@@ -27,6 +27,16 @@
   </title>
   <link type="text/css" rel="stylesheet" href="/resources/space.css">
 
+    <link href='/resources/highlighter/styles/shCoreCXF.css' rel='stylesheet' type='text/css' />
+  <link href='/resources/highlighter/styles/shThemeCXF.css' rel='stylesheet' type='text/css' />
+  <script src='/resources/highlighter/scripts/shCore.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushJava.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushXml.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushPlain.js' type='text/javascript'></script>
+  <script type="text/javascript">
+  SyntaxHighlighter.defaults['toolbar'] = false;
+  SyntaxHighlighter.all();
+  </script>
 
   <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
 
@@ -57,21 +67,13 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><style type="text/css">/*<![CDATA[*/
-table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
-table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
-table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
-table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
-table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
-table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
-
-/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="service-implementation-reloading.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="service-implementation-reloading.html">Service Implementation Reloading</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="ioc.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="ioc.html">IoC</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="symbols.html">Symbols</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="symbols.html"><img align="middle" 
 border="0" src="https://cwiki.apache.org/confluence/images/icons/forwd_16.gif" width="16" height="16"></a></td></tr></table></div>
+<div id="ConfluenceContent">
 
 <h1 id="OrderingbyConstraints-OrderingbyConstraints">Ordering by Constraints</h1>
 
 <p>Tapestry IoC has two specific areas where it must put some form of contribution into a specific order:</p>
 
-<ul><li><a shape="rect" href="tapestry-ioc-configuration.html#TapestryIoCConfiguration-Ordered_List">Ordered Configurations</a>, where different modules may contribute into a service's configuration</li><li><a shape="rect" href="tapestry-ioc-decorators.html">Service Decorators</a> which must be applied to services from a number of modules.<br clear="none">
+<ul><li><a shape="rect" href="tapestry-ioc-configuration.html">Ordered Configurations</a>, where different modules may contribute into a service's configuration</li><li><a shape="rect" href="tapestry-ioc-decorators.html">Service Decorators</a> which must be applied to services from a number of modules.<br clear="none">
 In both these cases, objects (either contributions to a configuration, or decorators) are assigning qualified IDs, simple IDs qualified with the containing/contributing module's ID.</li></ul>
 
 
@@ -97,16 +99,7 @@ In both these cases, objects (either con
 <p>Match patterns support a very simple kind of wildcard matching. A <code>*</code> (asterisk character) may appear at the start and/or end of the pattern, and it will match zero or more characters there. Thus you can have patterns such as <code>Data*</code> or <code>*Logic</code> or even <code>*User*</code>.</p>
 
 <p>Matching is <a shape="rect" href="case-insensitivity.html">case insensitive</a>.</p>
-
-<style type="text/css">/*<![CDATA[*/
-table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
-table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
-table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
-table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
-table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
-table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
-
-/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="service-implementation-reloading.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="service-implementation-reloading.html">Service Implementation Reloading</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="ioc.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="ioc.html">IoC</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="symbols.html">Symbols</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="symbols.html"><img align="middle" 
 border="0" src="https://cwiki.apache.org/confluence/images/icons/forwd_16.gif" width="16" height="16"></a></td></tr></table></div></div>
+</div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/overriding-exception-reporting.html
==============================================================================
--- websites/production/tapestry/content/overriding-exception-reporting.html (original)
+++ websites/production/tapestry/content/overriding-exception-reporting.html Sun Jul 19 21:21:27 2015
@@ -27,6 +27,16 @@
   </title>
   <link type="text/css" rel="stylesheet" href="/resources/space.css">
 
+    <link href='/resources/highlighter/styles/shCoreCXF.css' rel='stylesheet' type='text/css' />
+  <link href='/resources/highlighter/styles/shThemeCXF.css' rel='stylesheet' type='text/css' />
+  <script src='/resources/highlighter/scripts/shCore.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushJava.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushXml.js' type='text/javascript'></script>
+  <script src='/resources/highlighter/scripts/shBrushPlain.js' type='text/javascript'></script>
+  <script type="text/javascript">
+  SyntaxHighlighter.defaults['toolbar'] = false;
+  SyntaxHighlighter.all();
+  </script>
 
   <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
 
@@ -57,51 +67,43 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><style type="text/css">/*<![CDATA[*/
-table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color: #f0f0f0}
-table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
-table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
-table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
-table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
-table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}
-
-/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="default-parameter.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16" height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName" width="33%"><a shape="rect" href="default-parameter.html">Default Parameter</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="cookbook.html"><img align="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8" height="8"></a></sup><a shape="rect" href="cookbook.html">Cookbook</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="error-page-recipe.html">Error Page Recipe</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="error-page-recipe.html"><img align="middle" 
 border="0" src="https://cwiki.apache.org/confluence/images/icons/forwd_16.gif" width="16" height="16"></a></td></tr></table></div><h1 id="OverridingExceptionReporting-OverridingExceptionReporting">Overriding Exception Reporting</h1><div class="navmenu" style="float:right; background:#eee; margin:3px; padding:3px">
+<div id="ConfluenceContent"><h1 id="OverridingExceptionReporting-OverridingExceptionReporting">Overriding Exception Reporting</h1><div class="navmenu" style="float:right; background:#eee; margin:3px; padding:3px">
 <div class="error"><span class="error">Error formatting macro: contentbylabel: com.atlassian.confluence.api.service.exceptions.BadRequestException: Could not parse cql : null</span> </div></div><p>One of Tapestry's best features is its comprehensive exception reporting. The level of detail is impressive and useful.</p><p>Of course, one of the first questions anyone asks is "How do I turn it off?" This exception reporting is very helpful for developers but its easy to see it as terrifying for potential users. Not that you'd have have runtime exceptions in production, of course, but even so ...</p><h2 id="OverridingExceptionReporting-Version1:ReplacingtheExceptionReportPage">Version 1: Replacing the Exception Report Page</h2><p>Let's start with a page that fires an exception from an event handler method.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>ActionFail.tml</b></div><div class="codeContent 
 panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ &lt;html xmlns:t=&quot;http://tapestry.apache.org/schema/tapestry_5_4.xsd&quot; t:type=&quot;layout&quot; title=&quot;Action Fail&quot;&gt;
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;"> &lt;html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd" t:type="layout" title="Action Fail"&gt;
         &lt;p&gt;
-            &lt;t:actionlink t:id=&quot;fail&quot; class=&quot;btn btn-large btn-warning&quot;&gt;Click for Exception&lt;/t:actionlink&gt;
+            &lt;t:actionlink t:id="fail" class="btn btn-large btn-warning"&gt;Click for Exception&lt;/t:actionlink&gt;
         &lt;/p&gt;
-&lt;/html&gt;]]></script>
+&lt;/html&gt;</pre>
 </div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Index.java</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[package com.example.newapp.pages;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">package com.example.newapp.pages;
 
 public class ActionFail {
     void onActionFromFail() {
-        throw new RuntimeException(&quot;Failure inside action event handler.&quot;);
+        throw new RuntimeException("Failure inside action event handler.");
     }
 }
-]]></script>
-</div></div><p>With production mode disabled, clicking the link displays the default exception report page:</p><p><span class="confluence-embedded-file-wrapper image-center-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border image-center" width="500" src="overriding-exception-reporting.data/actionfail_-_top.png" data-image-src="/confluence/download/attachments/20645557/actionfail_-_top.png?version=1&amp;modificationDate=1428096039000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="55476331" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="actionfail_-_top.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="20645557" data-linked-resource-container-version="25"></span></p><p><span class="confluence-embedded-file-wrapper image-center-wrapper confluence-embedded-m
 anual-size"><img class="confluence-embedded-image confluence-content-image-border image-center" width="500" src="overriding-exception-reporting.data/Application_Exception.png" data-image-src="/confluence/download/attachments/20645557/Application_Exception.png?version=1&amp;modificationDate=1428096098000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="55476332" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="Application_Exception.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="20645557" data-linked-resource-container-version="25"></span></p><p>&#160;</p><p>The easy way to override the exception report is to provide an ExceptionReport page that overrides the one provided with the framework.</p><p>This is as easy as providing a page named "ExceptionReport". It must implement the <a shape="rect" class="external-link"
  href="http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry5/services/ExceptionReporter.html">ExceptionReporter</a> interface.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>ExceptionReport.tml</b></div><div class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[&lt;html t:type=&quot;layout&quot; title=&quot;Exception&quot;
-      xmlns:t=&quot;http://tapestry.apache.org/schema/tapestry_5_4.xsd&quot;&gt;
+</pre>
+</div></div><p>With production mode disabled, clicking the link displays the default exception report page:</p><p><span class="confluence-embedded-file-wrapper image-center-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border image-center" width="500" src="overriding-exception-reporting.data/actionfail_-_top.png"></span></p><p><span class="confluence-embedded-file-wrapper image-center-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border image-center" width="500" src="overriding-exception-reporting.data/Application_Exception.png"></span></p><p>&#160;</p><p>The easy way to override the exception report is to provide an ExceptionReport page that overrides the one provided with the framework.</p><p>This is as easy as providing a page named "ExceptionReport". It must implement the <a shape="rect" class="external-link" href="http://tapestry.apache.org/tapestry5/apidocs/org/a
 pache/tapestry5/services/ExceptionReporter.html">ExceptionReporter</a> interface.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>ExceptionReport.tml</b></div><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;html t:type="layout" title="Exception"
+      xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd"&gt;
 
 
-    &lt;div class=&quot;panel panel-danger&quot;&gt;
-        &lt;div class=&quot;panel-heading&quot;&gt;An exception has occurred.&lt;/div&gt;
-        &lt;div class=&quot;panel-body&quot;&gt;
+    &lt;div class="panel panel-danger"&gt;
+        &lt;div class="panel-heading"&gt;An exception has occurred.&lt;/div&gt;
+        &lt;div class="panel-body"&gt;
             ${message}
         &lt;/div&gt;
-        &lt;div class=&quot;panel-footer&quot;&gt;
-            &lt;t:pagelink page=&quot;index&quot; class=&quot;btn btn-default&quot;&gt;Home&lt;/t:pagelink&gt;
+        &lt;div class="panel-footer"&gt;
+            &lt;t:pagelink page="index" class="btn btn-default"&gt;Home&lt;/t:pagelink&gt;
         &lt;/div&gt;
 
     &lt;/div&gt;
 
 
 &lt;/html&gt;
-]]></script>
+</pre>
 </div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>ExceptionReport.java</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[package com.example.newapp.pages;
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">package com.example.newapp.pages;
 
 import org.apache.tapestry5.annotations.Property;
 import org.apache.tapestry5.services.ExceptionReporter;
@@ -119,18 +121,18 @@ public class ExceptionReport implements
             message = exception.getClass().getName();
     }
 }
-]]></script>
-</div></div><p>The end result is a customized exception report page.</p><p><span class="confluence-embedded-file-wrapper image-center-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border image-center" width="500" src="overriding-exception-reporting.data/customer_exception_report_-_open_1.png" data-image-src="/confluence/download/attachments/20645557/customer_exception_report_-_open_1.png?version=1&amp;modificationDate=1428096581000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="55476333" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="customer_exception_report_-_open_1.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="20645557" data-linked-resource-container-version="25"></span></p><h2 id="OverridingExceptionReporting-Version2:OverridingtheRequestExceptionH
 andler">Version 2: Overriding the RequestExceptionHandler</h2><p>The previous example will display a link back to the Index page of the application. Another alternative is to display the error &lt;on&gt; the Index page. This requires a different approach: overriding the service responsible for reporting request exceptions.</p><p>The service <a shape="rect" class="external-link" href="http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry5/services/RequestExceptionHandler.html">RequestExceptionHandler</a> is responsible for this.</p><p>By replacing the default implementation of this service with our own implementation, we can take control over exactly what happens when a request exception occurs.</p><p>We'll do this in two steps. First, we'll extend the Index page to serve as an ExceptionReporter. Second, we'll override the default RequestExceptionHandler to use the Index page instead of the ExceptionReport page. Of course, this is just one approach.</p><div class="code pan
 el pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Index.tml (partial)</b></div><div class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[ &lt;t:if test=&quot;message&quot;&gt;
-    &lt;div class=&quot;panel panel-danger&quot;&gt;
-        &lt;div class=&quot;panel-heading&quot;&gt;An exception has occurred.&lt;/div&gt;
-        &lt;div class=&quot;panel-body&quot;&gt;
+</pre>
+</div></div><p>The end result is a customized exception report page.</p><p><span class="confluence-embedded-file-wrapper image-center-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border image-center" width="500" src="overriding-exception-reporting.data/customer_exception_report_-_open_1.png"></span></p><h2 id="OverridingExceptionReporting-Version2:OverridingtheRequestExceptionHandler">Version 2: Overriding the RequestExceptionHandler</h2><p>The previous example will display a link back to the Index page of the application. Another alternative is to display the error &lt;on&gt; the Index page. This requires a different approach: overriding the service responsible for reporting request exceptions.</p><p>The service <a shape="rect" class="external-link" href="http://tapestry.apache.org/tapestry5/apidocs/org/apache/tapestry5/services/RequestExceptionHandler.html">RequestExceptionHandler</a> is responsible for this.</p><p>By repl
 acing the default implementation of this service with our own implementation, we can take control over exactly what happens when a request exception occurs.</p><p>We'll do this in two steps. First, we'll extend the Index page to serve as an ExceptionReporter. Second, we'll override the default RequestExceptionHandler to use the Index page instead of the ExceptionReport page. Of course, this is just one approach.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Index.tml (partial)</b></div><div class="codeContent panelContent pdl">
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;"> &lt;t:if test="message"&gt;
+    &lt;div class="panel panel-danger"&gt;
+        &lt;div class="panel-heading"&gt;An exception has occurred.&lt;/div&gt;
+        &lt;div class="panel-body"&gt;
             ${message}
         &lt;/div&gt;
     &lt;/div&gt;
- &lt;/t:if&gt;]]></script>
+ &lt;/t:if&gt;</pre>
 </div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Index.java</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[public class Index implements ExceptionReporter
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">public class Index implements ExceptionReporter
 {
 	@Property
 	private String message;
@@ -145,9 +147,9 @@ public class ExceptionReport implements
 	}
 
   ...
-}]]></script>
+}</pre>
 </div></div><p>The above defines a new property, message, on the Index page. The @Persist annotation indicates that values assigned to the field will persist from one request to another. The use of FLASH for the persistence strategy indicates that the value will be used until the next time the page renders, then the value will be discarded.</p><p>The message property is set from the thrown runtime exception.</p><p>The remaining changes take place inside AppModule.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>AppModule.java (partial)</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[    public RequestExceptionHandler buildAppRequestExceptionHandler(
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">    public RequestExceptionHandler buildAppRequestExceptionHandler(
             final Logger logger,
             final ResponseRenderer renderer,
             final ComponentSource componentSource)
@@ -156,13 +158,13 @@ public class ExceptionReport implements
         {
             public void handleRequestException(Throwable exception) throws IOException
             {
-                logger.error(&quot;Unexpected runtime exception: &quot; + exception.getMessage(), exception);
+                logger.error("Unexpected runtime exception: " + exception.getMessage(), exception);
 
-                ExceptionReporter index = (ExceptionReporter) componentSource.getPage(&quot;Index&quot;);
+                ExceptionReporter index = (ExceptionReporter) componentSource.getPage("Index");
 
                 index.reportException(exception);
 
-                renderer.renderPageMarkupResponse(&quot;Index&quot;);
+                renderer.renderPageMarkupResponse("Index");
             }
         };
     }
@@ -175,9 +177,9 @@ public class ExceptionReport implements
     {
         configuration.add(RequestExceptionHandler.class, handler);
     }
-]]></script>
-</div></div><p>First we define the new service using a service builder method. This is an alternative to the <code>bind()</code> method; we define the service, its interface type (the return type of the method) and the service id (the part that follows "build" is the method name) and provide the implementation inline. A service builder method must return the service implementation, here implemented as an inner class.</p><p>The Logger resource that is passed into the builder method is the Logger appropriate for the service. ResponseRenderer and ComponentSource are two services defined by Tapestry.</p><p>With this in place, there are now two different services that implement the RequestExceptionHandler interface: the default one built into Tapestry (whose service id is "RequestExceptionHandler") and the new one defined in this module, "AppRequestExceptionHandler"). Without a little more work, Tapestry will be unable to determine which one to use when an exception does occur.</p><p>Tap
 estry has a pipeline for resolving injected dependencies; the ServiceOverride service is one part of that pipeline. Contributions to it are used to override an existing service, when the injection is exclusively by type.</p><p>Here we inject the AppRequestExceptionHandler service and contribute it as the override for type RequestExceptionHandler. The @Local annotation is used to select the RequestHandler service defined by this module, AppModule. Once contributed into ServiceOverride, it becomes the default service injected throughout the Registry.</p><p>This finally brings us to the point where we can see the result:</p><p><span class="confluence-embedded-file-wrapper image-center-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border image-center" height="375" width="500" src="overriding-exception-reporting.data/index_as_excepton_report.png" data-image-src="/confluence/download/attachments/20645557/index_as_excepton_report.pn
 g?version=1&amp;modificationDate=1428096947000&amp;api=v2" data-unresolved-comment-count="0" data-linked-resource-id="55476334" data-linked-resource-version="1" data-linked-resource-type="attachment" data-linked-resource-default-alias="index_as_excepton_report.png" data-base-url="https://cwiki.apache.org/confluence" data-linked-resource-content-type="image/png" data-linked-resource-container-id="20645557" data-linked-resource-container-version="25"></span></p><h2 id="OverridingExceptionReporting-Version3:DecoratingtheRequestExceptionHandler">Version 3: Decorating the RequestExceptionHandler</h2><p>A third option is available: we don't define a <em>new</em> service, but instead <em>decorate</em> the existing RequestExceptionHandler service. This approach means we don't have to make a contribution to the ServiceOverride service.</p><p>Service decoration is a powerful facility of Tapestry that is generally used to "wrap" an existing service with an interceptor that provides new functio
 nality such as logging, security, transaction management or other cross-cutting concerns. The interceptor is an object that implements the same interface as the service being decorated, and usually delegates method invocations to it.</p><p>However, there's no requirement that an interceptor for a service actually invoke methods on the service; here we contribute a new implementation that <em>replaces</em> the original:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>AppModule.java (partial)</b></div><div class="codeContent panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[    public RequestExceptionHandler decorateRequestExceptionHandler(
+</pre>
+</div></div><p>First we define the new service using a service builder method. This is an alternative to the <code>bind()</code> method; we define the service, its interface type (the return type of the method) and the service id (the part that follows "build" is the method name) and provide the implementation inline. A service builder method must return the service implementation, here implemented as an inner class.</p><p>The Logger resource that is passed into the builder method is the Logger appropriate for the service. ResponseRenderer and ComponentSource are two services defined by Tapestry.</p><p>With this in place, there are now two different services that implement the RequestExceptionHandler interface: the default one built into Tapestry (whose service id is "RequestExceptionHandler") and the new one defined in this module, "AppRequestExceptionHandler"). Without a little more work, Tapestry will be unable to determine which one to use when an exception does occur.</p><p>Tap
 estry has a pipeline for resolving injected dependencies; the ServiceOverride service is one part of that pipeline. Contributions to it are used to override an existing service, when the injection is exclusively by type.</p><p>Here we inject the AppRequestExceptionHandler service and contribute it as the override for type RequestExceptionHandler. The @Local annotation is used to select the RequestHandler service defined by this module, AppModule. Once contributed into ServiceOverride, it becomes the default service injected throughout the Registry.</p><p>This finally brings us to the point where we can see the result:</p><p><span class="confluence-embedded-file-wrapper image-center-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border image-center" height="375" width="500" src="overriding-exception-reporting.data/index_as_excepton_report.png"></span></p><h2 id="OverridingExceptionReporting-Version3:DecoratingtheRequestExceptio
 nHandler">Version 3: Decorating the RequestExceptionHandler</h2><p>A third option is available: we don't define a <em>new</em> service, but instead <em>decorate</em> the existing RequestExceptionHandler service. This approach means we don't have to make a contribution to the ServiceOverride service.</p><p>Service decoration is a powerful facility of Tapestry that is generally used to "wrap" an existing service with an interceptor that provides new functionality such as logging, security, transaction management or other cross-cutting concerns. The interceptor is an object that implements the same interface as the service being decorated, and usually delegates method invocations to it.</p><p>However, there's no requirement that an interceptor for a service actually invoke methods on the service; here we contribute a new implementation that <em>replaces</em> the original:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bot
 tom-width: 1px;"><b>AppModule.java (partial)</b></div><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">    public RequestExceptionHandler decorateRequestExceptionHandler(
             final Logger logger,
             final ResponseRenderer renderer,
             final ComponentSource componentSource,
@@ -191,17 +193,17 @@ public class ExceptionReport implements
         {
             public void handleRequestException(Throwable exception) throws IOException
             {
-                logger.error(&quot;Unexpected runtime exception: &quot; + exception.getMessage(), exception);
+                logger.error("Unexpected runtime exception: " + exception.getMessage(), exception);
 
-                ExceptionReporter index = (ExceptionReporter) componentSource.getPage(&quot;Index&quot;);
+                ExceptionReporter index = (ExceptionReporter) componentSource.getPage("Index");
 
                 index.reportException(exception);
 
-                renderer.renderPageMarkupResponse(&quot;Index&quot;);
+                renderer.renderPageMarkupResponse("Index");
             }
         };
     }
-]]></script>
+</pre>
 </div></div><p>As with service builder methods and service configuration method, decorator methods are recognized by the "decorate" prefix on the method name. As used here, the rest of the method name is used to identify the service to be decorated (there are other options that allow a decorator to be applied to many different services).</p><p>A change in this version is that when in development mode (that is, when <em>not</em> in production mode) we use the normal implementation. Returning null from a service decoration method indicates that the decorator chooses not to decorate.</p><p>The Logger injected here is the Logger for the service being decorated, the default RequestExceptionHandler service.</p><p>Otherwise, we return an interceptor whose implementation is the same as the new service in version #2.</p><p>The end result is that in development mode we get the full exception report, and in production mode we get an abbreviated message on the application's Index page.</p></div
 >
 </div>