Author: buildbot
Date: Mon Jul 11 07:12:07 2022
New Revision: 1080106

Log:
Production update by buildbot for tapestry

Modified:
    websites/production/tapestry/content/ajax-and-zones.html
    websites/production/tapestry/content/cache/main.pageCache
    websites/production/tapestry/content/community.html
    websites/production/tapestry/content/component-mixins.html
    websites/production/tapestry/content/demos.html
    websites/production/tapestry/content/downloadboxes-v2.html
    websites/production/tapestry/content/getting-started.html
    websites/production/tapestry/content/indexv2-old.html
    websites/production/tapestry/content/page-navigation.html
    websites/production/tapestry/content/persistent-page-data.html
    websites/production/tapestry/content/security.html
    websites/production/tapestry/content/uploading-files.html
    websites/production/tapestry/content/using-select-with-a-list.html
    websites/production/tapestry/content/using-tapestry-with-hibernate.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 Mon Jul 11 
07:12:07 2022
@@ -298,9 +298,9 @@ Object onActionFromSomeLink()
     return request.isXHR() ? myZone.getBody() : null;
 } 
 </code></pre>
-</div></div><h3 id="AjaxandZones-MultipleZoneUpdates">Multiple Zone 
Updates</h3><div class="navmenu" style="float:right; background:#eee; 
margin:3px; padding:0 1em">
+</div></div><h3 id="AjaxandZones-MultipleZoneUpdates">Multiple Zone 
Updates</h3><p></p><div class="navmenu" style="float:right; background:#eee; 
margin:3px; padding:0 1em">
 <p>    <strong>JumpStart Demo:</strong>
-    <span class="nobr"><a class="external-link" 
href="http://jumpstart.doublenegative.com.au/jumpstart/examples/ajax/multiplezoneupdate";
 rel="nofollow">AJAX Multiple Zone Update<sup><img align="middle" 
class="rendericon" src="/images/confluence/icons/linkext7.gif" height="7" 
width="7" alt="" border="0"></sup></a></span></p></div>An event handler often 
needs to update multiple zones on the client side. To accomplish this, use an 
<a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/ajax/AjaxResponseRenderer.html";>AjaxResponseRenderer</a>,
 indicating the zones to update. You must know the client-side id for each zone 
to update (the best way for this is to lock down the zone's id using the id 
parameter of the Zone component).<p><em>AjaxResponseRenderer was introduced in 
Tapestry 5.3. For Tapestry 5.2 and earlier, return a <a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ajax/MultiZoneUpdate.
 html">MultiZoneUpdate</a> object instead.</em></p><p>The renderer for each 
zone can be the zone itself, a block, a component, a <a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/Renderable.html";>Renderable</a>
 or a <a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/runtime/RenderCommand.html";>RenderCommand</a>
 ... or an object, such as String, that can be coerced to either of 
these.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>For 
Tapestry 5.3 and later</b></div><div class="codeContent panelContent pdl">
+    <span class="nobr"><a class="external-link" 
href="https://tapestry-jumpstart.org/jumpstart/examples/ajax/multiplezoneupdate";
 rel="nofollow">AJAX Multiple Zone Update<sup><img align="middle" 
class="rendericon" src="/images/confluence/icons/linkext7.gif" height="7" 
width="7" alt="" border="0"></sup></a></span></p></div>An event handler often 
needs to update multiple zones on the client side. To accomplish this, use an 
<a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/ajax/AjaxResponseRenderer.html";>AjaxResponseRenderer</a>,
 indicating the zones to update. You must know the client-side id for each zone 
to update (the best way for this is to lock down the zone's id using the id 
parameter of the Zone component).<p></p><p><em>AjaxResponseRenderer was 
introduced in Tapestry 5.3. For Tapestry 5.2 and earlier, return a <a 
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ajax/MultiZoneUpdate.h
 tml">MultiZoneUpdate</a> object instead.</em></p><p>The renderer for each zone 
can be the zone itself, a block, a component, a <a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/Renderable.html";>Renderable</a>
 or a <a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/runtime/RenderCommand.html";>RenderCommand</a>
 ... or an object, such as String, that can be coerced to either of 
these.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>For 
Tapestry 5.3 and later</b></div><div class="codeContent panelContent pdl">
 <pre><code class="language-java">@InjectComponent
 private Zone userInput;
 
@@ -324,11 +324,11 @@ void onActionFromRegister()
 </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><code class="language-js">Tapestry.ElementEffect.myeffectname = 
function(element){ YourJavascriptCodeGoesHere; };
 </code></pre>
-</div></div><h3 id="AjaxandZones-ZoneLimitations">Zone 
Limitations</h3><p>Unlike many other situations, Tapestry relies on you to 
specify useful and unique ids to Zone components, then reference those ids 
inside EventLink (or ActionLink, or Form) components. Using Zone components 
inside any kind of loop may cause additional problems, as Tapestry will 
<em>uniqueify</em> the client id you specify (appending an index 
number).</p><p>If you create a component that contains a zone, and you use that 
component in a loop, you'll likely need to set the client-side id like 
this:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
+</div></div><h3 id="AjaxandZones-ZoneLimitations">Zone 
Limitations</h3><p>Unlike many other situations, Tapestry relies on you to 
specify useful and unique ids to Zone components, then reference those ids 
inside EventLink (or ActionLink, or Form) components. Using Zone components 
inside any kind of loop may cause additional problems, as Tapestry will 
<em>uniqueify</em> the client id you specify (appending an index 
number).</p><p>If you create a component that contains a zone, and you use that 
component in a loop, you'll likely need to set the client-side id like 
this:</p><p></p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <pre><code class="language-xml">&lt;t:zone t:id="myzone" 
id="prop:componentResources.id"&gt;</code></pre>
-</div></div><p>See <a class="external-link" 
href="http://jumpstart.doublenegative.com.au/jumpstart/examples/ajax/components1";
 rel="nofollow">this JumpStart Example</a> for details.</p><p>The show and 
update function names (Tapestry 5.3 and earlier only) are converted to lower 
case; all the methods of Tapestry.ElementEffect should have all lower-case 
names. Because client-side JavaScript is so fluid (new methods may be added to 
existing objects), Tapestry makes no attempt to validate the function names ... 
however, if the names are not valid, then the default show and highlight 
methods will be used.</p><p>Zones may only be used inside the <em>body</em> of 
a page, not the head<em>.</em></p><h3 id="AjaxandZones-MoreInformation">More 
Information</h3><p>For examples of extending a Form with a Zone and updating 
multiple zones at once, see the <a href="ajax-components-faq.html">Ajax 
Components FAQ</a>.</p><p>There are also a number of Ajax-related examples at 
the&#160;&#160;<a class="exter
 nal-link" href="http://jumpstart.doublenegative.com.au/jumpstart/"; 
rel="nofollow"><span class="confluence-link">Tapestry JumpStart</span></a> 
site.</p><p><span class="confluence-anchor-link" 
id="AjaxandZones-autocomplete"></span></p><h2 
id="AjaxandZones-AutocompleteMixin">Autocomplete Mixin</h2><div class="navmenu" 
style="float:right; background:#eee; margin:3px; padding:0 1em">
+</div></div><p></p><p>See <a class="external-link" 
href="https://tapestry-jumpstart.org/jumpstart/examples/ajax/components1"; 
rel="nofollow">this JumpStart Example</a> for details.</p><p>The show and 
update function names (Tapestry 5.3 and earlier only) are converted to lower 
case; all the methods of Tapestry.ElementEffect should have all lower-case 
names. Because client-side JavaScript is so fluid (new methods may be added to 
existing objects), Tapestry makes no attempt to validate the function names ... 
however, if the names are not valid, then the default show and highlight 
methods will be used.</p><p>Zones may only be used inside the <em>body</em> of 
a page, not the head<em>.</em></p><h3 id="AjaxandZones-MoreInformation">More 
Information</h3><p>For examples of extending a Form with a Zone and updating 
multiple zones at once, see the <a href="ajax-components-faq.html">Ajax 
Components FAQ</a>.</p><p>There are also a number of Ajax-related examples at 
the&#160;&#160;<a class="extern
 al-link" href="https://tapestry-jumpstart.org/jumpstart/"; rel="nofollow"><span 
class="confluence-link">Tapestry JumpStart</span></a> site.</p><p><span 
class="confluence-anchor-link" id="AjaxandZones-autocomplete"></span></p><h2 
id="AjaxandZones-AutocompleteMixin">Autocomplete Mixin</h2><p></p><div 
class="navmenu" style="float:right; background:#eee; margin:3px; padding:0 1em">
 <p>    <strong>JumpStart Demo:</strong>
-    <span class="nobr"><a class="external-link" 
href="http://jumpstart.doublenegative.com.au/jumpstart/examples/ajax/autocompletemixin";
 rel="nofollow">Autocomplete Mixin<sup><img align="middle" class="rendericon" 
src="/images/confluence/icons/linkext7.gif" height="7" width="7" alt="" 
border="0"></sup></a></span></p></div>The <a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/Autocomplete.html";>Autocomplete</a>
 mixin exists to allow a text field to query the server for completions for a 
