You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by bu...@apache.org on 2019/08/26 21:20:29 UTC

svn commit: r1049259 [5/5] - in /websites/production/tapestry/content: ./ cache/

Modified: websites/production/tapestry/content/release-notes-54.html
==============================================================================
--- websites/production/tapestry/content/release-notes-54.html (original)
+++ websites/production/tapestry/content/release-notes-54.html Mon Aug 26 21:20:28 2019
@@ -77,7 +77,30 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p>This is the consolidated list of changes between Tapestry versions 5.3 and 5.4. To upgrade to 5.4, most users who are not using deprecated features will be able to just update the dependency version in their Maven POM file or Gradle build script (or <a  href="download.html">download</a> the new JAR files) and the new version will just work, although the introduction of Bootstrap CSS will require some styling adjustments for most applications not already using Bootstrap. Please read carefully below before upgrading, and also review the&#160;<a  href="how-to-upgrade.html">How to Upgrade</a> instructions.</p><h2 id="ReleaseNotes5.4-IncompatibleAPIs">Incompatible APIs</h2><h3 id="ReleaseNotes5.4-JavaScriptSupport">JavaScriptSupport</h3><p>Some existing methods of JavaScriptSupport were changed from returning void, to returning the JavaScriptSupport instance, to allow for chaining of calls. This interface is consumed by end-user code, but no
 t generally implemented by end-user code.</p><h2 id="ReleaseNotes5.4-BreakingFeatures">Breaking Features</h2><h3 id="ReleaseNotes5.4-ClassFactoryRemoved">ClassFactory Removed</h3><p>Tapestry's use of the <a  class="external-link" href="http://www.csg.is.titech.ac.jp/~chiba/javassist/" rel="nofollow">Javassist</a> bytecode library has been completely removed, along with many related services, such as <a  class="external-link" href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/ioc/services/ClassFactory.html">ClassFactory</a>, that were deprecated in 5.3. Use <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/services/PlasticProxyFactory.html">PlasticProxyFactory</a> instead. Most users will not be affected by this unless they relied on Tapestry's dependency on Javassist.</p><h3 id="ReleaseNotes5.4-ClientBehaviorSupportFunctionalityRemoved">ClientBehaviorSupport Functionality Removed</h3><p>This service collected details a
 bout zone usage, including the client-side behavior associated with <code>FormFragment</code>s. This interface is only kept for binary compatibility in Tapestry 5.4; the implementation no longer does anything but throw exceptions and will be removed in 5.5 or later.</p><h3 id="ReleaseNotes5.4-FormInjectorRemoved">FormInjector Removed</h3><p>The FormInjector component was removed; it was intended for use only inside the AjaxFormLoop component (which was rewritten in 5.4 and no longer uses FormInjector). FormInjector was not widely used elsewhere, if it was used at all.</p><h3 id="ReleaseNotes5.4-MarkupWriterFactoryAPIChanged">MarkupWriterFactory API Changed</h3><p>The <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/MarkupWriterFactory.html">MarkupWriterFactory</a> interface has 3 new methods, added to support the HTML5 rules for element endings. If you have any classes that <em>implement</em> MarkupWriterFactory (which is rare)
 , they'll need to be modified to implement the new methods. As noted in the <a  class="external-link" href="http://tapestry.apache.org/5.4/apidocs/org/apache/tapestry5/services/ClientBehaviorSupport.html">Javadocs</a>, use JavaScriptSupport directly instead.</p><h3 id="ReleaseNotes5.4-InjectedScriptsatBottom">Injected Scripts at Bottom</h3><p>In prior versions of Tapestry, JavaScript libraries injected into the page (via the @<a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Import.html">Import</a> annotation, or via <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/javascript/JavaScriptSupport.html">JavaScriptSupport</a>), were injected into the &lt;head&gt; element of the HTML page, either at the end of the element, or before any existing &lt;script&gt; element.</p><p>With this release, the Tapestry integrates with <a  class="external-link" href="http://requirejs.org/" 
 rel="nofollow">RequireJS</a> to dynamically load libraries. This may affect a small number of JavaScript libraries, such as <a  class="external-link" href="http://www.google.com/analytics/" rel="nofollow">Google Analytics</a> that need to be placed at the top of the page; in those cases, the library should be added to the template of your application's main layout component, instead of relying on @Import and JavaScriptSupport.</p><h3 id="ReleaseNotes5.4-NoRedirectOnFormValidationErrors">No Redirect On Form Validation Errors</h3><p>In prior releases of Tapestry, when a client-side form was submitted and there were server-side validation errors, Tapestry would perform a redirect-after-post to re-render the page; this meant that the <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ValidationTracker.html">ValidationTracker</a> object that stores validation errors would, itself, need to persist to the new render request, causing a server-sid
 e session to be created. Starting in 5.4, the default behavior for server-side validation exceptions is to re-render the page content immediately, within the same request; this obviates the need to use a persistent field to store the tracker.</p><h2 id="ReleaseNotes5.4-NewFeatures">New Features</h2><h3 id="ReleaseNotes5.4-Componentfieldvisibility">Component field visibility</h3><p>In prior versions of Tapestry, all instance fields of components had to be visibility private; starting with versions 5.3.2 and 5.4, this has been relaxed. Component fields may be protected, or package private (that is, no visibility modifier). Fields that are final, or annotated with @<a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Retain.html">Retain</a> may even be public. In any case, this makes it easier for pages to work with other pages in the same package, and for subclasses to more easily access the fields (including parameter fields, or 
 injections) provided by base classes. This feature should be used with care, as it can lead to designs that are more difficult to maintain.</p><h3 id="ReleaseNotes5.4-JavaScriptModules">JavaScript Modules</h3><p>Prior releases of Tapestry primarily organized client-side logic in terms of JavaScript libraries. These libraries can be declaratively imported into the page (either during a full-page render, or during an Ajax partial page update). In addition, libraries can be combined together into <em>stacks</em>, which (in a production application) are combined into a single virtual asset.</p><p>The library approach is <a  href="javascript-rewrite-in-54.html">fundamentally limited in a number of ways</a>, including namespace pollution and dealing with dependencies between libraries. Tapestry 5.4 introduces a parallel mechanism, based on <a  class="external-link" href="http://requirejs.org" rel="nofollow">RequireJS</a> and the <a  class="external-link" href="https://github.com/amdjs/amd
 js-api/wiki/AMD" rel="nofollow">Asynchronous Module Definition</a> as a way to speed up initial page load and organize client-side JavaScript in a more expressive and maintainable way.</p><h3 id="ReleaseNotes5.4-Client-sideAPIforinvokingserver-sideevents">Client-side API for invoking server-side events</h3><p>Tapestry 5.4.2 adds an API which makes it easy for server-side events to be invoked from JavaScript. In the server-side, you first need to annotate the event handler methods you want exposed with the new&#160;<code>@PublishEvent</code> annotation. Then, in JS, all you need to do is to call the&#160;<code>t5/core/ajax</code>&#160;function with the server-side event name/type in the <code>url</code> parameter and&#160;with an&#160;<code>options</code> parameter containing an&#160;<code>element</code> property, be it null or specifying an DOM element to be used as the starting point for finding the event information. More details in the&#160;<a  href="ajax-and-zones.html">Ajax and
  Zones page</a>.</p><h2>        Sub-task
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="release-notes-538.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Release Notes 5.3.8</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  href="release-notes.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Release Notes</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a  href="release-notes-541.html" rel="next">
+                <span class="title">Release Notes 5.4.1</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div>This is the consolidated list of changes between Tapestry versions 5.3 and 5.4. To upgrade to 5.4, most users who are not using deprecated features will be able to just update the dependency version in their Maven POM file or Gradle build script (or <a  href="download.html">download</a> the new JAR files) and the new version will just work, although the introduction of Bootstrap CSS will require some styling adjustments for most applications not already using Bootstrap. Please read carefully below before upgrading, and also review the&#160;<a  href="how-to-upgrade.html">How to Upgrade</a> instructions.<h2 id="ReleaseNotes5.4-IncompatibleAPIs">Incompatible APIs</h2><h3 id="ReleaseNotes5.4-JavaScriptSupport">JavaScriptSupport</h3><p>Some existing methods of JavaScriptSupport were changed from returning void, to returning the JavaScriptSupport instance, to allow for chaining of calls. This interface is consumed by end-user code, but not generally implemented by end-user code.</p>
 <h2 id="ReleaseNotes5.4-BreakingFeatures">Breaking Features</h2><h3 id="ReleaseNotes5.4-ClassFactoryRemoved">ClassFactory Removed</h3><p>Tapestry's use of the <a  class="external-link" href="http://www.csg.is.titech.ac.jp/~chiba/javassist/" rel="nofollow">Javassist</a> bytecode library has been completely removed, along with many related services, such as <a  class="external-link" href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/ioc/services/ClassFactory.html">ClassFactory</a>, that were deprecated in 5.3. Use <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/services/PlasticProxyFactory.html">PlasticProxyFactory</a> instead. Most users will not be affected by this unless they relied on Tapestry's dependency on Javassist.</p><h3 id="ReleaseNotes5.4-ClientBehaviorSupportFunctionalityRemoved">ClientBehaviorSupport Functionality Removed</h3><p>This service collected details about zone usage, including the client-side be
 havior associated with <code>FormFragment</code>s. This interface is only kept for binary compatibility in Tapestry 5.4; the implementation no longer does anything but throw exceptions and will be removed in 5.5 or later.</p><h3 id="ReleaseNotes5.4-FormInjectorRemoved">FormInjector Removed</h3><p>The FormInjector component was removed; it was intended for use only inside the AjaxFormLoop component (which was rewritten in 5.4 and no longer uses FormInjector). FormInjector was not widely used elsewhere, if it was used at all.</p><h3 id="ReleaseNotes5.4-MarkupWriterFactoryAPIChanged">MarkupWriterFactory API Changed</h3><p>The <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/MarkupWriterFactory.html">MarkupWriterFactory</a> interface has 3 new methods, added to support the HTML5 rules for element endings. If you have any classes that <em>implement</em> MarkupWriterFactory (which is rare), they'll need to be modified to implement th
 e new methods. As noted in the <a  class="external-link" href="http://tapestry.apache.org/5.4/apidocs/org/apache/tapestry5/services/ClientBehaviorSupport.html">Javadocs</a>, use JavaScriptSupport directly instead.</p><h3 id="ReleaseNotes5.4-InjectedScriptsatBottom">Injected Scripts at Bottom</h3><p>In prior versions of Tapestry, JavaScript libraries injected into the page (via the @<a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Import.html">Import</a> annotation, or via <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/javascript/JavaScriptSupport.html">JavaScriptSupport</a>), were injected into the &lt;head&gt; element of the HTML page, either at the end of the element, or before any existing &lt;script&gt; element.</p><p>With this release, the Tapestry integrates with <a  class="external-link" href="http://requirejs.org/" rel="nofollow">RequireJS</a> to dynamically l
 oad libraries. This may affect a small number of JavaScript libraries, such as <a  class="external-link" href="http://www.google.com/analytics/" rel="nofollow">Google Analytics</a> that need to be placed at the top of the page; in those cases, the library should be added to the template of your application's main layout component, instead of relying on @Import and JavaScriptSupport.</p><h3 id="ReleaseNotes5.4-NoRedirectOnFormValidationErrors">No Redirect On Form Validation Errors</h3><p>In prior releases of Tapestry, when a client-side form was submitted and there were server-side validation errors, Tapestry would perform a redirect-after-post to re-render the page; this meant that the <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ValidationTracker.html">ValidationTracker</a> object that stores validation errors would, itself, need to persist to the new render request, causing a server-side session to be created. Starting in 5.4, the
  default behavior for server-side validation exceptions is to re-render the page content immediately, within the same request; this obviates the need to use a persistent field to store the tracker.</p><h2 id="ReleaseNotes5.4-NewFeatures">New Features</h2><h3 id="ReleaseNotes5.4-Componentfieldvisibility">Component field visibility</h3><p>In prior versions of Tapestry, all instance fields of components had to be visibility private; starting with versions 5.3.2 and 5.4, this has been relaxed. Component fields may be protected, or package private (that is, no visibility modifier). Fields that are final, or annotated with @<a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Retain.html">Retain</a> may even be public. In any case, this makes it easier for pages to work with other pages in the same package, and for subclasses to more easily access the fields (including parameter fields, or injections) provided by base classes. This fe
 ature should be used with care, as it can lead to designs that are more difficult to maintain.</p><h3 id="ReleaseNotes5.4-JavaScriptModules">JavaScript Modules</h3><p>Prior releases of Tapestry primarily organized client-side logic in terms of JavaScript libraries. These libraries can be declaratively imported into the page (either during a full-page render, or during an Ajax partial page update). In addition, libraries can be combined together into <em>stacks</em>, which (in a production application) are combined into a single virtual asset.</p><p>The library approach is <a  href="javascript-rewrite-in-54.html">fundamentally limited in a number of ways</a>, including namespace pollution and dealing with dependencies between libraries. Tapestry 5.4 introduces a parallel mechanism, based on <a  class="external-link" href="http://requirejs.org" rel="nofollow">RequireJS</a> and the <a  class="external-link" href="https://github.com/amdjs/amdjs-api/wiki/AMD" rel="nofollow">Asynchronous 
 Module Definition</a> as a way to speed up initial page load and organize client-side JavaScript in a more expressive and maintainable way.</p><h3 id="ReleaseNotes5.4-Client-sideAPIforinvokingserver-sideevents">Client-side API for invoking server-side events</h3><p>Tapestry 5.4.2 adds an API which makes it easy for server-side events to be invoked from JavaScript. In the server-side, you first need to annotate the event handler methods you want exposed with the new&#160;<code>@PublishEvent</code> annotation. Then, in JS, all you need to do is to call the&#160;<code>t5/core/ajax</code>&#160;function with the server-side event name/type in the <code>url</code> parameter and&#160;with an&#160;<code>options</code> parameter containing an&#160;<code>element</code> property, be it null or specifying an DOM element to be used as the starting point for finding the event information. More details in the&#160;<a  href="ajax-and-zones.html">Ajax and Zones page</a>.</p><h2>        Sub-task
 </h2>
 <ul><li>[<a  href="https://issues.apache.org/jira/browse/TAP5-2445">TAP5-2445</a>] -         Reduce usage of PerthreadMap in AbstractConditional
 </li><li>[<a  href="https://issues.apache.org/jira/browse/TAP5-2446">TAP5-2446</a>] -         Use ObjectCreator instead of PerThreadValue when appropriate
