You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by bu...@apache.org on 2018/02/11 12:23:49 UTC

svn commit: r1025205 [8/10] - in /websites/production/tapestry/content: ./ 2009/09/13/ 2009/10/27/ 2009/11/25/ 2010/07/18/ 2010/07/24/ 2010/10/11/ 2010/10/31/ 2010/11/18/ 2010/11/19/ 2010/12/16/ 2010/12/17/ 2011/01/10/ 2011/01/18/ 2011/03/23/ 2011/03/2...

Modified: websites/production/tapestry/content/general-questions.html
==============================================================================
--- websites/production/tapestry/content/general-questions.html (original)
+++ websites/production/tapestry/content/general-questions.html Sun Feb 11 12:23:46 2018
@@ -78,11 +78,11 @@
 
       <div id="content">
                 <div id="ConfluenceContent"><h2 id="GeneralQuestions-GeneralQuestions">General Questions</h2><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1517700093783 {padding: 0px;}
-div.rbtoc1517700093783 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1517700093783 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1518351730541 {padding: 0px;}
+div.rbtoc1518351730541 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1518351730541 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1517700093783">
+/*]]>*/</style></p><div class="toc-macro rbtoc1518351730541">
 <ul class="toc-indentation"><li><a  href="#GeneralQuestions-GeneralQuestions">General Questions</a>
 <ul class="toc-indentation"><li><a  href="#GeneralQuestions-HowdoIgetstartedwithTapestry?">How do I get started with Tapestry?</a></li><li><a  href="#GeneralQuestions-WhydoesTapestryusePrototype?WhynotinsertfavoriteJavaScriptlibraryhere?">Why does Tapestry use Prototype? Why not insert favorite JavaScript library here?</a></li><li><a  href="#GeneralQuestions-WhydoesTapestryhaveitsownInversionofControlContainer?WhynotSpringorGuice?">Why does Tapestry have its own Inversion of Control Container? Why not Spring or Guice?</a></li><li><a  href="#GeneralQuestions-HowdoIupgradefromTapestry4toTapestry5?">How do I upgrade from Tapestry 4 to Tapestry 5?</a></li><li><a  href="#GeneralQuestions-HowdoIupgradefromoneversionofTapestry5toanother?">How do I upgrade from one version of Tapestry 5 to another?</a></li></ul>
 </li></ul>

Modified: websites/production/tapestry/content/hibernate-user-guide.html
==============================================================================
--- websites/production/tapestry/content/hibernate-user-guide.html (original)
+++ websites/production/tapestry/content/hibernate-user-guide.html Sun Feb 11 12:23:46 2018
@@ -106,10 +106,12 @@
   
 }</plain-text-body><p>This persistence strategy works with any Hibernate entity that is associated with a valid Hibernate Session by persisting only the id of the entity. Notice that no onPassivate() method is needed; when the page renders the entity is loaded by the id stored in the session.</p><h1 id="HibernateUserGuide-Using@SessionStatewithentities">Using @SessionState with entities</h1><p>
 
-</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Added in 5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
-</div></div>
-<div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div>The default strategy for persisting Session State Objects is "session". Storing a Hibernate entity into a &lt;HttpSession&gt; is problematic because the stored entity is detached from the Hibernate session. Similar to @Persist("entity") you may use the "entity" persistence strategy to persist Hibernate entities as SSOs:<parameter ac:name="">java</parameter><plain-text-body>public class Index
+
+
+</p><div class="aui-message aui-message-info">
+Added in 5.2 | 
+&#160;
+</div>The default strategy for persisting Session State Objects is "session". Storing a Hibernate entity into a &lt;HttpSession&gt; is problematic because the stored entity is detached from the Hibernate session. Similar to @Persist("entity") you may use the "entity" persistence strategy to persist Hibernate entities as SSOs:<parameter ac:name="">java</parameter><plain-text-body>public class Index
 {
   @SessionState
   @Property

Modified: websites/production/tapestry/content/injection-in-detail.html
==============================================================================
--- websites/production/tapestry/content/injection-in-detail.html (original)
+++ websites/production/tapestry/content/injection-in-detail.html Sun Feb 11 12:23:46 2018
@@ -129,10 +129,12 @@
 </pre>
 </div></div><h1 id="InjectioninDetail-ComponentInjection">Component Injection</h1><p>Inside Tapestry components, injection occurs exclusively on <em>fields</em> and is always triggered by the @Inject (or @InjectService) annotation.</p><p>Component field injection is very similar to IoC layer, but with a different set of injectable resources.</p><p>Injection is the responsibility of the <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/InjectionProvider.html">InjectionProvider</a> service, which is a chain-of-command across a number of implementations.</p><h2 id="InjectioninDetail-BlockInjectionProvider">Block InjectionProvider</h2><p>Checks if the field type is Block. If so, determines the block id to inject (either from the field name, or from an @<a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Id.html">Id</a> annotation, if present).</p><h2 id="InjectioninDetail-Defau
 ltInjectionProvider">Default InjectionProvider</h2><p>Uses the MasterObjectProvider service to provide the injectable value. The Service Lookup stage is skipped.</p><h2 id="InjectioninDetail-ComponentResourcesInjectionProvider">ComponentResources InjectionProvider</h2><p>Injects fields of type ComponentResources.</p><h2 id="InjectioninDetail-CommonResourcesInjectionProvider">CommonResources InjectionProvider</h2><p>Injects fields with common resources:</p><ul><li>String: the components' complete id</li><li>org.slf4j.Logger: Logger for the component (based on component class name)</li><li>Locale: locale for the containing page (page locale is immutable)</li><li>Messages: Component's message catalog</li><li>ComponentResourceSelector: selector for the containing page (selector is immutable)</li></ul>
 
