You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by bo...@apache.org on 2014/11/09 17:12:14 UTC

svn commit: r928509 [5/6] - in /websites/production/tapestry: ./ content/ content/2009/09/13/ content/2009/10/27/ content/2009/11/25/ content/2010/07/18/ content/2010/07/24/ content/2010/10/11/ content/2010/10/31/ content/2010/11/18/ content/2010/11/19...

Modified: websites/production/tapestry/content/ioc.html
==============================================================================
--- websites/production/tapestry/content/ioc.html (original)
+++ websites/production/tapestry/content/ioc.html Sun Nov  9 16:12:11 2014
@@ -206,7 +206,7 @@
 
 <h2 id="IoC-IoCSubtopics">IoC Subtopics</h2>
 
-<ul class="childpages-macro"><li><a shape="rect" href="tapestry-ioc-overview.html">Tapestry IoC Overview</a></li><li><a shape="rect" href="tapestry-ioc-modules.html">Tapestry IoC Modules</a></li><li><a shape="rect" href="defining-tapestry-ioc-services.html">Defining Tapestry IOC Services</a></li><li><a shape="rect" href="service-advisors.html">Service Advisors</a></li><li><a shape="rect" href="tapestry-ioc-decorators.html">Tapestry IoC Decorators</a></li><li><a shape="rect" href="tapestry-ioc-configuration.html">Tapestry IoC Configuration</a></li><li><a shape="rect" href="case-insensitivity.html">Case Insensitivity</a></li><li><a shape="rect" href="autoloading-modules.html">Autoloading Modules</a></li><li><a shape="rect" href="service-implementation-reloading.html">Service Implementation Reloading</a></li><li><a shape="rect" href="ordering-by-constraints.html">Ordering by Constraints</a></li><li><a shape="rect" href="symbols.html">Symbols</a></li><li><a shape="rect" href="chainbuild
 er-service.html">ChainBuilder Service</a></li><li><a shape="rect" href="pipelinebuilder-service.html">PipelineBuilder Service</a></li><li><a shape="rect" href="shadowbuilder-service.html">ShadowBuilder Service</a></li><li><a shape="rect" href="strategybuilder-service.html">StrategyBuilder Service</a></li><li><a shape="rect" href="injection-in-detail.html">Injection in Detail</a></li><li><a shape="rect" href="object-providers.html">Object Providers</a></li><li><a shape="rect" href="service-serialization.html">Service Serialization</a></li><li><a shape="rect" href="typecoercer-service.html">TypeCoercer Service</a></li><li><a shape="rect" href="starting-the-ioc-registry.html">Starting the IoC Registry</a></li><li><a shape="rect" href="registry-startup.html">Registry Startup</a></li><li><a shape="rect" href="parallel-execution.html">Parallel Execution</a></li><li><a shape="rect" href="logging-in-tapestry.html">Logging in Tapestry</a></li><li><a shape="rect" href="using-jsr-330-standard-
 annotations.html">Using JSR 330 standard annotations</a></li></ul></div>
+<ul class="childpages-macro"><li><a shape="rect" href="tapestry-ioc-overview.html">Tapestry IoC Overview</a></li><li><a shape="rect" href="tapestry-ioc-modules.html">Tapestry IoC Modules</a></li><li><a shape="rect" href="defining-tapestry-ioc-services.html">Defining Tapestry IOC Services</a></li><li><a shape="rect" href="service-advisors.html">Service Advisors</a></li><li><a shape="rect" href="tapestry-ioc-decorators.html">Tapestry IoC Decorators</a></li><li><a shape="rect" href="tapestry-ioc-configuration.html">Tapestry IoC Configuration</a></li><li><a shape="rect" href="case-insensitivity.html">Case Insensitivity</a></li><li><a shape="rect" href="autoloading-modules.html">Autoloading Modules</a></li><li><a shape="rect" href="service-implementation-reloading.html">Service Implementation Reloading</a></li><li><a shape="rect" href="ordering-by-constraints.html">Ordering by Constraints</a></li><li><a shape="rect" href="symbols.html">Symbols</a></li><li><a shape="rect" href="chainbuild
 er-service.html">ChainBuilder Service</a></li><li><a shape="rect" href="pipelinebuilder-service.html">PipelineBuilder Service</a></li><li><a shape="rect" href="shadowbuilder-service.html">ShadowBuilder Service</a></li><li><a shape="rect" href="strategybuilder-service.html">StrategyBuilder Service</a></li><li><a shape="rect" href="injection-in-detail.html">Injection in Detail</a></li><li><a shape="rect" href="object-providers.html">Object Providers</a></li><li><a shape="rect" href="service-serialization.html">Service Serialization</a></li><li><a shape="rect" href="typecoercer-service.html">TypeCoercer Service</a></li><li><a shape="rect" href="starting-the-ioc-registry.html">Starting the IoC Registry</a></li><li><a shape="rect" href="registry-startup.html">Registry Startup</a></li><li><a shape="rect" href="parallel-execution.html">Parallel Execution</a></li><li><a shape="rect" href="logging-in-tapestry.html">Logging in Tapestry</a></li><li><a shape="rect" href="using-jsr-330-standard-
 annotations.html">Using JSR 330 standard annotations</a></li><li><a shape="rect" href="operation-tracker.html">Operation Tracker</a></li></ul></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/javascript-faq.html
==============================================================================
--- websites/production/tapestry/content/javascript-faq.html (original)
+++ websites/production/tapestry/content/javascript-faq.html Sun Nov  9 16:12:11 2014
@@ -69,35 +69,13 @@ table.ScrollbarTable td.ScrollbarParent 
 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="component-events-faq.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="component-events-faq.html">Component Events FAQ</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="frequently-asked-questions.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="frequently-asked-questions.html">Frequently Asked Questions</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="ajax-components-faq.html">Ajax Components FAQ</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"
 ><a shape="rect" href="ajax-components-faq.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>
