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/08/08 20:20:03 UTC

svn commit: r961174 [1/2] - in /websites/production/tapestry/content: ./ cache/

Author: buildbot
Date: Sat Aug  8 18:20:03 2015
New Revision: 961174

Log:
Production update by buildbot for tapestry

Modified:
    websites/production/tapestry/content/application-module-class-cheat-sheet.html
    websites/production/tapestry/content/cache/main.pageCache
    websites/production/tapestry/content/component-cheat-sheet.html
    websites/production/tapestry/content/logging-in-tapestry.html
    websites/production/tapestry/content/operation-tracker.html
    websites/production/tapestry/content/parallel-execution.html
    websites/production/tapestry/content/registry-startup.html
    websites/production/tapestry/content/request-processing.html
    websites/production/tapestry/content/starting-the-ioc-registry.html
    websites/production/tapestry/content/tapestry-for-jsf-users.html
    websites/production/tapestry/content/using-jsr-330-standard-annotations.html

Modified: websites/production/tapestry/content/application-module-class-cheat-sheet.html
==============================================================================
--- websites/production/tapestry/content/application-module-class-cheat-sheet.html (original)
+++ websites/production/tapestry/content/application-module-class-cheat-sheet.html Sat Aug  8 18:20:03 2015
@@ -31,8 +31,6 @@
   <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();
@@ -67,12 +65,12 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1437952782331 {padding: 0px;}
-div.rbtoc1437952782331 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1437952782331 li {margin-left: 0px;padding-left: 0px;}
+<div id="ConfluenceContent"><p>&#160;</p><p>The <strong>Application Module</strong> class is a simple Java class used to configure Tapestry. A system of annotations and naming conventions allows Tapestry to determine what services are provided by the module to your application. This is the place where you bind your custom implementation of services, contribute to, decorate and override existing services.</p><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1439057978181 {padding: 0px;}
+div.rbtoc1439057978181 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1439057978181 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1437952782331">
+/*]]>*/</style></p><div class="toc-macro rbtoc1439057978181">
 <ul class="toc-indentation"><li>Related Articles</li></ul>
 <ul><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Namingconventions">Naming conventions</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Thebindmethod">The bind method</a></li><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Servicebuildermethods">Service builder methods</a></li><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Contributemethods">Contribute methods</a>
@@ -83,7 +81,7 @@ div.rbtoc1437952782331 li {margin-left:
 </li><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Loadservicesonregistrystartup">Load services on registry startup</a></li><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Defineservicescope">Define service scope</a></li><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Disambiguateservices">Disambiguate services</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-WithserviceId">With service Id</a></li><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-WithMarkers">With Markers</a></li></ul>
 </li><li><a shape="rect" href="#ApplicationModuleClassCheatSheet-Overrideexistingservices">Override existing services</a></li></ul>
-</div><p>&#160;The <strong>Application Module</strong> class is a simple Java class used to configure Tapestry. A system of annotations and naming conventions allows Tapestry to determine what services are provided by the module to your application. This is the place where you bind your custom implementation of services, contribute to, decorate and override existing services.</p><div class="aui-label" style="float:right" title="Related Articles">
+</div><div class="aui-label" style="float:right" title="Related Articles">
 
 
 
@@ -209,7 +207,7 @@ public class MyAppModule
     configuration.add(myTuple);
 }
 </pre>
-</div></div><h3 id="ApplicationModuleClassCheatSheet-Decoratemethods">Decorate methods</h3><p><em>content under development</em></p><h2 id="ApplicationModuleClassCheatSheet-Annotations">Annotations</h2><p>Main Article: <a shape="rect" href="annotations.html">Annotations</a></p><p>Tapestry 5.2 comes with a set of annotations to better your understanding of module classes.</p><p><em>content under development</em></p><h2 id="ApplicationModuleClassCheatSheet-parameter-typesParametertypes"><span class="confluence-anchor-link" id="ApplicationModuleClassCheatSheet-parameter-types"></span>Parameter types</h2><p>These methods may have any number of parameters, tapestry will try to resolve each parameter value as a configuration element or a registry element.</p><h3 id="ApplicationModuleClassCheatSheet-Configurationparametertypes">Configuration parameter types</h3><p><em>content under development</em></p><h3 id="ApplicationModuleClassCheatSheet-Linktoservices">Link to services</h3><p><em>cont
 ent under development</em></p><h3 id="ApplicationModuleClassCheatSheet-Symbols">Symbols</h3><p>Main Article: <a shape="rect" href="symbols.html">Symbols</a></p><p><em>content under development</em></p><h2 id="ApplicationModuleClassCheatSheet-Loadservicesonregistrystartup">Load services on registry startup</h2><p><em>content under development</em></p><h2 id="ApplicationModuleClassCheatSheet-Defineservicescope">Define service scope</h2><p><em>content under development</em></p><h2 id="ApplicationModuleClassCheatSheet-Disambiguateservices">Disambiguate services</h2><p><em>content under development</em></p><h3 id="ApplicationModuleClassCheatSheet-WithserviceId">With service Id</h3><p><em>content under development</em></p><h3 id="ApplicationModuleClassCheatSheet-WithMarkers">With Markers</h3><p><em>content under development</em></p><h2 id="ApplicationModuleClassCheatSheet-Overrideexistingservices">Override existing services</h2><p><em>content under development</em></p></div>
+</div></div><h3 id="ApplicationModuleClassCheatSheet-Decoratemethods">Decorate methods</h3><p><em>content under development</em></p><h2 id="ApplicationModuleClassCheatSheet-Annotations">Annotations</h2><p>Main Article: <a shape="rect" href="annotations.html">Annotations</a></p><p>Tapestry 5.2 comes with a set of annotations to better your understanding of module classes.</p><p><em>content under development</em></p><h2 id="ApplicationModuleClassCheatSheet-parameter-typesParametertypes"><span class="confluence-anchor-link" id="ApplicationModuleClassCheatSheet-parameter-types"></span>Parameter types</h2><p>These methods may have any number of parameters, tapestry will try to resolve each parameter value as a configuration element or a registry element.</p><h3 id="ApplicationModuleClassCheatSheet-Configurationparametertypes">Configuration parameter types</h3><p><em>content under development</em></p><h3 id="ApplicationModuleClassCheatSheet-Linktoservices">Link to services</h3><p><em>cont
 ent under development</em></p><h3 id="ApplicationModuleClassCheatSheet-Symbols">Symbols</h3><p>Main Article: <a shape="rect" href="symbols.html">Symbols</a></p><p><em>content under development</em></p><h2 id="ApplicationModuleClassCheatSheet-Loadservicesonregistrystartup">Load services on registry startup</h2><p><em>content under development</em></p><h2 id="ApplicationModuleClassCheatSheet-Defineservicescope">Define service scope</h2><p><em>content under development</em></p><h2 id="ApplicationModuleClassCheatSheet-Disambiguateservices">Disambiguate services</h2><p><em>content under development</em></p><h3 id="ApplicationModuleClassCheatSheet-WithserviceId">With service Id</h3><p><em>content under development</em></p><h3 id="ApplicationModuleClassCheatSheet-WithMarkers">With Markers</h3><p><em>content under development</em></p><h2 id="ApplicationModuleClassCheatSheet-Overrideexistingservices">Override existing services</h2><p><em>content under development</em></p><p>&#160;</p><p></p>
 </div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/tapestry/content/component-cheat-sheet.html
==============================================================================
--- websites/production/tapestry/content/component-cheat-sheet.html (original)
+++ websites/production/tapestry/content/component-cheat-sheet.html Sat Aug  8 18:20:03 2015
@@ -31,8 +31,6 @@
   <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();
@@ -67,7 +65,7 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><p>This is a summary of the more common annotations and methods you can add to Tapestry pages and component classes.</p><div class="aui-label" style="float:right" title="Related Articles">
+<div id="ConfluenceContent"><p>&#160;</p><p>This is a summary of the more common annotations and methods you can add to Tapestry pages and component classes.</p><div class="aui-label" style="float:right" title="Related Articles">
 
 
 
