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 2014/01/18 18:20:53 UTC

svn commit: r894641 [2/4] - in /websites/production/tapestry/content: cache/main.pageCache component-parameters.html configuration.html download.html exploring-the-project.html type-coercion.html using-tapestry-with-hibernate.html

Modified: websites/production/tapestry/content/configuration.html
==============================================================================
--- websites/production/tapestry/content/configuration.html (original)
+++ websites/production/tapestry/content/configuration.html Sat Jan 18 17:20:52 2014
@@ -29,6 +29,7 @@
   <link href='http://cxf.apache.org/resources/highlighter/styles/shThemeCXF.css' rel='stylesheet' type='text/css' />
   <script src='http://cxf.apache.org/resources/highlighter/scripts/shCore.js' type='text/javascript'></script>
   <script src='http://cxf.apache.org/resources/highlighter/scripts/shBrushJava.js' type='text/javascript'></script>
+  <script src='http://cxf.apache.org/resources/highlighter/scripts/shBrushXml.js' type='text/javascript'></script>
   <script type="text/javascript">
   SyntaxHighlighter.defaults['toolbar'] = false;
   SyntaxHighlighter.all();
@@ -126,31 +127,15 @@
                 
                             </div>
         </li></ul>
-</div>
-
-<h1 id="Configuration-ConfiguringTapestry">Configuring Tapestry</h1>
-
-<p>This page discusses all the ways in which Tapestry can be configured. Tapestry applications are configured almost entirely using Java, with very little XML at all.</p>
+</div><h1 id="Configuration-ConfiguringTapestry">Configuring Tapestry</h1><p>This page discusses all the ways in which Tapestry can be configured. Tapestry applications are configured almost entirely using Java, with very little XML at all.</p><p><strong>Contents</strong></p><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1390065643901 {padding: 0px;}
+div.rbtoc1390065643901 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1390065643901 li {margin-left: 0px;padding-left: 0px;}
 
-<p><strong>Contents</strong></p>
-<style type="text/css">/*<![CDATA[*/
-div.rbtoc1387423376310 {padding: 0px;}
-div.rbtoc1387423376310 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1387423376310 li {margin-left: 0px;padding-left: 0px;}
-
-/*]]>*/</style><div class="toc-macro rbtoc1387423376310">
+/*]]>*/</style></p><div class="toc-macro rbtoc1390065643901">
 <ul class="toc-indentation"><li><a shape="rect" href="#Configuration-XMLconfiguration(web.xml)">XML configuration (web.xml)</a></li><li><a shape="rect" href="#Configuration-YourApplication'sModuleClass">Your Application's Module Class</a></li><li><a shape="rect" href="#Configuration-ConfigurationSymbolNames">Configuration Symbol Names</a></li><li><a shape="rect" href="#Configuration-SettingComponentParameterDefaults">Setting Component Parameter Defaults</a></li><li><a shape="rect" href="#Configuration-ConfiguringIgnoredPaths">Configuring Ignored Paths</a></li><li><a shape="rect" href="#Configuration-ConfiguringContentTypeMapping">Configuring Content Type Mapping</a></li><li><a shape="rect" href="#Configuration-SettingExecutionModes">Setting Execution Modes</a></li><li><a shape="rect" href="#Configuration-SegregatingApplicationsIntoFolders">Segregating Applications Into Folders</a></li></ul>
-</div>
-
-<h2 id="Configuration-XMLconfiguration(web.xml)">XML configuration (web.xml)</h2>
-
-<p>Tapestry runs on top of the standard Java Servlet API. To the servlet container, such as Tomcat, Tapestry appears as a <em>servlet filter</em>. This gives Tapestry great flexibility in matching URLs without requiring lots of XML configuration.</p>
-
-<p>Although most configuration is done with Java, a small but necessary amount of configuration occurs inside the servlet deployment descriptor, WEB-INF/web.xml. Most of the configuration is boilerplate, nearly the same for all applications.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>web.xml (partial)</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;!DOCTYPE web-app
+</div><h2 id="Configuration-XMLconfiguration(web.xml)">XML configuration (web.xml)</h2><p>Tapestry runs on top of the standard Java Servlet API. To the servlet container, such as Tomcat, Tapestry appears as a <em>servlet filter</em>. This gives Tapestry great flexibility in matching URLs without requiring lots of XML configuration.</p><p>Although most configuration is done with Java, a small but necessary amount of configuration occurs inside the servlet deployment descriptor, WEB-INF/web.xml. Most of the configuration is boilerplate, nearly the same for all applications.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>web.xml (partial)</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;!DOCTYPE web-app
       PUBLIC &quot;-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN&quot;
       &quot;http://java.sun.com/dtd/web-app_2_3.dtd&quot;&gt;
 &lt;web-app&gt;
@@ -169,34 +154,13 @@ div.rbtoc1387423376310 li {margin-left: 
     &lt;/filter-mapping&gt;
 &lt;/web-app&gt;
 ]]></script>
-</div></div>
-
-<div class="navmenu" style="float:right; width:30%; background:#eee; margin:3px; padding:3px">
+</div></div><div class="navmenu" style="float:right; width:30%; background:#eee; margin:3px; padding:3px">
 <p><font color="#539126"><strong>Tapestry Requests vs. Container Requests</strong></font></p>
 
 <p>The Tapestry filter matches all the requests that apply to Tapestry, and passes the rest off to the servlet container. In situations where there would be a naming conflict, actual files inside the web application take precedence over Tapestry pages.</p>
 
-<p>Tapestry recognizes the <em>root URL</em>, where the servlet path is simply "/", and renders the application page "Index", if it exists.</p></div>
-
-<p>The application-specific part, the <code>tapestry.app-package</code> context parameter, provides your application's root package name. Tapestry uses this to locate your page and component classes. It expects page classes in the <code>pages</code> sub-package and components in the <code>components</code> sub-package. In the example above, page classes will be stored in the <code>org.example.myapp.pages</code> package (or in sub-packages below). Likewise, component classes will be stored in the <code>org.example.myapp.components</code> package.</p>
-
-<p>By convention, the filter name (<code>filter-name</code>) is almost always "app", but you can use any name you want. Tapestry uses this to determine what <em>module class</em> name to look for (see below).</p>
-
-<h2 id="Configuration-YourApplication'sModuleClass">Your Application's Module Class</h2>
-
-<p>Main Article: <a shape="rect" href="tapestry-ioc-configuration.html">Tapestry IoC Configuration</a></p>
-
-<p>Most other configuration occurs inside your application's module class. The application module class will often define new services, provide overrides of services, or make contributions to service configurations.</p>
-
-<p>Tapestry looks for your application module class in the services package (under the root package) of your application. It capitalizes the &lt;filter-name&gt; and appends "Module". In the previous example, because the filter name was "app" and the application's root package name is "org.example.myapp", the module class would be org.example.myapp.services.AppModule.</p>
-
-<p>If such a class exists, it is added to the IoC Registry. It is not an error for your application to not have a module class, though any non-trivial application will have one.</p>
-
-<p>Your application module class (usually AppModule.java) will typically override some of Tapestry's default, or "factory", symbols, by contributing overrides to the ApplicationDefaults service configuration. For example:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>AppModule.java</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-public class AppModule
+<p>Tapestry recognizes the <em>root URL</em>, where the servlet path is simply "/", and renders the application page "Index", if it exists.</p></div><p>The application-specific part, the <code>tapestry.app-package</code> context parameter, provides your application's root package name. Tapestry uses this to locate your page and component classes. It expects page classes in the <code>pages</code> sub-package and components in the <code>components</code> sub-package. In the example above, page classes will be stored in the <code>org.example.myapp.pages</code> package (or in sub-packages below). Likewise, component classes will be stored in the <code>org.example.myapp.components</code> package.</p><p>By convention, the filter name (<code>filter-name</code>) is almost always "app", but you can use any name you want. Tapestry uses this to determine what <em>module class</em> name to look for (see below).</p><h2 id="Configuration-YourApplication'sModuleClass">Your Application's Module Cla
 ss</h2><p>Main Article: <a shape="rect" href="tapestry-ioc-configuration.html">Tapestry IoC Configuration</a></p><p>Most other configuration occurs inside your application's module class. The application module class will often define new services, provide overrides of services, or make contributions to service configurations.</p><p>Tapestry looks for your application module class in the services package (under the root package) of your application. It capitalizes the &lt;filter-name&gt; and appends "Module". In the previous example, because the filter name was "app" and the application's root package name is "org.example.myapp", the module class would be org.example.myapp.services.AppModule.</p><p>If such a class exists, it is added to the IoC Registry. It is not an error for your application to not have a module class, though any non-trivial application will have one.</p><p>Your application module class (usually AppModule.java) will typically override some of Tapestry's default, o
 r "factory", symbols, by contributing overrides to the ApplicationDefaults service configuration. For example:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>AppModule.java</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[public class AppModule
 {
   public static void contributeApplicationDefaults(MappedConfiguration&lt;String,String&gt; configuration)
   {
@@ -205,29 +169,7 @@ public class AppModule
   }
 }
 ]]></script>