-
-<h2 id="JavaScriptFAQ-JavaScript">JavaScript</h2>
-
-<p>Main article: <a shape="rect" href="legacy-javascript.html">Legacy JavaScript</a></p>
-
-<h3 id="JavaScriptFAQ-WhydoIgeta&quot;Tapestryisundefined&quot;erroronformsubmit?">Why do I get a "Tapestry is undefined" error on form submit?</h3>
-
-<p>This client-side error is clear but can be awkward to solve. It means your browser has not been able to load the tapestry.js file properly. The question is, why? It can be due to multiple reasons, some of them below:</p>
-
-<ul><li>First, check if 'tapestry.js' is present in the head part of your resulting HTML page.</li><li>If you have set the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/SymbolConstants.html#COMBINE_SCRIPTS">tapestry.combine-scripts</a> configuration symbol to true, Tapestry generates one single URL to retrieve all the JS files. Sometimes, this can produce long URLs that browsers are unable to retrieve. Try setting the symbol to false. 
-    <div class="aui-message warning shadowed information-macro">
+/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="component-events-faq.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="component-events-faq.html">Component Events FAQ</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="frequently-asked-questions.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="frequently-asked-questions.html">Frequently Asked Questions</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="ajax-components-faq.html">Ajax Components FAQ</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"
 ><a shape="rect" href="ajax-components-faq.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><h2 id="JavaScriptFAQ-JavaScript">JavaScript</h2><p>Main article: <a shape="rect" href="legacy-javascript.html">Legacy JavaScript</a></p><h3 id="JavaScriptFAQ-WhydoIgeta&quot;Tapestryisundefined&quot;erroronformsubmit?(5.3andearlier)">Why do I get a "Tapestry is undefined" error on form submit? (5.3 and earlier)</h3><p>This client-side error is clear but can be awkward to solve. It means your browser has not been able to load the tapestry.js file properly. The question is, why? It can be due to multiple reasons, some of them below:</p><ul><li>First, check if 'tapestry.js' is present in the head part of your resulting HTML page.</li><li><p>If you have set the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/SymbolConstants.html#CO
 MBINE_SCRIPTS">tapestry.combine-scripts</a> configuration symbol to true, Tapestry generates one single URL to retrieve all the JS files. Sometimes, this can produce long URLs that browsers are unable to retrieve. Try setting the symbol to false.</p>    <div class="aui-message warning shadowed information-macro">
                             <span class="aui-icon icon-warning">Icon</span>
                 <div class="message-content">
                             <p>This only applies to Tapestry 5.1.</p>
                     </div>
     </div>
-</li><li>If you have included jQuery in conjunction with Tapestry's prototype, that will cause a conflict with the '$' selector used by both. In this case, you should put jQuery on top of the stack and turn on the <a shape="rect" class="external-link" href="http://api.jquery.com/jQuery.noConflict/" >jQuery.noConflict</a> mode.</li><li>Also, if you have included a custom or third-party JS library on top of the stack that causes the JavaScript parsing to fail, then check the JavaScript syntax in that library.</li><li>If you have used a tool to minimize your JavaScript libraries, this can lead to JavaScript syntax errors, so check if it works with all the JavaScript files unpacked.</li></ul>
-
-
-<h3 id="JavaScriptFAQ-What'sthedifferencebetweentheT5objectandtheTapestryobjectinthebrowser?">What's the difference between the <code>T5</code> object and the <code>Tapestry</code> object in the browser?</h3>
-
-<p>Both of these objects are <em>namespaces</em>: containers of functions, constants, and nested namespaces.</p>
-
-<p>The <code>T5</code> object is a replacement for the <code>Tapestry</code> object, starting in release 5.3.  Increasingly, functions defined by the <code>Tapestry</code> object are being replaced with similar or equivalent functions in the <code>T5</code> object.</p>
-
-<p>This is part of an overall goal, spanning at least two releases of Tapestry, to make Tapestry JavaScript framework agnostic; which is to say, not depend specifically on Prototype or jQuery.  Much of the code in the <code>Tapestry</code> object is specifically linked to Prototype and Scriptaculous.</p>
-
-<p>The <code>T5</code> object represents a stable, documented, set of APIs that are preferred when building components for maximum portability between underlying JavaScript frameworks. In other words, when building component libraries, coding to the <code>T5</code> object ensures that your component will be useful regardless of whether the final application is built using Prototype, jQuery or something else.</p></div>
+</li><li>If you have included jQuery in conjunction with Tapestry's prototype, that will cause a conflict with the '$' selector used by both. In this case, you should put jQuery on top of the stack and turn on the <a shape="rect" class="external-link" href="http://api.jquery.com/jQuery.noConflict/" >jQuery.noConflict</a> mode.</li><li>Also, if you have included a custom or third-party JS library on top of the stack that causes the JavaScript parsing to fail, then check the JavaScript syntax in that library.</li><li>If you have used a tool to minimize your JavaScript libraries, this can lead to JavaScript syntax errors, so check if it works with all the JavaScript files unpacked.</li></ul><h3 id="JavaScriptFAQ-What'sthedifferencebetweentheT5objectandtheTapestryobjectinthebrowser?(5.3andearlier)">What's the difference between the <code>T5</code> object and the <code>Tapestry</code> object in the browser? (5.3 and earlier)</h3><p>Both of these objects are <em>namespaces</em>: container
 s of functions, constants, and nested namespaces.</p><p>The <code>T5</code> object is a replacement for the <code>Tapestry</code> object, starting in release 5.3. Increasingly, functions defined by the <code>Tapestry</code> object are being replaced with similar or equivalent functions in the <code>T5</code> object.</p><p>This is part of an overall goal, spanning at least two releases of Tapestry, to make Tapestry JavaScript framework agnostic; which is to say, not depend specifically on Prototype or jQuery. Much of the code in the <code>Tapestry</code> object is specifically linked to Prototype and Scriptaculous.</p><p>The <code>T5</code> object represents a stable, documented, set of APIs that are preferred when building components for maximum portability between underlying JavaScript frameworks. In other words, when building component libraries, coding to the <code>T5</code> object ensures that your component will be useful regardless of whether the final application is built usi
 ng Prototype, jQuery or something else.</p></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/javascript-modules.html
