Author: buildbot
Date: Sun Jun 19 15:11:52 2022
New Revision: 1079887

Log:
Production update by buildbot for tapestry

Added:
    
websites/production/tapestry/content/cors-cross-origin-resource-sharing-support-582.html
    websites/production/tapestry/content/release-notes-582.html
Modified:
    websites/production/tapestry/content/cache/main.pageCache
    websites/production/tapestry/content/configuration.html
    websites/production/tapestry/content/documentation.html
    websites/production/tapestry/content/release-notes.html

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

Modified: websites/production/tapestry/content/configuration.html
==============================================================================
--- websites/production/tapestry/content/configuration.html (original)
+++ websites/production/tapestry/content/configuration.html Sun Jun 19 15:11:52 
2022
@@ -214,11 +214,11 @@
 
 
 <h1 id="Configuration-ConfiguringTapestry">Configuring Tapestry</h1><p>This 
page discusses all the ways in which Tapestry can be configured. Tapestry 
applications are configured almost entirely using Java, with very little XML at 
all.</p><p><strong>Contents</strong></p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1655111504722 {padding: 0px;}
-div.rbtoc1655111504722 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1655111504722 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1655651502246 {padding: 0px;}
+div.rbtoc1655651502246 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1655651502246 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1655111504722">
+/*]]>*/</style></p><div class="toc-macro rbtoc1655651502246">
 <ul class="toc-indentation"><li><a 
href="#Configuration-XMLconfiguration(web.xml)">XML configuration 
(web.xml)</a></li><li><a 
href="#Configuration-YourApplication'sModuleClass">Your Application's Module 
Class</a></li><li><a 
href="#Configuration-ConfigurationSymbolNames">Configuration Symbol 
Names</a></li><li><a 
href="#Configuration-SettingComponentParameterDefaults">Setting Component 
Parameter Defaults</a></li><li><a 
href="#Configuration-ConfiguringIgnoredPaths">Configuring Ignored 
Paths</a></li><li><a 
href="#Configuration-ConfiguringContentTypeMapping">Configuring Content Type 
Mapping</a></li><li><a href="#Configuration-SettingExecutionModes">Setting 
Execution Modes</a></li><li><a 
href="#Configuration-SegregatingApplicationsIntoFolders">Segregating 
Applications Into Folders</a></li></ul>
 </div><h2 id="Configuration-XMLconfiguration(web.xml)">XML configuration 
(web.xml)</h2><p>Tapestry runs on top of the standard Java Servlet API. To the 
servlet container, such as Tomcat, Tapestry appears as a <em>servlet 
filter</em>. This gives Tapestry great flexibility in matching URLs without 
requiring lots of XML configuration.</p><p>Although most configuration is done 
with Java, a small but necessary amount of configuration occurs inside the 
servlet deployment descriptor, WEB-INF/web.xml. Most of the configuration is 
boilerplate, nearly the same for all applications.</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>web.xml (partial)</b></div><div 
class="codeContent panelContent pdl">
 <pre><code class="language-xml">&lt;!DOCTYPE web-app