@@ -599,14 +622,47 @@
 </li><li>[<a  href="https://issues.apache.org/jira/browse/TAP5-2353">TAP5-2353</a>] -         It should be possible to unregister DOM event listeners
 </li></ul>
 
-</div>
+    
+<div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="release-notes-538.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Release Notes 5.3.8</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  href="release-notes.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Release Notes</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a  href="release-notes-541.html" rel="next">
+                <span class="title">Release Notes 5.4.1</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div></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></p><div class="aui-message aui-message-error"><p class="title"><strong>Error rendering macro 'html'</strong></p><p>Your Confluence administrator has disallowed the use of Javascript in the HTML macro.  This setting can be changed using  HTML for Confluence Configuration.  Please see your administrator for details.</p></div><p></p></div>
+</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>

Modified: websites/production/tapestry/content/release-upgrade-faq.html
==============================================================================
--- websites/production/tapestry/content/release-upgrade-faq.html (original)
+++ websites/production/tapestry/content/release-upgrade-faq.html Mon Aug 26 21:20:28 2019
@@ -77,21 +77,69 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 id="ReleaseUpgradeFAQ-ReleaseUpgrade">Release Upgrade</h1><p>Main Article: <a  href="release-upgrade-faq.html">Release Upgrade FAQ</a></p><h2 id="ReleaseUpgradeFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1566728412688 {padding: 0px;}
-div.rbtoc1566728412688 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1566728412688 li {margin-left: 0px;padding-left: 0px;}
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="maven-support-faq.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Maven Support FAQ</span>
+            </a>
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1566728412688">
+    </div>
+    <div class="parent">
+                    <a  href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
+
+            </div>
+    <div class="next">
+        
+    </div>
+</div><h1 id="ReleaseUpgradeFAQ-ReleaseUpgrade">Release Upgrade</h1><p>Main Article: <a  href="release-upgrade-faq.html">Release Upgrade FAQ</a></p><h2 id="ReleaseUpgradeFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1566854395964 {padding: 0px;}
+div.rbtoc1566854395964 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1566854395964 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1566854395964">
 <ul class="toc-indentation"><li><a  href="#ReleaseUpgradeFAQ-WhydoIgetanexceptionaboutorg.apache.tapestry5.internal.services.RequestPathOptimizerafterupgradingto5.2?">Why do I get an exception about org.apache.tapestry5.internal.services.RequestPathOptimizer after upgrading to 5.2?</a></li></ul>
