Modified: websites/production/tapestry/content/limitations.html ============================================================================== --- websites/production/tapestry/content/limitations.html (original) +++ websites/production/tapestry/content/limitations.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> @@ -143,11 +143,11 @@ <!-- /// Content Start --> <div id="content"> <div id="ConfluenceContent"><h1 id="Limitations-Limitations">Limitations</h1><h2 id="Limitations-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1669468450079 {padding: 0px;} -div.rbtoc1669468450079 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1669468450079 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1669470786536 {padding: 0px;} +div.rbtoc1669470786536 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1669470786536 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1669468450079"> +/*]]>*/</style></p><div class="toc-macro rbtoc1669470786536"> <ul class="toc-indentation"><li><a href="#Limitations-HowdoIaddnewcomponentstoanexistingpagedynamically?">How do I add new components to an existing page dynamically?</a></li><li><a href="#Limitations-Whydoesn'tmyserviceimplementationreloadwhenIchangeit?">Why doesn't my service implementation reload when I change it?</a></li><li><a href="#Limitations-HowdoIrunmultipleTapestryapplicationsinthesamewebapplication?">How do I run multiple Tapestry applications in the same web application?</a></li></ul> </div><h2 id="Limitations-HowdoIaddnewcomponentstoanexistingpagedynamically?">How do I add new components to an existing page dynamically?</h2><p>The short answer here is: <strong>you don't</strong>. The long answer here is <strong>you don't have to, to get the behavior you desire</strong>.</p><p>One of Tapestry basic values is high scalability: this is expressed in a number of ways, reflecting scalability concerns within a single server, and within a cluster of servers.</p><p>Although you code Tapestry pages and components as if they were ordinary POJOs (<span>Plain Old Java Objects -- Tapestry does not require you to extend any base classes or implement any special interfaces)</span><span>, as deployed by Tapestry they are closer to a traditional servlet: a single instance of each page services requests from multiple threads. Behind the scenes, Tapestry transforms you code, rewriting it on the fly.</span></p><p>What this means is that <em>any</em> incoming request must be handled by a <em>single page instance</em>. Therefore, Tapestry enforces the concept of <strong>static structure, dynamic behavior</strong>.</p><p>Tapestry provides quite a number of ways to vary what content is rendered, well beyond simple conditionals and loops. It is possible to "drag in" components from other pages when rendering a page (other FAQs will expand on this concept). The point is, that although a Tapestry page's structure is very rigid, the order in which the components of the page render does not have to be top to bottom.</p><h2 id="Limitations-Whydoesn'tmyserviceimplementationreloadwhenIchangeit?">Why doesn't my service implementation reload when I change it?</h2><p>Main article: <a href="service-implementation-reloading.html">Service Implementation Reloading</a></p><p>Live service reloading has some limitations:</p><ul><li>The service must define a service interface.</li><li>The service implementation must be on the file system (not inside a JAR).</li><li>The implementatio n must be instantiated by Tapestry, not inside code (even code inside a module class).</li><li>The service must use the default <a href="limitations.html">scope</a> (reloading of perthread scopes is not supported).</li></ul><p>Consider the following example module:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> <pre><code class="language-java">public static void bind(ServiceBinder binder)
Modified: websites/production/tapestry/content/link-components-faq.html ============================================================================== --- websites/production/tapestry/content/link-components-faq.html (original) +++ websites/production/tapestry/content/link-components-faq.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> @@ -143,11 +143,11 @@ <!-- /// Content Start --> <div id="content"> <div id="ConfluenceContent"><h1 id="LinkComponentsFAQ-LinkComponents">Link Components</h1><p>Main Articles: <a href="page-navigation.html">Page Navigation</a>, <a href="component-parameters.html">Component Parameters</a></p><h2 id="LinkComponentsFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1669468415834 {padding: 0px;} -div.rbtoc1669468415834 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1669468415834 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1669470770068 {padding: 0px;} +div.rbtoc1669470770068 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1669470770068 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1669468415834"> +/*]]>*/</style></p><div class="toc-macro rbtoc1669470770068"> <ul class="toc-indentation"><li><a href="#LinkComponentsFAQ-HowdoIaddqueryparameterstoaPageLinkorActionLink?">How do I add query parameters to a PageLink or ActionLink?</a></li><li><a href="#LinkComponentsFAQ-HowdoIcreateaLinkbacktothecurrentpagefromacomponent?">How do I create a Link back to the current page from a component?</a></li></ul> </div><h2 id="LinkComponentsFAQ-HowdoIaddqueryparameterstoaPageLinkorActionLink?">How do I add query parameters to a PageLink or ActionLink?</h2><p>These components do not have parameters to allow you to specify query parameters for the link; they both allow you to specify a <em>context</em> (one or more values to encode into the request path).</p><p>However, you can accomplish the same thing with a little code and markup. For example, to create a link to another page and pass a query parameter, you can replace your PageLink component with a standard <code><a></code> tag:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> <pre><code class="language-xml"><a href="${profilePageLink}">Display Profile (w/ full details)</a> Modified: websites/production/tapestry/content/loading-the-project-into-eclipse.html ============================================================================== --- websites/production/tapestry/content/loading-the-project-into-eclipse.html (original) +++ websites/production/tapestry/content/loading-the-project-into-eclipse.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/localization.html ============================================================================== --- websites/production/tapestry/content/localization.html (original) +++ websites/production/tapestry/content/localization.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/logging-in-tapestry.html ============================================================================== --- websites/production/tapestry/content/logging-in-tapestry.html (original) +++ websites/production/tapestry/content/logging-in-tapestry.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/logging.html ============================================================================== --- websites/production/tapestry/content/logging.html (original) +++ websites/production/tapestry/content/logging.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/mailing-lists.html ============================================================================== --- websites/production/tapestry/content/mailing-lists.html (original) +++ websites/production/tapestry/content/mailing-lists.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/maven-support-faq.html ============================================================================== --- websites/production/tapestry/content/maven-support-faq.html (original) +++ websites/production/tapestry/content/maven-support-faq.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> @@ -143,11 +143,11 @@ <!-- /// Content Start --> <div id="content"> <div id="ConfluenceContent"><h1 id="MavenSupportFAQ-MavenSupport">Maven Support</h1><h2 id="MavenSupportFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1669468549563 {padding: 0px;} -div.rbtoc1669468549563 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1669468549563 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1669470838286 {padding: 0px;} +div.rbtoc1669470838286 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1669470838286 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1669468549563"> +/*]]>*/</style></p><div class="toc-macro rbtoc1669470838286"> <ul class="toc-indentation"><li><a href="#MavenSupportFAQ-WhydoMavenprojectnamesandotherdetailsshowupinmypages?">Why do Maven project names and other details show up in my pages?</a></li></ul> </div><h2 id="MavenSupportFAQ-WhydoMavenprojectnamesandotherdetailsshowupinmypages?">Why do Maven project names and other details show up in my pages?</h2><p>Tapestry and maven both use the same syntax for dynamic portions of files: the <code>${...</code>} syntax. When Maven is copying resources from <code>src/main/resources</code>, and when filtering is <em>enabled</em> (which is not the default), then any expansions in <em>Tapestry templates</em> that match against Maven project properties are substituted. If you look at the deployed application you'll see that <code>${name</code>} is gone, replaced with your project's name!</p><p>The solution is to update your <code>pom.xml</code> and ignore any .tml files when copying and filtering:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>pom.xml (partial)</b></div><div class="codeContent panelContent pdl"> <pre><code class="language-xml"> <resource> Modified: websites/production/tapestry/content/menuleft.html ============================================================================== --- websites/production/tapestry/content/menuleft.html (original) +++ websites/production/tapestry/content/menuleft.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/meta-programming-page-content.html ============================================================================== --- websites/production/tapestry/content/meta-programming-page-content.html (original) +++ websites/production/tapestry/content/meta-programming-page-content.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/modules.html ============================================================================== --- websites/production/tapestry/content/modules.html (original) +++ websites/production/tapestry/content/modules.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/navigation.html ============================================================================== --- websites/production/tapestry/content/navigation.html (original) +++ websites/production/tapestry/content/navigation.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/navigationv2.html ============================================================================== --- websites/production/tapestry/content/navigationv2.html (original) +++ websites/production/tapestry/content/navigationv2.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/news.html ============================================================================== --- websites/production/tapestry/content/news.html (original) +++ websites/production/tapestry/content/news.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> @@ -168,7 +168,12 @@ Tapestry 5.8.2 is a drop-in replacement Please check all the details in the release notes page. </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=217387690">Edit</a> + + </div> </div> @@ -196,7 +201,12 @@ All the details are in the release Happy coding! </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=210078665">Edit</a> + + </div> </div> @@ -224,7 +234,12 @@ Full release notes at https://tapes Tapestry 5.8.… </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=199533108">Edit</a> + + </div> </div> @@ -249,7 +264,12 @@ Tapestry 5.8.… Upgrading Hibernate's version from 5.1.1.Final to 5.4.32.Final. This required some changes in tapestry-hibernate due to some non-backward-compatible changes between these 2 Hibernate versions. If your project doesn't work with this new Hibernate version, you should be able to use version 5.7.2 of tapestry-hibernate and tapestry-hibernate with 5.7.3 of everything else without issues.… </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=186877778">Edit</a> + + </div> </div> @@ -273,7 +293,12 @@ Upgrading Hibernate's version from  Tapestry 5.6.4 is a drop-in replacement and recommended upgrade for Tapestry 5.4, 5.5 and 5.6 releases. To upgrade, just update the dependency in your build configuration (Maven POM, Gradle build script, etc.) – or Download https://cwiki.apache.org/confluence/display/TAPESTRY/Download the new JAR file -- and the new version will just work. However, please review the How to Upgrade https://cwiki.apache.org/confluence/display/TAPESTRY/How+to+Upgrade instructions before upgrading.… </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=177050744">Edit</a> + + </div> </div> @@ -297,7 +322,12 @@ Upgrading Hibernate's version from  Tapestry 5.7.2 is a drop-in replacement and recommended upgrade for Tapestry 5.7 releases. To upgrade, just update the dependency in your build configuration (Maven POM, Gradle build script, etc.) – or Download https://cwiki.apache.org/confluence/display/TAPESTRY/Download the new JAR file -- and the new version will just work. However, please review the How to Upgrade https://cwiki.apache.org/confluence/display/TAPESTRY/How+to+Upgrade instructions before upgrading.… </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=177050747">Edit</a> + + </div> </div> @@ -321,7 +351,12 @@ Upgrading Hibernate's version from  Tapestry 5.6.3 is a drop-in replacement and recommended upgrade for Tapestry 5.4, 5.5 and 5.6 releases. To upgrade, just update the dependency in your build configuration (Maven POM, Gradle build script, etc.) – or Download https://cwiki.apache.org/confluence/display/TAPESTRY/Download the new JAR file -- and the new version will just work. However, please review the How to Upgrade https://cwiki.apache.org/confluence/display/TAPESTRY/How+to+Upgrade instructions before upgrading.… </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=177047326">Edit</a> + + </div> </div> @@ -345,7 +380,12 @@ Upgrading Hibernate's version from  Tapestry 5.7.1 is a drop-in replacement and recommended upgrade for Tapestry 5.7.1 To upgrade, just update the dependency in your build configuration (Maven POM, Gradle build script, etc.) – or Download https://cwiki.apache.org/confluence/display/TAPESTRY/Download the new JAR file -- and the new version will just work. However, please review the How to Upgrade https://cwiki.apache.org/confluence/display/TAPESTRY/How+to+Upgrade instructions before upgrading.… </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=177047328">Edit</a> + + </div> </div> @@ -369,7 +409,12 @@ Upgrading Hibernate's version from  Tapestry 5.6.2 is a drop-in replacement for Tapestry 5.4, 5.5 and 5.6 releases. It's a recommended upgrade for 5.6.1 and 5.6.0. To upgrade, just update the dependency in your build configuration (Maven POM, Gradle build script, etc.) – or Download https://cwiki.apache.org/confluence/display/TAPESTRY/Download the new JAR file -- and the new version will just work. However, please review the How to Upgrade https://cwiki.apache.… </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=173087528">Edit</a> + + </div> </div> @@ -393,7 +438,12 @@ Upgrading Hibernate's version from  Tapestry 5.7.0 is a new major version which needs a migration step for projects using previous versions. To upgrade, update the dependency in your build configuration (Maven POM, Gradle build script, etc.) – or Download https://cwiki.apache.org/confluence/display/TAPESTRY/Download the new JAR file. Please check the Upgrade Guide section below for details. This is a step that only needs to be done once. Please also review the How to Upgrade https://cwiki.apache.… </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=173087530">Edit</a> + + </div> </div> @@ -418,7 +468,12 @@ Upgrading Hibernate's version from  The only change is , which caused asset requests to fail if your webapp doesn't have Apache commons-lang in the classpath. </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=158877784">Edit</a> + + </div> </div> @@ -446,7 +501,12 @@ Automatically generated WAI-ARIA attribu See more details at the release notes. </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=158874467">Edit</a> + + </div> </div> @@ -474,7 +534,12 @@ Support for on-the-fly TypeScript compil Ability to use Twitter Bootstrap 3 out-of-the-box (default and same version provided by Tapestry 5.4),… </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=148643479">Edit</a> + + </div> </div> @@ -500,7 +565,12 @@ This is a recommended upgrade due to inc Check 5.4.5 release notes https://tapestry.apache.org/release-notes-545.html for all the details. </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=128651340">Edit</a> + + </div> </div> @@ -525,7 +595,12 @@ Check 5.4.5 release notes https://t Release Notes </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=69406657">Edit</a> + + </div> </div> @@ -549,7 +624,12 @@ Release Notes This is probably old news, but we have created another release in the 5.4.x series. Have a look at the release notes and give the latest version a spin while we pick up pace for Tapestry 5.5. </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=62692139">Edit</a> + + </div> </div> @@ -575,7 +655,12 @@ Although a lot has changed under the hoo The release is available from the Maven Central Repository, or as a direct download https://tapestry.apache.… </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=61333556">Edit</a> + + </div> </div> @@ -602,7 +687,12 @@ This release is available from the Maven Please give it a spin and let us know how it is working for you. If you find any bugs,… </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=61326381">Edit</a> + + </div> </div> @@ -626,7 +716,12 @@ Please give it a spin and let us know ho Tapestry 5.4-beta-26 fixes many bugs and paves the way towards the long awaited release candidate. </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=50859913">Edit</a> + + </div> </div> @@ -660,7 +755,12 @@ You can also download the binary, source Tapestry 5.3.8 is the latest maintenance release from the stable 5.3 release branch. If you intend to run this release on JRE 8, make sure to read the the release notes.… </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=50233969">Edit</a> + + </div> </div> @@ -688,7 +788,12 @@ Tapestry 5.4-beta-22 contains a signific This release is available from the Maven Central Repository, or as a direct download.… </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=46633206">Edit</a> + + </div> </div> @@ -717,7 +822,12 @@ This release is available from the Maven While not an actual release candidate,… </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=41812917">Edit</a> + + </div> </div> @@ -743,7 +853,12 @@ While not an actual release candidate, b If you're using Maven (or Gradle or Ivy, etc),… </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=39622379">Edit</a> + + </div> </div> @@ -767,7 +882,12 @@ If you're using Maven (or Gradle or Ivy, A vote is underway for the 3rd beta preview release of Tapestry 5.4. This follows 2 other betas and 29 alphas for the work on version 5.4 that began over two years ago. </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=39620689">Edit</a> + + </div> </div> @@ -791,7 +911,12 @@ If you're using Maven (or Gradle or Ivy, Apache Tapestry 5.3.7: improves security and stability. </div> + + <div class="endsection"> + <a href="/confluence/pages/editblogpost.action?pageId=31819912">Edit</a> + + </div> </div> </div></div> </div> Modified: websites/production/tapestry/content/object-providers.html ============================================================================== --- websites/production/tapestry/content/object-providers.html (original) +++ websites/production/tapestry/content/object-providers.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/operation-tracker.html ============================================================================== --- websites/production/tapestry/content/operation-tracker.html (original) +++ websites/production/tapestry/content/operation-tracker.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/ordering-by-constraints.html ============================================================================== --- websites/production/tapestry/content/ordering-by-constraints.html (original) +++ websites/production/tapestry/content/ordering-by-constraints.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/overriding-exception-reporting.html ============================================================================== --- websites/production/tapestry/content/overriding-exception-reporting.html (original) +++ websites/production/tapestry/content/overriding-exception-reporting.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/page-and-component-classes-faq.html ============================================================================== --- websites/production/tapestry/content/page-and-component-classes-faq.html (original) +++ websites/production/tapestry/content/page-and-component-classes-faq.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> @@ -143,11 +143,11 @@ <!-- /// Content Start --> <div id="content"> <div id="ConfluenceContent"><h1 id="PageAndComponentClassesFAQ-PageAndComponentClasses">Page And Component Classes</h1><p>Main article: <a href="component-classes.html">Component Classes</a></p><h2 id="PageAndComponentClassesFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1669468356590 {padding: 0px;} -div.rbtoc1669468356590 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1669468356590 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1669470738602 {padding: 0px;} +div.rbtoc1669470738602 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1669470738602 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1669468356590"> +/*]]>*/</style></p><div class="toc-macro rbtoc1669470738602"> <ul class="toc-indentation"><li><a href="#PageAndComponentClassesFAQ-What'sthedifferencebetweenapageandacomponent?">What's the difference between a page and a component?</a></li><li><a href="#PageAndComponentClassesFAQ-HowdoIstoremypageclassesinadifferentpackage?">How do I store my page classes in a different package?</a></li><li><a href="#PageAndComponentClassesFAQ-Whydomyinstancevariableshavetobeprivate?">Why do my instance variables have to be private?</a></li><li><a href="#PageAndComponentClassesFAQ-Whydon'tmyinformalparametersshowupintherenderedmarkup?">Why don't my informal parameters show up in the rendered markup?</a></li><li><a href="#PageAndComponentClassesFAQ-WhydoIgetjava.lang.LinkageErrorwhenIinvokepublicmethodsofmypageclasses?">Why do I get java.lang.LinkageError when I invoke public methods of my page classes?</a></li><li><a href="#PageAndComponentClassesFAQ-Whichisbetter,usingmagicmethodnames(i.e.,beginRender())orannotations(i.e.BeginRender)?">Which is better, using magic method names (i.e., beginRender()) or annotations (i.e. BeginRender)?</a></li><li><a href="#PageAndComponentClassesFAQ-WhydoIhavetoinjectapage?Whycan'tIjustcreateoneusingnew?">Why do I have to inject a page? Why can't I just create one using new?</a></li></ul> </div><h2 id="PageAndComponentClassesFAQ-What'sthedifferencebetweenapageandacomponent?">What's the difference between a page and a component?</h2><p>There's very little difference between the two. Pages classes must be in the <em>root-package</em>.<code>pages</code> package; components must be in the <em>root-package</em>.<code>components</code>. Pages may provide event handlers for certain page-specific events (such as activate and passivate). Components may have parameters.</p><p>Other than that, they are more equal than they are different. They may have templates or may render themselves in code (pages usually have a template, components are more likely to render only in code).</p><p>The major difference is that Tapestry page templates may be stored in the web context directory, as if they were static files (they can't be accessed from the client however; a specific rule prevents access to files with the <code>.tml</code> extension).</p><div class="confluence-information-macro co nfluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>It is possible that this feature may be removed in a later release. It is preferred that page templates be stored on the classpath, like component templates.</p></div></div><h2 id="PageAndComponentClassesFAQ-HowdoIstoremypageclassesinadifferentpackage?">How do I store my page classes in a different package?</h2><p>Tapestry is very rigid here; you can't. Page classes must go in <em>root-package</em>.<code>pages</code>, component classes in <em>root-package</em>.<code>components</code>, etc.</p><p>You are allowed to create sub-packages, to help organize your code better and more logically. For example, you might have <em>root-package</em>.<code>pages.account.ViewAccount</code>, which would have the page name "account/viewaccount". (<span>Tapestry would also create an alias "account/view", by stripping of f the redundant "account" suffix. Either name is equally valid in your code, and Tapestry will use the shorter name, "account/view" in URLs.)</span></p><p>In addition, it is possible to define additional root packages for the application:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> <pre><code class="language-java">public static void contributeComponentClassResolver(Configuration<LibraryMapping> configuration) { @@ -182,13 +182,13 @@ public class DBImage -<span class="gliffy-container" id="gliffy-container-23527573-9694" data-fullwidth="750" data-size="L" data-ceoid="23335008" data-edit="${diagramEditLink.getLinkUrl()}" data-full="${diagramZoomLink.getLinkUrl()}" data-filename="Class Loaders"> +<span class="gliffy-container" id="gliffy-container-23527573-6449" data-fullwidth="750" data-size="L" data-ceoid="23335008" data-edit="${diagramEditLink.getLinkUrl()}" data-full="${diagramZoomLink.getLinkUrl()}" data-filename="Class Loaders"> - <map id="gliffy-map-23527573-3205" name="gliffy-map-23527573-3205"></map> + <map id="gliffy-map-23527573-3061" name="gliffy-map-23527573-3061"></map> - <img class="gliffy-image" id="gliffy-image-23527573-9694" width="750" height="425" data-full-width="750" data-full-height="425" src="https://cwiki.apache.org/confluence/download/attachments/23335008/Class%20Loaders.png?version=4&modificationDate=1283534469000&api=v2" alt="Class Loaders" usemap="#gliffy-map-23527573-3205"> + <img class="gliffy-image" id="gliffy-image-23527573-6449" width="750" height="425" data-full-width="750" data-full-height="425" src="https://cwiki.apache.org/confluence/download/attachments/23335008/Class%20Loaders.png?version=4&modificationDate=1283534469000&api=v2" alt="Class Loaders" usemap="#gliffy-map-23527573-3061"> - <map class="gliffy-dynamic" id="gliffy-dynamic-map-23527573-9694" name="gliffy-dynamic-map-23527573-9694"></map> + <map class="gliffy-dynamic" id="gliffy-dynamic-map-23527573-6449" name="gliffy-dynamic-map-23527573-6449"></map> </span> </p><p>In a Tapestry application, most application classes are loaded from the middle class loader. Additional class loaders are used to support live service reloading, and live component reloading (along with component class transformation).</p><p>When a page or component is passed as a parameter to a service, a failure occurs (how it is reported varies in different JDK releases) because of the class mismatch.</p><p>The solution is to define an interface with the methods that the service will invoke on the page or component instance. The service will expect an object implementing the interface (and doesn't care what class loader loaded the implementing class).</p><p>Just be sure to put the interface class in a non-controlled package, such as your application's <em>root-package</em> (and <strong>not</strong> <em>root-package</em>.<code>pages</code>).</p><h2 id="PageAndComponentClassesFAQ-Whichisbetter,usingmagicmethodnames(i.e.,beginRender())orannotations(i.e.BeginRender)?">Which is better, using magic method names (i.e., <code>beginRender()</code>) or annotations (i.e. <code>BeginRender</code>)?</h2><p>There is no single best way; this is where your taste may vary. Historically, the annotations came first, and the method naming conventions came later.</p><p>The advantage of using the method naming conventions is that the method names are more concise, which fewer characters to type, and fewer classes to import.</p><p>The main disadvantage of the method naming conventions is that the method names are not meaningful. <code>onSuccessFromLoginForm()</code> is a less meaningful name than <code>storeUserCredentialsAndReturnToProductsPage()</code>, for example.</p><p>The second disadvantage is you are more susceptible to off-by-a-character errors. For example, <code>onSucessFromLoginForm()</code> will <em>never</em> be called because the event name is misspelled; this would not happen using the annotation approach:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl"> Modified: websites/production/tapestry/content/page-and-component-classes.html ============================================================================== --- websites/production/tapestry/content/page-and-component-classes.html (original) +++ websites/production/tapestry/content/page-and-component-classes.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/page-life-cycle.html ============================================================================== --- websites/production/tapestry/content/page-life-cycle.html (original) +++ websites/production/tapestry/content/page-life-cycle.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/page-navigation.html ============================================================================== --- websites/production/tapestry/content/page-navigation.html (original) +++ websites/production/tapestry/content/page-navigation.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> @@ -232,11 +232,11 @@ <p>In essence, a Tapestry application is a number of related pages, working together. To some degree, each page is like an application unto itself.</p><p>Any individual request will be targeted at a single page. Requests come in two forms: </p><ul><li><em>component event</em> requests target a specific component on a specific page, triggering an event within that component</li><li><em>render</em> requests target a specific page, and stream the HTML markup for that page back to the client</li></ul><p>This dichotomy between component event requests and render requests alleviates a number of problems in traditional web applications related to the browser back button, or to the user hitting the refresh button in their browser.</p><h3 id="PageNavigation-Contents">Contents</h3><h2 id="PageNavigation-Contents|RelatedArticlesLogicalPageNameShortening"><style type="text/css">/*<![CDATA[*/ -div.rbtoc1669468607900 {padding: 0px;} -div.rbtoc1669468607900 ul {list-style: disc;margin-left: 0px;} -div.rbtoc1669468607900 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1669470870098 {padding: 0px;} +div.rbtoc1669470870098 ul {list-style: disc;margin-left: 0px;} +div.rbtoc1669470870098 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></h2><div class="toc-macro rbtoc1669468607900"> +/*]]>*/</style></h2><div class="toc-macro rbtoc1669470870098"> <ul class="toc-indentation"><li><a href="#PageNavigation-Contents|RelatedArticlesLogicalPageNameShortening">Logical Page Name Shortening</a></li><li><a href="#PageNavigation-ComponentEventRequests&Responses">Component Event Requests & Responses</a> <ul class="toc-indentation"><li><a href="#PageNavigation-1.Nullresponse">1. Null response</a></li><li><a href="#PageNavigation-2.Stringresponse">2. String response</a></li><li><a href="#PageNavigation-3.Classresponse">3. Class response</a></li><li><a href="#PageNavigation-4.Pageresponse">4. Page response</a></li><li><a href="#PageNavigation-5.HttpError">5. HttpError</a></li><li><a href="#PageNavigation-6.Linkresponse">6. Link response</a></li><li><a href="#PageNavigation-7.Streamresponse">7. Stream response</a></li><li><a href="#PageNavigation-8.URLresponse">8. URL response</a></li><li><a href="#PageNavigation-9.Objectresponse">9. Object response</a></li></ul> </li><li><a href="#PageNavigation-PageRenderRequests">Page Render Requests</a></li><li><a href="#PageNavigation-PageActivation">Page Activation</a></li><li><a href="#PageNavigation-PageNavigationPatterns">Page Navigation Patterns</a> Modified: websites/production/tapestry/content/parallel-execution.html ============================================================================== --- websites/production/tapestry/content/parallel-execution.html (original) +++ websites/production/tapestry/content/parallel-execution.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/parameter-type-coercion.html ============================================================================== --- websites/production/tapestry/content/parameter-type-coercion.html (original) +++ websites/production/tapestry/content/parameter-type-coercion.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/performance-and-clustering.html ============================================================================== --- websites/production/tapestry/content/performance-and-clustering.html (original) +++ websites/production/tapestry/content/performance-and-clustering.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/persistent-page-data.html ============================================================================== --- websites/production/tapestry/content/persistent-page-data.html (original) +++ websites/production/tapestry/content/persistent-page-data.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/persistent-state.html ============================================================================== --- websites/production/tapestry/content/persistent-state.html (original) +++ websites/production/tapestry/content/persistent-state.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/pipelinebuilder-service.html ============================================================================== --- websites/production/tapestry/content/pipelinebuilder-service.html (original) +++ websites/production/tapestry/content/pipelinebuilder-service.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/presentations.html ============================================================================== --- websites/production/tapestry/content/presentations.html (original) +++ websites/production/tapestry/content/presentations.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/principles.html ============================================================================== --- websites/production/tapestry/content/principles.html (original) +++ websites/production/tapestry/content/principles.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/project-layout.html ============================================================================== --- websites/production/tapestry/content/project-layout.html (original) +++ websites/production/tapestry/content/project-layout.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/property-expressions.html ============================================================================== --- websites/production/tapestry/content/property-expressions.html (original) +++ websites/production/tapestry/content/property-expressions.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/redirects.html ============================================================================== --- websites/production/tapestry/content/redirects.html (original) +++ websites/production/tapestry/content/redirects.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/registry-startup.html ============================================================================== --- websites/production/tapestry/content/registry-startup.html (original) +++ websites/production/tapestry/content/registry-startup.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> Modified: websites/production/tapestry/content/release-notes-50.html ============================================================================== --- websites/production/tapestry/content/release-notes-50.html (original) +++ websites/production/tapestry/content/release-notes-50.html Sat Nov 26 13:56:26 2022 @@ -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="stylesheet" href="/resources/bootstrap/bootstrap.min.js"> + <script src="/resources/bootstrap/bootstrap.min.js" 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> @@ -143,11 +143,11 @@ <!-- /// Content Start --> <div id="content"> <div id="ConfluenceContent"><p>This is the consolidated list of changes between Tapestry versions 5.0.3 and 5.0.19. Before upgrading, be sure to review the <a href="how-to-upgrade.html">How to Upgrade</a> instructions.</p><p><strong>Contents</strong></p><p><style type="text/css">/*<![CDATA[*/ -div.rbtoc1669468392016 {padding: 0px;} -div.rbtoc1669468392016 ul {list-style: disc;margin-left: 0px;padding-left: 5px;} -div.rbtoc1669468392016 li {margin-left: 0px;padding-left: 0px;} +div.rbtoc1669470756775 {padding: 0px;} +div.rbtoc1669470756775 ul {list-style: disc;margin-left: 0px;padding-left: 5px;} +div.rbtoc1669470756775 li {margin-left: 0px;padding-left: 0px;} -/*]]>*/</style></p><div class="toc-macro rbtoc1669468392016"> +/*]]>*/</style></p><div class="toc-macro rbtoc1669470756775"> <ul class="toc-indentation"><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.19">Tapestry Version 5.0.19</a></li><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.18">Tapestry Version 5.0.18</a></li><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.17">Tapestry Version 5.0.17</a></li><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.16">Tapestry Version 5.0.16</a></li><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.15">Tapestry Version 5.0.15</a></li><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.14">Tapestry Version 5.0.14</a></li><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.13">Tapestry Version 5.0.13</a></li><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.12">Tapestry Version 5.0.12</a></li><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.11">Tapestry Version 5.0.11</a></li><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.10">Tapestry Version 5.0.10</a></li><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.9">Tapestry Version 5.0.9</a></li><li><a href="#ReleaseNotes5.0-Tapest ryVersion5.0.8">Tapestry Version 5.0.8</a></li><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.7">Tapestry Version 5.0.7</a></li><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.6">Tapestry Version 5.0.6</a></li><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.5">Tapestry Version 5.0.5</a></li><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.4">Tapestry Version 5.0.4</a></li><li><a href="#ReleaseNotes5.0-TapestryVersion5.0.3">Tapestry Version 5.0.3</a></li></ul> [... 3 lines stripped ...]