@@ -163,7 +161,7 @@ public void setParam(MappedConfiguration
 public void setParam(MappedConfiguration&lt; String, String&gt; configuration){
   configuration.add(SymbolConstants.PRODUCTION_MODE, "false");
 }</pre>
-</div></div></li></ul><p></p></div>
+</div></div></li></ul><p>&#160;</p><p></p></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/logging-in-tapestry.html
==============================================================================
--- websites/production/tapestry/content/logging-in-tapestry.html (original)
+++ websites/production/tapestry/content/logging-in-tapestry.html Sat Aug  8 18:20:03 2015
@@ -30,9 +30,7 @@
     <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();
@@ -172,7 +170,7 @@
     &lt;/dependency&gt;
   &lt;/dependencies&gt;
 </pre>
-</div></div><p>This pulls out the log4j support normally included with Tapestry, and replaces it with the SLF4J library that wraps around JDK 1.4 logging.</p><p>In all likelihood, you'll replace <em>tapestry-ioc</em> with <em>tapestry-core</em> (assuming you are building a web application using Tapestry, rather than using Tapestry IoC as part of some other application). And, of course, version numbers change all the time!</p></div>
+</div></div><p>This pulls out the log4j support normally included with Tapestry, and replaces it with the SLF4J library that wraps around JDK 1.4 logging.</p><p>In all likelihood, you'll replace <em>tapestry-ioc</em> with <em>tapestry-core</em> (assuming you are building a web application using Tapestry, rather than using Tapestry IoC as part of some other application). And, of course, version numbers change all the time!</p><p>&#160;</p><p></p></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/operation-tracker.html
==============================================================================
--- websites/production/tapestry/content/operation-tracker.html (original)
+++ websites/production/tapestry/content/operation-tracker.html Sat Aug  8 18:20:03 2015
@@ -27,16 +27,6 @@
   </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"/>
 
@@ -106,7 +96,7 @@
                         
                     </div>
     </li></ul>
-</div><p>The <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/OperationTracker.html">OperationTracker</a> is a resource; it's actually a singleton, and is available for injection into any IoC service (or Tapestry component).</p><p>Using the OperationTracker you may run a Runnable, or invoke an Invokable (returning a typed response). &#160;Associated with the operation is a description string.</p><p>If there are no exceptions, then no problem.</p><p>If there &#160;are exceptions, then you'll see the console output logged at the point of the exception:</p><pre></pre><p>qtp644826761-13 [ERROR] Registry Operations trace:<br clear="none">qtp644826761-13 [ERROR] Registry [ 1] Handling page render request for page DatumEditor<br clear="none">qtp644826761-13 [ERROR] Registry [ 2] Constructing instance of page class org.apache.tapestry5.integration.app1.pages.DatumEditor<br clear="none">qtp644826761-13 [ERROR] Registry [ 3] Assem
 bling root component for page DatumEditor<br clear="none">qtp644826761-13 [ERROR] Registry [ 4] Running component class transformations on org.apache.tapestry5.integration.app1.pages.Datum<br clear="none">qtp644826761-13 [ERROR] RequestExceptionHandler Processing of request failed with uncaught exception: java.lang.RuntimeException: Exception assembling root component of page DatumEditor: Unable to instantiate instance of transformed class org.apache.tapestry5.integration.app1.pages.DatumEditor: java.lang.reflect.InvocationTargetException<br clear="none">java.lang.RuntimeException: Exception assembling root component of page DatumEditor: Unable to instantiate instance of transformed class org.apache.tapestry5.integration.app1.pages.DatumEditor: java.lang.reflect.InvocationTargetException<br clear="none">at org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.performAssembleRootComponent(ComponentAssemblerImpl.<a shape="rect" class="external-link" href="http://java:129" >jav
 a:129</a>)<br clear="none">at org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.access$000(ComponentAssemblerImpl.java:37)<br clear="none">at org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$1.invoke(ComponentAssemblerImpl.java:81)<br clear="none">at org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$1.invoke(ComponentAssemblerImpl.java:78)<br clear="none">at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:82)<br clear="none">at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:72)<br clear="none">at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.<a shape="rect" class="external-link" href="http://java:1258" >java:1258</a>)<br clear="none">at org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.assembleRootComponent(ComponentAssemblerImpl.java:76)<br clear="none">at org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageL
 oaderImpl.<a shape="rect" class="external-link" href="http://java:197" >java:197</a>)<br clear="none">at org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.<a shape="rect" class="external-link" href="http://java:190" >java:190</a>)<br clear="none">at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:82)<br clear="none">at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:72)<br clear="none">at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.<a shape="rect" class="external-link" href="http://java:1258" >java:1258</a>)<br clear="none">at org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.<a shape="rect" class="external-link" href="http://java:189" >java:189</a>)<br clear="none">at $PageLoader_13a0346ec83c4e52.loadPage(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.PageSourceImpl.getPage(PageSourceImpl.
 <a shape="rect" class="external-link" href="http://java:104" >java:104</a>)<br clear="none">at $PageSource_13a0346ec83c4e51.getPage(Unknown Source)<br clear="none">at $PageSource_13a0346ec83c4e50.getPage(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:86)<br clear="none">at $RequestPageCache_13a0346ec83c4e4f.get(Unknown Source)<br clear="none">at $RequestPageCache_13a0346ec83c4e4e.get(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:56)<br clear="none">at org.apache.tapestry5.modules.TapestryModule$34.handle(TapestryModule.<a shape="rect" class="external-link" href="http://java:1978" >java:1978</a>)<br clear="none">at $PageRenderRequestHandler_13a0346ec83c4f9c.handle(Unknown Source)<br clear="none">at $PageRenderRequestHandler_13a0346ec83c4f97.handle(Unknown Source)<br clear="none">at org.apache.tapestry5.internal
 .services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48)<br clear="none">at org.apache.tapestry5.internal.services.DeferredResponseRenderer.handlePageRender(DeferredResponseRenderer.java:52)<br clear="none">at $ComponentRequestFilter_13a0346ec83c4f95.handlePageRender(Unknown Source)<br clear="none">at $ComponentRequestHandler_13a0346ec83c4f98.handlePageRender(Unknown Source)<br clear="none">at org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47)<br clear="none">at $ComponentRequestFilter_13a0346ec83c4f94.handlePageRender(Unknown Source)<br clear="none">at $ComponentRequestHandler_13a0346ec83c4f98.handlePageRender(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.ProductionModeUnknownComponentFilter.handlePageRender(ProductionModeUnknownComponentFilter.java:62)<br clear="none">at $ComponentRequestFilter_13a0346ec83c4f93.handlePageRender(Unknown Source)<br clear=
 "none">at $ComponentRequestHandler_13a0346ec83c4f98.handlePageRender(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.RequestOperationTracker$2.run(RequestOperationTracker.java:73)<br clear="none">at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:56)<br clear="none">at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:60)<br clear="none">at org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.<a shape="rect" class="external-link" href="http://java:1252" >java:1252</a>)<br clear="none">at org.apache.tapestry5.internal.services.RequestOperationTracker.handlePageRender(RequestOperationTracker.java:66)<br clear="none">at $ComponentRequestFilter_13a0346ec83c4f92.handlePageRender(Unknown Source)<br clear="none">at $ComponentRequestHandler_13a0346ec83c4f98.handlePageRender(Unknown Source)<br clear="none">at $ComponentRequestHandler_13a0346ec83c4f81.handlePageRender(Unknown
  Source)<br clear="none">at org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:52)<br clear="none">at $Dispatcher_13a0346ec83c4f7f.dispatch(Unknown Source)<br clear="none">at $Dispatcher_13a0346ec83c4f80.dispatch(Unknown Source)<br clear="none">at $Dispatcher_13a0346ec83c4f74.dispatch(Unknown Source)<br clear="none">at org.apache.tapestry5.modules.TapestryModule$RequestHandlerTerminator.service(TapestryModule.<a shape="rect" class="external-link" href="http://java:304" >java:304</a>)<br clear="none">at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)<br clear="none">at $RequestFilter_13a0346ec83c4f73.service(Unknown Source)<br clear="none">at $RequestHandler_13a0346ec83c4f75.service(Unknown Source)<br clear="none">at org.apache.tapestry5.modules.TapestryModule$3.service(TapestryModule.<a shape="rect" class="external-link" href="http://java:854" >java:854</a>)<br clear="none">at $RequestHandler_1
 3a0346ec83c4f75.service(Unknown Source)<br clear="none">at org.apache.tapestry5.modules.TapestryModule$2.service(TapestryModule.<a shape="rect" class="external-link" href="http://java:844" >java:844</a>)<br clear="none">at $RequestHandler_13a0346ec83c4f75.service(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:89)<br clear="none">at $RequestHandler_13a0346ec83c4f75.service(Unknown Source)<br clear="none">at org.apache.tapestry5.integration.app1.services.AppModule$2.service(AppModule.<a shape="rect" class="external-link" href="http://java:111" >java:111</a>)<br clear="none">at $RequestFilter_13a0346ec83c4f71.service(Unknown Source)<br clear="none">at $RequestHandler_13a0346ec83c4f75.service(Unknown Source)<br clear="none">at $RequestHandler_13a0346ec83c4f6a.service(Unknown Source)<br clear="none">at org.apache.tapestry5.modules.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.<a shape=
 "rect" class="external-link" href="http://java:255" >java:255</a>)<br clear="none">at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:59)<br clear="none">at $HttpServletRequestHandler_13a0346ec83c4f6c.service(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)<br clear="none">at $HttpServletRequestFilter_13a0346ec83c4f6d.service(Unknown Source)<br clear="none">at $HttpServletRequestFilter_13a0346ec83c4f68.service(Unknown Source)<br clear="none">at $HttpServletRequestHandler_13a0346ec83c4f6c.service(Unknown Source)<br clear="none">at org.apache.tapestry5.modules.TapestryModule$1.service(TapestryModule.<a shape="rect" class="external-link" href="http://java:804" >java:804</a>)<br clear="none">at $HttpServletRequestHandler_13a0346ec83c4f6c.service(Unknown Source)<br clear="none">at $HttpServletRequestHandler_13a0346ec83c4f67.service(Unknown Source)<br clear="none">at org.apache.tapestry5.
 TapestryFilter.doFilter(TapestryFilter.<a shape="rect" class="external-link" href="http://java:166" >java:166</a>)<br clear="none">at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.<a shape="rect" class="external-link" href="http://java:1291" >java:1291</a>)<br clear="none">at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.<a shape="rect" class="external-link" href="http://java:443" >java:443</a>)<br clear="none">at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.<a shape="rect" class="external-link" href="http://java:137" >java:137</a>)<br clear="none">at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.<a shape="rect" class="external-link" href="http://java:556" >java:556</a>)<br clear="none">at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.<a shape="rect" class="external-link" href="http://java:227" >java:227</a>)<br clear="none">at org.eclipse.jetty.server.handler.Conte
 xtHandler.doHandle(ContextHandler.<a shape="rect" class="external-link" href="http://java:1044" >java:1044</a>)<br clear="none">at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.<a shape="rect" class="external-link" href="http://java:372" >java:372</a>)<br clear="none">at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.<a shape="rect" class="external-link" href="http://java:189" >java:189</a>)<br clear="none">at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.<a shape="rect" class="external-link" href="http://java:978" >java:978</a>)<br clear="none">at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.<a shape="rect" class="external-link" href="http://java:135" >java:135</a>)<br clear="none">at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.<a shape="rect" class="external-link" href="http://java:116" >java:116</a>)<br clear="none">at org.eclipse.jetty.server.Server.handle(Server.<
 a shape="rect" class="external-link" href="http://java:369" >java:369</a>)<br clear="none">at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.<a shape="rect" class="external-link" href="http://java:486" >java:486</a>)<br clear="none">at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.<a shape="rect" class="external-link" href="http://java:933" >java:933</a>)<br clear="none">at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.<a shape="rect" class="external-link" href="http://java:995" >java:995</a>)<br clear="none">at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.<a shape="rect" class="external-link" href="http://java:644" >java:644</a>)<br clear="none">at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.<a shape="rect" class="external-link" href="http://java:235" >java:235</a>)<br clear="none">at org.eclipse.jetty.server.AsyncHttpConnect
 ion.handle(AsyncHttpConnection.java:82)<br clear="none">at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.<a shape="rect" class="external-link" href="http://java:668" >java:668</a>)<br clear="none">at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)<br clear="none">at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.<a shape="rect" class="external-link" href="http://java:608" >java:608</a>)<br clear="none">at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.<a shape="rect" class="external-link" href="http://java:543" >java:543</a>)<br clear="none">at java.lang.Thread.run(Thread.<a shape="rect" class="external-link" href="http://java:724" >java:724</a>)<br clear="none">Caused by: java.lang.RuntimeException: Unable to instantiate instance of transformed class org.apache.tapestry5.integration.app1.pages.DatumEditor: java.lang.reflect.InvocationTargetException<br clear="none">at or
 g.apache.tapestry5.internal.plastic.ClassInstantiatorImpl.newInstance(ClassInstantiatorImpl.<a shape="rect" class="external-link" href="http://java:113" >java:113</a>)<br clear="none">at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$2$1.newInstance(ComponentInstantiatorSourceImpl.<a shape="rect" class="external-link" href="http://java:235" >java:235</a>)<br clear="none">at org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.&lt;init&gt;(InternalComponentResourcesImpl.<a shape="rect" class="external-link" href="http://java:163" >java:163</a>)<br clear="none">at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.&lt;init&gt;(ComponentPageElementImpl.<a shape="rect" class="external-link" href="http://java:555" >java:555</a>)<br clear="none">at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.&lt;init&gt;(ComponentPageElementImpl.<a shape="rect" class="external-link" href="http://java:579" >java:579</a>)<br clear=
 "none">at org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.performAssembleRootComponent(ComponentAssemblerImpl.java:97)<br clear="none">... 94 more<br clear="none">Caused by: java.lang.reflect.InvocationTargetException<br clear="none">at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)<br clear="none">at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)<br clear="none">at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)<br clear="none">at java.lang.reflect.Constructor.newInstance(Constructor.<a shape="rect" class="external-link" href="http://java:526" >java:526</a>)<br clear="none">at org.apache.tapestry5.internal.plastic.ClassInstantiatorImpl.newInstance(ClassInstantiatorImpl.<a shape="rect" class="external-link" href="http://java:109" >java:109</a>)<br clear="none">... 99 more<br clear="none">Caused by: org.apache.tapestry5.ioc.internal.OperationExceptio
 n: Field _value of class org.apache.tapestry5.integration.app1.pages.Datum must be instrumented, and may not be public.<br clear="none">at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.<a shape="rect" class="external-link" href="http://java:184" >java:184</a>)<br clear="none">at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:62)<br clear="none">at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:60)<br clear="none">at org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.<a shape="rect" class="external-link" href="http://java:1252" >java:1252</a>)<br clear="none">at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.transform(ComponentInstantiatorSourceImpl.<a shape="rect" class="external-link" href="http://java:266" >java:266</a>)<br clear="none">at org.apache.tapestry5.internal.plastic.PlasticClassPool.loadAndTransformClass(P
 lasticClassPool.<a shape="rect" class="external-link" href="http://java:368" >java:368</a>)<br clear="none">at org.apache.tapestry5.internal.plastic.PlasticClassLoader.loadClass(PlasticClassLoader.java:38)<br clear="none">at java.lang.ClassLoader.loadClass(ClassLoader.<a shape="rect" class="external-link" href="http://java:357" >java:357</a>)<br clear="none">at org.apache.tapestry5.integration.app1.pages.DatumEditor.initializeInstance(DatumEditor.java:22)<br clear="none">at org.apache.tapestry5.integration.app1.pages.DatumEditor.&lt;init&gt;(DatumEditor.java)<br clear="none">... 104 more<br clear="none">Caused by: java.lang.IllegalArgumentException: Field _value of class org.apache.tapestry5.integration.app1.pages.Datum must be instrumented, and may not be public.<br clear="none">at org.apache.tapestry5.internal.plastic.PlasticFieldImpl.ensureNotPublic(PlasticFieldImpl.<a shape="rect" class="external-link" href="http://java:166" >java:166</a>)<br clear="none">at org.apache.tapestry5
 .internal.plastic.PlasticFieldImpl.replaceFieldReadAccess(PlasticFieldImpl.<a shape="rect" class="external-link" href="http://java:423" >java:423</a>)<br clear="none">at org.apache.tapestry5.internal.plastic.PlasticFieldImpl.setComputedConduit(PlasticFieldImpl.<a shape="rect" class="external-link" href="http://java:292" >java:292</a>)<br clear="none">at org.apache.tapestry5.internal.transform.UnclaimedFieldWorker.transformField(UnclaimedFieldWorker.java:99)<br clear="none">at org.apache.tapestry5.internal.transform.UnclaimedFieldWorker.transform(UnclaimedFieldWorker.java:88)<br clear="none">at $ComponentClassTransformWorker2_13a0346ec83c4e9a.transform(Unknown Source)<br clear="none">at $ComponentClassTransformWorker2_13a0346ec83c4e9c.transform(Unknown Source)<br clear="none">at $ComponentClassTransformWorker2_13a0346ec83c4e7f.transform(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$3.run(ComponentInstantiatorSourceImpl.<a sh
 ape="rect" class="external-link" href="http://java:316" >java:316</a>)<br clear="none">at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:56)<br clear="none">... 112 more</p><p>Notice how the operation trace at the top of the text succinctly explains how execution arrived at the point of failure and why, information that isn't captured in a stack trace.</p><p>This operation trace appears in the Tapestry web applications, as part of the <a shape="rect" href="runtime-exceptions.html">default exception report page</a>.</p><p>There are times, especially when tracking down startup failures, where it is useful to see the operations log even without explicit exceptions.</p><p>Enabling&#160;<strong>debug</strong> level logging for the&#160;<strong>org.apache.tapestry5.ioc.Registry</strong> logging category will provide huge volumes of output in the console:</p><pre></pre><p>[DEBUG] Registry [ 1] --&gt; Creating non-proxied instance of service ServiceConf
 igurationListenerHub<br clear="none">[DEBUG] Registry [ 2] --&gt; Creating plan to instantiate org.apache.tapestry5.ioc.services.ServiceConfigurationListenerHub via public org.apache.tapestry5.ioc.services.ServiceConfigurationListenerHub(java.util.List)<br clear="none">[DEBUG] Registry [ 3] --&gt; Determining injection value for parameter #1 (java.util.List)<br clear="none">[DEBUG] Registry [ 4] --&gt; Collecting ordered configuration for service ServiceConfigurationListenerHub<br clear="none">[DEBUG] Registry [ 5] --&gt; Invoking org.apache.tapestry5.ioc.FredModule.configureServiceConfigurationListener(OrderedConfiguration, CatchAllServiceConfigurationListener) (at FredModule.<a shape="rect" class="external-link" href="http://java:141" >java:141</a>)<br clear="none">[DEBUG] Registry [ 6] --&gt; Determining injection value for parameter #1 (org.apache.tapestry5.ioc.OrderedConfiguration)<br clear="none">[DEBUG] Registry [ 6] &lt;-- Determining injection value for parameter #1 (org.ap
 ache.tapestry5.ioc.OrderedConfiguration) [0.17 ms]<br clear="none">[DEBUG] Registry [ 6] --&gt; Determining injection value for parameter #2 (org.apache.tapestry5.ioc.CatchAllServiceConfigurationListener)<br clear="none">[DEBUG] Registry [ 7] --&gt; Creating proxy for service MasterObjectProvider<br clear="none">[DEBUG] Registry [ 7] &lt;-- Creating proxy for service MasterObjectProvider [2.82 ms]<br clear="none">[DEBUG] Registry [ 7] --&gt; Realizing service MasterObjectProvider<br clear="none">[DEBUG] Registry [ 8] --&gt; Instantiating service MasterObjectProvider implementation via org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl(List, OperationTracker) (at MasterObjectProviderImpl.java:33) via org.apache.tapestry5.ioc.modules.TapestryIOCModule.bind(ServiceBinder) (at TapestryIOCModule.java:50)<br clear="none">[DEBUG] Registry [ 9] --&gt; Creating plan to instantiate org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl via public org.apache.tapes
 try5.ioc.internal.services.MasterObjectProviderImpl(java.util.List,org.apache.tapestry5.ioc.OperationTracker)<br clear="none">[DEBUG] Registry [ 10] --&gt; Determining injection value for parameter #1 (java.util.List)<br clear="none">[DEBUG] Registry [ 11] --&gt; Collecting ordered configuration for service MasterObjectProvider<br clear="none">[DEBUG] Registry [ 12] --&gt; Invoking org.apache.tapestry5.ioc.modules.TapestryIOCModule.setupObjectProviders(OrderedConfiguration, ServiceOverride) (at TapestryIOCModule.<a shape="rect" class="external-link" href="http://java:136" >java:136</a>)<br clear="none">[DEBUG] Registry [ 13] --&gt; Determining injection value for parameter #1 (org.apache.tapestry5.ioc.OrderedConfiguration)<br clear="none">[DEBUG] Registry [ 13] &lt;-- Determining injection value for parameter #1 (org.apache.tapestry5.ioc.OrderedConfiguration) [0.17 ms]<br clear="none">[DEBUG] Registry [ 13] --&gt; Determining injection value for parameter #2 (org.apache.tapestry5.io
 c.services.ServiceOverride)<br clear="none">[DEBUG] Registry [ 14] --&gt; Creating proxy for service ServiceOverride<br clear="none">[DEBUG] Registry [ 14] &lt;-- Creating proxy for service ServiceOverride [2.15 ms]<br clear="none">[DEBUG] Registry [ 13] &lt;-- Determining injection value for parameter #2 (org.apache.tapestry5.ioc.services.ServiceOverride) [2.62 ms]<br clear="none">[DEBUG] Registry [ 13] --&gt; Creating proxy for service UpdateListenerHub<br clear="none">[DEBUG] Registry [ 13] &lt;-- Creating proxy for service UpdateListenerHub [2.28 ms]</p><p>...</p><p>The output identifies operation depth (the number in square brackets), whether the operation is starting&#160;(&#8211;&gt;) or finishing&#160;(&lt;&#8211;), and even the execution time of the operation.</p></div>