partially entered phrase. It is often used in situations where the field exists 
to select a single value from a large set, too large to successfully download 
to the client as a drop down list; for example, when the number of values to 
select from is numbered in the thousands.<p>Autocomplete can be added to an 
existing text field:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+    <span class="nobr"><a class="external-link" 
href="http://jumpstart.doublenegative.com.au/jumpstart/examples/ajax/autocompletemixin";
 rel="nofollow">Autocomplete Mixin<sup><img align="middle" class="rendericon" 
src="/images/confluence/icons/linkext7.gif" height="7" width="7" alt="" 
border="0"></sup></a></span></p></div>The <a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/Autocomplete.html";>Autocomplete</a>
 mixin exists to allow a text field to query the server for completions for a 
partially entered phrase. It is often used in situations where the field exists 
to select a single value from a large set, too large to successfully download 
to the client as a drop down list; for example, when the number of values to 
select from is numbered in the thousands.<p></p><p>Autocomplete can be added to 
an existing text field:</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
 <pre><code class="language-java">  &lt;t:textfield t:id="accountName" 
t:mixins="autocomplete" size="100"/&gt;
 </code></pre>
 </div></div><p>The mixin can be configured in a number of ways, see the <a 
href="component-reference.html">component reference</a>.</p><p>When the user 
types into the field, the client-side JavaScript will send a request to the 
server to get completions.</p><p>You must write an event handler to provide 
these completions. The name of the event is "providecompletions". The context 
is the partial input value, and the return value will be converted into the 
selections for the user.</p><p>For example:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -346,7 +346,7 @@ void onActionFromRegister()
     return result;
   }
 </code></pre>
-</div></div><p>This presumes that <code>findByPartialAccountName()</code> will 
sort the values, otherwise you will probably want to sort them. The 
Autocomplete mixin does <em>not</em> do any sorting.</p><p>You can return an 
object array, a list, even a single object. You may return objects instead of 
strings ... and <code>toString()</code> will be used to convert them into 
client-side strings.</p><h2 
id="AjaxandZones-Invokingserver-sideeventhandlermethodsfromJavaScript">Invoking 
server-side event handler methods from JavaScript</h2><p>Tapestry 5.4.2 
introduced an API which makes it easy for server-side events to be invoked from 
JavaScript. On the server-side, you first need to annotate the event handler 
methods you want to expose with 
the&#160;<code>@PublishEvent</code>&#160;annotation. Then, in JavaScript, all 
you need to do is to call the existing&#160;<code><a class="external-link" 
href="http://tapestry.apache.org/current/coffeescript/ajax.html";>t5/core/ajax</a></code>&#160;funct
 ion, but with slightly different parameters.</p><p><code>The 
t5/core/ajax</code>&#160;function has two parameters:&#160;<code>url</code> 
and&#160;<code>options</code>. Prior to Tapestry 5.4.2, the first one was 
difficult to get when doing AJAX requests to event handler methods. You needed 
to inject <code>ComponentResources in your component class</code>, 
call&#160;<code>componentResources.createEventLink()</code> for each event 
handler method, then pass all this information back to the browser through one 
of the&#160;<code>JavaScriptSupport</code> methods. For Tapestry 5.4.2 and 
later, your JavaScript code only needs to know the event name (also called 
<em>event type</em>) and optionally indicate a DOM element to be used as a 
starting point for finding the event URL.</p><p>All event data is stored 
in&#160;<code>data-componenent-events</code> attributes. For page classes, the 
attribute is added to the&#160;<code>&lt;body&gt;</code> element. For 
components, it's added to the first ele
 ment rendered by the component. Given an HTML element, the search is performed 
in the following order until information for the given event is first 
found:</p><ol><li>The element itself</li><li>The element's previous siblings, 
closest first (bottom-up)</li><li>The element's parents</li><li>The page's 
&lt;<code>body&gt;</code> element</li></ol><p>Here's one example:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+</div></div><p>This presumes that <code>findByPartialAccountName()</code> will 
sort the values, otherwise you will probably want to sort them. The 
Autocomplete mixin does <em>not</em> do any sorting.</p><p>You can return an 
object array, a list, even a single object. You may return objects instead of 
strings ... and <code>toString()</code> will be used to convert them into 
client-side strings.</p><p></p><h2 
id="AjaxandZones-Invokingserver-sideeventhandlermethodsfromJavaScript">Invoking 
server-side event handler methods from JavaScript</h2><p>Tapestry 5.4.2 
introduced an API which makes it easy for server-side events to be invoked from 
JavaScript. On the server-side, you first need to annotate the event handler 
methods you want to expose with 
the&#160;<code>@PublishEvent</code>&#160;annotation. Then, in JavaScript, all 
you need to do is to call the existing&#160;<code><a class="external-link" 
href="http://tapestry.apache.org/current/coffeescript/ajax.html";>t5/core/ajax</a></code>&#16
 0;function, but with slightly different parameters.</p><p><code>The 
t5/core/ajax</code>&#160;function has two parameters:&#160;<code>url</code> 
and&#160;<code>options</code>. Prior to Tapestry 5.4.2, the first one was 
difficult to get when doing AJAX requests to event handler methods. You needed 
to inject <code>ComponentResources in your component class</code>, 
call&#160;<code>componentResources.createEventLink()</code> for each event 
handler method, then pass all this information back to the browser through one 
of the&#160;<code>JavaScriptSupport</code> methods. For Tapestry 5.4.2 and 
later, your JavaScript code only needs to know the event name (also called 
<em>event type</em>) and optionally indicate a DOM element to be used as a 
starting point for finding the event URL.</p><p>All event data is stored 
in&#160;<code>data-componenent-events</code> attributes. For page classes, the 
attribute is added to the&#160;<code>&lt;body&gt;</code> element. For 
components, it's added to the fi
 rst element rendered by the component. Given an HTML element, the search is 