==============================================================================
--- websites/production/tapestry/content/javascript-modules.html (original)
+++ websites/production/tapestry/content/javascript-modules.html Sun Nov  9 16:12:11 2014
@@ -65,7 +65,7 @@
 <div class="clearer"></div>
 
   <div id="breadcrumbs">
-        <a href="index.html">Apache Tapestry</a>&nbsp;&gt;&nbsp;<a href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a href="user-guide.html">User Guide</a>&nbsp;&gt;&nbsp;<a href="javascript-modules.html">JavaScript Modules</a>
+        <a href="index.html">Apache Tapestry</a>&nbsp;&gt;&nbsp;<a href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a href="user-guide.html">User Guide</a>&nbsp;&gt;&nbsp;<a href="client-side-javascript.html">Client-Side JavaScript</a>&nbsp;&gt;&nbsp;<a href="javascript-modules.html">JavaScript Modules</a>
     <a class="edit" title="Edit this page (requires approval -- just ask on the mailing list)" href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=41813130">edit</a>
   </div>
 

Modified: websites/production/tapestry/content/javascript-rewrite.html
==============================================================================
--- websites/production/tapestry/content/javascript-rewrite.html (original)
+++ websites/production/tapestry/content/javascript-rewrite.html Sun Nov  9 16:12:11 2014
@@ -62,11 +62,11 @@
 
 <div id="content">
 <div id="ConfluenceContent"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1411690823600 {padding: 0px;}
-div.rbtoc1411690823600 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1411690823600 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1415548109966 {padding: 0px;}
+div.rbtoc1415548109966 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1415548109966 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1411690823600">
+/*]]>*/</style><div class="toc-macro rbtoc1415548109966">
 <ul class="toc-indentation"><li><a shape="rect" href="#JavaScriptRewrite-TapestryandJavaScript">Tapestry and JavaScript</a></li><li><a shape="rect" href="#JavaScriptRewrite-TapestryJavaScriptLimitations(through5.3)">Tapestry JavaScript Limitations (through 5.3)</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#JavaScriptRewrite-DependenceonPrototype/Scriptaculous">Dependence on Prototype/Scriptaculous</a></li><li><a shape="rect" href="#JavaScriptRewrite-LackofDocumentation">Lack of Documentation</a></li><li><a shape="rect" href="#JavaScriptRewrite-LackofModuleStructure">Lack of Module Structure</a></li><li><a shape="rect" href="#JavaScriptRewrite-ComplexInitialization">Complex Initialization</a></li></ul>
 </li><li><a shape="rect" href="#JavaScriptRewrite-JavaScriptImprovementsfor5.4">JavaScript Improvements for 5.4</a>

Modified: websites/production/tapestry/content/legacy-javascript.html
==============================================================================
--- websites/production/tapestry/content/legacy-javascript.html (original)
+++ websites/production/tapestry/content/legacy-javascript.html Sun Nov  9 16:12:11 2014
@@ -65,7 +65,7 @@
 <div class="clearer"></div>
 
   <div id="breadcrumbs">
-        <a href="index.html">Apache Tapestry</a>&nbsp;&gt;&nbsp;<a href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a href="user-guide.html">User Guide</a>&nbsp;&gt;&nbsp;<a href="legacy-javascript.html">Legacy JavaScript</a>
+        <a href="index.html">Apache Tapestry</a>&nbsp;&gt;&nbsp;<a href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a href="user-guide.html">User Guide</a>&nbsp;&gt;&nbsp;<a href="client-side-javascript.html">Client-Side JavaScript</a>&nbsp;&gt;&nbsp;<a href="legacy-javascript.html">Legacy JavaScript</a>
     <a class="edit" title="Edit this page (requires approval -- just ask on the mailing list)" href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=21792074">edit</a>
   </div>
 

Modified: websites/production/tapestry/content/news.html
==============================================================================
--- websites/production/tapestry/content/news.html (original)
+++ websites/production/tapestry/content/news.html Sun Nov  9 16:12:11 2014
@@ -85,7 +85,12 @@ Tapestry 5.4-beta-22 contains a signific
 This release is available from the Maven Central Repository, or as a&#160;direct download.&#8230;
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=46633206">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -110,16 +115,21 @@ This release is available from the Maven
 While not an actual release candidate,&#8230;
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=41812917">Edit</a>
+                    
+                    </div>
     </div>
     
         
 <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>            </span>
+                <a shape="rect" class="userLogoLink" href="/confluence/users/editmyprofilepicture.action" title="Add a picture of yourself">
+            <img class="userLogo logo defaultLogo" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/profilepics/add_profile_pic.png" alt="User icon: Add a picture of yourself">
+        </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>
@@ -132,16 +142,21 @@ While not an actual release candidate, b
 If you're using Maven (or Gradle or Ivy, etc),&#8230;
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=39622379">Edit</a>
+                    
+                    </div>
     </div>
     
         
 <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>            </span>
