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/25 21:24:46 UTC

svn commit: r1025962 [5/8] - 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/29...

Modified: websites/production/tapestry/content/key-features.html
==============================================================================
--- websites/production/tapestry/content/key-features.html (original)
+++ websites/production/tapestry/content/key-features.html Sun Feb 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Key Features</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/layout-component.html
==============================================================================
--- websites/production/tapestry/content/layout-component.html (original)
+++ websites/production/tapestry/content/layout-component.html Sun Feb 25 21:24:42 2018
@@ -65,6 +65,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Layout Component</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

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 25 21:24:42 2018
@@ -66,6 +66,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Legacy JavaScript</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 
@@ -272,18 +287,16 @@ 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="aui-message aui-message-info macro-since"><b class="param-since">Added in 5.1.0.2</b>
+
 
 
-<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 macro-since"><b class="param-since">Added in 5.3</b>
+
 
 
-<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;
@@ -293,10 +306,10 @@ Added in 5.3
 </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&#160;<a  href="configuration.html">tapestry.enable-minification</a> <span class="confluence-link">configuration symbol</span> 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="aui-message aui-message-warning macro-deprecated"><b class="param-deprecated">Deprecated since 5.3</b>
+
+
 
-<div class="aui-message aui-message-warning">
-Deprecated since 5.3 |
-&#160;
 </div><p>In versions prior to 5.3, Tapestry used a modified version of the Blackbird 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 interpolated 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);
 
@@ -308,10 +321,10 @@ Deprecated since 5.3 |
 </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="aui-message aui-message-warning macro-deprecated"><b class="param-deprecated">Deprecated since 5.2 (no replacement)</b>
+
+
 
-<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>
@@ -337,11 +350,10 @@ Tapestry also works well with other Java
 </pre>
 </div></div><p>The Asset is injected, using the <a  href="configuration.html">tapestry.scriptaculous</a> configuration symbol 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="aui-message aui-message-info macro-since"><b class="param-since">Added in 5.2</b>
