You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by bu...@apache.org on 2018/02/19 20:20:17 UTC

svn commit: r1025622 [2/4] - in /websites/production/tapestry/content: ./ cache/

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 Mon Feb 19 20:20:17 2018
@@ -94,7 +94,7 @@
 </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><div class="confluence-information-macro confluence-information-macro-tip"><span class="aui-icon aui-icon-small aui-iconfont-approve confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>The instructions below use Eclipse's New Project wizard to create the project from a Maven archetype. If you'd rather use the <strong>mvn</strong> command line, see the <a  href="getting-started.html">Getting Started</a> instructions, then skip to <a  href="creating-the-skeleton-application.html">Creating The Skeleton Application</a> page.</p></div></div><p>&#160;</p><p>In Eclipse, go to <strong>File &gt; New &gt;</strong> <strong>Project... &gt; Maven &gt; Maven Project</strong></p><p><strong><span class="confluenc
 e-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image" width="613" src="creating-the-skeleton-application.data/select-a-wizard.png"></span><br clear="none"></strong></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 confluence-embedded-manual-size"><img class="confluence-embedded-image" width="900" src="creating-the-skeleton-application.data/add-archetype-catalog.png"></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-i
 nformation-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 confluence-embedded-manual-size"><img class="confluence-embedded-image" width="804" src="creating-the-skeleton-application.data/select-archetype.png"></span></p><p>
 &#160;</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 confluence-embedded-manual-size"><img class="confluence-embedded-image" width="530" 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 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-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image" width="568" 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>
 
 
-<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:</code></p><p><code><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image" width="666" src="creating-the-skeleton-application.data/run-configuration-jre.png"></span><br clear="none"></code></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 confluence-embedded-manual-size"><img class="confluence-embedded-image" width="865" 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><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image" width="785" 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 layo
 ut. (<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.)</span></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>
+<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:</code></p><p><code><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image" width="666" src="creating-the-skeleton-application.data/run-configuration-jre.png"></span><br clear="none"></code></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 confluence-embedded-manual-size"><img class="confluence-embedded-image" width="865" 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><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image" width="785" 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 layo
 ut. (<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.)</span></p><p><span>Next:&#160;<a  href="exploring-the-project.html">Exploring the Project</a></span></p><p><span><br clear="none"></span></p></div>
       </div>
 
       <div class="clearer"></div>