-<div class="confluence-information-macro confluence-information-macro-information"><p class="title">Added in 5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
-</div></div>
-<div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>ComponentResourceSelector is new as of release 5.3. It encapsulates a locale plus additional application-specific data used for skinning and/or themeing.</p>
+
+
+<div class="aui-message aui-message-info">
+Added in 5.3 | 
+ComponentResourceSelector is new as of release 5.3. It encapsulates a locale plus additional application-specific data used for skinning and/or themeing.
+
 </div><h2 id="InjectioninDetail-AssetInjectionProvider">Asset InjectionProvider</h2><p>Triggered by the @Path annotation: the Path value has symbols expanded, and is then converted to an Asset.</p><h2 id="InjectioninDetail-ServiceInjectionProvider">Service InjectionProvider</h2><p>Equivalent to the Service Lookup phase in an IoC layer injection.</p><h1 id="InjectioninDetail-@InjectServiceinComponents">@InjectService in Components</h1><p>You may use the @<a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/InjectService.html">InjectService</a> annotation on component fields.</p><p></p></div>
       </div>
 

Modified: websites/production/tapestry/content/integrating-with-jpa.html
==============================================================================
--- websites/production/tapestry/content/integrating-with-jpa.html (original)
+++ websites/production/tapestry/content/integrating-with-jpa.html Sun Feb 11 12:23:46 2018
@@ -78,15 +78,17 @@
       <div id="content">
                 <div id="ConfluenceContent">
 
-<div class="confluence-information-macro confluence-information-macro-information"><p class="title">Added in 5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
-</div></div>
-<div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div><p>Tapestry provides a built-in integration with the Java Persistence API (JPA) through the <strong>Tapestry-jpa</strong> module. This module supersedes the 3rd-party <a  class="external-link" href="http://www.tynamo.org/tapestry-jpa+guide/" rel="nofollow">Tynamo JPA module</a>.</p><p><strong>Contents</strong></p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1517700109464 {padding: 0px;}
-div.rbtoc1517700109464 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1517700109464 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1517700109464">
+
+<div class="aui-message aui-message-info">
+Added in 5.3 | 
+&#160;
+</div><p>Tapestry provides a built-in integration with the Java Persistence API (JPA) through the <strong>Tapestry-jpa</strong> module. This module supersedes the 3rd-party <a  class="external-link" href="http://www.tynamo.org/tapestry-jpa+guide/" rel="nofollow">Tynamo JPA module</a>.</p><p><strong>Contents</strong></p><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1518351748019 {padding: 0px;}
+div.rbtoc1518351748019 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1518351748019 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1518351748019">
 <ul class="toc-indentation"><li><a  href="#IntegratingwithJPA-Downloading">Downloading</a>
 <ul class="toc-indentation"><li><a  href="#IntegratingwithJPA-SelectingaJPAImplementation">Selecting a JPA Implementation</a></li></ul>
 </li><li><a  href="#IntegratingwithJPA-ConfiguringJPA">Configuring JPA</a>

Modified: websites/production/tapestry/content/integrating-with-spring-framework.html
==============================================================================
--- websites/production/tapestry/content/integrating-with-spring-framework.html (original)
+++ websites/production/tapestry/content/integrating-with-spring-framework.html Sun Feb 11 12:23:46 2018
@@ -110,11 +110,11 @@
 
 
 <p>For integrating Spring Security into your application, see <a  href="integrating-with-spring-framework.html">Integrating with Spring Framework</a>.</p><p><strong>Contents</strong></p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1517700038896 {padding: 0px;}
