Modified: 
websites/production/tapestry/content/supported-environments-and-versions.html
==============================================================================
--- 
websites/production/tapestry/content/supported-environments-and-versions.html 
(original)
+++ 
websites/production/tapestry/content/supported-environments-and-versions.html 
Sat Feb  3 13:21:04 2018
@@ -67,7 +67,7 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p>Tapestry is compatible with a 
pretty wide range of app servers, Java versions, and open source libraries. Not 
all combinations are known to work, however.</p><p>Note: blanks in the support 
matrix tables below do NOT indicate incompatibility. They are just 
documentation gaps.</p><p>If you know of any other known compatibilities or 
incompatibilities, please add a comment at the bottom of this page, or on 
the&#160;<a  href="mailing-lists.html">Tapestry Users mailing list</a> mailing 
list.</p><h2 
id="SupportedEnvironmentsandVersions-Java&amp;ServletAPIVersions">Java &amp; 
Servlet API Versions</h2><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh">Tapestry Version &#8594;</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.5</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.4</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3.8</th><th colspan="1" rowspan="1" class
 ="confluenceTh">5.3.0 - 5.3.7</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.2</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.1</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0.10</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0.8</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0</th><th colspan="1" rowspan="1" 
class="confluenceTh">4.1</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Java JRE</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.8, 1.9</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.7, 1.8</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.6 - 1.8<sup>1</sup></td><td colspan="1" rowspan="1" 
class="confluenceTd">1.6, 1.7</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.5, 1.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.5, 1.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.5, 1.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.5, 1.6</td><td colspan="1" rowspan="1" class="c
 onfluenceTd">1.5, 1.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.4-1.6</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Servlet API</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.0+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.5+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.5+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.5+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.4+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.4+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.4+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.4+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.4+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.2-2.3</td></tr></tbody></table></div><p><sup>1</sup> For 
using Tapestry 5.3.8 with Java 1.8 see <a  
href="release-notes-538.html">Release Notes 5.3.8</a></p><p><sup>2</sup> 
Servlet API 2.5 requires JDK 1.5+</p><h2 
id="SupportedEnvironmentsandVersions-AppServers">
 App Servers</h2><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh">Tapestry Version &#8594;</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.5</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.4</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3.8</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3.0 - 5.3.7</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.2</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.1</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0.10</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0.8</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0</th><th colspan="1" rowspan="1" 
class="confluenceTh">4.1</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Apache Tomcat</td><td colspan="1" rowspan="1" 
class="confluenceTd">6+</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</t
 d><td colspan="1" rowspan="1" class="confluenceTd">6+</td><td colspan="1" 
rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Jetty</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;9</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;7-9</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;6-9</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;6-8</td><td colspan="1" rowspan="1" 
class="confluenceTd">6-8</td><td colspan="1" rowspan="1" 
class="confluenceTd">6-8</td><td colspan="1" rowspan="1" 
class="confluenceTd">6-8</td><td colspan="1" rowspan="1" 
class="confluenceTd">6-8</td><td colspan="1" rowspan="1" class
 ="confluenceTd">6-8</td><td colspan="1" rowspan="1" 
class="confluenceTd">6-7</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Glassfish</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.1</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Apache TomEE</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#1
 60;</td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td 
colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" 
rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">JBoss EAP</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">4.2.3</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" ro
 wspan="1" class="confluenceTd">4+</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Wildfly/JBoss AS</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Heroku</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" cla
 ss="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Google App Engine</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">+</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#16
 0;</td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td 
colspan="1" rowspan="1" class="confluenceTd">&#160;</td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd">Amazon AWS</td><td colspan="1" 
rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr></tbody></table></div><h2 
id="SupportedEnvironmentsandVersions-Libraries">Libraries</h2><p>These are the 
library versions known to work (and, in some cases, bundled with Tapestry). 
Unless othe
 rwise noted, adjacent versions will often work fine as well.</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh">Tapestry Version &#8594;</th><th colspan="1" 
rowspan="1" class="confluenceTh">5.5</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.4.1</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.4</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3.8</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3.7</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3.3-5.3.6</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3.2</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3 - 5.3.1</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.2.1</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.2</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.1</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0.16</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0.10</th><th colspan="1" 
 rowspan="1" class="confluenceTh">5.0.8</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0</th><th colspan="1" rowspan="1" 
class="confluenceTh">4.1</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Hibernate</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">?-4.3.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.5.4-3.6.0</td><td colspan="1" rowspan="1" 
class="confluenceTd">-3.6.0</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.3.0+</td><td colspan="1" rowspan="1" class="conflue
 nceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">JPA</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="
 1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Spring</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.1.0</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" class="conflue
 nceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">jQuery.js</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.12.1</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td col
 span="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" 
rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Prototype.js</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.7.1</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.7</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.7</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.7</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.7</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.6.1</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.6.1</td><td colspan="1" rowspan="1" class="confluenc
 eTd">1.6.0.3</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.6.0.3</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.6.0.2</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Bootstrap CSS</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.3.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.0.2</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspa
 n="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Moment.js</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.12.0</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" class="
 confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Less4J</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.2.1-1.9</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td>
 <td colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" 
rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Underscore.js</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.3.3</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.17</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.17</td><td colspan="1" rowspan="1
 " class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr></tbody></table></div></div>