Modified: websites/production/tapestry/content/documentation.html
==============================================================================
--- websites/production/tapestry/content/documentation.html (original)
+++ websites/production/tapestry/content/documentation.html Mon Feb 19 20:20:17 2018
@@ -70,7 +70,7 @@
                 <div id="ConfluenceContent"><div style="float:right;margin-left:1em"><h2 id="Documentation-AllTopics">All Topics</h2><ul class="childpages-macro"><li><a  href="introduction.html">Introduction</a></li><li><a  href="getting-started.html">Getting Started</a></li><li><a  href="principles.html">Principles</a></li><li><a  href="tapestry-tutorial.html">Tapestry Tutorial</a><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></li><li><a  href="us
 er-guide.html">User Guide</a><ul class="childpages-macro"><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="runtime-exceptions.html">Runtime Exceptions</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><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><ul class="c
 hildpages-macro"><li><a  href="built-in-mixins.html">Built-in Mixins</a></li></ul></li><li><a  href="page-navigation.html">Page Navigation</a></li><li><a  href="localization.html">Localization</a></li><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">DOM</a></li><li><a  href="response-compression.html">Response Compression</a></li><li><a  href="security.html">Security</a></li><li><a  href="https.html">HTTPS</a></li><li><a  href="content-type-and-markup.html">Content Type and Markup</a></li><li><a  href="persistent-page-data.html">Persistent Page Data</a></li><li><a  href="session-storage.html">Session Storage</a><ul class="childpages-macro"><li><a  href="clustering-issues.html">Clustering Issues</a></l
 i></ul></li><li><a  href="injection.html">Injection</a></li><li><a  href="environmental-services.html">Environmental Services</a></li><li><a  href="css.html">CSS</a></li><li><a  href="assets.html">Assets</a></li><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><li><a  href="logging.html">Logging</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</a></li><li><a  href="development-dashboard.html">Development Dashboard</a></li><li><a  href="modules.html">Modules</a><ul class="childpages-macro"><li><a  href="built-in-modules.html">Built In Modules</a></li><li><a  href="third-party-modules.html">Third Party Modules</a></li></ul></li><li><a  href="ioc.html">IOC</a><ul class="childpages-macro"><li><a  href="tapestry-ioc-overview.html">T
 apestry IoC Overview</a></li><li><a  href="tapestry-ioc-modules.html">Tapestry IoC Modules</a></li><li><a  href="defining-tapestry-ioc-services.html">Defining Tapestry IOC Services</a></li><li><a  href="service-advisors.html">Service Advisors</a></li><li><a  href="tapestry-ioc-decorators.html">Tapestry IoC Decorators</a></li><li><a  href="tapestry-ioc-configuration.html">Tapestry IoC Configuration</a></li><li><a  href="case-insensitivity.html">Case Insensitivity</a></li><li><a  href="autoloading-modules.html">Autoloading Modules</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><li><a  href="chainbuilder-service.html">ChainBuilder Service</a></li><li><a  href="pipelinebuilder-service.html">PipelineBuilder Service</a></li><li><a  href="shadowbuilder-service.html">ShadowBuilder Service</a></li><li><a  href="strategy
 builder-service.html">StrategyBuilder Service</a></li><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><li><a  href="type-coercion.html">Type Coercion</a></li><li><a  href="starting-the-ioc-registry.html">Starting the IoC Registry</a></li><li><a  href="registry-startup.html">Registry Startup</a></li><li><a  href="parallel-execution.html">Parallel Execution</a></li><li><a  href="logging-in-tapestry.html">Logging in Tapestry</a></li><li><a  href="using-jsr-330-standard-annotations.html">Using JSR 330 standard annotations</a></li><li><a  href="operation-tracker.html">Operation Tracker</a></li></ul></li><li><a  href="hibernate-core.html">Hibernate - Core</a><ul class="childpages-macro"><li><a  href="hibernate-core-conf.html">Hibernate - Core - Conf</a></li><li><a  href="hibernate.html">Hibernate</a></li></ul></li><li><a  href="integrati
 ng-with-spring-framework.html">Integrating with Spring Framework</a></li><li><a  href="bean-validation.html">Bean Validation</a></li><li><a  href="component-report.html">Component Report</a></li><li><a  href="aliases.html">Aliases</a></li><li><a  href="integrating-with-jpa.html">Integrating with JPA</a></li><li><a  href="client-side-javascript.html">Client-Side JavaScript</a><ul class="childpages-macro"><li><a  href="javascript-modules.html">JavaScript Modules</a></li><li><a  href="coffeescript.html">CoffeeScript</a></li><li><a  href="typescript.html">TypeScript</a></li><li><a  href="legacy-javascript.html">Legacy JavaScript</a></li><li><a  href="ajax-and-zones.html">Ajax and Zones</a></li></ul></li></ul></li><li><a  href="cheat-sheets.html">Cheat Sheets</a><ul class="childpages-macro"><li><a  href="application-module-class-cheat-sheet.html">Application Module Class Cheat Sheet</a></li><li><a  href="component-cheat-sheet.html">Component Cheat Sheet</a></li><li><a  href="tapestry-for
 -jsf-users.html">Tapestry for JSF Users</a></li></ul></li><li><a  href="cookbook.html">Cookbook</a><ul class="childpages-macro"><li><a  href="default-parameter.html">Default Parameter</a></li><li><a  href="overriding-exception-reporting.html">Overriding Exception Reporting</a></li><li><a  href="error-page-recipe.html">Error Page Recipe</a></li><li><a  href="supporting-informal-parameters.html">Supporting Informal Parameters</a></li><li><a  href="component-libraries.html">Component Libraries</a></li><li><a  href="switching-cases.html">Switching Cases</a></li><li><a  href="enum-parameter-recipe.html">Enum Parameter Recipe</a></li><li><a  href="extending-the-if-component.html">Extending the If Component</a></li><li><a  href="meta-programming-page-content.html">Meta-Programming Page Content</a></li><li><a  href="using-select-with-a-list.html">Using Select With a List</a></li><li><a  href="ioc-cookbook.html">IoC cookbook</a><ul class="childpages-macro"><li><a  href="ioc-cookbook-basic-se
 rvices-and-injection.html">IoC Cookbook - Basic Services and Injection</a></li><li><a  href="ioc-cookbook-overriding-ioc-services.html">IoC Cookbook - Overriding IoC Services</a></li><li><a  href="ioc-cookbook-patterns.html">IoC Cookbook - Patterns</a></li><li><a  href="ioc-cookbook-service-configurations.html">IoC cookbook - Service Configurations</a></li></ul></li><li><a  href="performance-and-clustering.html">Performance and Clustering</a></li><li><a  href="google-app-engine.html">Google App Engine</a></li></ul></li><li><a  href="frequently-asked-questions.html">Frequently Asked Questions</a><ul class="childpages-macro"><li><a  href="general-questions.html">General Questions</a></li><li><a  href="templating-and-markup-faq.html">Templating and Markup FAQ</a></li><li><a  href="page-and-component-classes-faq.html">Page And Component Classes FAQ</a></li><li><a  href="forms-and-form-components-faq.html">Forms and Form Components FAQ</a></li><li><a  href="beaneditform-faq.html">BeanEdi
 tForm FAQ</a></li><li><a  href="link-components-faq.html">Link Components FAQ</a></li><li><a  href="component-events-faq.html">Component Events FAQ</a></li><li><a  href="javascript-faq.html">JavaScript FAQ</a></li><li><a  href="ajax-components-faq.html">Ajax Components FAQ</a></li><li><a  href="injection-faq.html">Injection FAQ</a></li><li><a  href="tapestry-inversion-of-control-faq.html">Tapestry Inversion of Control FAQ</a></li><li><a  href="security-faq.html">Security FAQ</a></li><li><a  href="integration-with-existing-applications.html">Integration with existing applications</a></li><li><a  href="request-processing-faq.html">Request Processing FAQ</a></li><li><a  href="limitations.html">Limitations</a></li><li><a  href="specific-errors-faq.html">Specific Errors FAQ</a></li><li><a  href="hibernate-support-faq.html">Hibernate Support FAQ</a></li><li><a  href="maven-support-faq.html">Maven Support FAQ</a></li><li><a  href="release-upgrade-faq.html">Release Upgrade FAQ</a></li></ul>
 </li><li><a  href="release-notes.html">Release Notes</a><ul class="childpages-macro"><li><a  href="how-to-upgrade.html">How to Upgrade</a></li><li><a  href="release-notes-50.html">Release Notes 5.0</a></li><li><a  href="release-notes-51.html">Release Notes 5.1</a></li><li><a  href="release-notes-52.html">Release Notes 5.2</a><ul class="childpages-macro"><li><a  href="release-notes-520.html">Release Notes 5.2.0</a></li><li><a  href="release-notes-521.html">Release Notes 5.2.1</a></li><li><a  href="release-notes-522.html">Release Notes 5.2.2</a></li><li><a  href="release-notes-523.html">Release Notes 5.2.3</a></li><li><a  href="release-notes-524.html">Release Notes 5.2.4</a></li><li><a  href="release-notes-525.html">Release Notes 5.2.5</a></li><li><a  href="release-notes-526.html">Release Notes 5.2.6</a></li></ul></li><li><a  href="release-notes-53.html">Release Notes 5.3</a></li><li><a  href="release-notes-531.html">Release Notes 5.3.1</a></li><li><a  href="release-notes-532.html">Re
 lease Notes 5.3.2</a></li><li><a  href="release-notes-533.html">Release Notes 5.3.3</a></li><li><a  href="release-notes-534.html">Release Notes 5.3.4</a></li><li><a  href="release-notes-535.html">Release Notes 5.3.5</a></li><li><a  href="release-notes-536.html">Release Notes 5.3.6</a></li><li><a  href="release-notes-537.html">Release Notes 5.3.7</a></li><li><a  href="release-notes-538.html">Release Notes 5.3.8</a></li><li><a  href="release-notes-54.html">Release Notes 5.4</a></li><li><a  href="release-notes-541.html">Release Notes 5.4.1</a></li><li><a  href="release-notes-542.html">Release Notes 5.4.2</a></li><li><a  href="release-notes-543.html">Release Notes 5.4.3</a></li></ul></li><li><a  href="javascript-rewrite-in-54.html">JavaScript Rewrite in 5.4</a></li><li><a  href="support.html">Support</a></li><li><a  href="developer-information.html">Developer Information</a><ul class="childpages-macro"><li><a  href="building-tapestry-from-source.html">Building Tapestry from Source</a></
 li><li><a  href="confluence-site-setup.html">Confluence Site Setup</a><ul class="childpages-macro"><li><a  href="since-and-deprecated-user-macros.html">Since and Deprecated User Macros</a></li></ul></li><li><a  href="developer-bible.html">Developer Bible</a></li><li><a  href="release-process.html">Release Process</a></li><li><a  href="the-tapestry-jail.html">The tapestry jail</a></li><li><a  href="version-numbers.html">Version Numbers</a></li></ul></li></ul></div>
 
 
