Author: buildbot
Date: Thu Oct 27 17:20:26 2016
New Revision: 999994

Log:
Production update by buildbot for tapestry

Modified:
    websites/production/tapestry/content/ajax-and-zones.html
    websites/production/tapestry/content/ajax-components-faq.html
    websites/production/tapestry/content/aliases.html
    websites/production/tapestry/content/bean-validation.html
    websites/production/tapestry/content/beaneditform-faq.html
    websites/production/tapestry/content/beaneditform-guide.html
    websites/production/tapestry/content/cache/main.pageCache
    websites/production/tapestry/content/class-reloading.html
    websites/production/tapestry/content/component-classes.html
    websites/production/tapestry/content/component-events-faq.html
    websites/production/tapestry/content/component-events.html
    websites/production/tapestry/content/component-libraries.html
    websites/production/tapestry/content/component-parameters.html
    websites/production/tapestry/content/component-rendering.html
    websites/production/tapestry/content/component-report.html
    websites/production/tapestry/content/component-templates.html
    websites/production/tapestry/content/configuration.html
    websites/production/tapestry/content/documentation-improvement-tasks.html
    websites/production/tapestry/content/dom.html
    websites/production/tapestry/content/enum-parameter-recipe.html
    websites/production/tapestry/content/environmental-services.html
    websites/production/tapestry/content/error-page-recipe.html
    websites/production/tapestry/content/exploring-the-project.html
    websites/production/tapestry/content/extending-the-if-component.html
    websites/production/tapestry/content/forms-and-form-components-faq.html
    websites/production/tapestry/content/forms-and-validation.html
    websites/production/tapestry/content/general-questions.html
    websites/production/tapestry/content/hibernate-statistics.html
    websites/production/tapestry/content/hibernate-support-faq.html
    websites/production/tapestry/content/hibernate-user-guide.html
    websites/production/tapestry/content/injection-faq.html
    websites/production/tapestry/content/injection-in-detail.html
    websites/production/tapestry/content/injection.html
    websites/production/tapestry/content/integrating-with-jpa.html
    websites/production/tapestry/content/integrating-with-spring-framework.html
    
websites/production/tapestry/content/integration-with-existing-applications.html
    
websites/production/tapestry/content/ioc-cookbook-basic-services-and-injection.html
    
websites/production/tapestry/content/ioc-cookbook-overriding-ioc-services.html
    websites/production/tapestry/content/ioc-cookbook-patterns.html
    
websites/production/tapestry/content/ioc-cookbook-service-configurations.html
    websites/production/tapestry/content/ioc-cookbook.html
    websites/production/tapestry/content/javascript-faq.html
    websites/production/tapestry/content/legacy-javascript.html
    websites/production/tapestry/content/limitations.html
    websites/production/tapestry/content/link-components-faq.html
    websites/production/tapestry/content/localization.html
    websites/production/tapestry/content/maven-support-faq.html
    websites/production/tapestry/content/menuleft.html
    websites/production/tapestry/content/meta-programming-page-content.html
    websites/production/tapestry/content/page-and-component-classes-faq.html
    websites/production/tapestry/content/page-navigation.html
    websites/production/tapestry/content/parallel-execution.html
    websites/production/tapestry/content/persistent-page-data.html
    websites/production/tapestry/content/property-expressions.html
    websites/production/tapestry/content/registry-startup.html
    websites/production/tapestry/content/release-notes-50.html
    websites/production/tapestry/content/release-notes-51.html
    websites/production/tapestry/content/release-notes-52.html
    websites/production/tapestry/content/release-notes-53.html
    websites/production/tapestry/content/release-notes-531.html
    websites/production/tapestry/content/release-notes-532.html
    websites/production/tapestry/content/release-notes-533.html
    websites/production/tapestry/content/release-notes-534.html
    websites/production/tapestry/content/release-notes-535.html
    websites/production/tapestry/content/release-notes-536.html
    websites/production/tapestry/content/release-notes-537.html
    websites/production/tapestry/content/release-notes-54.html
    websites/production/tapestry/content/release-upgrade-faq.html
    websites/production/tapestry/content/request-processing-faq.html
    websites/production/tapestry/content/security-faq.html
    websites/production/tapestry/content/security.html
    websites/production/tapestry/content/service-advisors.html
    websites/production/tapestry/content/service-implementation-reloading.html
    websites/production/tapestry/content/session-storage.html
    websites/production/tapestry/content/since-and-deprecated-user-macros.html
    websites/production/tapestry/content/specific-errors-faq.html
    websites/production/tapestry/content/starting-the-ioc-registry.html
    websites/production/tapestry/content/switching-cases.html
    websites/production/tapestry/content/tapestry-inversion-of-control-faq.html
    websites/production/tapestry/content/tapestry-ioc-configuration.html
    websites/production/tapestry/content/tapestry-ioc-decorators.html
    websites/production/tapestry/content/templating-and-markup-faq.html
    websites/production/tapestry/content/test-page-2.html
    websites/production/tapestry/content/test-page.html
    websites/production/tapestry/content/uploading-files.html
    websites/production/tapestry/content/using-jsr-330-standard-annotations.html
    websites/production/tapestry/content/using-select-with-a-list.html
    websites/production/tapestry/content/version-numbers.html