+                <div id="ConfluenceContent"><p>Tapestry is compatible with a 
pretty wide range of app servers, Java versions, and open source libraries. Not 
all combinations are known to work, however.</p><p>Note: blanks in the support 
matrix tables below do NOT indicate incompatibility. They are just 
documentation gaps.</p><p>If you know of any other known compatibilities or 
incompatibilities, please add a comment at the bottom of this page, or on 
the&#160;<a  href="supported-environments-and-versions.html">Tapestry Users 
mailing list</a> mailing list.</p><h2 
id="SupportedEnvironmentsandVersions-Java&amp;ServletAPIVersions">Java &amp; 
Servlet API Versions</h2><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh">Tapestry Version &#8594;</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.5</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.4</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3.8</th><th colspan
 ="1" rowspan="1" class="confluenceTh">5.3.0 - 5.3.7</th><th colspan="1" 
rowspan="1" class="confluenceTh">5.2</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.1</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0.10</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0.8</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0</th><th colspan="1" rowspan="1" 
class="confluenceTh">4.1</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Java JRE</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.8+</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.7, 1.8</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.6 - 1.8<sup>1</sup></td><td colspan="1" rowspan="1" 
class="confluenceTd">1.6, 1.7</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.5, 1.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.5, 1.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.5, 1.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.5, 1.6</td><td colspan="1" ro
 wspan="1" class="confluenceTd">1.5, 1.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.4-1.6</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Servlet API</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.0+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.5+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.5+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.5+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.4+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.4+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.4+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.4+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.4+</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.2-2.3</td></tr></tbody></table></div><p><sup>1</sup> For 
using Tapestry 5.3.8 with Java 1.8 see <a  
href="supported-environments-and-versions.html">Supported Environments and 
Versions</a></p><p><sup>2</sup> Servlet API 2.5 requires JDK 1.5+</p><
 h2 id="SupportedEnvironmentsandVersions-AppServers">App Servers</h2><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh">Tapestry Version &#8594;</th><th colspan="1" 
rowspan="1" class="confluenceTh">5.5</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.4</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3.8</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3.0 - 5.3.7</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.2</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.1</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0.10</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0.8</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0</th><th colspan="1" rowspan="1" 
class="confluenceTh">4.1</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Apache Tomcat</td><td colspan="1" rowspan="1" 
class="confluenceTd">6+</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td co
 lspan="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" 
rowspan="1" class="confluenceTd">6+</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Jetty</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;9</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;7-9</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;6-9</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;6-8</td><td colspan="1" rowspan="1" 
class="confluenceTd">6-8</td><td colspan="1" rowspan="1" 
class="confluenceTd">6-8</td><td colspan="1" rowspan="1" 
class="confluenceTd">6-8</td><td colspan="1" rowspan="1" class="con
 fluenceTd">6-8</td><td colspan="1" rowspan="1" 
class="confluenceTd">6-8</td><td colspan="1" rowspan="1" 
class="confluenceTd">6-7</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Glassfish</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.1</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Apache TomEE</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td>
 <td colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" 
rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">JBoss EAP</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">4.2.3</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1
 " class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">4+</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Wildfly/JBoss AS</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Heroku</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" class="conf
 luenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Google App Engine</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">+</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><
 td colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" 
rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Amazon AWS</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr></tbody></table></div><h2 
id="SupportedEnvironmentsandVersions-Libraries">Libraries</h2><p>These are the 
library versions known to work (and
 , in some cases, bundled with Tapestry). Unless otherwise noted, adjacent 
versions will often work fine as well.</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh">Tapestry Version &#8594;</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.5</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.4.1</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.4</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3.8</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3.7</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3.3-5.3.6</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3.2</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.3 - 5.3.1</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.2.1</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.2</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.1</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0.16</th><th colspan="1" rowspan=
 "1" class="confluenceTh">5.0.10</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0.8</th><th colspan="1" rowspan="1" 
class="confluenceTh">5.0</th><th colspan="1" rowspan="1" 
class="confluenceTh">4.1</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Hibernate</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">?-4.3.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.5.4-3.6.0</td><td colspan="1" rowspan="1" 
class="confluenceTd">-3.6.0</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">3
 .3.0+</td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td 
colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" 
rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">JPA</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowsp
 an="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Spring</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.1.0</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&
 #160;</td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td 
colspan="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" 
rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">jQuery.js</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.12.1</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1"
  rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Prototype.js</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.7.1</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.7</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.7</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.7</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.7</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.6.1</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.
 6.1</td><td colspan="1" rowspan="1" class="confluenceTd">1.6.0.3</td><td 
colspan="1" rowspan="1" class="confluenceTd">1.6.0.3</td><td colspan="1" 
rowspan="1" class="confluenceTd">1.6.0.2</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Bootstrap CSS</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.3.6</td><td colspan="1" rowspan="1" 
class="confluenceTd">3.0.2</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" ro
 wspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Moment.js</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">2.12.0</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" class="confluen
 ceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Less4J</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.2.1-1.9</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td cols
 pan="1" rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" 
rowspan="1" class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd">Underscore.js</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.3.3</td><td colspan="1" rowspan="1" 
class="confluenceTd">1.17</td><td colspan="1" rowspan="1" clas
 s="confluenceTd">1.17</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td><td colspan="1" rowspan="1" 