-<p>Welcome to the Tapestry 5 Documentation, a collection of guides to teach beginners the basics and help experienced developers deepen their understanding of Tapestry's power.</p><h1 id="Documentation-Highlights">Highlights</h1><p>These are the most useful starting points for common needs.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="introduction.html">Introduction</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>An overview of Tapestry's general approach and philosophy</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="getting-started.html">Getting Started</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A quick guide to creating your first Tapestry project, using Maven</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="tapestry-tutorial.html">Tapestry Tutorial</a></p></td><td colspan="1" rowspan="1" class="conf
 luenceTd"><p>Picks up where <em>Getting Started</em> leaves off, explaining in greater detail how Tapestry works</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="user-guide.html">User Guide</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Detailed articles on every Tapestry feature</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="community.html">Community</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Getting support, mailing lists, JIRA, outside resources, and access to the source</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="cookbook.html">Cookbook</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Guides to doing common things with Tapestry</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><strong><a  href="frequently-asked-questions.html">FAQ</a></strong></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A quick pl
 ace to check for common problems and solutions</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="component-cheat-sheet.html">Component Cheat Sheet</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A concise guide to component classes, methods and annotations</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  class="external-link" href="http://refcardz.dzone.com/refcardz/apache-tapestry-50?oid=hom7948" rel="nofollow">Refcard</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A color, six page foldout guide to Tapestry 5.0 (PDF)</p></td></tr></tbody></table></div><h1 id="Documentation-APIandComponentReference">API and Component Reference</h1><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>API (Javadoc):</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>5.0<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.
 1<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.2<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a  class="external-link" href="http://tapestry.apache.org/5.3.7/apidocs/">5.3.8</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><a  class="external-link" href="http://tapestry.apache.org/current">5.4</a></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Component Reference:</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>5.0<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.1<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.2<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em><span class="confluence-link">(same as current)</span></em></p></td><td colspan="1" rowspan="1" class="confluenceTd"><a  href="component-reference.html">5.4 (current)</a></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Release Notes:<
 /p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="release-notes-50.html">5.0</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="release-notes-51.html">5.1</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="release-notes-52.html">5.2</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="release-notes-538.html">5.3.8</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><a  href="release-notes-54.html">5.4</a></td></tr></tbody></table></div><p><sup>1</sup> needs to be built manually from archived sources at <a  class="external-link" href="http://archive.apache.org/dist/tapestry/">http://archive.apache.org/dist/tapestry/</a>.</p><h1 id="Documentation-UserGuide">User Guide</h1><p><span class="confluence-anchor-link" id="Documentation-userguide"></span>The <a  href="user-guide.html">User Guide</a> consists of over 75 pages of detailed information on the concepts behind Tapestry and instructions o
 n how to use this powerful tool. Highlights include:</p><ul><li class="confluence-link"><a  href="client-side-javascript.html">Client-Side JavaScript</a> and <a  href="ajax-and-zones.html">Ajax and Zones</a> describe Tapestry's built-in support for dynamic in-page behavior.</li><li><a  href="integrating-with-spring-framework.html">Integrating with Spring Framework</a> describes how to integrate Spring into your Tapestry application.</li><li><a  href="hibernate.html">Tapestry/Hibernate Integration Library</a> provides out-of-the-box support for using Hibernate 3.</li><li><a  href="bean-validation.html">JSR 303: Bean Validation</a> shows how to use standard annotations for validation</li><li><a  href="integration-testing.html">Integration Testing</a> shows how to test your application with Selenium.</li></ul><p><a  href="user-guide.html">More topics</a>...</p><h1 id="Documentation-BlogsbyTapestryDevelopersandtheCommunity">Blogs by Tapestry Developers and the Community</h1><ul><li><a  
 class="external-link" href="http://tapestryjava.blogspot.com/" rel="nofollow">Tapestry Central</a> is Howard Lewis Ship's blog. As the creator of Tapestry, he provides valuable insights into Tapestry's latest features and future directions.</li><li><a  class="external-link" href="http://blog.tapestry5.de/" rel="nofollow">Igor Drobiazko's blog</a> (committer &amp; PMC) contains news on Tapestry development and will guide you through some of the most exciting parts of Tapestry.</li><li><a  class="external-link" href="http://tawus.wordpress.com/" rel="nofollow">Java Magic</a> (by Taha Hafeez, committer) has a series of tutorials illustrating some of the more advanced Tapestry and Plastic features and techniques.</li></ul><h1 id="Documentation-BooksonTapestry">Books on Tapestry</h1><p>There are at least 9 published <a  href="books.html">books on Tapestry</a>, including three on Tapestry 5.</p><h1 id="Documentation-TapestryPresentations">Tapestry Presentations</h1><ul><li>Mark Shead's <a
   class="external-link" href="http://blog.markshead.com/900/tapestry-5-10-minute-demo/" rel="nofollow">10 Minute Demo</a></li><li>H. L. Ship's <a  class="external-link" href="https://www.youtube.com/watch?v=5BGt7eMFC20" rel="nofollow">Tapestry 5.4 - Bootstrap-enhanced Exception Reporting</a></li><li><a  class="external-link" href="http://jazoon.com/Portals/0/Content/slides/th_a7_1130-1220_drobiazko.pdf" rel="nofollow">JavaServer Faces 2.0 vs. Tapestry 5</a> (PDF) A Head-to-Head Comparison by Igor Drobiazko at Jazoon 2010</li><li><a  class="external-link" href="http://www.parleys.com/#st=5&amp;sl=5&amp;id=1700" rel="nofollow">Tapestry 5: Java power, Scripting Ease</a> (VIDEO) by Howard Lewis Ship at Devoxx 2009</li></ul><p><a  href="presentations.html">More presentations</a> ...</p><h1 id="Documentation-TapestryWikis">Tapestry Wikis</h1><ul><li><a  class="external-link" href="http://wiki.apache.org/tapestry/FrontPage">Tapestry Community Wiki</a> (Moin Moin) contains a lot of user-gen
 erated information on different Tapestry use cases.</li><li><a  href="https://cwiki.apache.org/confluence/x/VCFkAQ">Documentation Source wiki</a> (Confluence) &#8211; the wiki used as the content editor for the official Tapestry documentation</li></ul><h1 id="Documentation-Gettinghelp">Getting help</h1><p>The primary method of support is the <a  href="mailing-lists.html">Tapestry Mailing Lists</a>.</p><p>In addition, there are occasionally questions and answers about Tapestry at <a  class="external-link" href="http://stackoverflow.com/questions/tagged/tapestry" rel="nofollow">Stack Overflow</a>.</p><h1 id="Documentation-TheDeveloperCorner">The Developer Corner</h1><p><a  href="developer-information.html">Developer Information</a> gives information needed by the Tapestry developers</p><p>&#160;</p></div>