Modified: websites/production/tapestry/content/ajax-and-zones.html
==============================================================================
--- websites/production/tapestry/content/ajax-and-zones.html (original)
+++ websites/production/tapestry/content/ajax-and-zones.html Thu Oct 27 
17:20:26 2016
@@ -47,18 +47,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  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"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<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"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Ajax and Zones</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><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"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Ajax and Zones</h1></div></div>
       <div class="clearer"></div>
       </div>
 
@@ -70,100 +65,61 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p>Tapestry provides easy-to-use 
support for <strong>Ajax</strong>, the technique of using JavaScript to 
dynamically updating parts of a web page with content from the server without 
redrawing the whole page. With Tapestry, you can do simple Ajax updates without 
having to write any JavaScript code at all.</p><div class="aui-label" 
style="float:right" title="Related Articles">
-
-
-
-
-
-
-
-
-<h3>Related Articles</h3>
-
-<ul class="content-by-label"><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="ajax-and-zones.html">Ajax and Zones</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="legacy-javascript.html">Legacy JavaScript</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="coffeescript.html">CoffeeScript</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="client-side-javascript.html">Client-Side 
JavaScript</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="javascript-modules.html">JavaScript 
Modules</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="javascript-faq.html">JavaScript FAQ</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="ajax-components-faq.html">Ajax Components 
FAQ</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-cheat-sheet.html">Component Cheat 
Sheet</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="assets.html">Assets</a>
-                
-                        
-                    </div>
-    </li></ul>
-</div><p>Ajax support is included in many <a  
href="component-reference.html">built-in components</a> and <a  
href="component-mixins.html">component mixins</a> via the <code>zone</code> 
parameter.</p><h2 id="AjaxandZones-Zones">Zones</h2><p>Zones are Tapestry's 
approach to performing partial page updates. A <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/Zone.html";>Zone
 component</a> renders as an HTML element, typically a &lt;div&gt;.</p><p>A 
zone is recognizable in the DOM because it will have the 
attribute&#160;<code>data-container-type=zone</code>. The client-side support 
for Zones is keyed off of this attribute and value.</p><p><span 
style="line-height: 1.4285715;">A Zone can be updated via an EventLink, 
ActionLink or Select component, or by a Form. All of these components support a 
zone parameter, which provides the id of the Zone's &lt;div&gt;. Clicking such 
a link will invoke an event handler method on the se
 rver as normal ... except that the return value of the event handler method is 
used to send a </span><em style="line-height: 1.4285715;">partial page 
response</em><span style="line-height: 1.4285715;"> to the client, and the 
content of that response is used to update the Zone's &lt;div&gt; in 
place.</span></p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+                <div id="ConfluenceContent"><p>Tapestry provides easy-to-use 
support for <strong>Ajax</strong>, the technique of using JavaScript to 
dynamically updating parts of a web page with content from the server without 
redrawing the whole page. With Tapestry, you can do simple Ajax updates without 
having to write any JavaScript code at all.</p><div class="aui-label" 
style="float:right" title="Related Articles"><h3>Related Articles</h3><ul 
class="content-by-label"><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="ajax-and-zones.html">Ajax and Zones</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="legacy-javascript.html">Legacy JavaScript</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="coffeescript.html">CoffeeScript</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="client-side-javascript.html">Client-Side JavaScript</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="javascript-modules.html">JavaScript Modules</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="javascript-faq.html">JavaScript FAQ</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="ajax-components-faq.html">Ajax Components FAQ</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-cheat-sheet.html">Component Cheat Sheet</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="assets.html">Assets</a> 
+  </div> </li></ul></div><p>Ajax support is included in many <a  
href="component-reference.html">built-in components</a> and <a  
href="component-mixins.html">component mixins</a> via the <code>zone</code> 
parameter.</p><h2 id="AjaxandZones-Zones">Zones</h2><p>Zones are Tapestry's 
approach to performing partial page updates. A <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/Zone.html";>Zone
 component</a> renders as an HTML element, typically a &lt;div&gt;.</p><p>A 
zone is recognizable in the DOM because it will have the 
attribute&#160;<code>data-container-type=zone</code>. The client-side support 
for Zones is keyed off of this attribute and value.</p><p><span 
style="line-height: 1.4285715;">A Zone can be updated via an EventLink, 
ActionLink or Select component, or by a Form. All of these components support a 
zone parameter, which provides the id of the Zone's &lt;div&gt;. Clicking such 
a link will invoke an event handl
 er method on the server as normal ... except that the return value of the 