performed in the following order until information for the given event is first 
found:</p><ol><li>The element itself</li><li>The element's previous siblings, 
closest first (bottom-up)</li><li>The element's parents</li><li>The page's 
&lt;<code>body&gt;</code> element</li></ol><p></p><p>Here's one 
example:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <pre><code class="language-java">public class PublishEventDemoComponent
 {
     @OnEvent("answer")

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

Modified: websites/production/tapestry/content/community.html
==============================================================================
--- websites/production/tapestry/content/community.html (original)
+++ websites/production/tapestry/content/community.html Mon Jul 11 07:12:07 2022
@@ -143,11 +143,11 @@
             <!-- /// Content Start -->
             <div id="content">
                             <div id="ConfluenceContent"><p>Tapestry has an 
active community of users and developers. This is an overview of how to 
participate, along with a list of some of the great contributions of the 
community members.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1648743109000 {padding: 0px;}
-div.rbtoc1648743109000 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1648743109000 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1657523513147 {padding: 0px;}
+div.rbtoc1657523513147 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1657523513147 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1648743109000">
+/*]]>*/</style></p><div class="toc-macro rbtoc1657523513147">
 <ul class="toc-indentation"><li><a href="#Community-GettingInvolved">Getting 
Involved</a>
 <ul class="toc-indentation"><li><a 
href="#Community-ReportingProblems/GettingSupport">Reporting Problems / Getting 
Support</a></li><li><a 
href="#Community-ContributingtranslationsforTapestrybuilt-inmessages">Contributing
 translations for Tapestry built-in messages</a></li><li><a 
href="#Community-SourceCodeAccess">Source Code Access</a></li><li><a 
href="#Community-BecomingaContributor">Becoming a Contributor</a></li><li><a 
href="#Community-BecomingaCommitter">Becoming a Committer</a></li></ul>
 </li><li><a href="#Community-CommunityContributions">Community 
Contributions</a>
@@ -156,7 +156,7 @@ div.rbtoc1648743109000 li {margin-left:
 </div><h1 id="Community-GettingInvolved">Getting Involved</h1><h2 
id="Community-ReportingProblems/GettingSupport">Reporting Problems / Getting 
Support</h2><p>Like all Apache projects, Tapestry uses mailing lists for most 
communication. You can subscribe by sending e-mail to the addresses below. For 
each list, there are subscribe, unsubscribe, and archive links. All Tapestry 
users are welcome to subscribe to any of these lists, however questions on how 
to <em>use</em> Tapestry in your application are best sent to the <em>user</em> 
mailing list.</p><div class="table-wrap"><table class="table table-bordered 
table-responsive"><colgroup span="1"><col span="1"><col span="1"><col 
span="1"><col span="1"><col span="1"></colgroup><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p></p></td><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Subscribe</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Unsubscribe</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>A
 pache Archive</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>MarkMail Archive</p></th></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Tapestry User List</p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Subscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Unsubscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://mail-archives.apache.org/mod_mbox/tapestry-users/";>mail-archives.apache.org</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.markmail.org/search/?q=list%3Aorg.apache.tapestry.users"; 
rel="nofollow">tapestry.markmail.org</a></p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Tapestry Developer List</p></th><t
 d colspan="1" rowspan="1" class="confluenceTd"><p><a class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Subscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Unsubscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://mail-archives.apache.org/mod_mbox/tapestry-dev/";>mail-archives.apache.org</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.markmail.org/search/?q=list%3Aorg.apache.tapestry.dev"; 
rel="nofollow">tapestry.markmail.org</a></p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Tapestry Commits List</p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Subscribe</a></p></td><td colspan="1" rowspan="1" class="
 confluenceTd"><p><a class="external-link" 
href="mailto:[email protected]"; 
rel="nofollow">Unsubscribe</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://mail-archives.apache.org/mod_mbox/tapestry-commits/";>mail-archives.apache.org</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.markmail.org/search/?q=list%3Aorg.apache.tapestry.commits";
 rel="nofollow">tapestry.markmail.org</a></p></td></tr><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Search Multiple Lists</p></th><td 
colspan="1" rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>-</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>-</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.markmail.org/search/?q=#query:+page:1+state:facets"; 
rel="nofollow">tapestry.markmail.org</a></p></t
 d></tr></tbody></table></div><p>Tapestry issues are tracked in the <a 
class="external-link" href="https://issues.apache.org/jira/browse/TAP5";>Apache 
JIRA</a>.</p><p>Unless your problem is clear as day, it's a good idea to 
discuss it on the Tapestry Users mailing list first, before adding an issue. At 
the same time, it's generally unlikely that a bug will be fixed <em>unless</em> 
a JIRA Issue is created.</p><p>Eric Raymond has a detailed <a 
class="external-link" href="http://catb.org/esr/faqs/smart-questions.html"; 
rel="nofollow">guide to asking questions the right way</a>. If you are not 
getting a response to your problem, it's likely because you aren't asking it 
the right way.</p><p>Just saying something is "broken" or "failed" is not 
enough. How did it fail? Did it do the wrong thing? Throw an exception? Not 
respond in any way? What exactly did you expect to happen? All of this 
information should be made available when looking for help, plus context on the 
general problem you were 
 trying to solve in the first place (there may be a better solution entirely). 
Read Eric Raymond's guide ... it's fun and informative.</p><h2 
id="Community-ContributingtranslationsforTapestrybuilt-inmessages">Contributing 
translations for Tapestry built-in messages</h2><p>If Tapestry's built-in 
messages aren't available in your language, you are welcome to contribute a new 
translation of the message catalogs. For easy instructions, see <a 
href="localization.html">Localization</a>.</p><h2 
id="Community-SourceCodeAccess">Source Code Access</h2><p>Source code for 
Tapestry can be <a href="download.html">downloaded</a> along with pre-compiled 
binaries.</p><p>Tapestry uses <a class="external-link" 
href="http://git-scm.com/"; rel="nofollow">Git</a> to manage the project's 
source code.</p><p>Web access to the Tapestry repository is available as <a 
class="external-link" 
href="https://git-wip-us.apache.org/repos/asf?p=tapestry-5.git";>GIT-WIP at 
Apache</a>.</p><p>Access using Git client:</p><div
  class="preformatted panel" style="border-width: 1px;"><div 
class="preformattedContent panelContent">
 <pre>$ git clone http://git-wip-us.apache.org/repos/asf/tapestry-5.git
 </pre>
-</div></div><p>(See <a href="building-tapestry-from-source.html">Building 
Tapestry from Source</a> for more info.)</p><h2 
id="Community-BecomingaContributor">Becoming a Contributor</h2><p>The best way 
to become a contributor is to become active on the mailing list; Tapestry is 
known to have an active and helpful community on the mailing list, and the more 
mentors we can add, the better.</p><p>If you want to help out with 
documentation, you must sign an <a class="external-link" 
href="http://www.apache.org/licenses/#clas";>Apache Contributor License 
Agreement</a>, at which point we can grant write access to the Confluence Wiki 
(where official documentation is created).</p><p>Providing patches (with 
tests!) is another way to become a contributor. (See the&#160;<a 
href="developer-bible.html">Developer Bible</a> for important guidance on 
source code formatting, class naming conventions, etc.)</p><h2 
id="Community-BecomingaCommitter">Becoming a Committer</h2><p>Active 
contributors may be a
 sked to become full committers, with write access to the source code. 
Generally, contributors who have been consistently active and helpful for three 
to six months are eligible for committer access. If you think you are in that 
category, don't be shy about contacting members of the Tapestry PMC (Project 
Management Committee).</p><hr><h1 
id="Community-CommunityContributions">Community Contributions</h1><div 
class="sectionColumnWrapper"><div class="sectionMacro"><div 
class="sectionMacroRow"><div class="columnMacro" 
style="width:50%;min-width:50%;max-width:50%;"><p><span 
class="confluence-anchor-link" id="Community-modules"></span></p><div 
id="third-parties"><h2 id="Community-Modules">Modules</h2><p><a 
class="external-link" href="https://github.com/chenillekit/chenillekit"; 
rel="nofollow">Chenille Kit</a> by Massimo Lusetti</p><blockquote><p>Collection 
of modules, services, utilities and components (many of which require only 
tapestry-ioc). Includes Accordion, ColorPicker, Editor, Kaptc
 ha, MultipleSelect, RoundCornerContainer, ThumbNail, and many more useful 
components. Also provides integrations with Google services, LDAP, Lucene, 
Mail, Quartz, JasperReports, Bean Scripting Framework, and 
more.</p></blockquote><p><a class="external-link" 
href="http://equanda.org/equanda-tapestry5/"; 
rel="nofollow">Equanda-tapestry5</a> by Joachim Van der 
Auwera</p><blockquote><p>Components useful for building enterprise 
applications. Includes Accordion, Form Traversal, Tabs, TextAreaAutoExpander, 
TreeTable, . Among other things, these focus on easy input of data without the 
need for a mouse.</p></blockquote><p><a class="external-link" 
href="http://tapestry.ioko.com/"; rel="nofollow">ioko-tapestry-commons</a> by 
Ben Gidley, et al.</p><blockquote><p>Provides components for caching, cache 
control, and simple Flash movie integration.</p></blockquote><p><a 
class="external-link" href="http://tapestry.formos.com/nightly/tapx/"; 
rel="nofollow">Tapx</a> by Howard M. Lewis Ship</p><blockquote
 ><p>Collection of modules and components: improved DatePicker, dynamic 
 >Tapestry templates, offline rendering using Tapestry, YUI integration, 
 >Confirm dialog mixin, Kaptcha components, and more!</p></blockquote><p><a 
 >class="external-link" href="http://tapestry5-jquery.com/"; 
 >rel="nofollow">Tapestry5-jQuery</a> by 
 >GOT5</p><blockquote><p>Tapestry5-Jquery lets you use jQuery to completely 
 >replace Prototype, Scriptaculous and the base tapestry.js 
 >script.</p></blockquote><p><a class="external-link" 
 >href="http://exanpe-t5-lib.appspot.com/"; rel="nofollow">Exanpe-T5-Lib</a> by 
 >Laurent Gu&#233;rin et Julien Maupoux</p><blockquote><p>A library of 
 >components: accordion, ajax loader, slider, tab view, secured password, color 
 >picker, tooltip, hideable panel and more! Live demo is 
 >provided.</p></blockquote><p><a class="external-link" 
 >href="http://code.google.com/p/flowlogix/"; rel="nofollow">FlowLogix</a> by 
 >Lenny Primak</p><blockquote><p>a collection of components, services and 
 >utilities that integ
 rates Tapestry into JEE environments and provides other commonly needed 
functionality.</p></blockquote><p><a href="modules.html">More 
Modules</a>...</p><h1 id="Community-Extensions">Extensions</h1><p><a 
class="external-link" href="http://www.arsmachina.com.br/"; rel="nofollow">Ars 
Machina</a> by Thiago H. de Paula 
Figueiredo</p><blockquote><p>Tapestry/Hibernate extensions for Generic DAOs, 
standard CRUD interfaces, and user access logging and 
tracking.</p></blockquote><p><a class="external-link" href="http://tynamo.org/"; 
rel="nofollow">Tynamo project</a> by Tynamo Team / Kalle Korhonen &amp; 
Alejandro Scandroli</p><blockquote><p>Tynamo is model-driven, full-stack web 
framework based on Tapestry 5, allowing you to jump directly from your 
Hibernate entities to a full-blown CRUD application. Tynamo provides several 
modules, including tapestry-model, tapestry-conversations, 
tapestry-hibernate-seedentity, tapestry-resteasy and 
tapestry-security.</p></blockquote></div><div class="columnMac
 ro"><h1 id="Community-Tutorials">Tutorials</h1><p><a class="external-link" 
href="http://jumpstart.doublenegative.com.au/jumpstart"; rel="nofollow">Tapestry 
JumpStart</a> by Geoff Callender</p><blockquote><p>JumpStart is an easy way to 
learn Tapestry by example. It's an online demo application, and also a 
downloadable open source app ready for you to explore and 
modify.</p></blockquote><p><a class="external-link" 
href="http://t5stitch-lazan.rhcloud.com/"; rel="nofollow">Tapestry Stitch</a> by 
Lance</p><blockquote><p>Sample components and concepts in Apache Tapestry 
5</p></blockquote><p><a class="external-link" 
href="http://code.google.com/p/shams/"; rel="nofollow">Shams Examples</a> by 
Mohammad H. Shamsi</p><blockquote><p>A variety of examples of Tapestry 5 pages 
and components.</p></blockquote><p><a class="external-link" 
href="http://wiki.apache.org/tapestry/FrontPage";>Community's Wiki</a> (Moin 
Moin)</p><blockquote><p>The wiki contains a wealth of user-generated tips and 
techniques fo
 r using Tapestry</p></blockquote><h1 id="Community-IDEIntegrations">IDE 