+<p>Welcome to the Tapestry 5 Documentation, a collection of guides to teach beginners the basics and help experienced developers deepen their understanding of Tapestry's power.</p><h1 id="Documentation-Highlights">Highlights</h1><p>These are the most useful starting points for common needs.</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="introduction.html">Introduction</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>An overview of Tapestry's general approach and philosophy</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="getting-started.html">Getting Started</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A quick guide to creating your first Tapestry project, using Maven</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="tapestry-tutorial.html">Tapestry Tutorial</a></p></td><td colspan="1" rowspan="1" class="conf
 luenceTd"><p>Picks up where <em>Getting Started</em> leaves off, explaining in greater detail how Tapestry works</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="user-guide.html">User Guide</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Detailed articles on every Tapestry feature</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="community.html">Community</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Getting support, mailing lists, JIRA, outside resources, and access to the source</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="cookbook.html">Cookbook</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>Guides to doing common things with Tapestry</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><strong><a  href="frequently-asked-questions.html">FAQ</a></strong></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A quick pl
 ace to check for common problems and solutions</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="component-cheat-sheet.html">Component Cheat Sheet</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A concise guide to component classes, methods and annotations</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><a  class="external-link" href="http://refcardz.dzone.com/refcardz/apache-tapestry-50?oid=hom7948" rel="nofollow">Refcard</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A color, six page foldout guide to Tapestry 5.0 (PDF)</p></td></tr></tbody></table></div><h1 id="Documentation-APIandComponentReference">API and Component Reference</h1><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>API (Javadoc):</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>5.0<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.
 1<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.2<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a  class="external-link" href="http://tapestry.apache.org/5.3.7/apidocs/">5.3.8</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><a  class="external-link" href="http://tapestry.apache.org/current">5.4</a></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Component Reference:</p></th><td colspan="1" rowspan="1" class="confluenceTd"><p>5.0<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.1<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5.2<sup>1</sup></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><em><span class="confluence-link">(same as current)</span></em></p></td><td colspan="1" rowspan="1" class="confluenceTd"><a  href="component-reference.html">5.4 (current)</a></td></tr><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Release Notes:<
 /p></th><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="release-notes-50.html">5.0</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="release-notes-51.html">5.1</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="release-notes-52.html">5.2</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><a  href="release-notes-538.html">5.3.8</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><a  href="release-notes-54.html">5.4</a></td></tr></tbody></table></div><p><sup>1</sup> needs to be built manually from archived sources at <a  class="external-link" href="http://archive.apache.org/dist/tapestry/">http://archive.apache.org/dist/tapestry/</a>.</p><h1 id="Documentation-UserGuide">User Guide</h1><p><span class="confluence-anchor-link" id="Documentation-userguide"></span>The <a  href="user-guide.html">User Guide</a> consists of over 75 pages of detailed information on the concepts behind Tapestry and instructions o
 n how to use this powerful tool. Highlights include:</p><ul><li class="confluence-link"><a  href="client-side-javascript.html">Client-Side JavaScript</a> and <a  href="ajax-and-zones.html">Ajax and Zones</a> describe Tapestry's built-in support for dynamic in-page behavior.</li><li><a  href="integrating-with-spring-framework.html">Integrating with Spring Framework</a> describes how to integrate Spring into your Tapestry application.</li><li><a  href="hibernate.html">Tapestry/Hibernate Integration Library</a> provides out-of-the-box support for using Hibernate 3.</li><li><a  href="bean-validation.html">JSR 303: Bean Validation</a> shows how to use standard annotations for validation</li><li><a  href="integration-testing.html">Integration Testing</a> shows how to test your application with Selenium.</li></ul><p><a  href="user-guide.html">More topics</a>...</p><h1 id="Documentation-BlogsbyTapestryDevelopersandtheCommunity">Blogs by Tapestry Developers and the Community</h1><ul><li><a  
 class="external-link" href="http://tapestryjava.blogspot.com/" rel="nofollow">Tapestry Central</a> is Howard Lewis Ship's blog. As the creator of Tapestry, he provides valuable insights into Tapestry's latest features and future directions.</li><li><a  class="external-link" href="http://blog.tapestry5.de/" rel="nofollow">Igor Drobiazko's blog</a> (committer &amp; PMC) contains news on Tapestry development and will guide you through some of the most exciting parts of Tapestry.</li><li><a  class="external-link" href="http://tawus.wordpress.com/" rel="nofollow">Java Magic</a> (by Taha Hafeez, committer) has a series of tutorials illustrating some of the more advanced Tapestry and Plastic features and techniques.</li></ul><h1 id="Documentation-BooksonTapestry">Books on Tapestry</h1><p>There are at least 9 published <a  href="books.html">books on Tapestry</a>, including three on Tapestry 5.</p><h1 id="Documentation-TapestryPresentations">Tapestry Presentations</h1><ul><li>Mark Shead's <a
   class="external-link" href="http://blog.markshead.com/900/tapestry-5-10-minute-demo/" rel="nofollow">10 Minute Demo</a></li><li>H. L. Ship's <a  class="external-link" href="https://www.youtube.com/watch?v=5BGt7eMFC20" rel="nofollow">Tapestry 5.4 - Bootstrap-enhanced Exception Reporting</a></li><li><a  class="external-link" href="http://blog.tapestry5.de/wp-content/uploads/2010/06/JSF-2.0-vs-Tapestry-5.pdf" rel="nofollow">JavaServer Faces 2.0 vs. Tapestry 5</a> (PDF) A Head-to-Head Comparison by Igor Drobiazko at Jazoon 2010</li><li><a  class="external-link" href="http://www.parleys.com/#st=5&amp;sl=5&amp;id=1700" rel="nofollow">Tapestry 5: Java power, Scripting Ease</a> (VIDEO) by Howard Lewis Ship at Devoxx 2009</li></ul><p><a  href="presentations.html">More presentations</a> ...</p><h1 id="Documentation-TapestryWikis">Tapestry Wikis</h1><ul><li><a  class="external-link" href="http://wiki.apache.org/tapestry/FrontPage">Tapestry Community Wiki</a> (Moin Moin) contains a lot of use
 r-generated information on different Tapestry use cases.</li><li><a  href="https://cwiki.apache.org/confluence/x/VCFkAQ">Documentation Source wiki</a> (Confluence) &#8211; the wiki used as the content editor for the official Tapestry documentation</li></ul><h1 id="Documentation-Gettinghelp">Getting help</h1><p>The primary method of support is the <a  href="mailing-lists.html">Tapestry Mailing Lists</a>.</p><p>In addition, there are occasionally questions and answers about Tapestry at <a  class="external-link" href="http://stackoverflow.com/questions/tagged/tapestry" rel="nofollow">Stack Overflow</a>.</p><h1 id="Documentation-TheDeveloperCorner">The Developer Corner</h1><p><a  href="developer-information.html">Developer Information</a> gives information needed by the Tapestry developers</p><p>&#160;</p></div>
       </div>
 
       <div class="clearer"></div>

