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-subscr...@tapestry.apache.org"; 
rel="nofollow">users-subscr...@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-subscr...@tapestry.apache.org"; 
rel="nofollow">users-subscr...@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>


Reply via email to