Author: buildbot
Date: Sun Feb 25 04:20:25 2018
New Revision: 1025930
Log:
Production update by buildbot for tapestry
Modified:
websites/production/tapestry/content/cache/main.pageCache
websites/production/tapestry/content/configuration.html
Modified: websites/production/tapestry/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.
Modified: websites/production/tapestry/content/configuration.html
==============================================================================
--- websites/production/tapestry/content/configuration.html (original)
+++ websites/production/tapestry/content/configuration.html Sun Feb 25 04:20:25
2018
@@ -66,6 +66,21 @@
<div class="title" style="float:left; margin: 0 0 0 3em"><h1
id="SmallBanner-PageTitle">Configuration</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 & 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>
@@ -147,11 +162,11 @@
<h1 id="Configuration-ConfiguringTapestry">Configuring Tapestry</h1><p>This
page discusses all the ways in which Tapestry can be configured. Tapestry
applications are configured almost entirely using Java, with very little XML at
all.</p><p><strong>Contents</strong></p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1519071568910 {padding: 0px;}
-div.rbtoc1519071568910 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1519071568910 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1519532408001 {padding: 0px;}
+div.rbtoc1519532408001 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1519532408001 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1519071568910">
+/*]]>*/</style></p><div class="toc-macro rbtoc1519532408001">
<ul class="toc-indentation"><li><a
href="#Configuration-XMLconfiguration(web.xml)">XML configuration
(web.xml)</a></li><li><a
href="#Configuration-YourApplication'sModuleClass">Your Application's Module
Class</a></li><li><a
href="#Configuration-ConfigurationSymbolNames">Configuration Symbol
Names</a></li><li><a
href="#Configuration-SettingComponentParameterDefaults">Setting Component
Parameter Defaults</a></li><li><a
href="#Configuration-ConfiguringIgnoredPaths">Configuring Ignored
Paths</a></li><li><a
href="#Configuration-ConfiguringContentTypeMapping">Configuring Content Type
Mapping</a></li><li><a href="#Configuration-SettingExecutionModes">Setting
Execution Modes</a></li><li><a
href="#Configuration-SegregatingApplicationsIntoFolders">Segregating
Applications Into Folders</a></li></ul>
</div><h2 id="Configuration-XMLconfiguration(web.xml)">XML configuration
(web.xml)</h2><p>Tapestry runs on top of the standard Java Servlet API. To the
servlet container, such as Tomcat, Tapestry appears as a <em>servlet
filter</em>. This gives Tapestry great flexibility in matching URLs without
requiring lots of XML configuration.</p><p>Although most configuration is done
with Java, a small but necessary amount of configuration occurs inside the
servlet deployment descriptor, WEB-INF/web.xml. Most of the configuration is
boilerplate, nearly the same for all applications.</p><div class="code panel
pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>web.xml (partial)</b></div><div
class="codeContent panelContent pdl">
<pre class="brush: xml; gutter: false; theme: Default"
style="font-size:12px;"><!DOCTYPE web-app
@@ -190,272 +205,255 @@ div.rbtoc1519071568910 li {margin-left:
</pre>
</div></div><h2 id="Configuration-ConfigurationSymbolNames">Configuration
Symbol Names</h2><p>Main Article: <a
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 <context-param> 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 class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/TimeInterval.html">particular
format</a>.</p><p>Most of these symbols have a constant defined in the <a
class="external-link" href="http://tapestry.apache.org/cu
rrent/apidocs/org/apache/tapestry5/SymbolConstants.html">SymbolConstants</a>
class, while others are in the <a
href="https://cwiki.apache.org/confluence/tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/IOCSymbols.html">IOCSymbols</a>
class. Those are noted in <strong>bold</strong> below. Use the symbol name
(tapestry.*) for JVM System Properties with the -D option, and use the constant
(in bold below) from within your Java classes (e.g. AppModule.java).</p><h3
id="Configuration-tapestry.app-catalog">tapestry.app-catalog</h3><p><strong>SymbolConstants.APPLICATION_CATALOG</strong> – 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>
+<div class="aui-message aui-message-info macro-since"><b
class="param-since">Added in 5.4</b>
+
-<div class="aui-message aui-message-info">
-Added in 5.4
-  
</div><p><strong>SymbolConstants.APPLICATION_VERSION</strong> – The
version of the application, which is incorporated into URLs for context and
classpath assets in Tapestry versions prior to 5.4. <a
href="assets.html">Assets</a> may be <a
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 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
-  
</div><p><strong>SymbolConstants.APPLICATION_FOLDER</strong> – 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 href="configuration.html">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 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
-  
</div><p><strong>SymbolConstants.ASSET_URL_FULL_QUALIFIED</strong> –
A boolean value to indicate whether <a href="configuration.html">asset</a>
URLs should be fully qualified in the rendered page. 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 aui-message-info macro-since"><b
class="param-since">Added in 5.3.1</b>
+
-<div class="aui-message aui-message-info">
-Added in 5.3.1
-  
-</div><p><strong>SymbolConstants.ASSET_PATH_PREFIX</strong> – 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><strong>SymbolConstants.<strong>BLACKBIRD_ENABLED</strong></strong> –
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><p><strong>SymbolConstants.ASSET_PATH_PREFIX</strong> – 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><strong>SymbolConstants.<strong>BLACKBIRD_ENABLED</strong></strong> –
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 aui-message-warning macro-deprecated"><b
class="param-deprecated">Deprecated since 5.3</b>
+
+
+ <div class="param-body">The client-side BlackBird console has been
removed.</div>a
-<div class="aui-message aui-message-warning">
-Deprecated since 5.3 |
-The client-side BlackBird console has been removed.
</div><h3
id="Configuration-tapestry.bootstrap-root">tapestry.bootstrap-root</h3>
+<div class="aui-message aui-message-info macro-since"><b
class="param-since">Added in 5.4</b>
+
-<div class="aui-message aui-message-info">
-Added in 5.4
-  
</div><p><strong>SymbolConstants.BOOTSTRAP_ROOT</strong> – 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><strong>SymbolConstants.CHARSET</strong> –
The character encoding used when generating output (or parsing input). The
default is "UTF-8". See <a 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 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
-  
</div><p><strong>SymbolConstants.CLUSTERED_SESSIONS</strong> – 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><strong>SymbolConstants.COMBINE_SCRIPTS</strong> –
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-j
son">tapestry.compact-json</h3>
+<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
-  
</div><p><strong>SymbolConstants.COMPACT_JSON</strong> – 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 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
-  
</div>
+<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 |
- 
</div><p><strong>SymbolConstants.UNKNOWN_COMPONENT_ID_CHECK_ENABLED</strong> –
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><strong>SymbolConstants.COMPONENT_RENDER_TRACING_ENABLED</strong> –
Starting with version 5.3, if "true" then Tapestry will emit rendering
comments for all requests; these are comments (such as <!--BEGIN Index:loop
(context:Index.tml, line 15)-->) 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 de
termine 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><strong>SymbolConstants.COMPRESS_WHITESPACE</strong> –
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).
See <a href="component-templates.html">Component Templates</a> for
details.</p><h3
id="Configuration-tapestry.module-path-prefix">tapestry.module-path-prefix</h3>
+<div class="aui-message aui-message-info macro-since"><b
class="param-since">Added in 5.4</b>
+
-<div class="aui-message aui-message-info">
-Added in 5.4
-  
</div><p><strong>SymbolConstants.MODULE_PATH_PREFIX</strong> –
Prefix used for all module resources. This may contain slashes, but should not
being or end with one. Tapestry will create two Dispatchers from this: one for
normal modules, the other for GZip compressed modules (by appending ".gz" to
this value).</p><h3
id="Configuration-tapestry.context-path">tapestry.context-path</h3>
+<div class="aui-message aui-message-info macro-since"><b
class="param-since">Added in 5.4</b>
+
-<div class="aui-message aui-message-info">
-Added in 5.4
-  
</div><p><strong>SymbolConstants.CONTEXT_PATH</strong> – 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 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
-  
</div><p><strong>SymbolConstants.DATEPICKER</strong> – The path to
the assets of the embedded DatePicker component</p><h3
id="Configuration-tapestry.default-cookie-max-age">tapestry.default-cookie-max-age</h3><p><strong>SymbolConstants.COOKIE_MAX_AGE</strong> –
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
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 aui-message-info macro-since"><b
class="param-since">Added in 5.3.6</b>
+
-<div class="aui-message aui-message-info">
-Added in 5.3.6
-  
</div><p><strong>SymbolConstants.DEFAULT_STYLESHEET</strong> – 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 aui-message-warning macro-deprecated"><b
class="param-deprecated">Deprecated since 5.4</b>
+
+
+ <div class="param-body">Deprecated in 5.4 with no replacement. The
stylesheet is now associated with the core JavaScriptStack</div>a
-<div class="aui-message aui-message-warning">
-Deprecated since 5.4 |
-Deprecated in 5.4 with no replacement. The stylesheet is now associated with
the core JavaScriptStack
</div><h3
id="Configuration-tapestry.enable-html5-support">tapestry.enable-html5-support</h3><p>
+</p><div class="aui-message aui-message-info macro-since"><b
class="param-since">Added in 5.4</b>
+
-</p><div class="aui-message aui-message-info">
-Added in 5.4
-  
</div><strong>SymbolConstants.ENABLE_HTML5_SUPPORT – </strong>If
"true", then certain HTML5 features are invoked by built-in Tapestry
components. Mostly this controls whether the TextField component will emit
HTML5 "type" attributes automatically when certain validators are used.
See <a href="forms-and-validation.html">Forms and Validation</a> for
details. The default is false.<h3
id="Configuration-tapestry.enable-minification">tapestry.enable-minification</h3>
+<div class="aui-message aui-message-info macro-since"><b
class="param-since">Added in 5.3.6</b>
+
-<div class="aui-message aui-message-info">
-Added in 5.3.6
-  
</div><p><strong>SymbolConstants.MINIFICATION_ENABLED</strong> – 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.
See <a href="assets.html">Assets</a> for details.</p><h3
id="Configuration-tapestry.enable-pageloading-mask">tapestry.enable-pageloading-mask</h3>
+<div class="aui-message aui-message-info macro-since"><b
class="param-since">Added in 5.4</b>
+
-<div class="aui-message aui-message-info">
-Added in 5.4
-  
</div><p><strong>SymbolConstantsaENABLE_PAGELOADING_MASK</strong> – If
true, then when a page includes any JavaScript, a <code><script></code>
block is added to insert a pageloader mask into the page to ensure that the
user can't interact with the page until the page is fully initialized. The
default is true.</p><h3
id="Configuration-tapestry.encode-locale-into-path">tapestry.encode-locale-into-path</h3><p><strong>SymbolConstants.ENCODE_LOCALE_INTO_PATH</strong> –
If "true" (the default), then the <a 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)
. See <a href="localization.html">Localization</a> for more details on
localization.</p><h3
id="Configuration-tapestry.exception-report-page">tapestry.exception-report-page</h3><p><strong>SymbolConstants.EXCEPTION_REPORT_PAGE</strong> –
The name of the page used to report exceptions. This defaults to
"ExceptionReport", a page that Tapestry provides. See <a
href="overriding-exception-reporting.html">Overriding Exception Reporting</a>
for details.</p><h3
id="Configuration-tapestry.exception-reports-dir">tapestry.exception-reports-dir</h3><p>
+</p><div class="aui-message aui-message-info macro-since"><b
class="param-since">Added in 5.4</b>
+
-</p><div class="aui-message aui-message-info">
-Added in 5.4
-  
</div><strong>SymbolConstants.EXCEPTION_REPORTS_DIR</strong> – The
root directory where Tapestry's built-in OperationTracker will create dated
folders into which it writes exception report files. This is
<code>build/exceptions</code> by default but should be overridden for
production. See the related <code>tapestry.restrictive-environment</code>
symbol below.<h3
id="Configuration-tapestry.execution-mode">tapestry.execution-mode</h3><p><strong>SymbolConstants.EXECUTION_MODE</strong> –
The execution mode. See <a href="configuration.html">Setting Execution
Modes</a> below.</p><h3
id="Configuration-tapestry.file-check-interval">tapestry.file-check-interval</h3><p><strong>SymbolConstants.FILE_CHECK_INTERVAL</strong> –
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 Tapestry's <a
href="class-reloading.html">Clas
s Reloading</a> mechanism).</p><p>The default is "1 s" (one second; see <a
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><strong>SymbolConstants.FILE_CHECK_UPDATE_TIMEOUT</strong> –
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
class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/TimeInterval.html">Time
Interval Form
ats</a>).</p><h3
id="Configuration-tapestry.force-absolute-uris">tapestry.force-absolute-uris</h3>
+<div class="aui-message aui-message-warning macro-deprecated"><b
class="param-deprecated">Deprecated since 5.2</b>
+
+
+ <div class="param-body">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>.</div>a
-<div class="aui-message aui-message-warning">
-Deprecated since 5.2 |
-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>.
</div><p><em><strong>SymbolConstants.<span>FORCE_ABSOLUTE_URIS</span></strong> –
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><strong>SymbolConstants.GZIP_COMPRESSION_ENABLED</strong> –
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 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
-  
</div><p><strong>SymbolConstants.HOSTNAME</strong> – 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 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
-  
</div><p><strong>SymbolConstants.HOSTPORT</strong> – The port that
application should use when constructing an absolute URL. The default is "0",
which means to use the port value from the request.</p><h3
id="Configuration-tapestry.hostport-secure">tapestry.hostport-secure</h3>
+<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
-  
</div><p><strong>SymbolConstants.HOSTPORT_SECURE</strong> – 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 aui-message-info macro-since"><b
class="param-since">Added in 5.3.6</b>
+
-<div class="aui-message aui-message-info">
-Added in 5.3.6
-  
</div><p><strong>SymbolConstants.HMAC_PASSPHRASE</strong> – The
plaintext phrase used to set the key for <a class="external-link"
href="http://en.wikipedia.org/wiki/HMAC" rel="nofollow">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 – typically by
making a contribution in your applications module class (normally
AppModule.java). See <a href="security.html">Security</a> for
details.</p><h3
id="Configuration-tapestry.include-core-stack">tapestry.include-core-stack</h3>
+<div class="aui-message aui-message-info macro-since"><b
class="param-since">Added in 5.4</b>
+
-<div class="aui-message aui-message-info">
-Added in 5.4
-  
</div><p><strong>SymbolConstants.INCLUDE_CORE_STACK</strong> –
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 aui-message-info macro-since"><b
class="param-since">Added in 5.4</b>
+
-<div class="aui-message aui-message-info">
-Added in 5.4
-  
</div><p><strong>SymbolConstants.JAVASCRIPT_INFRASTRUCTURE_PROVIDER</strong> –
Tapestry relies on an underlying client-side JavaScript infrastructure
framework to handle DOM manipulation, event handling, and Ajax requests. Prior
to Tapestry 5.4, the foundation was <a class="external-link"
href="http://http//prototypejs.org/" rel="nofollow">Prototype</a>. In 5.4 and
later, support for <a class="external-link" href="http://jquery.org/"
rel="nofollow">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.lenient-date-format">tapestry.lenient-date-format</h3>
+<div class="aui-message aui-message-info macro-since"><b
class="param-since">Added in 5.4</b>
+
-<div class="aui-message aui-message-info">
-Added in 5.4
-  
</div><p><strong>SymbolConstants.LENIENT_DATE_FORMAT</strong> –
When set to true, the DateField component will be lenient about date
calculations, for example allowing a January 32 date as input and automatically
converting it to February 1. When false (the default), only valid dates may be
entered.</p><h3
id="Configuration-tapestry.min-gzip-size">tapestry.min-gzip-size</h3><p><strong>SymbolConstants.MIN_GZIP_SIZE</strong> –
The minimum stream size necessary for Tapestry to use GZIP compression on the
response stream. See <a href="response-compression.html">Response
Compression</a> for more details.</p><h3
id="Configuration-tapestry.omit-generator-meta">tapestry.omit-generator-meta</h3><p><strong>SymbolConstants.OMIT_GENERATOR_META</strong> –
If "true", then the <meta> tag that Tapestry normally writes into the
<head>, identifying the Tapestry version, will be omitted. Use this when
you do not wish to advertise your application's us
e of Tapestry.</p><h3
id="Configuration-tapestry.page-pool.active-window">tapestry.page-pool.active-window</h3>
+<div class="aui-message aui-message-warning macro-deprecated"><b
class="param-deprecated">Deprecated since 5.2</b>
+
+
+ <div class="param-body">Starting in 5.2, this is only used if
tapestry.page-pool-enabled is "true". <em>Removed in 5.3</em></div>a
-<div class="aui-message aui-message-warning">
-Deprecated since 5.2 |
-Starting in 5.2, this is only used if tapestry.page-pool-enabled is "true".
<em>Removed in 5.3</em>
</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 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 signific
antly reduces heap memory usage and improves performance for most web
applications.</p><p>The default is "false".</p>
+<div class="aui-message aui-message-warning macro-deprecated"><b
class="param-deprecated">Deprecated since 5.2</b>
+
+
+ <div class="param-body">Removed in 5.3.</div>a
-<div class="aui-message aui-message-warning">
-Deprecated since 5.2 |
-Removed in 5.3.
</div><h3
id="Configuration-tapestry.page-pool.hard-limit">tapestry.page-pool.hard-limit</h3>
+<div class="aui-message aui-message-warning macro-deprecated"><b
class="param-deprecated">Deprecated since 5.2</b>
+
+
+ <div class="param-body">Starting in 5.2, this is only used if
tapestry.page-pool-enabled is "true". <em>Removed in 5.3</em></div>a
-<div class="aui-message aui-message-warning">
-Deprecated since 5.2 |
-Starting in 5.2, this is only used if tapestry.page-pool-enabled is "true".
<em>Removed in 5.3</em>
</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 aui-message-warning macro-deprecated"><b
class="param-deprecated">Deprecated since 5.2</b>
+
+
+ <div class="param-body">Starting in 5.2, this is only used if
tapestry.page-pool-enabled is "true". <em>Removed in 5.3</em></div>a
-<div class="aui-message aui-message-warning">
-Deprecated since 5.2 |
-Starting in 5.2, this is only used if tapestry.page-pool-enabled is "true".
<em>Removed in 5.3</em>
</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 aui-message-warning macro-deprecated"><b
class="param-deprecated">Deprecated since 5.2</b>
+
+
+ <div class="param-body">Starting in 5.2, this is only used if
tapestry.page-pool-enabled is "true". <em>Removed in 5.3</em></div>a
-<div class="aui-message aui-message-warning">
-Deprecated since 5.2 |
-Starting in 5.2, this is only used if tapestry.page-pool-enabled is "true".
<em>Removed in 5.3</em>
</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
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-preload-mode">tapestry.page-preload-mode</h3><p>
+</p><div class="aui-message aui-message-info macro-since"><b
class="param-since">Added in 5.4</b>
+
-</p><div class="aui-message aui-message-info">
-Added in 5.4
-  
</div><strong>SymbolConstants.PRELOADER_MODE – </strong>Controls in
what environment page preloading should occur. By default, preloading only
occurs in production. Possible values are "ALWAYS", "DEVELOPMENT", "NEVER", or
"PRODUCTION" (the default is PRODUCTION when in production mode, or DEVELOPMENT
otherwise). See <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/pageload/PreloaderMode.html">PreloaderMode</a>.<h3
id="Configuration-tapestry.persistence-strategy">tapestry.persistence-strategy</h3><p><strong>SymbolConstants.PERSISTENCE_STRATEGY</strong> –
Identifies the default <a 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><strong>SymbolConstants.PRODUCTION_MODE</strong> – 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.restrictive-environment">tapestry.restrictive-environment</h3><p>
+</p><div class="aui-message aui-message-info macro-since"><b
class="param-since">Added in 5.4</b>
+
-</p><div class="aui-message aui-message-info">
-Added in 5.4
-  
</div><strong>SymbolConstants.RESTRICTIVE_ENVIRONMENT</strong> – A
flag (true or false) that, if true, changes some default Tapestry behavior to
make it work better in restrictive environments such as <a
href="google-app-engine.html">Google App Engine</a> (GAE). Specifically, if
true, then OperationsTracker writes its exception report files into a single
folder (specified by the tapestry.exception-reports-dir symbol, above) rather
than creating dated sub-folders under that path, and ResourceTransformerFactory
avoids creating a cache folder for resources.<h3
id="Configuration-tapestry.secure-enabled">tapestry.secure-enabled</h3><p><strong>SymbolConstants.SECURE_ENABLED</strong> –
If true, then @<a 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. However, sites that are
intended to be served <em>only</em> under HTTPS should set this
to <strong><code>false</code></strong>. See <a
href="https.html">HTTPS</a> for details.</p><h3
id="Configuration-tapestry.secure-page">tapestry.secure-page</h3><p><strong>MetaDataConstants.SECURE_PAGE</strong> –
If true, then the page may only be accessed via HTTPS. The @<a
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.
See <a href="https.html">HTTPS</a> for details.</p><h3
id="Configuration-tapestry.service-reloading-enabled">tapestry.service-reloading-enabled</h3>
+<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
-  
</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 as an option in
production.</p><p>This must be specified as a JVM system property. <em>You may
not set it in your module class.</em></p><h3
id="Configuration-tapestry.scriptaculous">tapestry.scriptaculous</h3>
+<div class="aui-message aui-message-info macro-since"><b
class="param-since">Added in $paramsince</b>
+
+
-<div class="aui-message aui-message-info">
- 
</div><p><strong>SymbolConstants.SCRIPTACULOUS</strong> – The path
to the embedded copy of <a class="external-link"
href="http://script.aculo.us/" rel="nofollow">script.aculo.us</a> packaged with
Tapestry. This value may be overridden to use a different version of the <a
class="external-link" href="http://script.aculo.us"
rel="nofollow">script.aculo.us</a> library. See <a
href="legacy-javascript.html">Legacy JavaScript</a> for the default
version.</p><h3
id="Configuration-tapestry.session-locking-enabled">tapestry.session-locking-enabled</h3>
+<div class="aui-message aui-message-info macro-since"><b
class="param-since">Added in 5.4</b>
+
-<div class="aui-message aui-message-info">
-Added in 5.4
-  
</div><p><strong>SymbolConstants.SESSION_LOCKING_ENABLED</strong> –
If true (the default), then Tapestry will use a lock when reading/updating
HttpSession attributes, to avoid simultaneous access by multiple threads when
using AJAX. See <a class="external-link"
href="https://issues.apache.org/jira/browse/TAP5-2049">TAP5-2049</a>. Set to
false to deactivate the session locking logic.</p><p>Prior to version 5.4
session locking was not performed.</p><h3
id="Configuration-tapestry.start-page-name">tapestry.start-page-name</h3><p><strong>SymbolConstants.START_PAGE_NAME</strong> –
The logical name of the start page, the page that is rendered for the <em>root
URL</em>. This is normally "start". This functionality is vestigial: it has
been superseded by the use of Index pages.</p><p><span
class="confluence-anchor-link"
id="Configuration-supported-locales"></span></p><h3
id="Configuration-tapestry.strict-css-url-rewriting">tapestry.strict-css-url-rewriting</h3><p><stro
ng>SymbolConstants.STRICT_CSS_URL_REWRITING</strong> – Controls
whether to throw an exception (true) or log a warning (false) when Tapestry
encounters a URL reference to a non-existing file within a CSS file. The
default is false.</p><h3
id="Configuration-tapestry.supported-locales">tapestry.supported-locales</h3><p><strong>SymbolConstants.SUPPORTED_LOCALES</strong> –
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 aui-message-warning macro-deprecated"><b
class="param-deprecated">Deprecated since 5.2</b>
+
+
+ <div class="param-body"><em>Removed in 5.3</em></div>a
-<div class="aui-message aui-message-warning">
-Deprecated since 5.2 |
-<em>Removed in 5.3</em>
</div><p><strong>SymbolConstants.SUPPRESS_REDIRECT_FROM_ACTION_REQUESTS</strong> –
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><strong>IOCSymbols.THREAD_POOL_CORE_SIZE</strong> –
Nominal size of th
e 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><strong>IOCSymbols.THREAD_POOL_MAX_SIZE</strong> –
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 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
- Previously, the queue size was unbounded, which meant that max-pool-size
was ignored.
+ <div class="param-body">Previously, the queue size was unbounded, which
meant that max-pool-size was ignored.</div>
+
</div><p><strong>IOCSymbols.THREAD_POOL_QUEUE_SIZE</strong> – 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><strong>IOCSymbols.THREAD_POOL_KEEP_ALIVE</strong> –
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><strong>IOCSymbols.THREAD_POOL_ENABLED</strong> –
If set to false, then parallel task execution does not occur. This is useful
in environments where creating new threads is not allowed, such as <a
href="google-app-engine.html">Google App Engine</a>.</p><h2
id="Configuration-SettingComponentParameterDefaults">Setting Component
Parameter Defaults</h2>
+<div class="aui-message aui-message-info macro-since"><b
class="param-since">Added in 5.3</b>
+
+ <div class="param-body">Some components, notably Grid, Pallete and Zone,
have default parameter values specified in terms of symbols. This means you can
use these symbols to modify the defaults for all instances of such components
in your application. For example, you can set the default rows per page for all
Grid instances by adding this to
the <code>contributeApplicationDefaults</code> method in your
application's module class (typically AppModule.java):
<code>configuration.add(ComponentParameterConstants.GRID_ROWS_PER_PAGE,
"15");</code></div>
-<div class="aui-message aui-message-info">
-Added in 5.3
- Some components, notably Grid, Pallete and Zone, have default parameter
values specified in terms of symbols. This means you can use these symbols to
modify the defaults for all instances of such components in your application.
For example, you can set the default rows per page for all Grid instances by
adding this to the <code>contributeApplicationDefaults</code> method in
your application's module class (typically AppModule.java):
<code>configuration.add(ComponentParameterConstants.GRID_ROWS_PER_PAGE,
"15");</code>
</div><p>See the complete list of such constants at <a 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 yo
u are using <a class="external-link" href="http://getahead.org/dwr/"
rel="nofollow">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">
<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;"> public static void
contributeIgnoredPathsFilter(Configuration<String> configuration)
{
@@ -515,11 +513,11 @@ Added in 5.3
</pre>
</div></div><h2 id="Configuration-SegregatingApplicationsIntoFolders"><span
style="color: rgb(83,145,38);">Segregating Applications Into
Folders</span></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 aui-message-info macro-since"><b
class="param-since">Added in 5.3</b>
+
+ <div class="param-body">Support for application folders was added in
release 5.3.</div>
-<div class="aui-message aui-message-info">
-Added in 5.3
- Support for application folders was added in release 5.3.
</div><p>Setting this up is in two parts:</p><ul><li>Modifying the
configuration of the <code><url-pattern></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">
<pre class="brush: xml; gutter: false; theme: Default"
style="font-size:12px;"> <filter-mapping>
<filter-name>app</filter-name>