Modified: websites/production/tapestry/content/exploring-the-project.html
==============================================================================
--- websites/production/tapestry/content/exploring-the-project.html (original)
+++ websites/production/tapestry/content/exploring-the-project.html Mon Feb 19 20:20:17 2018
@@ -32,7 +32,6 @@
     <script src='/resources/highlighter/scripts/shCore.js' type='text/javascript'></script>
           <script src='/resources/highlighter/scripts/shBrushJava.js' type='text/javascript'></script>
           <script src='/resources/highlighter/scripts/shBrushXml.js' type='text/javascript'></script>
-          <script src='/resources/highlighter/scripts/shBrushPlain.js' type='text/javascript'></script>
         <script>
       SyntaxHighlighter.defaults['toolbar'] = false;
       SyntaxHighlighter.all();
@@ -262,13 +261,13 @@ public class Index
 
 
 
-<span class="gliffy-container" id="gliffy-container-24346949-7149" data-fullwidth="913" data-ceoid="24188263" data-edit="${diagramEditLink.getLinkUrl()}" data-full="${diagramZoomLink.getLinkUrl()}" data-filename="Templates and Parameters">
+<span class="gliffy-container" id="gliffy-container-24346949-6902" data-fullwidth="913" data-ceoid="24188263" data-edit="${diagramEditLink.getLinkUrl()}" data-full="${diagramZoomLink.getLinkUrl()}" data-filename="Templates and Parameters">
 
-    <map id="gliffy-map-24346949-7596" name="gliffy-map-24346949-7596"></map>
+    <map id="gliffy-map-24346949-1020" name="gliffy-map-24346949-1020"></map>
 
-    <img class="gliffy-image gliffy-image-border" id="gliffy-image-24346949-7149" width="304" height="300" data-full-width="913" data-full-height="901" src="https://cwiki.apache.org/confluence/download/attachments/24188263/Templates%20and%20Parameters.png?version=2&amp;modificationDate=1371888025000&amp;api=v2" alt="Templates and Parameters" usemap="#gliffy-map-24346949-7596">
+    <img class="gliffy-image gliffy-image-border" id="gliffy-image-24346949-6902" width="304" height="300" data-full-width="913" data-full-height="901" src="https://cwiki.apache.org/confluence/download/attachments/24188263/Templates%20and%20Parameters.png?version=2&amp;modificationDate=1371888025000&amp;api=v2" alt="Templates and Parameters" usemap="#gliffy-map-24346949-1020">
 
-    <map class="gliffy-dynamic" id="gliffy-dynamic-map-24346949-7149" name="gliffy-dynamic-map-24346949-7149"></map>
+    <map class="gliffy-dynamic" id="gliffy-dynamic-map-24346949-6902" name="gliffy-dynamic-map-24346949-6902"></map>
 </span>
 
 
@@ -281,9 +280,7 @@ public class Index
     return "A great day to learn Tapestry";
   }
 </pre>
-</div></div><p>Make sure you save changes; then click the refresh link in the web browser:</p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image" width="700" src="exploring-the-project.data/app-live-reload.png"></span></p><p>&#160;</p><div class="navmenu" style="float:right; width:30%; background:white; margin:3px; padding:3px">
-<div class="confluence-information-macro confluence-information-macro-note"><span class="aui-icon aui-icon-small aui-iconfont-warning confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
-<p>If Live Class Reloading isn't working for you, check the Troubleshooting section at <a  href="class-reloading.html" title="Class Reloading">Class Reloading</a>.</p></div></div></div>This is one of Tapestry's early <em>wow factor</em> features: changes to your component classes are picked up immediately (a feature we call Live Class Reloading). No restart. No re-deploy. Make the changes and see them <em>now</em>. Nothing should slow you down or get in the way of you getting your job done.<p>But ... what if you make a mistake? What if you got the name in the template wrong. Give it a try; in the template, change ${currentTime} to, say, ${currenTime}, and see what you get:</p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image" width="700" src="exploring-the-project.data/app-error-1.png"></span></p><p>This is Tapestry's exception report page. It's quite detailed. It clearly identifies what Tapestry was doing, and re
 lates the problem to a specific line in the template, which is shown in context. Tapestry always expands out the entire stack of exceptions, because it is so common for exceptions to be thrown, caught, and re-thrown inside other exceptions. In fact, if we scroll down just a little bit, we see more detail about this exception, plus a little bit of help:</p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image" width="700" src="exploring-the-project.data/app-error-2.png"></span></p><p>&#160;</p><p>This is part of Tapestry's way: it not only spells out exactly what it was doing and what went wrong, but it even helps you find a solution; here it tells you the names of properties you could have used.</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-bo
 dy"><p>This level of detail reflects that the application has been configured to run in <em>development mode</em> instead of <em>production mode</em>. In production mode, the exception report would simply be the top level exception message. However, most production applications go further and customize how Tapestry handles and reports exceptions.</p></div></div><p>Tapestry displays the stack trace of the deepest exception, along with lots of details about the run-time environment: details about the current request, the HttpSession (if one exists), and even a detailed list of all JVM system properties. Scroll down to see all this information.</p><p>Next: <a  href="implementing-the-hi-lo-guessing-game.html">Implementing the Hi-Lo Guessing Game</a></p><p>&#160;</p><p></p></div>