-</div></div>
-
-<h2 id="Configuration-ConfigurationSymbolNames">Configuration Symbol Names</h2>
-
-<p>Main Article: <a shape="rect" href="symbols.html">Symbols</a></p>
-
-<p>Many of Tapestry's built-in services (some of which are not even public) are configured via symbols. These symbols can be overridden by contributing to the ApplicationDefaults service configuration, or by placing a &lt;context-param&gt; element into the application's web.xml, or on the command line by defining JVM System Properties with the -D command line option.</p>
-
-<p>These symbols are always defined in terms of strings, and those strings are coerced to the appropriate type (a number, a boolean, etc.). Of special note are <em>time intervals</em>, which are specified in a <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/TimeInterval.html">particular format</a>.</p>
-
-<p>Each of these symbols has a corresponding constant defined in the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/SymbolConstants.html">SymbolConstants</a> class.</p>
-
-<h3 id="Configuration-tapestry.app-catalog">tapestry.app-catalog</h3>
-
-<p>The location of the global application message catalog, the default is context:WEB-INF/<em>app-name</em>.properties.</p>
-
-<h3 id="Configuration-tapestry.application-version">tapestry.application-version</h3>
-
-<p>The version of the application, which is incorporated into URLs for context and classpath assets. Assets may be <a shape="rect" href="response-compression.html">compressed</a>, and will have far-future expiration headers; they will be aggressively cached by the client web browser. You should change the application version on each new deployment of the application (that is, any time assets in the context change), to force clients to re-download changed versions of files. If you do not specify an application version, a <em>random</em> one will be assigned on every deployment (which is good for development but very bad for production).</p>
-
-<h3 id="Configuration-tapestry.application-folder">tapestry.application-folder</h3>
-
-
+</div></div><h2 id="Configuration-ConfigurationSymbolNames">Configuration Symbol Names</h2><p>Main Article: <a shape="rect" href="symbols.html">Symbols</a></p><p>Many of Tapestry's built-in services (some of which are not even public) are configured via symbols. These symbols can be overridden by contributing to the ApplicationDefaults service configuration, or by placing a &lt;context-param&gt; element into the application's web.xml, or on the command line by defining JVM System Properties with the -D command line option.</p><p>These symbols are always defined in terms of strings, and those strings are coerced to the appropriate type (a number, a boolean, etc.). Of special note are <em>time intervals</em>, which are specified in a <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/TimeInterval.html">particular format</a>.</p><p>Each of these symbols has a corresponding constant defined in the <a shape="rect" class="e
 xternal-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/SymbolConstants.html">SymbolConstants</a> class.</p><h3 id="Configuration-tapestry.app-catalog">tapestry.app-catalog</h3><p>The location of the global application message catalog, the default is context:WEB-INF/<em>app-name</em>.properties.</p><h3 id="Configuration-tapestry.application-version">tapestry.application-version</h3><p>The version of the application, which is incorporated into URLs for context and classpath assets. Assets may be <a shape="rect" href="response-compression.html">compressed</a>, and will have far-future expiration headers; they will be aggressively cached by the client web browser. You should change the application version on each new deployment of the application (that is, any time assets in the context change), to force clients to re-download changed versions of files. If you do not specify an application version, a <em>random</em> one will be assigned on every deployment (
 which is good for development but very bad for production).</p><h3 id="Configuration-tapestry.application-folder">tapestry.application-folder</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.3</p>
@@ -239,13 +181,7 @@ public class AppModule
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>The folder, of the context, in which the Tapestry application executes. By default this is blank, meaning the Tapestry application executes in the root of the web application context. Setting this value allows the Tapestry application to be <a shape="rect" href="#Configuration-SegregatingApplicationsIntoFolders">segregated into a folder</a>, which can be useful when Tapestry is executed inside a web application with other servlets or filters.</p>
-
-<h3 id="Configuration-tapestry.asset-url-fully-qualified">tapestry.asset-url-fully-qualified</h3>
-
-
+<p>&#160;</p></div><p>The folder, of the context, in which the Tapestry application executes. By default this is blank, meaning the Tapestry application executes in the root of the web application context. Setting this value allows the Tapestry application to be <a shape="rect" href="#Configuration-SegregatingApplicationsIntoFolders">segregated into a folder</a>, which can be useful when Tapestry is executed inside a web application with other servlets or filters.</p><h3 id="Configuration-tapestry.asset-url-fully-qualified">tapestry.asset-url-fully-qualified</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.3</p>
@@ -257,14 +193,7 @@ public class AppModule
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>A boolean value to indicate whether <a shape="rect" href="assets.html">asset</a> URLs should be fully qualified in the rendered page.<br clear="none">
-This defaults to <code>false</code> (not fully qualified).</p>
-
-<h3 id="Configuration-tapestry.asset-path-prefix">tapestry.asset-path-prefix</h3>
-
-
+<p>&#160;</p></div><p>A boolean value to indicate whether <a shape="rect" href="assets.html">asset</a> URLs should be fully qualified in the rendered page.<br clear="none"> This defaults to <code>false</code> (not fully qualified).</p><h3 id="Configuration-tapestry.asset-path-prefix">tapestry.asset-path-prefix</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.3.1</p>
@@ -276,15 +205,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>The prefix to be used for all asset paths. This should start <em>and</em> end with a slash ("/"). By default this is "/assets/".</p>
-
-<h3 id="Configuration-tapestry.blackbird-enabled">tapestry.blackbird-enabled</h3>
-
-<p>A flag (true or false). When "false" the Blackbird JavaScript console will be disabled (in Tapestry 5.2 and newer).  Defaults to "true".</p>
-
-
+<p>&#160;</p></div><p>The prefix to be used for all asset paths. This should start <em>and</em> end with a slash ("/"). By default this is "/assets/".</p><h3 id="Configuration-tapestry.blackbird-enabled">tapestry.blackbird-enabled</h3><p>A flag (true or false). When "false" the Blackbird JavaScript console will be disabled (in Tapestry 5.2 and newer). Defaults to "true".</p>
 
     <div class="aui-message problem shadowed information-macro">
                     <p class="title">Deprecated since 5.3</p>
@@ -296,11 +217,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p>The client-side BlackBird console has been removed.</p></div>
-
-<h3 id="Configuration-tapestry.bootstrap-root">tapestry.bootstrap-root</h3>
-
-
+<p>The client-side BlackBird console has been removed.</p></div><h3 id="Configuration-tapestry.bootstrap-root">tapestry.bootstrap-root</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.4</p>
@@ -312,17 +229,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>The root asset path for Twitter Bootstrap; if your application uses a modified version of Bootstrap, you can override this symbol to have Tapestry automatically use your version. The value should be a path to a folder (under "classpath:" or "context:") and should not include a trailing slash.</p>
-
-<h3 id="Configuration-tapestry.charset">tapestry.charset</h3>
-
-<p>The character encoding used when generating output (or parsing input). The default is "UTF-8".  See <a shape="rect" href="content-type-and-markup.html">Content Type and Markup</a> for more details.</p>
-
-<h3 id="Configuration-tapestry.clustered-sessions">tapestry.clustered-sessions</h3>
-
-
+<p>&#160;</p></div><p>The root asset path for Twitter Bootstrap; if your application uses a modified version of Bootstrap, you can override this symbol to have Tapestry automatically use your version. The value should be a path to a folder (under "classpath:" or "context:") and should not include a trailing slash.</p><h3 id="Configuration-tapestry.charset">tapestry.charset</h3><p>The character encoding used when generating output (or parsing input). The default is "UTF-8". See <a shape="rect" href="content-type-and-markup.html">Content Type and Markup</a> for more details.</p><h3 id="Configuration-tapestry.clustered-sessions">tapestry.clustered-sessions</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.3</p>
@@ -334,19 +241,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>If "true" then at the end of each request the SessionPersistedObjectAnalyzer will be called on each session persisted object that was accessed during the request. The default is "true", to preserve 5.2 behavior. For non-clustered applications (the majority), this value should be overridden to "false".</p>
-
-<h3 id="Configuration-tapestry.combine-scripts">tapestry.combine-scripts</h3>
-
-<p>If "true", then Tapestry will combine (or "aggregate") the individual JavaScript libraries within a JavaScript stack; this reduces the number of requests from the client to the server, as the client can cache the combined JavaScript files locally (and will not need to re-download them on subsequent pages).  The implementation of this changed significantly between Tapestry 5.1 and 5.2.</p>
-
-<p>Defaults to "true" in production mode.</p>
-
-<h3 id="Configuration-tapestry.compact-json">tapestry.compact-json</h3>
-
-
+<p>&#160;</p></div><p>If "true" then at the end of each request the SessionPersistedObjectAnalyzer will be called on each session persisted object that was accessed during the request. The default is "true", to preserve 5.2 behavior. For non-clustered applications (the majority), this value should be overridden to "false".</p><h3 id="Configuration-tapestry.combine-scripts">tapestry.combine-scripts</h3><p>If "true", then Tapestry will combine (or "aggregate") the individual JavaScript libraries within a JavaScript stack; this reduces the number of requests from the client to the server, as the client can cache the combined JavaScript files locally (and will not need to re-download them on subsequent pages). The implementation of this changed significantly between Tapestry 5.1 and 5.2.</p><p>Defaults to "true" in production mode.</p><h3 id="Configuration-tapestry.compact-json">tapestry.compact-json</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.2</p>
@@ -358,13 +253,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>If "true", then JSON page initialization content is compressed; if "false" then extra white space is added (pretty printing). Defaults to "true" in production mode.</p>
-
-<h3 id="Configuration-tapestry.compatibility.unknown-component-id-check-enabled">tapestry.compatibility.unknown-component-id-check-enabled</h3>
-
-
+<p>&#160;</p></div><p>If "true", then JSON page initialization content is compressed; if "false" then extra white space is added (pretty printing). Defaults to "true" in production mode.</p><h3 id="Configuration-tapestry.compatibility.unknown-component-id-check-enabled">tapestry.compatibility.unknown-component-id-check-enabled</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.3</p>
@@ -376,8 +265,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
+<p>&#160;</p></div>
 
     <div class="aui-message problem shadowed information-macro">
                     <p class="title">Deprecated since 5.3</p>