class="confluenceTd">&#160;</td></tr></tbody></table></div></div>
       </div>
 
       <div class="clearer"></div>

Modified: websites/production/tapestry/content/tapestry-tutorial.html
==============================================================================
--- websites/production/tapestry/content/tapestry-tutorial.html (original)
+++ websites/production/tapestry/content/tapestry-tutorial.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">Tapestry Tutorial</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">Tapestry Tutorial</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 
@@ -54,37 +67,67 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><div class="aui-label" 
style="float:right" title="Related Articles"><h3>Related Articles</h3><ul 
class="content-by-label"><li> 
-  <div> 
-   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
-  </div> 
-  <div class="details"> 
-   <a  href="tapestry-for-jsf-users.html">Tapestry for JSF Users</a> 
-  </div> </li><li> 
-  <div> 
-   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
-  </div> 
-  <div class="details"> 
-   <a  href="tapestry-tutorial.html">Tapestry Tutorial</a> 
-  </div> </li><li> 
-  <div> 
-   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
-  </div> 
-  <div class="details"> 
-   <a  href="principles.html">Principles</a> 
-  </div> </li><li> 
-  <div> 
-   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
-  </div> 
-  <div class="details"> 
-   <a  href="getting-started.html">Getting Started</a> 
-  </div> </li><li> 
-  <div> 
-   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
-  </div> 
-  <div class="details"> 
-   <a  href="introduction.html">Introduction</a> 
-  </div> </li></ul></div><h1 id="TapestryTutorial-TableofContents">Table of 
Contents</h1><p></p><ul class="childpages-macro"><li><a  
href="dependencies-tools-and-plugins.html">Dependencies, Tools and 
Plugins</a></li><li><a  href="creating-the-skeleton-application.html">Creating 
The Skeleton Application</a></li><li><a  
href="exploring-the-project.html">Exploring the Project</a></li><li><a  
href="implementing-the-hi-lo-guessing-game.html">Implementing the Hi-Lo 
Guessing Game</a></li><li><a  
href="using-beaneditform-to-create-user-forms.html">Using BeanEditForm To 
Create User Forms</a></li><li><a  
href="using-tapestry-with-hibernate.html">Using Tapestry With 
Hibernate</a></li></ul><h1 
id="TapestryTutorial-Introduction">Introduction</h1><p>Welcome to 
Tapestry!</p><p>This is a tutorial for people who will be creating Tapestry web 
applications. It doesn't matter whether you have experience with earlier 
versions of Tapestry or other web frameworks. In fact, in some ways, the less 
you know 
 about web development in general, the better off you may be ... that much less 
to unlearn!</p><p>You do need to have a reasonable understanding of HTML, a 
smattering of XML, and a good understanding of basic Java language features, 
including Annotations.</p><h1 
id="TapestryTutorial-TheChallengesofWebApplicationDevelopment">The Challenges 
of Web Application Development</h1><p>If you're used to developing web 
applications using servlets and JSPs, or with Struts, you are simply used to a 
lot of pain. So much pain, you may not even understand the dire situation you 
are in! These are environments with no safety net; Struts and the Servlet API 
have no idea how your application is structured, or how the different pieces 
fit together. Any URL can be an action and any action can forward to any view 
(usually a JSP) to provide an HTML response to the web browser. The pain is the 
unending series of small, yet important, decisions you have to make as a 
developer (and communicate to the rest of y
 our team). What are the naming conventions for actions, for pages, for 
attributes stored in the HttpSession or HttpServletRequest? Where do 
cross-cutting concerns such as database transactions, caching and security get 
implemented (and do you have to cut-and-paste Java or XML to make it work?) How 
are your packages organized ... where to the user interface classes go, and 
where do the data and entity objects go? How do you share code from one part of 
your application to another?</p><p>On top of all that, the traditional 
approaches thrust something most unwanted in your face: <em>multi-threaded 
coding</em>. Remember back to Object Oriented Programming 101 where an object 
was defined as a bundle of data and operations on that data? You have to 
unlearn that lesson as soon as you build a traditional web application, because 
web applications are multi-threaded. An application server could be handling 
dozens or hundreds of requests from individual users, each in their own thread, 
and each
  sharing the exact same objects. Suddenly, you can't store data inside an 
object (a servlet or a Struts Action) because whatever data you store for one 
user will be instantly overwritten by some other user.</p><p>Worse, your 
objects each have only one operation: <code>doGet()</code> or 
<code>doPost()</code>.</p><p>Meanwhile, most of your day-to-day work involves 
deciding how to package up some data already inside a particular Java object 
and squeeze that data into a URL's query parameters, so that you can write more 
code to convert it back if the user clicks that particular link. And don't 
forget editing a bunch of XML files to keep the servlet container, or the 
Struts framework, aware of these decisions.</p><p>Just for laughs, remember 
that you have to rebuild, redeploy and restart your application after virtually 
any change. Is any of this familiar? Then perhaps you'd appreciate something a 
little <em>less</em> familiar: Tapestry.</p><h1 
id="TapestryTutorial-TheTapestryWay">The Ta
 pestry Way</h1><p>Tapestry uses a very different model: a structured, 