+</div></div><p>Make sure you save changes; then click the refresh link in the web browser:</p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image" width="700" src="exploring-the-project.data/app-live-reload.png"></span></p><p>This is one of Tapestry's early <em>wow factor</em> features: changes to your component classes are picked up immediately (a feature we call Live Class Reloading). No restart. No re-deploy. Make the changes and see them <em>now</em>. Nothing should slow you down or get in the way of you getting your job done.</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 Live Class Reloading isn't working for you, check the Troubleshooting section at <a  href="class-reloading.html">Class Reloading</a>.</p></div></div><p>But 
 ... what if you make a mistake? What if you got the name in the template wrong. Give it a try; in the template, change ${currentTime} to, say, ${currenTime}, and see what you get:</p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image" width="700" src="exploring-the-project.data/app-error-1.png"></span></p><p>This is Tapestry's exception report page. It's quite detailed. It clearly identifies what Tapestry was doing, and relates the problem to a specific line in the template, which is shown in context. Tapestry always expands out the entire stack of exceptions, because it is so common for exceptions to be thrown, caught, and re-thrown inside other exceptions. In fact, if we scroll down just a little bit, we see more detail about this exception, plus a little bit of help:</p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image" width="700" src="explor
 ing-the-project.data/app-error-2.png"></span></p><p>&#160;</p><p>This is part of Tapestry's way: it not only spells out exactly what it was doing and what went wrong, but it even helps you find a solution; here it tells you the names of properties you could have used.</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>This level of detail reflects that the application has been configured to run in <em>development mode</em> instead of <em>production mode</em>. In production mode, the exception report would simply be the top level exception message. However, most production applications go further and customize how Tapestry handles and reports exceptions.</p></div></div><p>Tapestry displays the stack trace of the deepest exception, along with lots of details about the run-time environment: details about th
 e current request, the HttpSession (if one exists), and even a detailed list of all JVM system properties. Scroll down to see all this information.</p><p>Next: <a  href="implementing-the-hi-lo-guessing-game.html">Implementing the Hi-Lo Guessing Game</a></p><p>&#160;</p><p></p></div>
       </div>
 
       <div class="clearer"></div>