-</div><h2 id="ReleaseUpgradeFAQ-WhydoIgetanexceptionaboutorg.apache.tapestry5.internal.services.RequestPathOptimizerafterupgradingto5.2?">Why do I get an exception about org.apache.tapestry5.internal.services.RequestPathOptimizer after upgrading to 5.2?</h2><p>Although Tapestry works very hard to keep backwards compatibility between releases for <em>public</em> APIs, all <em>internal</em> APIs are subject to change. This error is commonly due to the use of the ChenilleKit library, which makes use of some internal APIs. You must also upgrade your ChenilleKit dependency when moving from Tapestry 5.1 to 5.2 or later. See the <a  class="external-link" href="http://tapestry.markmail.org/thread/3cj2wuvl4idnpmjr" rel="nofollow">complete discussion of this from the Tapestry user mailing list</a>.</p></div>
+</div><h2 id="ReleaseUpgradeFAQ-WhydoIgetanexceptionaboutorg.apache.tapestry5.internal.services.RequestPathOptimizerafterupgradingto5.2?">Why do I get an exception about org.apache.tapestry5.internal.services.RequestPathOptimizer after upgrading to 5.2?</h2><p>Although Tapestry works very hard to keep backwards compatibility between releases for <em>public</em> APIs, all <em>internal</em> APIs are subject to change. This error is commonly due to the use of the ChenilleKit library, which makes use of some internal APIs. You must also upgrade your ChenilleKit dependency when moving from Tapestry 5.1 to 5.2 or later. See the <a  class="external-link" href="http://tapestry.markmail.org/thread/3cj2wuvl4idnpmjr" rel="nofollow">complete discussion of this from the Tapestry user mailing list</a>.    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="maven-support-faq.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Maven Support FAQ</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
+
+            </div>
+    <div class="next">
+        
+    </div>
+</div></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></p><div class="aui-message aui-message-error"><p class="title"><strong>Error rendering macro 'html'</strong></p><p>Your Confluence administrator has disallowed the use of Javascript in the HTML macro.  This setting can be changed using  HTML for Confluence Configuration.  Please see your administrator for details.</p></div><p></p></div>
+</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>