organized world of pages, and components within pages. Everything has a very 
specific name (that you provide). Once you know the name of a page, you know 
the location of the Java class for that page, the location of the template for 
that page, and the total structure of the page. Tapestry knows all this as 
well, and can make things <strong>just work</strong>.</p><p>As we'll see in the 
following pages, Tapestry lets you code in terms of your objects. You'll barely 
see any Tapestry classes, outside of a few Java annotations. If you have 
information to store, store it as fields of your classes, not inside the 
HttpServletRequest or HttpSession. If you need some code to execute, it's just 
a simple annotation or method naming convention to get Tapestry to invoke that 
method, at the right time, with the right data. The methods don't even have to 
be public!</p><p>Tapestry also shields you from most of the multi-threaded a
 spects of web application development. Tapestry manages the life cycle of your 
page and components objects, and the fields of the pages and components, in a 
thread-safe way. Your page and component classes always look like simple, 
standard <a  class="external-link" 
href="http://en.wikipedia.org/wiki/Plain_Old_Java_Object"; 
rel="nofollow">POJOs</a>.</p><p>Tapestry began in January 2000, and it now 
reflects over fifteen years of experience of the entire Tapestry community. 
Tapestry brings to the table all that experience about the best ways to build 
scalable, maintainable, robust, internationalized, and Ajax-enabled 
applications. Tapestry 5 represents a completely new code base (compared to 
Tapestry 4) designed to simplify the Tapestry coding model while at the same 
time extending the power of Tapestry and improving performance.</p><h1 
id="TapestryTutorial-GettingtheTutorialSource">Getting the Tutorial 
Source</h1><p>Although you won't need it, the source code for this tutorial is 
avail
 able on <a  class="external-link" 
href="https://github.com/hlship/tapestry5-tutorial"; 
rel="nofollow">GitHub</a>.</p><h1 id="TapestryTutorial-TimetoBegin">Time to 
Begin</h1><p>Okay, enough background. Now let's get started on the tutorial: <a 
 href="dependencies-tools-and-plugins.html">Dependencies, Tools and 
Plugins</a></p><p>&#160;</p></div>
+                <div id="ConfluenceContent"><div class="aui-label" 
style="float:right" title="Related Articles">
+
+
+
+
+
+
+
+
+<h3>Related Articles</h3>
+
+<ul class="content-by-label"><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a  href="tapestry-for-jsf-users.html">Tapestry for 
JSF Users</a>
+                
+                        
+                    </div>
+    </li><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a  href="tapestry-tutorial.html">Tapestry Tutorial</a>
+                
+                        
+                    </div>
+    </li><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a  href="principles.html">Principles</a>
+                
+                        
+                    </div>
+    </li><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a  href="getting-started.html">Getting Started</a>
+                
+                        
+                    </div>
+    </li><li>
+        <div>
+                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
+
+        <div class="details">
+                        <a  href="introduction.html">Introduction</a>
+                
+                        
+                    </div>
+    </li></ul>
+</div>
+
+
+<h1 id="TapestryTutorial-TableofContents">Table of Contents</h1><p></p><ul 
class="childpages-macro"><li><a  
href="dependencies-tools-and-plugins.html">Dependencies, Tools and 
Plugins</a></li><li><a  href="creating-the-skeleton-application.html">Creating 
The Skeleton Application</a></li><li><a  
href="exploring-the-project.html">Exploring the Project</a></li><li><a  
href="implementing-the-hi-lo-guessing-game.html">Implementing the Hi-Lo 
Guessing Game</a></li><li><a  
href="using-beaneditform-to-create-user-forms.html">Using BeanEditForm To 
Create User Forms</a></li><li><a  
href="using-tapestry-with-hibernate.html">Using Tapestry With 
Hibernate</a></li></ul><h1 
id="TapestryTutorial-Introduction">Introduction</h1><p>Welcome to 
Tapestry!</p><p>This is a tutorial for people who will be creating Tapestry web 
applications. It doesn't matter whether you have experience with earlier 
versions of Tapestry or other web frameworks. In fact, in some ways, the less 
you know about web development in 
 general, the better off you may be ... that much less to unlearn!</p><p>You do 
need to have a reasonable understanding of HTML, a smattering of XML, and a 
good understanding of basic Java language features, including 
Annotations.</p><h1 
id="TapestryTutorial-TheChallengesofWebApplicationDevelopment">The Challenges 
of Web Application Development</h1><p>If you're used to developing web 
applications using servlets and JSPs, or with Struts, you are simply used to a 
lot of pain. So much pain, you may not even understand the dire situation you 
are in! These are environments with no safety net; Struts and the Servlet API 
have no idea how your application is structured, or how the different pieces 
fit together. Any URL can be an action and any action can forward to any view 
(usually a JSP) to provide an HTML response to the web browser. The pain is the 
unending series of small, yet important, decisions you have to make as a 
developer (and communicate to the rest of your team). What are the n
 aming conventions for actions, for pages, for attributes stored in the 
HttpSession or HttpServletRequest? Where do cross-cutting concerns such as 
database transactions, caching and security get implemented (and do you have to 
cut-and-paste Java or XML to make it work?) How are your packages organized ... 
where to the user interface classes go, and where do the data and entity 
objects go? How do you share code from one part of your application to 
another?</p><p>On top of all that, the traditional approaches thrust something 
most unwanted in your face: <em>multi-threaded coding</em>. Remember back to 
Object Oriented Programming 101 where an object was defined as a bundle of data 
and operations on that data? You have to unlearn that lesson as soon as you 
build a traditional web application, because web applications are 
multi-threaded. An application server could be handling dozens or hundreds of 
requests from individual users, each in their own thread, and each sharing the 
exact same o
 bjects. Suddenly, you can't store data inside an object (a servlet or a Struts 
