Author: buildbot
Date: Tue Feb 16 01:20:22 2016
New Revision: 980528
Log:
Production update by buildbot for tapestry
Modified:
websites/production/tapestry/content/cache/main.pageCache
websites/production/tapestry/content/configuration.html
websites/production/tapestry/content/google-app-engine.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 Tue Feb 16 01:20:22
2016
@@ -136,11 +136,11 @@
</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><p><strong>Contents</strong></p><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1455581975331 {padding: 0px;}
-div.rbtoc1455581975331 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1455581975331 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1455585603462 {padding: 0px;}
+div.rbtoc1455585603462 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1455585603462 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1455581975331">
+/*]]>*/</style></p><div class="toc-macro rbtoc1455585603462">
<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></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
@@ -177,7 +177,7 @@ div.rbtoc1455581975331 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 parentheses below.</p><h3
id="Configuration-tapestry.app-catalog(SymbolConstants.APPLICATION_CATALOG)">tapestry.app-catalog
(SymbolConstants.APPLICATION_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(SymbolConstants.APPLICATION_VERSION)">tapestry.application-version
(SymbolConstants.APPLICATION_VERSION)</h3><p>The version of the application,
which is incorporated into URLs for context and classpath assets. Assets 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.
Yo
u 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(SymbolConstants.APPLICATION_FOLDER)">tapestry.application-folder
(SymbolConstants.APPLICATION_FOLDER)</h3>
+</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 parentheses below. Use the symbol name (tapestry.*)
for JVM System Properties with the -D option, and use the constant (in
parentheses) from within your Java classes (e.g. AppModule.java).</p><h3
id="Configuration-tapestry.app-catalog(SymbolConstants.APPLICATION_CATALOG)">tapestry.app-catalog
(SymbolConstants.APPLICATION_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(SymbolConstants.APPLICATION_VERSION)">tapestry.application-version
(SymbolConstants.APPLICATION_VERSION)</h3><p>The version of the application,
which is incorporated into URLs for context and classpath assets. Asse
ts 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(SymbolConstants.APPLICATION_FOLDER)">tapestry.application-folder
(SymbolConstants.APPLICATION_FOLDER)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
@@ -202,17 +202,17 @@ div.rbtoc1455581975331 li {margin-left:
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.4</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </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(SymbolConstants.)">tapestry.charset
(SymbolConstants.)</h3><p>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(SymbolConstants.)">tapestry.clustered-sessions
(SymbolConstants.)</h3>
+<p> </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(SymbolConstants.CHARSET)">tapestry.charset
(SymbolConstants.CHARSET)</h3><p>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(SymbolConstants.CLUSTERED_SESSIONS)">tapestry.clustered-sessions
(SymbolConstants.CLUSTERED_SESSIONS)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </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(SymbolConstants.)">tapestry.combine-scripts
(SymbolConstants.)</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(SymbolConstants.)">tapestry.compact-json
(SymbolConstants.)</h3>
+<p> </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(SymbolConstants.COMBINE_SCRIPTS)">tapestry.combine-scripts
(SymbolConstants.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(SymbolConstants.COMPACT_JSON)">tapestry.com
pact-json (SymbolConstants.COMPACT_JSON)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </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(SymbolConstants.)">tapestry.compatibility.unknown-component-id-check-enabled
(SymbolConstants.)</h3>
+<p> </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(SymbolConstants.UNKNOWN_COMPONENT_ID_CHECK_ENABLED)">tapestry.compatibility.unknown-component-id-check-enabled
(SymbolConstants.UNKNOWN_COMPONENT_ID_CHECK_ENABLED)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
@@ -222,22 +222,22 @@ div.rbtoc1455581975331 li {margin-left:
<div class="confluence-information-macro
confluence-information-macro-warning"><p class="title">Deprecated since
5.3</p><span class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #ffcccc;border-left: 20px solid #ffcccc;">
-<p> </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(SymbolConstants.)">tapestry.component-render-tracing-enabled
(SymbolConstants.)</h3><p>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 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(SymbolConstants.)">tapestry.compress-whitespace
(SymbolConstants.)</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). See <a href="component-templates.html">Component
Templates</a> for details.</p><h3
id="Configuration-tapestry.compressed-asset-path-prefix(SymbolConstants.)">tapestry.compressed-asset-path-prefix
(SymbolConstants.)</h3>
+<p> </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(SymbolConstants.COMPONENT_RENDER_TRACING_ENABLED)">tapestry.component-render-tracing-enabled
(SymbolConstants.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 <!--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 determine
which component was responsible for wh
ich 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(SymbolConstants.COMPRESS_WHITESPACE)">tapestry.compress-whitespace
(SymbolConstants.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). See <a href="component-templates.html">Component
Templates</a> for details.</p><h3
id="Configuration-tapestry.module-path-prefix(SymbolConstants.MODULE_PATH_PREFIX)">tapestry.module-path-prefix (SymbolConstants.MODULE_PATH_PREFIX)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.4</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </p></div><p>As with <a
href="configuration.html">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. See <a
href="assets.html">Assets</a> for details.</p><h3
id="Configuration-tapestry.context-path(SymbolConstants.)">tapestry.context-path
(SymbolConstants.)</h3>
+<p> </p></div><p>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(SymbolConstants.CONTEXT_PATH)">tapestry.context-path
(SymbolConstants.CONTEXT_PATH)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.4</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </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(SymbolConstants.)">tapestry.datepicker
(SymbolConstants.)</h3>
+<p> </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(SymbolConstants.DATEPICKER)">tapestry.datepicker
(SymbolConstants.DATEPICKER)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </p></div><p>The path to the assets of the embedded DatePicker
component</p><h3
id="Configuration-tapestry.default-cookie-max-age(SymbolConstants.)">tapestry.default-cookie-max-age
(SymbolConstants.)</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 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> </p></div><p>The path to the assets of the embedded DatePicker
component</p><h3
id="Configuration-tapestry.default-cookie-max-age(SymbolConstants.)">tapestry.default-cookie-max-age
(SymbolConstants.)</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 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(SymbolConstants.DEFAULT_STYLESHEET)">tapestry.default-stylesheet
(SymbolConstants.DEFAULT_STYLESHEET)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.3.6</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
@@ -247,111 +247,111 @@ div.rbtoc1455581975331 li {margin-left:
<div class="confluence-information-macro
confluence-information-macro-warning"><p class="title">Deprecated since
5.4</p><span class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div 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(SymbolConstants.)">tapestry.enable-minification
(SymbolConstants.)</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(SymbolConstants.MINIFICATION_ENABLED)">tapestry.enable-minification
(SymbolConstants.MINIFICATION_ENABLED)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.3.6</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </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.
See <a href="assets.html">Assets</a> for details.</p><h3
id="Configuration-tapestry.encode-locale-into-path(SymbolConstants.)">tapestry.encode-locale-into-path
(SymbolConstants.)</h3><p>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 paramete
r (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(SymbolConstants.)">tapestry.exception-report-page
(SymbolConstants.)</h3><p>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(SymbolConstants.)">tapestry.exception-reports-dir
(SymbolConstants.)</h3>
+<p> </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.
See <a href="assets.html">Assets</a> for details.</p><h3
id="Configuration-tapestry.encode-locale-into-path(SymbolConstants.ENCODE_LOCALE_INTO_PATH)">tapestry.encode-locale-into-path
(SymbolConstants.ENCODE_LOCALE_INTO_PATH)</h3><p>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(SymbolConstants.EXCEPTION_REPORT_PAGE)">tapestry.exception-report-page
(SymbolConstants.EXCEPTION_REPORT_PAGE)</h3><p>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(SymbolConstants.EXCEPTION_REPORTS_DIR)">tapestry.exception-reports-dir
(SymbolConstants.EXCEPTION_REPORTS_DIR)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.4</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div><p>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.</p><h3
id="Configuration-tapestry.execution-mode(SymbolConstants.)">tapestry.execution-mode
(SymbolConstants.)</h3><p>The execution mode. See <a
href="configuration.html">Setting Execution Modes</a> below.</p><h3
id="Configuration-tapestry.file-check-interval(SymbolConstants.)">tapestry.file-check-interval
(SymbolConstants.)</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 Tapestry's <a
href="class-reloading.html">Class 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(SymbolConstants.)">tapestry.file-check-update-timeout
(SymbolConstants.)</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
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(SymbolConstants.)">tapestry.force-absolute-uris
(SymbolConstants.)</h3>
+</div><p>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.</p><h3
id="Configuration-tapestry.execution-mode(SymbolConstants.EXECUTION_MODE)">tapestry.execution-mode 
(SymbolConstants.EXECUTION_MODE)</h3><p>The execution mode. See <a
href="configuration.html">Setting Execution Modes</a> below.</p><h3
id="Configuration-tapestry.file-check-interval(SymbolConstants.FILE_CHECK_INTERVAL)">tapestry.file-check-interval
(SymbolConstants.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
Tapestry's <a href="class-reloading.html">Class Reloading</a>
mechanism).</p><p>The default i
s "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(SymbolConstants.FILE_CHECK_UPDATE_TIMEOUT)">tapestry.file-check-update-timeout
(SymbolConstants.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 class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/util/TimeInterval.html">Time
Interval Formats</a>).</p><h3 id="Configurati
on-tapestry.force-absolute-uris(SymbolConstants.FORCE_ABSOLUTE_URIS)">tapestry.force-absolute-uris
(SymbolConstants.<span>FORCE_ABSOLUTE_URIS</span>)</h3>
<div class="confluence-information-macro
confluence-information-macro-warning"><p class="title">Deprecated since
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div 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(SymbolConstants.)">tapestry.gzip-compression-enabled
(SymbolConstants.)</h3><p>Override to "false" to disable GZIP compression of
dynamic Tapestry pages and static assets.</p><h3
id="Configuration-tapestry.hostname(SymbolConstants.)">tapestry.hostname
(SymbolConstants.)</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(SymbolConstants.)">tapestry.gzip-compression-enabled
(SymbolConstants.)</h3><p>Override to "false" to disable GZIP compression of
dynamic Tapestry pages and static assets.</p><h3
id="Configuration-tapestry.hostname(SymbolConstants.GZIP_COMPRESSION_ENABLED)">tapestry.hostname
(SymbolConstants.GZIP_COMPRESSION_ENABLED)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </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(SymbolConstants.)">tapestry.hostport
(SymbolConstants.)</h3>
+<p> </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(SymbolConstants.HOSTPORT)">tapestry.hostport
(SymbolConstants.HOSTPORT)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </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(SymbolConstants.)">tapestry.hostport-secure
(SymbolConstants.)</h3>
+<p> </p></div><p>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(SymbolConstants.HOSTPORT_SECURE)">tapestry.hostport-secure
(SymbolConstants.HOSTPORT_SECURE)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </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(SymbolConstants.)">tapestry.hmac-passphrase
(SymbolConstants.)</h3>
+<p> </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(SymbolConstants.HMAC_PASSPHRASE)">tapestry.hmac-passphrase
(SymbolConstants.HMAC_PASSPHRASE)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.3.6</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </p></div><p>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(SymbolConstants.)">tapestry.include-core-stack
(SymbolConstants.)</h3>
+<p> </p></div><p>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(SymbolConstants.INCLUDE_CORE_STACK)">tapestry.include-core-stack
(SymbolConstants.INCLUDE_CORE_STACK)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.4</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </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(SymbolConstants.)">tapestry.javascript-infrastructure-provider
(SymbolConstants.)</h3>
+<p> </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(SymbolConstants.JAVASCRIPT_INFRASTRUCTURE_PROVIDER)">tapestry.javascript-infrastructure-provider
(SymbolConstants.JAVASCRIPT_INFRASTRUCTURE_PROVIDER)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.4</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </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 class="external-link"
href="http://http//prototypejs.org/" rel="nofollow">Prototype</a>. In 5.4,
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(SymbolConstants.)">tapestry.lenient-date-format
(SymbolConstants.)</h3>
+<p> </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 class="external-link"
href="http://http//prototypejs.org/" rel="nofollow">Prototype</a>. In 5.4,
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(SymbolConstants.LENIENT_DATE_FORMAT)">tapestry.lenient-date-format
(SymbolConstants.LENIENT_DATE_FORMAT)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.4</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
<p>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>
-</div><h3
id="Configuration-tapestry.min-gzip-size(SymbolConstants.)">tapestry.min-gzip-size
(SymbolConstants.)</h3><p>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(SymbolConstants.)">tapestry.omit-generator-meta
(SymbolConstants.)</h3><p>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 use
of Tapestry.</p><h3
id="Configuration-tapestry.page-pool.active-window(SymbolConstants.)">tapestry.page-pool.active-window
(SymbolConstants.)</h3>
+</div><h3
id="Configuration-tapestry.min-gzip-size(SymbolConstants.MIN_GZIP_SIZE)">tapestry.min-gzip-size
(SymbolConstants.MIN_GZIP_SIZE)</h3><p>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(SymbolConstants.OMIT_GENERATOR_META)">tapestry.omit-generator-meta
(SymbolConstants.OMIT_GENERATOR_META)</h3><p>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 use of Tapestry.</p><h3
id="Configuration-tapestry.page-pool.active-window">tapestry.page-pool.active-window</h3>
<div class="confluence-information-macro
confluence-information-macro-warning"><p class="title">Deprecated since
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div 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 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(SymbolConstants.)">tapestry.page-pool-enabled
(SymbolConstants.)</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 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. Unde
r 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="confluence-information-macro
confluence-information-macro-warning"><p class="title">Deprecated since
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div 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(SymbolConstants.)">tapestry.page-pool.hard-limit
(SymbolConstants.)</h3>
+<p>Removed in 5.3.</p></div><h3
id="Configuration-tapestry.page-pool.hard-limit">tapestry.page-pool.hard-limit</h3>
<div class="confluence-information-macro
confluence-information-macro-warning"><p class="title">Deprecated since
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div 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(SymbolConstants.)">tapestry.page-pool.soft-limit
(SymbolConstants.)</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="confluence-information-macro
confluence-information-macro-warning"><p class="title">Deprecated since
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div 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(SymbolConstants.)">tapestry.page-pool.soft-wait
(SymbolConstants.)</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="confluence-information-macro
confluence-information-macro-warning"><p class="title">Deprecated since
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div 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 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(SymbolConstants.)">tapestry.persistence-strategy
(SymbolConstants.)</h3><p>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(SymbolConstants.)">tapestry.production-mode
(SymbolConstants.)</h3><p>A f
lag (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(SymbolConstants.)">tapestry.restrictive-environment
(SymbolConstants.)</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 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(SymbolConstants.PERSISTENCE_STRATEGY)">tapestry.persistence-strategy
(SymbolConstants.PERSISTENCE_STRATEGY)</h3><p>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(SymbolConstants.PRODUCTION_MODE)"
>tapestry.production-mode (SymbolConstants.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.restrictive-environment(SymbolConstants.RESTRICTIVE_ENVIRONMENT)">tapestry.restrictive-environment
> (SymbolConstants.RESTRICTIVE_ENVIRONMENT)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.4</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-</div><p>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.</p><h3
id="Configuration-tapestry.secure-enabled(SymbolConstants.)">tapestry.secure-enabled
(SymbolConstants.)</h3><p>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. See <a href="https.html">HTTPS<
/a> for details.</p><h3
id="Configuration-tapestry.secure-page(SymbolConstants.)">tapestry.secure-page
(SymbolConstants.)</h3><p>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(SymbolConstants.)">tapestry.service-reloading-enabled
(SymbolConstants.)</h3>
+</div><p>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.</p><h3
id="Configuration-tapestry.secure-enabled(SymbolConstants.SECURE_ENABLED)">tapestry.secure-enabled
(SymbolConstants.SECURE_ENABLED)</h3><p>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. See
<a href="https.html">HTTPS</a> for details.</p><h3
id="Configuration-tapestry.secure-page(MetaDataConstants.SECURE_PAGE)">tapestry.secure-page
(MetaDataConstants.SECURE_PAGE)</h3><p>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="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </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(SymbolConstants.)">tapestry.scriptaculous
(SymbolConstants.)</h3>
+<p> </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 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(SymbolConstants.SCRIPTACULOUS)">tapestry.scriptaculous
(SymbolConstants.SCRIPTACULOUS)</h3>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </p></div><p>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 script.aculo.us library. See <a
href="legacy-javascript.html">Legacy JavaScript</a> for the default
version.</p><h3
id="Configuration-tapestry.session-locking-enabled(SymbolConstants.)">tapestry.session-locking-enabled
(SymbolConstants.)</h3>
+<p> </p></div><p>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 script.aculo.us library. See <a
href="legacy-javascript.html">Legacy JavaScript</a> for the default
version.</p><h3
id="Configuration-tapestry.session-locking-enabled(SymbolConstants.SESSION_LOCKING_ENABLED)">tapestry.session-locking-enabled
(SymbolConstants.SESSION_LOCKING_ENABLED)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.4</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div style="border-right: 20px solid #D8E4F1;border-left: 20px solid #D8E4F1;">
-<p> </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 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(SymbolConstants.)">tapestry.start-page-name
(SymbolConstants.)</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(SymbolConstants.)">tapestry.supported-locales
(SymbolConstants.)</h3><p>A comma-separated list of supported locales.
Incoming requests a
s "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(SymbolConstants.)">tapestry.suppress-redirect-from-action-requests
(SymbolConstants.)</h3>
+<p> </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 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(SymbolConstants.START_PAGE_NAME)">tapestry.start-page-name
(SymbolConstants.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(SymbolConstants.SUPPORTED_LOCALES)">tapestry.supported-locales
(SymbolConstants.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(SymbolConstants.SUPPRESS_REDIRECT_FROM_ACTION_REQUESTS)">tapestry.suppress-redirect-from-action-requests
(SymbolConstants.SUPPRESS_REDIRECT_FROM_ACTION_REQUESTS)</h3>
<div class="confluence-information-macro
confluence-information-macro-warning"><p class="title">Deprecated since
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div 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(SymbolConstants.)">tapestry.thread-pool.core-pool-size
(SymbolConstants.)</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(SymbolConstants.)">tapestry.thread-pool.max-pool-size
(SymbolConstants.)</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(SymbolConstants.)">tapestry.thread-pool.queue-size
(SymbolConstants.)</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(IOCSymbols.THREAD_POOL_CORE_SIZE)">tapestry.thread-pool.core-pool-size
(IOCSymbols.THREAD_POOL_CORE_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(IOCSymbols.THREAD_POOL_MAX_SIZE)">tapestry.thread-pool.max-pool-size
(IOCSymbols.THREAD_POOL_MAX_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(IOCSymbols.THREAD_POOL_QUEUE_SIZE)">tapestry.thread-pool.queue-size
(IOCSymbols.THREAD_POOL_QUEUE_SIZE)</h3>
<div class="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
<div 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(SymbolConstants.)">tapestry.thread-pool.keep-alive
(SymbolConstants.)</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(SymbolConstants.)">tapestry.thread-pool-enabled
(SymbolConstants.)</h3><p>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>
+<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(IOCSymbols.THREAD_POOL_KEEP_ALIVE)">tapestry.thread-pool.keep-alive
(IOCSymbols.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(IOCSymbols.THREAD_POOL_ENABLED)">tapestry.thread-pool-enabled
(IOCSymbols.THREAD_POOL_ENABLED)</h3><p>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="confluence-information-macro
confluence-information-macro-information"><p class="title">Added in
5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body">
</div></div>
Modified: websites/production/tapestry/content/google-app-engine.html
==============================================================================
--- websites/production/tapestry/content/google-app-engine.html (original)
+++ websites/production/tapestry/content/google-app-engine.html Tue Feb 16
01:20:22 2016
@@ -67,7 +67,7 @@
</div>
<div id="content">
- <div id="ConfluenceContent"><p>Tapestry apps should run fine
on Google App Engine (GAE) if you follow certain important
steps.</p><ul><li><p>Set the <code>tapestry.restrictive-environment</code>
configuration symbol to true (to prevent Tapestry from writing exception
reports and cached resources to the file system)</p></li><li><p>Set the
<code>tapestry.thread-pool-enabled</code> configuration symbol to false (to
prevent Tapestry's PeriodicExecutor from attempting to spawn
threads)</p></li></ul><h2 id="GoogleAppEngine-Exampleconfiguration">Example
configuration</h2><p>Your application's module class (generally AppModule.java)
can set these symbols where it sets others (either in a method named
contributeApplicationDefaults or one annotated with @ApplicationDefaults
and @Contribute), as shown below.</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>AppModule (partial)</b></div><di
v class="codeContent panelContent pdl">
+ <div id="ConfluenceContent"><p>Tapestry apps should run fine
on Google App Engine (GAE) if you follow certain important steps.</p><h2
id="GoogleAppEngine-RequiredConfigurationSettings">Required Configuration
Settings</h2><ul><li><p>Set <code>tapestry.production-mode</code> to true (to
turn off live class reloading, among other things)</p></li><li><p>Set the
<code>tapestry.restrictive-environment</code> configuration symbol to true (to
prevent Tapestry from writing exception reports and cached resources to the
file system)</p></li><li><p>Set the <code>tapestry.thread-pool-enabled</code>
configuration symbol to false (to prevent Tapestry's PeriodicExecutor from
attempting to spawn threads)</p></li></ul><h3
id="GoogleAppEngine-Exampleconfiguration">Example configuration</h3><p>Your
application's module class (generally AppModule.java) can set these symbols
where it sets others (either in a method named contributeApplicationDefaults or
one annotated with @Applicatio
nDefaults and @Contribute), as shown below.</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>AppModule (partial)</b></div><div
class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default"
style="font-size:12px;">     @ApplicationDefaults
     @Contribute(SymbolProvider.class)
     public static void configureMyApp(
@@ -78,7 +78,7 @@
configuration.add(IOCSymbols.THREAD_POOL_ENABLED, "false");
...
     }</pre>
-</div></div><p>NOTE: Setting production mode to true is generally only
desirable in production and QA/testing environments), but you can override that
symbol with a JVM system property
(<code>-Dtapestry.production-mode=false</code>) in those environments.</p></div>
+</div></div><p>NOTE: Setting production mode to true is generally only
desirable in production and QA/testing environments), but you can override that
symbol with a JVM system property
(<code>-Dtapestry.production-mode=false</code>) in those environments.</p><h2
id="GoogleAppEngine-SerializableObjects">Serializable Objects</h2><ul><li>Make
sure all objects that you store in the servlet session -- particularly those
annotated with @SessionState and @SessionAttribute – are
actually serializable types. Otherwise you may see strange behavior in which
objects seem to lose their session values.</li></ul><h2
id="GoogleAppEngine-OtherConsiderations">Other Considerations</h2><p>Other than
the above settings, Tapestry should provide no impediment to running your app
under Google App Engine. However, you still need to adhere to all of GAE's
usual constraints (as with any app, Tapestry or otherwise). Please carefully
read Google's documentation for general guidelines for creatin
g an app that is compatible with GAE.</p></div>
</div>
<div class="clearer"></div>