@@ -522,7 +522,56 @@ div.rbtoc1655111504722 li {margin-left:
 
     <div class="param-body"></div>
 
-</div><p><strong>SymbolConstants.SESSION_LOCKING_ENABLED</strong>&#160;&#8211; 
If true (the default), then Tapestry will use a lock when reading/updating 
HttpSession attributes, to avoid simultaneous access by multiple threads when 
using AJAX. See <a class="external-link" 
href="https://issues.apache.org/jira/browse/TAP5-2049";>TAP5-2049</a>. Set to 
false to deactivate the session locking logic.</p><p>Prior to version 5.4 
session locking was not performed.</p><h3 
id="Configuration-tapestry.start-page-name">tapestry.start-page-name</h3><p><strong>SymbolConstants.START_PAGE_NAME</strong>&#160;&#8211;
 The logical name of the start page, the page that is rendered for the <em>root 
URL</em>. This is normally "start". This functionality is vestigial: it has 
been superseded by the use of Index pages.</p><p><span 
class="confluence-anchor-link" 
id="Configuration-supported-locales"></span></p><h3 
id="Configuration-tapestry.strict-css-url-rewriting">tapestry.strict-css-url-rewriting</h3><p><stron
 g>SymbolConstants.STRICT_CSS_URL_REWRITING</strong>&#160;&#8211; Controls 
whether to throw an exception (true) or log a warning (false) when Tapestry 
encounters a URL reference to a non-existing file within a CSS file. The 
default is false.</p><h3 
id="Configuration-tapestry.supported-locales">tapestry.supported-locales</h3><p><strong>SymbolConstants.SUPPORTED_LOCALES</strong>&#160;&#8211;
 A comma-separated list of supported locales. Incoming requests as "narrowed" 
to one of these locales, based on closest match. If no match can be found, the 
first locale in the list is treated as the default.</p><p>The default is 
(currently) "en,it,es,zh_CN,pt_PT,de,ru,hr,fi_FI,sv_SE,fr_FR,da,pt_BR,ja,el". 
As the community contributes new localizations of the necessary messages files, 
this list will expand. Note that the Tapestry quickstart archetype overrides 
the factory default, forcing the application to be localized only for 
"en".</p><h3 id="Configuration-tapestry.suppress-redirect-from-action-r
 equests">tapestry.suppress-redirect-from-action-requests</h3>
+</div><p><strong>SymbolConstants.SESSION_LOCKING_ENABLED</strong>&#160;&#8211; 
If true (the default), then Tapestry will use a lock when reading/updating 
HttpSession attributes, to avoid simultaneous access by multiple threads when 
using AJAX. See <a class="external-link" 
href="https://issues.apache.org/jira/browse/TAP5-2049";>TAP5-2049</a>. Set to 
false to deactivate the session locking logic.</p><p>Prior to version 5.4 
session locking was not performed.</p><h3 
id="Configuration-tapestry.start-page-name">tapestry.start-page-name</h3><p><strong>SymbolConstants.START_PAGE_NAME</strong>&#160;&#8211;
 The logical name of the start page, the page that is rendered for the <em>root 
URL</em>. This is normally "start". This functionality is vestigial: it has 
been superseded by the use of Index pages.</p><p><span 
class="confluence-anchor-link" 
id="Configuration-supported-locales"></span></p><h3 
id="Configuration-tapestry.strict-css-url-rewriting">tapestry.strict-css-url-rewriting</h3><p><stron
 g>SymbolConstants.STRICT_CSS_URL_REWRITING</strong>&#160;&#8211; Controls 
whether to throw an exception (true) or log a warning (false) when Tapestry 
encounters a URL reference to a non-existing file within a CSS file. The 
default is false.</p><h3 
id="Configuration-tapestry.supported-locales">tapestry.supported-locales</h3><p><strong>SymbolConstants.SUPPORTED_LOCALES</strong>&#160;&#8211;
 A comma-separated list of supported locales. Incoming requests as "narrowed" 
to one of these locales, based on closest match. If no match can be found, the 
first locale in the list is treated as the default.</p><p>The default is 
(currently) "en,it,es,zh_CN,pt_PT,de,ru,hr,fi_FI,sv_SE,fr_FR,da,pt_BR,ja,el". 
As the community contributes new localizations of the necessary messages files, 
this list will expand. Note that the Tapestry quickstart archetype overrides 
the factory default, forcing the application to be localized only for 
"en".</p><h3 id="Configuration-tapestry.cors-enabled">tapestry.cors-ena
 bled</h3><p><strong>SymbolConstants.CORS_ENABLED</strong> &#8211; Defines 
whether the CORS (Cross-Origing Resource Sharing) support should be enabled or 
not. Default value is <code>false</code>. If you set this to 
<code>true</code>,you should also set at least 
<code>Symbol.CORS_ALLOWED_ORIGINS</code> too.</p>
+
+<div class="aui-message aui-message-info macro-since"><b 
class="param-since">Added in 5.8.2</b>
+
+
+    <div class="param-body"></div>
+
+</div><h3 
id="Configuration-tapestry.cors-allowed-origins">tapestry.cors-allowed-origins</h3><p><strong>SymbolConstants.CORS_ALLOWED_ORIGINS</strong>
 &#8211; Comma-delimited of origins allowed for CORS. The special value * means 
allowing all origins.&#160; This is used by the default implementation of 
<code>CorsHandlerHelper.getAllowedOrigin(HttpServletRequest)</code>.&#160;Default
 value is the empty string (i.e. no origins allowed and CORS actually 
disabled).</p>
+
+<div class="aui-message aui-message-info macro-since"><b 
class="param-since">Added in 5.8.2</b>
+
+
+    <div class="param-body"></div>
+
+</div><h3 
id="Configuration-tapestry.cors-allow-credentials">tapestry.cors-allow-credentials</h3><p><strong>SymbolConstants.CORS_ALLOW_CREDENTIALS</strong>
 &#8211; Boolean value defining whether the 
<code>Access-Control-Allow-Credentials</code> HTTP header should be set 
automatically in the response for CORS requests. Default value is 
<code>false</code>. This is used by the default implementation of 
<code>CorsHandlerHelper.configureCredentials(HttpServletResponse)</code>.</p>
+
+<div class="aui-message aui-message-info macro-since"><b 
class="param-since">Added in 5.8.2</b>
+
+
+    <div class="param-body"></div>
+
+</div><h3 
id="Configuration-tapestry.cors-allow-methods">tapestry.cors-allow-methods</h3><p><strong>SymbolConstants.CORS_ALLOW_METHODS</strong>
 &#8211; Value to be used in the <code>Access-Control-Allow-Methods</code> in 
CORS preflight request responses. This is used by the default implementation of 
<code>CorsHandlerHelper.configureMethods(HttpServletResponse)</code>. Default 
value is <code>GET,HEAD,PUT,PATCH,POST,DELETE</code>.</p>
+
+<div class="aui-message aui-message-info macro-since"><b 
class="param-since">Added in 5.8.2</b>
+
+
+    <div class="param-body"></div>
+
+</div><h3 
id="Configuration-tapestry.cors-allowed-headers">tapestry.cors-allowed-headers</h3><p><strong>SymbolConstants.CORS_ALLOWED_HEADERS</strong>
 &#8211; Value to be used in the <code>Access-Control-Allow-Headers</code> in 
CORS preflight request responses. This is used by the default implementation of 
<code>CorsHandlerHelper.configureAllowedHeaders(HttpServletResponse)</code>, 
which only sets the header if the value isn't empty. Default value is the empty 
string.</p>
+
+<div class="aui-message aui-message-info macro-since"><b 
class="param-since">Added in 5.8.2</b>
+
+
+    <div class="param-body"></div>
+
+</div><h3 
id="Configuration-tapestry.cors-expose-headers">tapestry.cors-expose-headers</h3><p><strong>SymbolConstants.CORS_EXPOSE_HEADERS</strong>
 &#8211; Value to be used in the <code>Access-Control-Expose-Headers</code> in 
CORS preflight request responses. This is used by the default implementation of 
<code>CorsHandlerHelper.configureExposeHeaders(HttpServletResponse)</code>, 
which only sets the header if the value isn't empty. Default value is the empty 
string.</p>
+
+<div class="aui-message aui-message-info macro-since"><b 
class="param-since">Added in 5.8.2</b>
+
+
+    <div class="param-body"></div>
+
+</div><h3 
id="Configuration-tapestry.cors-max-age">tapestry.cors-max-age</h3><p><strong>SymbolConstants.CORS_MAX_AGE</strong>
 &#8211; Value to be used in the <code>Access-Control-Max-Age</code>&#160;in 
CORS preflight request responses. This is used by the default implementation of 
<code>CorsHandlerHelper.configureMaxAge(HttpServletResponse)</code>, which only 
sets the header if the value isn't empty. Default value is the empty string.</p>
+
+<div class="aui-message aui-message-info macro-since"><b 
class="param-since">Added in 5.8.2</b>
+
+
+    <div class="param-body"></div>
+
+</div><h3 
id="Configuration-tapestry.suppress-redirect-from-action-requests">tapestry.suppress-redirect-from-action-requests</h3>
 
 <div class="aui-message aui-message-warning macro-deprecated"><b 
class="param-deprecated">Deprecated since 5.2</b>
 

Added: 
websites/production/tapestry/content/cors-cross-origin-resource-sharing-support-582.html
==============================================================================
--- 
websites/production/tapestry/content/cors-cross-origin-resource-sharing-support-582.html
 (added)
+++ 
websites/production/tapestry/content/cors-cross-origin-resource-sharing-support-582.html
 Sun Jun 19 15:11:52 2022
@@ -0,0 +1,248 @@
+<!DOCTYPE html>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<html>
+<head>
+  <meta http-equiv="content-type" content="text/html; charset=utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <meta name="keywords" content="tapestry, apache, apache tapestry, framework, 
java, web, component, open source, application, dynamic, scalable, robust, 
servlet">
+  <meta name="description" content="Apache Tapestry is a open-source 
component-oriented framework for creating dynamic, robust, highly scalable web 
applications in Java. Tapestry complements and builds upon the standard Java 
Servlet API, and so it works in any servlet container or application server.">
+
+  <title>
+          CORS (Cross-Origin Resource Sharing) Support (5.8.2+) - Apache 
Tapestry
+      </title>
+
+  <link rel="apple-touch-icon-precomposed" sizes="144x144" 
href="/images/apache-tapestry-icon-144.png">
+  <link rel="apple-touch-icon-precomposed" sizes="114x114" 
href="/images/apache-tapestry-icon-114.png">
+  <link rel="apple-touch-icon-precomposed" sizes="72x72" 
href="/images/apache-tapestry-icon-72.png">
+  <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="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="/styles/main.css">
+
+  <script type="text/javascript">
+    if (window.location.protocol === 'http:' && window.location.hostname !== 
'localhost') {
+      window.location = window.location.href.replace('http://', 'https://');
+    }
+  </script>
+
+  <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="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>
+
+  <script type="text/javascript">
+    window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new 
Date;
+    ga('create', 'UA-400821-1', 'auto');
+    ga('send', 'pageview');
+  </script>
+  <script async src="https://www.google-analytics.com/analytics.js";></script>
+</head>
+<body>
+  <!-- /// Navigation Start -->
+    <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=217387551";
 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>
+    <div class="container-fluid">
+      <div class="container pt-5">
+        <div class="row">
+          <div class="col-12">
+                          <!-- /// Breadcrumb Start -->
+              <div id="breadcrumb" class="mb-2 text-small">
+                                <a href="index.html">Apache 
Tapestry</a>&nbsp;&gt;&nbsp;<a 
href="documentation.html">Documentation</a>&nbsp;&gt;&nbsp;<a 
href="user-guide.html">User Guide</a>&nbsp;&gt;&nbsp;<a 
href="cors-cross-origin-resource-sharing-support-582.html">CORS (Cross-Origin 
Resource Sharing) Support (5.8.2+)</a>
+              </div>
+              <!-- /// Breadcrumb End -->
+
+              <!-- /// Smallbanner Start -->
+                            <div id="smallbanner"><h1 class="title" 
id="title">CORS (Cross-Origin Resource Sharing) Support (5.8.2+)</h1></div>
+              <!-- /// Smallbanner Start -->
+            
+            <!-- /// Content Start -->
+            <div id="content">
+                            <div id="ConfluenceContent"><h1 
id="CORS(CrossOriginResourceSharing)Support(5.8.2+)-CORSSuppport">CORS 
Suppport</h1><p>Since 5.8.2, Tapestry (specifically tapestry-http, a dependency 
of tapestry-core) provides out-of-the-box <a class="external-link" 
href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS"; 
rel="nofollow">CORS (Cross-origin resourse sharing)</a> support. It covers most 
scenarios with just configuration symbols while also allowing easy 
customization of almost all its logic.&#160;</p><p>CORS support isn't enabled 
by default.</p><p>The implementation is based around 3 
services:</p><ol><li><code>CorsHandler</code> defines the overall logic, mostly 
around deciding whether the current request requires CORS processing and call 
the appropriate code to handle hit. The delegates almost all of the CORS 
processing logic to 
<code>CorsHandlerHelper</code>.</li><li><code>CorsHandlerHelper</code> 
implements logic for determining whether a CORS request
  if a pre-flight one, which HTTP headers to set and which values to use. It 
has a default implementation of this service that uses the configuration 
symbols described below.</li><li><code>CorsHttpServletRequestFilter</code> is 
both a service and <code>HttpServletRequestFilter</code> filter which is called 
on every incoming HTTP request and delegates the CORS processing to 
<code>CorsHandler</code> instances. The 
<code>CorsHttpServletRequestFilter</code> service has an ordered configuration 
of <code>CorsHandler</code> instances. The default <code>CorsHandler</code> 
implementation, contributed to be the last one, executes the CORS processing 
for every request.</li></ol><p>If you need to have dynamic logic for 
determining the allowed origins, how to set the HTTP headers in the response or 
defining whether a CORS request is pre-flight or not, you should advise, 
decorate or override the <code>CorsHandlerHelper</code> service.</p><p>If you 
want to exclude some requests from having CORS pro
 cessing on them, implement a <code>CorsHandler</code> which returns 
<code>CorsHandlerResult.CONTINUE_REQUEST_PROCESSING</code> (i.e. skip CORS 
processing) for the these requests and 
<code>CorsHandlerResult.CONTINUE_CORS_PROCESSING</code> for the ones you want 
CORS processing to happen. You should also contribute your 
<code>CorsHandler</code> implementation to the 
<code>CorsHttpServletRequestFilter</code>.</p><h2 
id="CORS(CrossOriginResourceSharing)Support(5.8.2+)-Configuration">Configuration</h2><p>The
 <a href="ioc-symbols.html">configuration symbols</a> used by the Tapestry CORS 
support are defined as <code>TapestryHttpSymbolConstants</code> constants with 
aliases in <code>SymbolConstants</code>.&#160;</p><h3 
id="CORS(CrossOriginResourceSharing)Support(5.8.2+)-tapestry.cors-enabled">tapestry.cors-enabled</h3><p><strong>SymbolConstants.CORS_ENABLED</strong>
 &#8211; Defines whether the CORS (Cross-Origing Resource Sharing) support 
should be enabled or not. Default value is <code>fals
 e</code>. If you set this to <code>true</code>,you should also set at least 
<code>Symbol.CORS_ALLOWED_ORIGINS</code> too.</p>
+
+<div class="aui-message aui-message-info macro-since"><b 
class="param-since">Added in 5.8.2</b>
+
+
+    <div class="param-body"></div>
+
+</div><h3 
id="CORS(CrossOriginResourceSharing)Support(5.8.2+)-tapestry.cors-allowed-origins">tapestry.cors-allowed-origins</h3><p><strong>SymbolConstants.CORS_ALLOWED_ORIGINS</strong>
 &#8211; Comma-delimited of origins allowed for CORS. The special value * means 
allowing all origins.&#160; This is used by the default implementation of 
<code>CorsHandlerHelper.getAllowedOrigin(HttpServletRequest)</code>.&#160;Default
 value is the empty string (i.e. no origins allowed and CORS actually 
disabled).</p>
+
+<div class="aui-message aui-message-info macro-since"><b 
class="param-since">Added in 5.8.2</b>
+
+
+    <div class="param-body"></div>
+
+</div><h3 
id="CORS(CrossOriginResourceSharing)Support(5.8.2+)-tapestry.cors-allow-credentials">tapestry.cors-allow-credentials</h3><p><strong>SymbolConstants.CORS_ALLOW_CREDENTIALS</strong>
 &#8211; Boolean value defining whether the 
<code>Access-Control-Allow-Credentials</code> HTTP header should be set 
automatically in the response for CORS requests. Default value is 
<code>false</code>. This is used by the default implementation of 
<code>CorsHandlerHelper.configureCredentials(HttpServletResponse)</code>.</p>
+
+<div class="aui-message aui-message-info macro-since"><b 
class="param-since">Added in 5.8.2</b>
+
+
+    <div class="param-body"></div>
+
+</div><h3 
id="CORS(CrossOriginResourceSharing)Support(5.8.2+)-tapestry.cors-allow-methods">tapestry.cors-allow-methods</h3><p><strong>SymbolConstants.CORS_ALLOW_METHODS</strong>
 &#8211; Value to be used in the <code>Access-Control-Allow-Methods</code> in 
CORS preflight request responses. This is used by the default implementation of 
<code>CorsHandlerHelper.configureMethods(HttpServletResponse)</code>. Default 
value is <code>GET,HEAD,PUT,PATCH,POST,DELETE</code>.</p>
+
+<div class="aui-message aui-message-info macro-since"><b 
class="param-since">Added in 5.8.2</b>
+
+
+    <div class="param-body"></div>
+
+</div><h3 
id="CORS(CrossOriginResourceSharing)Support(5.8.2+)-tapestry.cors-allowed-headers">tapestry.cors-allowed-headers</h3><p><strong>SymbolConstants.CORS_ALLOWED_HEADERS</strong>
 &#8211; Value to be used in the <code>Access-Control-Allow-Headers</code> in 
CORS preflight request responses. This is used by the default implementation of 
<code>CorsHandlerHelper.configureAllowedHeaders(HttpServletResponse)</code>, 
which only sets the header if the value isn't empty. Default value is the empty 
string.</p>
+
+<div class="aui-message aui-message-info macro-since"><b 
class="param-since">Added in 5.8.2</b>
+
+
+    <div class="param-body"></div>
+
+</div><h3 
id="CORS(CrossOriginResourceSharing)Support(5.8.2+)-tapestry.cors-expose-headers">tapestry.cors-expose-headers</h3><p><strong>SymbolConstants.CORS_EXPOSE_HEADERS</strong>
 &#8211; Value to be used in the <code>Access-Control-Expose-Headers</code> in 
CORS preflight request responses. This is used by the default implementation of 
<code>CorsHandlerHelper.configureExposeHeaders(HttpServletResponse)</code>, 
which only sets the header if the value isn't empty. Default value is the empty 
string.</p>
+
+<div class="aui-message aui-message-info macro-since"><b 
class="param-since">Added in 5.8.2</b>
+
+
+    <div class="param-body"></div>
+
+</div><h3 
id="CORS(CrossOriginResourceSharing)Support(5.8.2+)-tapestry.cors-max-age">tapestry.cors-max-age</h3><p><strong>SymbolConstants.CORS_MAX_AGE</strong>
 &#8211; Value to be used in the <code>Access-Control-Max-Age</code>&#160;in 
CORS preflight request responses. This is used by the default implementation of 
<code>CorsHandlerHelper.configureMaxAge(HttpServletResponse)</code>, which only 
sets the header if the value isn't empty. Default value is the empty string.</p>
+
+<div class="aui-message aui-message-info macro-since"><b 
class="param-since">Added in 5.8.2</b>
+
+
+    <div class="param-body"></div>
+
+</div><p></p></div>
+            </div>
+            <!-- /// Content End -->
+          </div>
+        </div>
+      </div>
+    </div>
+  </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"><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=217387551";
 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/documentation.html
==============================================================================
--- websites/production/tapestry/content/documentation.html (original)
+++ websites/production/tapestry/content/documentation.html Sun Jun 19 15:11:52 
2022
@@ -142,7 +142,7 @@
             
             <!-- /// Content Start -->
             <div id="content">
-                            <div id="ConfluenceContent"><div 
style="float:right;margin-left:1em"><h2 id="Documentation-AllTopics">All 
Topics</h2><ul class="childpages-macro"><li><a 
href="introduction.html">Introduction</a></li><li><a 
href="getting-started.html">Getting Started</a></li><li><a 
href="principles.html">Principles</a></li><li><a 
href="tapestry-tutorial.html">Tapestry Tutorial</a><ul 
class="childpages-macro"><li><a 
href="dependencies-tools-and-plugins.html">Dependencies, Tools and 
Plugins</a></li><li><a href="creating-the-skeleton-application.html">Creating 
The Skeleton Application</a></li><li><a 
href="exploring-the-project.html">Exploring the Project</a></li><li><a 
href="implementing-the-hi-lo-guessing-game.html">Implementing the Hi-Lo 
Guessing Game</a></li><li><a 
href="using-beaneditform-to-create-user-forms.html">Using BeanEditForm To 
Create User Forms</a></li><li><a 
href="using-tapestry-with-hibernate.html">Using Tapestry With 
Hibernate</a></li></ul></li><li><a href="u
 ser-guide.html">User Guide</a><ul class="childpages-macro"><li><a 
href="supported-environments-and-versions.html">Supported Environments and 
Versions</a></li><li><a href="project-layout.html">Project 
Layout</a></li><li><a href="configuration.html">Configuration</a></li><li><a 
href="runtime-exceptions.html">Runtime Exceptions</a></li><li><a 
href="class-reloading.html">Class Reloading</a></li><li><a 
href="component-reference.html">Component Reference</a></li><li><a 
href="annotations.html">Annotations</a></li><li><a 
href="component-classes.html">Component Classes</a></li><li><a 
href="component-templates.html">Component Templates</a></li><li><a 
href="property-expressions.html">Property Expressions</a></li><li><a 
href="component-parameters.html">Component Parameters</a></li><li><a 
href="parameter-type-coercion.html">Parameter Type Coercion</a></li><li><a 
href="layout-component.html">Layout Component</a></li><li><a 
href="component-mixins.html">Component Mixins</a><ul class="childpages-mac
 ro"><li><a href="built-in-mixins.html">Built-in 
Mixins</a></li></ul></li><li><a href="page-navigation.html">Page 
Navigation</a></li><li><a href="localization.html">Localization</a></li><li><a 
href="page-life-cycle.html">Page Life Cycle</a></li><li><a 
href="request-processing.html">Request Processing</a></li><li><a 
href="component-rendering.html">Component Rendering</a></li><li><a 
href="component-events.html">Component Events</a></li><li><a 
href="url-rewriting.html">URL rewriting</a></li><li><a 
href="dom.html">DOM</a></li><li><a href="response-compression.html">Response 
Compression</a></li><li><a href="security.html">Security</a></li><li><a 
href="https.html">HTTPS</a></li><li><a 
href="content-type-and-markup.html">Content Type and Markup</a></li><li><a 
href="persistent-page-data.html">Persistent Page Data</a></li><li><a 
href="session-storage.html">Session Storage</a><ul 
class="childpages-macro"><li><a href="clustering-issues.html">Clustering 
Issues</a></li></ul></li><li><a href="inje
 ction.html">Injection</a></li><li><a 
href="environmental-services.html">Environmental Services</a></li><li><a 
href="css.html">CSS</a></li><li><a href="assets.html">Assets</a></li><li><a 
href="forms-and-validation.html">Forms and Validation</a></li><li><a 
href="beaneditform-guide.html">BeanEditForm Guide</a></li><li><a 
href="uploading-files.html">Uploading Files</a></li><li><a 
href="logging.html">Logging</a></li><li><a 
href="unit-testing-pages-or-components.html">Unit testing pages or 
components</a></li><li><a href="integration-testing.html">Integration 
Testing</a></li><li><a href="development-dashboard.html">Development 
Dashboard</a></li><li><a href="modules.html">Modules</a><ul 
class="childpages-macro"><li><a href="built-in-modules.html">Built In 
Modules</a></li><li><a href="third-party-modules.html">Third Party 
Modules</a></li></ul></li><li><a href="ioc.html">IOC</a><ul 
class="childpages-macro"><li><a href="tapestry-ioc-overview.html">Tapestry IoC 
Overview</a></li><li><a href="tap
 estry-ioc-modules.html">Tapestry IoC Modules</a></li><li><a 
href="defining-tapestry-ioc-services.html">Defining Tapestry IOC 
Services</a></li><li><a href="service-advisors.html">Service 
Advisors</a></li><li><a href="tapestry-ioc-decorators.html">Tapestry IoC 
Decorators</a></li><li><a href="tapestry-ioc-configuration.html">Tapestry IoC 
Configuration</a></li><li><a href="case-insensitivity.html">Case 
Insensitivity</a></li><li><a href="autoloading-modules.html">Autoloading 
Modules</a></li><li><a href="service-implementation-reloading.html">Service 
Implementation Reloading</a></li><li><a 
href="ordering-by-constraints.html">Ordering by Constraints</a></li><li><a 
href="symbols.html">Symbols</a></li><li><a 
href="chainbuilder-service.html">ChainBuilder Service</a></li><li><a 
href="pipelinebuilder-service.html">PipelineBuilder Service</a></li><li><a 
href="shadowbuilder-service.html">ShadowBuilder Service</a></li><li><a 
href="strategybuilder-service.html">StrategyBuilder Service</a></li><li><
 a href="injection-in-detail.html">Injection in Detail</a></li><li><a 
href="object-providers.html">Object Providers</a></li><li><a 
href="service-serialization.html">Service Serialization</a></li><li><a 
href="type-coercion.html">Type Coercion</a></li><li><a 
href="starting-the-ioc-registry.html">Starting the IoC Registry</a></li><li><a 
href="registry-startup.html">Registry Startup</a></li><li><a 
href="parallel-execution.html">Parallel Execution</a></li><li><a 
href="logging-in-tapestry.html">Logging in Tapestry</a></li><li><a 
href="using-jsr-330-standard-annotations.html">Using JSR 330 standard 
annotations</a></li><li><a href="operation-tracker.html">Operation 
Tracker</a></li></ul></li><li><a href="hibernate-core.html">Hibernate - 
Core</a><ul class="childpages-macro"><li><a 
href="hibernate-core-conf.html">Hibernate - Core - Conf</a></li><li><a 
href="hibernate.html">Hibernate</a></li><li><a 
href="hibernate-user-guide.html">Hibernate User Guide</a></li></ul></li><li><a 
href="integrating-w
 ith-spring-framework.html">Integrating with Spring Framework</a></li><li><a 
href="bean-validation.html">Bean Validation</a></li><li><a 
href="component-report.html">Component Report</a></li><li><a 
href="aliases.html">Aliases</a></li><li><a 
href="integrating-with-jpa.html">Integrating with JPA</a></li><li><a 
href="client-side-javascript.html">Client-Side JavaScript</a><ul 
class="childpages-macro"><li><a href="javascript-modules.html">JavaScript 
Modules</a></li><li><a href="coffeescript.html">CoffeeScript</a></li><li><a 
href="typescript.html">TypeScript</a></li><li><a 
href="legacy-javascript.html">Legacy JavaScript</a></li><li><a 
href="ajax-and-zones.html">Ajax and Zones</a></li></ul></li><li><a 
href="rest-support-580.html">REST Support (5.8.0+)</a></li></ul></li><li><a 
href="cheat-sheets.html">Cheat Sheets</a><ul class="childpages-macro"><li><a 
href="application-module-class-cheat-sheet.html">Application Module Class Cheat 
Sheet</a></li><li><a href="component-cheat-sheet.html">Compone
 nt Cheat Sheet</a></li><li><a href="tapestry-for-jsf-users.html">Tapestry for 
JSF Users</a></li></ul></li><li><a href="cookbook.html">Cookbook</a><ul 
class="childpages-macro"><li><a href="default-parameter.html">Default 
Parameter</a></li><li><a href="overriding-exception-reporting.html">Overriding 
Exception Reporting</a></li><li><a href="error-page-recipe.html">Error Page 
Recipe</a></li><li><a href="supporting-informal-parameters.html">Supporting 
Informal Parameters</a></li><li><a href="component-libraries.html">Component 
Libraries</a></li><li><a href="switching-cases.html">Switching 
Cases</a></li><li><a href="enum-parameter-recipe.html">Enum Parameter 
Recipe</a></li><li><a href="extending-the-if-component.html">Extending the If 
Component</a></li><li><a 
href="meta-programming-page-content.html">Meta-Programming Page 
Content</a></li><li><a href="using-select-with-a-list.html">Using Select With a 
List</a></li><li><a href="ioc-cookbook.html">IoC cookbook</a><ul 
class="childpages-macro"
 ><li><a href="ioc-cookbook-basic-services-and-injection.html">IoC Cookbook - 
 >Basic Services and Injection</a></li><li><a 
 >href="ioc-cookbook-overriding-ioc-services.html">IoC Cookbook - Overriding 
 >IoC Services</a></li><li><a href="ioc-cookbook-patterns.html">IoC Cookbook - 
 >Patterns</a></li><li><a href="ioc-cookbook-service-configurations.html">IoC 
 >cookbook - Service Configurations</a></li></ul></li><li><a 
 >href="performance-and-clustering.html">Performance and 
 >Clustering</a></li><li><a href="google-app-engine.html">Google App 
 >Engine</a></li></ul></li><li><a 
 >href="frequently-asked-questions.html">Frequently Asked Questions</a><ul 
 >class="childpages-macro"><li><a href="general-questions.html">General 
 >Questions</a></li><li><a href="templating-and-markup-faq.html">Templating and 
 >Markup FAQ</a></li><li><a href="page-and-component-classes-faq.html">Page And 
 >Component Classes FAQ</a></li><li><a 
 >href="forms-and-form-components-faq.html">Forms and Form Components 
 >FAQ</a></li><li><a href="beaned
 itform-faq.html">BeanEditForm FAQ</a></li><li><a 
href="link-components-faq.html">Link Components FAQ</a></li><li><a 
href="component-events-faq.html">Component Events FAQ</a></li><li><a 
href="javascript-faq.html">JavaScript FAQ</a></li><li><a 
href="ajax-components-faq.html">Ajax Components FAQ</a></li><li><a 
href="injection-faq.html">Injection FAQ</a></li><li><a 
href="tapestry-inversion-of-control-faq.html">Tapestry Inversion of Control 
FAQ</a></li><li><a href="security-faq.html">Security FAQ</a></li><li><a 
href="integration-with-existing-applications.html">Integration with existing 
applications</a></li><li><a href="request-processing-faq.html">Request 
Processing FAQ</a></li><li><a 
href="limitations.html">Limitations</a></li><li><a 
href="specific-errors-faq.html">Specific Errors FAQ</a></li><li><a 
href="hibernate-support-faq.html">Hibernate Support FAQ</a></li><li><a 
href="maven-support-faq.html">Maven Support FAQ</a></li><li><a 
href="release-upgrade-faq.html">Release Upgrade FAQ</a>
 </li></ul></li><li><a href="release-notes.html">Release Notes</a><ul 
class="childpages-macro"><li><a href="how-to-upgrade.html">How to 
Upgrade</a></li><li><a href="release-notes-50.html">Release Notes 
5.0</a></li><li><a href="release-notes-51.html">Release Notes 
5.1</a></li><li><a href="release-notes-52.html">Release Notes 5.2</a><ul 
class="childpages-macro"><li><a href="release-notes-520.html">Release Notes 
5.2.0</a></li><li><a href="release-notes-521.html">Release Notes 
5.2.1</a></li><li><a href="release-notes-522.html">Release Notes 
5.2.2</a></li><li><a href="release-notes-523.html">Release Notes 
5.2.3</a></li><li><a href="release-notes-524.html">Release Notes 
5.2.4</a></li><li><a href="release-notes-525.html">Release Notes 
5.2.5</a></li><li><a href="release-notes-526.html">Release Notes 
5.2.6</a></li></ul></li><li><a href="release-notes-53.html">Release Notes 
5.3</a></li><li><a href="release-notes-531.html">Release Notes 
5.3.1</a></li><li><a href="release-notes-532.html">Release
  Notes 5.3.2</a></li><li><a href="release-notes-533.html">Release Notes 
5.3.3</a></li><li><a href="release-notes-534.html">Release Notes 
5.3.4</a></li><li><a href="release-notes-535.html">Release Notes 
5.3.5</a></li><li><a href="release-notes-536.html">Release Notes 
5.3.6</a></li><li><a href="release-notes-537.html">Release Notes 
5.3.7</a></li><li><a href="release-notes-538.html">Release Notes 
5.3.8</a></li><li><a href="release-notes-54.html">Release Notes 
5.4</a></li><li><a href="release-notes-541.html">Release Notes 
5.4.1</a></li><li><a href="release-notes-542.html">Release Notes 
5.4.2</a></li><li><a href="release-notes-543.html">Release Notes 
5.4.3</a></li><li><a href="release-notes-544.html">Release Notes 
5.4.4</a></li><li><a href="release-notes-545.html">Release Notes 
5.4.5</a></li><li><a href="release-notes-550.html">Release Notes 
5.5.0</a></li><li><a href="release-notes-560.html">Release Notes 
5.6.0</a></li><li><a href="release-notes-561.html">Release Notes 
5.6.1</a></li><li>
 <a href="release-notes-562.html">Release Notes 5.6.2</a></li><li><a 
href="release-notes-563.html">Release Notes 5.6.3</a></li><li><a 
href="release-notes-570.html">Release Notes 5.7.0</a></li><li><a 
href="release-notes-571.html">Release Notes 5.7.1</a></li><li><a 
href="release-notes-572.html">Release Notes 5.7.2</a></li><li><a 
href="release-notes-564.html">Release Notes 5.6.4</a></li><li><a 
href="release-notes-573.html">Release Notes 5.7.3</a></li><li><a 
href="release-notes-580.html">Release Notes 5.8.0</a></li><li><a 
href="release-notes-581.html">Release Notes 5.8.1</a></li></ul></li><li><a 
href="javascript-rewrite-in-54.html">JavaScript Rewrite in 5.4</a></li><li><a 
href="support.html">Support</a></li><li><a 
href="developer-information.html">Developer Information</a><ul 
class="childpages-macro"><li><a 
href="building-tapestry-from-source.html">Building Tapestry from 
Source</a></li><li><a href="confluence-site-setup.html">Confluence Site 
Setup</a><ul class="childpages-macro"><li><a h
 ref="since-and-deprecated-user-macros.html">Since and Deprecated User 
Macros</a></li></ul></li><li><a href="developer-bible.html">Developer 
Bible</a></li><li><a href="release-process.html">Release Process</a></li><li><a 
href="the-tapestry-jail.html">The tapestry jail</a></li><li><a 
href="version-numbers.html">Version Numbers</a></li></ul></li></ul></div>
+                            <div id="ConfluenceContent"><div 
style="float:right;margin-left:1em"><h2 id="Documentation-AllTopics">All 
Topics</h2><ul class="childpages-macro"><li><a 
href="introduction.html">Introduction</a></li><li><a 
href="getting-started.html">Getting Started</a></li><li><a 
href="principles.html">Principles</a></li><li><a 
href="tapestry-tutorial.html">Tapestry Tutorial</a><ul 
class="childpages-macro"><li><a 
href="dependencies-tools-and-plugins.html">Dependencies, Tools and 
Plugins</a></li><li><a href="creating-the-skeleton-application.html">Creating 
The Skeleton Application</a></li><li><a 
href="exploring-the-project.html">Exploring the Project</a></li><li><a 
href="implementing-the-hi-lo-guessing-game.html">Implementing the Hi-Lo 
Guessing Game</a></li><li><a 
href="using-beaneditform-to-create-user-forms.html">Using BeanEditForm To 
Create User Forms</a></li><li><a 
href="using-tapestry-with-hibernate.html">Using Tapestry With 
Hibernate</a></li></ul></li><li><a href="u
 ser-guide.html">User Guide</a><ul class="childpages-macro"><li><a 
href="supported-environments-and-versions.html">Supported Environments and 
Versions</a></li><li><a href="project-layout.html">Project 
Layout</a></li><li><a href="configuration.html">Configuration</a></li><li><a 
href="runtime-exceptions.html">Runtime Exceptions</a></li><li><a 
href="class-reloading.html">Class Reloading</a></li><li><a 
href="component-reference.html">Component Reference</a></li><li><a 
href="annotations.html">Annotations</a></li><li><a 
href="component-classes.html">Component Classes</a></li><li><a 
href="component-templates.html">Component Templates</a></li><li><a 
href="property-expressions.html">Property Expressions</a></li><li><a 
href="component-parameters.html">Component Parameters</a></li><li><a 
href="parameter-type-coercion.html">Parameter Type Coercion</a></li><li><a 
href="layout-component.html">Layout Component</a></li><li><a 
href="component-mixins.html">Component Mixins</a><ul class="childpages-mac
 ro"><li><a href="built-in-mixins.html">Built-in 
Mixins</a></li></ul></li><li><a href="page-navigation.html">Page 
Navigation</a></li><li><a href="localization.html">Localization</a></li><li><a 
href="page-life-cycle.html">Page Life Cycle</a></li><li><a 
href="request-processing.html">Request Processing</a></li><li><a 
href="component-rendering.html">Component Rendering</a></li><li><a 
href="component-events.html">Component Events</a></li><li><a 
href="url-rewriting.html">URL rewriting</a></li><li><a 
href="dom.html">DOM</a></li><li><a href="response-compression.html">Response 
Compression</a></li><li><a href="security.html">Security</a></li><li><a 
href="https.html">HTTPS</a></li><li><a 
href="content-type-and-markup.html">Content Type and Markup</a></li><li><a 
href="persistent-page-data.html">Persistent Page Data</a></li><li><a 
href="session-storage.html">Session Storage</a><ul 
class="childpages-macro"><li><a href="clustering-issues.html">Clustering 
Issues</a></li></ul></li><li><a href="inje
 ction.html">Injection</a></li><li><a 
href="environmental-services.html">Environmental Services</a></li><li><a 
href="css.html">CSS</a></li><li><a href="assets.html">Assets</a></li><li><a 
href="forms-and-validation.html">Forms and Validation</a></li><li><a 
href="beaneditform-guide.html">BeanEditForm Guide</a></li><li><a 
href="uploading-files.html">Uploading Files</a></li><li><a 
href="logging.html">Logging</a></li><li><a 
href="unit-testing-pages-or-components.html">Unit testing pages or 
components</a></li><li><a href="integration-testing.html">Integration 
Testing</a></li><li><a href="development-dashboard.html">Development 
Dashboard</a></li><li><a href="modules.html">Modules</a><ul 
class="childpages-macro"><li><a href="built-in-modules.html">Built In 
Modules</a></li><li><a href="third-party-modules.html">Third Party 
Modules</a></li></ul></li><li><a href="ioc.html">IOC</a><ul 
class="childpages-macro"><li><a href="tapestry-ioc-overview.html">Tapestry IoC 
Overview</a></li><li><a href="tap
 estry-ioc-modules.html">Tapestry IoC Modules</a></li><li><a 
href="defining-tapestry-ioc-services.html">Defining Tapestry IOC 
Services</a></li><li><a href="service-advisors.html">Service 
Advisors</a></li><li><a href="tapestry-ioc-decorators.html">Tapestry IoC 
Decorators</a></li><li><a href="tapestry-ioc-configuration.html">Tapestry IoC 
Configuration</a></li><li><a href="case-insensitivity.html">Case 
Insensitivity</a></li><li><a href="autoloading-modules.html">Autoloading 
Modules</a></li><li><a href="service-implementation-reloading.html">Service 
Implementation Reloading</a></li><li><a 
href="ordering-by-constraints.html">Ordering by Constraints</a></li><li><a 
href="symbols.html">Symbols</a></li><li><a 
href="chainbuilder-service.html">ChainBuilder Service</a></li><li><a 
href="pipelinebuilder-service.html">PipelineBuilder Service</a></li><li><a 
href="shadowbuilder-service.html">ShadowBuilder Service</a></li><li><a 
href="strategybuilder-service.html">StrategyBuilder Service</a></li><li><
 a href="injection-in-detail.html">Injection in Detail</a></li><li><a 
href="object-providers.html">Object Providers</a></li><li><a 
href="service-serialization.html">Service Serialization</a></li><li><a 
href="type-coercion.html">Type Coercion</a></li><li><a 
href="starting-the-ioc-registry.html">Starting the IoC Registry</a></li><li><a 
href="registry-startup.html">Registry Startup</a></li><li><a 
href="parallel-execution.html">Parallel Execution</a></li><li><a 
href="logging-in-tapestry.html">Logging in Tapestry</a></li><li><a 
href="using-jsr-330-standard-annotations.html">Using JSR 330 standard 
annotations</a></li><li><a href="operation-tracker.html">Operation 
Tracker</a></li></ul></li><li><a href="hibernate-core.html">Hibernate - 
Core</a><ul class="childpages-macro"><li><a 
href="hibernate-core-conf.html">Hibernate - Core - Conf</a></li><li><a 
href="hibernate.html">Hibernate</a></li><li><a 
href="hibernate-user-guide.html">Hibernate User Guide</a></li></ul></li><li><a 
href="integrating-w
 ith-spring-framework.html">Integrating with Spring Framework</a></li><li><a 
href="bean-validation.html">Bean Validation</a></li><li><a 
href="component-report.html">Component Report</a></li><li><a 
href="aliases.html">Aliases</a></li><li><a 
href="integrating-with-jpa.html">Integrating with JPA</a></li><li><a 
href="client-side-javascript.html">Client-Side JavaScript</a><ul 
class="childpages-macro"><li><a href="javascript-modules.html">JavaScript 
Modules</a></li><li><a href="coffeescript.html">CoffeeScript</a></li><li><a 
href="typescript.html">TypeScript</a></li><li><a 
href="legacy-javascript.html">Legacy JavaScript</a></li><li><a 
href="ajax-and-zones.html">Ajax and Zones</a></li></ul></li><li><a 
href="rest-support-580.html">REST Support (5.8.0+)</a></li><li><a 
href="cors-cross-origin-resource-sharing-support-582.html">CORS (Cross-Origin 
Resource Sharing) Support (5.8.2+)</a></li></ul></li><li><a 
href="cheat-sheets.html">Cheat Sheets</a><ul class="childpages-macro"><li><a 
href="applicat
 ion-module-class-cheat-sheet.html">Application Module Class Cheat 
Sheet</a></li><li><a href="component-cheat-sheet.html">Component Cheat 
Sheet</a></li><li><a href="tapestry-for-jsf-users.html">Tapestry for JSF 
Users</a></li></ul></li><li><a href="cookbook.html">Cookbook</a><ul 
class="childpages-macro"><li><a href="default-parameter.html">Default 
Parameter</a></li><li><a href="overriding-exception-reporting.html">Overriding 
Exception Reporting</a></li><li><a href="error-page-recipe.html">Error Page 
Recipe</a></li><li><a href="supporting-informal-parameters.html">Supporting 
Informal Parameters</a></li><li><a href="component-libraries.html">Component 
Libraries</a></li><li><a href="switching-cases.html">Switching 
Cases</a></li><li><a href="enum-parameter-recipe.html">Enum Parameter 
Recipe</a></li><li><a href="extending-the-if-component.html">Extending the If 
Component</a></li><li><a 
href="meta-programming-page-content.html">Meta-Programming Page 
Content</a></li><li><a href="using-select
 -with-a-list.html">Using Select With a List</a></li><li><a 
href="ioc-cookbook.html">IoC cookbook</a><ul class="childpages-macro"><li><a 
href="ioc-cookbook-basic-services-and-injection.html">IoC Cookbook - Basic 
Services and Injection</a></li><li><a 
href="ioc-cookbook-overriding-ioc-services.html">IoC Cookbook - Overriding IoC 
Services</a></li><li><a href="ioc-cookbook-patterns.html">IoC Cookbook - 
Patterns</a></li><li><a href="ioc-cookbook-service-configurations.html">IoC 
cookbook - Service Configurations</a></li></ul></li><li><a 
href="performance-and-clustering.html">Performance and 
Clustering</a></li><li><a href="google-app-engine.html">Google App 
Engine</a></li></ul></li><li><a 
href="frequently-asked-questions.html">Frequently Asked Questions</a><ul 
class="childpages-macro"><li><a href="general-questions.html">General 
Questions</a></li><li><a href="templating-and-markup-faq.html">Templating and 
Markup FAQ</a></li><li><a href="page-and-component-classes-faq.html">Page And 
Componen
 t Classes FAQ</a></li><li><a href="forms-and-form-components-faq.html">Forms 
and Form Components FAQ</a></li><li><a 
href="beaneditform-faq.html">BeanEditForm FAQ</a></li><li><a 
href="link-components-faq.html">Link Components FAQ</a></li><li><a 
href="component-events-faq.html">Component Events FAQ</a></li><li><a 
href="javascript-faq.html">JavaScript FAQ</a></li><li><a 
href="ajax-components-faq.html">Ajax Components FAQ</a></li><li><a 
href="injection-faq.html">Injection FAQ</a></li><li><a 
href="tapestry-inversion-of-control-faq.html">Tapestry Inversion of Control 
FAQ</a></li><li><a href="security-faq.html">Security FAQ</a></li><li><a 
href="integration-with-existing-applications.html">Integration with existing 
applications</a></li><li><a href="request-processing-faq.html">Request 
Processing FAQ</a></li><li><a 
href="limitations.html">Limitations</a></li><li><a 
href="specific-errors-faq.html">Specific Errors FAQ</a></li><li><a 
href="hibernate-support-faq.html">Hibernate Support FAQ</a></
 li><li><a href="maven-support-faq.html">Maven Support FAQ</a></li><li><a 
href="release-upgrade-faq.html">Release Upgrade FAQ</a></li></ul></li><li><a 
href="release-notes.html">Release Notes</a><ul class="childpages-macro"><li><a 
href="how-to-upgrade.html">How to Upgrade</a></li><li><a 
href="release-notes-50.html">Release Notes 5.0</a></li><li><a 
href="release-notes-51.html">Release Notes 5.1</a></li><li><a 
href="release-notes-52.html">Release Notes 5.2</a><ul 
class="childpages-macro"><li><a href="release-notes-520.html">Release Notes 
5.2.0</a></li><li><a href="release-notes-521.html">Release Notes 
5.2.1</a></li><li><a href="release-notes-522.html">Release Notes 
5.2.2</a></li><li><a href="release-notes-523.html">Release Notes 
5.2.3</a></li><li><a href="release-notes-524.html">Release Notes 
5.2.4</a></li><li><a href="release-notes-525.html">Release Notes 
5.2.5</a></li><li><a href="release-notes-526.html">Release Notes 
5.2.6</a></li></ul></li><li><a href="release-notes-53.html">Release
  Notes 5.3</a></li><li><a href="release-notes-531.html">Release Notes 
5.3.1</a></li><li><a href="release-notes-532.html">Release Notes 
5.3.2</a></li><li><a href="release-notes-533.html">Release Notes 
5.3.3</a></li><li><a href="release-notes-534.html">Release Notes 
5.3.4</a></li><li><a href="release-notes-535.html">Release Notes 
5.3.5</a></li><li><a href="release-notes-536.html">Release Notes 
5.3.6</a></li><li><a href="release-notes-537.html">Release Notes 
5.3.7</a></li><li><a href="release-notes-538.html">Release Notes 
5.3.8</a></li><li><a href="release-notes-54.html">Release Notes 
5.4</a></li><li><a href="release-notes-541.html">Release Notes 
5.4.1</a></li><li><a href="release-notes-542.html">Release Notes 
5.4.2</a></li><li><a href="release-notes-543.html">Release Notes 
5.4.3</a></li><li><a href="release-notes-544.html">Release Notes 
5.4.4</a></li><li><a href="release-notes-545.html">Release Notes 
5.4.5</a></li><li><a href="release-notes-550.html">Release Notes 
5.5.0</a></li><li><a
  href="release-notes-560.html">Release Notes 5.6.0</a></li><li><a 
href="release-notes-561.html">Release Notes 5.6.1</a></li><li><a 
href="release-notes-562.html">Release Notes 5.6.2</a></li><li><a 
href="release-notes-563.html">Release Notes 5.6.3</a></li><li><a 
href="release-notes-570.html">Release Notes 5.7.0</a></li><li><a 
href="release-notes-571.html">Release Notes 5.7.1</a></li><li><a 
href="release-notes-572.html">Release Notes 5.7.2</a></li><li><a 
href="release-notes-564.html">Release Notes 5.6.4</a></li><li><a 
href="release-notes-573.html">Release Notes 5.7.3</a></li><li><a 
href="release-notes-580.html">Release Notes 5.8.0</a></li><li><a 
href="release-notes-581.html">Release Notes 5.8.1</a></li><li><a 
href="release-notes-582.html">Release Notes 5.8.2</a></li></ul></li><li><a 
href="javascript-rewrite-in-54.html">JavaScript Rewrite in 5.4</a></li><li><a 
href="support.html">Support</a></li><li><a 
href="developer-information.html">Developer Information</a><ul 
class="childpages-macr
 o"><li><a href="building-tapestry-from-source.html">Building Tapestry from 
Source</a></li><li><a href="confluence-site-setup.html">Confluence Site 
Setup</a><ul class="childpages-macro"><li><a 
href="since-and-deprecated-user-macros.html">Since and Deprecated User 
Macros</a></li></ul></li><li><a href="developer-bible.html">Developer 
Bible</a></li><li><a href="release-process.html">Release Process</a></li><li><a 
href="the-tapestry-jail.html">The tapestry jail</a></li><li><a 
href="version-numbers.html">Version Numbers</a></li></ul></li></ul></div>
 
 
 <p>Welcome to the Tapestry 5 Documentation, a collection of guides to teach 
beginners the basics and help experienced developers deepen their understanding 
of Tapestry's power.</p><h1 
id="Documentation-Highlights">Highlights</h1><p>These are the most useful 
starting points for common needs.</p><div class="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 
href="introduction.html">Introduction</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>An overview of Tapestry's general approach and 
philosophy</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a href="getting-started.html">Getting 
Started</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A quick 
guide to creating your first Tapestry project, using Maven</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a href="tapestry-tutoria
 l.html">Tapestry Tutorial</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Picks up where <em>Getting Started</em> leaves off, 
explaining in greater detail how Tapestry works</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a href="user-guide.html">User 
Guide</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Detailed 
articles on every Tapestry feature</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a href="community.html">Community</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Getting support, mailing lists, 
JIRA, outside resources, and access to the source</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a 
href="cookbook.html">Cookbook</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Guides to doing common things with 
Tapestry</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><strong><a 
href="frequently-asked-questions.html">FAQ</a></stron
 g></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A quick place 
to check for common problems and solutions</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p><a 
href="component-cheat-sheet.html">Component Cheat Sheet</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>A concise guide to component 
classes, methods and annotations</p></td></tr></tbody></table></div><h1 
id="Documentation-APIandComponentReference">API and Component 
Reference</h1><div class="table-wrap"><table class="table table-bordered 
table-responsive"><colgroup span="1"><col span="1" style="width: 18.81%;"><col 
span="1" style="width: 9.02111%;"><col span="1" style="width: 9.02111%;"><col 
span="1" style="width: 9.02111%;"><col span="1" style="width: 9.78887%;"><col 
span="1" style="width: 9.78887%;"><col span="1" style="width: 9.78887%;"><col 
span="1" style="width: 9.78887%;"><col span="1" style="width: 14.9712%;"><col 
span="1"></colgroup><tbody><tr><th colspan="1" rowspan="1"
  class="confluenceTh"><p>API (Javadoc):</p></th><td colspan="1" rowspan="1" 
class="confluenceTd"><p>5.0<sup>1</sup></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>5.1<sup>1</sup></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>5.2<sup>1</sup></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a class="external-link" 
href="http://tapestry.apache.org/5.3.7/apidocs/";>5.3.8</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><a class="external-link" 
href="http://tapestry.apache.org/5.4";>5.4</a></td><td colspan="1" rowspan="1" 
class="confluenceTd"><a class="external-link" 
href="http://tapestry.apache.org/5.5.0";>5.5</a></td><td colspan="1" rowspan="1" 
class="confluenceTd"><a class="external-link" 
href="http://tapestry.apache.org/5.6.3";>5.6.3</a></td><td colspan="1" 
rowspan="1" class="confluenceTd"><a class="external-link" 
href="http://tapestry.apache.org/5.7.3";>5.7.3</a></td><td colspan="1" 
rowspan="1" class="confluenceTd"><a class="external-lin
 k" href="http://tapestry.apache.org/current";>5.8.1 
(current)</a></td></tr><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Component Reference:</p></th><td colspan="1" 
rowspan="1" class="confluenceTd"><p>5.0<sup>1</sup></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>5.1<sup>1</sup></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>5.2<sup>1</sup></p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p><em><span class="confluence-link">see 
5.7.2</span></em></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><em>see 5.7.2</em></td><td colspan="1" rowspan="1" 
class="confluenceTd">see 5.7.2</td><td colspan="1" rowspan="1" 
class="confluenceTd">see 5.7.2</td><td colspan="1" rowspan="1" 
class="confluenceTd"><a class="external-link" 
href="https://tapestry.apache.org/component-reference.html";>5.7.3</a></td><td 
colspan="1" rowspan="1" class="confluenceTd"><a class="external-link" 
href="https://tapestry.apache.org/component-reference.html";>5.8.1</a></td>
 </tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Release 
Notes:</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><a 
href="release-notes-50.html">5.0</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a href="release-notes-51.html">5.1</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p><a 
href="release-notes-52.html">5.2</a></p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p><a href="release-notes-538.html">5.3.8</a></p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><a 
href="release-notes-54.html">5.4</a></td><td colspan="1" rowspan="1" 
class="confluenceTd"><a href="release-notes-550.html">5.5</a></td><td 
colspan="1" rowspan="1" class="confluenceTd"><a 
href="release-notes-560.html">5.6</a></td><td colspan="1" rowspan="1" 
class="confluenceTd"><a href="release-notes-570.html">5.7.0</a></td><td 
colspan="1" rowspan="1" class="confluenceTd"><a 
href="release-notes-581.html">5.8.1</a></td></tr></tbody></table></div><p><sup>1<
 /sup> needs to be built manually from archived sources at <a 
class="external-link" 
href="http://archive.apache.org/dist/tapestry/";>http://archive.apache.org/dist/tapestry/</a>.</p><h1
 id="Documentation-UserGuide">User Guide</h1><p><span 
class="confluence-anchor-link" id="Documentation-userguide"></span>The <a 
href="user-guide.html">User Guide</a> consists of over 75 pages of detailed 
information on the concepts behind Tapestry and instructions on how to use this 
powerful tool. Highlights include:</p><ul><li class="confluence-link"><a 
href="client-side-javascript.html">Client-Side JavaScript</a> and <a 
href="ajax-and-zones.html">Ajax and Zones</a> describe Tapestry's built-in 
support for dynamic in-page behavior.</li><li><a 
href="integrating-with-spring-framework.html">Integrating with Spring 
Framework</a> describes how to integrate Spring into your Tapestry 
application.</li><li><a href="hibernate.html">Tapestry/Hibernate Integration 
Library</a> provides out-of-the-box support for us
 ing Hibernate 3.</li><li><a href="bean-validation.html">JSR 303: Bean 
Validation</a> shows how to use standard annotations for validation</li><li><a 
href="integration-testing.html">Integration Testing</a> shows how to test your 
application with Selenium.</li></ul><p><a href="user-guide.html">More 
topics</a>...</p><h1 
id="Documentation-BlogsbyTapestryDevelopersandtheCommunity">Blogs by Tapestry 
Developers and the Community</h1><ul><li><a class="external-link" 
href="http://tapestryjava.blogspot.com/"; rel="nofollow">Tapestry 
Central</a>&#160;was Howard Lewis Ship's blog from 2003-2013. As the creator of 
Tapestry, he provides valuable insights into Tapestry's latest features and 
future directions.</li><li><a class="external-link" 
href="https://web.archive.org/web/20160410090538/http://blog.tapestry5.de/"; 
rel="nofollow">Igor Drobiazko's blog</a> (committer &amp; PMC) contains guides 
on Tapestry 5 development (2009-2013).</li><li><a class="external-link" 
href="http://tawus.wordpress.com/";
  rel="nofollow">Java Magic</a> (by Taha Hafeez, committer) presents a series 
of tutorials illustrating some of the more advanced Tapestry and Plastic 
features and techniques (2011-2012).</li></ul><h1 
id="Documentation-BooksonTapestry">Books on Tapestry</h1><p>There are at least 
9 published <a href="books.html">books on Tapestry</a>, including three on 
Tapestry 5.</p><h1 id="Documentation-TapestryPresentations">Tapestry 
Presentations</h1><ul><li>Mark Shead's <a class="external-link" 
href="http://blog.markshead.com/900/tapestry-5-10-minute-demo/"; 
rel="nofollow">10 Minute Demo</a>&#160; (Video, 2011)</li><li>H. L. Ship's <a 
class="external-link" href="https://www.youtube.com/watch?v=5BGt7eMFC20"; 
rel="nofollow">Tapestry 5.4 - Bootstrap-enhanced Exception 
Reporting</a>&#160;(Video, 2012)</li><li><a class="external-link" 
href="https://web.archive.org/web/20170302154020/http://blog.tapestry5.de/wp-content/uploads/2010/06/JSF-2.0-vs-Tapestry-5.pdf";
 rel="nofollow">JavaServer Faces 2.0 vs. Ta
 pestry 5</a> (PDF, 2010) A Head-to-Head Comparison by Igor Drobiazko at Jazoon 
2010</li></ul><p><a href="presentations.html">More presentations</a> ...</p><h1 
id="Documentation-TapestryWikis">Tapestry Wikis</h1><ul><li><a 
href="https://cwiki.apache.org/confluence/x/VCFkAQ";>Documentation Source 
wiki</a> (Confluence) &#8211; the wiki used as the content editor for the 
official Tapestry documentation</li><li><a 
href="https://cwiki.apache.org/confluence/display/TAPESTRY5";>Tapestry Community 
Wiki (legacy)</a> &#8211; read-only copy of Tapestry's old Moin Moin wiki 
containing a lot of user-generated information on different Tapestry use 
cases.</li></ul><h1 id="Documentation-Gettinghelp">Getting help</h1><p>The 
primary method of support is the <a href="mailing-lists.html">Tapestry Mailing 
Lists</a>.</p><p>In addition, there are occasionally questions and answers 
about Tapestry at <a class="external-link" 
href="http://stackoverflow.com/questions/tagged/tapestry"; rel="nofollow">Stack 
Overflo
 w</a>.</p><h1 id="Documentation-TheDeveloperCorner">The Developer 
Corner</h1><p><a href="developer-information.html">Developer Information</a> 
gives information needed by the Tapestry 
developers</p><p></p><p></p><p></p></div>


Reply via email to