Action) because whatever data you store for one user will be instantly 
overwritten by some other user.</p><p>Worse, your objects each have only one 
operation: <code>doGet()</code> or <code>doPost()</code>.</p><p>Meanwhile, most 
of your day-to-day work involves deciding how to package up some data already 
inside a particular Java object and squeeze that data into a URL's query 
parameters, so that you can write more code to convert it back if the user 
clicks that particular link. And don't forget editing a bunch of XML files to 
keep the servlet container, or the Struts framework, aware of these 
decisions.</p><p>Just for laughs, remember that you have to rebuild, redeploy 
and restart your application after virtually any change. Is any of this 
familiar? Then perhaps you'd appreciate something a little <em>less</em> 
familiar: Tapestry.</p><h1 id="TapestryTutorial-TheTapestryWay">The Tapestry 
Way</h1><p>Tapestr
 y uses a very different model: a structured, organized world of pages, and 
components within pages. Everything has a very specific name (that you 
provide). Once you know the name of a page, you know the location of the Java 
class for that page, the location of the template for that page, and the total 
structure of the page. Tapestry knows all this as well, and can make things 
<strong>just work</strong>.</p><p>As we'll see in the following pages, Tapestry 
lets you code in terms of your objects. You'll barely see any Tapestry classes, 
outside of a few Java annotations. If you have information to store, store it 
as fields of your classes, not inside the HttpServletRequest or HttpSession. If 
you need some code to execute, it's just a simple annotation or method naming 
convention to get Tapestry to invoke that method, at the right time, with the 
right data. The methods don't even have to be public!</p><p>Tapestry also 
shields you from most of the multi-threaded aspects of web application
  development. Tapestry manages the life cycle of your page and components 
objects, and the fields of the pages and components, in a thread-safe way. Your 
page and component classes always look like simple, standard <a  
class="external-link" href="http://en.wikipedia.org/wiki/Plain_Old_Java_Object"; 
rel="nofollow">POJOs</a>.</p><p>Tapestry began in January 2000, and it now 
reflects over fifteen years of experience of the entire Tapestry community. 
Tapestry brings to the table all that experience about the best ways to build 
scalable, maintainable, robust, internationalized, and Ajax-enabled 
applications. Tapestry 5 represents a completely new code base (compared to 
Tapestry 4) designed to simplify the Tapestry coding model while at the same 
time extending the power of Tapestry and improving performance.</p><h1 
id="TapestryTutorial-GettingtheTutorialSource">Getting the Tutorial 
Source</h1><p>Although you won't need it, the source code for this tutorial is 
available on <a  class="extern
 al-link" href="https://github.com/hlship/tapestry5-tutorial"; 
rel="nofollow">GitHub</a>.</p><h1 id="TapestryTutorial-TimetoBegin">Time to 
Begin</h1><p>Okay, enough background. Now let's get started on the tutorial: <a 
 href="tapestry-tutorial.html">Tapestry Tutorial</a></p><p>&#160;</p></div>
       </div>
 
       <div class="clearer"></div>

Modified: websites/production/tapestry/content/user-guide.html
==============================================================================
--- websites/production/tapestry/content/user-guide.html (original)
+++ websites/production/tapestry/content/user-guide.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">User Guide</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">User Guide</h1></div>
+
+</div>
       <div class="clearer"></div>
       </div>
 
@@ -54,7 +67,7 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p>This <strong>User 
Guide</strong> serves as the encyclopedia for Tapestry concepts, capabilities 
and practices.</p><div class="sectionColumnWrapper"><div 
class="sectionMacro"><div class="sectionMacroRow"><div class="columnMacro" 
style="width:30%;min-width:30%;max-width:30%;"><h2 
id="UserGuide-TapestryBasics">Tapestry Basics</h2><p>Going beyond <a  
href="getting-started.html">Getting Started</a> and the <a  
href="tapestry-tutorial.html">Tutorial</a>, these topics will dive into basic 
Tapestry capabilities that you'll want to understand first.</p><ul><li><a  
href="supported-environments-and-versions.html">Supported Environments and 
Versions</a></li><li><a  href="project-layout.html">Project 
Layout</a></li><li><a  href="configuration.html">Configuration</a></li><li><a  
href="class-reloading.html">Class Reloading</a></li><li><a  
href="component-reference.html">Component Reference</a></li><li><a  
href="annotations.html">Annotations</a></li><l
 i><a  href="runtime-exceptions.html">Runtime Exceptions</a></li></ul><h3 
