Author: buildbot Date: Sat Jan 30 21:20:37 2021 New Revision: 1070732 Log: Production update by buildbot for tapestry
Added: websites/production/tapestry/content/release-notes-562.html websites/production/tapestry/content/release-notes-570.html Modified: websites/production/tapestry/content/cache/main.pageCache websites/production/tapestry/content/documentation.html websites/production/tapestry/content/error-page-recipe.html websites/production/tapestry/content/extending-the-if-component.html Modified: websites/production/tapestry/content/cache/main.pageCache ============================================================================== Binary files - no diff available. Modified: websites/production/tapestry/content/documentation.html ============================================================================== --- websites/production/tapestry/content/documentation.html (original) +++ websites/production/tapestry/content/documentation.html Sat Jan 30 21:20:37 2021 @@ -142,7 +142,7 @@ <!-- /// Content Start --> <div id="content"> - <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="u ser-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="childpages-mac ro"><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></li></ul></li><li><a href="inje ction.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">Tapestry IoC Overview</a></li><li><a href="tap estry-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="strategybuilder-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><li><a href="hibernate-user-guide.html">Hibernate User Guide</a></li></ul></li><li><a href="integrating-w ith-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">T apestry 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-services-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">BeanEditForm FAQ</a></li><li><a href="link-compon ents-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">Release 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><li><a href="release-notes-544.html">Release Notes 5.4.4</a></li><li><a href="release-notes-545.html">Release Notes 5.4.5</a></li><li><a href="release-notes-550.html">Release Notes 5.5.0</a></li><li><a href="release-notes-560.html">Release Notes 5.6.0</a></li><li><a href="release-notes-561.html">Release Notes 5.6.1</a></li></ul></li><li><a href="javascript-rewrite-in-54.html">JavaScript Rewri te 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> + <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="u ser-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="childpages-mac ro"><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></li></ul></li><li><a href="inje ction.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">Tapestry IoC Overview</a></li><li><a href="tap estry-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="strategybuilder-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><li><a href="hibernate-user-guide.html">Hibernate User Guide</a></li></ul></li><li><a href="integrating-w ith-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">T apestry 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-services-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">BeanEditForm FAQ</a></li><li><a href="link-compon ents-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">Release 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><li><a href="release-notes-544.html">Release Notes 5.4.4</a></li><li><a href="release-notes-545.html">Release Notes 5.4.5</a></li><li><a href="release-notes-550.html">Release Notes 5.5.0</a></li><li><a href="release-notes-560.html">Release Notes 5.6.0</a></li><li><a href="release-notes-561.html">Release Notes 5.6.1</a></li><li><a href="release-notes-570.html">Release Notes 5.7.0</a></li><li>< a href="release-notes-562.html">Release Notes 5.6.2</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="table table-bordered table-responsive"><colgroup span="1"><col span="1"><col span="1"></colgroup><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-tutoria l.html">Tapestry Tutorial</a></p></td><td colspan="1" rowspan="1" class="confluenceTd"><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></stron g></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>A quick place 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></tbody></table></div><h1 id="Documentation-APIandComponentReference">API and Component Reference</h1><div class="table-wrap"><table class="table table-bordered table-responsive"><colgroup span="1"><col span="1" style="width: 30.7309%;"><col span="1" style="width: 8.62385%;"><col span="1" style="width: 8.62385%;"><col span="1" style="width: 8.62385%;"><col span="1" style="width: 11.9083%;"><col span="1" style="width: 12.6239%;"><col span="1" style="width: 18.8654%;"><col span="1"></colgroup><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/5.4">5.4</a></td><td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link" href="http://tapestry.apache.org/5.5.0">5.5</a></td><td colspan="1" rowspan="1" class="confluenceTd"><a class="external-link" href="http://tapestry.apache.org/current/apidocs"><strong>5.6.1</strong> (current)</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">see 5.6</span></em></p></td><td colspan="1" rowspan="1" class="confluenceTd"><em>see 5.6</em></td><td colspan="1" rowspan="1" class="confluenceTd">see 5.6</td><td colspan="1" rowspan="1" class="confluenceTd"><a href="component-reference.html"><strong>5.6.1</strong></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-note s-54.html">5.4</a></td><td colspan="1" rowspan="1" class="confluenceTd"><a href="release-notes-550.html">5.5</a></td><td colspan="1" rowspan="1" class="confluenceTd"><strong><a href="release-notes-560.html">5.6</a></strong></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 on 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> was Howard Lewis Ship's blog from 2003-2013. As the creator of Tapestry, he provides valuable insights into Tapestry's latest features and future directions.</li><li><a class="external-li nk" href="https://web.archive.org/web/20160410090538/http://blog.tapestry5.de/" rel="nofollow">Igor Drobiazko's blog</a> (committer & PMC) contains guides on Tapestry 5 development (2009-2013).</li><li><a class="external-link" href="http://tawus.wordpress.com/" rel="nofollow">Java Magic</a> (by Taha Hafeez, committer) presents a series of tutorials illustrating some of the more advanced Tapestry and Plastic features and techniques (2011-2012).</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>  (Video, 2011)</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> (Video, 2012)</li><li><a class="external-link" href="https://web.archive.org/web/20170302154020/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, 2010) A Head-to-Head Comparison by Igor Drobiazko at Jazoon 2010</li></ul><p><a href="presentations.html">More presentations</a> ...</p><h1 id="Documentation-TapestryWikis">Tapestry Wikis</h1><ul><li><a href="https://cwiki.apache.org/confluence/x/VCFkAQ">Documentation Source wiki</a> (Confluence) – the wiki used as the content editor for the official Tapestry documentation</li><li><a href="https://cwiki.apache.org/confluence/display/TAPESTRY5">Tapestry Community Wiki (legacy)</a> – read-only copy of Tapestry's old Moin Moin wiki containing a lot of user-generated information on different Tapestry use cases.</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></p></div> Modified: websites/production/tapestry/content/error-page-recipe.html ============================================================================== --- websites/production/tapestry/content/error-page-recipe.html (original) +++ websites/production/tapestry/content/error-page-recipe.html Sat Jan 30 21:20:37 2021 @@ -142,7 +142,7 @@ <!-- /// Content Start --> <div id="content"> - <div id="ConfluenceContent"><h1 id="ErrorPageRecipe-ServingTapestryPagesasServletErrorPages">Serving Tapestry Pages as Servlet Error Pages</h1><p>Do you want to dress up your site and use a snazzy Tapestry page instead of the default 404 error page? Using modern servlet containers, this is a snap!</p><div class="aui-label" style="float:right; margin: 1em" title="Related Articles"> + <div id="ConfluenceContent"><p></p><h1 id="ErrorPageRecipe-ServingTapestryPagesasServletErrorPages">Serving Tapestry Pages as Servlet Error Pages</h1><p>Do you want to dress up your site and use a snazzy Tapestry page instead of the default 404 error page? Using modern servlet containers, this is a snap!</p><div class="aui-label" style="float:right; margin: 1em" title="Related Articles"> @@ -210,7 +210,8 @@ <filter> <filter-name>app</filter-name> - <filter-class>org.apache.tapestry5.TapestryFilter</filter-class> + <!-- org.apache.tapestry5.TapestryFilter if not Tapestry 5.7.0+ --> + <filter-class>org.apache.tapestry5.http.TapestryFilter</filter-class> </filter> <filter-mapping> <filter-name>app</filter-name> @@ -252,7 +253,8 @@ import org.apache.tapestry5.SymbolConsta import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.ioc.annotations.Symbol; -import org.apache.tapestry5.services.Request; +// org.apache.tapestry5.services.Request if not Tapestry 5.7.0+ +import org.apache.tapestry5.services.http.Request; public class Error404 { @@ -268,7 +270,7 @@ public class Error404 </code></pre> -</div></div><p>The end-result, in when <em>not</em> in production mode, looks like this:</p><p><span class="confluence-embedded-file-wrapper image-center-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border image-center" width="500" src="error-page-recipe.data/Resource_not_found_.png"></span></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>An issue with an application that has a root Index page is that any invalid path, which would normally generate a 404 error, is instead routed to the Index page (because the invalid path looks like page's activation context). See <a class="external-link" href="https://issues.apache.org/jira/browse/TAP5-2070">Issue TAP5-2070</a>.</p></div></div></div> +</div></div><p>The end-result, in when <em>not</em> in production mode, looks like this:</p><p></p><p><span class="confluence-embedded-file-wrapper image-center-wrapper confluence-embedded-manual-size"><img class="confluence-embedded-image confluence-content-image-border image-center" width="500" src="error-page-recipe.data/Resource_not_found_.png"></span></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>An issue with an application that has a root Index page is that any invalid path, which would normally generate a 404 error, is instead routed to the Index page (because the invalid path looks like page's activation context). See <a class="external-link" href="https://issues.apache.org/jira/browse/TAP5-2070">Issue TAP5-2070</a>.</p></div></div></div> </div> <!-- /// Content End --> </div> Modified: websites/production/tapestry/content/extending-the-if-component.html ============================================================================== --- websites/production/tapestry/content/extending-the-if-component.html (original) +++ websites/production/tapestry/content/extending-the-if-component.html Sat Jan 30 21:20:37 2021 @@ -142,7 +142,7 @@ <!-- /// Content Start --> <div id="content"> - <div id="ConfluenceContent"><h1 id="ExtendingtheIfComponent-ExtendingtheIfComponent">Extending the If Component</h1><p>The <a class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/If.html">If</a> component can be made very flexible; its main parameter, <code>test</code>, does not <em>have</em> to be bound to a boolean value, it merely has to be bound to a value that can be <a href="parameter-type-coercion.html">coerced</a> to boolean.</p><p>For example, you may be working on an application that does a lot of <a class="external-link" href="http://lucene.apache.org/java/docs/index.html">Lucene</a> searches, and you represent the results as a SearchResult object:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>SearchResult.java</b></div><div class="codeContent panelContent pdl"> + <div id="ConfluenceContent"><p></p><h1 id="ExtendingtheIfComponent-ExtendingtheIfComponent">Extending the If Component</h1><p>The <a class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/components/If.html">If</a> component can be made very flexible; its main parameter, <code>test</code>, does not <em>have</em> to be bound to a boolean value, it merely has to be bound to a value that can be <a href="parameter-type-coercion.html">coerced</a> to boolean.</p><p>For example, you may be working on an application that does a lot of <a class="external-link" href="http://lucene.apache.org/java/docs/index.html">Lucene</a> searches, and you represent the results as a SearchResult object:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>SearchResult.java</b></div><div class="codeContent panelContent pdl"> <pre><code class="language-java">public class SearchResult<T> { public final Class<T> itemType; public final List<T> items; @@ -173,7 +173,25 @@ </t:if> </t:if> </code></pre> -</div></div><p>The first test checks to see if <code>searchResult</code> is not null (null is treated as false). The second checks to see if the search result is empty.</p><p>What we'd like is for the test to look at the <code>searchResult</code> directly and treat an empty search result as false, and a non-empty search result as true. This is similar to what Tapestry already does for Collections.</p><p>This is just a matter of adding a <a href="parameter-type-coercion.html"> <code>Coercion</code></a><code>:</code></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>AppModule.java (partial)</b></div><div class="codeContent panelContent pdl"> +</div></div><p>The first test checks to see if <code>searchResult</code> is not null (null is treated as false). The second checks to see if the search result is empty.</p><p>What we'd like is for the test to look at the <code>searchResult</code> directly and treat an empty search result as false, and a non-empty search result as true. This is similar to what Tapestry already does for Collections.</p><p>This is just a matter of adding a <a href="parameter-type-coercion.html"> <code>Coercion</code></a><code>:</code></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>AppModule (partial, Tapestry 5.7.0+)</b></div><div class="codeContent panelContent pdl"> +<pre><code class="language-java">public static void contributeTypeCoercer(MappedConfiguration<CoercionTuple.Key, CoercionTuple> configuration) { + + add(configuration, SearchResult.class, Boolean.class, + new Coercion<SearchResult, Boolean>() { + public Boolean coerce(SearchResult input) { + return !input.isEmpty(); + } + }); +} + +private static <S, T> void add(MappedConfiguration<CoercionTuple.Key, CoercionTuple> configuration, + Class<S> sourceType, Class<T> targetType, Coercion<S, T> coercion) { + CoercionTuple<S, T> tuple = new CoercionTuple<S, T>(sourceType, + targetType, coercion); + + configuration.add(tuple.getKey(), tuple); +}</code></pre> +</div></div><p></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>AppModule.java (partial, pre-Tapestry 5.7.0)</b></div><div class="codeContent panelContent pdl"> <pre><code class="language-java">public static void contributeTypeCoercer(Configuration<CoercionTuple> configuration) { add(configuration, SearchResult.class, Boolean.class,