@@ -389,21 +277,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-</div>
-
-<p>When enabled, Tapestry will check that component ids referenced in event handler method names (or the @OnEvent annotation) match up against components in the container's template. The default is true, but applications upgraded form Tapestry 5.2 may want to set this to false, to keep pages from failing due to the presence of such dead code.</p>
-
-<h3 id="Configuration-tapestry.component-render-tracing-enabled">tapestry.component-render-tracing-enabled</h3>
-
-<p>Starting with version 5.3, if "true" then Tapestry will emit rendering comments for all requests; these are comments (such as &lt;!--BEGIN Index:loop (context:Index.tml, line 15)--&gt;) that can assist you in debugging markup output on the client-side. This will significantly increase the size of the rendered markup, but can be very helpful with complex layouts to determine which component was responsible for which portion of the rendered page. (To turn on rendering comments only for a particular request, add the query parameter t:component-trace=true to the URL.)</p>
-
-<h3 id="Configuration-tapestry.compress-whitespace">tapestry.compress-whitespace</h3>
-
-<p>A flag (true or false). When true (the default) whitespace in component templates is compressed by default (this can be fine-tuned using the standard xml:space attribute on an element in the template). When this flag is false, then whitespace is retained by default (but can still be overridden).</p>
-
-<h3 id="Configuration-tapestry.compressed-asset-path-prefix">tapestry.compressed-asset-path-prefix</h3>
-
-
+<p>&#160;</p></div><p>When enabled, Tapestry will check that component ids referenced in event handler method names (or the @OnEvent annotation) match up against components in the container's template. The default is true, but applications upgraded form Tapestry 5.2 may want to set this to false, to keep pages from failing due to the presence of such dead code.</p><h3 id="Configuration-tapestry.component-render-tracing-enabled">tapestry.component-render-tracing-enabled</h3><p>Starting with version 5.3, if "true" then Tapestry will emit rendering comments for all requests; these are comments (such as &lt;!--BEGIN Index:loop (context:Index.tml, line 15)--&gt;) that can assist you in debugging markup output on the client-side. This will significantly increase the size of the rendered markup, but can be very helpful with complex layouts to determine which component was responsible for which portion of the rendered page. (To turn on rendering comments only for a particular request, add t
 he query parameter t:component-trace=true to the URL.)</p><h3 id="Configuration-tapestry.compress-whitespace">tapestry.compress-whitespace</h3><p>A flag (true or false). When true (the default) whitespace in component templates is compressed by default (this can be fine-tuned using the standard xml:space attribute on an element in the template). When this flag is false, then whitespace is retained by default (but can still be overridden).</p><h3 id="Configuration-tapestry.compressed-asset-path-prefix">tapestry.compressed-asset-path-prefix</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.4</p>