id="UserGuide-PagesandComponents">Pages and Components</h3><ul><li><a  
href="component-classes.html">Component Classes</a></li><li><a  
href="component-templates.html">Component Templates</a></li><li><a  
href="property-expressions.html">Property Expressions</a></li><li><a  
href="component-parameters.html">Component Parameters</a></li><li><a  
href="parameter-type-coercion.html">Parameter Type Coercion</a></li><li><a  
href="layout-component.html">Layout Component</a></li><li><a  
href="component-mixins.html">Component Mixins</a></li><li><a  
href="page-navigation.html">Page Navigation</a></li><li><a  
href="localization.html">Localization</a></li></ul><h3 
id="UserGuide-Request/ResponseProcessing">Request/Response 
Processing</h3><ul><li><a  href="page-life-cycle.html">Page Life 
Cycle</a></li><li><a  href="request-processing.html">Request 
Processing</a></li><li><a  href="component-rendering.html">Component 
Rendering</a
 ></li><li><a  href="component-events.html">Component Events</a></li><li><a  
 >href="url-rewriting.html">URL Rewriting</a></li><li><a  
 >href="dom.html">Document Object Model</a> (DOM)</li><li><a  
 >href="response-compression.html">Response Compression</a></li><li><a  
 >href="https.html">Securing your application with HTTPS</a></li><li><a  
 >href="content-type-and-markup.html">Content Type and Markup</a></li></ul><h3 
 >id="UserGuide-Datapersistence">Data persistence</h3><ul><li><a  
 >href="persistent-page-data.html">Persistent Page Data</a></li><li><a  
 >href="session-storage.html">Session Storage</a></li></ul><h3 
 >id="UserGuide-Interactingwithcomponents">Interacting with 
 >components</h3><ul><li><a  href="injection.html">Injection</a></li><li><a  
 >href="environmental-services.html">Environmental Services</a></li></ul><h3 
 >id="UserGuide-JavaScript,AJAX,CSS&amp;BinaryData">JavaScript, AJAX, CSS &amp; 
 >Binary Data</h3><ul><li><span style="font-size: 14.0px;line-height: 
 >1.4285715;"><a  href="client-side-java
 script.html">Client-Side JavaScript</a></span></li><li><span style="font-size: 
14.0px;line-height: 1.4285715;"><a  href="javascript-modules.html">JavaScript 
Modules</a></span></li><li><span style="font-size: 14.0px;line-height: 
1.4285715;"><a  href="coffeescript.html">CoffeeScript</a></span></li><li><a  
href="ajax-and-zones.html">Ajax and Zones</a></li><li><a  
href="css.html">Cascading Style Sheets</a> (CSS)</li><li><a  
href="assets.html">Assets</a></li><li><a  href="legacy-javascript.html">Legacy 
JavaScript</a> (prior to Tapestry 5.4)</li></ul><h3 
id="UserGuide-Workingwithforms">Working with forms</h3><ul><li><a  
href="forms-and-validation.html">Forms and Validation</a></li><li><a  
href="beaneditform-guide.html">BeanEditForm Guide</a></li><li><a  
href="uploading-files.html">Uploading files</a></li></ul><h3 
id="UserGuide-Debugging,Testing&amp;Tooling">Debugging, Testing &amp; 
Tooling</h3><ul><li><a  href="logging.html">Logging &amp; 
Debugging</a></li><li><a  href="unit-testing-pages
 -or-components.html">Unit testing pages or components</a></li><li><a  
href="integration-testing.html">Integration testing with 
Selenium</a></li><li><a  href="development-dashboard.html">Development 
Dashboard</a></li></ul></div><div class="columnMacro" 
style="width:30%;min-width:30%;max-width:30%;"><h2 
id="UserGuide-TapestryIOC">Tapestry IOC</h2><p>As with Tapestry 5 in general, 
the goal of Tapestry Inversion of Control (IoC) is greater simplicity and 
power--without XML. You'll want to explore Tapestry IoC to make full use of the 
extensibility of the framework.</p><h3 
id="UserGuide-Architecture">Architecture</h3><ul><li><a  
href="ioc.html">Introduction</a></li><li><a  
href="tapestry-ioc-overview.html">Overview</a></li><li><a  
href="tapestry-ioc-modules.html">Modules</a></li></ul><h3 
id="UserGuide-Features">Features</h3><ul><li><a  
href="defining-tapestry-ioc-services.html">Services</a></li><li><a  
href="service-advisors.html">Advisors</a></li><li><a  
href="tapestry-ioc-decorators.htm
 l">Decorators</a></li><li><a  href="operation-tracker.html">Operation 
Tracker</a></li></ul><h3 
id="UserGuide-Configuration">Configuration</h3><ul><li><a  
href="tapestry-ioc-configuration.html">Configuration</a></li><li><a  
href="case-insensitivity.html">Case Insensitivity</a></li><li><a  
href="autoloading-modules.html">Module Autoloading</a></li><li><a  
href="service-implementation-reloading.html">Service Implementation 
Reloading</a></li><li><a  href="ordering-by-constraints.html">Ordering by 
Constraints</a></li><li><a  href="symbols.html">Symbols</a></li></ul><h3 
id="UserGuide-ServiceBuilders">Service Builders</h3><p>Tapestry provides a set 
of ready-to-use service builders for common design patterns:</p><ul><li><a  
href="chainbuilder-service.html">Chain of Command</a> (the ChainBuilder 
service)</li><li><a  href="pipelinebuilder-service.html">Pipeline</a> (the 
PipelineBuilder service)</li><li><a  href="shadowbuilder-service.html">Shadow 
Properties</a> (the PropertyShadowBuilder serv
 ice)</li><li><a  href="strategybuilder-service.html">Strategy</a> (the 
StrategyBuilder service)</li></ul><h3 id="UserGuide-Usage">Usage</h3><ul><li><a 
 href="injection-in-detail.html">Injection in detail</a></li><li><a  