+</div><p>The <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/OperationTracker.html">OperationTracker</a> is a resource; it's actually a singleton, and is available for injection into any IoC service (or Tapestry component).</p><p>Using the OperationTracker you may run a Runnable, or invoke an Invokable (returning a typed response). &#160;Associated with the operation is a description string.</p><p>If there are no exceptions, then no problem.</p><p>If there &#160;are exceptions, then you'll see the console output logged at the point of the exception:</p><pre></pre><p>qtp644826761-13 [ERROR] Registry Operations trace:<br clear="none">qtp644826761-13 [ERROR] Registry [ 1] Handling page render request for page DatumEditor<br clear="none">qtp644826761-13 [ERROR] Registry [ 2] Constructing instance of page class org.apache.tapestry5.integration.app1.pages.DatumEditor<br clear="none">qtp644826761-13 [ERROR] Registry [ 3] Assem
 bling root component for page DatumEditor<br clear="none">qtp644826761-13 [ERROR] Registry [ 4] Running component class transformations on org.apache.tapestry5.integration.app1.pages.Datum<br clear="none">qtp644826761-13 [ERROR] RequestExceptionHandler Processing of request failed with uncaught exception: java.lang.RuntimeException: Exception assembling root component of page DatumEditor: Unable to instantiate instance of transformed class org.apache.tapestry5.integration.app1.pages.DatumEditor: java.lang.reflect.InvocationTargetException<br clear="none">java.lang.RuntimeException: Exception assembling root component of page DatumEditor: Unable to instantiate instance of transformed class org.apache.tapestry5.integration.app1.pages.DatumEditor: java.lang.reflect.InvocationTargetException<br clear="none">at org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.performAssembleRootComponent(ComponentAssemblerImpl.<a shape="rect" class="external-link" href="http://java:129" >jav
 a:129</a>)<br clear="none">at org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.access$000(ComponentAssemblerImpl.java:37)<br clear="none">at org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$1.invoke(ComponentAssemblerImpl.java:81)<br clear="none">at org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$1.invoke(ComponentAssemblerImpl.java:78)<br clear="none">at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:82)<br clear="none">at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:72)<br clear="none">at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.<a shape="rect" class="external-link" href="http://java:1258" >java:1258</a>)<br clear="none">at org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.assembleRootComponent(ComponentAssemblerImpl.java:76)<br clear="none">at org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageL
 oaderImpl.<a shape="rect" class="external-link" href="http://java:197" >java:197</a>)<br clear="none">at org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.<a shape="rect" class="external-link" href="http://java:190" >java:190</a>)<br clear="none">at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:82)<br clear="none">at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:72)<br clear="none">at org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.<a shape="rect" class="external-link" href="http://java:1258" >java:1258</a>)<br clear="none">at org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.<a shape="rect" class="external-link" href="http://java:189" >java:189</a>)<br clear="none">at $PageLoader_13a0346ec83c4e52.loadPage(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.PageSourceImpl.getPage(PageSourceImpl.
 <a shape="rect" class="external-link" href="http://java:104" >java:104</a>)<br clear="none">at $PageSource_13a0346ec83c4e51.getPage(Unknown Source)<br clear="none">at $PageSource_13a0346ec83c4e50.getPage(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:86)<br clear="none">at $RequestPageCache_13a0346ec83c4e4f.get(Unknown Source)<br clear="none">at $RequestPageCache_13a0346ec83c4e4e.get(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:56)<br clear="none">at org.apache.tapestry5.modules.TapestryModule$34.handle(TapestryModule.<a shape="rect" class="external-link" href="http://java:1978" >java:1978</a>)<br clear="none">at $PageRenderRequestHandler_13a0346ec83c4f9c.handle(Unknown Source)<br clear="none">at $PageRenderRequestHandler_13a0346ec83c4f97.handle(Unknown Source)<br clear="none">at org.apache.tapestry5.internal
 .services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48)<br clear="none">at org.apache.tapestry5.internal.services.DeferredResponseRenderer.handlePageRender(DeferredResponseRenderer.java:52)<br clear="none">at $ComponentRequestFilter_13a0346ec83c4f95.handlePageRender(Unknown Source)<br clear="none">at $ComponentRequestHandler_13a0346ec83c4f98.handlePageRender(Unknown Source)<br clear="none">at org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47)<br clear="none">at $ComponentRequestFilter_13a0346ec83c4f94.handlePageRender(Unknown Source)<br clear="none">at $ComponentRequestHandler_13a0346ec83c4f98.handlePageRender(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.ProductionModeUnknownComponentFilter.handlePageRender(ProductionModeUnknownComponentFilter.java:62)<br clear="none">at $ComponentRequestFilter_13a0346ec83c4f93.handlePageRender(Unknown Source)<br clear=
 "none">at $ComponentRequestHandler_13a0346ec83c4f98.handlePageRender(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.RequestOperationTracker$2.run(RequestOperationTracker.java:73)<br clear="none">at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:56)<br clear="none">at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:60)<br clear="none">at org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.<a shape="rect" class="external-link" href="http://java:1252" >java:1252</a>)<br clear="none">at org.apache.tapestry5.internal.services.RequestOperationTracker.handlePageRender(RequestOperationTracker.java:66)<br clear="none">at $ComponentRequestFilter_13a0346ec83c4f92.handlePageRender(Unknown Source)<br clear="none">at $ComponentRequestHandler_13a0346ec83c4f98.handlePageRender(Unknown Source)<br clear="none">at $ComponentRequestHandler_13a0346ec83c4f81.handlePageRender(Unknown
  Source)<br clear="none">at org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:52)<br clear="none">at $Dispatcher_13a0346ec83c4f7f.dispatch(Unknown Source)<br clear="none">at $Dispatcher_13a0346ec83c4f80.dispatch(Unknown Source)<br clear="none">at $Dispatcher_13a0346ec83c4f74.dispatch(Unknown Source)<br clear="none">at org.apache.tapestry5.modules.TapestryModule$RequestHandlerTerminator.service(TapestryModule.<a shape="rect" class="external-link" href="http://java:304" >java:304</a>)<br clear="none">at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)<br clear="none">at $RequestFilter_13a0346ec83c4f73.service(Unknown Source)<br clear="none">at $RequestHandler_13a0346ec83c4f75.service(Unknown Source)<br clear="none">at org.apache.tapestry5.modules.TapestryModule$3.service(TapestryModule.<a shape="rect" class="external-link" href="http://java:854" >java:854</a>)<br clear="none">at $RequestHandler_1
 3a0346ec83c4f75.service(Unknown Source)<br clear="none">at org.apache.tapestry5.modules.TapestryModule$2.service(TapestryModule.<a shape="rect" class="external-link" href="http://java:844" >java:844</a>)<br clear="none">at $RequestHandler_13a0346ec83c4f75.service(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:89)<br clear="none">at $RequestHandler_13a0346ec83c4f75.service(Unknown Source)<br clear="none">at org.apache.tapestry5.integration.app1.services.AppModule$2.service(AppModule.<a shape="rect" class="external-link" href="http://java:111" >java:111</a>)<br clear="none">at $RequestFilter_13a0346ec83c4f71.service(Unknown Source)<br clear="none">at $RequestHandler_13a0346ec83c4f75.service(Unknown Source)<br clear="none">at $RequestHandler_13a0346ec83c4f6a.service(Unknown Source)<br clear="none">at org.apache.tapestry5.modules.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.<a shape=
 "rect" class="external-link" href="http://java:255" >java:255</a>)<br clear="none">at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:59)<br clear="none">at $HttpServletRequestHandler_13a0346ec83c4f6c.service(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)<br clear="none">at $HttpServletRequestFilter_13a0346ec83c4f6d.service(Unknown Source)<br clear="none">at $HttpServletRequestFilter_13a0346ec83c4f68.service(Unknown Source)<br clear="none">at $HttpServletRequestHandler_13a0346ec83c4f6c.service(Unknown Source)<br clear="none">at org.apache.tapestry5.modules.TapestryModule$1.service(TapestryModule.<a shape="rect" class="external-link" href="http://java:804" >java:804</a>)<br clear="none">at $HttpServletRequestHandler_13a0346ec83c4f6c.service(Unknown Source)<br clear="none">at $HttpServletRequestHandler_13a0346ec83c4f67.service(Unknown Source)<br clear="none">at org.apache.tapestry5.
 TapestryFilter.doFilter(TapestryFilter.<a shape="rect" class="external-link" href="http://java:166" >java:166</a>)<br clear="none">at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.<a shape="rect" class="external-link" href="http://java:1291" >java:1291</a>)<br clear="none">at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.<a shape="rect" class="external-link" href="http://java:443" >java:443</a>)<br clear="none">at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.<a shape="rect" class="external-link" href="http://java:137" >java:137</a>)<br clear="none">at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.<a shape="rect" class="external-link" href="http://java:556" >java:556</a>)<br clear="none">at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.<a shape="rect" class="external-link" href="http://java:227" >java:227</a>)<br clear="none">at org.eclipse.jetty.server.handler.Conte
 xtHandler.doHandle(ContextHandler.<a shape="rect" class="external-link" href="http://java:1044" >java:1044</a>)<br clear="none">at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.<a shape="rect" class="external-link" href="http://java:372" >java:372</a>)<br clear="none">at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.<a shape="rect" class="external-link" href="http://java:189" >java:189</a>)<br clear="none">at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.<a shape="rect" class="external-link" href="http://java:978" >java:978</a>)<br clear="none">at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.<a shape="rect" class="external-link" href="http://java:135" >java:135</a>)<br clear="none">at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.<a shape="rect" class="external-link" href="http://java:116" >java:116</a>)<br clear="none">at org.eclipse.jetty.server.Server.handle(Server.<
 a shape="rect" class="external-link" href="http://java:369" >java:369</a>)<br clear="none">at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.<a shape="rect" class="external-link" href="http://java:486" >java:486</a>)<br clear="none">at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.<a shape="rect" class="external-link" href="http://java:933" >java:933</a>)<br clear="none">at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.<a shape="rect" class="external-link" href="http://java:995" >java:995</a>)<br clear="none">at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.<a shape="rect" class="external-link" href="http://java:644" >java:644</a>)<br clear="none">at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.<a shape="rect" class="external-link" href="http://java:235" >java:235</a>)<br clear="none">at org.eclipse.jetty.server.AsyncHttpConnect
 ion.handle(AsyncHttpConnection.java:82)<br clear="none">at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.<a shape="rect" class="external-link" href="http://java:668" >java:668</a>)<br clear="none">at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)<br clear="none">at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.<a shape="rect" class="external-link" href="http://java:608" >java:608</a>)<br clear="none">at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.<a shape="rect" class="external-link" href="http://java:543" >java:543</a>)<br clear="none">at java.lang.Thread.run(Thread.<a shape="rect" class="external-link" href="http://java:724" >java:724</a>)<br clear="none">Caused by: java.lang.RuntimeException: Unable to instantiate instance of transformed class org.apache.tapestry5.integration.app1.pages.DatumEditor: java.lang.reflect.InvocationTargetException<br clear="none">at or
 g.apache.tapestry5.internal.plastic.ClassInstantiatorImpl.newInstance(ClassInstantiatorImpl.<a shape="rect" class="external-link" href="http://java:113" >java:113</a>)<br clear="none">at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$2$1.newInstance(ComponentInstantiatorSourceImpl.<a shape="rect" class="external-link" href="http://java:235" >java:235</a>)<br clear="none">at org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.&lt;init&gt;(InternalComponentResourcesImpl.<a shape="rect" class="external-link" href="http://java:163" >java:163</a>)<br clear="none">at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.&lt;init&gt;(ComponentPageElementImpl.<a shape="rect" class="external-link" href="http://java:555" >java:555</a>)<br clear="none">at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.&lt;init&gt;(ComponentPageElementImpl.<a shape="rect" class="external-link" href="http://java:579" >java:579</a>)<br clear=
 "none">at org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.performAssembleRootComponent(ComponentAssemblerImpl.java:97)<br clear="none">... 94 more<br clear="none">Caused by: java.lang.reflect.InvocationTargetException<br clear="none">at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)<br clear="none">at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)<br clear="none">at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)<br clear="none">at java.lang.reflect.Constructor.newInstance(Constructor.<a shape="rect" class="external-link" href="http://java:526" >java:526</a>)<br clear="none">at org.apache.tapestry5.internal.plastic.ClassInstantiatorImpl.newInstance(ClassInstantiatorImpl.<a shape="rect" class="external-link" href="http://java:109" >java:109</a>)<br clear="none">... 99 more<br clear="none">Caused by: org.apache.tapestry5.ioc.internal.OperationExceptio
 n: Field _value of class org.apache.tapestry5.integration.app1.pages.Datum must be instrumented, and may not be public.<br clear="none">at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.<a shape="rect" class="external-link" href="http://java:184" >java:184</a>)<br clear="none">at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:62)<br clear="none">at org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:60)<br clear="none">at org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.<a shape="rect" class="external-link" href="http://java:1252" >java:1252</a>)<br clear="none">at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.transform(ComponentInstantiatorSourceImpl.<a shape="rect" class="external-link" href="http://java:266" >java:266</a>)<br clear="none">at org.apache.tapestry5.internal.plastic.PlasticClassPool.loadAndTransformClass(P
 lasticClassPool.<a shape="rect" class="external-link" href="http://java:368" >java:368</a>)<br clear="none">at org.apache.tapestry5.internal.plastic.PlasticClassLoader.loadClass(PlasticClassLoader.java:38)<br clear="none">at java.lang.ClassLoader.loadClass(ClassLoader.<a shape="rect" class="external-link" href="http://java:357" >java:357</a>)<br clear="none">at org.apache.tapestry5.integration.app1.pages.DatumEditor.initializeInstance(DatumEditor.java:22)<br clear="none">at org.apache.tapestry5.integration.app1.pages.DatumEditor.&lt;init&gt;(DatumEditor.java)<br clear="none">... 104 more<br clear="none">Caused by: java.lang.IllegalArgumentException: Field _value of class org.apache.tapestry5.integration.app1.pages.Datum must be instrumented, and may not be public.<br clear="none">at org.apache.tapestry5.internal.plastic.PlasticFieldImpl.ensureNotPublic(PlasticFieldImpl.<a shape="rect" class="external-link" href="http://java:166" >java:166</a>)<br clear="none">at org.apache.tapestry5
 .internal.plastic.PlasticFieldImpl.replaceFieldReadAccess(PlasticFieldImpl.<a shape="rect" class="external-link" href="http://java:423" >java:423</a>)<br clear="none">at org.apache.tapestry5.internal.plastic.PlasticFieldImpl.setComputedConduit(PlasticFieldImpl.<a shape="rect" class="external-link" href="http://java:292" >java:292</a>)<br clear="none">at org.apache.tapestry5.internal.transform.UnclaimedFieldWorker.transformField(UnclaimedFieldWorker.java:99)<br clear="none">at org.apache.tapestry5.internal.transform.UnclaimedFieldWorker.transform(UnclaimedFieldWorker.java:88)<br clear="none">at $ComponentClassTransformWorker2_13a0346ec83c4e9a.transform(Unknown Source)<br clear="none">at $ComponentClassTransformWorker2_13a0346ec83c4e9c.transform(Unknown Source)<br clear="none">at $ComponentClassTransformWorker2_13a0346ec83c4e7f.transform(Unknown Source)<br clear="none">at org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$3.run(ComponentInstantiatorSourceImpl.<a sh
 ape="rect" class="external-link" href="http://java:316" >java:316</a>)<br clear="none">at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:56)<br clear="none">... 112 more</p><p>Notice how the operation trace at the top of the text succinctly explains how execution arrived at the point of failure and why, information that isn't captured in a stack trace.</p><p>This operation trace appears in the Tapestry web applications, as part of the <a shape="rect" href="runtime-exceptions.html">default exception report page</a>.</p><p>There are times, especially when tracking down startup failures, where it is useful to see the operations log even without explicit exceptions.</p><p>Enabling&#160;<strong>debug</strong> level logging for the&#160;<strong>org.apache.tapestry5.ioc.Registry</strong> logging category will provide huge volumes of output in the console:</p><pre></pre><p>[DEBUG] Registry [ 1] --&gt; Creating non-proxied instance of service ServiceConf
 igurationListenerHub<br clear="none">[DEBUG] Registry [ 2] --&gt; Creating plan to instantiate org.apache.tapestry5.ioc.services.ServiceConfigurationListenerHub via public org.apache.tapestry5.ioc.services.ServiceConfigurationListenerHub(java.util.List)<br clear="none">[DEBUG] Registry [ 3] --&gt; Determining injection value for parameter #1 (java.util.List)<br clear="none">[DEBUG] Registry [ 4] --&gt; Collecting ordered configuration for service ServiceConfigurationListenerHub<br clear="none">[DEBUG] Registry [ 5] --&gt; Invoking org.apache.tapestry5.ioc.FredModule.configureServiceConfigurationListener(OrderedConfiguration, CatchAllServiceConfigurationListener) (at FredModule.<a shape="rect" class="external-link" href="http://java:141" >java:141</a>)<br clear="none">[DEBUG] Registry [ 6] --&gt; Determining injection value for parameter #1 (org.apache.tapestry5.ioc.OrderedConfiguration)<br clear="none">[DEBUG] Registry [ 6] &lt;-- Determining injection value for parameter #1 (org.ap
 ache.tapestry5.ioc.OrderedConfiguration) [0.17 ms]<br clear="none">[DEBUG] Registry [ 6] --&gt; Determining injection value for parameter #2 (org.apache.tapestry5.ioc.CatchAllServiceConfigurationListener)<br clear="none">[DEBUG] Registry [ 7] --&gt; Creating proxy for service MasterObjectProvider<br clear="none">[DEBUG] Registry [ 7] &lt;-- Creating proxy for service MasterObjectProvider [2.82 ms]<br clear="none">[DEBUG] Registry [ 7] --&gt; Realizing service MasterObjectProvider<br clear="none">[DEBUG] Registry [ 8] --&gt; Instantiating service MasterObjectProvider implementation via org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl(List, OperationTracker) (at MasterObjectProviderImpl.java:33) via org.apache.tapestry5.ioc.modules.TapestryIOCModule.bind(ServiceBinder) (at TapestryIOCModule.java:50)<br clear="none">[DEBUG] Registry [ 9] --&gt; Creating plan to instantiate org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl via public org.apache.tapes
 try5.ioc.internal.services.MasterObjectProviderImpl(java.util.List,org.apache.tapestry5.ioc.OperationTracker)<br clear="none">[DEBUG] Registry [ 10] --&gt; Determining injection value for parameter #1 (java.util.List)<br clear="none">[DEBUG] Registry [ 11] --&gt; Collecting ordered configuration for service MasterObjectProvider<br clear="none">[DEBUG] Registry [ 12] --&gt; Invoking org.apache.tapestry5.ioc.modules.TapestryIOCModule.setupObjectProviders(OrderedConfiguration, ServiceOverride) (at TapestryIOCModule.<a shape="rect" class="external-link" href="http://java:136" >java:136</a>)<br clear="none">[DEBUG] Registry [ 13] --&gt; Determining injection value for parameter #1 (org.apache.tapestry5.ioc.OrderedConfiguration)<br clear="none">[DEBUG] Registry [ 13] &lt;-- Determining injection value for parameter #1 (org.apache.tapestry5.ioc.OrderedConfiguration) [0.17 ms]<br clear="none">[DEBUG] Registry [ 13] --&gt; Determining injection value for parameter #2 (org.apache.tapestry5.io
 c.services.ServiceOverride)<br clear="none">[DEBUG] Registry [ 14] --&gt; Creating proxy for service ServiceOverride<br clear="none">[DEBUG] Registry [ 14] &lt;-- Creating proxy for service ServiceOverride [2.15 ms]<br clear="none">[DEBUG] Registry [ 13] &lt;-- Determining injection value for parameter #2 (org.apache.tapestry5.ioc.services.ServiceOverride) [2.62 ms]<br clear="none">[DEBUG] Registry [ 13] --&gt; Creating proxy for service UpdateListenerHub<br clear="none">[DEBUG] Registry [ 13] &lt;-- Creating proxy for service UpdateListenerHub [2.28 ms]</p><p>...</p><p>The output identifies operation depth (the number in square brackets), whether the operation is starting&#160;(&#8211;&gt;) or finishing&#160;(&lt;&#8211;), and even the execution time of the operation.</p><p></p></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/parallel-execution.html
