Author: buildbot
Date: Sat Feb  3 13:21:04 2018
New Revision: 1024776

Log:
Production update by buildbot for tapestry

Modified:
    websites/production/tapestry/content/cache/main.pageCache
    websites/production/tapestry/content/class-reloading.html
    websites/production/tapestry/content/configuration.html
    websites/production/tapestry/content/creating-the-skeleton-application.html
    websites/production/tapestry/content/dependencies-tools-and-plugins.html
    websites/production/tapestry/content/exploring-the-project.html
    websites/production/tapestry/content/getting-started.html
    
websites/production/tapestry/content/implementing-the-hi-lo-guessing-game.html
    websites/production/tapestry/content/introduction.html
    websites/production/tapestry/content/principles.html
    
websites/production/tapestry/content/supported-environments-and-versions.html
    websites/production/tapestry/content/tapestry-tutorial.html
    websites/production/tapestry/content/user-guide.html
    
websites/production/tapestry/content/using-beaneditform-to-create-user-forms.html
    websites/production/tapestry/content/using-tapestry-with-hibernate.html

Modified: websites/production/tapestry/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/tapestry/content/class-reloading.html
==============================================================================
--- websites/production/tapestry/content/class-reloading.html (original)
+++ websites/production/tapestry/content/class-reloading.html Sat Feb  3 
13:21:04 2018
@@ -110,7 +110,7 @@
 </div>
 
 