Modified: websites/production/tapestry/content/getting-started.html
==============================================================================
--- websites/production/tapestry/content/getting-started.html (original)
+++ websites/production/tapestry/content/getting-started.html Mon Feb 19 20:20:17 2018
@@ -289,7 +289,7 @@ Application 'app' (version 1.0-SNAPSHOT-
         &#9492;&#9472;&#9472; resources
             &#9492;&#9472;&#9472; PLACEHOLDER
 30 directories, 39 files</pre>
-</div></div><p>A Tapestry application is composed of pages, each page consisting of one template file and one Java class.</p><p>Tapestry page templates have the .tml extension and are found within src/main/<strong>resources</strong>/ under the app's <strong>pages</strong> package (src/main/resources/com/example/newapp/pages, in this example). Templates are essentially HTML with some special markup to reference properties in the corresponding Java class and to reference ready-made or custom components.</p><p>Similarly, Tapestry page classes are found in within the src/main/<strong>java</strong> under the app's <em><strong>pages</strong></em> package (src/main/java/com/example/newapp/pages, in this example) and their name matches their template name (Index.tml -&gt; Index.java).</p><p>In the skeleton project, most of the HTML is not found on the pages themselves but in a Layout component which acts as a global template for the whole site. Java classes for components live in src/main/<
 strong>java</strong>/com/example/newapp/<strong>components</strong> and component templates go in src/main/<strong>resources</strong>/com/example/newapp/<strong>components</strong>.</p><p>The archetype includes a few optional extras:</p><ul><li>The bundled version of the <a  class="external-link" href="http://getbootstrap.com/" rel="nofollow">Bootstrap CSS library</a> has a per-project override. You can see the files in src/webapp/context/mybootstrap, and the overrides to enable that in AppModule.java.</li><li>By default, Tapestry users <a  class="external-link" href="http://prototypejs.org/" rel="nofollow">Prototype</a> as its client-side library, the archetype overrides this to <a  class="external-link" href="https://jquery.org/" rel="nofollow">jQuery</a>, which is preferred for new projects.</li><li>The archetype adds a simple filter that shows the timing of each request.</li><li>The archetype sets up not just for builds with Maven, but also via <a  class="external-link" href="ht
 tp://gradle.org/" rel="nofollow">Gradle</a>.</li></ul><h2 id="GettingStarted-What'snext?">What's next?</h2><p>To deepen your understanding, step through the <a  href="getting-started.html">Getting Started</a>, which goes into much more detail about setting up your project as well as loading it into Eclipse... then continues on to teach you more about Tapestry.</p><p>Be sure to read about the core <a  href="getting-started.html">Tapestry Principles</a>, and browse the extensive <a  href="documentation.html">Documentation.</a></p><h2 id="GettingStarted-ObtainHelp">Obtain Help</h2><p>Tapestry has an active user mailing list on which you can find a lot of valuable support, commonly within just a few minutes. You can subscribe by sending e-mail to <a  class="external-link" href="mailto:users-subscribe@tapestry.apache.org" rel="nofollow">users-subscribe@tapestry.apache.org</a> or look for an answer in the <a  class="external-link" href="http://markmail.org/search/list:org.apache.tapestry.
 users" rel="nofollow">archives</a>. <a  href="mailing-lists.html">More Options</a>...</p><p>Having trouble? Try our <a  href="tapestry-tutorial.html">Tutorial</a>.</p><hr><p>&#160;</p><p>&#160;</p></div>
+</div></div><p>A Tapestry application is composed of pages, each page consisting of one template file and one Java class.</p><p>Tapestry page templates have the .tml extension and are found within src/main/<strong>resources</strong>/ under the app's <strong>pages</strong> package (src/main/resources/com/example/newapp/pages, in this example). Templates are essentially HTML with some special markup to reference properties in the corresponding Java class and to reference ready-made or custom components.</p><p>Similarly, Tapestry page classes are found in within the src/main/<strong>java</strong> under the app's <em><strong>pages</strong></em> package (src/main/java/com/example/newapp/pages, in this example) and their name matches their template name (Index.tml -&gt; Index.java).</p><p>In the skeleton project, most of the HTML is not found on the pages themselves but in a Layout component which acts as a global template for the whole site. Java classes for components live in src/main/<
 strong>java</strong>/com/example/newapp/<strong>components</strong> and component templates go in src/main/<strong>resources</strong>/com/example/newapp/<strong>components</strong>.</p><p>The archetype includes a few optional extras:</p><ul><li>The bundled version of the <a  class="external-link" href="http://getbootstrap.com/" rel="nofollow">Bootstrap CSS library</a> has a per-project override. You can see the files in src/webapp/context/mybootstrap, and the overrides to enable that in AppModule.java.</li><li>By default, Tapestry users <a  class="external-link" href="http://prototypejs.org/" rel="nofollow">Prototype</a> as its client-side library, but the archetype overrides this to <a  class="external-link" href="https://jquery.org/" rel="nofollow">jQuery</a>, which is preferred for new projects.</li><li>The archetype adds a simple filter that shows the timing of each request.</li><li>The archetype sets up not just for builds with Maven, but also via <a  class="external-link" href
 ="http://gradle.org/" rel="nofollow">Gradle</a>.</li></ul><h2 id="GettingStarted-What'snext?">What's next?</h2><p>To deepen your understanding, step through the <a  href="tapestry-tutorial.html">Tapestry Tutorial</a>, which goes into much more detail about setting up your project as well as loading it into Eclipse... then continues on to teach you more about Tapestry.</p><p>Be sure to read about the core <a  href="principles.html">Tapestry Principles</a>, and browse the extensive <a  href="documentation.html">Documentation.</a></p><h2 id="GettingStarted-ObtainHelp">Obtain Help</h2><p>Tapestry has an active user mailing list on which you can find a lot of valuable support, commonly within just a few minutes. You can subscribe by sending e-mail to <a  class="external-link" href="mailto:users-subscribe@tapestry.apache.org" rel="nofollow">users-subscribe@tapestry.apache.org</a> or look for an answer in the <a  class="external-link" href="http://markmail.org/search/list:org.apache.tapest
 ry.users" rel="nofollow">archives</a>. <a  href="mailing-lists.html">More Options</a>...</p><p>Having trouble? Try our <a  href="tapestry-tutorial.html">Tutorial</a>.</p><hr><p>&#160;</p><p>&#160;</p></div>
       </div>
 
       <div class="clearer"></div>

Modified: websites/production/tapestry/content/implementing-the-hi-lo-guessing-game.html
==============================================================================
--- websites/production/tapestry/content/implementing-the-hi-lo-guessing-game.html (original)
+++ websites/production/tapestry/content/implementing-the-hi-lo-guessing-game.html Mon Feb 19 20:20:17 2018
@@ -101,7 +101,7 @@ public class Index
         &lt;t:actionlink t:id="start"&gt;start guessing&lt;/t:actionlink&gt;
     &lt;/p&gt;
 </pre>
-</div></div><p>If you refresh the browser and hover your mouse over the "start guessing" link, you'll see that its URL is now /tutorial1/index.start, which identifies the name of the page ("index") and the id of the component ("start").</p><p>If you click the link now, you'll get an error:</p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image" width="500" src="implementing-the-hi-lo-guessing-game.data/hilo-index-missing-action-error.png"></span></p><p>Tapestry is telling us that we need to provide some kind of event handler for that event. What does that look like?</p><p>An event handler is a method of the Java class with a special name. The name is <code>on</code><strong><em>Eventname</em></strong><code>From</code><strong><em>Component-id</em></strong> ... here we want a method named <code>onActionFromStart()</code>. How do we know that "action" is the right event name? Because that's what ActionLink does, that's 
 why its named <strong><em>Action</em></strong>Link.</p><p>Once again, Tapestry gives us options; if you don't like naming conventions, there's an @<a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/OnEvent.html">OnEvent</a> annotation you can place on the method instead, which restores the freedom to name the method as you like. Details about this approach are in the <a  href="implementing-the-hi-lo-guessing-game.html">Tapestry Users' Guide</a>. We'll be sticking with the naming convention approach for the tutorial.</p><p>When handling a component event request (the kind of request triggered by the ActionLink component's URL), Tapestry will find the component and trigger a component event on it. This is the callback our server-side code needs to figure out what the user is doing on the client side. Let's start with an empty event handler:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHea
 der pdl" style="border-bottom-width: 1px;"><b>Index.java</b></div><div class="codeContent panelContent pdl">
+</div></div><p>If you refresh the browser and hover your mouse over the "start guessing" link, you'll see that its URL is now /tutorial1/index.start, which identifies the name of the page ("index") and the id of the component ("start").</p><p>If you click the link now, you'll get an error:</p><p><span class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image" width="500" src="implementing-the-hi-lo-guessing-game.data/hilo-index-missing-action-error.png"></span></p><p>Tapestry is telling us that we need to provide some kind of event handler for that event. What does that look like?</p><p>An event handler is a method of the Java class with a special name. The name is <code>on</code><strong><em>Eventname</em></strong><code>From</code><strong><em>Component-id</em></strong> ... here we want a method named <code>onActionFromStart()</code>. How do we know that "action" is the right event name? Because that's what ActionLink does, that's 
 why its named <strong><em>Action</em></strong>Link.</p><p>Once again, Tapestry gives us options; if you don't like naming conventions, there's an @<a  class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/OnEvent.html">OnEvent</a> annotation you can place on the method instead, which restores the freedom to name the method as you like. Details about this approach are in the <a  href="user-guide.html">Tapestry Users' Guide</a>. We'll be sticking with the naming convention approach for the tutorial.</p><p>When handling a component event request (the kind of request triggered by the ActionLink component's URL), Tapestry will find the component and trigger a component event on it. This is the callback our server-side code needs to figure out what the user is doing on the client side. Let's start with an empty event handler:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bot
 tom-width: 1px;"><b>Index.java</b></div><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">package com.example.tutorial1.pages;
 
 public class Index

Modified: websites/production/tapestry/content/introduction.html
==============================================================================
--- websites/production/tapestry/content/introduction.html (original)
+++ websites/production/tapestry/content/introduction.html Mon Feb 19 20:20:17 2018
@@ -127,7 +127,7 @@
 </div>
 
 
-<h2 id="Introduction-WhatisApacheTapestry?">What is Apache Tapestry?</h2><p>Apache Tapestry is an open-source framework for creating dynamic, robust, highly scalable web applications in Java. Tapestry complements and builds upon the standard Java Servlet API, and so it works in any servlet container or application server.</p><p>Tapestry divides a web application into a set of pages, each constructed from components. This provides a consistent structure, allowing the Tapestry framework to assume responsibility for key concerns such as URL construction and dispatch, persistent state storage on the client or on the server, user input validation, localization/internationalization, and exception reporting. Developing Tapestry applications involves creating HTML templates using plain HTML, and adding a small java class for each. In Tapestry, you create your application in terms of objects, and the methods and properties of those objects &#8211; and specifically not in terms of URLs and qu
 ery parameters. Tapestry brings true object oriented development to Java web applications.</p><p>Tapestry is specifically designed to make creating new components very easy, as this is a routine approach when building applications.</p><p>Tapestry is architected to scale from tiny, single-page applications all the way up to massive applications consisting of hundreds of individual pages, developed by large, diverse teams. Tapestry easily integrates with any kind of backend, including JEE, Spring and Hibernate.</p><p>It's more than what you can do with Tapestry ... it's also how you do it! Tapestry is a vastly productive environment. Java developers love it because they can make Java code changes and see them immediately ... no redeploy, no restart! And it's blazingly fast to boot (even when files have changed). Designers love it because Tapestry templates are so close to ordinary HTML, without all the cruft and confusion seen in <a  href="introduction.html">JavaServer Pages</a>. Mana
 gers love it because it makes it easy for large teams to work together productively, and because they know important features (including localization) are baked right in. Once you work in Tapestry there's no going back!</p><p>Tapestry is released under the Apache Software License 2.0.</p><h2 id="Introduction-ThirdPartyLibraries,TutorialsandResources">Third Party Libraries, Tutorials and Resources</h2><p>A number of third party libraries, tutorials and resources are listed on the <a  href="introduction.html">Introduction</a> page.</p><h2 id="Introduction-AboutReleasesandSnapshots">About Releases and Snapshots</h2><p>Most users will want to use the latest stable release of Tapestry, and for that your best bet for new projects is to use the Quickstart Maven archetype to create your initial Tapestry project, as described on the <a  href="introduction.html">Introduction</a> page. The Quickstart archetype generates a full, working project directory. For upgrading existing projects, just u
 se the Maven dependency listed on the <a  href="introduction.html">Introduction</a> page.</p><p>You can also pull down Tapestry modules in the form of binary and source JARs from the <a  class="external-link" href="http://search.maven.org/#browse" rel="nofollow" title="1738327132">Maven Central repository</a>.</p><p>Tapestry itself is built using Gradle, which makes it really easy to download the source and build it yourself, either the whole project, or just one single module.</p><p>The use of Maven and Gradle has let us move with great speed, providing preview releases and snapshots.</p><p>Snapshots are intermediate versions of releases, with "-SNAPSHOT" at the end of the version number. Maven notices that -SNAPSHOT suffix and handles the dependency specially. It knows that snapshot releases can change frequently, so it will keep checking (at least once a day, maybe more often) to see if there's an updated version of the snapshot.</p><p>A nightly build process on Tapestry's contin
 uous integration server creates new snapshots every night.</p><p>Snapshots don't go in the Maven central repository (that's reserved for full releases). Instead, they go into the Tapestry snapshots repository at <a  class="external-link" href="https://repository.apache.org/content/groups/snapshots/org/apache/tapestry/">https://repository.apache.org/content/groups/snapshots/org/apache/tapestry/</a>.</p><p>To access the snapshot repository, just add <code>-DremoteRepositories=<span class="nolink"><a  class="external-link" href="http://repository.apache.org/snapshots/">http://repository.apache.org/snapshots/</a></span></code> to the command line when running Maven.</p><p>Documentation on this site sometimes refers to the latest snapshot ... that is, it is often ahead of the last official release, with version-specific differences clearly marked. In some cases, it is written as if the snapshot release is stable. For example, if documentation refers to version 5.4.x and that hasn't been 
 released yet, you can try 5.4.x-SNAPSHOT.</p></div>