event handler method is used to send a </span><em style="line-height: 
1.4285715;">partial page response</em><span style="line-height: 1.4285715;"> to 
the client, and the content of that response is used to update the Zone's 
&lt;div&gt; in place.</span></p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;t:actionlink t:id="someLink" 
zone="myzone"&gt;update&lt;/t:actionlink&gt;
 ...
 &lt;t:zone t:id="myZone" id="myzone"&gt;
@@ -237,15 +193,11 @@ Object onActionFromRegister()
 
 <div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Added in 
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
 </div></div>
-<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p>If the Form or Link is enclosed by the Zone itself, then the 
<code>zone</code> parameter may be set to the special value <code>^</code>. The 
carat is evaluated, on the client side, by searching up form the form or link 
element for the first enclosing element that is a Zone. In this way, the 
client-side coordination can occur without having to know what the specific 
client-side id of the Zone is. Because of this, in some cases, it is no longer 
necessary to specify the Zone's <code>id</code> parameter.</p>
-</div><h3 id="AjaxandZones-AnUpdatedivwithinaZonediv">An Update div within a 
Zone div</h3>
+<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid 
#D8E4F1;"><p>If the Form or Link is enclosed by the Zone itself, then the 
<code>zone</code> parameter may be set to the special value <code>^</code>. The 
carat is evaluated, on the client side, by searching up form the form or link 
element for the first enclosing element that is a Zone. In this way, the 
client-side coordination can occur without having to know what the specific 
client-side id of the Zone is. Because of this, in some cases, it is no longer 
necessary to specify the Zone's <code>id</code> parameter.</p></div><h3 
id="AjaxandZones-AnUpdatedivwithinaZonediv">An Update div within a Zone div</h3>
 
-<div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p><em>This feature is removed starting with Tapestry 5.4</em></p></div><p>In 
many situations, a Zone is a kind of "wrapper" or "container" for dynamic 
content; one that provides a look and feel ... a bit of wrapping markup to 
create a border. In that situation, the Zone &lt;div&gt; may contain an update 
&lt;div&gt;.</p><p>An Update &lt;div&gt; is specifically a &lt;div&gt; element 
marked with the CSS class "t-zone-update", <em>inside</em> the Zone's 
&lt;div&gt;.</p><p>If an Update div exists within a Zone div, then when 
Tapestry updates a zone only the update &lt;div&gt;'s content will be changed, 
rather than the entire Zone &lt;div&gt;.</p><p>The show and update functions 
(see Zone Functions, below) apply to the Zone &lt;div&gt;, not just the update 
&lt;div&gt;.</p><h3 
id="AjaxandZones-ZoneEffectFunctions(Tapestry5.3andearlier)">Zone Effect 
Functions (Tapestry 5.3 and earlier)</h3><p>&#160;</p>
+<div style="border-right: 20px solid #ffcccc;border-left: 20px solid 
#ffcccc;"><p><em>This feature is removed starting with Tapestry 
5.4</em></p></div><p>In many situations, a Zone is a kind of "wrapper" or 
"container" for dynamic content; one that provides a look and feel ... a bit of 
wrapping markup to create a border. In that situation, the Zone &lt;div&gt; may 
contain an update &lt;div&gt;.</p><p>An Update &lt;div&gt; is specifically a 
&lt;div&gt; element marked with the CSS class "t-zone-update", <em>inside</em> 
the Zone's &lt;div&gt;.</p><p>If an Update div exists within a Zone div, then 
when Tapestry updates a zone only the update &lt;div&gt;'s content will be 
changed, rather than the entire Zone &lt;div&gt;.</p><p>The show and update 
functions (see Zone Functions, below) apply to the Zone &lt;div&gt;, not just 
the update &lt;div&gt;.</p><h3 
id="AjaxandZones-ZoneEffectFunctions(Tapestry5.3andearlier)">Zone Effect 
Functions (Tapestry 5.3 and earlier)</h3><p>&#160;</p>
 
-<div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p>_This feature refers to client-side logic only present in Tapestry 5.3 or 
earlier. For 5.4, there are client-side events that are triggered before and 
after changes to the Zone; listeners on those events can trigger whatever 
animations they like.</p></div><p>&#160;</p><p>A Zone may be initially visible 
or invisible. When a Zone is updated, it is made visible if not currently so. 
This is accomplished via a function on the Tapestry.ElementEffect client-side 
object. By default, the show() function is used for this purpose. If you want 
Tapestry to call a different Tapestry.ElementEffect function when updates 
occur, specify its name with the zone's show parameter.</p><p>If a Zone is 
already visible, then a different effect function is used to highlight the 
change. By default, the highlight() function is called, which performs a yellow 
fade to highlight that the content of the Zone has changed. Alternatively, you 
can specify a different effect function with the Zone's update parameter:
 </p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th 