+                <a shape="rect" class="userLogoLink" href="/confluence/users/editmyprofilepicture.action" title="Add a picture of yourself">
+            <img class="userLogo logo defaultLogo" src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/profilepics/add_profile_pic.png" alt="User icon: Add a picture of yourself">
+        </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>
@@ -152,7 +167,12 @@ If you're using Maven (or Gradle or Ivy,
         A vote is underway for the 3rd beta preview release of Tapestry 5.4. This follows 2 other betas and 29 alphas for the work on version 5.4 that began over two years ago.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=39620689">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -172,7 +192,12 @@ If you're using Maven (or Gradle or Ivy,
         Apache Tapestry 5.3.7: improves security and stability.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=31819912">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -192,7 +217,12 @@ If you're using Maven (or Gradle or Ivy,
         A few days ago we changed our website infrastructure from a Confluence export that gets rsync'ed over several hosts until it reaches the ASF's main web servers to a SvnPubSub based approach. Now once an hour a buildbot build exports the site from Confluence and checks the changes into SVN where they get picked up by the public facing web servers almost instantly. This allows us to keep our old website sources in Confluence but also allows us to check in static resources like JavaDocs,&#8230;
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=30752160">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -212,7 +242,12 @@ If you're using Maven (or Gradle or Ivy,
         Apache Tapestry 5.3.6: improves security and stability.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=30739033">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -232,7 +267,12 @@ If you're using Maven (or Gradle or Ivy,
         The Tapestry Team is very proud to announce the availability of Apache Tapestry 5.3.5.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=30149356">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -252,7 +292,12 @@ If you're using Maven (or Gradle or Ivy,
         The Tapestry Team is very proud to announce the availability of Apache Tapestry 5.3.4.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=29688185">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -272,7 +317,12 @@ If you're using Maven (or Gradle or Ivy,
         The Tapestry Team is very proud to announce the availability of Apache Tapestry 5.3.3.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=27844861">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -292,7 +342,12 @@ If you're using Maven (or Gradle or Ivy,
         James Ward has published a short article about how to deploy Tapestry applications on the Heroku cloud computing service: Deploy Containerless Tapestry Apps on Heroku .
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=27837807">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -312,7 +367,12 @@ If you're using Maven (or Gradle or Ivy,
         The Tapestry Team is very proud to announce the availability of Apache Tapestry 5.3.2.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=27837553">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -332,7 +392,12 @@ If you're using Maven (or Gradle or Ivy,
         The Tapestry Team is very proud to announce the availability of Apache Tapestry 5.3.1.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=27834077">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -352,7 +417,12 @@ If you're using Maven (or Gradle or Ivy,
         The Tapestry Team is very proud to announce the availability of Apache Tapestry 5.3.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=27832056">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -372,7 +442,12 @@ If you're using Maven (or Gradle or Ivy,
         We've released a new <strong>release candidate</strong> for Tapestry 5.3: Apache Tapestry <strong>5.3-rc-2</strong>.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=27830050">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -392,7 +467,12 @@ If you're using Maven (or Gradle or Ivy,
         I've created a very long, detailed discussion of the importance of Feedback as a cornerstone of Tapestry. It's available from my personal blog, howardlewisship.com.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=27828095">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -412,7 +492,12 @@ If you're using Maven (or Gradle or Ivy,
         We've released the first beta preview of Tapestry 5.3:  Tapestry <strong>5.3-beta-1</strong>.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=27825488">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -432,7 +517,12 @@ If you're using Maven (or Gradle or Ivy,
         A short screencast highlighting improvements to Tapestry's handling of server-side errors during Ajax requests
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=27824405">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -452,7 +542,12 @@ If you're using Maven (or Gradle or Ivy,
         A short screencast introducing some new components and features coming in Tapestry 5.3
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=27822931">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -472,7 +567,12 @@ If you're using Maven (or Gradle or Ivy,
         A new stable version of Tapestry is available for download, Tapestry 5.2.6.  We can recommend that all Tapestry 5.2 applications upgrade to version 5.2.6.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=27820418">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -492,7 +592,12 @@ If you're using Maven (or Gradle or Ivy,
         Apache Tapestry version 5.3.0 is now available. This is the first alpha release of Tapestry 5.3.  It is designed to be a drop-in replacement for Tapestry 5.2, adding new components and features, with lower memory utilization, and even faster startup.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=27361981">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -512,7 +617,12 @@ If you're using Maven (or Gradle or Ivy,
         We make bold claims right on the front page about performance and back that up with usually anecdotal evidence. It's nice that a <a shape="rect" class="external-link" href="http://www.jtict.com/blog/rails-wicket-grails-play-lift-jsp/" >disinterested third party has come up with their own framework performance shootout</a>, covering everthing from Rails to Play to Wicket to (thanks to Kalle) Tapestry 5.2.5.  I have to say that Tapestry significantly rocked
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=26805615">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -532,7 +642,12 @@ If you're using Maven (or Gradle or Ivy,
         The new blog Java Magic has some detailed postings about Tapestry's Aspect Oriented Programming features. This is a blog to  track if you are interested in some of the more advanced capabilities of Tapestry.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=26118772">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -563,7 +678,12 @@ Groovy in Action, Second Edition
 That really reflects some pent-up demand, and I hope to see that level of interest continue.
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=26117001">Edit</a>
+                    
+                    </div>
     </div>
     
         
@@ -584,7 +704,12 @@ That really reflects some pent-up demand
 Today I'm more in love with Tapestry 5 than ever before. I had a milestone demo at work which went well, and could actually show a good portion of a re-written website running and working! I'm at the heights of my project development. I'm sure there are still few more dark evenings loaded with frustration in store for my future,&#8230;
     </div>
     
+            
+        <div class="endsection">
         
+            <a shape="rect" href="/confluence/pages/editblogpost.action?pageId=26116911">Edit</a>
+                    
+                    </div>
     </div>
     <p>&#160;</p></div></div>
 </div>

Added: websites/production/tapestry/content/operation-tracker.html
==============================================================================
--- websites/production/tapestry/content/operation-tracker.html (added)
+++ websites/production/tapestry/content/operation-tracker.html Sun Nov  9 16:12:11 2014
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+	
+	<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<html>
+<head>
+  <meta http-equiv="x-ua-compatible" content="IE=9">
+  <title>
+    Operation Tracker -- Apache Tapestry
+  </title>
+  <link type="text/css" rel="stylesheet" href="/resources/space.css">
+
+
+  <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
+
+</head>
+<body>
+  <div class="wrapper bs">
+
+<div id="navigation"><div class="nav">
+<ul class="alternate"><li><a shape="rect" href="index.html">Home</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li><li><a shape="rect" href="documentation.html">Documentation</a></li><li><a shape="rect" href="download.html">Download</a></li><li><a shape="rect" href="about.html">About</a></li><li><a shape="rect" href="community.html">Community</a></li><li><a shape="rect" class="external-link" href="http://www.apache.org/">Apache</a></li><li><a shape="rect" class="external-link" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a shape="rect" class="external-link" href="http://www.apache.org/foundation/thanks.html">Thanks</a></li></ul>
+</div></div>
+
+<div id="top">
+<div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em">
+<p>
+<span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+</p><form enctype="application/x-www-form-urlencoded" method="get" action="http://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+<div class="emblem" style="float:left"><a shape="rect" href="index.html"><img class="confluence-embedded-image" src="https://cwiki.apache.org/confluence/download/attachments/21791252/tapestry_s.png?version=3&amp;modificationDate=1293093635000&amp;api=v2" data-image-src="/confluence/download/attachments/21791252/tapestry_s.png?version=3&amp;modificationDate=1293093635000&amp;api=v2"></a></div>
+<div class="title" style="float:left; margin: 0 0 0 3em">
+<h1 id="SmallBanner-PageTitle">Operation Tracker</h1></div></div>
+<div class="clearer"></div>
+</div>
+
+<div class="clearer"></div>
+
+  <div id="breadcrumbs">
+        <a href="index.html">Apache Tapestry</a>&nbsp;&gt;&nbsp;<a href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a href="user-guide.html">User Guide</a>&nbsp;&gt;&nbsp;<a href="ioc.html">IoC</a>&nbsp;&gt;&nbsp;<a href="operation-tracker.html">Operation Tracker</a>
+    <a class="edit" title="Edit this page (requires approval -- just ask on the mailing list)" href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=47384480">edit</a>
+  </div>
+
+<div id="content">
+<div id="ConfluenceContent"><p>Have you ever hit an error in some code and been faced with a giant stack trace, and no clue what that means? &#160;Us too. We wished there was a way for the exception to describe the path to the error not (just) in terms of which methods called which methods, but what&#160;<em>operations</em> triggered what other operations. That's the OperationTracker.</p><p>The operation tracker is another aspect of Tapestry's commitment to feedback.</p><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 &#1
 60;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] Assembling 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.Invocatio
 nTargetException<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" >java: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.ta
 pestry5.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(PageLoaderImpl.<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.a
 pache.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.ap
 ache.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.Regi
 stryImpl.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_13a0346ec83c4f75.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 c
 lear="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 cl
 ear="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.ContextHandler.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="n
 one"> 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 cle
 ar="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.AsyncHttpConnection.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 org.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.OperationException: 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 cl
 ear="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(PlasticClassPool.<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.Dat
 umEditor.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.Unclaimed
 FieldWorker.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 shape="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 ServiceConfigurationListenerHub<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.apache.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 m
 s]<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.tapestry5.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.ta
 pestry5.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.ioc.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] Regis
 try [ 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>
+
+<div class="clearer"></div>
+<div id="footer">
+<div id="footer"><p>Apache Tapestry, Tapestry, Apache, the Apache feather logo, and the Apache Tapestry project logo are trademarks of The Apache Software Foundation.<br clear="none">
+</p><p><script type="text/javascript">
+  var _gaq = _gaq || [];
+  _gaq.push(['_setAccount', 'UA-400821-1']);
+  _gaq.push(['_trackPageview']);
+
+  (function() {
+    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+  })();
+</script></p><p></p></div>
+</div>
+		<div id="comments_thread"></div>
+		<script type="text/javascript" src="https://comments.apache.org/show_comments.lua?site=tapestry&amp;page=http://tapestry.apache.org/operation-tracker.html" async="true">
+		</script>
+		<noscript>
+		<iframe width="100%" height="500" src="https://comments.apache.org/iframe.lua?site=tapestry&amp;page=http://tapestry.apache.org/operation-tracker.html"></iframe>
+		</noscript>
+  </div>
+</body>
+</html>

Propchange: websites/production/tapestry/content/operation-tracker.html
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: websites/production/tapestry/content/page-and-component-classes-faq.html
==============================================================================
--- websites/production/tapestry/content/page-and-component-classes-faq.html (original)
+++ websites/production/tapestry/content/page-and-component-classes-faq.html Sun Nov  9 16:12:11 2014
@@ -122,13 +122,13 @@ public class DBImage
 
 
 
-<span class="gliffy-container" id="gliffy-container-23527573-2710" data-fullwidth="750" data-ceoid="23335008" data-edit="${diagramEditLink.getLinkUrl()}" data-full="/confluence/plugins/gliffy/viewer.action?inline=false&amp;attachmentId=23527573&amp;attachmentVersion=4&amp;lastPage=%2Fpages%2Fviewpage.action%3FpageId%3D23335008" data-filename="Class Loaders">
+<span class="gliffy-container" id="gliffy-container-23527573-9539" data-fullwidth="750" data-ceoid="23335008" data-edit="/confluence/plugins/gliffy/editor.action?name=Class Loaders&amp;ceoid=23335008&amp;key=TAPESTRY&amp;pageId=23335008&amp;inline=false&amp;lastPage=%2Fpages%2Fviewpage.action%3FpageId%3D23335008" data-full="/confluence/plugins/gliffy/viewer.action?inline=false&amp;name=Class Loaders&amp;ceoid=23335008&amp;key=TAPESTRY&amp;pageId=23335008&amp;attachmentId=23527573&amp;attachmentVersion=4&amp;lastPage=%2Fpages%2Fviewpage.action%3FpageId%3D23335008" data-filename="Class Loaders">
 
-    <map id="gliffy-map-23527573-8024" name="gliffy-map-23527573-8024"></map>
+    <map id="gliffy-map-23527573-9685" name="gliffy-map-23527573-9685"></map>
 
-    <img class="gliffy-image" id="gliffy-image-23527573-2710" width="750" height="425" data-full-width="750" data-full-height="425" src="https://cwiki.apache.org/confluence/download/attachments/23335008/Class%20Loaders.png?version=4&amp;modificationDate=1283534469000&amp;api=v2" alt="Class Loaders" usemap="#gliffy-map-23527573-8024">
+    <img class="gliffy-image" id="gliffy-image-23527573-9539" width="750" height="425" data-full-width="750" data-full-height="425" src="https://cwiki.apache.org/confluence/download/attachments/23335008/Class%20Loaders.png?version=4&amp;modificationDate=1283534469000&amp;api=v2" alt="Class Loaders" usemap="#gliffy-map-23527573-9685">
 
-    <map class="gliffy-dynamic" id="gliffy-dynamic-map-23527573-2710" name="gliffy-dynamic-map-23527573-2710"></map>
+    <map class="gliffy-dynamic" id="gliffy-dynamic-map-23527573-9539" name="gliffy-dynamic-map-23527573-9539"></map>
 </span>
 
 

Modified: websites/production/tapestry/content/persistent-page-data.html
==============================================================================
--- websites/production/tapestry/content/persistent-page-data.html (original)
+++ websites/production/tapestry/content/persistent-page-data.html Sun Nov  9 16:12:11 2014
@@ -99,105 +99,35 @@
                 
                             </div>
         </li></ul>
-</div> 
-
-<h1 id="PersistentPageData-PersistentPageData">Persistent Page Data</h1>
-
-    <div class="aui-message hint shadowed information-macro">
+</div><h1 id="PersistentPageData-PersistentPageData">Persistent Page Data</h1>    <div class="aui-message hint shadowed information-macro">
                             <span class="aui-icon icon-hint">Icon</span>
                 <div class="message-content">
                             <p>The use of the term "persistence" here refers to <em>page-level</em> persistence, NOT database persistence.</p>
                     </div>
     </div>
-
-
-<p>Most instance variables in Tapestry are automatically cleared at the end of each request. This is important, as it pertains to how Tapestry pages are shared, over time, by many users.</p>
-
-<p>However, you often want to store some data on a <em>single</em> page, and have access to it in later requests to that same page, without having to store it in a database between requests.  (To store values across multiple pages, see <a shape="rect" href="session-storage.html">Session Storage</a>.)</p>
-
-<p>Making page data persist across requests to a single page is accomplished with the @<a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Persist.html">Persist</a> annotation. This annotation is applied to private instance fields of components:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-  @Persist
+<p>Most instance variables in Tapestry are automatically cleared at the end of each request. This is important, as it pertains to how Tapestry pages are shared, over time, by many users.</p><p>However, you often want to store some data on a <em>single</em> page, and have access to it in later requests to that same page, without having to store it in a database between requests. (To store values across multiple pages, see <a shape="rect" href="session-storage.html">Session Storage</a>.)</p><p>Making page data persist across requests to a single page is accomplished with the @<a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Persist.html">Persist</a> annotation. This annotation is applied to private instance fields of components:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[  @Persist
   private int value;
 ]]></script>