Integrations</h1><p><a class="external-link" 
href="https://github.com/anjlab/eclipse-tapestry5-plugin"; 
rel="nofollow">Eclipse-tapestry5-plugin</a></p><blockquote><p>An Eclipse plugin 
for Tapestry 5 by Dmitry Gusev, with a "Quick Switch" between templates and 
component classes, a Tapestry Context view, and many other convenience 
features. <span style="color: rgb(112,112,112);">This is currently the best 
choice for Eclipse users.</span></p></blockquote><p><a class="external-link" 
href="http://code.google.com/p/tapestrytools/wiki/Install_Guide_Lightweight_TapestryTools";
 rel="nofollow">Tapestry Tools</a> by Gavin Lei</p><blockquote><p>Tapestry 
Tools is an Eclipse plugin for Tapestry 5 which has been built by Gavin Lei 
within the timeframe of GSoC 2012.</p></blockquote><p><a class="external-link" 
href="http://www.jetbrains.com/idea"; rel="nofollow">IntelliJ 10</a> by 
JetBrains</p><blockquote><p>IntelliJ has Tapestry 5
  support included <a class="external-link" 
href="http://www.jetbrains.com/idea/features/tapestry_5.html"; 
rel="nofollow">right out of the box</a>.</p></blockquote><p><a 
class="external-link" href="http://code.google.com/p/loom-t5/"; 
rel="nofollow">loom-t5</a> by Chris Scheid</p><blockquote><p>Eclipse plugin for 
building Tapestry 5 projects</p></blockquote><p><a class="external-link" 
href="http://wiki.apache.org/tapestry/Tapestry5JSPEditorEclipse";>Code 
Completion in Eclipse</a></p><blockquote><p>How to use the built in JSP Eclipse 
Editor and a custom tld file to get Tapestry 5 code completion in 
Eclipse</p></blockquote></div></div></div></div></div></div>
+</div></div><p>(See <a href="building-tapestry-from-source.html">Building 
Tapestry from Source</a> for more info.)</p><h2 
id="Community-BecomingaContributor">Becoming a Contributor</h2><p>The best way 
to become a contributor is to become active on the mailing list; Tapestry is 
known to have an active and helpful community on the mailing list, and the more 
mentors we can add, the better.</p><p>If you want to help out with 
documentation, you must sign an <a class="external-link" 
href="http://www.apache.org/licenses/#clas";>Apache Contributor License 
Agreement</a>, at which point we can grant write access to the Confluence Wiki 
(where official documentation is created).</p><p>Providing patches (with 
tests!) is another way to become a contributor. (See the&#160;<a 
href="developer-bible.html">Developer Bible</a> for important guidance on 
source code formatting, class naming conventions, etc.)</p><h2 
id="Community-BecomingaCommitter">Becoming a Committer</h2><p>Active 
contributors may be a
 sked to become full committers, with write access to the source code. 
Generally, contributors who have been consistently active and helpful for three 
to six months are eligible for committer access. If you think you are in that 
category, don't be shy about contacting members of the Tapestry PMC (Project 
Management Committee).</p><hr><h1 
id="Community-CommunityContributions">Community Contributions</h1><div 
class="sectionColumnWrapper"><div class="sectionMacro"><div 
class="sectionMacroRow"><div class="columnMacro" 
style="width:50%;min-width:50%;max-width:50%;"><p><span 
class="confluence-anchor-link" id="Community-modules"></span></p><p></p><div 
id="third-parties"><p></p><h2 id="Community-Modules">Modules</h2><p><a 
class="external-link" href="https://github.com/chenillekit/chenillekit"; 
rel="nofollow">Chenille Kit</a> by Massimo Lusetti</p><blockquote><p>Collection 
of modules, services, utilities and components (many of which require only 
tapestry-ioc). Includes Accordion, ColorPicker,
  Editor, Kaptcha, MultipleSelect, RoundCornerContainer, ThumbNail, and many 
more useful components. Also provides integrations with Google services, LDAP, 
Lucene, Mail, Quartz, JasperReports, Bean Scripting Framework, and 
more.</p></blockquote><p><a class="external-link" 
href="http://equanda.org/equanda-tapestry5/"; 
rel="nofollow">Equanda-tapestry5</a> by Joachim Van der 
Auwera</p><blockquote><p>Components useful for building enterprise 
applications. Includes Accordion, Form Traversal, Tabs, TextAreaAutoExpander, 
TreeTable, . Among other things, these focus on easy input of data without the 
need for a mouse.</p></blockquote><p><a class="external-link" 
href="http://tapestry.ioko.com/"; rel="nofollow">ioko-tapestry-commons</a> by 
Ben Gidley, et al.</p><blockquote><p>Provides components for caching, cache 
control, and simple Flash movie integration.</p></blockquote><p><a 
class="external-link" href="http://tapestry.formos.com/nightly/tapx/"; 
rel="nofollow">Tapx</a> by Howard M. Lewis Ship<
 /p><blockquote><p>Collection of modules and components: improved DatePicker, 
dynamic Tapestry templates, offline rendering using Tapestry, YUI integration, 
Confirm dialog mixin, Kaptcha components, and more!</p></blockquote><p><a 
class="external-link" href="http://tapestry5-jquery.com/"; 
rel="nofollow">Tapestry5-jQuery</a> by GOT5</p><blockquote><p>Tapestry5-Jquery 
lets you use jQuery to completely replace Prototype, Scriptaculous and the base 
tapestry.js script.</p></blockquote><p><a class="external-link" 
href="http://exanpe-t5-lib.appspot.com/"; rel="nofollow">Exanpe-T5-Lib</a> by 
Laurent Gu&#233;rin et Julien Maupoux</p><blockquote><p>A library of 
components: accordion, ajax loader, slider, tab view, secured password, color 
picker, tooltip, hideable panel and more! Live demo is 
provided.</p></blockquote><p><a class="external-link" 
href="http://code.google.com/p/flowlogix/"; rel="nofollow">FlowLogix</a> by 
Lenny Primak</p><blockquote><p>a collection of components, services and utilit
 ies that integrates Tapestry into JEE environments and provides other commonly 
needed functionality.</p></blockquote><p><a href="modules.html">More 
Modules</a>...</p><h1 id="Community-Extensions">Extensions</h1><p><a 
class="external-link" href="http://www.arsmachina.com.br/"; rel="nofollow">Ars 
Machina</a> by Thiago H. de Paula 
Figueiredo</p><blockquote><p>Tapestry/Hibernate extensions for Generic DAOs, 
standard CRUD interfaces, and user access logging and 
tracking.</p></blockquote><p><a class="external-link" href="http://tynamo.org/"; 
rel="nofollow">Tynamo project</a> by Tynamo Team / Kalle Korhonen &amp; 
Alejandro Scandroli</p><blockquote><p>Tynamo is model-driven, full-stack web 
framework based on Tapestry 5, allowing you to jump directly from your 
Hibernate entities to a full-blown CRUD application. Tynamo provides several 
modules, including tapestry-model, tapestry-conversations, 
tapestry-hibernate-seedentity, tapestry-resteasy and 
tapestry-security.</p></blockquote></div><div cl
 ass="columnMacro"><h1 id="Community-Tutorials">Tutorials</h1><p><a 
class="external-link" href="https://tapestry-jumpstart.org/jumpstart"; 
rel="nofollow">Tapestry JumpStart</a> by Geoff 
Callender</p><blockquote><p>JumpStart is an easy way to learn Tapestry by 
example. It's an online demo application, and also a downloadable open source 
app ready for you to explore and modify.</p></blockquote><p><a 
class="external-link" href="http://t5stitch-lazan.rhcloud.com/"; 
rel="nofollow">Tapestry Stitch</a> by Lance</p><blockquote><p>Sample components 
and concepts in Apache Tapestry 5</p></blockquote><p><a class="external-link" 
href="http://code.google.com/p/shams/"; rel="nofollow">Shams Examples</a> by 
Mohammad H. Shamsi</p><blockquote><p>A variety of examples of Tapestry 5 pages 
and components.</p></blockquote><p><a class="external-link" 
href="http://wiki.apache.org/tapestry/FrontPage";>Community's Wiki</a> (Moin 
Moin)</p><blockquote><p>The wiki contains a wealth of user-generated tips and 
techniq
 ues for using Tapestry</p></blockquote><h1 id="Community-IDEIntegrations">IDE 