==============================================================================
--- websites/production/tapestry/content/parallel-execution.html (original)
+++ websites/production/tapestry/content/parallel-execution.html Sat Aug  8 18:20:03 2015
@@ -31,8 +31,6 @@
   <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();
@@ -76,7 +74,7 @@
 </p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Added in 5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
 </div></div>
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p>&#160;</p></div>The size of the task queue. When there are at least the core number of threads in the pool, tasks will be placed in the queue. If the queue is empty, more threads may be created (up to the maximum pool size). If the queue is full and all threads have been created, the task is rejected (and exception is thrown).<p>Defaults to 100.</p></div>
+<p>&#160;</p></div>The size of the task queue. When there are at least the core number of threads in the pool, tasks will be placed in the queue. If the queue is empty, more threads may be created (up to the maximum pool size). If the queue is full and all threads have been created, the task is rejected (and exception is thrown).<p>Defaults to 100.</p><p>&#160;</p><p></p></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/registry-startup.html
==============================================================================
--- websites/production/tapestry/content/registry-startup.html (original)
+++ websites/production/tapestry/content/registry-startup.html Sat Aug  8 18:20:03 2015
@@ -31,8 +31,6 @@
   <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();
@@ -93,7 +91,7 @@
   }
 }
 </pre>
-</div></div><p></p></div>
+</div></div><p>&#160;</p><p></p></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/request-processing.html
==============================================================================
--- websites/production/tapestry/content/request-processing.html (original)
+++ websites/production/tapestry/content/request-processing.html Sat Aug  8 18:20:03 2015
@@ -27,16 +27,6 @@
   </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"/>
 