Modified: websites/production/tapestry/content/request-processing-faq.html
==============================================================================
--- websites/production/tapestry/content/request-processing-faq.html (original)
+++ websites/production/tapestry/content/request-processing-faq.html Mon Aug 26 21:20:28 2019
@@ -77,12 +77,35 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 id="RequestProcessingFAQ-RequestProcessing">Request Processing</h1><h2 id="RequestProcessingFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1566728408227 {padding: 0px;}
-div.rbtoc1566728408227 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1566728408227 li {margin-left: 0px;padding-left: 0px;}
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="integration-with-existing-applications.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Integration with existing applications</span>
+            </a>
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1566728408227">
+    </div>
+    <div class="parent">
+                    <a  href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a  href="limitations.html" rel="next">
+                <span class="title">Limitations</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h1 id="RequestProcessingFAQ-RequestProcessing">Request Processing</h1><h2 id="RequestProcessingFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1566854393777 {padding: 0px;}
+div.rbtoc1566854393777 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1566854393777 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1566854393777">
 <ul class="toc-indentation"><li><a  href="#RequestProcessingFAQ-HowdoIgetTapestrytonothandlearequest?">How do I get Tapestry to not handle a request?</a></li></ul>
 </div><h2 id="RequestProcessingFAQ-HowdoIgetTapestrytonothandlearequest?">How do I get Tapestry to <strong>not</strong> handle a request?</h2><p>Often, when <a  href="integration-with-existing-applications.html">integrating with outside libraries, or working with legacy code</a>, you will want Tapestry to ignore a request and let the normal servlet or other processing handle the request.</p><p>The easy way to do this is to contribute a regular expression to the <a  href="configuration.html">IgnoredPathsFilter service</a>, whose job is to exclude some requests.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Default" data-theme="Default">public static void contributeIgnoredPathsFilter(Configuration&lt;String&gt; configuration)
@@ -90,14 +113,47 @@ div.rbtoc1566728408227 li {margin-left:
     configuration.add("/dwr/.*");
   }
 </pre>
-</div></div><p>Alternately, you may contribute a <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestFilter.html">HttpServletRequestFilter</a> to the <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestHandler.html">HttpServletRequestHandler</a> pipeline. A filter that simply returns false from its <code>service()</code> method will cause Tapestry to hand off the request to the servlet container for normal handling. You would use this approach when a simple regular expression is not sufficient to identify which requests should be ignored.</p><p>Alternately, you can configure the Tapestry application to execute inside a folder to avoid conflicts. See the notes on the <a  href="configuration.html">configuration page</a>.</p></div>
+</div></div><p>Alternately, you may contribute a <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestFilter.html">HttpServletRequestFilter</a> to the <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/HttpServletRequestHandler.html">HttpServletRequestHandler</a> pipeline. A filter that simply returns false from its <code>service()</code> method will cause Tapestry to hand off the request to the servlet container for normal handling. You would use this approach when a simple regular expression is not sufficient to identify which requests should be ignored.</p><p>Alternately, you can configure the Tapestry application to execute inside a folder to avoid conflicts. See the notes on the <a  href="configuration.html">configuration page</a>.    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="integration-with-existing-applications.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Integration with existing applications</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a  href="limitations.html" rel="next">
+                <span class="title">Limitations</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div></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></p><div class="aui-message aui-message-error"><p class="title"><strong>Error rendering macro 'html'</strong></p><p>Your Confluence administrator has disallowed the use of Javascript in the HTML macro.  This setting can be changed using  HTML for Confluence Configuration.  Please see your administrator for details.</p></div><p></p></div>
+</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>

Modified: websites/production/tapestry/content/security-faq.html
==============================================================================
--- websites/production/tapestry/content/security-faq.html (original)
+++ websites/production/tapestry/content/security-faq.html Mon Aug 26 21:20:28 2019
@@ -77,12 +77,35 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 id="SecurityFAQ-Security">Security</h1><p>Main Article: <a  href="security.html">Security</a></p><h2 id="SecurityFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1566728410409 {padding: 0px;}
-div.rbtoc1566728410409 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1566728410409 li {margin-left: 0px;padding-left: 0px;}
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="tapestry-inversion-of-control-faq.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Tapestry Inversion of Control FAQ</span>
+            </a>
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1566728410409">
+    </div>
+    <div class="parent">
+                    <a  href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a  href="integration-with-existing-applications.html" rel="next">
+                <span class="title">Integration with existing applications</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h1 id="SecurityFAQ-Security">Security</h1><p>Main Article: <a  href="security.html">Security</a></p><h2 id="SecurityFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1566854397154 {padding: 0px;}
+div.rbtoc1566854397154 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1566854397154 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1566854397154">
 <ul class="toc-indentation"><li><a  href="#SecurityFAQ-Thebuilt-inDashboardpagearevisibleinmyproductionapplicationandIdon'twantthemtobe,whatcanIdo?">The built-in Dashboard page are visible in my production application and I don't want them to be, what can I do?</a></li></ul>
 </div><p>&#160;</p><div class="aui-label" style="float:right" title="Related Articles">
 