Integrations</h1><p><a class="external-link" 
href="https://github.com/anjlab/eclipse-tapestry5-plugin"; 
rel="nofollow">Eclipse-tapestry5-plugin</a></p><blockquote><p>An Eclipse plugin 
for Tapestry 5 by Dmitry Gusev, with a "Quick Switch" between templates and 
component classes, a Tapestry Context view, and many other convenience 
features. <span style="color: rgb(112,112,112);">This is currently the best 
choice for Eclipse users.</span></p></blockquote><p><a class="external-link" 
href="http://code.google.com/p/tapestrytools/wiki/Install_Guide_Lightweight_TapestryTools";
 rel="nofollow">Tapestry Tools</a> by Gavin Lei</p><blockquote><p>Tapestry 
Tools is an Eclipse plugin for Tapestry 5 which has been built by Gavin Lei 
within the timeframe of GSoC 2012.</p></blockquote><p><a class="external-link" 
href="http://www.jetbrains.com/idea"; rel="nofollow">IntelliJ 10</a> by 
JetBrains</p><blockquote><p>IntelliJ has Tape
 stry 5 support included <a class="external-link" 
href="http://www.jetbrains.com/idea/features/tapestry_5.html"; 
rel="nofollow">right out of the box</a>.</p></blockquote><p><a 
class="external-link" href="http://code.google.com/p/loom-t5/"; 
rel="nofollow">loom-t5</a> by Chris Scheid</p><blockquote><p>Eclipse plugin for 
building Tapestry 5 projects</p></blockquote><p><a class="external-link" 
href="http://wiki.apache.org/tapestry/Tapestry5JSPEditorEclipse";>Code 
Completion in Eclipse</a></p><blockquote><p>How to use the built in JSP Eclipse 
Editor and a custom tld file to get Tapestry 5 code completion in 
Eclipse</p></blockquote></div></div></div></div></div></div>
             </div>
             <!-- /// Content End -->
           </div>

Modified: websites/production/tapestry/content/component-mixins.html
==============================================================================
--- websites/production/tapestry/content/component-mixins.html (original)
+++ websites/production/tapestry/content/component-mixins.html Mon Jul 11 
07:12:07 2022
@@ -187,7 +187,7 @@
                 <span class="icon aui-icon content-type-page" 
title="Page">Page:</span>        </div>
 
         <div class="details">
-                        <a href="component-cheat-sheet.html">Component Cheat 
Sheet</a>
+                        <a href="component-parameters.html">Component 
Parameters</a>
                 
                         
                     </div>
@@ -196,7 +196,7 @@
                 <span class="icon aui-icon content-type-page" 
title="Page">Page:</span>        </div>
 
         <div class="details">
-                        <a href="component-parameters.html">Component 
Parameters</a>
+                        <a href="component-cheat-sheet.html">Component Cheat 
Sheet</a>
                 
                         
                     </div>