+
 
 
-<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 {
 

Modified: websites/production/tapestry/content/limitations.html
==============================================================================
--- websites/production/tapestry/content/limitations.html (original)
+++ websites/production/tapestry/content/limitations.html Sun Feb 25 21:24:42 2018
@@ -66,6 +66,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Limitations</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 
@@ -78,11 +93,11 @@
 
       <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.rbtoc1519068034475 {padding: 0px;}
-div.rbtoc1519068034475 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1519068034475 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1519593700036 {padding: 0px;}
+div.rbtoc1519593700036 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1519593700036 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1519068034475">
+/*]]>*/</style></p><div class="toc-macro rbtoc1519593700036">
 <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 implementati
 on 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 class="brush: java; gutter: true; theme: Default" style="font-size:12px;">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 Sun Feb 25 21:24:42 2018
@@ -66,6 +66,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Link Components FAQ</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 
@@ -78,11 +93,11 @@
 
       <div id="content">
                 <div id="ConfluenceContent"><p>&#160;</p><p>&#160;</p><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.rbtoc1519068036913 {padding: 0px;}
-div.rbtoc1519068036913 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1519068036913 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1519593660535 {padding: 0px;}
+div.rbtoc1519593660535 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1519593660535 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1519068036913">
+/*]]>*/</style></p><div class="toc-macro rbtoc1519593660535">
 <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>&lt;a&gt;</code> tag:</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;a href="${profilePageLink}"&gt;Display Profile (w/ full details)&lt;/a&gt;
@@ -109,11 +124,11 @@ div.rbtoc1519068036913 li {margin-left:
 </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="aui-message aui-message-info macro-since"><b class="param-since">Added in 5.3</b>
+
 
+    <div class="param-body">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" rel="nofollow">property expression language</a>.</div>
 
-<div class="aui-message aui-message-info">
-Added in 5.3 
-   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" rel="nofollow">property expression language</a>.
 </div><h2 id="LinkComponentsFAQ-HowdoIcreateaLinkbacktothecurrentpagefromacomponent?">How do I create a Link back to the current page from a component?</h2><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;
 </pre>

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 Sun Feb 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Loading the Project Into Eclipse</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/localization.html
==============================================================================
--- websites/production/tapestry/content/localization.html (original)
+++ websites/production/tapestry/content/localization.html Sun Feb 25 21:24:42 2018
@@ -66,6 +66,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Localization</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

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 Sun Feb 25 21:24:42 2018
@@ -64,6 +64,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Logging in Tapestry</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/logging.html
==============================================================================
--- websites/production/tapestry/content/logging.html (original)
+++ websites/production/tapestry/content/logging.html Sun Feb 25 21:24:42 2018
@@ -64,6 +64,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Logging</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/mailing-lists.html
==============================================================================
--- websites/production/tapestry/content/mailing-lists.html (original)
+++ websites/production/tapestry/content/mailing-lists.html Sun Feb 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Mailing Lists</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

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 Sun Feb 25 21:24:42 2018
@@ -66,6 +66,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Maven Support FAQ</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 
@@ -78,11 +93,11 @@
 
       <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.rbtoc1519068037419 {padding: 0px;}
-div.rbtoc1519068037419 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1519068037419 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1519593751572 {padding: 0px;}
+div.rbtoc1519593751572 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1519593751572 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1519068037419">
+/*]]>*/</style></p><div class="toc-macro rbtoc1519593751572">
 <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 class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">  &lt;resource&gt;

Modified: websites/production/tapestry/content/menuleft.html
==============================================================================
--- websites/production/tapestry/content/menuleft.html (original)
+++ websites/production/tapestry/content/menuleft.html Sun Feb 25 21:24:42 2018
@@ -66,6 +66,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">menuleft</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

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 Sun Feb 25 21:24:42 2018
@@ -67,6 +67,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Meta-Programming Page Content</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/modules.html
==============================================================================
--- websites/production/tapestry/content/modules.html (original)
+++ websites/production/tapestry/content/modules.html Sun Feb 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Modules</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/navigation.html
==============================================================================
--- websites/production/tapestry/content/navigation.html (original)
+++ websites/production/tapestry/content/navigation.html Sun Feb 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Navigation</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/news.html
==============================================================================
--- websites/production/tapestry/content/news.html (original)
+++ websites/production/tapestry/content/news.html Sun Feb 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">News</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></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 Sun Feb 25 21:24:42 2018
@@ -64,6 +64,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Object Providers</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/operation-tracker.html
==============================================================================
--- websites/production/tapestry/content/operation-tracker.html (original)
+++ websites/production/tapestry/content/operation-tracker.html Sun Feb 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Operation Tracker</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

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 Sun Feb 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Ordering by Constraints</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

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 Sun Feb 25 21:24:42 2018
@@ -65,6 +65,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Overriding Exception Reporting</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

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 25 21:24:42 2018
@@ -66,6 +66,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page And Component Classes FAQ</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 
@@ -78,11 +93,11 @@
 
       <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.rbtoc1519064397997 {padding: 0px;}
-div.rbtoc1519064397997 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1519064397997 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1519593706938 {padding: 0px;}
+div.rbtoc1519593706938 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1519593706938 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1519064397997">
+/*]]>*/</style></p><div class="toc-macro rbtoc1519593706938">
 <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 class="brush: java; gutter: true; theme: Default" style="font-size:12px;">public static void contributeComponentClassResolver(Configuration&lt;LibraryMapping&gt; configuration) {
@@ -117,13 +132,13 @@ public class DBImage
 
 
 
-<span class="gliffy-container" id="gliffy-container-23527573-4104" 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-4231" data-fullwidth="750" data-ceoid="23335008" data-edit="${diagramEditLink.getLinkUrl()}" data-full="${diagramZoomLink.getLinkUrl()}" data-filename="Class Loaders">
 
-    <map id="gliffy-map-23527573-3751" name="gliffy-map-23527573-3751"></map>
+    <map id="gliffy-map-23527573-4185" name="gliffy-map-23527573-4185"></map>
 
-    <img class="gliffy-image" id="gliffy-image-23527573-4104" 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-3751">
+    <img class="gliffy-image" id="gliffy-image-23527573-4231" 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-4185">
 
-    <map class="gliffy-dynamic" id="gliffy-dynamic-map-23527573-4104" name="gliffy-dynamic-map-23527573-4104"></map>
+    <map class="gliffy-dynamic" id="gliffy-dynamic-map-23527573-4231" name="gliffy-dynamic-map-23527573-4231"></map>
 </span>
 
 

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 Sun Feb 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page And Component Classes</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

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 Sun Feb 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Life Cycle</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/page-navigation.html
==============================================================================
--- websites/production/tapestry/content/page-navigation.html (original)
+++ websites/production/tapestry/content/page-navigation.html Sun Feb 25 21:24:42 2018
@@ -66,6 +66,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Navigation</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 
@@ -156,11 +171,11 @@
 
 
 <p>In essence, a Tapestry application is a number of related pages, working together. To some degree, each page is like an application unto itself.</p><p>Any individual request will be targeted at a single page. Requests come in two forms:&#160;</p><ul><li><em>component event</em> requests target a specific component on a specific page, triggering an event within that component</li><li><em>render</em> requests target a specific page, and stream the HTML markup for that page back to the client</li></ul><p>This dichotomy between component event requests and render requests alleviates a number of problems in traditional web applications related to the browser back button, or to the user hitting the refresh button in their browser.</p><h3 id="PageNavigation-Contents">Contents</h3><h2 id="PageNavigation-Contents|RelatedArticlesLogicalPageNameShortening"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1518999689641 {padding: 0px;}
-div.rbtoc1518999689641 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1518999689641 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1519593689160 {padding: 0px;}
+div.rbtoc1519593689160 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1519593689160 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></h2><div class="toc-macro rbtoc1518999689641">
+/*]]>*/</style></h2><div class="toc-macro rbtoc1519593689160">
 <ul class="toc-indentation"><li><a  href="#PageNavigation-Contents|RelatedArticlesLogicalPageNameShortening">Logical Page Name Shortening</a></li><li><a  href="#PageNavigation-ComponentEventRequests&amp;Responses">Component Event Requests &amp; Responses</a>
 <ul class="toc-indentation"><li><a  href="#PageNavigation-1.Nullresponse">1. Null response</a></li><li><a  href="#PageNavigation-2.Stringresponse">2. String response</a></li><li><a  href="#PageNavigation-3.Classresponse">3. Class response</a></li><li><a  href="#PageNavigation-4.Pageresponse">4. Page response</a></li><li><a  href="#PageNavigation-5.HttpError">5. HttpError</a></li><li><a  href="#PageNavigation-6.Linkresponse">6. Link response</a></li><li><a  href="#PageNavigation-7.Streamresponse">7. Stream response</a></li><li><a  href="#PageNavigation-8.URLresponse">8. URL response</a></li><li><a  href="#PageNavigation-9.Objectresponse">9. Object response</a></li></ul>
 </li><li><a  href="#PageNavigation-PageRenderRequests">Page Render Requests</a></li><li><a  href="#PageNavigation-PageActivation">Page Activation</a></li><li><a  href="#PageNavigation-PageNavigationPatterns">Page Navigation Patterns</a>

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 25 21:24:42 2018
@@ -64,6 +64,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Parallel Execution</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 
@@ -81,11 +96,10 @@
 <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="aui-message aui-message-info macro-since"><b class="param-since">Added in 5.3</b>
+
 
 
-</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>
 

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 Sun Feb 25 21:24:42 2018
@@ -64,6 +64,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Parameter Type Coercion</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

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 Sun Feb 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Performance and Clustering</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

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 Sun Feb 25 21:24:42 2018
@@ -66,6 +66,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Persistent Page Data</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/persistent-state.html
==============================================================================
--- websites/production/tapestry/content/persistent-state.html (original)
+++ websites/production/tapestry/content/persistent-state.html Sun Feb 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Persistent State</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/pipelinebuilder-service.html
==============================================================================
--- websites/production/tapestry/content/pipelinebuilder-service.html (original)
+++ websites/production/tapestry/content/pipelinebuilder-service.html Sun Feb 25 21:24:42 2018
@@ -64,6 +64,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">PipelineBuilder Service</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/presentations.html
==============================================================================
--- websites/production/tapestry/content/presentations.html (original)
+++ websites/production/tapestry/content/presentations.html Sun Feb 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Presentations</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/principles.html
==============================================================================
--- websites/production/tapestry/content/principles.html (original)
+++ websites/production/tapestry/content/principles.html Sun Feb 25 21:24:42 2018
@@ -64,6 +64,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Principles</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 

Modified: websites/production/tapestry/content/project-layout.html
==============================================================================
--- websites/production/tapestry/content/project-layout.html (original)
+++ websites/production/tapestry/content/project-layout.html Sun Feb 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Project Layout</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </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 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Property Expressions</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 
@@ -135,11 +150,11 @@ mapKey : keyword | constant | propertyCh
 </pre>
 </div></div><p>
 
+</p><div class="aui-message aui-message-info macro-since"><b class="param-since">Added in 5.3</b>
+
 
+    <div class="param-body">Support for map literals was added in Tapestry 5.3.</div>
 
-</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="type-
 coercion.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="confluenceTd"><
 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(user.id)?.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..myList.size()</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Iterates between 1 and the result of getMyList().size()</p></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Literal String</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>'Beer is proof that God lov
 es 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>[user.name, 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 getUser.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/redirects.html
==============================================================================
--- websites/production/tapestry/content/redirects.html (original)
+++ websites/production/tapestry/content/redirects.html Sun Feb 25 21:24:42 2018
@@ -56,6 +56,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Redirects</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></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 25 21:24:42 2018
@@ -64,6 +64,21 @@
 <div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Registry Startup</h1></div>
 
 </div>
+            <div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" action="https://tapestry.apache.org/search.html">
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="https://tapestry.apache.org/images/tapestry_small.png" data-image-src="https://tapestry.apache.org/images/tapestry_small.png"></span></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 id="SmallBanner-PageTitle">Page Title</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 
@@ -85,11 +100,10 @@
 }</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="aui-message aui-message-info macro-since"><b class="param-since">Added in 5.2</b>
+
 
 
-</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
 {