colspan="1" rowspan="1" class="confluenceTh"><p>Tapestry.ElementEffect 
Function</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Result</p></th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>highlight()</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>(the default) highlight changes to an already-visible 
zone</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>show()</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>make the zone visible if it isn't already 
visible</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>slidedown()</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>scroll the content down</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>slideup()</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>slide the content back up 
(opposite of slidedown)</p></td></tr><tr><td colspan="1" row
 span="1" class="confluenceTd"><p>fade()</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>fade the content out (opposite of 
show)</p></td></tr></tbody></table></div><p>To have Tapestry update a zone 
without the usual yellow highlight effect, just specify "show" for the update 
parameter:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+<div style="border-right: 20px solid #ffcccc;border-left: 20px solid 
#ffcccc;"><p>_This feature refers to client-side logic only present in Tapestry 
5.3 or earlier. For 5.4, there are client-side events that are triggered before 
and after changes to the Zone; listeners on those events can trigger whatever 
animations they like.</p></div><p>&#160;</p><p>A Zone may be initially visible 
or invisible. When a Zone is updated, it is made visible if not currently so. 
This is accomplished via a function on the Tapestry.ElementEffect client-side 
object. By default, the show() function is used for this purpose. If you want 
Tapestry to call a different Tapestry.ElementEffect function when updates 
occur, specify its name with the zone's show parameter.</p><p>If a Zone is 
already visible, then a different effect function is used to highlight the 
change. By default, the highlight() function is called, which performs a yellow 
fade to highlight that the content of the Zone has changed. Alternatively
 , you can specify a different effect function with the Zone's update 
parameter:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Tapestry.ElementEffect Function</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Result</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>highlight()</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>(the default) highlight changes to an 
already-visible zone</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>show()</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>make the zone visible if it isn't already 
visible</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>slidedown()</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>scroll the content down</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>slideup()</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>slide t
 he content back up (opposite of slidedown)</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>fade()</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>fade the content out (opposite of 
show)</p></td></tr></tbody></table></div><p>To have Tapestry update a zone 
without the usual yellow highlight effect, just specify "show" for the update 
parameter:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;t:zone t:id="myZone" t:update="show"&gt;</pre>
 </div></div><p>You may also define and use your own JavaScript effect function 
(with lower-case names), like this:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: js; gutter: false; theme: Default" 
style="font-size:12px;">Tapestry.ElementEffect.myeffectname = 
function(element){ YourJavascriptCodeGoesHere; };

Modified: websites/production/tapestry/content/ajax-components-faq.html
==============================================================================
--- websites/production/tapestry/content/ajax-components-faq.html (original)
+++ websites/production/tapestry/content/ajax-components-faq.html Thu Oct 27 
17:20:26 2016
@@ -46,18 +46,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  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"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<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"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Ajax Components FAQ</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><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"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Ajax Components FAQ</h1></div></div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/aliases.html
==============================================================================
--- websites/production/tapestry/content/aliases.html (original)
+++ websites/production/tapestry/content/aliases.html Thu Oct 27 17:20:26 2016
@@ -44,18 +44,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  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"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<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"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Aliases</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><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"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Aliases</h1></div></div>
       <div class="clearer"></div>
       </div>
 
@@ -71,74 +66,43 @@
 
 </p><div class="confluence-information-macro 
confluence-information-macro-warning"><p class="title">Deprecated since 
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-error 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
 <p>Use ServiceOverrides instead. Aliases will be removed starting in 
5.3.</p></div></div>
-<div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p>&#160;</p></div><div class="aui-label" style="float:right" title="Related 
Articles">
-
-
-
-
-
-
-
-
-<h3>Related Articles</h3>
-
-<ul class="content-by-label"><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="page-navigation.html">Page Navigation</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="page-life-cycle.html">Page Life Cycle</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-rendering.html">Component 
Rendering</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-events.html">Component Events</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-events-faq.html">Component Events 
FAQ</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="request-processing.html">Request 
Processing</a>
-                
-                        
-                    </div>
-    </li></ul>
-</div><p>&#160;</p><p>See <a  
href="ioc-cookbook-overriding-ioc-services.html">IoC Cookbook - Overriding IoC 
Services</a></p><h1 id="Aliases-Introduction">Introduction</h1><p>Tapestry goes 
to great lengths so that you can use the <a  href="injection.html">Inject</a> 
annotation on a field and provide no additional data, yet end up with the 
correct object or service.</p><p>In many cases, Tapestry must match a field 
type to an available IoC service.</p><p>If there is only single service in the 
registry that implements the service, Tapestry will utilize that 
service.</p><p>When there is more than one such service, it is necessary to 
disambiguate which service is to be injected. To disambiguate globally (across 
all injections), you must create an alias from the service interface directly 
to the particular service.</p><p>This takes the form of a contribution to the 
Alias service.</p><p>The Alias service has additional purposes: first, it 
allows for spot overrides on injected services, bas
 ed on the application's mode. Currently, the only mode is "servlet", but 