@@ -415,13 +289,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>As with <a shape="rect" href="#Configuration-tapestry.asset-path-prefix">tapestry.asset-path-prefix</a> but for compressed versions of assets. At render time, Tapestry determines whether each asset is compressable (for example, image file formats are not). A path for either tapestry.asset-path-prefix or this prefix is selected at render time.  Defaults to the asset path prefix with ".gz" appended.</p>
-
-<h3 id="Configuration-tapestry.context-path">tapestry.context-path</h3>
-
-
+<p>&#160;</p></div><p>As with <a shape="rect" href="#Configuration-tapestry.asset-path-prefix">tapestry.asset-path-prefix</a> but for compressed versions of assets. At render time, Tapestry determines whether each asset is compressable (for example, image file formats are not). A path for either tapestry.asset-path-prefix or this prefix is selected at render time. Defaults to the asset path prefix with ".gz" appended.</p><h3 id="Configuration-tapestry.context-path">tapestry.context-path</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.4</p>
@@ -433,13 +301,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>Identifies the context path of the application, as determined from ServletContext.getContextPath() method. This is either a blank string or a string that starts with a slash but does not end with one.</p>
-
-<h3 id="Configuration-tapestry.datepicker">tapestry.datepicker</h3>
-
-
+<p>&#160;</p></div><p>Identifies the context path of the application, as determined from ServletContext.getContextPath() method. This is either a blank string or a string that starts with a slash but does not end with one.</p><h3 id="Configuration-tapestry.datepicker">tapestry.datepicker</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.2</p>
@@ -451,17 +313,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>The Asset path to the embedded datepicker</p>
-
-<h3 id="Configuration-tapestry.default-cookie-max-age">tapestry.default-cookie-max-age</h3>
-
-<p>The default time interval that cookies created by Tapestry will be kept in the client web browser. Primarily, this is used with a cookie that exists to track the preferred user locale. The default value is "7 d" (7 days; see <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/TimeInterval.html">Time Interval Formats</a>).</p>
-
-<h3 id="Configuration-tapestry.default-stylesheet">tapestry.default-stylesheet</h3>
-
-
+<p>&#160;</p></div><p>The Asset path to the embedded datepicker</p><h3 id="Configuration-tapestry.default-cookie-max-age">tapestry.default-cookie-max-age</h3><p>The default time interval that cookies created by Tapestry will be kept in the client web browser. Primarily, this is used with a cookie that exists to track the preferred user locale. The default value is "7 d" (7 days; see <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/TimeInterval.html">Time Interval Formats</a>).</p><h3 id="Configuration-tapestry.default-stylesheet">tapestry.default-stylesheet</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.3.6</p>
@@ -473,13 +325,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>In 5.3, this is the default stylesheet automatically injected into every rendered HTML page. Many Tapestry components assume that this stylesheet is available. All the classes defined in the stylesheet are prefixed with "t-". The exact contents of the stylesheet are subject to change at any time (they are considered internal), so replacing the stylesheet, rather than overriding selected rules within it, entails some risk.</p>
-
-<p>The default is org/apache/tapestry5/default.css, stored on the classpath.</p>
-
-
+<p>&#160;</p></div><p>In 5.3, this is the default stylesheet automatically injected into every rendered HTML page. Many Tapestry components assume that this stylesheet is available. All the classes defined in the stylesheet are prefixed with "t-". The exact contents of the stylesheet are subject to change at any time (they are considered internal), so replacing the stylesheet, rather than overriding selected rules within it, entails some risk.</p><p>The default is org/apache/tapestry5/default.css, stored on the classpath.</p>
 
     <div class="aui-message problem shadowed information-macro">
                     <p class="title">Deprecated since 5.4</p>
@@ -491,11 +337,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p>Deprecated in 5.4 with no replacement. The stylesheet is now associated with the core JavaScriptStack</p></div>
-
-<h3 id="Configuration-tapestry.enable-minification">tapestry.enable-minification</h3>
-
-
+<p>Deprecated in 5.4 with no replacement. The stylesheet is now associated with the core JavaScriptStack</p></div><h3 id="Configuration-tapestry.enable-minification">tapestry.enable-minification</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.3.6</p>
@@ -507,39 +349,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>If "true", then resources (individually or when aggregated into stacks) will be minimized via the ResourceMinimizer service. If "false", then minification is disabled. The default is "true" in production mode, "false" otherwise.</p>
-
-<p>Note that Tapestry's default implementation of ResourceMinimizer does nothing; minification is provided by add-on libraries.</p>
-
-<h3 id="Configuration-tapestry.encode-locale-into-path">tapestry.encode-locale-into-path</h3>
-
-<p>If "true" (the default), then the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/PersistentLocale.html">PersistentLocale</a> will be encoded into URLs by the ComponentEventLinkEncoder service. If overridden to "false" this does not occur, but you should provide a LinkCreationListener2 (registered with the LinkCreationHub) in order to add the locale as a query parameter (or provide some alternate means of persisting the locale between requests).</p>
-
-<h3 id="Configuration-tapestry.exception-report-page">tapestry.exception-report-page</h3>
-
-<p>The name of the page used to report exceptions. This defaults to "ExceptionReport".</p>
-
-<h3 id="Configuration-tapestry.execution-mode">tapestry.execution-mode</h3>
-
-<p>The execution mode. See <a shape="rect" href="#Configuration-SettingExecutionModes">Setting Execution Modes</a> below.</p>
-
-<h3 id="Configuration-tapestry.file-check-interval">tapestry.file-check-interval</h3>
-
-<p>Time interval between file system checks. During a file system check, only a single thread is active (all others are blocked) and any files loaded are checked for changes (this is part of <a shape="rect" href="#Configuration-reload.html">automatic component reloading</a>).</p>
-
-<p>The default is "1 s" (one second; see <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/TimeInterval.html">Time Interval Formats</a>), and is usually overridden with a higher value in production (say, between one and five minutes).</p>
-
-<h3 id="Configuration-tapestry.file-check-update-timeout">tapestry.file-check-update-timeout</h3>
-
-<p>Time interval that Tapestry will wait to obtain the exclusive lock needed for a file check. If the exclusive lock can't be obtained in that amount of time, the request will proceed normally (without the check), but each successive request will attempt to get the lock and perform the check until successful.</p>
-
-<p>The default is "50 ms" (50 milliseconds; see <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/TimeInterval.html">Time Interval Formats</a>).</p>
-
-<h3 id="Configuration-tapestry.force-absolute-uris">tapestry.force-absolute-uris</h3>
-
-
+<p>&#160;</p></div><p>If "true", then resources (individually or when aggregated into stacks) will be minimized via the ResourceMinimizer service. If "false", then minification is disabled. The default is "true" in production mode, "false" otherwise.</p><p>Note that Tapestry's default implementation of ResourceMinimizer does nothing; minification is provided by add-on libraries.</p><h3 id="Configuration-tapestry.encode-locale-into-path">tapestry.encode-locale-into-path</h3><p>If "true" (the default), then the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/PersistentLocale.html">PersistentLocale</a> will be encoded into URLs by the ComponentEventLinkEncoder service. If overridden to "false" this does not occur, but you should provide a LinkCreationListener2 (registered with the LinkCreationHub) in order to add the locale as a query parameter (or provide some alternate means of persisting the locale between requests
 ).</p><h3 id="Configuration-tapestry.exception-report-page">tapestry.exception-report-page</h3><p>The name of the page used to report exceptions. This defaults to "ExceptionReport".</p><h3 id="Configuration-tapestry.execution-mode">tapestry.execution-mode</h3><p>The execution mode. See <a shape="rect" href="#Configuration-SettingExecutionModes">Setting Execution Modes</a> below.</p><h3 id="Configuration-tapestry.file-check-interval">tapestry.file-check-interval</h3><p>Time interval between file system checks. During a file system check, only a single thread is active (all others are blocked) and any files loaded are checked for changes (this is part of <a shape="rect" href="#Configuration-reload.html">automatic component reloading</a>).</p><p>The default is "1 s" (one second; see <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/TimeInterval.html">Time Interval Formats</a>), and is usually overridden with a higher va
 lue in production (say, between one and five minutes).</p><h3 id="Configuration-tapestry.file-check-update-timeout">tapestry.file-check-update-timeout</h3><p>Time interval that Tapestry will wait to obtain the exclusive lock needed for a file check. If the exclusive lock can't be obtained in that amount of time, the request will proceed normally (without the check), but each successive request will attempt to get the lock and perform the check until successful.</p><p>The default is "50 ms" (50 milliseconds; see <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/TimeInterval.html">Time Interval Formats</a>).</p><h3 id="Configuration-tapestry.force-absolute-uris">tapestry.force-absolute-uris</h3>
 
     <div class="aui-message problem shadowed information-macro">
                     <p class="title">Deprecated since 5.2</p>
@@ -551,17 +361,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p>Starting in Tapestry 5.2, the optimization to generate relative URIs has been removed, and all URIs are always absolute.  <em>Removed in 5.3.</em></p></div>
-
-<p><em>For Tapestry 5.0 and 5.1 only</em>: when false (the default), Tapestry will attempt to optimize URIs that it generates, using relative URIs when such URIs are shorter than absolute URIs. When true, all URIs will be absolute URIs (including the context path, and the complete path for the request).  </p>
-
-<h3 id="Configuration-tapestry.gzip-compression-enabled">tapestry.gzip-compression-enabled</h3>
-
-<p>Override to "false" to disable GZIP compression of dynamic Tapestry pages and static assets.</p>
-
-<h3 id="Configuration-tapestry.hostname">tapestry.hostname</h3>
-
-
+<p>Starting in Tapestry 5.2, the optimization to generate relative URIs has been removed, and all URIs are always absolute.  <em>Removed in 5.3.</em></p></div><p><em>For Tapestry 5.0 and 5.1 only</em>: when false (the default), Tapestry will attempt to optimize URIs that it generates, using relative URIs when such URIs are shorter than absolute URIs. When true, all URIs will be absolute URIs (including the context path, and the complete path for the request).</p><h3 id="Configuration-tapestry.gzip-compression-enabled">tapestry.gzip-compression-enabled</h3><p>Override to "false" to disable GZIP compression of dynamic Tapestry pages and static assets.</p><h3 id="Configuration-tapestry.hostname">tapestry.hostname</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.3</p>
@@ -573,13 +373,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>The hostname that application should use when constructing an absolute URL. The default is "", i.e. an empty string, in which case system will use request.getServerName(). Not the same as environment variable HOSTNAME (but you could contribute "$HOSTNAME" as the value to make it the same).</p>
-
-<h3 id="Configuration-tapestry.hostport">tapestry.hostport</h3>
-
-
+<p>&#160;</p></div><p>The hostname that application should use when constructing an absolute URL. The default is "", i.e. an empty string, in which case system will use request.getServerName(). Not the same as environment variable HOSTNAME (but you could contribute "$HOSTNAME" as the value to make it the same).</p><h3 id="Configuration-tapestry.hostport">tapestry.hostport</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.3</p>
@@ -591,13 +385,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>The port that application should use when constructing an absolute URL. The default is "0", i.e. use the port value from the request.</p>
-
-<h3 id="Configuration-tapestry.hostport-secure">tapestry.hostport-secure</h3>
-
-
+<p>&#160;</p></div><p>The port that application should use when constructing an absolute URL. The default is "0", i.e. use the port value from the request.</p><h3 id="Configuration-tapestry.hostport-secure">tapestry.hostport-secure</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.3</p>
@@ -609,13 +397,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>The secure (https) port that application should use when constructing an absolute URL. The default is "0", i.e. use the value from the request.</p>
-
-<h3 id="Configuration-tapestry.hmac-passphrase">tapestry.hmac-passphrase</h3>
-
-
+<p>&#160;</p></div><p>The secure (https) port that application should use when constructing an absolute URL. The default is "0", i.e. use the value from the request.</p><h3 id="Configuration-tapestry.hmac-passphrase">tapestry.hmac-passphrase</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.3.6</p>
@@ -627,13 +409,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>The plaintext phrase used to set the key for <a shape="rect" class="external-link" href="http://en.wikipedia.org/wiki/HMAC" >HMAC</a> securing of serialized object data. The default is blank, which causes a runtime alert and console error. You should set this to a reasonably unique, private value, and ensure (in a cluster) that all servers use the same value &#8211; typically by making a contribution in your applications module class (normally AppModule.java).</p>
-
-<h3 id="Configuration-tapestry.include-core-stack">tapestry.include-core-stack</h3>
-
-
+<p>&#160;</p></div><p>The plaintext phrase used to set the key for <a shape="rect" class="external-link" href="http://en.wikipedia.org/wiki/HMAC" >HMAC</a> securing of serialized object data. The default is blank, which causes a runtime alert and console error. You should set this to a reasonably unique, private value, and ensure (in a cluster) that all servers use the same value &#8211; typically by making a contribution in your applications module class (normally AppModule.java).</p><h3 id="Configuration-tapestry.include-core-stack">tapestry.include-core-stack</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.4</p>
@@ -645,13 +421,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>Whether to include Tapestry's "core" stack of JavaScript libraries. The default is "true".</p>
-
-<h3 id="Configuration-tapestry.javascript-infrastructure-provider">tapestry.javascript-infrastructure-provider</h3>
-
-
+<p>&#160;</p></div><p>Whether to include Tapestry's "core" stack of JavaScript libraries. The default is "true".</p><h3 id="Configuration-tapestry.javascript-infrastructure-provider">tapestry.javascript-infrastructure-provider</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.4</p>
@@ -663,23 +433,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>Tapestry relies on an underlying client-side JavaScript infrastructure framework to handle DOM manipulation, event handling, and Ajax requests. Through Tapestry 5.3, the foundation was <a shape="rect" class="external-link" href="http://http://prototypejs.org/" >Prototype</a>. In 5.4, support for <a shape="rect" class="external-link" href="http://jquery.org/" >jQuery</a> has been added, and it is possible to add others. This symbol defines a value that is used to select a resource that is provided to the ModuleManager service as a JavaScriptModuleConfiguration to provide a specific implementation of the <code>t5/core/dom</code> module. Tapestry 5.4 directly supports "prototype" or "jquery".  To support other foundation frameworks, override this symbol value and supply your own module configuration.</p>
-
-<p>In Tapestry 5.4, this defaults to "prototype" for compatibility with 5.3. This will likely change in 5.5 to default to "jquery". At some point in the future, Prototype support may no longer be present.</p>
-
-<h3 id="Configuration-tapestry.min-gzip-size">tapestry.min-gzip-size</h3>
-
-<p>The minimum stream size necessary for Tapestry to use GZIP compression on the response stream.  See <a shape="rect" href="response-compression.html">Response Compression</a> for more details.</p>
-
-<h3 id="Configuration-tapestry.omit-generator-meta">tapestry.omit-generator-meta</h3>
-
-<p>If "true", then the &lt;meta&gt; tag that Tapestry normally writes into the &lt;head&gt;, identifying the Tapestry version, will be omitted. Use this when you do not wish to advertise your application's use of Tapestry.</p>
-
-<h3 id="Configuration-tapestry.page-pool.active-window">tapestry.page-pool.active-window</h3>
-
-
+<p>&#160;</p></div><p>Tapestry relies on an underlying client-side JavaScript infrastructure framework to handle DOM manipulation, event handling, and Ajax requests. Through Tapestry 5.3, the foundation was <a shape="rect" class="external-link" href="http://http//prototypejs.org/" >Prototype</a>. In 5.4, support for <a shape="rect" class="external-link" href="http://jquery.org/" >jQuery</a> has been added, and it is possible to add others. This symbol defines a value that is used to select a resource that is provided to the ModuleManager service as a JavaScriptModuleConfiguration to provide a specific implementation of the <code>t5/core/dom</code> module. Tapestry 5.4 directly supports "prototype" or "jquery". To support other foundation frameworks, override this symbol value and supply your own module configuration.</p><p>In Tapestry 5.4, this defaults to "prototype" for compatibility with 5.3. This will likely change in 5.5 to default to "jquery". At some point in the future, Prot
 otype support may no longer be present.</p><h3 id="Configuration-tapestry.min-gzip-size">tapestry.min-gzip-size</h3><p>The minimum stream size necessary for Tapestry to use GZIP compression on the response stream. See <a shape="rect" href="response-compression.html">Response Compression</a> for more details.</p><h3 id="Configuration-tapestry.omit-generator-meta">tapestry.omit-generator-meta</h3><p>If "true", then the &lt;meta&gt; tag that Tapestry normally writes into the &lt;head&gt;, identifying the Tapestry version, will be omitted. Use this when you do not wish to advertise your application's use of Tapestry.</p><h3 id="Configuration-tapestry.page-pool.active-window">tapestry.page-pool.active-window</h3>
 
     <div class="aui-message problem shadowed information-macro">
                     <p class="title">Deprecated since 5.2</p>
@@ -691,19 +445,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p>Starting in 5.2, this is only used if tapestry.page-pool-enabled is "true". <em>Removed in 5.3</em></p></div>
-
-<p>The time interval that an instantiated page instance may be cached before being removed. As pages are returned to the pool, they are time stamped. Periodically (as per the file check interval), the pool is scanned for page instances that have not been used recently; those that are outside the active window are discarded. This is used to free up unnecessary page instances after a request surge.  Starting in 5.2, this is only effective if tapestry.page-pool-enabled is true.</p>
-
-<p>The default is "10 m" (10 minutes; see <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/TimeInterval.html">Time Interval Formats</a>).</p>
-
-<h3 id="Configuration-tapestry.page-pool-enabled">tapestry.page-pool-enabled</h3>
-
-<p>Starting with Tapestry 5.2, page pooling has been turned off by default. This symbol lets you re-enable page pooling.  Under most circumstances this symbol should not be set.  The disabling of page pooling starting in 5.2 significantly reduces heap memory usage and improves performance for most web applications.</p>
-
-<p>The default is "false".</p>
-
-
+<p>Starting in 5.2, this is only used if tapestry.page-pool-enabled is "true". <em>Removed in 5.3</em></p></div><p>The time interval that an instantiated page instance may be cached before being removed. As pages are returned to the pool, they are time stamped. Periodically (as per the file check interval), the pool is scanned for page instances that have not been used recently; those that are outside the active window are discarded. This is used to free up unnecessary page instances after a request surge. Starting in 5.2, this is only effective if tapestry.page-pool-enabled is true.</p><p>The default is "10 m" (10 minutes; see <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/TimeInterval.html">Time Interval Formats</a>).</p><h3 id="Configuration-tapestry.page-pool-enabled">tapestry.page-pool-enabled</h3><p>Starting with Tapestry 5.2, page pooling has been turned off by default. This symbol lets you re-enable page p
 ooling. Under most circumstances this symbol should not be set. The disabling of page pooling starting in 5.2 significantly reduces heap memory usage and improves performance for most web applications.</p><p>The default is "false".</p>
 
     <div class="aui-message problem shadowed information-macro">
                     <p class="title">Deprecated since 5.2</p>
@@ -715,11 +457,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p>Removed in 5.3.</p></div>
-
-<h3 id="Configuration-tapestry.page-pool.hard-limit">tapestry.page-pool.hard-limit</h3>
-
-
+<p>Removed in 5.3.</p></div><h3 id="Configuration-tapestry.page-pool.hard-limit">tapestry.page-pool.hard-limit</h3>
 
     <div class="aui-message problem shadowed information-macro">
                     <p class="title">Deprecated since 5.2</p>
@@ -731,15 +469,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p>Starting in 5.2, this is only used if tapestry.page-pool-enabled is "true". <em>Removed in 5.3</em></p></div>
-
-<p>The absolute maximum number of page instances (for a particular page name / locale combination) that Tapestry will create at any time. If this number is reached, then requests will fail because a page instance is not available ... this can happen as part of a denial of service attack. For this value to have any meaning, it should be lower than the number of threads that the servlet container is configured to use when processing requests.</p>
-
-<p>The default is 20 page instances.</p>
-
-<h3 id="Configuration-tapestry.page-pool.soft-limit">tapestry.page-pool.soft-limit</h3>
-
-
+<p>Starting in 5.2, this is only used if tapestry.page-pool-enabled is "true". <em>Removed in 5.3</em></p></div><p>The absolute maximum number of page instances (for a particular page name / locale combination) that Tapestry will create at any time. If this number is reached, then requests will fail because a page instance is not available ... this can happen as part of a denial of service attack. For this value to have any meaning, it should be lower than the number of threads that the servlet container is configured to use when processing requests.</p><p>The default is 20 page instances.</p><h3 id="Configuration-tapestry.page-pool.soft-limit">tapestry.page-pool.soft-limit</h3>
 
     <div class="aui-message problem shadowed information-macro">
                     <p class="title">Deprecated since 5.2</p>
@@ -751,15 +481,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p>Starting in 5.2, this is only used if tapestry.page-pool-enabled is "true". <em>Removed in 5.3</em></p></div>
-
-<p>The number of pages in the page pool (for a given page name / locale combination) before which Tapestry will start to wait for existing pages to be made available. Under this limit of pages, Tapestry will simply create a new page instance if no existing instance is readily available. Once the soft limit is reached, Tapestry will wait a short period of time (the soft wait interval) to see if an existing page instance is made available. It will then create a new page instance (unless the hard limit has been reached).</p>
-
-<p>The default is 5 page instances. Remember that page pooling is done separately for each page (and localization of the page).</p>
-
-<h3 id="Configuration-tapestry.page-pool.soft-wait">tapestry.page-pool.soft-wait</h3>
-
-
+<p>Starting in 5.2, this is only used if tapestry.page-pool-enabled is "true". <em>Removed in 5.3</em></p></div><p>The number of pages in the page pool (for a given page name / locale combination) before which Tapestry will start to wait for existing pages to be made available. Under this limit of pages, Tapestry will simply create a new page instance if no existing instance is readily available. Once the soft limit is reached, Tapestry will wait a short period of time (the soft wait interval) to see if an existing page instance is made available. It will then create a new page instance (unless the hard limit has been reached).</p><p>The default is 5 page instances. Remember that page pooling is done separately for each page (and localization of the page).</p><h3 id="Configuration-tapestry.page-pool.soft-wait">tapestry.page-pool.soft-wait</h3>
 
     <div class="aui-message problem shadowed information-macro">
                     <p class="title">Deprecated since 5.2</p>
@@ -771,23 +493,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p>Starting in 5.2, this is only used if tapestry.page-pool-enabled is "true". <em>Removed in 5.3</em></p></div>
-
-<p>The time interval that Tapestry will wait for a page instance to become available before deciding whether to create an entirely new page instance.</p>
-
-<p>The default is "10 ms" (10 milliseconds; see <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/TimeInterval.html">Time Interval Formats</a>).</p>
-
-<h3 id="Configuration-tapestry.persistence-strategy">tapestry.persistence-strategy</h3>
-
-<p>Identifies the default <a shape="rect" class="external-link" href="http://tapestry.apache.org/persistent-page-data.html#PersistentPageData-PersistenceStrategies">persistence strategy</a> for all pages that do not provide an override. The default is "session" (PersistenceConstants.SESSION).</p>
-
-<h3 id="Configuration-tapestry.production-mode">tapestry.production-mode</h3>
-
-<p>A flag (true or false) indicating whether the application is running in production or in development. The default is true, which means that runtime exceptions are not reported with full detail (only the root exception message is displayed, not the entire stack of exceptions, properties and other information shown in development mode).</p>
-
-<h3 id="Configuration-tapestry.requirejs">tapestry.requirejs</h3>
-
-
+<p>Starting in 5.2, this is only used if tapestry.page-pool-enabled is "true". <em>Removed in 5.3</em></p></div><p>The time interval that Tapestry will wait for a page instance to become available before deciding whether to create an entirely new page instance.</p><p>The default is "10 ms" (10 milliseconds; see <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/TimeInterval.html">Time Interval Formats</a>).</p><h3 id="Configuration-tapestry.persistence-strategy">tapestry.persistence-strategy</h3><p>Identifies the default <a shape="rect" class="external-link" href="http://tapestry.apache.org/persistent-page-data.html#PersistentPageData-PersistenceStrategies">persistence strategy</a> for all pages that do not provide an override. The default is "session" (PersistenceConstants.SESSION).</p><h3 id="Configuration-tapestry.production-mode">tapestry.production-mode</h3><p>A flag (true or false) indicating whether the applica
 tion is running in production or in development. The default is true, which means that runtime exceptions are not reported with full detail (only the root exception message is displayed, not the entire stack of exceptions, properties and other information shown in development mode).</p><h3 id="Configuration-tapestry.requirejs">tapestry.requirejs</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.4</p>
@@ -799,21 +505,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>The Asset path to the copy of the Require JS JavaScript library to include in rendered pages. Any page that makes use of any JavaScript will automatically import this library (as well as the core JavaScript stack).</p>
-
-<h3 id="Configuration-tapestry.secure-enabled">tapestry.secure-enabled</h3>
-
-<p>If true, then @<a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Secure.html">Secure</a> annotations are honored; if false, no security checks or redirects take place. This defaults to tapestry.production-mode, meaning that in development mode it will (by default) be disabled.</p>
-
-<h3 id="Configuration-tapestry.secure-page">tapestry.secure-page</h3>
-
-<p>If true, then the page may only be accessed via HTTPS. The @<a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Secure.html">Secure</a> annotation will set this value to true. This symbol is the default for all pages; set it to "true" to force the entire application to be secure.</p>
-
-<h3 id="Configuration-tapestry.service-reloading-enabled">tapestry.service-reloading-enabled</h3>
-
-
+<p>&#160;</p></div><p>The Asset path to the copy of the Require JS JavaScript library to include in rendered pages. Any page that makes use of any JavaScript will automatically import this library (as well as the core JavaScript stack).</p><h3 id="Configuration-tapestry.secure-enabled">tapestry.secure-enabled</h3><p>If true, then @<a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Secure.html">Secure</a> annotations are honored; if false, no security checks or redirects take place. This defaults to tapestry.production-mode, meaning that in development mode it will (by default) be disabled.</p><h3 id="Configuration-tapestry.secure-page">tapestry.secure-page</h3><p>If true, then the page may only be accessed via HTTPS. The @<a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Secure.html">Secure</a> annotation will set this value to true. This symbol 
 is the default for all pages; set it to "true" to force the entire application to be secure.</p><h3 id="Configuration-tapestry.service-reloading-enabled">tapestry.service-reloading-enabled</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.2</p>
@@ -825,23 +517,10 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>If true (the default), then Tapestry IoC will attempt to reload service implementations when they change. This only applies to classes that Tapestry IoC instantiates itself, and have a known service interface (the container creates a proxy that, internally, can reload the implementation). Service reloading only works when the underlying class files are on the filesystem ... it is intended for development, not an option at deployment.</p>
-
-<p>This must be specified as a JVM system property.</p>
-
-<h3 id="Configuration-tapestry.scriptaculous">tapestry.scriptaculous</h3>
-
-
+<p>&#160;</p></div><p>If true (the default), then Tapestry IoC will attempt to reload service implementations when they change. This only applies to classes that Tapestry IoC instantiates itself, and have a known service interface (the container creates a proxy that, internally, can reload the implementation). Service reloading only works when the underlying class files are on the filesystem ... it is intended for development, not an option at deployment.</p><p>This must be specified as a JVM system property.</p><h3 id="Configuration-tapestry.scriptaculous">tapestry.scriptaculous</h3>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-<p>The path to the embedded copy of <a shape="rect" class="external-link" href="http://script.aculo.us/" >script.aculo.us</a> packaged with Tapestry. This value may be overridden to use a different version of the script.aculo.us library. See <a shape="rect" href="javascript.html">JavaScript</a> for the default version.</p>
-
-<h3 id="Configuration-tapestry.session-locking-enabled">tapestry.session-locking-enabled</h3>
-
-
+<p>&#160;</p></div><p>The path to the embedded copy of <a shape="rect" class="external-link" href="http://script.aculo.us/" >script.aculo.us</a> packaged with Tapestry. This value may be overridden to use a different version of the script.aculo.us library. See <a shape="rect" href="javascript.html">JavaScript</a> for the default version.</p><h3 id="Configuration-tapestry.session-locking-enabled">tapestry.session-locking-enabled</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.4</p>
@@ -853,27 +532,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div>
-
-<p>If true (the default), then Tapestry will use a lock when reading/updating HttpSession attributes, to avoid simultaneous access by multiple threads when using AJAX. See <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/TAP5-2049">TAP5-2049</a>. Set to false to deactivate the session locking logic.</p>
-
-<p>Prior to version 5.4 session locking was not performed.</p>
-
-<h3 id="Configuration-tapestry.start-page-name">tapestry.start-page-name</h3>
-
-<p>The logical name of the start page, the page that is rendered for the <em>root URL</em>. This is normally "start". This functionality is vestigial: it has been superseded by the use of Index pages.</p>
-
-<p><span class="confluence-anchor-link" id="Configuration-supported-locales"></span></p>
-
-<h3 id="Configuration-tapestry.supported-locales">tapestry.supported-locales</h3>
-
-<p>A comma-separated list of supported locales. Incoming requests as "narrowed" to one of these locales, based on closest match. If no match can be found, the first locale in the list is treated as the default.</p>
-
-<p>The default is (currently) "en,it,es,zh_CN,pt_PT,de,ru,hr,fi_FI,sv_SE,fr_FR,da,pt_BR,ja,el". As the community contributes new localizations of the necessary messages files, this list will expand. Note that the Tapestry quickstart archetype overrides the factory default, forcing the application to be localized only for "en".</p>
-
-<h3 id="Configuration-tapestry.suppress-redirect-from-action-requests">tapestry.suppress-redirect-from-action-requests</h3>
-
-
+<p>&#160;</p></div><p>If true (the default), then Tapestry will use a lock when reading/updating HttpSession attributes, to avoid simultaneous access by multiple threads when using AJAX. See <a shape="rect" class="external-link" href="https://issues.apache.org/jira/browse/TAP5-2049">TAP5-2049</a>. Set to false to deactivate the session locking logic.</p><p>Prior to version 5.4 session locking was not performed.</p><h3 id="Configuration-tapestry.start-page-name">tapestry.start-page-name</h3><p>The logical name of the start page, the page that is rendered for the <em>root URL</em>. This is normally "start". This functionality is vestigial: it has been superseded by the use of Index pages.</p><p><span class="confluence-anchor-link" id="Configuration-supported-locales"></span></p><h3 id="Configuration-tapestry.supported-locales">tapestry.supported-locales</h3><p>A comma-separated list of supported locales. Incoming requests as "narrowed" to one of these locales, based on closest match. 
 If no match can be found, the first locale in the list is treated as the default.</p><p>The default is (currently) "en,it,es,zh_CN,pt_PT,de,ru,hr,fi_FI,sv_SE,fr_FR,da,pt_BR,ja,el". As the community contributes new localizations of the necessary messages files, this list will expand. Note that the Tapestry quickstart archetype overrides the factory default, forcing the application to be localized only for "en".</p><h3 id="Configuration-tapestry.suppress-redirect-from-action-requests">tapestry.suppress-redirect-from-action-requests</h3>
 
     <div class="aui-message problem shadowed information-macro">
                     <p class="title">Deprecated since 5.2</p>
@@ -885,24 +544,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p><em>Removed in 5.3.</em></p></div>
-
-<p>Normally, Tapestry responds to action requests (such as form submissions) by sending a client-side redirect to the rendering page. This has a lot of benefits in terms of improving browser navigation, making sure URLs are bookmarkable, and so forth. However, it has a cost: more data stored persistently in the session, and a double-request for each user action (one action request, one render request).</p>
-
-<p>Setting this symbol to "true" changes the Tapestry behavior to make it more like Tapestry 4: a markup response is sent directly for the action request, with no redirect in the middle. This option should be used with care, and only in cases where you are certain that the benefits outweigh the disadvantages.</p>
-
-<h3 id="Configuration-tapestry.thread-pool.core-pool-size">tapestry.thread-pool.core-pool-size</h3>
-
-<p>Nominal size of the thread pool Tapestry uses to execute tasks in parallel.  Under sufficient load, the thread pool may grow larger than this core size.  Defaults to 3.</p>
-
-<h3 id="Configuration-tapestry.thread-pool.max-pool-size">tapestry.thread-pool.max-pool-size</h3>
-
-<p>Maximum size of the thread pool Tapestry uses to execute tasks in parallel. Defaults to 10.</p>
-
-
-<h3 id="Configuration-tapestry.thread-pool.queue-size">tapestry.thread-pool.queue-size</h3>
-
-
+<p><em>Removed in 5.3.</em></p></div><p>Normally, Tapestry responds to action requests (such as form submissions) by sending a client-side redirect to the rendering page. This has a lot of benefits in terms of improving browser navigation, making sure URLs are bookmarkable, and so forth. However, it has a cost: more data stored persistently in the session, and a double-request for each user action (one action request, one render request).</p><p>Setting this symbol to "true" changes the Tapestry behavior to make it more like Tapestry 4: a markup response is sent directly for the action request, with no redirect in the middle. This option should be used with care, and only in cases where you are certain that the benefits outweigh the disadvantages.</p><h3 id="Configuration-tapestry.thread-pool.core-pool-size">tapestry.thread-pool.core-pool-size</h3><p>Nominal size of the thread pool Tapestry uses to execute tasks in parallel. Under sufficient load, the thread pool may grow larger than
  this core size. Defaults to 3.</p><h3 id="Configuration-tapestry.thread-pool.max-pool-size">tapestry.thread-pool.max-pool-size</h3><p>Maximum size of the thread pool Tapestry uses to execute tasks in parallel. Defaults to 10.</p><h3 id="Configuration-tapestry.thread-pool.queue-size">tapestry.thread-pool.queue-size</h3>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.3</p>
@@ -914,21 +556,7 @@ This defaults to <code>false</code> (not
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p>Previously, the queue size was unbounded, which meant that max-pool-size was ignored.</p></div>
-
-<p>Size of the task queue for the thread pool. Once the core pool size is reached, new threads are not created until the queue is full. The default queue size is 100.</p>
-
-<h3 id="Configuration-tapestry.thread-pool.keep-alive">tapestry.thread-pool.keep-alive</h3>
-
-<p>The time to keep a created but unused thread in the pool alive. Defaults to one minute.</p>
-
-<h3 id="Configuration-tapestry.thread-pool-enabled">tapestry.thread-pool-enabled</h3>
-
-<p>If set to false, then parallel task execution does not occur. This is useful in environments where it is not allowed to create new threads, such as Google App Engine.</p>
-
-<h2 id="Configuration-SettingComponentParameterDefaults">Setting Component Parameter Defaults</h2>
-
-
+<p>Previously, the queue size was unbounded, which meant that max-pool-size was ignored.</p></div><p>Size of the task queue for the thread pool. Once the core pool size is reached, new threads are not created until the queue is full. The default queue size is 100.</p><h3 id="Configuration-tapestry.thread-pool.keep-alive">tapestry.thread-pool.keep-alive</h3><p>The time to keep a created but unused thread in the pool alive. Defaults to one minute.</p><h3 id="Configuration-tapestry.thread-pool-enabled">tapestry.thread-pool-enabled</h3><p>If set to false, then parallel task execution does not occur. This is useful in environments where it is not allowed to create new threads, such as Google App Engine.</p><h2 id="Configuration-SettingComponentParameterDefaults">Setting Component Parameter Defaults</h2>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.3</p>
@@ -947,61 +575,17 @@ This defaults to <code>false</code> (not
 configuration.add(ComponentParameterConstants.GRID_ROWS_PER_PAGE, &quot;15&quot;);
 ]]></script>
 </div></div>
-</div>
-
-<p>See the complete list of such constants at <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ComponentParameterConstants.html">ComponentParameterConstants</a>.</p>
-
-<h2 id="Configuration-ConfiguringIgnoredPaths">Configuring Ignored Paths</h2>
-
-<p>You may sometimes need to use Tapestry in concert with other servlets. This can cause problems, since Tapestry (being a servlet filter) may see URLs intended for another servlet and attempt to process them.</p>
-
-<p>The Servlet API does not provide Tapestry with any clues about what other servlets are available in the web application. Instead, you must configure Tapestry to ignore paths intended for other servlets.</p>
-
-<p>The IgnoredPathsFilter service is the method for this kind of configuration. Its configuration is an unordered collection of regular expression patterns. A request whose path matches any of these patterns is <strong>not</strong> processed by Tapestry.</p>
-
-<p>For example, say you are using <a shape="rect" class="external-link" href="http://getahead.org/dwr/" >Direct Web Remoting</a>. You'll likely have the servlet path /dwr mapped to the Direct Web Remoting servlet.</p>
-
-<p>You contribution would look like:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-  public static void contributeIgnoredPathsFilter(Configuration&lt;String&gt; configuration)
+</div><p>See the complete list of such constants at <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ComponentParameterConstants.html">ComponentParameterConstants</a>.</p><h2 id="Configuration-ConfiguringIgnoredPaths">Configuring Ignored Paths</h2><p>You may sometimes need to use Tapestry in concert with other servlets. This can cause problems, since Tapestry (being a servlet filter) may see URLs intended for another servlet and attempt to process them.</p><p>The Servlet API does not provide Tapestry with any clues about what other servlets are available in the web application. Instead, you must configure Tapestry to ignore paths intended for other servlets.</p><p>The IgnoredPathsFilter service is the method for this kind of configuration. Its configuration is an unordered collection of regular expression patterns. A request whose path matches any of these patterns is <strong>not</strong> processed by Tapestry.</p><p>For exa
 mple, say you are using <a shape="rect" class="external-link" href="http://getahead.org/dwr/" >Direct Web Remoting</a>. You'll likely have the servlet path /dwr mapped to the Direct Web Remoting servlet.</p><p>You contribution would look like:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[  public static void contributeIgnoredPathsFilter(Configuration&lt;String&gt; configuration)
   {
     configuration.add(&quot;/dwr/.*&quot;);
   }
 ]]></script>
-</div></div>
-
-<p>The regular expression matches any path that begins with "/dwr/".</p>
-
-<p>The regular expressions provided in the configuration are always compiled with case insensitivity enabled.</p>
-
-<p>Also note that actual files in your web application (images, stylesheets, etc.) are always ignored by Tapestry.</p>
-
-<h2 id="Configuration-ConfiguringContentTypeMapping">Configuring Content Type Mapping</h2>
-
-<p>The mapping from file type (by extension) to content type is typically done as part of your servlet-containers configuration. Alternately, you may contribute to the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/internal/services/ResourceStreamer.html">ResourceStreamer</a> service's configuration. This is a mapped configuration; it maps file extensions (such as "css" or "js") to content types ("text/css" or "text/javascript") respectively.</p>
-
-
-<h2 id="Configuration-SettingExecutionModes">Setting Execution Modes</h2>
-
-<p>Starting with Tapestry 5.2.4, we can specify an <em>execution mode</em> by loading specific Tapestry Modules through a JVM System property. All modules declared in this way will be loaded after the AppModule of your application. This feature is very useful for defining a different environment for Production and Development modes, for example.</p>
-
-<p>This JVM System property, named tapestry.execution-mode, is a comma-separated list of mode names. You can declare this property in a number of different ways:</p>
-
-<p>1. Add the parameter to your JVM command line:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
--Dtapestry.execution-mode=DevelopmentMode jetty:run
+</div></div><p>The regular expression matches any path that begins with "/dwr/".</p><p>The regular expressions provided in the configuration are always compiled with case insensitivity enabled.</p><p>Also note that actual files in your web application (images, stylesheets, etc.) are always ignored by Tapestry.</p><h2 id="Configuration-ConfiguringContentTypeMapping">Configuring Content Type Mapping</h2><p>The mapping from file type (by extension) to content type is typically done as part of your servlet-containers configuration. Alternately, you may contribute to the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/internal/services/ResourceStreamer.html">ResourceStreamer</a> service's configuration. This is a mapped configuration; it maps file extensions (such as "css" or "js") to content types ("text/css" or "text/javascript") respectively.</p><h2 id="Configuration-SettingExecutionModes">Setting Execution Modes</h2><p>Start
 ing with Tapestry 5.2.4, we can specify an <em>execution mode</em> by loading specific Tapestry Modules through a JVM System property. All modules declared in this way will be loaded after the AppModule of your application. This feature is very useful for defining a different environment for Production and Development modes, for example.</p><p>This JVM System property, named tapestry.execution-mode, is a comma-separated list of mode names. You can declare this property in a number of different ways:</p><p>1. Add the parameter to your JVM command line:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[-Dtapestry.execution-mode=DevelopmentMode jetty:run
 ]]></script>
-</div></div>
-
-<p>2. Add the parameter to the Jetty plugin:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>pom.xml</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;plugin&gt;
+</div></div><p>2. Add the parameter to the Jetty plugin:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>pom.xml</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;plugin&gt;
     &lt;groupId&gt;org.mortbay.jetty&lt;/groupId&gt;
     &lt;artifactId&gt;maven-jetty-plugin&lt;/artifactId&gt;
     &lt;version&gt;6.1.16&lt;/version&gt;
@@ -1018,13 +602,8 @@ configuration.add(ComponentParameterCons
     &lt;/configuration&gt;
 &lt;/plugin&gt;
 ]]></script>
-</div></div>
-
-<p>3. Add the parameter to the Surfire plugin for your test:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>pom.xml</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;plugin&gt;
+</div></div><p>3. Add the parameter to the Surfire plugin for your test:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>pom.xml</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;plugin&gt;
     &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
     &lt;artifactId&gt;maven-surefire-plugin&lt;/artifactId&gt;
     &lt;version&gt;2.8.1&lt;/version&gt;
@@ -1035,17 +614,8 @@ configuration.add(ComponentParameterCons
     &lt;/configuration&gt;
 &lt;/plugin&gt;
 ]]></script>
-</div></div>
-
-<p>For each mode declared in your JVM System Property, TapestryFilter checks for a parameter in your web.xml, named tapestry.TheModeName-modules, with TheModeName being the name of the desired mode. Its value will be a comma-separated list of modules.</p>
-
-<p>If the tapestry.execution-mode is not declared, Tapestry will automatically look for the tapestry.production-modules parameter, because &#8220;production&#8221; is the default tapestry.execution-mode value.</p>
-
-<p>The example below defines two differents execution modes in your web.xml file: production (the default value) and DevelopmentMode. For each mode, we list the modules we want to load. If we use JVM System property declared in the example above, the DevelopmentModeModule module will be loaded.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>web.xml</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;context-param&gt;
+</div></div><p>For each mode declared in your JVM System Property, TapestryFilter checks for a parameter in your web.xml, named tapestry.TheModeName-modules, with TheModeName being the name of the desired mode. Its value will be a comma-separated list of modules.</p><p>If the tapestry.execution-mode is not declared, Tapestry will automatically look for the tapestry.production-modules parameter, because &#8220;production&#8221; is the default tapestry.execution-mode value.</p><p>The example below defines two differents execution modes in your web.xml file: production (the default value) and DevelopmentMode. For each mode, we list the modules we want to load. If we use JVM System property declared in the example above, the DevelopmentModeModule module will be loaded.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>web.xml</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;context-param&gt;
     &lt;param-name&gt;tapestry.production-modules&lt;/param-name&gt;
     &lt;param-value&gt;org.apache.tapestry.appli.services.ProductionModeModule&lt;/param-value&gt;
 &lt;/context-param&gt;
@@ -1054,21 +624,11 @@ configuration.add(ComponentParameterCons
     &lt;param-value&gt;org.apache.tapestry.appli.services.DevelopmentModeModule&lt;/param-value&gt;
 &lt;/context-param&gt;
 ]]></script>
-</div></div>
-
-<p>Tapestry will load modules in the order that they are declared. For example, if we run the following command line:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
--Dtapestry.execution-mode=DevelopmentMode,DevelopmentMode2 jetty:run
+</div></div><p>Tapestry will load modules in the order that they are declared. For example, if we run the following command line:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[-Dtapestry.execution-mode=DevelopmentMode,DevelopmentMode2 jetty:run
 ]]></script>