href="object-providers.html">Object providers</a></li><li><a  
href="service-serialization.html">Service Serialization</a></li></ul><h3 
id="UserGuide-Built-inservices">Built-in services</h3><ul><li><a  
href="type-coercion.html">Type Coercer</a></li></ul><h3 
id="UserGuide-Registrystartup&amp;shutdown">Registry startup &amp; 
shutdown</h3><ul><li><a  href="starting-the-ioc-registry.html">Starting and 
stopping the registry</a></li><li><a  href="registry-startup.html">Listening 
for registry startup</a></li></ul><h3 
id="UserGuide-Tooling">Tooling</h3><ul><li><a  
href="parallel-execution.html">Parallel Execution</a></li><li><a  
href="logging-in-tapestry.html">Logging</a></li></ul></div><div 
class="columnMacro" style="width:30%;min-width:30%;max-width:30%;"><h2 
id="UserGuide-
 Built-inmodules">Built-in modules</h2>Tapestry comes with a collection of 
add-on modules to let you extend the framework beyond its core.
+                <div id="ConfluenceContent"><p>This <strong>User 
Guide</strong> serves as the encyclopedia for Tapestry concepts, capabilities 
and practices.</p><div class="sectionColumnWrapper"><div 
class="sectionMacro"><div class="sectionMacroRow"><div class="columnMacro" 
style="width:30%;min-width:30%;max-width:30%;"><h2 
id="UserGuide-TapestryCore">Tapestry Core</h2><p>Going beyond&#160;<a  
href="getting-started.html">Getting Started</a> and the <a  
href="user-guide.html">Tutorial</a>, these topics dive deep into the core 
Tapestry capabilities.</p><ul><li><span class="confluence-link"><a  
href="supported-environments-and-versions.html">Supported Environments and 
Versions</a></span></li><li><span class="confluence-link"><a  
href="project-layout.html">Project Layout</a></span></li><li><a  
href="configuration.html">Configuration</a></li><li class="confluence-link"><a  
href="class-reloading.html">Class Reloading</a></li><li 
class="confluence-link"><a  href="component-reference.html">
 Component Reference</a></li><li class="confluence-link"><a  
href="annotations.html">Annotations</a></li></ul><h3 
id="UserGuide-PagesandComponents">Pages and Components</h3><ul><li><a  
href="component-classes.html">Component Classes</a></li><li><a  
href="component-templates.html">Component Templates</a></li><li><a  
href="property-expressions.html">Property Expressions</a></li><li><a  
href="component-parameters.html">Component Parameters</a></li><li><a  
href="parameter-type-coercion.html">Parameter Type Coercion</a></li><li><a  
href="layout-component.html">Layout Component</a></li><li><a  
href="component-mixins.html">Component Mixins</a></li><li><a  
href="page-navigation.html">Page Navigation</a></li><li><a  
href="localization.html">Localization</a></li></ul><h3 
id="UserGuide-Request/ResponseProcessing">Request/Response 
Processing</h3><ul><li><a  href="page-life-cycle.html">Page Life 
Cycle</a></li><li><a  href="request-processing.html">Request 
Processing</a></li><li><a  href="componen
 t-rendering.html">Component Rendering</a></li><li><a  
href="url-rewriting.html">URL Rewriting</a></li><li><a  
href="dom.html">Document Object Model</a> (DOM)</li><li><a  
href="response-compression.html">Response Compression</a></li><li><a  
href="https.html">Securing your application with HTTPS</a></li><li><a  
href="content-type-and-markup.html">Content Type and Markup</a></li></ul><h3 
id="UserGuide-Datapersistence">Data persistence</h3><ul><li><a  
href="persistent-page-data.html">Persistent Page Data</a></li><li><a  
href="session-storage.html">Session Storage</a></li></ul><h3 
class="confluence-link" id="UserGuide-Interactingwithcomponents">Interacting 
with components</h3><ul><li><a  href="injection.html">Injection</a></li><li><a  
href="environmental-services.html">Environmental Services</a></li></ul><h3 
id="UserGuide-JavaScript,AJAX,CSS&amp;BinaryData">JavaScript, AJAX, CSS &amp; 
Binary Data</h3><ul><li><span><a  
href="client-side-javascript.html">Client-Side JavaScript</a></span></
 li><li><span><a  href="javascript-modules.html">JavaScript 
Modules</a></span></li><li><span><a  
href="coffeescript.html">CoffeeScript</a></span></li><li><span><a  
href="ajax-and-zones.html">Ajax and Zones</a></span></li><li><a  
href="css.html">Cascading Style Sheets</a> (CSS)</li><li><a  
href="assets.html">Assets</a></li><li><a  href="legacy-javascript.html">Legacy 
JavaScript</a> (prior to Tapestry 5.4)</li></ul><h3 
id="UserGuide-Workingwithforms">Working with forms</h3><ul><li><a  
href="logging.html">Logging &amp; Debugging</a></li><li><a  
href="user-guide.html">User Guide</a></li><li><a  
href="user-guide.html">Uploading files</a></li></ul><h3 
id="UserGuide-Debugging,Testing&amp;Tooling">Debugging, Testing &amp; 
Tooling</h3><ul><li><a  href="user-guide.html">Logging &amp; 
Debugging</a></li><li><a  href="unit-testing-pages-or-components.html">Unit 
testing pages or components</a></li><li><a  
href="integration-testing.html">Integration testing with 
Selenium</a></li><li><a  href="devel
 opment-dashboard.html">Development Dashboard</a></li></ul></div><div 