@@ -303,7 +303,7 @@ private TextField userId;
   @MixinClasses(value={Autocomplete.class,DefaultFromCookie.class},
                 
order={"before:discardbody;after:renderdisabled","before:autocomplete")
 </code></pre>
-</div></div><p>The ordering is always specified in terms of the order of the 
"forward" rendering process (setupRender, beginRender, etc.). When the 
"reverse" rendering phases (afterRender, etc.) occur, the mixin order is 
exactly reversed. Mixins which have no associated ordering constraints will be 
ordered in a manner which is consistent with the specified constraints for all 
other mixins, but is otherwise unspecified.</p><h2 
id="ComponentMixins-AvailableMixins">Available Mixins</h2><p>Tapestry includes 
the following mixins out-of-the-box.</p><div class="table-wrap"><table 
class="table table-bordered table-responsive"><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/Autocomplete.html";>Autocomplete</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>modifies a text field to 
provide for auto-completion of text using values retrieved from the server as
  the user types. <a href="ajax-and-zones.html">See 
instructions</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/Confirm.html";>Confirm</a></td><td
 colspan="1" rowspan="1" class="confluenceTd">attached to a Form or link 
component, runs a modal-dialog to force the user to confirm the behavior. New 
for Tapestry 5.4.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/DiscardBody.html";>DiscardBody</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>discards a component's body. 
Returns false from the BeforeRenderBody phase, which prevents the rendering of 
the body.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5
 /corelib/mixins/FormFieldFocus.html">FormFieldFocus</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>instruments the outer Form on 
which component the focus should be activated. Replaced by OverrideFieldFocus 
starting in Tapestry 5.4.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/FormGroup.html";>FormGroup</a></td><td
 colspan="1" rowspan="1" class="confluenceTd">attaches to a field to render an 
enclosing &lt;div&gt; element and label for proper Bootstrap markup of text 
fields, selects, and textareas</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/NotEmpty.html";>NotEmpty</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>attaches to any component that 
renders an element. At the end of the render, if the e
 lement is empty, then a non-breaking space (&amp;nbsp;) is injected into the 
element.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/OverrideFieldFocus.html";>OverrideFieldFocus</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>when attached to a form field, 
causes that field to gain focus. Starting in Tapestry 5.4, this supersedes 
FormFieldFocus.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/RenderClientId.html";>RenderClientId</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>forces a client element to 
render its client id by ensuring that "getClientId" is 
called.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
class="external-link" href="http://tapestry.apache.org/curren
 
t/apidocs/org/apache/tapestry5/corelib/mixins/RenderDisabled.html">RenderDisabled</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>renders a "disabled" attribute 
if the containing component is disabled</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/RenderInformals.html";>RenderInformals</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>renders out all informal 
parameters, at the end of the BeginRender phase. This mixin can be used with 
components that render a single tag inside the BeginRender 
phase.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/RenderNotification.html";>RenderNotification</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>triggers component event 
notifications when 
 the attached component enters its BeginRender and AfterRender render 
phases.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/TriggerFragment.html";>TriggerFragment</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>when applied to a Checkbox or 
Radio component, links the input field and a FormFragment, making the field 
control the client-side visibility of the FormFragment</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/ZoneRefresh.html";>ZoneRefresh</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>periodically refreshes a Zone 
by triggering an event on the server using ajax 
requests.</p></td></tr></tbody></table></div><p>In addition, the following 
mixins are available from other sources:</p><div cla
 ss="table-wrap"><table class="table table-bordered 
table-responsive"><tbody><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://jumpstart.doublenegative.com.au/jumpstart/examples/javascript/creatingmixins1";
 rel="nofollow">ClickOnce</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>From JumpStart, a mixin to apply to a submit button, 
ensuring it can't be double-clicked</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a class="external-link" 
href="http://wiki.apache.org/tapestry/Tapestry5AndJavaScriptExplained";>Confirm</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Adds a JavaScript 
<em>confirm</em> prompt to any link</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><a class="external-link" 
href="http://jumpstart.doublenegative.com.au/jumpstart/examples/ajax/oneven"; 
rel="nofollow">ZoneUpdater</a></td><td colspan="1" rowspan="1" 
class="confluenceTd">Updates a zone when a clien
 t-side event occurs</td></tr></tbody></table></div><h2 
id="ComponentMixins-AdditionalTools">Additional Tools</h2><p><a 
class="external-link" href="http://tapestryxpath.sourceforge.net/"; 
rel="nofollow">Tapestry-Xpath</a> is a third-part Tapestry module that allows 
XPath traversal of the Tapestry (server-side) DOM, which can be extremely 
useful in certain mixins.</p></div>
+</div></div><p>The ordering is always specified in terms of the order of the 
"forward" rendering process (setupRender, beginRender, etc.). When the 
"reverse" rendering phases (afterRender, etc.) occur, the mixin order is 
exactly reversed. Mixins which have no associated ordering constraints will be 
ordered in a manner which is consistent with the specified constraints for all 
other mixins, but is otherwise unspecified.</p><h2 
id="ComponentMixins-AvailableMixins">Available Mixins</h2><p>Tapestry includes 
the following mixins out-of-the-box.</p><div class="table-wrap"><table 
class="table table-bordered table-responsive"><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/Autocomplete.html";>Autocomplete</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>modifies a text field to 
provide for auto-completion of text using values retrieved from the server as
  the user types. <a href="ajax-and-zones.html">See 
instructions</a>.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/Confirm.html";>Confirm</a></td><td
 colspan="1" rowspan="1" class="confluenceTd">attached to a Form or link 
component, runs a modal-dialog to force the user to confirm the behavior. New 
for Tapestry 5.4.</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/DiscardBody.html";>DiscardBody</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>discards a component's body. 
Returns false from the BeforeRenderBody phase, which prevents the rendering of 
the body.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5
 /corelib/mixins/FormFieldFocus.html">FormFieldFocus</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>instruments the outer Form on 
which component the focus should be activated. Replaced by OverrideFieldFocus 
starting in Tapestry 5.4.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/FormGroup.html";>FormGroup</a></td><td
 colspan="1" rowspan="1" class="confluenceTd">attaches to a field to render an 
enclosing &lt;div&gt; element and label for proper Bootstrap markup of text 
fields, selects, and textareas</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/NotEmpty.html";>NotEmpty</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>attaches to any component that 
renders an element. At the end of the render, if the e
 lement is empty, then a non-breaking space (&amp;nbsp;) is injected into the 
element.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/OverrideFieldFocus.html";>OverrideFieldFocus</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>when attached to a form field, 
causes that field to gain focus. Starting in Tapestry 5.4, this supersedes 
FormFieldFocus.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/RenderClientId.html";>RenderClientId</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>forces a client element to 
render its client id by ensuring that "getClientId" is 
called.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
class="external-link" href="http://tapestry.apache.org/curren
 
t/apidocs/org/apache/tapestry5/corelib/mixins/RenderDisabled.html">RenderDisabled</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>renders a "disabled" attribute 
if the containing component is disabled</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/RenderInformals.html";>RenderInformals</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>renders out all informal 
parameters, at the end of the BeginRender phase. This mixin can be used with 
components that render a single tag inside the BeginRender 
phase.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/RenderNotification.html";>RenderNotification</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>triggers component event 
notifications when 
 the attached component enters its BeginRender and AfterRender render 
phases.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/TriggerFragment.html";>TriggerFragment</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>when applied to a Checkbox or 
Radio component, links the input field and a FormFragment, making the field 
control the client-side visibility of the FormFragment</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/ZoneRefresh.html";>ZoneRefresh</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>periodically refreshes a Zone 
by triggering an event on the server using ajax 
requests.</p></td></tr></tbody></table></div><p>In addition, the following 
mixins are available from other sources:</p><div cla
 ss="table-wrap"><table class="table table-bordered table-responsive"><colgroup 
span="1"><col span="1"><col span="1"></colgroup><tbody><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a class="external-link" 
href="https://tapestry-jumpstart.org/jumpstart/examples/javascript/creatingmixins1";
 rel="nofollow">ClickOnce</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>From JumpStart, a mixin to apply to a submit button, 
ensuring it can't be double-clicked</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a class="external-link" 
href="http://wiki.apache.org/tapestry/Tapestry5AndJavaScriptExplained";>Confirm</a></p></td><td
 colspan="1" rowspan="1" class="confluenceTd"><p>Adds a JavaScript 
<em>confirm</em> prompt to any link</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><a class="external-link" 
href="https://tapestry-jumpstart.org/jumpstart/examples/ajax/oneven"; 
rel="nofollow">ZoneUpdater</a></td><td colspan="1" rowspan="1" class=
 "confluenceTd">Updates a zone when a client-side event 
occurs</td></tr></tbody></table></div><h2 
id="ComponentMixins-AdditionalTools">Additional Tools</h2><p><a 
class="external-link" href="http://tapestryxpath.sourceforge.net/"; 
rel="nofollow">Tapestry-Xpath</a> is a third-part Tapestry module that allows 
XPath traversal of the Tapestry (server-side) DOM, which can be extremely 
useful in certain mixins.</p></div>
             </div>
             <!-- /// Content End -->
           </div>

Modified: websites/production/tapestry/content/demos.html
==============================================================================
--- websites/production/tapestry/content/demos.html (original)
+++ websites/production/tapestry/content/demos.html Mon Jul 11 07:12:07 2022
@@ -142,7 +142,7 @@
             
             <!-- /// Content Start -->
             <div id="content">
-                            <div id="ConfluenceContent"><p>Tapestry 
contributors have developed the following applications to demonstrate the some 
of the framework's capabilities.</p><ul><li><a class="external-link" 
href="https://tapestry-app.apache.org/hotels/";>Hotel Booking</a></li><li><a 
class="external-link" href="http://jumpstart.doublenegative.com.au/jumpstart"; 
rel="nofollow">JumpStart</a></li><li><a class="external-link" 
href="https://github.com/uklance/tapestry-stitch"; 
rel="nofollow">Stitch</a></li><li><a class="external-link" 
href="http://tapestry5.dev-util.com/"; rel="nofollow">Tapestry5 
Dev-Util</a></li></ul><h2 id="Demos-Otherdemonstrations">Other 
demonstrations</h2><p>More demonstrations are listed at <a 
class="external-link" 
href="http://wiki.apache.org/tapestry/Tapestry5ModuleRegistry";>http://wiki.apache.org/tapestry/Tapestry5ModuleRegistry</a></p></div>
+                            <div id="ConfluenceContent"><p>Tapestry 
contributors have developed the following applications to demonstrate the some 
of the framework's capabilities.</p><ul><li><a class="external-link" 
href="https://tapestry-app.apache.org/hotels/";>Hotel Booking</a></li><li><a 
class="external-link" href="https://tapestry-jumpstart.org/jumpstart"; 
rel="nofollow">JumpStart</a></li><li><a class="external-link" 
href="https://github.com/uklance/tapestry-stitch"; 
rel="nofollow">Stitch</a></li><li><a class="external-link" 
href="http://tapestry5.dev-util.com/"; rel="nofollow">Tapestry5 
Dev-Util</a></li></ul><h2 id="Demos-Otherdemonstrations">Other 
demonstrations</h2><p>More demonstrations are listed at <a 
class="external-link" 
href="http://wiki.apache.org/tapestry/Tapestry5ModuleRegistry";>http://wiki.apache.org/tapestry/Tapestry5ModuleRegistry</a></p></div>
             </div>
             <!-- /// Content End -->
           </div>

Modified: websites/production/tapestry/content/downloadboxes-v2.html
==============================================================================
--- websites/production/tapestry/content/downloadboxes-v2.html (original)
+++ websites/production/tapestry/content/downloadboxes-v2.html Mon Jul 11 
07:12:07 2022
@@ -142,19 +142,19 @@
             
             <!-- /// Content Start -->
             <div id="content">
-                            <div id="ConfluenceContent"><div class="row" 
id="downloadbox"><div class="col-md-4" id="download"><p><a 
class="external-link" href="http://tapestry.apache.org/download.html";><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" 
src="downloadboxes-v2.data/download.png"></span></a></p><ul><li><a 
class="external-link" href="http://tapestry.apache.org/download.html";>Download 
Tapestry</a></li></ul></div>
+                            <div id="ConfluenceContent"><div class="row" 
id="downloadbox"><div class="col-md-4" id="download"><p><a 
class="external-link" href="http://tapestry.apache.org/download.html";><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" 
draggable="false" 
src="downloadboxes-v2.data/download.png"></span></a></p><ul><li><a 
class="external-link" href="http://tapestry.apache.org/download.html";>Download 
Tapestry</a></li></ul></div>
 
 
-<div class="col-md-4" id="plugins"><p>&#160;<a class="external-link" 
href="http://tapestry.apache.org/modules.html";><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" 
src="downloadboxes-v2.data/plugins.png"></span></a></p><ul><li><a 
class="external-link" href="https://github.com/got5/tapestry5-jquery"; 
rel="nofollow">Tapestry5-jQuery</a></li><li><a class="external-link" 
href="http://www.tynamo.org/tapestry-security+guide/"; 
rel="nofollow">Tapestry-security</a></li><li><a class="external-link" 
href="https://github.com/uklance/tapestry-cometd"; 
rel="nofollow">Tapestry-comentd</a></li></ul><p><a class="external-link" 
href="http://tapestry.apache.org/modules.html";>More modules and 
components...</a></p></div>
+<div class="col-md-4" id="plugins"><p>&#160;<a class="external-link" 
href="http://tapestry.apache.org/modules.html";><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" 
draggable="false" 
src="downloadboxes-v2.data/plugins.png"></span></a></p><ul><li><a 
class="external-link" href="https://github.com/got5/tapestry5-jquery"; 
rel="nofollow">Tapestry5-jQuery</a></li><li><a class="external-link" 
href="http://www.tynamo.org/tapestry-security+guide/"; 
rel="nofollow">Tapestry-security</a></li><li><a class="external-link" 
href="https://github.com/uklance/tapestry-cometd"; 
rel="nofollow">Tapestry-comentd</a></li></ul><p><a class="external-link" 
href="http://tapestry.apache.org/modules.html";>More modules and 
components...</a></p></div>
 
 
-<div class="col-md-4" id="demos"><p><a class="external-link" 
href="http://tapestry.apache.org/demos.html";><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" 
src="downloadboxes-v2.data/demos.png"></span></a></p><ul><li><a 
class="external-link" href="http://tapestry-vm.apache.org/hotels";>Hotel 
Booking</a></li><li><a class="external-link" 
href="http://jumpstart.doublenegative.com.au/jumpstart/"; 
rel="nofollow">JumpStart</a></li><li><a class="external-link" 
href="https://github.com/uklance/tapestry-stitch"; 
rel="nofollow">Stitch</a></li></ul><p><a class="external-link" 
href="http://tapestry.apache.org/demos.html";>More demos...</a></p></div>
+<div class="col-md-4" id="demos"><p><a class="external-link" 
href="http://tapestry.apache.org/demos.html";><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" 
draggable="false" 
src="downloadboxes-v2.data/demos.png"></span></a></p><ul><li><a 
class="external-link" href="http://tapestry-vm.apache.org/hotels";>Hotel 
Booking</a></li><li><a class="external-link" 
href="https://tapestry-jumpstart.org/jumpstart/"; 
rel="nofollow">JumpStart</a></li><li><a class="external-link" 
href="https://github.com/uklance/tapestry-stitch"; 
rel="nofollow">Stitch</a></li></ul><p><a class="external-link" 
href="http://tapestry.apache.org/demos.html";>More demos...</a></p></div>
 
 
 </div>
 
 
-</div>
+<p></p><p></p></div>
             </div>
             <!-- /// Content End -->
           </div>

Modified: websites/production/tapestry/content/getting-started.html
==============================================================================
--- websites/production/tapestry/content/getting-started.html (original)
+++ websites/production/tapestry/content/getting-started.html Mon Jul 11 
07:12:07 2022
@@ -204,7 +204,7 @@
 </div>
 
 
-<p></p><p>Getting started with Tapestry is easy, and you have lots of ways to 
begin: watch a video, browse the source code of a working demo app, create a 
skeleton app using Maven, or step through the tutorial.</p><h2 
id="GettingStarted-Watchashortvideo">Watch a short video</h2><p>For a 
fast-paced introduction, watch Mark W. Shead's <a class="external-link" 
href="http://blog.markshead.com/900/tapestry-5-10-minute-demo/"; 
rel="nofollow">10 Minute Demo</a>. This video shows how to set up a simple 
Tapestry application, complete with form validation, Hibernate-based 
persistence, and Ajax. The video provides a preview of the development speed 
and productivity that experienced Tapestry users enjoy.</p><h2 
id="GettingStarted-Playwithaworkingdemoapp">Play with a working demo 
app</h2><p>You can also play with Tapestry via our live demonstration 
applications. To start, have a look at the <a class="external-link" 
href="https://tapestry-app.apache.org/hotels/";>Hotel Booking Demo</a>. The <a 
clas
 s="external-link" 
href="http://github.com/bobharner/tapestry5-hotel-booking-5.4/"; 
rel="nofollow">source code</a> is provided so you can download and play with 
it. Also check out the <a class="external-link" 
href="http://jumpstart.doublenegative.com.au/jumpstart/"; 
rel="nofollow">Jumpstart demonstration site</a>.</p><h2 
id="GettingStarted-CreateyourfirstTapestryproject">Create your first Tapestry 
project</h2><p>The easiest way to start a new app is to use <a 
class="external-link" href="http://maven.apache.org";>Apache Maven</a> to create 
your initial project; Maven can use an <em>archetype</em> (a kind of project 
template) to create a bare-bones Tapestry application for you.</p><p>Once you 
have Maven installed, execute the following command:</p><div 
class="preformatted panel" style="border-width: 1px;"><div 
class="preformattedContent panelContent">
+<p></p><p>Getting started with Tapestry is easy, and you have lots of ways to 
begin: watch a video, browse the source code of a working demo app, create a 
skeleton app using Maven, or step through the tutorial.</p><h2 
id="GettingStarted-Watchashortvideo">Watch a short video</h2><p>For a 
fast-paced introduction, watch Mark W. Shead's <a class="external-link" 
href="http://blog.markshead.com/900/tapestry-5-10-minute-demo/"; 
rel="nofollow">10 Minute Demo</a>. This video shows how to set up a simple 
Tapestry application, complete with form validation, Hibernate-based 
persistence, and Ajax. The video provides a preview of the development speed 
and productivity that experienced Tapestry users enjoy.</p><h2 
id="GettingStarted-Playwithaworkingdemoapp">Play with a working demo 
app</h2><p>You can also play with Tapestry via our live demonstration 
applications. To start, have a look at the <a class="external-link" 
href="https://tapestry-app.apache.org/hotels/";>Hotel Booking Demo</a>. The <a 
clas
 s="external-link" 
href="http://github.com/bobharner/tapestry5-hotel-booking-5.4/"; 
rel="nofollow">source code</a> is provided so you can download and play with 
it. Also check out the <a class="external-link" 
href="https://tapestry-jumpstart.org/jumpstart/"; rel="nofollow">Jumpstart 
demonstration site</a>.</p><h2 
id="GettingStarted-CreateyourfirstTapestryproject">Create your first Tapestry 
project</h2><p>The easiest way to start a new app is to use <a 
class="external-link" href="http://maven.apache.org";>Apache Maven</a> to create 
your initial project; Maven can use an <em>archetype</em> (a kind of project 
template) to create a bare-bones Tapestry application for you.</p><p>Once you 
have Maven installed, execute the following command:</p><div 
class="preformatted panel" style="border-width: 1px;"><div 
class="preformattedContent panelContent">
 <pre>mvn archetype:generate -Dfilter=org.apache.tapestry:quickstart</pre>
 </div></div><p><span>(Alternatively, <span> if you want to get an archetype 
for a not-yet-released version of Tapestry</span> &#8211; most users 
don't&#160;&#8211; you can use the staging URI, <code><span 
class="nolink"><span class="nolink"><a class="external-link" 
href="https://repository.apache.org/content/repositories/staging";>https://repository.apache.org/content/repositories/staging</a></span></span></code>
 ).</span></p><p><span><span>Maven will prompt you for the archetype to create 
("Tapestry 5 Quickstart Project") and the exact version number (e.g., "5.5.0"). 
It also asks you for a group id, an artifact id, and a version number.</span> 
You can see this in the following transcript:</span></p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre><code class="language-text">$ mvn archetype:generate 
-DarchetypeCatalog=http://tapestry.apache.org
@@ -289,7 +289,7 @@ Application 'app' (version 1.0-SNAPSHOT-
 
 [INFO] Started [email protected]:8080
 [INFO] Started Jetty Server</code></pre>
-</div></div><p></p><p>After some more one-time downloads you can open your 
browser to <a class="external-link" href="http://localhost:8080/newapp"; 
rel="nofollow">http://localhost:8080/newapp</a> to see the application 
running:</p><p><span class="confluence-embedded-file-wrapper 
image-center-wrapper confluence-embedded-manual-size"><img 
class="confluence-embedded-image confluence-external-resource 
confluence-content-image-border image-center" width="375" 
src="getting-started.data/newapp_Index.png" 
data-image-src="https://cwiki.apache.org/confluence/download/attachments/23334911/newapp_Index.png?version=1&amp;modificationDate=1428074330000&amp;api=v2";></span></p><p>The
 application consists of three pages sharing a common look and feel. The 
initial page, Index, allows you to perform some basic operations.</p><p>You can 
also load the newly-created project it into any IDE and start coding. See the 
next section on where to find the different components of the 
application.</p><h2 id="Getti
 ngStarted-Exploringthegeneratedproject">Exploring the generated 
project</h2><p>The archetype creates the following files:</p><div 
class="preformatted panel" style="border-width: 1px;"><div 
class="preformattedContent panelContent">
+</div></div><p></p><p>After some more one-time downloads you can open your 
browser to <a class="external-link" href="http://localhost:8080/newapp"; 
rel="nofollow">http://localhost:8080/newapp</a> to see the application 
running:</p><p><span class="confluence-embedded-file-wrapper 
image-center-wrapper confluence-embedded-manual-size"><img 
class="confluence-embedded-image confluence-external-resource 
confluence-content-image-border image-center" draggable="false" width="375" 
src="getting-started.data/newapp_Index.png" 
data-image-src="https://cwiki.apache.org/confluence/download/attachments/23334911/newapp_Index.png?version=1&amp;modificationDate=1428074330000&amp;api=v2";></span></p><p>The
 application consists of three pages sharing a common look and feel. The 
initial page, Index, allows you to perform some basic operations.</p><p>You can 
also load the newly-created project it into any IDE and start coding. See the 
next section on where to find the different components of the application
 .</p><h2 id="GettingStarted-Exploringthegeneratedproject">Exploring the 
generated project</h2><p>The archetype creates the following files:</p><div 
class="preformatted panel" style="border-width: 1px;"><div 
class="preformattedContent panelContent">
 <pre>newapp/
 &#9500;&#9472;&#9472; build.gradle
 &#9500;&#9472;&#9472; gradle

Modified: websites/production/tapestry/content/indexv2-old.html
==============================================================================
--- websites/production/tapestry/content/indexv2-old.html (original)
+++ websites/production/tapestry/content/indexv2-old.html Mon Jul 11 07:12:07 
2022
@@ -192,7 +192,7 @@
 <div class="col-sm-4" id="plugins"><p>&#160;<a class="external-link" 
href="http://tapestry.apache.org/modules.html";><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" 
draggable="false" src="indexv2-old.data/plugins.png"></span></a></p><ul><li><a 
class="external-link" href="https://github.com/got5/tapestry5-jquery"; 
rel="nofollow">Tapestry5-jQuery</a></li><li><a class="external-link" 
href="http://www.tynamo.org/tapestry-security+guide/"; 
rel="nofollow">Tapestry-security</a></li><li><a class="external-link" 
href="https://github.com/uklance/tapestry-cometd"; 
rel="nofollow">Tapestry-comentd</a></li></ul><p><a class="external-link" 
href="http://tapestry.apache.org/modules.html";>More modules and 
components...</a></p></div>
 
 
-<div class="col-sm-4" id="demos"><p><a class="external-link" 
href="http://tapestry.apache.org/demos.html";><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" 
draggable="false" src="indexv2-old.data/demos.png"></span></a></p><ul><li><a 
class="external-link" href="http://tapestry-vm.apache.org/hotels";>Hotel 
Booking</a></li><li><a class="external-link" 
href="http://jumpstart.doublenegative.com.au/jumpstart/"; 
rel="nofollow">JumpStart</a></li><li><a class="external-link" 
href="https://github.com/uklance/tapestry-stitch"; 
rel="nofollow">Stitch</a></li></ul><p><a class="external-link" 
href="http://tapestry.apache.org/demos.html";>More demos...</a></p></div>
+<div class="col-sm-4" id="demos"><p><a class="external-link" 
href="http://tapestry.apache.org/demos.html";><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" 
draggable="false" src="indexv2-old.data/demos.png"></span></a></p><ul><li><a 
class="external-link" href="http://tapestry-vm.apache.org/hotels";>Hotel 
Booking</a></li><li><a class="external-link" 
href="https://tapestry-jumpstart.org/jumpstart/"; 
rel="nofollow">JumpStart</a></li><li><a class="external-link" 
href="https://github.com/uklance/tapestry-stitch"; 
rel="nofollow">Stitch</a></li></ul><p><a class="external-link" 
href="http://tapestry.apache.org/demos.html";>More demos...</a></p></div>
 
 
 </div>

Modified: websites/production/tapestry/content/page-navigation.html
==============================================================================
--- websites/production/tapestry/content/page-navigation.html (original)
+++ websites/production/tapestry/content/page-navigation.html Mon Jul 11 
07:12:07 2022
@@ -187,7 +187,7 @@
                 <span class="icon aui-icon content-type-page" 
title="Page">Page:</span>        </div>
 
         <div class="details">
-                        <a href="rest-support-580.html">REST Support 
(5.8.0+)</a>
+                        <a href="component-events.html">Component Events</a>
                 
                         
                     </div>
@@ -196,7 +196,7 @@
                 <span class="icon aui-icon content-type-page" 
title="Page">Page:</span>        </div>
 
         <div class="details">
-                        <a href="component-events.html">Component Events</a>
+                        <a href="rest-support-580.html">REST Support 
(5.8.0+)</a>
                 
                         
                     </div>
@@ -232,11 +232,11 @@
 
 
 <p>In essence, a Tapestry application is a number of related pages, working 
together. To some degree, each page is like an application unto 
itself.</p><p>Any individual request will be targeted at a single page. 
Requests come in two forms:&#160;</p><ul><li><em>component event</em> requests 
target a specific component on a specific page, triggering an event within that 
component</li><li><em>render</em> requests target a specific page, and stream 
the HTML markup for that page back to the client</li></ul><p>This dichotomy 
between component event requests and render requests alleviates a number of 
problems in traditional web applications related to the browser back button, or 
to the user hitting the refresh button in their browser.</p><h3 
id="PageNavigation-Contents">Contents</h3><h2 
id="PageNavigation-Contents|RelatedArticlesLogicalPageNameShortening"><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1654279907670 {padding: 0px;}
-div.rbtoc1654279907670 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1654279907670 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1657523507816 {padding: 0px;}
+div.rbtoc1657523507816 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1657523507816 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></h2><div class="toc-macro rbtoc1654279907670">
+/*]]>*/</style></h2><div class="toc-macro rbtoc1657523507816">
 <ul class="toc-indentation"><li><a 
href="#PageNavigation-Contents|RelatedArticlesLogicalPageNameShortening">Logical
 Page Name Shortening</a></li><li><a 
href="#PageNavigation-ComponentEventRequests&amp;Responses">Component Event 
Requests &amp; Responses</a>
 <ul class="toc-indentation"><li><a href="#PageNavigation-1.Nullresponse">1. 
Null response</a></li><li><a href="#PageNavigation-2.Stringresponse">2. String 
response</a></li><li><a href="#PageNavigation-3.Classresponse">3. Class 
response</a></li><li><a href="#PageNavigation-4.Pageresponse">4. Page 
response</a></li><li><a href="#PageNavigation-5.HttpError">5. 
HttpError</a></li><li><a href="#PageNavigation-6.Linkresponse">6. Link 
response</a></li><li><a href="#PageNavigation-7.Streamresponse">7. Stream 
response</a></li><li><a href="#PageNavigation-8.URLresponse">8. URL 
response</a></li><li><a href="#PageNavigation-9.Objectresponse">9. Object 
response</a></li></ul>
 </li><li><a href="#PageNavigation-PageRenderRequests">Page Render 
Requests</a></li><li><a href="#PageNavigation-PageActivation">Page 
Activation</a></li><li><a href="#PageNavigation-PageNavigationPatterns">Page 
Navigation Patterns</a>
@@ -292,8 +292,8 @@ public Object onAction(){
 </code></pre>
 </div></div><p>The activation context may consist of a series of values, in 
which case the return value of the method should be an array or a List.</p><div 
class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Note: If you are using the <a 
href="hibernate-user-guide.html">tapestry-hibernate</a> integration library and 
your passivate context is a Hibernate entity, then you can just use the entity 
itself, not its id. Tapestry will automatically extract the entity's id into 
the URL, and convert it back for the "activate" event handler 
method.</p></div></div><h2 id="PageNavigation-PageActivation">Page 
Activation</h2><p>When a page render request arrives, the page is 
<em>activated</em> before it is rendered.</p><div class="navmenu" 
style="float:right; background:#eee; margin:3px; padding:0 1em">
 <p>    <strong>JumpStart Demos:</strong>
-    <span class="nobr"><a class="external-link" 
href="http://jumpstart.doublenegative.com.au/jumpstart/examples/navigation/onactivateandonpassivate/3";
 rel="nofollow">onActivate and onPassivate<sup><img align="middle" 
class="rendericon" src="/images/confluence/icons/linkext7.gif" height="7" 
width="7" alt="" border="0"></sup></a></span>
-    <span class="nobr"><a class="external-link" 
href="http://jumpstart.doublenegative.com.au/jumpstart/examples/infrastructure/handlingabadcontext/1";
 rel="nofollow">Handling A Bad Context<sup><img align="middle" 
class="rendericon" src="/images/confluence/icons/linkext7.gif" height="7" 
width="7" alt="" border="0"></sup></a></span></p></div><p>Activation serves two 
purposes:</p><p></p><ul><li>It allows the page to restore its internal state 
from data encoded into the URL (the activation context discussed 
above).</li><li>It provides coarse approach to validating access to the 
page.</li></ul><p>The later case &#8211; validation&#160;&#8211; is generally 
concerned with user identity and access; if you have pages that may only be 
accessed by certain users, you may use the page's activate event handler for 
verifying that access.</p><p>Page activation uses Tapestry's <em>Component 
Event</em> mechanism. See&#160;<a href="component-events.html">Component 
Events</a> for details.</p><p>A page's
  activate event handler mirrors its passivate handler:</p><div class="code 
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+    <span class="nobr"><a class="external-link" 
href="https://tapestry-jumpstart.org/jumpstart/examples/navigation/onactivateandonpassivate/3";
 rel="nofollow">onActivate and onPassivate<sup><img align="middle" 
class="rendericon" src="/images/confluence/icons/linkext7.gif" height="7" 
width="7" alt="" border="0"></sup></a></span>
+    <span class="nobr"><a class="external-link" 
href="https://tapestry-jumpstart.org/jumpstart/examples/infrastructure/handlingabadcontext/1";
 rel="nofollow">Handling A Bad Context<sup><img align="middle" 
class="rendericon" src="/images/confluence/icons/linkext7.gif" height="7" 
width="7" alt="" border="0"></sup></a></span></p></div>Activation serves two 
purposes:<p></p><ul><li>It allows the page to restore its internal state from 
data encoded into the URL (the activation context discussed above).</li><li>It 
provides coarse approach to validating access to the page.</li></ul><p>The 
later case &#8211; validation&#160;&#8211; is generally concerned with user 
identity and access; if you have pages that may only be accessed by certain 
users, you may use the page's activate event handler for verifying that 
access.</p><p>Page activation uses Tapestry's <em>Component Event</em> 
mechanism. See&#160;<a href="component-events.html">Component Events</a> for 
details.</p><p>A page's activate event
  handler mirrors its passivate handler:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre><code class="language-java">  private Product product;
   . . .
   void onActivate(long productId)


Reply via email to