-</div></div>
-
-<p>and then for each modes we have two modules:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>web.xml</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
-&lt;context-param&gt;
+</div></div><p>and then for each modes we have two modules:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>web.xml</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;context-param&gt;
       &lt;param-name&gt;tapestry.DevelopmentMode-modules&lt;/param-name&gt;
       &lt;param-value&gt;
           org.apache.tapestry.appli.services.DevelopmentMode1Module1,
@@ -1083,15 +643,7 @@ configuration.add(ComponentParameterCons
       &lt;/param-value&gt;
 &lt;/context-param&gt;
 ]]></script>
-</div></div>
-
-<p>then Tapestry will load modules in the order: DevelopmentMode1Module1, DevelopmentMode1Module2, DevelopmentMode2Module1 and DevelopmentMode2Module2</p>
-
-<h2 id="Configuration-SegregatingApplicationsIntoFolders">Segregating Applications Into Folders</h2>
-
-<p>In many cases where Tapestry is being adopted into an existing web application (possibly written in Tapestry 4 or some other framework), it is nice to segregate the Tapestry application into its own folder, to avoid conflicts with the existing application or servlets. </p>
-
-
+</div></div><p>then Tapestry will load modules in the order: DevelopmentMode1Module1, DevelopmentMode1Module2, DevelopmentMode2Module1 and DevelopmentMode2Module2</p><h2 id="Configuration-SegregatingApplicationsIntoFolders">Segregating Applications Into Folders</h2><p>In many cases where Tapestry is being adopted into an existing web application (possibly written in Tapestry 4 or some other framework), it is nice to segregate the Tapestry application into its own folder, to avoid conflicts with the existing application or servlets.</p>
 
     <div class="aui-message hint shadowed information-macro">
                     <p class="title">Added in 5.3</p>