future modes may include "portlet" and possibly "offline".</p><p>Secondly, the 
companion AliasOverrides service configuration allows for spot overrides of 
specific services, without disturbing the rest of the network of services 
within the IoC Registry.</p><h1 id="Aliases-ContributinganAlias">Contributing 
an Alias</h1><p>To contribute a new service to the Alias service, you must 
first decide on a logical name. Often, this is the name of the service 
interface implemented by the service.</p><p>You can then contribute into the 
Infrastructure service's configuration:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<div style="border-right: 20px solid #ffcccc;border-left: 20px solid 
#ffcccc;"><p>&#160;</p></div><div class="aui-label" style="float:right" 
title="Related Articles"><h3>Related Articles</h3><ul 
class="content-by-label"><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="page-navigation.html">Page Navigation</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="page-life-cycle.html">Page Life Cycle</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-rendering.html">Component Rendering</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-events.html">Component Events</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-events-faq.html">Component Events FAQ</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="request-processing.html">Request Processing</a> 
+  </div> </li></ul></div><p>&#160;</p><p>See <a  
href="ioc-cookbook-overriding-ioc-services.html">IoC Cookbook - Overriding IoC 
Services</a></p><h1 id="Aliases-Introduction">Introduction</h1><p>Tapestry goes 
to great lengths so that you can use the <a  href="injection.html">Inject</a> 
annotation on a field and provide no additional data, yet end up with the 
correct object or service.</p><p>In many cases, Tapestry must match a field 
type to an available IoC service.</p><p>If there is only single service in the 
registry that implements the service, Tapestry will utilize that 
service.</p><p>When there is more than one such service, it is necessary to 
disambiguate which service is to be injected. To disambiguate globally (across 
all injections), you must create an alias from the service interface directly 
to the particular service.</p><p>This takes the form of a contribution to the 
Alias service.</p><p>The Alias service has additional purposes: first, it 
allows for spot overrides on inj
 ected services, based on the application's mode. Currently, the only mode is 
