Modified: websites/production/tapestry/content/release-notes-53.html
==============================================================================
--- websites/production/tapestry/content/release-notes-53.html (original)
+++ websites/production/tapestry/content/release-notes-53.html Sat Nov 26 
13:17:27 2022
@@ -32,10 +32,10 @@
   <link rel="apple-touch-icon-precomposed" 
href="/images/apache-tapestry-icon-57.png">
   <link rel="shortcut icon" href="/images/apache-tapestry-icon-32.png">
 
-  <link rel="stylesheet" 
href="https://fonts.googleapis.com/css2?family=Sarabun:ital,wght@0,400;0,700;1,400;1,700&display=swap";>
 
-  <link rel="stylesheet" 
href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"; 
integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
 crossorigin="anonymous">
+  <link rel="stylesheet" href="/resources/bootstrap/bootstrap.min.css">
   <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css";>
   <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/themes/prism.min.css";>
+  <link rel="stylesheet" href="/resources/fonts/fonts.css">
   <link rel="stylesheet" href="/styles/main.css">
 
   <script type="text/javascript">
@@ -46,7 +46,7 @@
 
   <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"; 
integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n"
 crossorigin="anonymous" defer></script>
   <script 
src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"; 
integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
 crossorigin="anonymous" defer></script>
-  <script 
src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"; 
integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
 crossorigin="anonymous" defer></script>
+  <script src="stylesheet" href="/resources/bootstrap/bootstrap.min.js">
   <script 
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js"; 
defer></script>
        <script 
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js";
 defer></script>
 
@@ -59,7 +59,70 @@
 </head>
 <body>
   <!-- /// Navigation Start -->
-    <div id="navigation"><p><img class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2";></p></div>
+    <div id="navigation"><p><header>
+  <div class="container-fluid">
+    <div class="row">
+      <div class="col-12">
+        <nav class="navbar navbar-expand-xl navbar-light 
justify-content-between">
+          <a class="navbar-brand" href="/index.html">
+            <img src="/images/apache-tapestry-icon-dark.svg" width="60" 
alt="Apache Tapestry" title="Apache Tapestry">
+            <span>apache tapestry</span>
+          </a>
+          <button type="button" class="navbar-toggler" data-toggle="collapse" 
data-target="#navbarCollapse" aria-controls="navbarCollapse" 
aria-expanded="false" aria-label="Toggle navigation">
+            <span class="navbar-toggler-icon"></span>
+          </button>
+          <div class="collapse navbar-collapse" id="navbarCollapse">
+            <ul class="navbar-nav mx-auto"><li class="nav-item">
+                <a class="nav-link active" 
href="/getting-started.html">Getting Started</a>
+              </li><li class="nav-item">
+                <a class="nav-link active" 
href="/documentation.html">Documentation</a>
+              </li><li class="nav-item">
+                <a class="nav-link active" href="/download.html">Download</a>
+              </li><li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle active" 
id="communityNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
+                  Community
+                </a>
+                <div class="dropdown-menu" 
aria-labelledby="communityNavbarDropdown">
+                  <a class="dropdown-item" href="/community.html">Mailing 
Lists</a>
+                  <a class="dropdown-item" 
href="https://stackoverflow.com/questions/tagged/tapestry";>StackOverflow</a>
+                  <a class="dropdown-item" href="/support.html">Support</a>
+                  <a class="dropdown-item" href="/community.html">Getting 
Involved</a>
+                  <a class="dropdown-item" 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=27361749";
 title="Edit this page (requires approval, just ask on the mailing list)">Edit 
this page</a>
+                  <div class="dropdown-divider"></div>
+                  <a class="dropdown-item" 
href="https://twitter.com/ApacheTapestry";>@ApacheTapestry</a>
+                  <a class="dropdown-item" 
href="https://twitter.com/hashtag/tapestry5";>#tapestry5</a>
+                </div>
+              </li><li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle active" 
id="developmentNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
+                  Development
+                </a>
+                <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
+                  <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
+                  <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
+                </div>
+              </li><li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
+                  Apache
+                </a>
+                <div class="dropdown-menu" 
aria-labelledby="apacheNavbarDropdown">
+                  <a class="dropdown-item" 
href="https://www.apache.org/";>About Apache</a>
+                  <a class="dropdown-item" 
href="https://apachecon.com/?ref=royale.apache.org";>Events</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/foundation/sponsorship.html";>Sponsorship</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/licenses/LICENSE-2.0";>License</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/security/";>Security</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/foundation/thanks.html";>Thanks!</a>
+                </div>
+              </li></ul>
+            <form enctype="application/x-www-form-urlencoded" method="get" 
class="form-inline" action="search.html">
+              <input type="search" class="form-control search-input" name="q" 
placeholder="Search docs, issues, wikis and blogs" aria-label="Search">
+              <button type="submit" class="d-none">Search</button>
+            </form>
+          </div>
+        </nav>
+      </div>
+    </div>
+  </div>
+</header></p></div>
   <!-- /// Navigation End -->
 
   <article>
@@ -74,19 +137,19 @@
               <!-- /// Breadcrumb End -->
 
               <!-- /// Smallbanner Start -->
-                            <div id="smallbanner"><img 
class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2";></div>
+                            <div id="smallbanner"><h1 class="title" 
id="title">Release Notes 5.3</h1></div>
               <!-- /// Smallbanner Start -->
             
             <!-- /// Content Start -->
             <div id="content">
                             <div id="ConfluenceContent"><p>This is the 
consolidated list of changes between Tapestry versions 5.2 and 5.3. To upgrade 
from 5.2 to 5.3, most users who are not using deprecated features will be able 
to just update the Maven dependency in their POM file (or <a 
href="release-notes-53.html">download</a> the new JAR file) and the new version 
will just work. However, please read carefully below before upgrading, and also 
review the&#160;<a href="how-to-upgrade.html">How to Upgrade</a> 
instructions.</p><p><strong>Contents</strong></p><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1636294816530 {padding: 0px;}
-div.rbtoc1636294816530 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1636294816530 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1669468518078 {padding: 0px;}
+div.rbtoc1669468518078 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1669468518078 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1636294816530">
+/*]]>*/</style></p><div class="toc-macro rbtoc1669468518078">
 <ul class="toc-indentation"><li><a 
href="#ReleaseNotes5.3-BreakingChanges">Breaking Changes</a></li><li><a 
href="#ReleaseNotes5.3-NewFeatures">New Features</a></li><li><a 
href="#ReleaseNotes5.3-Sub-tasksCompleted">Sub-tasks Completed</a></li><li><a 
href="#ReleaseNotes5.3-BugsFixed">Bugs Fixed</a></li><li><a 
href="#ReleaseNotes5.3-ImprovementsMade">Improvements Made</a></li><li><a 
href="#ReleaseNotes5.3-NewFeaturesImplemented">New Features 
Implemented</a></li><li><a href="#ReleaseNotes5.3-TasksCompleted">Tasks 
Completed</a></li></ul>
-</div><h2 id="ReleaseNotes5.3-BreakingChanges">Breaking 
Changes</h2><p>Tapestry now depends on Servlet API version <strong>2.5</strong> 
(prior releases worked with 2.4).</p><p>Tapestry no longer supports the ability 
to inject the component id into a String field. This was rarely (if ever) used 
functionality that caused unwanted conflicts elsewhere. When a component needs 
to know its component id, it may inject the <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/ComponentResources.html";>ComponentResources</a>
 object, and invoke <code>getCompleteId()</code>.</p><p>Tapestry templates 
without a &lt;!DOCTYPE&gt; are treated a bit differently in Tapestry 5.3; they 
are treated as if they have the HTML5 doctype (<code>&lt;!DOCTYPE 
html&gt;</code>). See further notes about <a 
href="component-templates.html">component templates</a>.</p><p>Many classes and 
interfaces that were deprecated in prior releases of Tapestry have been removed 
in Tapestry 5.3.
  See <a class="external-link" 