@@ -67,8 +57,73 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><h1 id="RequestProcessing-RequestProcessing">Request Processing</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>Understanding the request processing pipeline is very important, as it is one of the chief extension points for Tapestry.</p><p>Much of the early stages of processing are in the form of extensible <a shape="rect" href="pipelinebuilder-service.html">pipelines</a>.</p><h2 id="RequestProcessing-TapestryFilter">Tapestry Filter</h2><p>All incoming requests originate with the TapestryFilter, which is configured inside the application's <a shape="rect" href="configuration.html">web.xml</a>.</p><p>The TapestryFilter is responsible for a number of startup and initialization functions.</p><p>When it receives a request, the TapestryFilter obtains the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestHandler.html">Htt
 pServletRequestHandler</a> service, and invokes its service() method.</p><h2 id="RequestProcessing-HttpServletRequestHandlerPipeline">HttpServletRequestHandler Pipeline</h2><p>This pipeline performs initial processing of the request. It can be extended by contributing a <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestFilter.html">HttpServletRequestFilter</a> into the HttpServletRequestHandler service's configuration.</p><p>Tapestry does not contribute any filters into this pipeline of its own.</p><p>The terminator for the pipeline does two things:</p><ul><li>It stores the request and response into the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/RequestGlobals.html">RequestGlobals</a> service. This is a per-thread scoped service that stores per-thread/per-request information.</li><li>It wraps the request and response as a <a s
 hape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/Request.html">Request</a> and <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/Response.html">Response</a>, and passes them into the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/RequestHandler.html">RequestHandler</a> pipeline.</li></ul><h2 id="RequestProcessing-RequestHandlerPipeline">RequestHandler Pipeline</h2><p>This pipeline is where most extensions related to requests take place. Request represents an abstraction on top of HttpServletRequest. (Primarily, this exists to bridge from the Servlet API objects to the corresponding Tapestry objects. This is the basis for the planned portlet integration for Tapestry.) Where other code and services within Tapestry require access to information in the request, such as query parameters, th
 at information is obtained from the Request (or Response) objects.</p><p>The RequestHandler pipeline includes a number of built-in filters:</p><ul><li>CheckForUpdates is responsible for <a shape="rect" href="class-reloading.html">class and template reloading</a>.</li><li>Localization identifies the <a shape="rect" href="localization.html">locale for the user</a>.</li><li>StaticFiles checks for URLs that are for static files (files that exist inside the web context) and aborts the request, so that the servlet container can handle the request normally.</li><li>ErrorFilter catches uncaught exceptions from the lower levels of Tapestry and presents the exception report page. This involves the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/RequestExceptionHandler.html">RequestExceptionHandler</a> service, which is responsible for initializing and rendering the <a shape="rect" class="external-link" href="http://tapestry.
 apache.org/current/apidocs/org/apache/tapestry5/corelib/pages/ExceptionReport.html">core/ExceptionReport</a> page.</li></ul><p>The terminator for this pipeline stores the Request and the Response into RequestGlobals, then requests that the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/Dispatcher.html">MasterDispatcher</a> service figure out how to handle the request (if it is, indeed, a Tapestry request).</p><h2 id="RequestProcessing-MasterDispatcherService">Master Dispatcher Service</h2><p>The MasterDispatcher service is a chain-of-command, aggregating together (in a specific order), several Dispatcher objects. Each Dispatcher is built to recognize and process a particular kind of URL.</p><h3 id="RequestProcessing-RootPathDispatcher">RootPath Dispatcher</h3><p>The RootPath Dispatcher recognizes a request for the application root (i.e., "/") and handles this the same as a render request for the "Start" page. Supp
 ort for the Start page is kept for legacy purposes. Index pages are the correct approach.</p><h3 id="RequestProcessing-AssetDispatcher">Asset Dispatcher</h3><p>Requests that begin with "/assets/" are references to <a shape="rect" href="assets.html">asset resources</a> that are stored on the classpath, inside the Tapestry JARs (or perhaps inside the JAR for a component library). The contents of the file will be delivered to the client browser as a byte stream. This dispatcher also handles requests that are simply polling for a change to the file.</p><h3 id="RequestProcessing-PageRenderDispatcher">PageRender Dispatcher</h3><p>Page render requests are requests to render a particular page. Such requests may include additional elements on the path, which will be treated as activation context (see ComponentEvent Dispatcher below). Generally speaking, the activation context is the primary key of some related entity object. This allows the page to reconstruct the state it will need to succe
 ssfully render itself.</p><p>The event handler method for the activate event may return a value; this is treated the same as the return value from a component action request; typically this will result in a redirect to another page. In this way, the activate event can perform simple validation at the page level ("can the user see this page?").</p><p>Page render URLs consist of the logical name of the page plus additional path elements for the activation context. The dispatcher here strips terms off of the path until it finds a known page name. Thus, "/mypage/27" would look first for a page whose name was "mypage/27", then look for a page name "mypage". Assuming the second search was successful, the page would be activated with the context "27". If no logical page name can be identified, control passes to the next dispatcher.</p><h3 id="RequestProcessing-ComponentEventDispatcher">ComponentEvent Dispatcher</h3><p>The ComponentEvent dispatcher is used to trigger events in components.</
 p><p>The URL identifies the name of the page, then a series of component ids (the path from the page down to the specific component), then the name of the event to be triggered on the component. The remaining path elements are used as the context for the <em>event</em> (not for the page activation, which does not currently apply). For example, "/griddemo.FOO.BAR/3" would locate page "griddemo", then component "FOO.BAR", and trigger an event named "action" (the default event type, which is omitted from the URL), with the context "3".</p><p>If the page in question has an activation context, it is supplied as an additional query parameter on the link.</p><p>In cases where the event type is not the default, "action", it will appear between the nested component id and the event context, preceded by a colon. Example: "/example/foo.bar:magic/99" would trigger an event of type "magic". This is not common in the vanilla Tapestry framework, but will likely be more common as Ajax features (whi
 ch would not use the normal request logic) are implemented.</p><p>The response from a component action request is typically, but not universally, used to send a redirect to the client; the redirect URL is a page render URL to display the response to the event. This is detailed under <a shape="rect" href="page-navigation.html">Page Navigation</a>.</p><h2 id="RequestProcessing-RequestGlobalsService">RequestGlobals Service</h2><p>The RequestGlobals service has a life cycle of per-thread; this means that a separate instance exists for every thread, and therefore, for every request. The terminators of the two handler pipelines store the request/response pairs into the RequestGlobals service.</p><h2 id="RequestProcessing-RequestService">Request Service</h2><p>The Request service is a <a shape="rect" href="shadowbuilder-service.html">shadow</a> of the RequestGlobals services' request property. That is, any methods invoked on this service are delegated to the request object stored inside th
 e RequestGlobals.</p><h2 id="RequestProcessing-Overview">Overview</h2><p>The following diagram provides an overview of how the different pipelines, filters and dispatchers interact when processing an incoming request.</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-content-image-border" src="request-processing.data/tapestry_request_processing_800.png"></span></p></div>