@@ -1103,31 +655,15 @@ configuration.add(ComponentParameterCons
     </div>
 
 <div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-
 <p>Support for application folders was added in release 5.3.</p>
-</div>
-
-<p>Setting this up is in two parts:</p>
-
-<ul><li>Modifying the configuration of the <code>&lt;url-pattern&gt;</code> for the Tapestry filter to match the specified folder.</li><li>Identifying the folder name using a Tapestry symbol value contribution.</li></ul>
-
-
-<p>So, if you wanted to run the Tapestry application inside folder <code>t5app</code>, you would modify your <code>web.xml</code> indicate the use of the folder:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-  &lt;filter-mapping&gt;
+</div><p>Setting this up is in two parts:</p><ul><li>Modifying the configuration of the <code>&lt;url-pattern&gt;</code> for the Tapestry filter to match the specified folder.</li><li>Identifying the folder name using a Tapestry symbol value contribution.</li></ul><p>So, if you wanted to run the Tapestry application inside folder <code>t5app</code>, you would modify your <code>web.xml</code> indicate the use of the folder:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[  &lt;filter-mapping&gt;
     &lt;filter-name&gt;app&lt;/filter-name&gt;
     &lt;url-pattern&gt;/t5app/*&lt;/url-pattern&gt;
   &lt;/filter-mapping&gt;
 ]]></script>
-</div></div>
-
-<p>... and in your AppModule, you would inform Tapestry about the mapping change:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[
-public class AppModule
+</div></div><p>... and in your AppModule, you would inform Tapestry about the mapping change:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[public class AppModule
 {
     @Contribute(SymbolProvider.class)
     @ApplicationDefaults
@@ -1137,22 +673,13 @@ public class AppModule
     }
 }
 ]]></script>
-</div></div>
-

[... 21 lines stripped ...]