-div.rbtoc1517700038896 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1517700038896 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1518351672409 {padding: 0px;}
+div.rbtoc1518351672409 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1518351672409 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1517700038896">
+/*]]>*/</style></p><div class="toc-macro rbtoc1518351672409">
 <ul class="toc-indentation"><li>Related Articles</li></ul>
 <ul><li><a  href="#IntegratingwithSpringFramework-SpringVersion">Spring Version</a></li><li><a  href="#IntegratingwithSpringFramework-Usage">Usage</a>
 <ul class="toc-indentation"><li><a  href="#IntegratingwithSpringFramework-Requireddependency">Required dependency</a></li><li><a  href="#IntegratingwithSpringFramework-Updateyourweb.xmlfile">Update your web.xml file</a></li><li><a  href="#IntegratingwithSpringFramework-AccessingtheSpringApplicationContext">Accessing the Spring Application Context</a></li><li><a  href="#IntegratingwithSpringFramework-Injectingbeans">Injecting beans</a></li><li><a  href="#IntegratingwithSpringFramework-InjectingTapestryservicesinSpringbeans">Injecting Tapestry services in Spring beans</a></li></ul>
@@ -147,14 +147,16 @@ div.rbtoc1517700038896 li {margin-left:
   private UserDAO userDAO;</pre>
 </div></div><p>Searching for Spring beans is threaded into the <a  href="integrating-with-spring-framework.html">MasterObjectProvider service</a>. The Spring context becomes one more place that Tapestry searches when determining the injection for a injected field or method parameter.</p><h3 id="IntegratingwithSpringFramework-InjectingTapestryservicesinSpringbeans">Injecting Tapestry services in Spring beans</h3>
 
-<div class="confluence-information-macro confluence-information-macro-information"><p class="title">Added in 5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
-</div></div>
-<div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>If you have configured Spring to allow annotation-based injection, then you will be able to inject Tapestry services into your Spring Beans.</p>
 
-<p>This feature is only available when Spring ApplicationContext is not configured and loaded externally.</p>
 
-<p>Inside your Spring beans, you may use @<a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/Inject.html">Inject</a> and @<a  class="external-link" href="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/beans/factory/annotation/Autowired.html" rel="nofollow">Autowired</a> annotations.</p>
+<div class="aui-message aui-message-info">
+Added in 5.2 | 
+If you have configured Spring to allow annotation-based injection, then you will be able to inject Tapestry services into your Spring Beans.
+
+This feature is only available when Spring ApplicationContext is not configured and loaded externally.
+
+Inside your Spring beans, you may use @[Inject|http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/Inject.html] and @[Autowired|http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/beans/factory/annotation/Autowired.html] annotations.
+
 
 </div><pre>Simply add these two annotations on top the field you want to inject in your Spring bean.
 </pre><pre>{code:language=java}</pre><pre>    @Inject

Modified: websites/production/tapestry/content/javascript-rewrite-in-54.html
==============================================================================
--- websites/production/tapestry/content/javascript-rewrite-in-54.html (original)
+++ websites/production/tapestry/content/javascript-rewrite-in-54.html Sun Feb 11 12:23:46 2018
@@ -68,11 +68,11 @@
 
       <div id="content">
                 <div id="ConfluenceContent"><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1517700067711 {padding: 0px;}
-div.rbtoc1517700067711 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1517700067711 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1518351702976 {padding: 0px;}
+div.rbtoc1518351702976 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1518351702976 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1517700067711">
+/*]]>*/</style></p><div class="toc-macro rbtoc1518351702976">
 <ul class="toc-indentation"><li><a  href="#JavaScriptRewritein5.4-TapestryandJavaScript">Tapestry and JavaScript</a></li><li><a  href="#JavaScriptRewritein5.4-TapestryJavaScriptLimitations(through5.3)">Tapestry JavaScript Limitations (through 5.3)</a>
 <ul class="toc-indentation"><li><a  href="#JavaScriptRewritein5.4-DependenceonPrototype/Scriptaculous">Dependence on Prototype/Scriptaculous</a></li><li><a  href="#JavaScriptRewritein5.4-LackofDocumentation">Lack of Documentation</a></li><li><a  href="#JavaScriptRewritein5.4-LackofModuleStructure">Lack of Module Structure</a></li><li><a  href="#JavaScriptRewritein5.4-ComplexInitialization">Complex Initialization</a></li></ul>
 </li><li><a  href="#JavaScriptRewritein5.4-JavaScriptImprovementsfor5.4">JavaScript Improvements for 5.4</a>

Modified: websites/production/tapestry/content/legacy-javascript.html
==============================================================================
--- websites/production/tapestry/content/legacy-javascript.html (original)
+++ websites/production/tapestry/content/legacy-javascript.html Sun Feb 11 12:23:46 2018
@@ -263,15 +263,19 @@ public class MyComponent
 </pre>
 </div></div></div></div></div></div><p>Inside a component, you should use @Environmental, to highlight the fact that RenderSupport (like most environmental objects) is only available during rendering, not during action requests.</p><h1 id="LegacyJavaScript-CombiningJavaScriptlibraries">Combining JavaScript libraries</h1>
 
-<div class="confluence-information-macro confluence-information-macro-information"><p class="title">Added in 5.1.0.2</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
-</div></div>
-<div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div><p>In production mode, Tapestry automatically <em>combines</em> JavaScript libraries. A single request (for a <em>virtual asset</em>) will retrieve the combined content of all referenced JavaScript library files.</p><p>Note: starting with Tapestry 5.2, JavaScript libraries are only combined if they are part of a JavaScript Stack (see below).</p><p>This is a very useful feature, as it reduces the number of requests needed to present a page to the user. It can be disabled, however, by setting the SymbolConstants.COMBINE_SCRIPTS <a  href="legacy-javascript.html">configuration symbol</a> to false in your application's module class (normally AppModule.java). By default it is enabled when in production mode and disabled otherwise.</p><p>As elsewhere, if the client browser supports gzip compression, the combined JavaScript will be compressed.</p><h1 id="LegacyJavaScript-MinifyingJavaScriptlibraries">Minifying JavaScript libraries</h1>
-
-<div class="confluence-information-macro confluence-information-macro-information"><p class="title">Added in 5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
-</div></div>
-<div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div><p>In production mode, Tapestry can automatically <em>minify</em> (intelligently compresses) JavaScript libraries (and CSS) when the application starts up. This can significantly decrease the size of static content that the browser needs to download.</p><p>Minification is accomplished using the ResourceMinimizer service. A YUI Compressor-based implementation is available, but this can be overridden.</p><p>IMPORTANT NOTE: The tapestry-core module only provides the empty infrastructure for supporting minification; the actual logic is supplied in the tapestry-yuicompressor module. To use it, you'll need to update your dependencies to include this module.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Maven pom.xml (partial)</b></div><div class="codeContent panelContent pdl">
+
+
+<div class="aui-message aui-message-info">
+Added in 5.1.0.2 | 
+&#160;
+</div><p>In production mode, Tapestry automatically <em>combines</em> JavaScript libraries. A single request (for a <em>virtual asset</em>) will retrieve the combined content of all referenced JavaScript library files.</p><p>Note: starting with Tapestry 5.2, JavaScript libraries are only combined if they are part of a JavaScript Stack (see below).</p><p>This is a very useful feature, as it reduces the number of requests needed to present a page to the user. It can be disabled, however, by setting the SymbolConstants.COMBINE_SCRIPTS <a  href="legacy-javascript.html">configuration symbol</a> to false in your application's module class (normally AppModule.java). By default it is enabled when in production mode and disabled otherwise.</p><p>As elsewhere, if the client browser supports gzip compression, the combined JavaScript will be compressed.</p><h1 id="LegacyJavaScript-MinifyingJavaScriptlibraries">Minifying JavaScript libraries</h1>
+
+
+
+<div class="aui-message aui-message-info">
+Added in 5.3 | 
+&#160;
+</div><p>In production mode, Tapestry can automatically <em>minify</em> (intelligently compresses) JavaScript libraries (and CSS) when the application starts up. This can significantly decrease the size of static content that the browser needs to download.</p><p>Minification is accomplished using the ResourceMinimizer service. A YUI Compressor-based implementation is available, but this can be overridden.</p><p>IMPORTANT NOTE: The tapestry-core module only provides the empty infrastructure for supporting minification; the actual logic is supplied in the tapestry-yuicompressor module. To use it, you'll need to update your dependencies to include this module.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Maven pom.xml (partial)</b></div><div class="codeContent panelContent pdl">
 <pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.tapestry&lt;/groupId&gt;
     &lt;artifactId&gt;tapestry-yuicompressor&lt;/artifactId&gt;
@@ -280,10 +284,11 @@ public class MyComponent
 </pre>
 </div></div><p>Gradle would be similar, of course. If you aren't using something like Maven or Gradle, you'll have to download the jar and its dependency (com.yahoo.platform.yui: yuicompressor) yourself.</p><p>Minification can be disabled by setting the SymbolConstants.MINIFICATION_ENABLED <a  href="legacy-javascript.html">configuration symbol</a> to false in your application's module class (usually AppModule.java). By default it is enabled when in production mode and disabled otherwise.</p><p>Please test your applications well: the YUI Compressor code can be somewhat finicky about the application server and JDK version.</p><h1 id="LegacyJavaScript-Client-sideLogging">Client-side Logging</h1>
 
-<div class="confluence-information-macro confluence-information-macro-warning"><p class="title">Deprecated since 5.3</p><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
-</div></div>
-<div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div><p>In versions prior to 5.3, Tapestry uses a modified version of the <a  class="external-link" href="http://www.gscottolson.com/blackbirdjs/" rel="nofollow">Blackbird</a> JavaScript console. The Tapestry object includes three functions: debug, warn and error.</p><p>Each of these functions take a message and an optional pattern; if the pattern is provided, the message is <a  class="external-link" href="http://prototypejs.org/api/string/interpolate" rel="nofollow">interpolated</a> on the pattern. The final message is displayed in the Blackbird console, which will make itself visible automatically.</p><p>In production mode, debug messages will be filtered out (they will not be visible until the user presses F2 to display the console, and then clicks the grayed out icon for debug messages). In development mode, debug messages are not filtered out.</p><p>Example usage:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+
+<div class="aui-message aui-message-warning">
+Deprecated since 5.3 |
+&#160;
+</div><p>In versions prior to 5.3, Tapestry uses a modified version of the <a  class="external-link" href="http://www.gscottolson.com/blackbirdjs/" rel="nofollow">Blackbird</a> JavaScript console. The Tapestry object includes three functions: debug, warn and error.</p><p>Each of these functions take a message and an optional pattern; if the pattern is provided, the message is <a  class="external-link" href="http://prototypejs.org/api/string/interpolate" rel="nofollow">interpolated</a> on the pattern. The final message is displayed in the Blackbird console, which will make itself visible automatically.</p><p>In production mode, debug messages will be filtered out (they will not be visible until the user presses F2 to display the console, and then clicks the grayed out icon for debug messages). In development mode, debug messages are not filtered out.</p><p>Example usage:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;"> Tapestry.debug("Field id is #{id}, value is #{value}", field);
 
  Tapestry.error("Server is not available.");
@@ -294,10 +299,11 @@ public class MyComponent
 </pre>
 </div></div><p>The constant <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/MarkupConstants.html">MarkupConstants.WAIT_FOR_PAGE</a> contains the part of this snippet inside the quotes.</p><h1 id="LegacyJavaScript-TheStandardTapestryLibrary">The Standard Tapestry Library</h1><p>Tapestry's client-side support, the standard Tapestry library, consists of <code>tapestry.js</code>, which has dependencies on Prototype and on Scriptaculous Effects. tapestry.js, along with its dependencies. The tapestry.js library is automatically added to the page when your code adds any other JavaScript or JavaScript library.</p><h2 id="LegacyJavaScript-TapestryNamespace">Tapestry Namespace</h2><p>Tapestry defines a number of object and classes inside the Tapestry namespace.</p><p>It also adds a handful of methods to the Form class, and to Form elements. These are mostly related to input validation and determining element visibility.</p><h2 id="LegacyJavaScri
 pt-TheTapestryObject$T()">The Tapestry Object $T()</h2>
 
-<div class="confluence-information-macro confluence-information-macro-warning"><p class="title">Deprecated since 5.2 (no replacement)</p><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
-</div></div>
-<div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div><p>The standard library adds a new function, <code>$T()</code>. This function is used much like Prototype's <code>$()</code>, except that instead of returning a DOM object, it returns a hash (an initially empty JavaScript object) that is associated with the DOM object. This hash is known as <em>the Tapestry object</em>.</p><p>You may pass in an object id (as a string) or an object reference. The Tapestry Object is created on first invocation. Note: you'll see it as a property name _tapestry on the DOM object (which may be useful when debugging).</p><p>When Tapestry adds information to a DOM object, it does so in the Tapestry object. This helps avoid name conflicts, and groups all Tapestry-added properties into one place which is much easier to debug.</p><p>For example, you might store a value for an element in one place:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+
+<div class="aui-message aui-message-warning">
+Deprecated since 5.2 (no replacement) |
+&#160;
+</div><p>The standard library adds a new function, <code>$T()</code>. This function is used much like Prototype's <code>$()</code>, except that instead of returning a DOM object, it returns a hash (an initially empty JavaScript object) that is associated with the DOM object. This hash is known as <em>the Tapestry object</em>.</p><p>You may pass in an object id (as a string) or an object reference. The Tapestry Object is created on first invocation. Note: you'll see it as a property name _tapestry on the DOM object (which may be useful when debugging).</p><p>When Tapestry adds information to a DOM object, it does so in the Tapestry object. This helps avoid name conflicts, and groups all Tapestry-added properties into one place which is much easier to debug.</p><p>For example, you might store a value for an element in one place:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">  $T(myid).fadeDuration = .5;
 </pre>
 </div></div><p>Then use it somewhere else:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -322,10 +328,12 @@ Tapestry also works well with other Java
 </pre>
 </div></div><p>The Asset is injected, using the ${tapestry.scriptaculous} <a  href="legacy-javascript.html">symbol</a> to reference the location of the Scriptaculous library.</p><p>Even though the dragdrop.js library is stored inside a JAR file, Tapestry ensures that it can be accessed from the client web browser. A Tapestry URL within the virtual folder "/assets" is created; the file will be given a version number (the application version number if not specified more specifically) and will be sent to the browser with a far-future expires header (to encourage the browser to cache the file aggressively).</p><h1 id="LegacyJavaScript-JavaScriptStacks">JavaScript Stacks</h1>
 
-<div class="confluence-information-macro confluence-information-macro-information"><p class="title">Added in 5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
-</div></div>
-<div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div><p>Tapestry allows you to define groups of related JavaScript libraries and stylesheets as "stacks". The built-in "core" stack is used to define the core JavaScript libraries needed by Tapestry (currently, this includes Prototype and Scriptaculous, as well as Tapestry-specific libraries). Other component libraries may define additional stacks for related sets of resources, for example, to bundle together some portion of the ExtJS or YUI libraries.</p><p>A <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/javascript/JavaScriptStack.html">JavaScriptStack</a> can be thought of as a generalization of Tapestry 5.1's ClientInfrastructure, which exists now to define the "core" JavaScript stack.</p><p>JavaScript assets of a stack may (when enabled) be exposed to the client as a single URL (identifying the stack by name). The individual assets are combined into a single virtual asset, which is then streamed to the clie
 nt.</p><p>To group several static resources together in a single stack, you must create a new implementation of the JavaScriptStack interface . This interface has four methods:</p><ul class="alternate"><li><strong>getStylesheets</strong> : This method will return a list of stylesheet files (StylesheetLink-type object) associated to this stack</li></ul><ul class="alternate"><li><strong>getJavaScriptLibraries</strong> : This method will return a list of javascript files (Asset-type object) associated to this stack</li></ul><ul class="alternate"><li><strong>getStacks</strong> : It is also possible to make a stack dependant of other stacks. All the stacks defined in this method will be loaded before the current stack.</li></ul><ul class="alternate"><li><strong>getInitialization</strong> : this method makes it possible to call a JavaScript initialization for the stack. Tapestry will automatically add this initialization to the page that imports the stacks.</li></ul><div class="code panel
  pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>myStack.java</b></div><div class="codeContent panelContent pdl">
+
+
+<div class="aui-message aui-message-info">
+Added in 5.2 | 
+&#160;
+</div><p>Tapestry allows you to define groups of related JavaScript libraries and stylesheets as "stacks". The built-in "core" stack is used to define the core JavaScript libraries needed by Tapestry (currently, this includes Prototype and Scriptaculous, as well as Tapestry-specific libraries). Other component libraries may define additional stacks for related sets of resources, for example, to bundle together some portion of the ExtJS or YUI libraries.</p><p>A <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/javascript/JavaScriptStack.html">JavaScriptStack</a> can be thought of as a generalization of Tapestry 5.1's ClientInfrastructure, which exists now to define the "core" JavaScript stack.</p><p>JavaScript assets of a stack may (when enabled) be exposed to the client as a single URL (identifying the stack by name). The individual assets are combined into a single virtual asset, which is then streamed to the client.</p><p>To 
 group several static resources together in a single stack, you must create a new implementation of the JavaScriptStack interface . This interface has four methods:</p><ul class="alternate"><li><strong>getStylesheets</strong> : This method will return a list of stylesheet files (StylesheetLink-type object) associated to this stack</li></ul><ul class="alternate"><li><strong>getJavaScriptLibraries</strong> : This method will return a list of javascript files (Asset-type object) associated to this stack</li></ul><ul class="alternate"><li><strong>getStacks</strong> : It is also possible to make a stack dependant of other stacks. All the stacks defined in this method will be loaded before the current stack.</li></ul><ul class="alternate"><li><strong>getInitialization</strong> : this method makes it possible to call a JavaScript initialization for the stack. Tapestry will automatically add this initialization to the page that imports the stacks.</li></ul><div class="code panel pdl" style="
 border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>myStack.java</b></div><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">public class myStack implements JavaScriptStack {
 
     private final AssetSource assetSource;

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 Sun Feb 11 12:23:46 2018
@@ -102,10 +102,12 @@
 </pre>
 </div></div><p>The @RequestParameter annotation directs Tapestry to extract the query parameter from the request and coerce it to type boolean. You can use any reasonable type for such a parameter (int, long and Date are common).</p><p>A similar technique can be used to add query parmeters to component event URLs (the type generated by the ActionLink or EventLink components), by injecting the ComponentResources, and invoking method <code>createEventLink()</code>.</p>
 
-<div class="confluence-information-macro confluence-information-macro-information"><p class="title">Added in 5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
-</div></div>
-<div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>You may also bind a link component's <code>parameters</code> parameter; this is a Map of additional query parameters to add to the URL.  The Map keys should be strings, and the Map values will be encoded to strings.  Tapestry 5.3 also adds a literal map syntax to the <a  href="property-expressions.html" title="Property Expressions">property expression language</a>.</p>
+
+
+<div class="aui-message aui-message-info">
+Added in 5.3 | 
+You may also bind a link component's {{parameters}} parameter; this is a Map of additional query parameters to add to the URL.  The Map keys should be strings, and the Map values will be encoded to strings.  Tapestry 5.3 also adds a literal map syntax to the [property expression language|TAPESTRY:Property Expressions].
+
 
 </div><h3 id="LinkComponentsFAQ-HowdoIcreateaLinkbacktothecurrentpagefromacomponent?">How do I create a Link back to the current page from a component?</h3><p>Sometimes it is useful to create a link back to the current page, but you don't always know the name of the page (the link may appear inside a deeply nested subcomponent). Fortunately, this is easy.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;t:pagelink page="prop:componentResources.pageName"&gt;refresh page&lt;/t:pagelink&gt;

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 Sun Feb 11 12:23:46 2018
@@ -110,13 +110,13 @@ public class DBImage
 
 
 
-<span class="gliffy-container" id="gliffy-container-23527573-8926" data-fullwidth="750" data-ceoid="23335008" data-edit="${diagramEditLink.getLinkUrl()}" data-full="${diagramZoomLink.getLinkUrl()}" data-filename="Class Loaders">
+<span class="gliffy-container" id="gliffy-container-23527573-162" data-fullwidth="750" data-ceoid="23335008" data-edit="${diagramEditLink.getLinkUrl()}" data-full="${diagramZoomLink.getLinkUrl()}" data-filename="Class Loaders">
 
-    <map id="gliffy-map-23527573-31" name="gliffy-map-23527573-31"></map>
+    <map id="gliffy-map-23527573-1740" name="gliffy-map-23527573-1740"></map>
 
-    <img class="gliffy-image" id="gliffy-image-23527573-8926" 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&amp;modificationDate=1283534469000&amp;api=v2" alt="Class Loaders" usemap="#gliffy-map-23527573-31">
+    <img class="gliffy-image" id="gliffy-image-23527573-162" 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&amp;modificationDate=1283534469000&amp;api=v2" alt="Class Loaders" usemap="#gliffy-map-23527573-1740">
 
-    <map class="gliffy-dynamic" id="gliffy-dynamic-map-23527573-8926" name="gliffy-dynamic-map-23527573-8926"></map>
+    <map class="gliffy-dynamic" id="gliffy-dynamic-map-23527573-162" name="gliffy-dynamic-map-23527573-162"></map>
 </span>
 
 

Modified: websites/production/tapestry/content/parallel-execution.html
==============================================================================
--- websites/production/tapestry/content/parallel-execution.html (original)
+++ websites/production/tapestry/content/parallel-execution.html Sun Feb 11 12:23:46 2018
@@ -81,10 +81,12 @@
 <pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">  RSSFeed feed = executor.invoke(RSSFeed.class, new Invokable&lt;RSSFeed&gt;() { ... });</pre>
 </div></div><p>This only works if the type is an interface. A proxy for the interface is created around the Future object; any invocation on the proxy will invoke get() on the Future (that is, will block until the value is computed).</p><h1 id="ParallelExecution-Configuration">Configuration</h1><p>The behavior of the ParallelExecutor can be tuned with global configuration symbols.</p><p>Java constants for the configuration symbols are defined in <a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/IOCSymbols.html">IOCSymbols</a>.</p><h3 id="ParallelExecution-tapestry.thread-pool-enabled">tapestry.thread-pool-enabled</h3><p>If true, the default, then the thread pool will operate. If false, then ParallelExecutor's implementation changes to invoke the Invokable immediately, not in a pooled thread. This is useful in environments, such as <a  class="external-link" href="http://code.google.com/appengine/" rel="nofollow">Google App Engine</a>,
  that do not support the creation of threads and thread pools.</p><h3 id="ParallelExecution-tapestry.thread-pool.core-pool-size">tapestry.thread-pool.core-pool-size</h3><p>Minimum size of the thread pool. Defaults to 3.</p><h3 id="ParallelExecution-tapestry.thread-pool.max-pool-size">tapestry.thread-pool.max-pool-size</h3><p>Maximum number of threads (active or inactive) in the thread pool. Defaults to 20.</p><h3 id="ParallelExecution-tapestry.thread-pool.keep-alive">tapestry.thread-pool.keep-alive</h3><p>Time to keep waiting threads alive. Defaults to "1 m" (one minute).</p><h3 id="ParallelExecution-tapestry.thread-pool.queue-size">tapestry.thread-pool.queue-size</h3><p>
 
-</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Added in 5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
-</div></div>
-<div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div>The size of the task queue. When there are at least the core number of threads in the pool, tasks will be placed in the queue. If the queue is empty, more threads may be created (up to the maximum pool size). If the queue is full and all threads have been created, the task is rejected (and exception is thrown).<p>Defaults to 100.</p><p>&#160;</p><p></p></div>
+
+
+</p><div class="aui-message aui-message-info">
+Added in 5.3 | 
+&#160;
+</div>The size of the task queue. When there are at least the core number of threads in the pool, tasks will be placed in the queue. If the queue is empty, more threads may be created (up to the maximum pool size). If the queue is full and all threads have been created, the task is rejected (and exception is thrown).<p>Defaults to 100.</p><p>&#160;</p><p></p></div>
       </div>
 
       <div class="clearer"></div>

Modified: websites/production/tapestry/content/property-expressions.html
==============================================================================
--- websites/production/tapestry/content/property-expressions.html (original)
+++ websites/production/tapestry/content/property-expressions.html Sun Feb 11 12:23:46 2018
@@ -135,10 +135,12 @@ mapKey : keyword | constant | propertyCh
 </pre>
 </div></div><p>
 
-</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Added in 5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
-</div></div>
-<div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>Support for map literals was added in Tapestry 5.3.</p>
+
+
+</p><div class="aui-message aui-message-info">
+Added in 5.3 | 
+Support for map literals was added in Tapestry 5.3.
+
 </div>Notes:<ul><li>Whitespace is ignored.</li><li>Integers and decimals may have a leading sign ('+' or '-').</li><li>Constants are in base 10 (octal and hex notation is not yet supported). Decimals may contain a decimal point (exponent notation not yet supported).</li><li>Literal strings are enclosed in single quotes.</li><li>The <code>rangeOp</code> creates a range object that will iterate between the two values. The upper and lower bounds may be literal integers, or property expressions.</li><li>An identifier by itself is a property name. An identifier with parenthesis is a method invocation.</li><li>Property names, method names, and keywords are case-insensitive.</li><li>'this' is the root object (i.e., the containing component).</li><li>The <code>not</code> operator coerces the expression to a <code>boolean</code> (so it can be used on strings, numbers, etc.).</li><li>Method matching is based on method name and number of parameters, but not parameter types. The <a  href="prope
 rty-expressions.html">TypeCoercer</a> service is used to convert parameters to the correct type to be passed into the method.</li></ul><h2 id="PropertyExpressions-Examples">Examples</h2><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>&#160;</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Example</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>Notes</p></th></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Keyword</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>this</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Keyword</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Property Name</p></th><td colspan="1" rowspan="1" class="confluen
 ceTd"><p>userName</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Calls getUserName() or setUserName, depending on context</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Property Chain</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>user.address.city</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Calls getUser().getAddress().getCity() or getUser().getAddress().setCity(), depending on context</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Property Chain</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>user?.name</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Calls getUser() and, if the result is not null, calls getName() on the result</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Method Invocation</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>groupList.size()</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>calls getGroupList().size(
 )</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Method Invocation</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>members.findById(<a  class="external-link" href="http://user.id" rel="nofollow">user.id</a>)?.name</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Calls getMembers().findById(getUser().getId())?.getName() (unless findById returns null)</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Range</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>1..10</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Iterates between integers 1 and 10</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Range</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>1..groupList.size()</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Iterates between 1 and the result of getGroupList().size()</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Literal String</p></t
 h><td colspan="1" rowspan="1" class="confluenceTd"><p>'Beer is proof that God loves us and wants us to be happy.'</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Use single quotes</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>List</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>[<a  class="external-link" href="http://user.name" rel="nofollow">user.name</a>, user.email, user.phone]</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>&#160;</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Not Operator</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>! user.deleted</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the boolean negation of getUser().getDeleted()</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Not, Coerced</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>! user.middleName</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true only if ge
 tUser.getMiddleName() returns null or an empty string</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Map</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>{ 'framework' : 'Tapestry', 'version' : version }</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Keys are string literals (in single quotes), but could be properties as well</p></td></tr></tbody></table></div></div>
       </div>
 