-</div></div>
-
-<p>Such annotated fields will retain their state between requests. Generally, speaking, this means that the value is stored into the session (but other approaches are possible).</p>
-
-<p>Whenever you make a change to a persistent field, its value is saved. On later requests to the same page, the value for the field is restored.</p>
-
-<h2 id="PersistentPageData-PersistenceStrategies">Persistence Strategies</h2>
-
-<p>The value for each field is the <em>strategy</em> used to store the field between requests.</p>
-
-<h3 id="PersistentPageData-SessionStrategy">Session Strategy</h3>
-
-<p>The session strategy stores field changes into the session; the session is created as necessary.</p>
-
-<p>A suitably long session attribute name is used; it incorporates the name of the page, the nested component id, and the name of the field.</p>
-
-<p>Session strategy is the default strategy used unless otherwise overridden.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Example: Session Strategy</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-  @Persist
+</div></div><p>Such annotated fields will retain their state between requests. Generally, speaking, this means that the value is stored into the session (but other approaches are possible).</p><p>Whenever you make a change to a persistent field, its value is saved. On later requests to the same page, the value for the field is restored.</p><h2 id="PersistentPageData-PersistenceStrategies">Persistence Strategies</h2><p>The value for each field is the <em>strategy</em> used to store the field between requests.</p><h3 id="PersistentPageData-SessionStrategy">Session Strategy</h3><p>The session strategy stores field changes into the session; the session is created as necessary.</p><p>A suitably long session attribute name is used; it incorporates the name of the page, the nested component id, and the name of the field.</p><p>Session strategy is the default strategy used unless otherwise overridden.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHead
 er pdl" style="border-bottom-width: 1px;"><b>Example: Session Strategy</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[  @Persist
   private int value;
 ]]></script>