-<p>One of the best features of Tapestry is automatic reloading of changed 
classes and templates. <em>Page and component</em> classes will automatically 
reload when changed. Likewise, changes to component templates and other related 
resources will also be picked up immediately. In addition, starting in version 
5.2, your service classes will also be reloaded automatically after changes (if 
you're using <a  href="ioc.html">Tapestry IoC</a>).</p><h2 
id="ClassReloading-TemplateReloading">Template Reloading</h2><p>When a template 
changes, all page instances (as well as the hierarchy of components below them) 
are discarded and reconstructed with the new template. However, classes are not 
reloaded in this case.</p><h2 id="ClassReloading-ClassReloading">Class 
Reloading</h2><p>On a change to <em>any</em> loaded class from inside a 
controlled package (or any sub-package of a controlled package), Tapestry will 
discard all page instances, and discard the class loader.</p><p><a  
href="persistent-
 page-data.html">Persistent field data</a> on the pages will usually not be 
affected (as it is stored separately, usually in the session). This allows you 
to make fairly significant changes to a component class even while the 
application continues to run.</p><h2 
id="ClassReloading-PackagesScanned">Packages Scanned</h2><p>Only certain 
classes are subject to reload. Reloading is based on package name; the packages 
that are reloaded are derived from the <a  
href="configuration.html">application configuration</a>.</p><p>If your root 
package is <code>org.example.myapp</code>, then only classes in the following 
packages (and their sub-packages) will be scanned for automatic 
reloads:</p><ul><li>org.example.myapp.pages</li><li>org.example.myapp.components</li><li>org.example.myapp.mixins</li><li>org.example.myapp.base</li><li>org.example.myapp.services
 (Tapestry 5.2 and later, with restrictions)</li></ul><p>
+<p>One of the best features of Tapestry is automatic reloading of changed 
classes and templates. <em>Page and component</em> classes will automatically 
reload when changed. Likewise, changes to component templates and other related 
resources will also be picked up immediately. In addition, starting in version 
5.2, your service classes will also be reloaded automatically after changes (if 
you're using <a  href="class-reloading.html">Tapestry IoC</a>).</p><h2 
id="ClassReloading-TemplateReloading">Template Reloading</h2><p>When a template 
changes, all page instances (as well as the hierarchy of components below them) 
are discarded and reconstructed with the new template. However, classes are not 
reloaded in this case.</p><h2 id="ClassReloading-ClassReloading">Class 
Reloading</h2><p>On a change to <em>any</em> loaded class from inside a 
controlled package (or any sub-package of a controlled package), Tapestry will 
discard all page instances, and discard the class loader.</p><p><a  href=
 "class-reloading.html">Persistent field data</a> on the pages will usually not 
be affected (as it is stored separately, usually in the session). This allows 
you to make fairly significant changes to a component class even while the 
application continues to run.</p><h2 
id="ClassReloading-PackagesScanned">Packages Scanned</h2><p>Only certain 
classes are subject to reload. Reloading is based on package name; the packages 
that are reloaded are derived from the <a  
href="class-reloading.html">application configuration</a>.</p><p>If your root 
package is <code>org.example.myapp</code>, then only classes in the following 
packages (and their sub-packages) will be scanned for automatic 
reloads:</p><ul><li>org.example.myapp.pages</li><li>org.example.myapp.components</li><li>org.example.myapp.mixins</li><li>org.example.myapp.base</li><li>org.example.myapp.services
 (Tapestry 5.2 and later, with restrictions)</li></ul><p>
 
 </p><div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Added in 
5.2</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
 </div></div>

Modified: websites/production/tapestry/content/configuration.html
==============================================================================
--- websites/production/tapestry/content/configuration.html (original)
+++ websites/production/tapestry/content/configuration.html Sat Feb  3 13:21:04 
2018
@@ -147,11 +147,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.rbtoc1499639540986 {padding: 0px;}
-div.rbtoc1499639540986 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1499639540986 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1517664027713 {padding: 0px;}
+div.rbtoc1517664027713 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1517664027713 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1499639540986">
+/*]]>*/</style></p><div class="toc-macro rbtoc1517664027713">
 <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;">&lt;!DOCTYPE web-app
@@ -178,7 +178,7 @@ div.rbtoc1499639540986 li {margin-left:
 
 <p>The Tapestry filter matches all the requests that apply to Tapestry, and 
passes the rest off to the servlet container. In situations where there would 
be a naming conflict, actual files inside the web application take precedence 
over Tapestry pages.</p>
 
-<p>Tapestry recognizes the <em>root URL</em>, where the servlet path is simply 
"/", and renders the application page "Index", if it exists.</p></div>The 
application-specific part, the <code>tapestry.app-package</code> context 
parameter, provides your application's root package name. Tapestry uses this to 
locate your page and component classes. It expects page classes in the 
<code>pages</code> sub-package and components in the <code>components</code> 
sub-package. In the example above, page classes will be stored in the 
<code>org.example.myapp.pages</code> package (or in sub-packages below). 
Likewise, component classes will be stored in the 
<code>org.example.myapp.components</code> package.<p>By convention, the filter 
name (<code>filter-name</code>) is almost always "app", but you can use any 
name you want. Tapestry uses this to determine what <em>module class</em> name 
to look for (see below).</p><h2 
id="Configuration-YourApplication'sModuleClass">Your Application's Module 
Class</h2>
 <p>Main Article: <a  href="tapestry-ioc-configuration.html">Tapestry IoC 
Configuration</a></p><p>Most other configuration occurs inside your 
application's module class. The application module class will often define new 
services, provide overrides of services, or make contributions to service 
configurations.</p><p>Tapestry looks for your application module class in the 
services package (under the root package) of your application. It capitalizes 
the &lt;filter-name&gt; and appends "Module". In the previous example, because 
the filter name was "app" and the application's root package name is 
"org.example.myapp", the module class would be 
org.example.myapp.services.AppModule.</p><p>If such a class exists, it is added 
to the IoC Registry. It is not an error for your application to not have a 
module class, though any non-trivial application will have one.</p><p>Your 
application module class (usually AppModule.java) will typically override some 
of Tapestry's default, or "factory", symbol
 s, by contributing overrides to the ApplicationDefaults service configuration. 
For example:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeHeader panelHeader pdl" style="border-bottom-width: 
1px;"><b>AppModule.java</b></div><div class="codeContent panelContent pdl">
+<p>Tapestry recognizes the <em>root URL</em>, where the servlet path is simply 
"/", and renders the application page "Index", if it exists.</p></div>The 
application-specific part, the <code>tapestry.app-package</code> context 
parameter, provides your application's root package name. Tapestry uses this to 
locate your page and component classes. It expects page classes in the 
<code>pages</code> sub-package and components in the <code>components</code> 
sub-package. In the example above, page classes will be stored in the 
<code>org.example.myapp.pages</code> package (or in sub-packages below). 
Likewise, component classes will be stored in the 
<code>org.example.myapp.components</code> package.<p>By convention, the filter 
name (<code>filter-name</code>) is almost always "app", but you can use any 
name you want. Tapestry uses this to determine what <em>module class</em> name 
to look for (see below).</p><h2 
id="Configuration-YourApplication'sModuleClass">Your Application's Module 
Class</h2>
 <p>Main Article: <a  href="configuration.html">Configuration</a></p><p>Most 
other configuration occurs inside your application's module class. The 
application module class will often define new services, provide overrides of 
services, or make contributions to service configurations.</p><p>Tapestry looks 
for your application module class in the services package (under the root 
package) of your application. It capitalizes the &lt;filter-name&gt; and 
appends "Module". In the previous example, because the filter name was "app" 
and the application's root package name is "org.example.myapp", the module 
class would be org.example.myapp.services.AppModule.</p><p>If such a class 
exists, it is added to the IoC Registry. It is not an error for your 
application to not have a module class, though any non-trivial application will 
have one.</p><p>Your application module class (usually AppModule.java) will 
typically override some of Tapestry's default, or "factory", symbols, by 
contributing overrid
 es to the ApplicationDefaults service configuration. For example:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 
1px;"><b>AppModule.java</b></div><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">public class AppModule
 {
   public static void 
contributeApplicationDefaults(MappedConfiguration&lt;String,String&gt; 
configuration)
@@ -188,7 +188,7 @@ div.rbtoc1499639540986 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 &lt;context-param&gt; element into the 
application's web.xml, or on the command line by defining JVM System Properties 
with the -D command line option.</p><p>These symbols are always defined in 
terms of strings, and those strings are coerced to the appropriate type (a 
number, a boolean, etc.). Of special note are <em>time intervals</em>, which 
are specified in a <a  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></div><h2 id="Configuration-ConfigurationSymbolNames">Configuration 
Symbol Names</h2><p>Main Article: <a  
href="configuration.html">Configuration</a></p><p>Many of Tapestry's built-in 
services (some of which are not even public) are configured via symbols. These 
symbols can be overridden by contributing to the ApplicationDefaults service 
configuration, or by placing a &lt;context-param&gt; element into the 
application's web.xml, or on the command line by defining JVM System Properties 
with the -D command line option.</p><p>These symbols are always defined in 
terms of strings, and those strings are coerced to the appropriate type (a 
number, a boolean, etc.). Of special note are <em>time intervals</em>, which 
are specified in a <a  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.a
 
pache.org/current/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. Assets may be <a  href="configuration.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>
@@ -198,7 +198,7 @@ div.rbtoc1499639540986 li {margin-left:
 <div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Added in 
5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
 </div></div>
 <div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div><p>A boolean value to indicate whether <a  
href="assets.html">asset</a> URLs should be fully qualified in the rendered 
page.<br clear="none"> This defaults to <code>false</code> (not fully 
qualified).</p><h3 
id="Configuration-tapestry.asset-path-prefix(SymbolConstants.ASSET_PATH_PREFIX)">tapestry.asset-path-prefix
 (SymbolConstants.ASSET_PATH_PREFIX)</h3>
+<p>&#160;</p></div><p>A boolean value to indicate whether <a  
href="configuration.html">asset</a> URLs should be fully qualified in the 
rendered page.<br clear="none"> This defaults to <code>false</code> (not fully 
qualified).</p><h3 
id="Configuration-tapestry.asset-path-prefix(SymbolConstants.ASSET_PATH_PREFIX)">tapestry.asset-path-prefix
 (SymbolConstants.ASSET_PATH_PREFIX)</h3>
 
 <div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Added in 
5.3.1</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
 </div></div>
@@ -213,7 +213,7 @@ div.rbtoc1499639540986 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 class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div><p>The root asset path for Twitter Bootstrap; if your 
application uses a modified version of Bootstrap, you can override this symbol 
to have Tapestry automatically use your version. The value should be a path to 
a folder (under "classpath:" or "context:") and should not include a trailing 
slash.</p><h3 
id="Configuration-tapestry.charset(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>
+<p>&#160;</p></div><p>The root asset path for Twitter Bootstrap; if your 
application uses a modified version of Bootstrap, you can override this symbol 
to have Tapestry automatically use your version. The value should be a path to 
a folder (under "classpath:" or "context:") and should not include a trailing 
slash.</p><h3 
id="Configuration-tapestry.charset(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="configuration.html">Configuration</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>
@@ -233,7 +233,7 @@ div.rbtoc1499639540986 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 class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div><p>When enabled, Tapestry will check that component ids 
referenced in event handler method names (or the @OnEvent annotation) match up 
against components in the container's template. The default is true, but 
applications upgraded form Tapestry 5.2 may want to set this to false, to keep 
pages from failing due to the presence of such dead code.</p><h3 
id="Configuration-tapestry.component-render-tracing-enabled(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 &lt;!--BEGIN Index:loop 
(context:Index.tml, line 15)--&gt;) that can assist you in debugging markup 
output on the client-side. This will significantly increase the size of the 
rendered markup, but can be very helpful with complex layouts to determine 
which component was responsible for 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&#160;(SymbolConstants.MODULE_PATH_PREFIX)</h3>
+<p>&#160;</p></div><p>When enabled, Tapestry will check that component ids 
referenced in event handler method names (or the @OnEvent annotation) match up 
against components in the container's template. The default is true, but 
applications upgraded form Tapestry 5.2 may want to set this to false, to keep 
pages from failing due to the presence of such dead code.</p><h3 
id="Configuration-tapestry.component-render-tracing-enabled(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 &lt;!--BEGIN Index:loop 
(context:Index.tml, line 15)--&gt;) that can assist you in debugging markup 
output on the client-side. This will significantly increase the size of the 
rendered markup, but can be very helpful with complex layouts to determine 
which component was responsible for 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="configuration.html">Configuration</a> 
for details.</p><h3 
id="Configuration-tapestry.module-path-prefix(SymbolConstants.MODULE_PATH_PREFIX)">tapestry.module-path-prefix&#160;(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>
@@ -263,12 +263,12 @@ div.rbtoc1499639540986 li {margin-left:
 <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 class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div><p>If "true", then resources (individually or when 
aggregated into stacks) will be minimized via the ResourceMinimizer service. If 
"false", then minification is disabled. The default is "true" in production 
mode, "false" otherwise.</p><p>Note that Tapestry's default implementation of 
ResourceMinimizer does nothing; minification is provided by add-on libraries. 
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><p>
+<p>&#160;</p></div><p>If "true", then resources (individually or when 
aggregated into stacks) will be minimized via the ResourceMinimizer service. If 
"false", then minification is disabled. The default is "true" in production 
mode, "false" otherwise.</p><p>Note that Tapestry's default implementation of 
ResourceMinimizer does nothing; minification is provided by add-on libraries. 
See <a  href="configuration.html">Configuration</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 Lin
 kCreationHub) in order to add the locale as a query parameter (or provide some 
alternate means of persisting the locale between requests). See <a  
href="configuration.html">Configuration</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="configuration.html">Configuration</a> for 
details.</p><h3 
id="Configuration-tapestry.exception-reports-dir(SymbolConstants.EXCEPTION_REPORTS_DIR)">tapestry.exception-reports-dir
 (SymbolConstants.EXCEPTION_REPORTS_DIR)</h3><p>
 
 </p><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 class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div>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(SymbolConstants.EXECUTION_MODE)">tapestry.execution-mode&#160;
 (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 def
 ault 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.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="Confi
 
guration-tapestry.force-absolute-uris(SymbolConstants.FORCE_ABSOLUTE_URIS)">tapestry.force-absolute-uris
 (SymbolConstants.<span>FORCE_ABSOLUTE_URIS</span>)</h3>
+<p>&#160;</p></div>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(SymbolConstants.EXECUTION_MODE)">tapestry.execution-mode&#160;
 (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="configuration.html">Configuration</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.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="Configura
 
tion-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>
@@ -293,7 +293,7 @@ div.rbtoc1499639540986 li {margin-left:
 <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 class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</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 &#8211; 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>
+<p>&#160;</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 &#8211; typically by making a contribution in your 
applications module class (normally AppModule.java). See <a  
href="configuration.html">Configuration</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>
@@ -309,7 +309,7 @@ div.rbtoc1499639540986 li {margin-left:
 </div></div>
 <div class="error"><span class="error">Unknown macro: {div}</span> 
 <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.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 &lt;meta&gt; 
tag that Tapestry normally writes into the &lt;head&gt;, identifying the 
Tapestry version, will be omitted. Use this when you do not wish to advertise 
your application's use of Tapestry.</p><h3 
id="Configuration-tapestry.page-pool.active-window">tapestry.page-pool.active-window</h3>
+</div><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="configuration.html">Configuration</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 &lt;meta&gt; 
tag that Tapestry normally writes into the &lt;head&gt;, identifying the 
Tapestry version, will be omitted. Use this when you do not wish to advertise 
your application's use of Tapestry.</p><h3 
id="Configuration-tapestry.page-pool.active-window">tapestry.page-pool.active-window</h3>
 
 <div class="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>
@@ -339,7 +339,7 @@ div.rbtoc1499639540986 li {margin-left:
 </p><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 class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</p></div>A flag (true or false) that, if true, changes some default 
Tapestry behavior to make it work better in restrictive environments such 
as&#160;<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(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>
+<p>&#160;</p></div>A flag (true or false) that, if true, changes some default 
Tapestry behavior to make it work better in restrictive environments such 
as&#160;<a  href="configuration.html">Configuration</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(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="configuration.html">Configuration</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="configuration.html">Configuration</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>
@@ -347,7 +347,7 @@ div.rbtoc1499639540986 li {margin-left:
 <p>&#160;</p></div><p>If true (the default), then Tapestry IoC will attempt to 
reload service implementations when they change. This only applies to classes 
that Tapestry IoC instantiates itself, and have a known service interface (the 
container creates a proxy that, internally, can reload the implementation). 
Service reloading only works when the underlying class files are on the 
filesystem ... it is intended for development, not 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 class="error"><span class="error">Unknown macro: {div}</span> 
-<p>&#160;</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>
+<p>&#160;</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 <a  class="external-link" 
href="http://script.aculo.us"; rel="nofollow">script.aculo.us</a> library. See 
<a  href="configuration.html">Configuration</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>
@@ -362,7 +362,7 @@ div.rbtoc1499639540986 li {margin-left:
 <div class="confluence-information-macro 
confluence-information-macro-information"><p class="title">Added in 
5.3</p><span class="aui-icon aui-icon-small aui-iconfont-info 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
 </div></div>
 <div class="error"><span class="error">Unknown macro: {div}</span> 
-<p>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>
+<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="configuration.html">Configuration</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>
@@ -431,7 +431,7 @@ configuration.add(ComponentParameterCons
 </div></div><p>Execution mode itself may be a comma separated list:</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;">-Dtapestry.execution-mode=uat,integration jetty:run
 </pre>
-</div></div><p><span style="color: rgb(83,145,38);font-size: 
20.0px;line-height: 1.5;">Segregating Applications Into Folders</span></p><p>In 
many cases where Tapestry is being adopted into an existing web application 
(possibly written in Tapestry 4 or some other framework), it is nice to 
segregate the Tapestry application into its own folder, to avoid conflicts with 
the existing application or servlets.</p>
+</div></div><p><span style="color: rgb(83,145,38);">Segregating Applications 
Into Folders</span></p><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="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/creating-the-skeleton-application.html
==============================================================================
--- websites/production/tapestry/content/creating-the-skeleton-application.html 
(original)
+++ websites/production/tapestry/content/creating-the-skeleton-application.html 
Sat Feb  3 13:21:04 2018
@@ -91,10 +91,10 @@
   
&lt;localRepository&gt;C:/Users/joeuser/.m2/repository&lt;/localRepository&gt;
 &lt;/settings&gt;
 </pre>
-</div></div><p>Of course, adjust the <code>localRepository</code> element to 
match the correct path for your computer.</p><h3 
id="CreatingTheSkeletonApplication-CreateProject">Create Project</h3><p>Okay, 
let's get started creating our new project.</p><p>In Eclipse, go to 
<strong>File &gt; New &gt;</strong> <strong>Project... &gt; Maven &gt; Maven 
Project</strong></p><p><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image" 
src="creating-the-skeleton-application.data/select-a-wizard.png"></span></p><p>Then
 click <strong>Next</strong>, <strong>Next</strong> (again), and then on the 
<strong>Select an Archetype</strong> page click the <strong>Configure</strong> 
button on the Catalog line. The <strong>Archetype</strong> preferences dialog 
should appear. Click the <strong>Add Remote Catalog...</strong> button, as 
shown below:</p><p><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image" src="creating-the-skeleton-application.dat
 a/add-archetype-catalog.png"></span></p><p>As shown above, enter <span 
class="nolink"><span class="nolink">"http://tapestry.apache.org";</span></span> 
in the Catalog File field, and "Apache Tapestry" in the Description 
field.</p><div class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>If you want to try an unreleased 
(alpha or beta) version of Tapestry, use <span class="nolink">the 
<strong>https://repository.apache.org/content/repositories/staging</strong></span>
 archetype catalog file instead.</p></div></div><p>Click <strong>OK</strong>, 
then<strong> OK</strong> again.</p><p>On the Select an Archetype dialog (shown 
below), select the newly-added Apache Tapestry catalog, then select the 
"quickstart" artifact from the list and click 
<strong>Next</strong>.</p><p><span 
class="confluence-embedded-file-wrapper"><img cl
 ass="confluence-embedded-image" 
src="creating-the-skeleton-application.data/select-archetype.png"></span></p><p><em><strong>Note:</strong>
 Screenshots in this tutorial may show different (either newer or older) 
versions of Tapestry than you may see.</em></p><p>Fill in the Group Id, 
Artifact Id, Version and Package&#160; as follows:</p><p><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" 
src="creating-the-skeleton-application.data/specify-archetype-parameters.png"></span></p><p>then
 click Finish.</p><div class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The first time you use Maven, 
project creation may take a while as Maven downloads a large number of JAR 
dependencies for Maven, Jetty and Tapestry. These downloaded files are cached 
locally and will not need to be downloaded a
 gain, but you do have to be patient on first use.</p></div></div><p>After 
Maven finishes, you'll see a new directory, <code>tutorial1, in your Package 
Explorer view in Eclipse.</code></p><h2 
id="CreatingTheSkeletonApplication-RunningtheApplicationusingJetty">Running the 
Application using Jetty</h2><p>One of the first things you can do is use Maven 
to run Jetty directly.</p><p>Right-click on the <code>tutorial1</code> project 
in your Package Explorer view and select <strong>Run As &gt; Maven Build... 
&gt;</strong>, enter a Goal of <strong>"jetty:run"</strong>. This creates a 
"Run Configuration" named "tutorial1" that we'll use throughout this tutorial 
to start the app:</p><p><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image" 
src="creating-the-skeleton-application.data/run-configuration.png"></span></p><p>Tapestry
 runs best with a couple of additional options; click the "JRE" tab and enter 
the following VM Arguments:</p><pre></pre><p>-XX:MaxPermSize=
 256M</p><p>-Xmx600m</p><p>-Dtapestry.execution-mode=development</p>
+</div></div><p>Of course, adjust the <code>localRepository</code> element to 
match the correct path for your computer.</p><h3 
id="CreatingTheSkeletonApplication-CreateProject">Create Project</h3><p>Okay, 
let's get started creating our new project.</p><p>In Eclipse, go to 
<strong>File &gt; New &gt;</strong> <strong>Project... &gt; Maven &gt; Maven 
Project</strong></p><p><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/select-a-wizard.png?version=1&amp;modificationDate=1416675284000&amp;api=v2";
 
data-image-src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/select-a-wizard.png?version=1&amp;modificationDate=1416675284000&amp;api=v2";></span></p><p>Then
 click <strong>Next</strong>, <strong>Next</strong> (again), and then on the 
<strong>Select an Archetype</strong> page click the <strong>Configure</strong> 
button on the Catal
 og line. The <strong>Archetype</strong> preferences dialog should appear. 
Click the <strong>Add Remote Catalog...</strong> button, as shown 
below:</p><p><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/add-archetype-catalog.png?version=1&amp;modificationDate=1416675354000&amp;api=v2";
 
data-image-src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/add-archetype-catalog.png?version=1&amp;modificationDate=1416675354000&amp;api=v2";></span></p><p>As
 shown above, enter <span class="nolink"><span class="nolink">"<span 
class="nolink">http://tapestry.apache.org</span>"</span></span> in the Catalog 
File field, and "Apache Tapestry" in the Description field.</p><div 
class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon">
 </span><div class="confluence-information-macro-body"><p>If you want to try an 
unreleased (alpha or beta) version of Tapestry, use <span class="nolink">the 
<strong><a  class="external-link" 
href="https://repository.apache.org/content/repositories/staging";>https://repository.apache.org/content/repositories/staging</a></strong></span>
 archetype catalog file instead.</p></div></div><p>Click <strong>OK</strong>, 
then<strong> OK</strong> again.</p><p>On the Select an Archetype dialog (shown 
below), select the newly-added Apache Tapestry catalog, then select the 
"quickstart" artifact from the list and click 
<strong>Next</strong>.</p><p><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/select-archetype.png?version=1&amp;modificationDate=1416675447000&amp;api=v2";
 
data-image-src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/sel
 
ect-archetype.png?version=1&amp;modificationDate=1416675447000&amp;api=v2"></span></p><p><em><strong>Note:</strong>
 Screenshots in this tutorial may show different (either newer or older) 
versions of Tapestry than you may see.</em></p><p>Fill in the Group Id, 
Artifact Id, Version and Package&#160; as follows:</p><p><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/specify-archetype-parameters.png?version=1&amp;modificationDate=1416675494000&amp;api=v2";
 
data-image-src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/specify-archetype-parameters.png?version=1&amp;modificationDate=1416675494000&amp;api=v2";></span></p><p>then
 click Finish.</p><div class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div c
 lass="confluence-information-macro-body"><p>The first time you use Maven, 
project creation may take a while as Maven downloads a large number of JAR 
dependencies for Maven, Jetty and Tapestry. These downloaded files are cached 
locally and will not need to be downloaded again, but you do have to be patient 
on first use.</p></div></div><p>After Maven finishes, you'll see a new 
directory, <code>tutorial1, in your Package Explorer view in 
Eclipse.</code></p><h2 
id="CreatingTheSkeletonApplication-RunningtheApplicationusingJetty">Running the 
Application using Jetty</h2><p>One of the first things you can do is use Maven 
to run Jetty directly.</p><p>Right-click on the <code>tutorial1</code> project 
in your Package Explorer view and select <strong>Run As &gt; Maven Build... 
&gt;</strong>, enter a Goal of <strong>"jetty:run"</strong>. This creates a 
"Run Configuration" named "tutorial1" that we'll use throughout this tutorial 
to start the app:</p><p><span class="confluence-embedded-file-wrapp
 er"><img class="confluence-embedded-image confluence-external-resource" 
src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/run-configuration.png?version=2&amp;modificationDate=1416744425000&amp;api=v2";
 
data-image-src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/run-configuration.png?version=2&amp;modificationDate=1416744425000&amp;api=v2";></span></p><p>Tapestry
 runs best with a couple of additional options; click the "JRE" tab and enter 
the following VM 
Arguments:</p><pre></pre><p>-XX:MaxPermSize=256M</p><p>-Xmx600m</p><p>-Dtapestry.execution-mode=development</p>
 
 
-<p><code><em>(If you're using JDK 1.8 then you should omit the MaxPermSize 
argument.)</em></code></p><p><code>Here's how it looks:<br 
clear="none"></code></p><p><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image" 
src="creating-the-skeleton-application.data/run-configuration-jre.png"></span></p><p>Finally,
 click <strong>Run</strong>.</p><p>Again, the first time, there's a dizzying 
number of downloads, but before you know it, the Jetty servlet container is up 
and running.</p><p>Once Jetty is initialized (which only takes a few seconds 
after the first time), you'll see the following in your console:</p><p><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image" 
src="creating-the-skeleton-application.data/console-startup.png"></span></p><p><em>Note
 the red square icon above. Later on you'll use that icon to stop Jetty before 
restarting the app.</em></p><p>You can now open a web browser to <a  
class="external-link" href="http
 ://localhost:8080/tutorial1/" 
rel="nofollow">http://localhost:8080/tutorial1/</a> to see the running 
application:</p><p>&#160;</p><p><span class="confluence-embedded-file-wrapper 
image-left-wrapper"><img class="confluence-embedded-image 
confluence-content-image-border image-left" 
src="creating-the-skeleton-application.data/startpage.png"></span></p><p>&#160;</p><div
 style="clear: both"></div><p style="text-align: left;"><strong><em>NOTE: Your 
screen may look very different depending on the version of Tapestry you are 
using!</em></strong></p><p style="text-align: left;">The date and time in the 
middle of the page shows that this is a live application.</p><p>This is a 
complete little web app; it doesn't do much, but it demonstrate how to create a 
number of pages sharing a common layout, and demonstrates some simple 
navigation and link handling. You can see that it has several different pages 
that share a common layout. (<span style="line-height: 
1.4285715;"><em>Layout</em> is a loose 
 term meaning common look and feel and navigation across many or all of the 
pages of an application. Often an application will include a Layout component 
to provide that commonness.)</span></p><p><span style="line-height: 
1.4285715;">Next: <a  href="exploring-the-project.html">Exploring the 
Project</a></span></p><p><span style="line-height: 1.4285715;"><br 
clear="none"></span></p></div>
+<p><code><em>(If you're using JDK 1.8 then you should omit the MaxPermSize 
argument.)</em></code></p><p><code>Here's how it looks:<br 
clear="none"></code></p><p><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/run-configuration-jre.png?version=2&amp;modificationDate=1416744425000&amp;api=v2";
 
data-image-src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/run-configuration-jre.png?version=2&amp;modificationDate=1416744425000&amp;api=v2";></span></p><p>Finally,
 click <strong>Run</strong>.</p><p>Again, the first time, there's a dizzying 
number of downloads, but before you know it, the Jetty servlet container is up 
and running.</p><p>Once Jetty is initialized (which only takes a few seconds 
after the first time), you'll see the following in your console:</p><p><span 
class="confluence-embedded-file-wrapper"><img class="conflue
 nce-embedded-image confluence-external-resource" 
src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/console-startup.png?version=2&amp;modificationDate=1416797756000&amp;api=v2";
 
data-image-src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/console-startup.png?version=2&amp;modificationDate=1416797756000&amp;api=v2";></span></p><p><em>Note
 the red square icon above. Later on you'll use that icon to stop Jetty before 
restarting the app.</em></p><p>You can now open a web browser to <a  
class="external-link" href="http://localhost:8080/tutorial1/"; 
rel="nofollow">http://localhost:8080/tutorial1/</a> to see the running 
application:</p><p>&#160;</p><p><span class="confluence-embedded-file-wrapper 
image-left-wrapper"><img class="confluence-embedded-image 
confluence-external-resource confluence-content-image-border image-left" 
src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/startpage.png?version=7&amp;modificationDat
 e=1416798158000&amp;api=v2" 
data-image-src="https://cwiki-test.apache.org/confluence/download/attachments/23340356/startpage.png?version=7&amp;modificationDate=1416798158000&amp;api=v2";></span></p><p>&#160;</p><div
 style="clear: both"></div><p style="text-align: left;"><strong><em>NOTE: Your 
screen may look very different depending on the version of Tapestry you are 
using!</em></strong></p><p style="text-align: left;">The date and time in the 
middle of the page shows that this is a live application.</p><p>This is a 
complete little web app; it doesn't do much, but it demonstrate how to create a 
number of pages sharing a common layout, and demonstrates some simple 
navigation and link handling. You can see that it has several different pages 
that share a common layout. (<span><em>Layout</em> is a loose term meaning 
common look and feel and navigation across many or all of the pages of an 
application. Often an application will include a Layout component to provide 
that commonness.)</spa
 n></p><p><span>Next: <a  
href="creating-the-skeleton-application.html">Creating The Skeleton 
Application</a></span></p><p><span><br clear="none"></span></p></div>
       </div>
 
       <div class="clearer"></div>

Modified: 
websites/production/tapestry/content/dependencies-tools-and-plugins.html
==============================================================================
--- websites/production/tapestry/content/dependencies-tools-and-plugins.html 
(original)
+++ websites/production/tapestry/content/dependencies-tools-and-plugins.html 
Sat Feb  3 13:21:04 2018
@@ -36,13 +36,26 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div>
+
+</div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
- <input type="text" name="q"> 
- <input type="submit" value="Search"> 
-</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Dependencies, Tools and Plugins</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
+<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
+  <input type="text" name="q">
+  <input type="submit" value="Search">
+</form>
+
+</div>
+
+
+<div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div>
+
+
+<div class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Dependencies, Tools and Plugins</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 
@@ -54,7 +67,7 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p>As much as we would like to 
dive right into the code, we must first set up your development environment. 
Likely you have some of these, or reasonable alternatives, already on your 
development machine.</p><h1 id="Dependencies,ToolsandPlugins-JDK1.5orNewer">JDK 
1.5 or Newer</h1><p>Tapestry requires Java Development Kit (JDK) version 1.5 or 
newer, except that starting with Tapestry 5.4 you must use JDK 1.6 or newer. 
JDK 1.8 works only for Tapestry 5.3.8 or newer (but see the <a  
href="release-notes-538.html">release notes</a>).</p><h1 
id="Dependencies,ToolsandPlugins-EclipseIDE">Eclipse IDE</h1><p>For this 
tutorial we'll assume you're using Eclipse as your Integrated Development 
Environment (IDE). Eclipse is a popular IDE, but feel free to adapt these 
instructions to IntelliJ, NetBeans, or any other.</p><p>Eclipse comes in 
various flavors, and includes a reasonable XML editor built-in. It can be <a  
class="external-link" href="http://www.e
 clipse.org/downloads/" rel="nofollow">downloaded from the eclipse.org web 
site</a>. We recommend the latest version of Eclipse IDE for Java Developers 
(but anything from version 3.7 onward should work fine).</p><h1 
id="Dependencies,ToolsandPlugins-ApacheMaven3">Apache Maven 3</h1><p>Maven is a 
software build tool with the ability to automatically download project 
dependencies (such as the Tapestry JAR files, and the JAR files that Tapestry 
itself depends on) from one of several central repositories.</p><p>Maven is not 
essential for using Tapestry, but is especially helpful when performing the 
initial set-up of a Tapestry application.</p><p>Eclipse comes with a Maven 
plugin,&#160;<a  class="external-link" href="http://eclipse.org/m2e/"; 
rel="nofollow">M2Eclipse</a> (also known as m2e) with an embedded version of 
Maven. We'll use that here for simplicity's sake. Alternatively, you could 
install Maven from <a  class="external-link" 
href="http://maven.apache.org/download.html";>http://mav
 en.apache.org/download.html</a> and use it from the command line 
("mvn").</p><h1 id="Dependencies,ToolsandPlugins-Jetty">Jetty</h1><p>For 
simplicity, this tutorial uses Jetty, a lightweight open source web server and 
servlet container available from the Eclipse Foundation. Of course, you could 
use pretty much any other Java servlet container (Tomcat, Glassfish, JBoss, 
etc), but the instructions that follow assume Jetty.</p><p>We will use Maven to 
download and run Jetty automatically, so you will NOT have to download it for 
this tutorial. (Alternatively, you could download and install the RunJettyRun 
Eclipse plugin from the Eclipse Marketplace.)</p><h1 
id="Dependencies,ToolsandPlugins-Tapestry">Tapestry</h1><p>Tapestry is 
available as a set of JAR files, but you will not have to download them 
yourself. As with Jetty, Maven will take care of downloading Tapestry and its 
dependencies.</p><p>Next: <a  
href="creating-the-skeleton-application.html">Creating The Skeleton 
Application</a></p
 ><hr><p></p><p>&#160;</p><p>&#160;</p></div>
+                <div id="ConfluenceContent"><p>As much as we would like to 
dive right into the code, we must first set up your development environment. 
Likely you have some of these, or reasonable alternatives, already on your 
development machine.</p><h1 id="Dependencies,ToolsandPlugins-JDK1.5orNewer">JDK 
1.5 or Newer</h1><p>Tapestry requires Java Development Kit (JDK) version 1.5 or 
newer, except that starting with Tapestry 5.4 you must use JDK 1.6 or newer. 
JDK 1.8 works only for Tapestry 5.3.8 or newer (but see the <a  
href="dependencies-tools-and-plugins.html">release notes</a>).</p><h1 
id="Dependencies,ToolsandPlugins-EclipseIDE">Eclipse IDE</h1><p>For this 
tutorial we'll assume you're using Eclipse as your Integrated Development 
Environment (IDE). Eclipse is a popular IDE, but feel free to adapt these 
instructions to IntelliJ, NetBeans, or any other.</p><p>Eclipse comes in 
various flavors, and includes a reasonable XML editor built-in. It can be <a  
class="external-link" href=
 "http://www.eclipse.org/downloads/"; rel="nofollow">downloaded from the 
eclipse.org web site</a>. We recommend the latest version of Eclipse IDE for 
Java Developers (but anything from version 3.7 onward should work fine).</p><h1 
id="Dependencies,ToolsandPlugins-ApacheMaven3">Apache Maven 3</h1><p>Maven is a 
software build tool with the ability to automatically download project 
dependencies (such as the Tapestry JAR files, and the JAR files that Tapestry 
itself depends on) from one of several central repositories.</p><p>Maven is not 
essential for using Tapestry, but is especially helpful when performing the 
initial set-up of a Tapestry application.</p><p>Eclipse comes with a Maven 
plugin,&#160;<a  class="external-link" href="http://eclipse.org/m2e/"; 
rel="nofollow">M2Eclipse</a> (also known as m2e) with an embedded version of 
Maven. We'll use that here for simplicity's sake. Alternatively, you could 
install Maven from <a  class="external-link" 
href="http://maven.apache.org/download.htm
 l">http://maven.apache.org/download.html</a> and use it from the command line 
("mvn").</p><h1 id="Dependencies,ToolsandPlugins-Jetty">Jetty</h1><p>For 
simplicity, this tutorial uses Jetty, a lightweight open source web server and 
servlet container available from the Eclipse Foundation. Of course, you could 
use pretty much any other Java servlet container (Tomcat, Glassfish, JBoss, 
etc), but the instructions that follow assume Jetty.</p><p>We will use Maven to 
download and run Jetty automatically, so you will NOT have to download it for 
this tutorial. (Alternatively, you could download and install the RunJettyRun 
Eclipse plugin from the Eclipse Marketplace.)</p><h1 
id="Dependencies,ToolsandPlugins-Tapestry">Tapestry</h1><p>Tapestry is 
available as a set of JAR files, but you will not have to download them 
yourself. As with Jetty, Maven will take care of downloading Tapestry and its 
dependencies.</p><p>Next: <a  
href="dependencies-tools-and-plugins.html">Dependencies, Tools and Plugin
 s</a></p><hr><p></p><p>&#160;</p><p>&#160;</p></div>
       </div>
 
       <div class="clearer"></div>


Reply via email to