@@ -135,14 +158,47 @@ div.rbtoc1566728410409 li {margin-left:
     if (productionMode) { configuration.override("LocalhostOnly", null); }
   } 
 </pre>
-</div></div><p></p></div>
+</div></div><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="tapestry-inversion-of-control-faq.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Tapestry Inversion of Control FAQ</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a  href="integration-with-existing-applications.html" rel="next">
+                <span class="title">Integration with existing applications</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div></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></p><div class="aui-message aui-message-error"><p class="title"><strong>Error rendering macro 'html'</strong></p><p>Your Confluence administrator has disallowed the use of Javascript in the HTML macro.  This setting can be changed using  HTML for Confluence Configuration.  Please see your administrator for details.</p></div><p></p></div>
+</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>

Modified: websites/production/tapestry/content/security.html
==============================================================================
--- websites/production/tapestry/content/security.html (original)
+++ websites/production/tapestry/content/security.html Mon Aug 26 21:20:28 2019
@@ -154,7 +154,17 @@
     
     <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></p><div class="aui-message aui-message-error"><p class="title"><strong>Error rendering macro 'html'</strong></p><p>Your Confluence administrator has disallowed the use of Javascript in the HTML macro.  This setting can be changed using  HTML for Confluence Configuration.  Please see your administrator for details.</p></div><p></p></div>
+</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>

Modified: websites/production/tapestry/content/session-storage.html
==============================================================================
--- websites/production/tapestry/content/session-storage.html (original)
+++ websites/production/tapestry/content/session-storage.html Mon Aug 26 21:20:28 2019
@@ -124,11 +124,11 @@
 <p>Ordinary <a  href="persistent-page-data.html">page-persistent fields</a></p><p>won't work for this, since persistent fields are available only to a specific page, not shared across multiple pages.</p><p>Tapestry provides two mechanisms for storing such data: Session State Objects and Session Attributes. When deciding between the two, it's best to use Session State Objects for complex objects, and Session Attributes for simple types.</p><h2 id="SessionStorage-SessionStateObjects">Session State Objects</h2><p>With a Session State Object (SSO), the value is automatically stored outside the page; with the default storage strategy, it is stored in the session. Such a value is global to all pages <em>for the same user</em>, but is stored separately for different users.</p><p>A field holding an SSO is marked with the @<a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/SessionState.html">SessionState</a> annotation.</p><div class="
 navmenu" style="float:right; background:white; margin:3px; padding:3px">
 <div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>Contents</b></div><div class="panelContent">
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1566728387504 {padding: 0px;}
-div.rbtoc1566728387504 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1566728387504 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1566854374530 {padding: 0px;}
+div.rbtoc1566854374530 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1566854374530 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1566728387504">
+/*]]>*/</style><div class="toc-macro rbtoc1566854374530">
 <ul class="toc-indentation"><li>Related Articles</li></ul>
 <ul><li><a  href="#SessionStorage-SessionStateObjects">Session State Objects</a>
 <ul class="toc-indentation"><li><a  href="#SessionStorage-Pitfalls">Pitfalls</a></li><li><a  href="#SessionStorage-CheckforCreation">Check for Creation</a></li><li><a  href="#SessionStorage-PersistenceStrategies">Persistence Strategies</a></li><li><a  href="#SessionStorage-ConfiguringSSOs">Configuring SSOs</a></li></ul>