+<div id="ConfluenceContent"><div class="aui-label" style="float:right" title="Related Articles">
+
+
+
+
+
+
+
+
+<h3>Related Articles</h3>
+
+<ul class="content-by-label"><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a shape="rect" href="page-navigation.html">Page Navigation</a>
+                
+                        
+                    </div>
+    </li><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a shape="rect" href="page-life-cycle.html">Page Life Cycle</a>
+                
+                        
+                    </div>
+    </li><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a shape="rect" href="component-rendering.html">Component Rendering</a>
+                
+                        
+                    </div>
+    </li><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a shape="rect" href="component-events.html">Component Events</a>
+                
+                        
+                    </div>
+    </li><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a shape="rect" href="component-events-faq.html">Component Events FAQ</a>
+                
+                        
+                    </div>
+    </li><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a shape="rect" href="request-processing.html">Request Processing</a>
+                
+                        
+                    </div>
+    </li></ul>
+</div><p><strong>Request Processing</strong> involves a sequence of steps that Tapestry performs when every HTTP request comes in. You <em>don't need</em> to know these steps to use Tapestry productively, but understanding the request processing pipeline is helpful if you want to understand Tapestry deeply.</p><p>Much of the early stages of processing are in the form of extensible <a shape="rect" href="pipelinebuilder-service.html">pipelines</a>.</p><h2 id="RequestProcessing-TapestryFilter">Tapestry Filter</h2><p>All incoming requests originate with the TapestryFilter, which is a servlet filter configured inside your application's <a shape="rect" href="configuration.html">web.xml</a>.</p><p>The TapestryFilter is responsible for a number of startup and initialization functions.</p><p>When it receives a request, the TapestryFilter obtains the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestHandler.h
 tml">HttpServletRequestHandler</a> service, and invokes its service() method.</p><h2 id="RequestProcessing-HttpServletRequestHandlerPipeline">HttpServletRequestHandler Pipeline</h2><p>This pipeline performs initial processing of the request. It can be extended by contributing a <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestFilter.html">HttpServletRequestFilter</a> into the HttpServletRequestHandler service's configuration.</p><p>Tapestry does not contribute any filters into this pipeline of its own.</p><p>The terminator for the pipeline does two things:</p><ul><li>It stores the request and response into the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/RequestGlobals.html">RequestGlobals</a> service. This is a per-thread scoped service that stores per-thread/per-request information.</li><li>It wraps the request and response a
 s a <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/Request.html">Request</a> and <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/Response.html">Response</a>, and passes them into the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/RequestHandler.html">RequestHandler</a> pipeline.</li></ul><h2 id="RequestProcessing-RequestHandlerPipeline">RequestHandler Pipeline</h2><p>This pipeline is where most extensions related to requests take place. Request represents an abstraction on top of HttpServletRequest. (Primarily, this exists to bridge from the Servlet API objects to the corresponding Tapestry objects. This is the basis for the planned portlet integration for Tapestry.) Where other code and services within Tapestry require access to information in the request, such as query parame
 ters, that information is obtained from the Request (or Response) objects.</p><p>The RequestHandler pipeline includes a number of built-in filters:</p><ul><li>CheckForUpdates is responsible for <a shape="rect" href="class-reloading.html">class and template reloading</a>.</li><li>Localization identifies the <a shape="rect" href="localization.html">locale for the user</a>.</li><li>StaticFiles checks for URLs that are for static files (files that exist inside the web context) and aborts the request, so that the servlet container can handle the request normally.</li><li>ErrorFilter catches uncaught exceptions from the lower levels of Tapestry and presents the exception report page. This involves the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/RequestExceptionHandler.html">RequestExceptionHandler</a> service, which is responsible for initializing and rendering the <a shape="rect" class="external-link" href="http://t
 apestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/pages/ExceptionReport.html">core/ExceptionReport</a> page.</li></ul><p>The terminator for this pipeline stores the Request and the Response into RequestGlobals, then requests that the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/Dispatcher.html">MasterDispatcher</a> service figure out how to handle the request (if it is, indeed, a Tapestry request).</p><h2 id="RequestProcessing-MasterDispatcherService">Master Dispatcher Service</h2><p>The MasterDispatcher service is a chain-of-command, aggregating together (in a specific order), several Dispatcher objects. Each Dispatcher is built to recognize and process a particular kind of URL.</p><h3 id="RequestProcessing-RootPathDispatcher">RootPath Dispatcher</h3><p>The RootPath Dispatcher recognizes a request for the application root (i.e., "/") and handles this the same as a render request for the "Start" pa
 ge. Support for the Start page is kept for legacy purposes. Index pages are the correct approach.</p><h3 id="RequestProcessing-AssetDispatcher">Asset Dispatcher</h3><p>Requests that begin with "/assets/" are references to <a shape="rect" href="assets.html">asset resources</a> that are stored on the classpath, inside the Tapestry JARs (or perhaps inside the JAR for a component library). The contents of the file will be delivered to the client browser as a byte stream. This dispatcher also handles requests that are simply polling for a change to the file.</p><h3 id="RequestProcessing-PageRenderDispatcher">PageRender Dispatcher</h3><p>Page render requests are requests to render a particular page. Such requests may include additional elements on the path, which will be treated as activation context (see ComponentEvent Dispatcher below). Generally speaking, the activation context is the primary key of some related entity object. This allows the page to reconstruct the state it will need 
 to successfully render itself.</p><p>The event handler method for the activate event may return a value; this is treated the same as the return value from a component action request; typically this will result in a redirect to another page. In this way, the activate event can perform simple validation at the page level ("can the user see this page?").</p><p>Page render URLs consist of the logical name of the page plus additional path elements for the activation context. The dispatcher here strips terms off of the path until it finds a known page name. Thus, "/mypage/27" would look first for a page whose name was "mypage/27", then look for a page name "mypage". Assuming the second search was successful, the page would be activated with the context "27". If no logical page name can be identified, control passes to the next dispatcher.</p><h3 id="RequestProcessing-ComponentEventDispatcher">ComponentEvent Dispatcher</h3><p>The ComponentEvent dispatcher is used to trigger events in compo
 nents.</p><p>The URL identifies the name of the page, then a series of component ids (the path from the page down to the specific component), then the name of the event to be triggered on the component. The remaining path elements are used as the context for the <em>event</em> (not for the page activation, which does not currently apply). For example, "/griddemo.FOO.BAR/3" would locate page "griddemo", then component "FOO.BAR", and trigger an event named "action" (the default event type, which is omitted from the URL), with the context "3".</p><p>If the page in question has an activation context, it is supplied as an additional query parameter on the link.</p><p>In cases where the event type is not the default, "action", it will appear between the nested component id and the event context, preceded by a colon. Example: "/example/foo.bar:magic/99" would trigger an event of type "magic". This is not common in the vanilla Tapestry framework, but will likely be more common as Ajax featu
 res (which would not use the normal request logic) are implemented.</p><p>The response from a component action request is typically, but not universally, used to send a redirect to the client; the redirect URL is a page render URL to display the response to the event. This is detailed under <a shape="rect" href="page-navigation.html">Page Navigation</a>.</p><h2 id="RequestProcessing-RequestGlobalsService">RequestGlobals Service</h2><p>The RequestGlobals service has a life cycle of per-thread; this means that a separate instance exists for every thread, and therefore, for every request. The terminators of the two handler pipelines store the request/response pairs into the RequestGlobals service.</p><h2 id="RequestProcessing-RequestService">Request Service</h2><p>The Request service is a <a shape="rect" href="shadowbuilder-service.html">shadow</a> of the RequestGlobals services' request property. That is, any methods invoked on this service are delegated to the request object stored i
 nside the RequestGlobals.</p><h2 id="RequestProcessing-Overview">Overview</h2><p>The following diagram provides an overview of how the different pipelines, filters and dispatchers interact when processing an incoming request.</p><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-content-image-border" src="request-processing.data/tapestry_request_processing_800.png"></span></p></div>
 </div>
 
 <div class="clearer"></div>