Modified: websites/production/tapestry/content/registry-startup.html
==============================================================================
--- websites/production/tapestry/content/registry-startup.html (original)
+++ websites/production/tapestry/content/registry-startup.html Sun Feb 11 12:23:46 2018
@@ -85,10 +85,12 @@
 }</pre>
 </div></div><p>Generally, these contributions are in the form of inner classes; if they were services, they could just be eagerly loaded.</p><h2 id="RegistryStartup-StartupMethods">Startup Methods</h2><p>
 
-</p><div class="confluence-information-macro confluence-information-macro-information"><p class="title">Added in 5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
-</div></div>
-<div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div>Instead of making contributions to the RegistryStartup service configuration you can provide startup methods inside your modules. A startup method is a static or instance method of a module annotated with @<a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/Startup.html">Startup</a> annotation. Each module is allowed to contain several startup methods.<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+
+
+</p><div class="aui-message aui-message-info">
+Added in 5.2 | 
+&#160;
+</div>Instead of making contributions to the RegistryStartup service configuration you can provide startup methods inside your modules. A startup method is a static or instance method of a module annotated with @<a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/Startup.html">Startup</a> annotation. Each module is allowed to contain several startup methods.<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">public class MyModule
 {
 

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 Sun Feb 11 12:23:46 2018
@@ -78,11 +78,11 @@
 
       <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="release-notes-50.html">Release Notes 5.0</a> instructions.</p><p><strong>Contents</strong></p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1517700108174 {padding: 0px;}
-div.rbtoc1517700108174 ul {list-style: disc;margin-left: 0px;padding-left: 5px;}
-div.rbtoc1517700108174 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1518351746279 {padding: 0px;}
+div.rbtoc1518351746279 ul {list-style: disc;margin-left: 0px;padding-left: 5px;}
+div.rbtoc1518351746279 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1517700108174">
+/*]]>*/</style></p><div class="toc-macro rbtoc1518351746279">
 <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="#ReleaseNot
 es5.0-TapestryVersion5.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 ...]