@@ -229,7 +229,17 @@ public class MyPage {
     
     <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></p><div class="aui-message aui-message-error"><p class="title"><strong>Error rendering macro 'html'</strong></p><p>Your Confluence administrator has disallowed the use of Javascript in the HTML macro.  This setting can be changed using  HTML for Confluence Configuration.  Please see your administrator for details.</p></div><p></p></div>
+</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>

Modified: websites/production/tapestry/content/specific-errors-faq.html
==============================================================================
--- websites/production/tapestry/content/specific-errors-faq.html (original)
+++ websites/production/tapestry/content/specific-errors-faq.html Mon Aug 26 21:20:28 2019
@@ -77,12 +77,35 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 id="SpecificErrorsFAQ-SpecificErrors">Specific Errors</h1><h2 id="SpecificErrorsFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1566728390515 {padding: 0px;}
-div.rbtoc1566728390515 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1566728390515 li {margin-left: 0px;padding-left: 0px;}
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="limitations.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Limitations</span>
+            </a>
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1566728390515">
+    </div>
+    <div class="parent">
+                    <a  href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a  href="hibernate-support-faq.html" rel="next">
+                <span class="title">Hibernate Support FAQ</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h1 id="SpecificErrorsFAQ-SpecificErrors">Specific Errors</h1><h2 id="SpecificErrorsFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1566854377089 {padding: 0px;}
+div.rbtoc1566854377089 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1566854377089 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1566854377089">
 <ul class="toc-indentation"><li><a  href="#SpecificErrorsFAQ-WhydoIgettheexception&quot;Noserviceimplementstheinterfaceorg.apache.tapestry5.internal.InternalComponentResources&quot;whentryingtousetheBeanEditFormcomponent?">Why do I get the exception "No service implements the interface org.apache.tapestry5.internal.InternalComponentResources" when trying to use the BeanEditForm component?</a></li><li><a  href="#SpecificErrorsFAQ-Igetanerrorabout&quot;Pagedidnotgenerateanymarkupwhenrendered.&quot;butIhaveatemplate,whathappened?">I get an error about "Page did not generate any markup when rendered." but I have a template, what happened?</a></li><li><a  href="#SpecificErrorsFAQ-MyapplicationfailswiththeerrorPermGen,howdoIfixthis?">My application fails with the error PermGen, how do I fix this?</a></li><li><a  href="#SpecificErrorsFAQ-WhydoIsometimesgetajava.lang.NoSuchMethodErrorexceptionafterreloadingmypage?">Why do I sometimes get a java.lang.NoSuchMethodError exception after reloadi
 ng my page?</a></li><li><a  href="#SpecificErrorsFAQ-Whydomylogscontain&quot;java.lang.RuntimeException:FormsrequirethattherequestmethodbePOSTandthatthet:formdataqueryparameterhavevalues&quot;?">Why do my logs contain "java.lang.RuntimeException: Forms require that the request method be POST and that the t:formdata query parameter have values"?</a></li></ul>
 </div><div class="aui-label" style="float:right" title="Related Articles">
 
@@ -111,7 +134,7 @@ div.rbtoc1566728390515 li {margin-left:
                 <span class="icon aui-icon content-type-page" title="Page">Page:</span>        </div>
 
         <div class="details">
-                        <a  href="specific-errors-faq.html">Specific Errors FAQ</a>
+                        <a  href="error-page-recipe.html">Error Page Recipe</a>
                 
                         
                     </div>
@@ -120,7 +143,7 @@ div.rbtoc1566728390515 li {margin-left:
                 <span class="icon aui-icon content-type-page" title="Page">Page:</span>        </div>
 
         <div class="details">
-                        <a  href="error-page-recipe.html">Error Page Recipe</a>
+                        <a  href="specific-errors-faq.html">Specific Errors FAQ</a>
                 
                         
                     </div>
@@ -164,14 +187,47 @@ div.rbtoc1566728390515 li {margin-left:
             }
         };
     }</pre>
-</div></div><p><em>Thanks to <a  class="external-link" href="http://mail-archives.apache.org/mod_mbox/tapestry-users/201110.mbox/%3C1319823993429-4946765.post@n5.nabble.com%3E">Lenny Primak</a> for the above code. A slightly less fragile approach is <a  class="external-link" href="https://mail-archives.apache.org/mod_mbox/tapestry-users/201509.mbox/%3CCAE26fNjEVnCyV52KMS-kpseWWnaLn9Pg6Lg60XzkXUhs0UTm1g@mail.gmail.com%3E">described here</a>. When <a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1733">TAP5-1733</a> is fixed a much less fragile solution may be possible.</em></p><p>&#160;&#160;</p><p>&#160;</p></div>
+</div></div><p><em>Thanks to <a  class="external-link" href="http://mail-archives.apache.org/mod_mbox/tapestry-users/201110.mbox/%3C1319823993429-4946765.post@n5.nabble.com%3E">Lenny Primak</a> for the above code. A slightly less fragile approach is <a  class="external-link" href="https://mail-archives.apache.org/mod_mbox/tapestry-users/201509.mbox/%3CCAE26fNjEVnCyV52KMS-kpseWWnaLn9Pg6Lg60XzkXUhs0UTm1g@mail.gmail.com%3E">described here</a>. When <a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1733">TAP5-1733</a> is fixed a much less fragile solution may be possible.</em></p><p>&#160;    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="limitations.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Limitations</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a  href="hibernate-support-faq.html" rel="next">
+                <span class="title">Hibernate Support FAQ</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div>&#160;<p>&#160;</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></p><div class="aui-message aui-message-error"><p class="title"><strong>Error rendering macro 'html'</strong></p><p>Your Confluence administrator has disallowed the use of Javascript in the HTML macro.  This setting can be changed using  HTML for Confluence Configuration.  Please see your administrator for details.</p></div><p></p></div>
+</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>

Modified: websites/production/tapestry/content/tapestry-inversion-of-control-faq.html
==============================================================================
--- websites/production/tapestry/content/tapestry-inversion-of-control-faq.html (original)
+++ websites/production/tapestry/content/tapestry-inversion-of-control-faq.html Mon Aug 26 21:20:28 2019
@@ -77,12 +77,35 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 id="TapestryInversionofControlFAQ-TapestryInversionofControlContainer">Tapestry Inversion of Control Container</h1><p>Main article: <a  href="tapestry-inversion-of-control-faq.html">Tapestry IoC</a></p><h2 id="TapestryInversionofControlFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1566728393663 {padding: 0px;}
-div.rbtoc1566728393663 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1566728393663 li {margin-left: 0px;padding-left: 0px;}
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="injection-faq.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Injection FAQ</span>
+            </a>
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1566728393663">
+    </div>
+    <div class="parent">
+                    <a  href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a  href="security-faq.html" rel="next">
+                <span class="title">Security FAQ</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h1 id="TapestryInversionofControlFAQ-TapestryInversionofControlContainer">Tapestry Inversion of Control Container</h1><p>Main article: <a  href="tapestry-inversion-of-control-faq.html">Tapestry IoC</a></p><h2 id="TapestryInversionofControlFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1566854380079 {padding: 0px;}
+div.rbtoc1566854380079 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1566854380079 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1566854380079">
 <ul class="toc-indentation"><li><a  href="#TapestryInversionofControlFAQ-WhydoIneedtodefineaninterfaceformyservices?Whycan'tIjustusetheclassitself?">Why do I need to define an interface for my services? Why can't I just use the class itself?</a></li><li><a  href="#TapestryInversionofControlFAQ-Myservicestartsathread;howdoIknowwhentheapplicationisshuttingdown,tostopthatthread?">My service starts a thread; how do I know when the application is shutting down, to stop that thread?</a></li><li><a  href="#TapestryInversionofControlFAQ-HowdoImakemyservicestartupwiththerestoftheapplication,ratherthanlazily?">How do I make my service startup with the rest of the application, rather than lazily?</a></li></ul>
 </div><p>&#160;</p><div class="aui-label" style="float:right" title="Related Articles">
 
@@ -166,14 +189,47 @@ div.rbtoc1566728393663 li {margin-left:
   }
 }
 </pre>