-</div></div>
-
-<h3 id="PersistentPageData-FlashStrategy">Flash Strategy</h3>
-
-<p>The flash strategy stores information in the session as well, just for not very long. Values are stored into the session, but then deleted from the session as they are first used to restore a page's state.</p>
-
-<p>The flash is typically used to store temporary messages that should only be displayed to the user once.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Example: Flash Strategy</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-  @Persist(PersistenceConstants.FLASH)
+</div></div><h3 id="PersistentPageData-FlashStrategy">Flash Strategy</h3><p>The flash strategy stores information in the session as well, just for not very long. Values are stored into the session, but then deleted from the session as they are first used to restore a page's state.</p><p>The flash is typically used to store temporary messages that should only be displayed to the user once.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Example: Flash Strategy</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[  @Persist(PersistenceConstants.FLASH)
   private int value;
 ]]></script>
-</div></div>
-
-<h3 id="PersistentPageData-ClientStrategy">Client Strategy</h3>
-
-<p>The field is persisted onto the client; you will see an additional query parameter in each URL (or an extra hidden field in each form).</p>
-
-<p>Client persistence is somewhat expensive. It can bloat the size of the rendered pages by adding hundreds of characters to each link. There is extra processing on each request to de-serialize the values encoded into the query parameter.</p>
-
-<p>Client persistence does not scale very well; as more information is stored into the query parameter, its length can become problematic. In many cases, web browsers, firewalls or other servers may silently truncate the URL which will break the application.</p>
-
-<p>Use client persistence with care, and store a minimal amount of data. Try to store the identity (that is, primary key) of an object, rather than the object itself.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Example: Client Strategy</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-  @Persist(PersistenceConstants.CLIENT)
+</div></div><h3 id="PersistentPageData-ClientStrategy">Client Strategy</h3><p>The field is persisted onto the client; you will see an additional query parameter in each URL (or an extra hidden field in each form).</p><p>Client persistence is somewhat expensive. It can bloat the size of the rendered pages by adding hundreds of characters to each link. There is extra processing on each request to de-serialize the values encoded into the query parameter.</p><p>Client persistence does not scale very well; as more information is stored into the query parameter, its length can become problematic. In many cases, web browsers, firewalls or other servers may silently truncate the URL which will break the application.</p><p>Use client persistence with care, and store a minimal amount of data. Try to store the identity (that is, primary key) of an object, rather than the object itself.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="bord
 er-bottom-width: 1px;"><b>Example: Client Strategy</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[  @Persist(PersistenceConstants.CLIENT)
   private int value;
 ]]></script>
