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>
 


Reply via email to