-</div></div><p>After Tapestry invokes the constructor of the service implementation, and after it performs any field injections, it invokes post injection methods. The methods must be public and return void. Parameters to a post injection method represent further injections ... in the above example, the RegistryShutdownHub is injected into the PostInjection method, since it is only used inside that one method.</p><div class="confluence-information-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>It is <strong>not</strong> recommended that MyServiceImpl take RegistryShutdownHub as a constructor parameter and register itself as a listener inside the constructor. Doing so is an example of <a  class="external-link" href="http://www.ibm.com/developerworks/java/library/j-jtp0618.html" rel="nofollow">unsafe publishing</a>, an unlikely but potential 
 thread safety issue.</p></div></div><p>This same technique will work for any kind of resource that must be cleaned up or destroyed when the registry shuts down.</p><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Be careful not to invoke methods on any service proxy objects as they will also be shutting down with the Registry. A RegistryShutdownListener should not be reliant on anything outside of itself.</p></div></div><h3 id="TapestryInversionofControlFAQ-HowdoImakemyservicestartupwiththerestoftheapplication,ratherthanlazily?">How do I make my service startup with the rest of the application, rather than lazily?</h3><p>Tapestry services are designed to be <em>lazy</em>; they are only fully realized when needed: when the first method on the service interface is invoked.</p><p>Sometimes a service does extra w
 ork that is desirable at application startup: examples may be registering message handlers with a JMS implementation, or setting up indexing. Since the service's constructor (or <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/PostInjection.html">@PostInjection</a> methods) are not invoked until the service is realized.</p><p>The solution is the <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/EagerLoad.html">@EagerLoad</a> annotation; service implementation classes marked with this annotation are loaded when the Registry is first startup, rather than lazily.</p></div>
+</div></div><p>After Tapestry invokes the constructor of the service implementation, and after it performs any field injections, it invokes post injection methods. The methods must be public and return void. Parameters to a post injection method represent further injections ... in the above example, the RegistryShutdownHub is injected into the PostInjection method, since it is only used inside that one method.</p><div class="confluence-information-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>It is <strong>not</strong> recommended that MyServiceImpl take RegistryShutdownHub as a constructor parameter and register itself as a listener inside the constructor. Doing so is an example of <a  class="external-link" href="http://www.ibm.com/developerworks/java/library/j-jtp0618.html" rel="nofollow">unsafe publishing</a>, an unlikely but potential 
 thread safety issue.</p></div></div><p>This same technique will work for any kind of resource that must be cleaned up or destroyed when the registry shuts down.</p><div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>Be careful not to invoke methods on any service proxy objects as they will also be shutting down with the Registry. A RegistryShutdownListener should not be reliant on anything outside of itself.</p></div></div><h3 id="TapestryInversionofControlFAQ-HowdoImakemyservicestartupwiththerestoftheapplication,ratherthanlazily?">How do I make my service startup with the rest of the application, rather than lazily?</h3><p>Tapestry services are designed to be <em>lazy</em>; they are only fully realized when needed: when the first method on the service interface is invoked.</p><p>Sometimes a service does extra w
 ork that is desirable at application startup: examples may be registering message handlers with a JMS implementation, or setting up indexing. Since the service's constructor (or <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/PostInjection.html">@PostInjection</a> methods) are not invoked until the service is realized.</p><p>The solution is the <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/EagerLoad.html">@EagerLoad</a> annotation; service implementation classes marked with this annotation are loaded when the Registry is first startup, rather than lazily.    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="injection-faq.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Injection FAQ</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a  href="security-faq.html" rel="next">
+                <span class="title">Security FAQ</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div></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></p><div class="aui-message aui-message-error"><p class="title"><strong>Error rendering macro 'html'</strong></p><p>Your Confluence administrator has disallowed the use of Javascript in the HTML macro.  This setting can be changed using  HTML for Confluence Configuration.  Please see your administrator for details.</p></div><p></p></div>
+</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>

Modified: websites/production/tapestry/content/templating-and-markup-faq.html
==============================================================================
--- websites/production/tapestry/content/templating-and-markup-faq.html (original)
+++ websites/production/tapestry/content/templating-and-markup-faq.html Mon Aug 26 21:20:28 2019
@@ -77,12 +77,35 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 id="TemplatingandMarkupFAQ-TemplatingandMarkup">Templating and Markup</h1><p>Main Article: <a  href="component-templates.html">Component Templates</a></p><h2 id="TemplatingandMarkupFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1566728394208 {padding: 0px;}
-div.rbtoc1566728394208 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1566728394208 li {margin-left: 0px;padding-left: 0px;}
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="general-questions.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">General Questions</span>
+            </a>
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1566728394208">
+    </div>
+    <div class="parent">
+                    <a  href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a  href="page-and-component-classes-faq.html" rel="next">
+                <span class="title">Page And Component Classes FAQ</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h1 id="TemplatingandMarkupFAQ-TemplatingandMarkup">Templating and Markup</h1><p>Main Article: <a  href="component-templates.html">Component Templates</a></p><h2 id="TemplatingandMarkupFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1566854377693 {padding: 0px;}
+div.rbtoc1566854377693 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1566854377693 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1566854377693">
 <ul class="toc-indentation"><li><a  href="#TemplatingandMarkupFAQ-WhydoIgetaSAXParseExceptionwhenIuseanHTMLentity,suchas&amp;nbsp;inmytemplate?">Why do I get a SAXParseException when I use an HTML entity, such as &amp;nbsp; in my template?</a></li><li><a  href="#TemplatingandMarkupFAQ-Whydosomeimagesinmypageshowupasbrokenlinks?">Why do some images in my page show up as broken links?</a></li><li><a  href="#TemplatingandMarkupFAQ-What'sthedifferencebetweenidandt:id?">What's the difference between id and t:id?</a></li><li><a  href="#TemplatingandMarkupFAQ-WhydomyimagesandstylesheetsendupwithaweirdURLslike/assets/meta/zeea17aee26bc0cae/layout/layout.css?">Why do my images and stylesheets end up with a weird URLs like /assets/meta/zeea17aee26bc0cae/layout/layout.css?</a></li><li><a  href="#TemplatingandMarkupFAQ-HowdoIaddaCSSclasstoaTapestrycomponent?">How do I add a CSS class to a Tapestry component?</a></li></ul>
 </div><h2 id="TemplatingandMarkupFAQ-WhydoIgetaSAXParseExceptionwhenIuseanHTMLentity,suchas&amp;nbsp;inmytemplate?">Why do I get a SAXParseException when I use an HTML entity, such as <code>&amp;nbsp;</code> in my template?</h2><p>Tapestry uses a standard SAX parser to read your templates. This means that your templates must be <em>well formed</em>: open and close tags must balance, attribute values must be quoted, and entities must be declared. The easiest way to accomplish this is to add a DOCTYPE to your the top of your template:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: xml; gutter: false; theme: Default" data-theme="Default">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