"servlet", but future modes may include "portlet" and possibly 
"offline".</p><p>Secondly, the companion AliasOverrides service configuration 
allows for spot overrides of specific services, without disturbing the rest of 
the network of services within the IoC Registry.</p><h1 
id="Aliases-ContributinganAlias">Contributing an Alias</h1><p>To contribute a 
new service to the Alias service, you must first decide on a logical name. 
Often, this is the name of the service interface implemented by the 
service.</p><p>You can then contribute into the Infrastructure service's 
configuration:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public static void 
contributeAlias(@InjectService("MyService") MyService myService,
         Configuration&lt;AliasContribution&gt; configuration)
 {

Modified: websites/production/tapestry/content/bean-validation.html
==============================================================================
--- websites/production/tapestry/content/bean-validation.html (original)
+++ websites/production/tapestry/content/bean-validation.html Thu Oct 27 
17:20:26 2016
@@ -46,18 +46,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  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"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<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"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Bean Validation</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><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"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Bean Validation</h1></div></div>
       <div class="clearer"></div>
       </div>
 
@@ -73,38 +68,19 @@
 
 <div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Added in 
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
 </div></div>
-<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p>&#160;</p></div><p><strong>Bean validation</strong> involves validating 
user input using Tapestry's built-in support for the <a  class="external-link" 
href="http://jcp.org/en/jsr/detail?id=303"; rel="nofollow">JSR 303 Bean 
Validation API</a>.</p><div class="aui-label" style="float:right" 
title="Related Articles">
-
-
-
-
-
-
-
-
-<h3>Related Articles</h3>
-
-<ul class="content-by-label"><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="bean-validation.html">Bean Validation</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="forms-and-validation.html">Forms and 
Validation</a>
-                
-                        
-                    </div>
-    </li></ul>
-</div><p>Tapestry has always provided a powerful non-JSR 303 validation 
mechanism (see <a  href="forms-and-validation.html">Forms and Validation</a>). 
Among other things this mechanism allows you to annotate your domain model 
classes with the <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/beaneditor/Validate.html";>@Validate</a>
 annotation. However, this annotation is problematic if your domain model is 
used in non-Tapestry applications as well as in Tapestry applications. Your 
non-Tapestry application becomes dependent on <em>tapestry5-annotations</em> 
module. To make your domain model independent from Tapestry you can use the <a  
class="external-link" href="http://jcp.org/en/jsr/detail?id=303"; 
rel="nofollow">JSR 303: Bean Validation</a> instead. This library provides 
integration between Tapestry and JSR-303.</p><h2 
id="BeanValidation-Configuration">Configuration</h2><p>The Tapestry's JSR 303 - 
Bean Validation Library is responsible f
 or configuring and bootstrapping the <a  class="external-link" 
href="http://download.oracle.com/javaee/6/api/javax/validation/Validator.html"; 
rel="nofollow">Validator</a> for you. In order to use this library you have to 
choose an implementation of the JSR-303 specification like <a  
class="external-link" href="https://www.hibernate.org/412.html"; 
rel="nofollow">Hibernate Validator 4.x</a>. This library is not specific to any 
implementation of JSR-303 and will work with any implementation of your 
choice.</p><h3 id="BeanValidation-BootstrapingtheBeanValidator">Bootstraping 
the Bean Validator</h3><p>The <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/beanvalidator/BeanValidatorSource.html";>BeanValidatorSource</a>
 service is responsible for bootstrapping the <a  class="external-link" 
href="http://download.oracle.com/javaee/6/api/javax/validation/Validator.html"; 
rel="nofollow">Validator</a>. You can contribute a <a  class="external-link" hre
 
f="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/beanvalidator/BeanValidatorConfigurer.html";>BeanValidatorConfigurer</a>
 to the configuration of this service in order to participate on the 
configuration of <a  class="external-link" 
href="http://download.oracle.com/javaee/6/api/javax/validation/Validator.html"; 
rel="nofollow">Validator</a>.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid 
#D8E4F1;"><p>&#160;</p></div><p><strong>Bean validation</strong> involves 
validating user input using Tapestry's built-in support for the <a  
class="external-link" href="http://jcp.org/en/jsr/detail?id=303"; 
rel="nofollow">JSR 303 Bean Validation API</a>.</p><div class="aui-label" 
style="float:right" title="Related Articles"><h3>Related Articles</h3><ul 
class="content-by-label"><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="bean-validation.html">Bean Validation</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="forms-and-validation.html">Forms and Validation</a> 
+  </div> </li></ul></div><p>Tapestry has always provided a powerful non-JSR 
303 validation mechanism (see <a  href="forms-and-validation.html">Forms and 
Validation</a>). Among other things this mechanism allows you to annotate your 
domain model classes with the <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/beaneditor/Validate.html";>@Validate</a>
 annotation. However, this annotation is problematic if your domain model is 
used in non-Tapestry applications as well as in Tapestry applications. Your 
non-Tapestry application becomes dependent on <em>tapestry5-annotations</em> 
module. To make your domain model independent from Tapestry you can use the <a  
class="external-link" href="http://jcp.org/en/jsr/detail?id=303"; 
rel="nofollow">JSR 303: Bean Validation</a> instead. This library provides 
integration between Tapestry and JSR-303.</p><h2 
id="BeanValidation-Configuration">Configuration</h2><p>The Tapestry's JSR 303 - 
Bean Validation Libra
 ry is responsible for configuring and bootstrapping the <a  
class="external-link" 
href="http://download.oracle.com/javaee/6/api/javax/validation/Validator.html"; 
rel="nofollow">Validator</a> for you. In order to use this library you have to 
choose an implementation of the JSR-303 specification like <a  
class="external-link" href="https://www.hibernate.org/412.html"; 
rel="nofollow">Hibernate Validator 4.x</a>. This library is not specific to any 
implementation of JSR-303 and will work with any implementation of your 
choice.</p><h3 id="BeanValidation-BootstrapingtheBeanValidator">Bootstraping 
the Bean Validator</h3><p>The <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/beanvalidator/BeanValidatorSource.html";>BeanValidatorSource</a>
 service is responsible for bootstrapping the <a  class="external-link" 
href="http://download.oracle.com/javaee/6/api/javax/validation/Validator.html"; 
rel="nofollow">Validator</a>. You can contribute a <a  class=
 "external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/beanvalidator/BeanValidatorConfigurer.html";>BeanValidatorConfigurer</a>
 to the configuration of this service in order to participate on the 
configuration of <a  class="external-link" 
href="http://download.oracle.com/javaee/6/api/javax/validation/Validator.html"; 
rel="nofollow">Validator</a>.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">@Contribute(BeanValidatorSource.class)
 public static void 
provideBeanValidatorConfigurer(OrderedConfiguration&lt;BeanValidatorConfigurer&gt;
 configuration)
 {

Modified: websites/production/tapestry/content/beaneditform-faq.html
==============================================================================
--- websites/production/tapestry/content/beaneditform-faq.html (original)
+++ websites/production/tapestry/content/beaneditform-faq.html Thu Oct 27 
17:20:26 2016
@@ -46,18 +46,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  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"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<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"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">BeanEditForm FAQ</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><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"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">BeanEditForm FAQ</h1></div></div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/beaneditform-guide.html
==============================================================================
--- websites/production/tapestry/content/beaneditform-guide.html (original)
+++ websites/production/tapestry/content/beaneditform-guide.html Thu Oct 27 
17:20:26 2016
@@ -46,18 +46,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  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"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<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"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">BeanEditForm Guide</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><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"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">BeanEditForm Guide</h1></div></div>
       <div class="clearer"></div>
       </div>
 

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

Modified: websites/production/tapestry/content/class-reloading.html
==============================================================================
--- websites/production/tapestry/content/class-reloading.html (original)
+++ websites/production/tapestry/content/class-reloading.html Thu Oct 27 
17:20:26 2016
@@ -46,18 +46,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  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"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<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"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Class Reloading</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><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"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Class Reloading</h1></div></div>
       <div class="clearer"></div>
       </div>
 
@@ -69,43 +64,23 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><h1 
id="ClassReloading-LiveClassandTemplateReloading">Live Class and Template 
Reloading</h1><div class="aui-label" style="float:right" title="Related 
Articles">
-
-
-
-
-
-
-
-
-<h3>Related Articles</h3>
-
-<ul class="content-by-label"><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  
href="service-implementation-reloading.html">Service Implementation 
Reloading</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="class-reloading.html">Class Reloading</a>
-                
-                        
-                    </div>
-    </li></ul>
-</div><p>One of the best features of Tapestry is automatic reloading of 
changed classes and templates. <em>Page and component</em> classes will 
automatically reload when changed. Likewise, changes to component templates and 
other related resources will also be picked up immediately. In addition, 
starting in version 5.2, your service classes will also be reloaded 
automatically after changes (if you're using <a  href="ioc.html">Tapestry 
IoC</a>).</p><h2 id="ClassReloading-TemplateReloading">Template 
Reloading</h2><p>When a template changes, all page instances (as well as the 
hierarchy of components below them) are discarded and reconstructed with the 
new template. However, classes are not reloaded in this case.</p><h2 
id="ClassReloading-ClassReloading">Class Reloading</h2><p>On a change to 
<em>any</em> loaded class from inside a controlled package (or any sub-package 
of a controlled package), Tapestry will discard all page instances, and discard 
the class loader.</p><p><a  href="persi
 stent-page-data.html">Persistent field data</a> on the pages will usually not 
be affected (as it is stored separately, usually in the session). This allows 
you to make fairly significant changes to a component class even while the 
application continues to run.</p><h2 
id="ClassReloading-PackagesScanned">Packages Scanned</h2><p>Only certain 
classes are subject to reload. Reloading is based on package name; the packages 
that are reloaded are derived from the <a  
href="configuration.html">application configuration</a>.</p><p>If your root 
package is <code>org.example.myapp</code>, then only classes in the following 
packages (and their sub-packages) will be scanned for automatic 
reloads:</p><ul><li>org.example.myapp.pages</li><li>org.example.myapp.components</li><li>org.example.myapp.mixins</li><li>org.example.myapp.base</li><li>org.example.myapp.services
 (Tapestry 5.2 and later, with restrictions)</li></ul><p>
+                <div id="ConfluenceContent"><h1 
id="ClassReloading-LiveClassandTemplateReloading">Live Class and Template 
Reloading</h1><div class="aui-label" style="float:right" title="Related 
Articles"><h3>Related Articles</h3><ul class="content-by-label"><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="service-implementation-reloading.html">Service Implementation 
Reloading</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="class-reloading.html">Class Reloading</a> 
+  </div> </li></ul></div><p>One of the best features of Tapestry is automatic 
reloading of changed classes and templates. <em>Page and component</em> classes 
will automatically reload when changed. Likewise, changes to component 
templates and other related resources will also be picked up immediately. In 
addition, starting in version 5.2, your service classes will also be reloaded 
automatically after changes (if you're using <a  href="ioc.html">Tapestry 
IoC</a>).</p><h2 id="ClassReloading-TemplateReloading">Template 
Reloading</h2><p>When a template changes, all page instances (as well as the 
hierarchy of components below them) are discarded and reconstructed with the 
new template. However, classes are not reloaded in this case.</p><h2 
id="ClassReloading-ClassReloading">Class Reloading</h2><p>On a change to 
<em>any</em> loaded class from inside a controlled package (or any sub-package 
of a controlled package), Tapestry will discard all page instances, and discard 
the class loader.</p
 ><p><a  href="persistent-page-data.html">Persistent field data</a> on the 
 >pages will usually not be affected (as it is stored separately, usually in 
 >the session). This allows you to make fairly significant changes to a 
 >component class even while the application continues to run.</p><h2 
 >id="ClassReloading-PackagesScanned">Packages Scanned</h2><p>Only certain 
 >classes are subject to reload. Reloading is based on package name; the 
 >packages that are reloaded are derived from the <a  
 >href="configuration.html">application configuration</a>.</p><p>If your root 
 >package is <code>org.example.myapp</code>, then only classes in the following 
 >packages (and their sub-packages) will be scanned for automatic 
 >reloads:</p><ul><li>org.example.myapp.pages</li><li>org.example.myapp.components</li><li>org.example.myapp.mixins</li><li>org.example.myapp.base</li><li>org.example.myapp.services
 > (Tapestry 5.2 and later, with restrictions)</li></ul><p>
 
 </p><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Added in 
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
 </div></div>
-<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p>Starting in Tapestry 5.2, live class reloading includes service 
implementation classes. There are some limitations to this. See <a  
href="service-implementation-reloading.html" title="Service Implementation 
Reloading">Service Implementation Reloading</a> for more details.</p>
-</div><h2 id="ClassReloading-FileSystemOnly">File System Only</h2><p>Reloading 
of classes and other files applies only to files that are actually on the file 
system, and not files obtained from JAR files. This is perfect during 
development, where the files in question are in your local workspace. In a 
deployed application, you are somewhat subject to the implementation of your 
servlet container or application server.</p><h2 
id="ClassReloading-ClassLoaderIssues">Class Loader Issues</h2><p>Tapestry uses 
an extra class loader to load page and component classes.</p><p>When a change 
to an underlying Java class file is detected, Tapestry discards the class 
loader and any pooled page instances.</p><p>You should be careful to not hold 
any references to Tapestry pages or components in other code, such as Tapestry 
IoC services. Holding such references can cause significant memory leaks, as 
they can prevent the class loader from being reclaimed by the garbage 
collector.</p><h2 id="ClassReloadi
 ng-ClassCastExceptions">ClassCastExceptions</h2><p>Tapestry's class loader 
architecture can cause minor headaches when you make use of a services layer, 
or any time that you pass component instances to objects that are not 
themselves components.</p><p>In such cases you may see ClassCastException 
errors. This is because the same class name, say org.example.myapp.pages.Start, 
exists as two different class instances. One class instance is loaded by the 
web application's default class loader. A second class instance has been loaded 
<em>and transformed</em> by Tapestry's reloading class loader.</p><p>Ordinary 
classes, such as Tapestry IoC Services, will be loaded by the default class 
loader and expect instances to be loaded by the same class loader (or a 
parent).</p><p>The solution to this problem is to introduce an interface; the 
component class should implement the interface, and the service should expect 
an instance of the interface, rather than a specific type.</p><p>It is 
important 
 that the interface be loaded by the default class loader. It should not be in 
the pages or components package, but instead be in another package, such as 
services.</p><h2 id="ClassReloading-HandlingReloadsinyourCode">Handling Reloads 
in your Code</h2><p>On occasion, you may need to know when invalidations occur, 
to clear your own cache. For example, if you have a binding that creates new 
classes, the way <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/PropertyConduitSource.html";>PropertyConduitSource</a>
 does, you need to discard any cached classes or instances when a change is 
detected in component classes.</p><p>You do this by registering a listener with 
the correct <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tpaestry5/services/InvalidationEventHub.html";>InvalidationEventHub</a>
 service.</p><p>For example, your service may be in the business of creating 
new classes based on component
  classes, and keep a cache of those classes:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid 
#D8E4F1;"><p>Starting in Tapestry 5.2, live class reloading includes service 
implementation classes. There are some limitations to this. See <a  
href="service-implementation-reloading.html" title="Service Implementation 
Reloading">Service Implementation Reloading</a> for more details.</p></div><h2 
id="ClassReloading-FileSystemOnly">File System Only</h2><p>Reloading of classes 
and other files applies only to files that are actually on the file system, and 
not files obtained from JAR files. This is perfect during development, where 
the files in question are in your local workspace. In a deployed application, 
you are somewhat subject to the implementation of your servlet container or 
application server.</p><h2 id="ClassReloading-ClassLoaderIssues">Class Loader 
Issues</h2><p>Tapestry uses an extra class loader to load page and component 
classes.</p><p>When a change to an underlying Java class file is detected, 
Tapestry
  discards the class loader and any pooled page instances.</p><p>You should be 
careful to not hold any references to Tapestry pages or components in other 
code, such as Tapestry IoC services. Holding such references can cause 
significant memory leaks, as they can prevent the class loader from being 
reclaimed by the garbage collector.</p><h2 
id="ClassReloading-ClassCastExceptions">ClassCastExceptions</h2><p>Tapestry's 
class loader architecture can cause minor headaches when you make use of a 
services layer, or any time that you pass component instances to objects that 
are not themselves components.</p><p>In such cases you may see 
ClassCastException errors. This is because the same class name, say 
org.example.myapp.pages.Start, exists as two different class instances. One 
class instance is loaded by the web application's default class loader. A 
second class instance has been loaded <em>and transformed</em> by Tapestry's 
reloading class loader.</p><p>Ordinary classes, such as Tapestry I
 oC Services, will be loaded by the default class loader and expect instances 
to be loaded by the same class loader (or a parent).</p><p>The solution to this 
problem is to introduce an interface; the component class should implement the 
interface, and the service should expect an instance of the interface, rather 
than a specific type.</p><p>It is important that the interface be loaded by the 
default class loader. It should not be in the pages or components package, but 
instead be in another package, such as services.</p><h2 
id="ClassReloading-HandlingReloadsinyourCode">Handling Reloads in your 
Code</h2><p>On occasion, you may need to know when invalidations occur, to 
clear your own cache. For example, if you have a binding that creates new 
classes, the way <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/PropertyConduitSource.html";>PropertyConduitSource</a>
 does, you need to discard any cached classes or instances when a change 
 is detected in component classes.</p><p>You do this by registering a listener 
with the correct <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tpaestry5/services/InvalidationEventHub.html";>InvalidationEventHub</a>
 service.</p><p>For example, your service may be in the business of creating 
new classes based on component classes, and keep a cache of those 
classes:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public class MyServiceImpl implements MyService, 
InvalidationEventListener
 {
   public final Map&lt;String,Class&gt; cache = new 
ConcurrentHashMap&lt;String,Class&gt;();


Reply via email to