+<h2 id="Introduction-WhatisApacheTapestry?">What is Apache Tapestry?</h2><p>Apache Tapestry is an open-source framework for creating dynamic, robust, highly scalable web applications in Java. Tapestry complements and builds upon the standard Java Servlet API, and so it works in any servlet container or application server.</p><p>Tapestry divides a web application into a set of pages, each constructed from components. This provides a consistent structure, allowing the Tapestry framework to assume responsibility for key concerns such as URL construction and dispatch, persistent state storage on the client or on the server, user input validation, localization/internationalization, and exception reporting. Developing Tapestry applications involves creating HTML templates using plain HTML, and adding a small java class for each. In Tapestry, you create your application in terms of objects, and the methods and properties of those objects &#8211; and specifically not in terms of URLs and qu
 ery parameters. Tapestry brings true object oriented development to Java web applications.</p><p>Tapestry is specifically designed to make creating new components very easy, as this is a routine approach when building applications.</p><p>Tapestry is architected to scale from tiny, single-page applications all the way up to massive applications consisting of hundreds of individual pages, developed by large, diverse teams. Tapestry easily integrates with any kind of backend, including JEE, Spring and Hibernate.</p><p>It's more than what you can do with Tapestry ... it's also how you do it! Tapestry is a vastly productive environment. Java developers love it because they can make Java code changes and see them immediately ... no redeploy, no restart! And it's blazingly fast to boot (even when files have changed). Designers love it because Tapestry templates are so close to ordinary HTML, without all the cruft and confusion seen in <a  href="tapestry-for-jsf-users.html">JavaServer Pages
 </a>. Managers love it because it makes it easy for large teams to work together productively, and because they know important features (including localization) are baked right in. Once you work in Tapestry there's no going back!</p><p>Tapestry is released under the Apache Software License 2.0.</p><h2 id="Introduction-ThirdPartyLibraries,TutorialsandResources">Third Party Libraries, Tutorials and Resources</h2><p>A number of third party libraries, tutorials and resources are listed on the&#160;<a  href="modules.html">Modules</a> page.</p><h2 id="Introduction-AboutReleasesandSnapshots">About Releases and Snapshots</h2><p class="confluence-link">Most users will want to use the latest stable release of Tapestry, and for that your best bet for new projects is to use the Quickstart Maven archetype to create your initial Tapestry project, as described on the <a  href="getting-started.html">Getting Started</a> page. The Quickstart archetype generates a full, working project directory. For 
 upgrading existing projects, just use the Maven dependency listed on the <a  href="download.html">Download</a> page.</p><p>You can also pull down Tapestry modules in the form of binary and source JARs from the <a  class="external-link" href="http://search.maven.org/#browse" rel="nofollow" title="1738327132">Maven Central repository</a>.</p><p>Tapestry itself is built using Gradle, which makes it really easy to download the source and build it yourself, either the whole project, or just one single module.</p><p>The use of Maven and Gradle has let us move with great speed, providing preview releases and snapshots.</p><p>Snapshots are intermediate versions of releases, with "-SNAPSHOT" at the end of the version number. Maven notices that -SNAPSHOT suffix and handles the dependency specially. It knows that snapshot releases can change frequently, so it will keep checking (at least once a day, maybe more often) to see if there's an updated version of the snapshot.</p><p>A nightly build p
 rocess on Tapestry's continuous integration server creates new snapshots every night.</p><p>Snapshots don't go in the Maven central repository (that's reserved for full releases). Instead, they go into the Tapestry snapshots repository at <a  class="external-link" href="https://repository.apache.org/content/groups/snapshots/org/apache/tapestry/">https://repository.apache.org/content/groups/snapshots/org/apache/tapestry/</a>.</p><p>To access the snapshot repository, just add <code>-DremoteRepositories=<span class="nolink"><a  class="external-link" href="http://repository.apache.org/snapshots/">http://repository.apache.org/snapshots/</a></span></code> to the command line when running Maven.</p><p>Documentation on this site sometimes refers to the latest snapshot ... that is, it is often ahead of the last official release, with version-specific differences clearly marked. In some cases, it is written as if the snapshot release is stable. For example, if documentation refers to version 
 5.4.x and that hasn't been released yet, you can try 5.4.x-SNAPSHOT.</p></div>
       </div>
 
       <div class="clearer"></div>