@@ -128,15 +151,47 @@ div.rbtoc1566728394208 li {margin-left:
     return isUrgent() ? "urgent" : null;
   }
 </pre>
-</div></div><p>When an informal parameter is bound to null, then the attribute is not written out at all.</p><p>You can verify which components support informal parameters by checking the component reference, or looking for the @<a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/SupportsInformalParameters.html">SupportsInformalParameters</a> annotation in the components' source file.&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p></p><div class="display-footnotes" data-footnotestodisplay="${footnotesToDisplay}"></div>
-<p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p></div>
+</div></div><p>When an informal parameter is bound to null, then the attribute is not written out at all.</p><p>You can verify which components support informal parameters by checking the component reference, or looking for the @<a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/SupportsInformalParameters.html">SupportsInformalParameters</a> annotation in the components' source file.    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="general-questions.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">General Questions</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  href="frequently-asked-questions.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Frequently Asked Questions</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a  href="page-and-component-classes-faq.html" rel="next">
+                <span class="title">Page And Component Classes FAQ</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div>&#160;<p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p></p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</p><p>&#160;</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></p><div class="aui-message aui-message-error"><p class="title"><strong>Error rendering macro 'html'</strong></p><p>Your Confluence administrator has disallowed the use of Javascript in the HTML macro.  This setting can be changed using  HTML for Confluence Configuration.  Please see your administrator for details.</p></div><p></p></div>
+</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>

Modified: websites/production/tapestry/content/uploading-files.html
==============================================================================
--- websites/production/tapestry/content/uploading-files.html (original)
+++ websites/production/tapestry/content/uploading-files.html Mon Aug 26 21:20:28 2019
@@ -125,7 +125,17 @@
     
     <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></p><div class="aui-message aui-message-error"><p class="title"><strong>Error rendering macro 'html'</strong></p><p>Your Confluence administrator has disallowed the use of Javascript in the HTML macro.  This setting can be changed using  HTML for Confluence Configuration.  Please see your administrator for details.</p></div><p></p></div>
+</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>

Modified: websites/production/tapestry/content/using-select-with-a-list.html
==============================================================================
--- websites/production/tapestry/content/using-select-with-a-list.html (original)
+++ websites/production/tapestry/content/using-select-with-a-list.html Mon Aug 26 21:20:28 2019
@@ -77,7 +77,30 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 id="UsingSelectWithaList-UsingSelectWithaList">Using Select With a List</h1><p>The documentation for the <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/Select.html">Select Component</a> and the <a  href="tapestry-tutorial.html">Tapestry Tutorial</a> provide simplistic examples of populating a drop-down menu (as the (X)HTML <em>Select</em> element) using comma-delimited strings and enums. However, most real-world Tapestry applications need to populate such menus using values from a database, commonly in the form of java.util.List objects. Doing so generally requires a <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/SelectModel.html">SelectModel</a> and a <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ValueEncoder.html">ValueEncoder</a> bound to the Select component with its 
 "model" and "encoder" parameters:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+                <div id="ConfluenceContent"><p>    
+</p><div class="atb-scrollbar-macro">
+    <div class="prev">
+        <a  href="meta-programming-page-content.html" rel="prev">
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-left">Previous</span>
+                                <span class="title">Meta-Programming Page Content</span>
+            </a>
+
+    </div>
+    <div class="parent">
+                    <a  href="cookbook.html" rel="parent">
+                                            <span class="aui-icon aui-icon-small atb-icon-arrow-up">Up</span>
+                                        <span class="title">Cookbook</span>
+                </a>
+
+            </div>
+    <div class="next">
+        <a  href="ioc-cookbook.html" rel="next">
+                <span class="title">IoC cookbook</span>
+                                    <span class="aui-icon aui-icon-small atb-icon-arrow-right">Next</span>
+                            </a>
+
+    </div>
+</div><h1 id="UsingSelectWithaList-UsingSelectWithaList">Using Select With a List</h1><p>The documentation for the <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/Select.html">Select Component</a> and the <a  href="tapestry-tutorial.html">Tapestry Tutorial</a> provide simplistic examples of populating a drop-down menu (as the (X)HTML <em>Select</em> element) using comma-delimited strings and enums. However, most real-world Tapestry applications need to populate such menus using values from a database, commonly in the form of java.util.List objects. Doing so generally requires a <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/SelectModel.html">SelectModel</a> and a <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ValueEncoder.html">ValueEncoder</a> bound to the Select component with its "model" and "encoder" parameters:</p><
 div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="syntaxhighlighter-pre" data-syntaxhighlighter-params="brush: java; gutter: false; theme: Default" data-theme="Default">&lt;t:select t:id="colorMenu" value="selectedColor" model="ColorSelectModel" encoder="colorEncoder" /&gt;
 </pre>
 </div></div><p>In the above example, ColorSelectModel must be of type SelectModel, or anything that Tapestry knows how to <a  href="parameter-type-coercion.html">coerce</a> into a SelectModel, such as a List or a Map or a "value=label,value=label,..." delimited string, or anything Tapestry knows how to coerce into a List or Map, such as an Array or a comma-delimited String.</p><h2 id="UsingSelectWithaList-SelectModel">SelectModel</h2><p></p><div class="navmenu" style="float:right; background:#eee; margin:3px; padding:0 1em">
@@ -187,7 +210,17 @@ public String toString() {
     
     <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></p><div class="aui-message aui-message-error"><p class="title"><strong>Error rendering macro 'html'</strong></p><p>Your Confluence administrator has disallowed the use of Javascript in the HTML macro.  This setting can be changed using  HTML for Confluence Configuration.  Please see your administrator for details.</p></div><p></p></div>
+</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>