href="https://issues.apache.org/jira/browse/TAP5-1432";>the full list</a>. As 
always, you should use your IDE to find and replace all deprecated items 
<em>before</em> you upgrade. The following are the most significant of 
these:</p><ul><li>@IncludeJavaScriptLibrary and @IncludeStylesheet annotations 
(replaced by @<a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/annotations/Import.html";>Import</a>)</li><li>@ApplicationState
 annotation (replaced with @<a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/annotations/SessionState.html";>SessionState</a>)</li><li>"validateForm"
 event triggered by Form component (replaced with "validate" 
event)</li><li>Code and constants related to page pooling</li></ul><p>In 
addition, some of the abstract base classes used with the tapestry-func library 
have changed into interfaces; you will want to recompile, but may also need to 
adjust your code,
  depending on your compiler settings and use of the standard Java @Override 
annotation.</p><p>Because of the upgrade to Prototype 1.7, existing JavaScript 
that uses <code>value.toJSON()</code> may break; replace with 
<code>Object.toJSON(value)</code>.</p><p>Some number of interfaces and APIs in 
Tapestry 5.3 will be removed in Tapestry 5.4 or later. These 
include:</p><ul><li>The <a class="external-link" 
href="http://tapestry.apache.org/5.2/apidocs/org/apache/tapestry5/RenderSupport.html";>RenderSupport</a>
 environmental (replaced with the <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/javascript/JavaScriptSupport.html";>JavaScriptSupport</a>
 environmental)</li><li>The <a class="external-link" 
href="http://tapestry.apache.org/5.2/apidocs/org/apache/tapestry5/ajax/MultiZoneUpdate.html";>MultiZoneUpdate</a>
 object, replaced with <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/ajax/AjaxR
 esponseRenderer.html">AjaxResponseRenderer</a></li><li>ClassFactory service 
and ClassFab interface (replaced with the <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/ioc/services/PlasticProxyFactory.html";>PlasticProxyFactory</a>
 service and <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/plastic/PlasticClass.html";>PlasticClass</a>
 interface)</li><li>The "suppress redirects" functionality, which allows 
component event requests to respond directly with HTML, as in Tapestry 
4.</li></ul><h2 id="ReleaseNotes5.3-NewFeatures">New Features</h2><h3 
id="ReleaseNotes5.3-Underscore.js">Underscore.js</h3><p>Tapestry now bundles <a 
class="external-link" href="http://underscorejs.org/"; 
rel="nofollow">Underscore.js</a>, a useful library for expressive functional 
programming in the browser. It is used in <em>no conflict mode</em>, made 
available as the <code>T5._</code> object.</p><h3 id="ReleaseNotes5.3-UserAlerts
 ">User Alerts</h3><p>Tapestry now has a central mechanism for handling user 
alerts; this includes the AlertManager service and the Alerts component. Just 
add an Alerts component to your application's standard layout component and 
Tapestry takes care of the rest. Alerts can be added during both traditional 
and Ajax requests, and may be transient (displayed for a few seconds), normal, 
or sticky (persist until the user expressly dismisses them). Alerts support 
three severities: info, warn(ing) and error; the look and feel can be 
customized by overriding Tapestry's default CSS rules.</p><h3 
id="ReleaseNotes5.3-Renderingcomments">Rendering comments</h3><p>It is now 
possible to have Tapestry emit rendering comments; these are comments (such as 
<code>&lt;!--BEGIN Index:loop (context:Index.tml, line 15)--&gt;</code>) that 
can assist you in debugging markup output on the client-side. This is enabled 
for all requests using the configuration symbol 
<code>tapestry.component-render-tracing-enabl
 ed</code>, and can be added to any request by adding the query parameter 
<code>t:component-trace=true</code> to the URL. This will significantly 
increase the size of the rendered markup, but can be very helpful with complex 
layouts to determine which component was responsible for which portion of the 
rendered page.</p><h3 
id="ReleaseNotes5.3-Adaptableservicecontributions">Adaptable service 
contributions</h3><p>When making contributions to a service, you are no longer 
restricted to contributing a value that is assignable to the type associated 
with the configuration; objects of any type may be contributed, and the 
TypeCoercer service is used to coerce the value to the configuration's 
type.</p><h3 id="ReleaseNotes5.3-Componentdebuggingimprovements">Component 
debugging improvements</h3><p>Because of how Tapestry instruments your pages 
and components, using a debugger has been difficult with Tapestry page and 
component classes; any mutable field shows its default value in the debugger, 
 regardless of what has been written to the field or read out of it. In 
Tapestry 5.3, when in <em>development mode</em>, Tapestry now shadows values 
read from or written to such fields into the fields themselves (this has also 
been fixed in the 5.2.5 maintenance release). This shadowing does not occur in 
production, to avoid potential memory leaks.</p><h3 
id="ReleaseNotes5.3-Reloadingdisabledinproduction">Reloading disabled in 
production</h3><p>Tapestry no longer checks for changes to Tapestry component 
class files, templates, or message catalogs in production mode. It is assumed 
that Tapestry applications are packaged as WAR files in production, and that 
changing the WAR file causes the servlet container to redeploy the entire 
application. This change is to improve throughput and reduce memory consumption 
in production applications.</p><h3 
id="ReleaseNotes5.3-String-to-Enumcoercions">String-to-Enum 
coercions</h3><p>The TypeCoercer service now automatically generates 
String-to-Enum c
 oercions without requiring a specific contribution. This coercion is case 
insensitive. A contribution is still allowed, and will take priority over the 
default coercion, but is only necessary to support "aliases" for enum values 
outside those defined by the enum type itself.</p><h3 
id="ReleaseNotes5.3-JavaScriptandCSSminimization">JavaScript and CSS 
minimization</h3><p>A new optional library, tapestry-yuicompressor, has been 
added. This library adds support for compressing JavaScript libraries and CSS 
files using <a class="external-link" 
href="http://developer.yahoo.com/yui/compressor/"; rel="nofollow">the 
YUICompressor library</a>.</p><h3 
id="ReleaseNotes5.3-ComponentClassTransformWorkerService">ComponentClassTransformWorker
 Service</h3><p>The type of this service has changed from <a 
class="external-link" 
href="http://tapestry.apache.org/5.2/apidocs/org/apache/tapestry5/services/ComponentClassTransformWorker.html";>ComponentClassTransformWorker</a>
 to <a class="external-link" href="h
 
ttp://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/transform/ComponentClassTransformWorker2.html">ComponentClassTransformWorker2</a>.
 Contributions of type ComponentClassTransformWorker will automatically be 
coerced to the new ComponentClassTransformWorker2 interface. However, if you 
use the @Contribute annotation to mark the method that makes contributions, you 
will need to update the annotation to indicate the new service interface. If 
you followed the naming convention, and named your method 
<code>contributeComponentClassTransformWorker()</code>, you don't need to 
change anything.</p><h3 
id="ReleaseNotes5.3-AjaxResponseRenderer">AjaxResponseRenderer</h3><p>The <a 
class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/ajax/AjaxResponseRenderer.html";>AjaxResponseRenderer</a>
 service makes it easier to customize the partial page response generated when 
updating a <a class="external-link" href="http://tapestry.apache.org/5.3/
 apidocs/org/apache/tapestry5/corelib/components/Zone.html">Zone</a> component, 
replacing the <a class="external-link" 
href="http://tapestry.apache.org/5.2/apidocs/org/apache/tapestry5/ajax/MultiZoneUpdate.html";>MultiZoneUpdate</a>
 object as an event handler method return value.</p><h3 
id="ReleaseNotes5.3-TapestryJavaDoc">Tapestry JavaDoc</h3><p>Tapestry now 
includes a new library, tapestry-javadoc, that replaces the old Maven-based 
component report. Simply by placing a <code>@tapestrydoc</code> annotation into 
your component's JavaDoc, Tapestry will generate complete documentation as part 
of JavaDoc ... no more switching back and forth between JavaDoc and the 
Maven-generated component report, and no more reliance on Maven for component 
documentation.</p><h3 id="ReleaseNotes5.3-Skinning/ThemingSupport">Skinning / 
Theming Support</h3><p>Tapestry now adds the ability to skin and/or theme your 
pages and components. Its an extension of how Tapestry manages pages per 
locale, but adds new 
 application-defined <em>axes</em> along with rules to find the resources. See 
<a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/pageload/ComponentResourceSelector.html";>ComponentResourceSelector</a>
 and <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/pageload/ComponentRequestSelectorAnalyzer.html";>ComponentRequestSelectorAnalyzer</a>.</p><p>There's
 also a new <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/corelib/components/Dynamic.html";>Dynamic</a>
 component, which uses an external template, not a Tapestry template, which can 
be selected at runtime.</p><h3 id="ReleaseNotes5.3-TreeComponent">Tree 
Component</h3><p>Tapestry finally has a proper <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/corelib/components/Tree.html";>Tree</a>
 component for navigating hierarchical data. It's efficient and Ajax-en
 abled, and fully customizable.</p><h3 
id="ReleaseNotes5.3-FormCancelledEvent">Form Cancelled Event</h3><p>Form 
components now recognize when the client-side form was cancelled. A new 
"cancelled" event is triggered early in the submission process, which allows 
the page to bypass all property updates and input validations, when 
desired.</p><h3 
id="ReleaseNotes5.3-ImplicitOrderedConfigurationConstraints">Implicit 
OrderedConfiguration Constraints</h3><p>When using <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/ioc/OrderedConfiguration.html";>OrderedConfiguration.add()</a>
 with no constraints, Tapestry will now implicitly order the added element 
after the previously added element, within the same method. In prior releases, 
such elements were added with no constraints. This makes it easier to 
contribute a group of related items with an implicit ordering.</p><h3 
id="ReleaseNotes5.3-NewComponentClassValidations">New Component Class 
Validations</h3>
 <p>Tapestry includes new validations of component classes to help cut down on 
many common errors; Tapestry now checks that component ids referenced by an 
event handler method (the <code>From</code><em>component id</em> part of the 
method name) actually matches a component defined in the template ... this 
quickly identifies typos in method names. This check can be disabled with a 
configuration symbol, as existing 5.2 apps may have such errors and still 
operate (that is, they may have <em>dead</em> event handler methods that will 
never be invoked).</p><h3 id="ReleaseNotes5.3-ApplicationFolder">Application 
Folder</h3><p>Tapestry can now be configured to execute inside a folder, which 
can be useful when running Tapestry inside a web application that contains 
other servlets or filters, as a way to prevent conflicts.</p><h3 
id="ReleaseNotes5.3-ImprovedQuickstartArchetype">Improved Quickstart 
Archetype</h3><p>The Maven quickstart archetype has been brought up to date, 
and now demonstrates 
 several new bits of common useful functionality. It also generates support for 
<a class="external-link" href="http://gradle.org/"; rel="nofollow">Gradle</a> as 
the build tool.</p><h3 id="ReleaseNotes5.3-WhitelistedPages">Whitelisted 
Pages</h3><p>The new @<a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/annotations/WhitelistAccessOnly.html";>WhitelistAccessOnly</a>
 annotation marks a page as accessible only from white-listed clients; the 
rules for the whitelist are <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/security/ClientWhitelist.html";>extensible</a>.
 The default rule is that only access from localhost is on the white-list. Use 
this annotation on pages that may expose sensitive data, such as built-in 
application dashboards and the like.</p><h3 
id="ReleaseNotes5.3-PageCatalog">Page Catalog</h3><p>Tapestry applications now 
include a built-in "PageCatalog" page, which lists all the loaded 
 pages of the application, with details about construction time and number of 
components. The page requires whitelist access (see above comment), and some 
functionality is only available in development mode. PageCatalog can be used to 
load all pages of your application, which is useful to quickly spot problems in 
your pages ... especially useful when upgrading from a prior release of 
Tapestry.</p><h3 id="ReleaseNotes5.3-Client-SideJavaScriptLogging">Client-Side 
JavaScript Logging</h3><p>The integrated Blackbird client-side console has been 
removed. In its place are the floating console messages combined with logging 
to the Firebug or WebKit console. Tapestry no longer captures JavaScript 
initialization exceptions, so that they may be properly reported to the native 
console. These changes should make debugging client-side JavaScript much 
easier.</p><p>In addition, Tapestry will now display a pop-up window containing 
the full exception report for a server-side error that occurs during 
 an Ajax request, which makes debugging server-side problems that occur as part 
of an Ajax request <em>significantly</em> easier. Note that this logic is tied 
to performing a <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/corelib/components/Zone.html";>Zone</a>
 update.</p><h2 id="ReleaseNotes5.3-Sub-tasksCompleted">Sub-tasks 
Completed</h2><p>&#160;<img class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2";>&#160;</p><h2
 id="ReleaseNotes5.3-BugsFixed">Bugs Fixed</h2><p>&#160;<img 
class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2";>&#160;</p><h2
 id="ReleaseNotes5.3-ImprovementsMade">Improvements Made</h2><p>&#160;<img 
class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placehol
 der/unknown-macro?name=html&amp;locale=en_GB&amp;version=2">&#160;</p><h2 
id="ReleaseNotes5.3-NewFeaturesImplemented">New Features 
Implemented</h2><p>&#160;<img class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2";>&#160;</p><h2
 id="ReleaseNotes5.3-TasksCompleted">Tasks Completed</h2><p>&#160;<img 
class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2";>&#160;</p><p>&#160;<img
 class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2";></p></div>
+</div><h2 id="ReleaseNotes5.3-BreakingChanges">Breaking 
Changes</h2><p>Tapestry now depends on Servlet API version <strong>2.5</strong> 
(prior releases worked with 2.4).</p><p>Tapestry no longer supports the ability 
to inject the component id into a String field. This was rarely (if ever) used 
functionality that caused unwanted conflicts elsewhere. When a component needs 
to know its component id, it may inject the <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/ComponentResources.html";>ComponentResources</a>
 object, and invoke <code>getCompleteId()</code>.</p><p>Tapestry templates 
without a &lt;!DOCTYPE&gt; are treated a bit differently in Tapestry 5.3; they 
are treated as if they have the HTML5 doctype (<code>&lt;!DOCTYPE 
html&gt;</code>). See further notes about <a 
href="component-templates.html">component templates</a>.</p><p>Many classes and 
interfaces that were deprecated in prior releases of Tapestry have been removed 
in Tapestry 5.3.
  See <a class="external-link" 
href="https://issues.apache.org/jira/browse/TAP5-1432";>the full list</a>. As 
always, you should use your IDE to find and replace all deprecated items 
<em>before</em> you upgrade. The following are the most significant of 
these:</p><ul><li>@IncludeJavaScriptLibrary and @IncludeStylesheet annotations 
(replaced by @<a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/annotations/Import.html";>Import</a>)</li><li>@ApplicationState
 annotation (replaced with @<a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/annotations/SessionState.html";>SessionState</a>)</li><li>"validateForm"
 event triggered by Form component (replaced with "validate" 
event)</li><li>Code and constants related to page pooling</li></ul><p>In 
addition, some of the abstract base classes used with the tapestry-func library 
have changed into interfaces; you will want to recompile, but may also need to 
adjust your code,
  depending on your compiler settings and use of the standard Java @Override 
annotation.</p><p>Because of the upgrade to Prototype 1.7, existing JavaScript 
that uses <code>value.toJSON()</code> may break; replace with 
<code>Object.toJSON(value)</code>.</p><p>Some number of interfaces and APIs in 
Tapestry 5.3 will be removed in Tapestry 5.4 or later. These 
include:</p><ul><li>The <a class="external-link" 
href="http://tapestry.apache.org/5.2/apidocs/org/apache/tapestry5/RenderSupport.html";>RenderSupport</a>
 environmental (replaced with the <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/javascript/JavaScriptSupport.html";>JavaScriptSupport</a>
 environmental)</li><li>The <a class="external-link" 
href="http://tapestry.apache.org/5.2/apidocs/org/apache/tapestry5/ajax/MultiZoneUpdate.html";>MultiZoneUpdate</a>
 object, replaced with <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/ajax/AjaxR
 esponseRenderer.html">AjaxResponseRenderer</a></li><li>ClassFactory service 
and ClassFab interface (replaced with the <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/ioc/services/PlasticProxyFactory.html";>PlasticProxyFactory</a>
 service and <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/plastic/PlasticClass.html";>PlasticClass</a>
 interface)</li><li>The "suppress redirects" functionality, which allows 
component event requests to respond directly with HTML, as in Tapestry 
4.</li></ul><h2 id="ReleaseNotes5.3-NewFeatures">New Features</h2><h3 
id="ReleaseNotes5.3-Underscore.js">Underscore.js</h3><p>Tapestry now bundles <a 
class="external-link" href="http://underscorejs.org/"; 
rel="nofollow">Underscore.js</a>, a useful library for expressive functional 
programming in the browser. It is used in <em>no conflict mode</em>, made 
available as the <code>T5._</code> object.</p><h3 id="ReleaseNotes5.3-UserAlerts
 ">User Alerts</h3><p>Tapestry now has a central mechanism for handling user 
alerts; this includes the AlertManager service and the Alerts component. Just 
add an Alerts component to your application's standard layout component and 
Tapestry takes care of the rest. Alerts can be added during both traditional 
and Ajax requests, and may be transient (displayed for a few seconds), normal, 
or sticky (persist until the user expressly dismisses them). Alerts support 
three severities: info, warn(ing) and error; the look and feel can be 
customized by overriding Tapestry's default CSS rules.</p><h3 
id="ReleaseNotes5.3-Renderingcomments">Rendering comments</h3><p>It is now 
possible to have Tapestry emit rendering comments; these are comments (such as 
<code>&lt;!--BEGIN Index:loop (context:Index.tml, line 15)--&gt;</code>) that 
can assist you in debugging markup output on the client-side. This is enabled 
for all requests using the configuration symbol 
<code>tapestry.component-render-tracing-enabl
 ed</code>, and can be added to any request by adding the query parameter 
<code>t:component-trace=true</code> to the URL. This will significantly 
increase the size of the rendered markup, but can be very helpful with complex 
layouts to determine which component was responsible for which portion of the 
rendered page.</p><h3 
id="ReleaseNotes5.3-Adaptableservicecontributions">Adaptable service 
contributions</h3><p>When making contributions to a service, you are no longer 
restricted to contributing a value that is assignable to the type associated 
with the configuration; objects of any type may be contributed, and the 
TypeCoercer service is used to coerce the value to the configuration's 
type.</p><h3 id="ReleaseNotes5.3-Componentdebuggingimprovements">Component 
debugging improvements</h3><p>Because of how Tapestry instruments your pages 
and components, using a debugger has been difficult with Tapestry page and 
component classes; any mutable field shows its default value in the debugger, 
 regardless of what has been written to the field or read out of it. In 
Tapestry 5.3, when in <em>development mode</em>, Tapestry now shadows values 
read from or written to such fields into the fields themselves (this has also 
been fixed in the 5.2.5 maintenance release). This shadowing does not occur in 
production, to avoid potential memory leaks.</p><h3 
id="ReleaseNotes5.3-Reloadingdisabledinproduction">Reloading disabled in 
production</h3><p>Tapestry no longer checks for changes to Tapestry component 
class files, templates, or message catalogs in production mode. It is assumed 
that Tapestry applications are packaged as WAR files in production, and that 
changing the WAR file causes the servlet container to redeploy the entire 
application. This change is to improve throughput and reduce memory consumption 
in production applications.</p><h3 
id="ReleaseNotes5.3-String-to-Enumcoercions">String-to-Enum 
coercions</h3><p>The TypeCoercer service now automatically generates 
String-to-Enum c
 oercions without requiring a specific contribution. This coercion is case 
insensitive. A contribution is still allowed, and will take priority over the 
default coercion, but is only necessary to support "aliases" for enum values 
outside those defined by the enum type itself.</p><h3 
id="ReleaseNotes5.3-JavaScriptandCSSminimization">JavaScript and CSS 
minimization</h3><p>A new optional library, tapestry-yuicompressor, has been 
added. This library adds support for compressing JavaScript libraries and CSS 
files using <a class="external-link" 
href="http://developer.yahoo.com/yui/compressor/"; rel="nofollow">the 
YUICompressor library</a>.</p><h3 
id="ReleaseNotes5.3-ComponentClassTransformWorkerService">ComponentClassTransformWorker
 Service</h3><p>The type of this service has changed from <a 
class="external-link" 
href="http://tapestry.apache.org/5.2/apidocs/org/apache/tapestry5/services/ComponentClassTransformWorker.html";>ComponentClassTransformWorker</a>
 to <a class="external-link" href="h
 
ttp://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/transform/ComponentClassTransformWorker2.html">ComponentClassTransformWorker2</a>.
 Contributions of type ComponentClassTransformWorker will automatically be 
coerced to the new ComponentClassTransformWorker2 interface. However, if you 
use the @Contribute annotation to mark the method that makes contributions, you 
will need to update the annotation to indicate the new service interface. If 
you followed the naming convention, and named your method 
<code>contributeComponentClassTransformWorker()</code>, you don't need to 
change anything.</p><h3 
id="ReleaseNotes5.3-AjaxResponseRenderer">AjaxResponseRenderer</h3><p>The <a 
class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/ajax/AjaxResponseRenderer.html";>AjaxResponseRenderer</a>
 service makes it easier to customize the partial page response generated when 
updating a <a class="external-link" href="http://tapestry.apache.org/5.3/
 apidocs/org/apache/tapestry5/corelib/components/Zone.html">Zone</a> component, 
replacing the <a class="external-link" 
href="http://tapestry.apache.org/5.2/apidocs/org/apache/tapestry5/ajax/MultiZoneUpdate.html";>MultiZoneUpdate</a>
 object as an event handler method return value.</p><h3 
id="ReleaseNotes5.3-TapestryJavaDoc">Tapestry JavaDoc</h3><p>Tapestry now 
includes a new library, tapestry-javadoc, that replaces the old Maven-based 
component report. Simply by placing a <code>@tapestrydoc</code> annotation into 
your component's JavaDoc, Tapestry will generate complete documentation as part 
of JavaDoc ... no more switching back and forth between JavaDoc and the 
Maven-generated component report, and no more reliance on Maven for component 
documentation.</p><h3 id="ReleaseNotes5.3-Skinning/ThemingSupport">Skinning / 
Theming Support</h3><p>Tapestry now adds the ability to skin and/or theme your 
pages and components. Its an extension of how Tapestry manages pages per 
locale, but adds new 
 application-defined <em>axes</em> along with rules to find the resources. See 
<a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/pageload/ComponentResourceSelector.html";>ComponentResourceSelector</a>
 and <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/pageload/ComponentRequestSelectorAnalyzer.html";>ComponentRequestSelectorAnalyzer</a>.</p><p>There's
 also a new <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/corelib/components/Dynamic.html";>Dynamic</a>
 component, which uses an external template, not a Tapestry template, which can 
be selected at runtime.</p><h3 id="ReleaseNotes5.3-TreeComponent">Tree 
Component</h3><p>Tapestry finally has a proper <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/corelib/components/Tree.html";>Tree</a>
 component for navigating hierarchical data. It's efficient and Ajax-en
 abled, and fully customizable.</p><h3 
id="ReleaseNotes5.3-FormCancelledEvent">Form Cancelled Event</h3><p>Form 
components now recognize when the client-side form was cancelled. A new 
"cancelled" event is triggered early in the submission process, which allows 
the page to bypass all property updates and input validations, when 
desired.</p><h3 
id="ReleaseNotes5.3-ImplicitOrderedConfigurationConstraints">Implicit 
OrderedConfiguration Constraints</h3><p>When using <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/ioc/OrderedConfiguration.html";>OrderedConfiguration.add()</a>
 with no constraints, Tapestry will now implicitly order the added element 
after the previously added element, within the same method. In prior releases, 
such elements were added with no constraints. This makes it easier to 
contribute a group of related items with an implicit ordering.</p><h3 
id="ReleaseNotes5.3-NewComponentClassValidations">New Component Class 
Validations</h3>
 <p>Tapestry includes new validations of component classes to help cut down on 
many common errors; Tapestry now checks that component ids referenced by an 
event handler method (the <code>From</code><em>component id</em> part of the 
method name) actually matches a component defined in the template ... this 
quickly identifies typos in method names. This check can be disabled with a 
configuration symbol, as existing 5.2 apps may have such errors and still 
operate (that is, they may have <em>dead</em> event handler methods that will 
never be invoked).</p><h3 id="ReleaseNotes5.3-ApplicationFolder">Application 
Folder</h3><p>Tapestry can now be configured to execute inside a folder, which 
can be useful when running Tapestry inside a web application that contains 
other servlets or filters, as a way to prevent conflicts.</p><h3 
id="ReleaseNotes5.3-ImprovedQuickstartArchetype">Improved Quickstart 
Archetype</h3><p>The Maven quickstart archetype has been brought up to date, 
and now demonstrates 
 several new bits of common useful functionality. It also generates support for 
<a class="external-link" href="http://gradle.org/"; rel="nofollow">Gradle</a> as 
the build tool.</p><h3 id="ReleaseNotes5.3-WhitelistedPages">Whitelisted 
Pages</h3><p>The new @<a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/annotations/WhitelistAccessOnly.html";>WhitelistAccessOnly</a>
 annotation marks a page as accessible only from white-listed clients; the 
rules for the whitelist are <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/services/security/ClientWhitelist.html";>extensible</a>.
 The default rule is that only access from localhost is on the white-list. Use 
this annotation on pages that may expose sensitive data, such as built-in 
application dashboards and the like.</p><h3 
id="ReleaseNotes5.3-PageCatalog">Page Catalog</h3><p>Tapestry applications now 
include a built-in "PageCatalog" page, which lists all the loaded 
 pages of the application, with details about construction time and number of 
components. The page requires whitelist access (see above comment), and some 
functionality is only available in development mode. PageCatalog can be used to 
load all pages of your application, which is useful to quickly spot problems in 
your pages ... especially useful when upgrading from a prior release of 
Tapestry.</p><h3 id="ReleaseNotes5.3-Client-SideJavaScriptLogging">Client-Side 
JavaScript Logging</h3><p>The integrated Blackbird client-side console has been 
removed. In its place are the floating console messages combined with logging 
to the Firebug or WebKit console. Tapestry no longer captures JavaScript 
initialization exceptions, so that they may be properly reported to the native 
console. These changes should make debugging client-side JavaScript much 
easier.</p><p>In addition, Tapestry will now display a pop-up window containing 
the full exception report for a server-side error that occurs during 
 an Ajax request, which makes debugging server-side problems that occur as part 
of an Ajax request <em>significantly</em> easier. Note that this logic is tied 
to performing a <a class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/corelib/components/Zone.html";>Zone</a>
 update.</p><h2 id="ReleaseNotes5.3-Sub-tasksCompleted">Sub-tasks 
Completed</h2><p>&#160;&#160;</p><h2 id="ReleaseNotes5.3-BugsFixed">Bugs 
Fixed</h2><p>&#160;&#160;</p><h2 
id="ReleaseNotes5.3-ImprovementsMade">Improvements 
Made</h2><p>&#160;&#160;</p><h2 id="ReleaseNotes5.3-NewFeaturesImplemented">New 
Features Implemented</h2><p>&#160;&#160;</p><h2 
id="ReleaseNotes5.3-TasksCompleted">Tasks 
Completed</h2><p>&#160;&#160;</p></div>
             </div>
             <!-- /// Content End -->
           </div>
@@ -96,7 +159,48 @@ div.rbtoc1636294816530 li {margin-left:
   </article>
 
   <!-- /// Footer Start -->
-    <div id="footer"><p>Apache Tapestry, Tapestry, Apache, the Apache feather 
logo, and the Apache Tapestry project logo are trademarks of The Apache 
Software Foundation.</p><p><br clear="none"><img class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2";><br
 clear="none"></p><p><br clear="none"></p></div>
+    <div id="footer"><p>Apache Tapestry, Tapestry, Apache, the Apache feather 
logo, and the Apache Tapestry project logo are trademarks of The Apache 
Software Foundation.</p><p><br clear="none"><footer class="py-3">
+  <div class="container-fluid">
+    <div class="container">
+      <div class="row">
+        <div class="col-4 col-lg-2">
+          <span class="font-weight-bold">Apache Tapestry</span>
+          <ul><li><a href="index.html">Home</a></li><li><a 
href="download.html">Download</a></li><li><a 
href="about.html">Team</a></li><li><a 
href="https://www.apache.org/licenses/LICENSE-2.0";>License</a></li></ul>
+          <span class="font-weight-bold">Documentation</span>
+          <ul><li><a href="introduction.html">Introduction</a></li><li><a 
href="principles.html">Principles</a></li><li><i class="fas fa-play"></i> <a 
href="getting-started.html">Getting Started</a></li><li><i class="fas 
fa-play"></i> <a href="user-guide.html">User Guide</a></li><li><i class="fas 
fa-book"></i> <a href="documentation.html">Docs</a></li><li><i class="fas 
fa-book"></i> <a href="component-reference.html">Component 
Reference</a></li><li><i class="fas fa-book"></i> <a 
href="current/apidocs">Apidocs</a></li><li><a 
href="frequently-asked-questions.html">FAQ</a></li></ul>
+        </div>
+        <div class="col-4 col-lg-2">
+          <span class="font-weight-bold">Community</span>
+          <ul><li><i class="fas fa-envelope-open-text"></i> <a 
href="community.html">Mailing Lists</a></li><li><i class="fab 
fa-stack-overflow"> </i> <a 
href="https://stackoverflow.com/questions/tagged/tapestry";>StackOverflow</a></li><li><a
 href="support.html">Support</a></li><li><a href="community.html">Getting 
Involved</a></li><li><a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=27361749";
 title="Edit this page (requires approval, just ask on the mailing list)">Edit 
this page</a></li></ul>
+          <span class="font-weight-bold">Social</span>
+          <ul><li><i class="fab fa-twitter"></i> <a 
href="https://twitter.com/ApacheTapestry";>@ApacheTapestry</a></li><li><i 
class="fas fa-hashtag"></i> <a 
href="https://twitter.com/hashtag/tapestry5";>#tapestry5</a></li></ul>
+          <span class="font-weight-bold">Development</span>
+          <ul><li><i class="fab fa-git"></i> <a 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source 
Code</a></li><li><i class="fab fa-jira"></i> <a 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a></li></ul>
+        </div>
+        <div class="col-4 col-lg-2">
+          <span class="font-weight-bold">Apache</span>
+          <ul><li><a href="https://www.apache.org/";>About 
Apache</a></li><li><a 
href="https://apachecon.com/?ref=royale.apache.org";>Events</a></li><li><a 
href="https://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
 href="https://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a 
href="https://www.apache.org/security/";>Security</a></li><li><a 
href="https://www.apache.org/foundation/thanks.html";>Thanks!</a></li></ul>
+        </div>
+        <div class="col-md-12 col-lg-6 clearfix">
+          <span class="font-weight-bold d-block">About us</span>
+          <p class="float-right ml-3 mb-0"><img 
src="images/apache-tapestry-icon-light.svg" width="100" alt="Apache Tapestry" 
title="Apache Tapestry"></p>
+          <p><a href="https://tapestry.apache.org/";>Apache Tapestry&#8482;</a> 
is an open-source component-oriented framework for creating dynamic, robust, 
highly scalable web applications in Java.</p>
+          <p>Tapestry complements and builds upon the standard Java Servlet 
API, and so it works in any servlet container or application server.</p>
+          <p class="float-right ml-3 mb-0"><img 
src="images/apache-powered-by.svg" width="100" alt="Apache PoweredBy" 
title="Apache PoweredBy"></p>
+          <p>
+            <a href="https://tapestry.apache.org/";>Apache Tapestry&#8482;</a>, 
<a href="https://www.apache.org/";>Apache&#8482;</a> and the <a 
href="https://www.apache.org/foundation/press/kit/";>Apache feather 
logo&#8482;</a>
+            are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective owners.
+          </p>
+        </div>
+      </div>
+      <div class="row">
+        <div class="col-12">
+          Copyright &#169; 2020 The Apache Software Foundation, Licensed under 
the <a href="https://www.apache.org/licenses/LICENSE-2.0";>Apache License, 
Version 2.0</a>.
+        </div>
+      </div>
+    </div>
+  </div>
+</footer><br clear="none"></p><p><br clear="none"></p></div>
   <!-- /// Footer End -->
 </body>
 </html>

Modified: websites/production/tapestry/content/release-notes-531.html
==============================================================================
--- websites/production/tapestry/content/release-notes-531.html (original)
+++ websites/production/tapestry/content/release-notes-531.html Sat Nov 26 
13:17:27 2022
@@ -32,10 +32,10 @@
   <link rel="apple-touch-icon-precomposed" 
href="/images/apache-tapestry-icon-57.png">
   <link rel="shortcut icon" href="/images/apache-tapestry-icon-32.png">
 
-  <link rel="stylesheet" 
href="https://fonts.googleapis.com/css2?family=Sarabun:ital,wght@0,400;0,700;1,400;1,700&display=swap";>
 
-  <link rel="stylesheet" 
href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"; 
integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
 crossorigin="anonymous">
+  <link rel="stylesheet" href="/resources/bootstrap/bootstrap.min.css">
   <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css";>
   <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/themes/prism.min.css";>
+  <link rel="stylesheet" href="/resources/fonts/fonts.css">
   <link rel="stylesheet" href="/styles/main.css">
 
   <script type="text/javascript">
@@ -46,7 +46,7 @@
 
   <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"; 
integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n"
 crossorigin="anonymous" defer></script>
   <script 
src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"; 
integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
 crossorigin="anonymous" defer></script>
-  <script 
src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"; 
integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
 crossorigin="anonymous" defer></script>
+  <script src="stylesheet" href="/resources/bootstrap/bootstrap.min.js">
   <script 
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js"; 
defer></script>
        <script 
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js";
 defer></script>
 
@@ -59,7 +59,70 @@
 </head>
 <body>
   <!-- /// Navigation Start -->
-    <div id="navigation"><p><img class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2";></p></div>
+    <div id="navigation"><p><header>
+  <div class="container-fluid">
+    <div class="row">
+      <div class="col-12">
+        <nav class="navbar navbar-expand-xl navbar-light 
justify-content-between">
+          <a class="navbar-brand" href="/index.html">
+            <img src="/images/apache-tapestry-icon-dark.svg" width="60" 
alt="Apache Tapestry" title="Apache Tapestry">
+            <span>apache tapestry</span>
+          </a>
+          <button type="button" class="navbar-toggler" data-toggle="collapse" 
data-target="#navbarCollapse" aria-controls="navbarCollapse" 
aria-expanded="false" aria-label="Toggle navigation">
+            <span class="navbar-toggler-icon"></span>
+          </button>
+          <div class="collapse navbar-collapse" id="navbarCollapse">
+            <ul class="navbar-nav mx-auto"><li class="nav-item">
+                <a class="nav-link active" 
href="/getting-started.html">Getting Started</a>
+              </li><li class="nav-item">
+                <a class="nav-link active" 
href="/documentation.html">Documentation</a>
+              </li><li class="nav-item">
+                <a class="nav-link active" href="/download.html">Download</a>
+              </li><li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle active" 
id="communityNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
+                  Community
+                </a>
+                <div class="dropdown-menu" 
aria-labelledby="communityNavbarDropdown">
+                  <a class="dropdown-item" href="/community.html">Mailing 
Lists</a>
+                  <a class="dropdown-item" 
href="https://stackoverflow.com/questions/tagged/tapestry";>StackOverflow</a>
+                  <a class="dropdown-item" href="/support.html">Support</a>
+                  <a class="dropdown-item" href="/community.html">Getting 
Involved</a>
+                  <a class="dropdown-item" 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=27833611";
 title="Edit this page (requires approval, just ask on the mailing list)">Edit 
this page</a>
+                  <div class="dropdown-divider"></div>
+                  <a class="dropdown-item" 
href="https://twitter.com/ApacheTapestry";>@ApacheTapestry</a>
+                  <a class="dropdown-item" 
href="https://twitter.com/hashtag/tapestry5";>#tapestry5</a>
+                </div>
+              </li><li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle active" 
id="developmentNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
+                  Development
+                </a>
+                <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
+                  <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
+                  <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
+                </div>
+              </li><li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
+                  Apache
+                </a>
+                <div class="dropdown-menu" 
aria-labelledby="apacheNavbarDropdown">
+                  <a class="dropdown-item" 
href="https://www.apache.org/";>About Apache</a>
+                  <a class="dropdown-item" 
href="https://apachecon.com/?ref=royale.apache.org";>Events</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/foundation/sponsorship.html";>Sponsorship</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/licenses/LICENSE-2.0";>License</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/security/";>Security</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/foundation/thanks.html";>Thanks!</a>
+                </div>
+              </li></ul>
+            <form enctype="application/x-www-form-urlencoded" method="get" 
class="form-inline" action="search.html">
+              <input type="search" class="form-control search-input" name="q" 
placeholder="Search docs, issues, wikis and blogs" aria-label="Search">
+              <button type="submit" class="d-none">Search</button>
+            </form>
+          </div>
+        </nav>
+      </div>
+    </div>
+  </div>
+</header></p></div>
   <!-- /// Navigation End -->
 
   <article>
@@ -74,12 +137,12 @@
               <!-- /// Breadcrumb End -->
 
               <!-- /// Smallbanner Start -->
-                            <div id="smallbanner"><img 
class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2";></div>
+                            <div id="smallbanner"><h1 class="title" 
id="title">Release Notes 5.3.1</h1></div>
               <!-- /// Smallbanner Start -->
             
             <!-- /// Content Start -->
             <div id="content">
-                            <div id="ConfluenceContent"><p>This bugfix release 
is a drop-in replacement for the <a href="release-notes-531.html">5.3</a> 
release. Any 5.3 user is encouraged to upgrade. Be sure to review the <a 
href="how-to-upgrade.html">How to Upgrade</a> instructions first, 
though.</p><p>&#160;<img class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2";></p></div>
+                            <div id="ConfluenceContent"><p>This bugfix release 
is a drop-in replacement for the <a href="release-notes-531.html">5.3</a> 
release. Any 5.3 user is encouraged to upgrade. Be sure to review the <a 
href="how-to-upgrade.html">How to Upgrade</a> instructions first, 
though.</p></div>
             </div>
             <!-- /// Content End -->
           </div>
@@ -89,7 +152,48 @@
   </article>
 
   <!-- /// Footer Start -->
-    <div id="footer"><p>Apache Tapestry, Tapestry, Apache, the Apache feather 
logo, and the Apache Tapestry project logo are trademarks of The Apache 
Software Foundation.</p><p><br clear="none"><img class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2";><br
 clear="none"></p><p><br clear="none"></p></div>
+    <div id="footer"><p>Apache Tapestry, Tapestry, Apache, the Apache feather 
logo, and the Apache Tapestry project logo are trademarks of The Apache 
Software Foundation.</p><p><br clear="none"><footer class="py-3">
+  <div class="container-fluid">
+    <div class="container">
+      <div class="row">
+        <div class="col-4 col-lg-2">
+          <span class="font-weight-bold">Apache Tapestry</span>
+          <ul><li><a href="index.html">Home</a></li><li><a 
href="download.html">Download</a></li><li><a 
href="about.html">Team</a></li><li><a 
href="https://www.apache.org/licenses/LICENSE-2.0";>License</a></li></ul>
+          <span class="font-weight-bold">Documentation</span>
+          <ul><li><a href="introduction.html">Introduction</a></li><li><a 
href="principles.html">Principles</a></li><li><i class="fas fa-play"></i> <a 
href="getting-started.html">Getting Started</a></li><li><i class="fas 
fa-play"></i> <a href="user-guide.html">User Guide</a></li><li><i class="fas 
fa-book"></i> <a href="documentation.html">Docs</a></li><li><i class="fas 
fa-book"></i> <a href="component-reference.html">Component 
Reference</a></li><li><i class="fas fa-book"></i> <a 
href="current/apidocs">Apidocs</a></li><li><a 
href="frequently-asked-questions.html">FAQ</a></li></ul>
+        </div>
+        <div class="col-4 col-lg-2">
+          <span class="font-weight-bold">Community</span>
+          <ul><li><i class="fas fa-envelope-open-text"></i> <a 
href="community.html">Mailing Lists</a></li><li><i class="fab 
fa-stack-overflow"> </i> <a 
href="https://stackoverflow.com/questions/tagged/tapestry";>StackOverflow</a></li><li><a
 href="support.html">Support</a></li><li><a href="community.html">Getting 
Involved</a></li><li><a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=27833611";
 title="Edit this page (requires approval, just ask on the mailing list)">Edit 
this page</a></li></ul>
+          <span class="font-weight-bold">Social</span>
+          <ul><li><i class="fab fa-twitter"></i> <a 
href="https://twitter.com/ApacheTapestry";>@ApacheTapestry</a></li><li><i 
class="fas fa-hashtag"></i> <a 
href="https://twitter.com/hashtag/tapestry5";>#tapestry5</a></li></ul>
+          <span class="font-weight-bold">Development</span>
+          <ul><li><i class="fab fa-git"></i> <a 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source 
Code</a></li><li><i class="fab fa-jira"></i> <a 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a></li></ul>
+        </div>
+        <div class="col-4 col-lg-2">
+          <span class="font-weight-bold">Apache</span>
+          <ul><li><a href="https://www.apache.org/";>About 
Apache</a></li><li><a 
href="https://apachecon.com/?ref=royale.apache.org";>Events</a></li><li><a 
href="https://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
 href="https://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a 
href="https://www.apache.org/security/";>Security</a></li><li><a 
href="https://www.apache.org/foundation/thanks.html";>Thanks!</a></li></ul>
+        </div>
+        <div class="col-md-12 col-lg-6 clearfix">
+          <span class="font-weight-bold d-block">About us</span>
+          <p class="float-right ml-3 mb-0"><img 
src="images/apache-tapestry-icon-light.svg" width="100" alt="Apache Tapestry" 
title="Apache Tapestry"></p>
+          <p><a href="https://tapestry.apache.org/";>Apache Tapestry&#8482;</a> 
is an open-source component-oriented framework for creating dynamic, robust, 
highly scalable web applications in Java.</p>
+          <p>Tapestry complements and builds upon the standard Java Servlet 
API, and so it works in any servlet container or application server.</p>
+          <p class="float-right ml-3 mb-0"><img 
src="images/apache-powered-by.svg" width="100" alt="Apache PoweredBy" 
title="Apache PoweredBy"></p>
+          <p>
+            <a href="https://tapestry.apache.org/";>Apache Tapestry&#8482;</a>, 
<a href="https://www.apache.org/";>Apache&#8482;</a> and the <a 
href="https://www.apache.org/foundation/press/kit/";>Apache feather 
logo&#8482;</a>
+            are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective owners.
+          </p>
+        </div>
+      </div>
+      <div class="row">
+        <div class="col-12">
+          Copyright &#169; 2020 The Apache Software Foundation, Licensed under 
the <a href="https://www.apache.org/licenses/LICENSE-2.0";>Apache License, 
Version 2.0</a>.
+        </div>
+      </div>
+    </div>
+  </div>
+</footer><br clear="none"></p><p><br clear="none"></p></div>
   <!-- /// Footer End -->
 </body>
 </html>

Modified: websites/production/tapestry/content/release-notes-532.html
==============================================================================
--- websites/production/tapestry/content/release-notes-532.html (original)
+++ websites/production/tapestry/content/release-notes-532.html Sat Nov 26 
13:17:27 2022
@@ -32,10 +32,10 @@
   <link rel="apple-touch-icon-precomposed" 
href="/images/apache-tapestry-icon-57.png">
   <link rel="shortcut icon" href="/images/apache-tapestry-icon-32.png">
 
-  <link rel="stylesheet" 
href="https://fonts.googleapis.com/css2?family=Sarabun:ital,wght@0,400;0,700;1,400;1,700&display=swap";>
 
-  <link rel="stylesheet" 
href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"; 
integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
 crossorigin="anonymous">
+  <link rel="stylesheet" href="/resources/bootstrap/bootstrap.min.css">
   <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css";>
   <link rel="stylesheet" 
href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/themes/prism.min.css";>
+  <link rel="stylesheet" href="/resources/fonts/fonts.css">
   <link rel="stylesheet" href="/styles/main.css">
 
   <script type="text/javascript">
@@ -46,7 +46,7 @@
 
   <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"; 
integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n"
 crossorigin="anonymous" defer></script>
   <script 
src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"; 
integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
 crossorigin="anonymous" defer></script>
-  <script 
src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"; 
integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
 crossorigin="anonymous" defer></script>
+  <script src="stylesheet" href="/resources/bootstrap/bootstrap.min.js">
   <script 
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/prism.min.js"; 
defer></script>
        <script 
src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.20.0/plugins/autoloader/prism-autoloader.min.js";
 defer></script>
 
@@ -59,7 +59,70 @@
 </head>
 <body>
   <!-- /// Navigation Start -->
-    <div id="navigation"><p><img class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2";></p></div>
+    <div id="navigation"><p><header>
+  <div class="container-fluid">
+    <div class="row">
+      <div class="col-12">
+        <nav class="navbar navbar-expand-xl navbar-light 
justify-content-between">
+          <a class="navbar-brand" href="/index.html">
+            <img src="/images/apache-tapestry-icon-dark.svg" width="60" 
alt="Apache Tapestry" title="Apache Tapestry">
+            <span>apache tapestry</span>
+          </a>
+          <button type="button" class="navbar-toggler" data-toggle="collapse" 
data-target="#navbarCollapse" aria-controls="navbarCollapse" 
aria-expanded="false" aria-label="Toggle navigation">
+            <span class="navbar-toggler-icon"></span>
+          </button>
+          <div class="collapse navbar-collapse" id="navbarCollapse">
+            <ul class="navbar-nav mx-auto"><li class="nav-item">
+                <a class="nav-link active" 
href="/getting-started.html">Getting Started</a>
+              </li><li class="nav-item">
+                <a class="nav-link active" 
href="/documentation.html">Documentation</a>
+              </li><li class="nav-item">
+                <a class="nav-link active" href="/download.html">Download</a>
+              </li><li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle active" 
id="communityNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
+                  Community
+                </a>
+                <div class="dropdown-menu" 
aria-labelledby="communityNavbarDropdown">
+                  <a class="dropdown-item" href="/community.html">Mailing 
Lists</a>
+                  <a class="dropdown-item" 
href="https://stackoverflow.com/questions/tagged/tapestry";>StackOverflow</a>
+                  <a class="dropdown-item" href="/support.html">Support</a>
+                  <a class="dropdown-item" href="/community.html">Getting 
Involved</a>
+                  <a class="dropdown-item" 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=27834364";
 title="Edit this page (requires approval, just ask on the mailing list)">Edit 
this page</a>
+                  <div class="dropdown-divider"></div>
+                  <a class="dropdown-item" 
href="https://twitter.com/ApacheTapestry";>@ApacheTapestry</a>
+                  <a class="dropdown-item" 
href="https://twitter.com/hashtag/tapestry5";>#tapestry5</a>
+                </div>
+              </li><li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle active" 
id="developmentNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
+                  Development
+                </a>
+                <div class="dropdown-menu" 
aria-labelledby="developmentNavbarDropdown">
+                  <a class="dropdown-item" 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source Code</a>
+                  <a class="dropdown-item" 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a>
+                </div>
+              </li><li class="nav-item dropdown">
+                <a class="nav-link dropdown-toggle active" 
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown" 
aria-haspopup="true" aria-expanded="false">
+                  Apache
+                </a>
+                <div class="dropdown-menu" 
aria-labelledby="apacheNavbarDropdown">
+                  <a class="dropdown-item" 
href="https://www.apache.org/";>About Apache</a>
+                  <a class="dropdown-item" 
href="https://apachecon.com/?ref=royale.apache.org";>Events</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/foundation/sponsorship.html";>Sponsorship</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/licenses/LICENSE-2.0";>License</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/security/";>Security</a>
+                  <a class="dropdown-item" 
href="https://www.apache.org/foundation/thanks.html";>Thanks!</a>
+                </div>
+              </li></ul>
+            <form enctype="application/x-www-form-urlencoded" method="get" 
class="form-inline" action="search.html">
+              <input type="search" class="form-control search-input" name="q" 
placeholder="Search docs, issues, wikis and blogs" aria-label="Search">
+              <button type="submit" class="d-none">Search</button>
+            </form>
+          </div>
+        </nav>
+      </div>
+    </div>
+  </div>
+</header></p></div>
   <!-- /// Navigation End -->
 
   <article>
@@ -74,12 +137,12 @@
               <!-- /// Breadcrumb End -->
 
               <!-- /// Smallbanner Start -->
-                            <div id="smallbanner"><img 
class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2";></div>
+                            <div id="smallbanner"><h1 class="title" 
id="title">Release Notes 5.3.2</h1></div>
               <!-- /// Smallbanner Start -->
             
             <!-- /// Content Start -->
             <div id="content">
-                            <div id="ConfluenceContent"><p>This is the 
consolidated list of changes between Tapestry versions 5.3.1 and 5.3.2. To 
upgrade, just update the Maven dependency in you POM file (or <a 
href="download.html">download</a> the new JAR file) and the new version will 
just work. However, please review the&#160;<a href="how-to-upgrade.html">How to 
Upgrade</a> instructions before upgrading. And be sure to check the <a 
href="release-notes-53.html">Release Notes for 5.3</a> and <a 
href="release-notes-531.html">Release Notes for 5.3.1</a> too.</p><h2 
id="ReleaseNotes5.3.2-NewFeatures">New Features</h2><h3 
id="ReleaseNotes5.3.2-Componentfieldvisibility">Component field 
visibility</h3><p>In prior versions of Tapestry, all instance fields of 
components had to be visibility private; starting with version 5.3.2, this has 
been relaxed. Component fields may be protected, or package private (that is, 
no visibility modifier). Fields that are final, or annotated with @<a class="
 external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Retain.html";>Retain</a>
 may even be public. In any case, this makes it easier for pages to work with 
other pages in the same package, and for subclasses to more easily access the 
fields (including parameter fields, or injections) provided by base classes. 
This feature should be used with care, as it can lead to designs that are more 
difficult to maintain.</p><h3 id="ReleaseNotes5.3.2-Spring3.1upgrade">Spring 
3.1 upgrade</h3><p>The Spring integration module has updated the Spring 
dependencies to 3.1.0.RELEASE</p><h3 
id="ReleaseNotes5.3.2-TextFieldcomponentsupportforHTML5values">TextField 
component support for HTML5 values</h3><p>The <a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/TextField.html";>TextField</a>
 components now support HTML5 any HTML5 type attribute.</p><p>&#160;<img 
class="wysiwyg-unknown-macro" src="https://c
 
wiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2"></p></div>
+                            <div id="ConfluenceContent"><p>This is the 
consolidated list of changes between Tapestry versions 5.3.1 and 5.3.2. To 
upgrade, just update the Maven dependency in you POM file (or <a 
href="download.html">download</a> the new JAR file) and the new version will 
just work. However, please review the&#160;<a href="how-to-upgrade.html">How to 
Upgrade</a> instructions before upgrading. And be sure to check the <a 
href="release-notes-53.html">Release Notes for 5.3</a> and <a 
href="release-notes-531.html">Release Notes for 5.3.1</a> too.</p><h2 
id="ReleaseNotes5.3.2-NewFeatures">New Features</h2><h3 
id="ReleaseNotes5.3.2-Componentfieldvisibility">Component field 
visibility</h3><p>In prior versions of Tapestry, all instance fields of 
components had to be visibility private; starting with version 5.3.2, this has 
been relaxed. Component fields may be protected, or package private (that is, 
no visibility modifier). Fields that are final, or annotated with @<a class="
 external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Retain.html";>Retain</a>
 may even be public. In any case, this makes it easier for pages to work with 
other pages in the same package, and for subclasses to more easily access the 
fields (including parameter fields, or injections) provided by base classes. 
This feature should be used with care, as it can lead to designs that are more 
difficult to maintain.</p><h3 id="ReleaseNotes5.3.2-Spring3.1upgrade">Spring 
3.1 upgrade</h3><p>The Spring integration module has updated the Spring 
dependencies to 3.1.0.RELEASE</p><h3 
id="ReleaseNotes5.3.2-TextFieldcomponentsupportforHTML5values">TextField 
component support for HTML5 values</h3><p>The <a class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/TextField.html";>TextField</a>
 components now support HTML5 any HTML5 type attribute.</p></div>
             </div>
             <!-- /// Content End -->
           </div>
@@ -89,7 +152,48 @@
   </article>
 
   <!-- /// Footer Start -->
-    <div id="footer"><p>Apache Tapestry, Tapestry, Apache, the Apache feather 
logo, and the Apache Tapestry project logo are trademarks of The Apache 
Software Foundation.</p><p><br clear="none"><img class="wysiwyg-unknown-macro" 
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=html&amp;locale=en_GB&amp;version=2";><br
 clear="none"></p><p><br clear="none"></p></div>
+    <div id="footer"><p>Apache Tapestry, Tapestry, Apache, the Apache feather 
logo, and the Apache Tapestry project logo are trademarks of The Apache 
Software Foundation.</p><p><br clear="none"><footer class="py-3">
+  <div class="container-fluid">
+    <div class="container">
+      <div class="row">
+        <div class="col-4 col-lg-2">
+          <span class="font-weight-bold">Apache Tapestry</span>
+          <ul><li><a href="index.html">Home</a></li><li><a 
href="download.html">Download</a></li><li><a 
href="about.html">Team</a></li><li><a 
href="https://www.apache.org/licenses/LICENSE-2.0";>License</a></li></ul>
+          <span class="font-weight-bold">Documentation</span>
+          <ul><li><a href="introduction.html">Introduction</a></li><li><a 
href="principles.html">Principles</a></li><li><i class="fas fa-play"></i> <a 
href="getting-started.html">Getting Started</a></li><li><i class="fas 
fa-play"></i> <a href="user-guide.html">User Guide</a></li><li><i class="fas 
fa-book"></i> <a href="documentation.html">Docs</a></li><li><i class="fas 
fa-book"></i> <a href="component-reference.html">Component 
Reference</a></li><li><i class="fas fa-book"></i> <a 
href="current/apidocs">Apidocs</a></li><li><a 
href="frequently-asked-questions.html">FAQ</a></li></ul>
+        </div>
+        <div class="col-4 col-lg-2">
+          <span class="font-weight-bold">Community</span>
+          <ul><li><i class="fas fa-envelope-open-text"></i> <a 
href="community.html">Mailing Lists</a></li><li><i class="fab 
fa-stack-overflow"> </i> <a 
href="https://stackoverflow.com/questions/tagged/tapestry";>StackOverflow</a></li><li><a
 href="support.html">Support</a></li><li><a href="community.html">Getting 
Involved</a></li><li><a 
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=27834364";
 title="Edit this page (requires approval, just ask on the mailing list)">Edit 
this page</a></li></ul>
+          <span class="font-weight-bold">Social</span>
+          <ul><li><i class="fab fa-twitter"></i> <a 
href="https://twitter.com/ApacheTapestry";>@ApacheTapestry</a></li><li><i 
class="fas fa-hashtag"></i> <a 
href="https://twitter.com/hashtag/tapestry5";>#tapestry5</a></li></ul>
+          <span class="font-weight-bold">Development</span>
+          <ul><li><i class="fab fa-git"></i> <a 
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git";>Source 
Code</a></li><li><i class="fab fa-jira"></i> <a 
href="https://issues.apache.org/jira/browse/TAP5";>Issues</a></li></ul>
+        </div>
+        <div class="col-4 col-lg-2">
+          <span class="font-weight-bold">Apache</span>
+          <ul><li><a href="https://www.apache.org/";>About 
Apache</a></li><li><a 
href="https://apachecon.com/?ref=royale.apache.org";>Events</a></li><li><a 
href="https://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
 href="https://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a 
href="https://www.apache.org/security/";>Security</a></li><li><a 
href="https://www.apache.org/foundation/thanks.html";>Thanks!</a></li></ul>
+        </div>
+        <div class="col-md-12 col-lg-6 clearfix">
+          <span class="font-weight-bold d-block">About us</span>
+          <p class="float-right ml-3 mb-0"><img 
src="images/apache-tapestry-icon-light.svg" width="100" alt="Apache Tapestry" 
title="Apache Tapestry"></p>
+          <p><a href="https://tapestry.apache.org/";>Apache Tapestry&#8482;</a> 
is an open-source component-oriented framework for creating dynamic, robust, 
highly scalable web applications in Java.</p>
+          <p>Tapestry complements and builds upon the standard Java Servlet 
API, and so it works in any servlet container or application server.</p>
+          <p class="float-right ml-3 mb-0"><img 
src="images/apache-powered-by.svg" width="100" alt="Apache PoweredBy" 
title="Apache PoweredBy"></p>
+          <p>
+            <a href="https://tapestry.apache.org/";>Apache Tapestry&#8482;</a>, 
<a href="https://www.apache.org/";>Apache&#8482;</a> and the <a 
href="https://www.apache.org/foundation/press/kit/";>Apache feather 
logo&#8482;</a>
+            are trademarks of The Apache Software Foundation. All other marks 
mentioned may be trademarks or registered trademarks of their respective owners.
+          </p>
+        </div>
+      </div>
+      <div class="row">
+        <div class="col-12">
+          Copyright &#169; 2020 The Apache Software Foundation, Licensed under 
the <a href="https://www.apache.org/licenses/LICENSE-2.0";>Apache License, 
Version 2.0</a>.
+        </div>
+      </div>
+    </div>
+  </div>
+</footer><br clear="none"></p><p><br clear="none"></p></div>
   <!-- /// Footer End -->
 </body>
 </html>


Reply via email to