-</div></div>
-
-<h2 id="PersistentPageData-PersistenceStrategyInheritance">Persistence Strategy Inheritance</h2>
-
-<p>By default the value for the Persist annotation is the empty string. When this is true, then the actual strategy to be used is determined by a search up the component hierarchy.</p>
-
-<p>For each component, the meta-data property <code>tapestry.persistence-strategy</code> is checked. This can be specified using the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Meta.html">Meta</a> annotation.</p>
-
-<p>If the value is non-blank, then that strategy is used. This allows a component to control the persistence strategy used inside any sub-components (that don't explicitly use a different strategy).</p>
-
-<p>In any case, if no component provides the meta data, then the ultimate default, "session", is used.</p>
-
-<h2 id="PersistentPageData-DefaultValues">Default Values</h2>
-
-<p>Fields marked with @Persist may not have default values (whether set inline, or inside a constructor).</p>
-
-<h2 id="PersistentPageData-ClearingPersistentFields">Clearing Persistent Fields</h2>
-
-<p>If you reach a point where you know that all data for a page can be discarded, you can do exactly that.</p>
-
-<p>The method <code>discardPersistentFieldChanges()</code> of ComponentResources will discard all persistent fields for the page, regardless of which strategy is used to store the property. This will not affect the page in memory, but takes effect for subsequent requests.</p>
-
-<h2 id="PersistentPageData-ClusteringIssues">Clustering Issues</h2>
+</div></div><h3 id="PersistentPageData-HibernateEntityStrategy">Hibernate Entity Strategy</h3><p><span style="line-height: 1.4285715;">Entity persistence is provided by either the tapestry-hibernate modules (which extend Tapestry with new features).</span></p><p>In Entity persistence, the field should store a Hibernate entity instance.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>"Hibernate Entity Strategy"</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[  @Persist(HibernatePersistenceConstants.ENTITY)
+  private User user;]]></script>
+</div></div><p>&#160;</p><p>The value stored in the HttpSession is a&#160;<em>token</em> for the entity: its Java class name and primary key. When the field is restored in a later request, the entity is re-instantiated using that data.</p><p>What is&#160;<em>not</em> stored is any changes to the persistent entity that are not committed to the external datastore (the database).</p><p>Starting in Tapestry 5.4, it is possible to store a non-persistent entity (a transient entity). A transient entity is stored directly into the HttpSession, and should be Serializable if the application is clustered.</p><h3 id="PersistentPageData-JPAEntityStrategy">JPA Entity Strategy</h3><p>The tapestry-jpa module introduces a similar strategy (also with the name "entity"). However, at the current time it may only store a persisted entity (one that has been saved to the database and has a primary key).</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style
 ="border-bottom-width: 1px;"><b>"Example: JPA Entity Strategy"</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[  @Persist(JpaPersistenceConstants.ENTITY)
+  private Account account;]]></script>
+</div></div><p><span style="color: rgb(83,145,38);font-size: 20.0px;line-height: 1.5;">Persistence Strategy Inheritance</span></p><p>By default the value for the Persist annotation is the empty string. When this is true, then the actual strategy to be used is determined by a search up the component hierarchy.</p><p>For each component, the meta-data property <code>tapestry.persistence-strategy</code> is checked. This can be specified using the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Meta.html">Meta</a> annotation.</p><p>If the value is non-blank, then that strategy is used. This allows a component to control the persistence strategy used inside any sub-components (that don't explicitly use a different strategy).</p><p>In any case, if no component provides the meta data, then the ultimate default, "session", is used.</p><h2 id="PersistentPageData-DefaultValues">Default Values</h2><p>Fields marked with @Per
 sist may not have default values (whether set inline, or inside a constructor).</p><h2 id="PersistentPageData-ClearingPersistentFields">Clearing Persistent Fields</h2><p>If you reach a point where you know that all data for a page can be discarded, you can do exactly that.</p><p>The method <code>discardPersistentFieldChanges()</code> of ComponentResources will discard all persistent fields for the page, regardless of which strategy is used to store the property. This will not affect the page in memory, but takes effect for subsequent requests.</p><p></p><h2 id="PersistentPageData-ClusteringIssues">Clustering Issues</h2>
 
 <p>The Servlet API was designed with the intention that there would be only a modest amount of server-side state, and that the stored values would be individual numbers and strings, and thus, immutable.</p>
 