class="columnMacro" style="width:30%;min-width:30%;max-width:30%;"><h2 
id="UserGuide-TapestryIOC">Tapestry IOC</h2><p>As with Tapestry 5 in general, 
the goal of Tapestry Inversion of Control (IoC) is greater simplicity and 
power--without XML. You'll want to explore Tapestry IoC to make full use of the 
extensibility of the framework.</p><h3 
id="UserGuide-Architecture">Architecture</h3><ul><li><a  
href="ioc.html">Introduction</a></li><li><a  
href="tapestry-ioc-overview.html">Overview</a></li><li><a  
href="tapestry-ioc-modules.html">Modules</a></li></ul><h3 
id="UserGuide-Features">Features</h3><ul><li><a  
href="defining-tapestry-ioc-services.html">Services</a></li><li><a  
href="service-advisors.html">Service Advisors &amp; Advice</a></li><li><a  
href="tapestry-ioc-decorators.html">Service Decorators &amp; 
Decoration</a></li><li><a  href="operation-tracker.html">Operation 
Tracker</a></li></ul><h3 id="UserGuide-Configur
 ation">Configuration</h3><ul><li><a  
href="tapestry-ioc-configuration.html">Configuration</a></li><li><a  
href="case-insensitivity.html">Case Insensitivity</a></li><li><a  
href="autoloading-modules.html">Module Autoloading</a></li><li><a  
href="service-implementation-reloading.html">Service Implementation 
Reloading</a></li><li><a  href="ordering-by-constraints.html">Ordering by 
Constraints</a></li><li><a  href="symbols.html">Symbols</a></li></ul><h3 
id="UserGuide-ServiceBuilders">Service Builders</h3><p>Tapestry provides a set 
of ready-to-use service builders for common design patterns:</p><ul><li><a  
href="chainbuilder-service.html">Chain of Command</a> (the ChainBuilder 
service)</li><li><a  href="pipelinebuilder-service.html">Pipeline</a> (the 
PipelineBuilder service)</li><li><a  href="shadowbuilder-service.html">Shadow 
Properties</a> (the PropertyShadowBuilder service)</li><li><a  
href="strategybuilder-service.html">Strategy</a> (the StrategyBuilder 
service)</li></ul><h3 id="User
 Guide-Usage">Usage</h3><ul><li><a  href="injection-in-detail.html">Injection 
in detail</a></li><li><a  href="object-providers.html">Object 
Providers</a></li><li><a  href="service-serialization.html">Service 
Serialization</a></li></ul><h3 id="UserGuide-Built-inservices">Built-in 
services</h3><ul><li><a  href="type-coercion.html">Type 
Coercer</a></li></ul><h3 id="UserGuide-Registrystartup&amp;shutdown">Registry 
startup &amp; shutdown</h3><ul><li><a  
href="starting-the-ioc-registry.html">Starting and stopping the 
registry</a></li><li><a  href="registry-startup.html">Listening for registry 
startup</a></li></ul><h3 id="UserGuide-Tooling">Tooling</h3><ul><li><a  
href="parallel-execution.html">Parallel Execution</a></li><li><a  
href="logging-in-tapestry.html">Logging</a></li></ul></div><div 
class="columnMacro" style="width:30%;min-width:30%;max-width:30%;"><h2 
id="UserGuide-Built-inmodules">Built-in modules</h2>Tapestry comes with a 
collection of add-on modules to let you extend the framew
 ork beyond its core.
 
 <h3 id="UserGuide-HibernateIntegration">Hibernate Integration</h3>
 
@@ -73,7 +86,7 @@
 
 <h3 id="UserGuide-OtherModules">Other Modules</h3>
 
-<ul><li><a  href="bean-validation.html">JSR 303 Bean Validation</a></li><li><a 
 href="functional-flows.html">Functional Flows</a></li><li><a  
href="jmx-module.html">JMX Integration</a></li><li><a  
href="json.html">JSON</a></li><li><a  href="component-report.html">Component 
Report</a></li></ul><p><a  href="modules.html">More Modules</a>...</p><h2 
id="UserGuide-DeprecatedTopics">Deprecated Topics</h2><ul><li><a  
href="aliases.html">Aliases</a> 
(deprecated)</li></ul></div></div></div></div></div>
+<ul><li><a  href="bean-validation.html">JSR 303 Bean Validation</a></li><li><a 
 href="functional-flows.html">Functional Flows</a></li><li><a  
href="jmx-module.html">JMX Integration</a></li><li><a  
href="json.html">JSON</a></li><li><a  href="component-report.html">Component 
Report</a></li></ul><p><a  href="modules.html">More Modules</a>...</p><h2 
id="UserGuide-DeprecatedTopics">Deprecated Topics</h2><ul><li 
class="confluence-link"><a  href="aliases.html">Aliases</a> 
(deprecated)</li></ul></div></div></div></div></div>
       </div>
 
       <div class="clearer"></div>


Reply via email to