@@ -223,7 +153,13 @@
 
 <h3 id="PersistentPageData-SessionPersistedObjectAnalyzerService">SessionPersistedObjectAnalyzer Service</h3>
 
-<p>The <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/SessionPersistedObjectAnalyzer.html">SessionPersistedObjectAnalyzer</a> service is ultimately responsible for determining whether a session persisted object is dirty or not (dirty meaning in need of a restore into the session). This is an extensible service where new strategies, for new classes, can be introduced.</p></div>
+<p>The <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/SessionPersistedObjectAnalyzer.html">SessionPersistedObjectAnalyzer</a> service is ultimately responsible for determining whether a session persisted object is dirty or not (dirty meaning in need of a restore into the session). This is an extensible service where new strategies, for new classes, can be introduced.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Example: Entity Session Strategy</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[  @Persist(HibernatePersistenceConstants.ENTITY)
+  private User user;]]></script>
+</div></div><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>"Example:JAP Session Strategy"</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[  @Persist(JpaPersistenceConstants.ENTITY)
+  private Account account;]]></script>
+</div></div></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/release-notes-50.html
==============================================================================
--- websites/production/tapestry/content/release-notes-50.html (original)
+++ websites/production/tapestry/content/release-notes-50.html Sun Nov  9 16:12:11 2014
@@ -75,11 +75,11 @@ table.ScrollbarTable td.ScrollbarNextIco
 
 <p><strong>Contents</strong></p>
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1411690820514 {padding: 0px;}
-div.rbtoc1411690820514 ul {list-style: disc;margin-left: 0px;padding-left: 5px;}
-div.rbtoc1411690820514 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1415548156054 {padding: 0px;}
+div.rbtoc1415548156054 ul {list-style: disc;margin-left: 0px;padding-left: 5px;}
+div.rbtoc1415548156054 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1411690820514">
+/*]]>*/</style><div class="toc-macro rbtoc1415548156054">
 <ul class="toc-indentation"><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.19">Tapestry Version 5.0.19</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.18">Tapestry Version 5.0.18</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.17">Tapestry Version 5.0.17</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.16">Tapestry Version 5.0.16</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.15">Tapestry Version 5.0.15</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.14">Tapestry Version 5.0.14</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.13">Tapestry Version 5.0.13</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.12">Tapestry Version 5.0.12</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.11">Tapestry Version 5.0.11</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.10">Tapestry Version 5.0.
 10</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.9">Tapestry Version 5.0.9</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.8">Tapestry Version 5.0.8</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.7">Tapestry Version 5.0.7</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.6">Tapestry Version 5.0.6</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.5">Tapestry Version 5.0.5</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.4">Tapestry Version 5.0.4</a></li><li><a shape="rect" href="#ReleaseNotes5.0-TapestryVersion5.0.3">Tapestry Version 5.0.3</a></li></ul>
 </div>
 

Modified: websites/production/tapestry/content/release-notes-51.html
==============================================================================
--- websites/production/tapestry/content/release-notes-51.html (original)
+++ websites/production/tapestry/content/release-notes-51.html Sun Nov  9 16:12:11 2014
@@ -75,11 +75,11 @@ table.ScrollbarTable td.ScrollbarNextIco
 
 <p><strong>Contents</strong></p>
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1411690820861 {padding: 0px;}
-div.rbtoc1411690820861 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1411690820861 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1415548084512 {padding: 0px;}
+div.rbtoc1415548084512 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1415548084512 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1411690820861">
+/*]]>*/</style><div class="toc-macro rbtoc1415548084512">
 <ul class="toc-indentation"><li><a shape="rect" href="#ReleaseNotes5.1-TapestryVersion5.1.0.5">Tapestry Version 5.1.0.5</a></li><li><a shape="rect" href="#ReleaseNotes5.1-TapestryVersion5.1.0.4">Tapestry Version 5.1.0.4</a></li><li><a shape="rect" href="#ReleaseNotes5.1-TapestryVersion5.1.0.3">Tapestry Version 5.1.0.3</a></li><li><a shape="rect" href="#ReleaseNotes5.1-TapestryVersion5.1.0.2">Tapestry Version 5.1.0.2</a></li><li><a shape="rect" href="#ReleaseNotes5.1-TapestryVersion5.1.0.1">Tapestry Version 5.1.0.1</a></li><li><a shape="rect" href="#ReleaseNotes5.1-TapestryVersion5.1.0.0">Tapestry Version 5.1.0.0</a></li></ul>
 </div>