Author: buildbot
Date: Thu Feb 20 18:18:15 2025
New Revision: 1089092
Log:
Production update by buildbot for tapestry
Modified:
websites/production/tapestry/content/about.html
websites/production/tapestry/content/ajax-and-zones.html
websites/production/tapestry/content/ajax-components-faq.html
websites/production/tapestry/content/aliases.html
websites/production/tapestry/content/annotations.html
websites/production/tapestry/content/application-module-class-cheat-sheet.html
websites/production/tapestry/content/assets.html
websites/production/tapestry/content/banner.html
websites/production/tapestry/content/bannerv2.html
websites/production/tapestry/content/bean-validation.html
websites/production/tapestry/content/beaneditform-faq.html
websites/production/tapestry/content/beaneditform-guide.html
websites/production/tapestry/content/chainbuilder-service.html
websites/production/tapestry/content/class-reloading.html
websites/production/tapestry/content/client-side-javascript.html
websites/production/tapestry/content/coffeescript.html
websites/production/tapestry/content/committers.html
websites/production/tapestry/content/community.html
websites/production/tapestry/content/component-cheat-sheet.html
websites/production/tapestry/content/component-classes.html
websites/production/tapestry/content/component-events-faq.html
websites/production/tapestry/content/component-events.html
websites/production/tapestry/content/component-libraries.html
websites/production/tapestry/content/component-mixins.html
websites/production/tapestry/content/component-parameters.html
websites/production/tapestry/content/component-reference.html
websites/production/tapestry/content/component-rendering.html
websites/production/tapestry/content/component-templates.html
websites/production/tapestry/content/configuration.html
websites/production/tapestry/content/confluence-site-setup.html
websites/production/tapestry/content/contributors.html
websites/production/tapestry/content/cookbook.html
websites/production/tapestry/content/creating-the-skeleton-application.html
websites/production/tapestry/content/css.html
websites/production/tapestry/content/default-parameter.html
websites/production/tapestry/content/developer-bible.html
websites/production/tapestry/content/documentation.html
websites/production/tapestry/content/dom.html
websites/production/tapestry/content/downloadboxes-v2.html
websites/production/tapestry/content/enum-parameter-recipe.html
websites/production/tapestry/content/error-page-recipe.html
websites/production/tapestry/content/exploring-the-project.html
websites/production/tapestry/content/forms-and-form-components-faq.html
websites/production/tapestry/content/forms-and-validation.html
websites/production/tapestry/content/frequently-asked-questions.html
websites/production/tapestry/content/general-questions.html
websites/production/tapestry/content/getting-started.html
websites/production/tapestry/content/hibernate-core-conf.html
websites/production/tapestry/content/hibernate-core.html
websites/production/tapestry/content/hibernate-support-faq.html
websites/production/tapestry/content/hibernate-user-guide.html
websites/production/tapestry/content/hibernate.html
websites/production/tapestry/content/https.html
websites/production/tapestry/content/index.html
websites/production/tapestry/content/indexv2-old.html
websites/production/tapestry/content/indexv2.html
websites/production/tapestry/content/injection-faq.html
websites/production/tapestry/content/injection-in-detail.html
websites/production/tapestry/content/injection.html
websites/production/tapestry/content/integrating-with-jpa.html
websites/production/tapestry/content/integrating-with-spring-framework.html
websites/production/tapestry/content/integration-testing.html
websites/production/tapestry/content/integration-with-existing-applications.html
websites/production/tapestry/content/introduction.html
websites/production/tapestry/content/ioc-cookbook-patterns.html
websites/production/tapestry/content/ioc-cookbook.html
websites/production/tapestry/content/ioc.html
websites/production/tapestry/content/javascript-faq.html
websites/production/tapestry/content/javascript-modules.html
websites/production/tapestry/content/javascript-rewrite-in-54.html
websites/production/tapestry/content/key-features-v2.html
websites/production/tapestry/content/key-features.html
websites/production/tapestry/content/layout-component.html
websites/production/tapestry/content/legacy-javascript.html
websites/production/tapestry/content/limitations.html
websites/production/tapestry/content/link-components-faq.html
websites/production/tapestry/content/localization.html
websites/production/tapestry/content/logging-in-tapestry.html
websites/production/tapestry/content/logging.html
websites/production/tapestry/content/maven-support-faq.html
websites/production/tapestry/content/news.html
websites/production/tapestry/content/operation-tracker.html
websites/production/tapestry/content/overriding-exception-reporting.html
websites/production/tapestry/content/page-and-component-classes-faq.html
websites/production/tapestry/content/page-life-cycle.html
websites/production/tapestry/content/page-navigation.html
websites/production/tapestry/content/parameter-type-coercion.html
websites/production/tapestry/content/performance-and-clustering.html
websites/production/tapestry/content/persistent-page-data.html
websites/production/tapestry/content/pipelinebuilder-service.html
websites/production/tapestry/content/principles.html
websites/production/tapestry/content/property-expressions.html
websites/production/tapestry/content/release-notes-50.html
websites/production/tapestry/content/release-notes-51.html
websites/production/tapestry/content/release-notes-52.html
websites/production/tapestry/content/release-notes-53.html
websites/production/tapestry/content/release-notes-545.html
websites/production/tapestry/content/release-notes-550.html
websites/production/tapestry/content/release-notes-560.html
websites/production/tapestry/content/release-notes-561.html
websites/production/tapestry/content/release-notes-562.html
websites/production/tapestry/content/release-notes-563.html
websites/production/tapestry/content/release-notes-564.html
websites/production/tapestry/content/release-notes-570.html
websites/production/tapestry/content/release-notes-571.html
websites/production/tapestry/content/release-notes-572.html
websites/production/tapestry/content/release-notes-573.html
websites/production/tapestry/content/release-notes-580.html
websites/production/tapestry/content/release-notes-581.html
websites/production/tapestry/content/release-notes-582.html
websites/production/tapestry/content/release-notes-583.html
websites/production/tapestry/content/release-notes-584.html
websites/production/tapestry/content/release-notes-585.html
websites/production/tapestry/content/release-notes-586.html
websites/production/tapestry/content/release-notes-587.html
websites/production/tapestry/content/release-notes-590.html
websites/production/tapestry/content/release-process.html
websites/production/tapestry/content/release-upgrade-faq.html
websites/production/tapestry/content/request-processing-faq.html
websites/production/tapestry/content/request-processing.html
websites/production/tapestry/content/response-compression.html
websites/production/tapestry/content/rest-support-580.html
websites/production/tapestry/content/runtime-exceptions.html
websites/production/tapestry/content/sandbox.html
websites/production/tapestry/content/security-faq.html
websites/production/tapestry/content/security.html
websites/production/tapestry/content/service-implementation-reloading.html
websites/production/tapestry/content/session-storage.html
websites/production/tapestry/content/shadowbuilder-service.html
websites/production/tapestry/content/specific-errors-faq.html
websites/production/tapestry/content/strategybuilder-service.html
websites/production/tapestry/content/supporting-informal-parameters.html
websites/production/tapestry/content/switching-cases.html
websites/production/tapestry/content/symbols.html
websites/production/tapestry/content/tapestry-for-jsf-users.html
websites/production/tapestry/content/tapestry-inversion-of-control-faq.html
websites/production/tapestry/content/tapestry-ioc-configuration.html
websites/production/tapestry/content/tapestry-ioc-overview.html
websites/production/tapestry/content/tapestry-tutorial.html
websites/production/tapestry/content/templating-and-markup-faq.html
websites/production/tapestry/content/type-coercion.html
websites/production/tapestry/content/typescript.html
websites/production/tapestry/content/unit-testing-pages-or-components.html
websites/production/tapestry/content/using-jsr-330-standard-annotations.html
websites/production/tapestry/content/whatistapestry-v2.html
websites/production/tapestry/content/whatistapestry.html
Modified: websites/production/tapestry/content/about.html
==============================================================================
--- websites/production/tapestry/content/about.html (original)
+++ websites/production/tapestry/content/about.html Thu Feb 20 18:18:15 2025
@@ -102,7 +102,15 @@
<h2 id="About-Committers">Committers</h2>
-<div class="table-wrap"><table class="table table-bordered
table-responsive"><colgroup span="1"><col span="1"><col span="1"><col
span="1"><col span="1"><col span="1"></colgroup><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>ID</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>role</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>email address</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>website</p></th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Andreas Andreou</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>andyhot</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>PMC member</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><div class="content-wrapper">
+<div class="table-wrap"><table class="table table-bordered
table-responsive"><colgroup span="1"><col span="1"><col span="1"><col
span="1"><col span="1"><col span="1"></colgroup><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>ID</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>role</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>email address</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>website</p></th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Andreas Andreou</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>andyhot</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>PMC member</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><div class="content-wrapper">
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+
<div class="cfm-align-right" style="text-align:
right;">[email protected]</div>
</div></td><td colspan="1" rowspan="1" class="confluenceTd"><a
class="external-link" href="http://andyhot.gr"
rel="nofollow">http://andyhot.gr</a></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Ben Dotte</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>bdotte</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>committer</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><div class="content-wrapper">
<div class="cfm-align-right" style="text-align: right;">[email protected]</div>
Modified: websites/production/tapestry/content/ajax-and-zones.html
==============================================================================
--- websites/production/tapestry/content/ajax-and-zones.html (original)
+++ websites/production/tapestry/content/ajax-and-zones.html Thu Feb 20
18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><div class="aui-label"
style="float:right" title="Related Articles">
+ <div id="ConfluenceContent">
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
Modified: websites/production/tapestry/content/ajax-components-faq.html
==============================================================================
--- websites/production/tapestry/content/ajax-components-faq.html (original)
+++ websites/production/tapestry/content/ajax-components-faq.html Thu Feb 20
18:18:15 2025
@@ -91,11 +91,11 @@
<!-- /// Content Start -->
<div id="content">
<div id="ConfluenceContent"><h1
id="AjaxComponentsFAQ-AjaxComponents">Ajax Components</h1><p>Main article: <a
href="ajax-and-zones.html">Ajax and Zones</a></p><h2
id="AjaxComponentsFAQ-Contents">Contents</h2><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1739989062990 {padding: 0px;}
-div.rbtoc1739989062990 ul {margin-left: 0px;}
-div.rbtoc1739989062990 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1740075463803 {padding: 0px;}
+div.rbtoc1740075463803 ul {margin-left: 0px;}
+div.rbtoc1740075463803 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1739989062990">
+/*]]>*/</style></p><div class="toc-macro rbtoc1740075463803">
<ul class="toc-indentation"><li><a
href="#AjaxComponentsFAQ-DoIhavetospecifybothidandt:idforZonecomponents?">Do I
have to specify both id and t:id for Zone components?</a></li><li><a
href="#AjaxComponentsFAQ-HowdoIupdatethecontentofaZonefromaneventhandlermethod?">How
do I update the content of a Zone from an event handler method?</a></li><li><a
href="#AjaxComponentsFAQ-HowtoIupdatemultiplezonesinasingleeventhandler?">How
to I update multiple zones in a single event handler?</a></li><li><a
href="#AjaxComponentsFAQ-What'sthatweirdnumberinthemiddleoftheclientidsafteraZoneisupdated?">What's
that weird number in the middle of the client ids after a Zone is
updated?</a></li><li><a
href="#AjaxComponentsFAQ-WhydoIsometimesgettheexception"Therenderedcontentdidnotincludeanyelementsthatallowforthepositioningofthehiddenformfield'selement."whenrenderinganemptyZone?">Why
do I sometimes get the exception "The rendered content did not include any
elements that allow for the positioning of
the hidden form field's element." when rendering an empty Zone?</a></li></ul>
</div><h2
id="AjaxComponentsFAQ-DoIhavetospecifybothidandt:idforZonecomponents?">Do I
have to specify both <code>id</code> and <code>t:id</code> for Zone
components?</h2><p>The examples for the Zone component (in the Component
Reference) consistently specify both <code>id</code> and <code>t:id</code> and
this is probably a good idea.</p><p>Generally speaking, if you don't specify
the client-side id (the <code>id</code> attribute), it will be the same as the
Tapestry component id (<code>t:id</code>).</p><p>However, there are any number
of exceptions to this rule. The Zone may be rendering inside a Loop (in which
case, each rendering will have a unique client side id). The Zone may be
rendering as part of a partial page render, in which case, a random unique id
is inserted into the id. There are other examples where Tapestry component ids
in nested components may also clash.</p><p>The point is, to be sure, specify
the exact client id. This will be the value for the <code>zone</code> p
arameter of the triggering component (such as a Form, PageLink, ActionLink,
etc.).</p><h2
id="AjaxComponentsFAQ-HowdoIupdatethecontentofaZonefromaneventhandlermethod?">How
do I update the content of a Zone from an event handler method?</h2><p>When a
client-side link or form triggers an update, the return value from the event
handler method is used to construct a partial page response; this partial page
response includes markup content that is used to update the Zone's client-side
<code><div></code> element.</p><p>Where does that content come from? You
inject it into your page.</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeContent panelContent pdl">
<pre><code class="language-xml"><t:zone id="search" t:id="searchZone">
Modified: websites/production/tapestry/content/aliases.html
==============================================================================
--- websites/production/tapestry/content/aliases.html (original)
+++ websites/production/tapestry/content/aliases.html Thu Feb 20 18:18:15 2025
@@ -97,7 +97,15 @@
<span class="param-message">— Use ServiceOverrides instead. Aliases
will be removed starting in 5.3.</span>
-</div><div class="aui-label" style="float:right" title="Related Articles">
+</div>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
Modified: websites/production/tapestry/content/annotations.html
==============================================================================
--- websites/production/tapestry/content/annotations.html (original)
+++ websites/production/tapestry/content/annotations.html Thu Feb 20 18:18:15
2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><div class="aui-label"
style="float:right" title="Related Articles">
+ <div id="ConfluenceContent">
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
Modified:
websites/production/tapestry/content/application-module-class-cheat-sheet.html
==============================================================================
---
websites/production/tapestry/content/application-module-class-cheat-sheet.html
(original)
+++
websites/production/tapestry/content/application-module-class-cheat-sheet.html
Thu Feb 20 18:18:15 2025
@@ -91,11 +91,11 @@
<!-- /// Content Start -->
<div id="content">
<div id="ConfluenceContent"><p>The
<strong>Application Module</strong> class is a simple Java class used to
configure Tapestry. A system of annotations and naming conventions allows
Tapestry to determine what services are provided by the module to your
application. This is the place where you bind your custom implementation of
services, contribute to, decorate and override existing services.</p><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1739988866427 {padding: 0px;}
-div.rbtoc1739988866427 ul {margin-left: 0px;}
-div.rbtoc1739988866427 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1740075266628 {padding: 0px;}
+div.rbtoc1740075266628 ul {margin-left: 0px;}
+div.rbtoc1740075266628 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1739988866427">
+/*]]>*/</style></p><div class="toc-macro rbtoc1740075266628">
<ul class="toc-indentation"><li>Related Articles</li></ul>
<ul><li><a href="#ApplicationModuleClassCheatSheet-Namingconventions">Naming
conventions</a>
<ul class="toc-indentation"><li><a
href="#ApplicationModuleClassCheatSheet-Thebindmethod">The bind
method</a></li><li><a
href="#ApplicationModuleClassCheatSheet-Servicebuildermethods">Service builder
methods</a></li><li><a
href="#ApplicationModuleClassCheatSheet-Contributemethods">Contribute
methods</a>
Modified: websites/production/tapestry/content/assets.html
==============================================================================
--- websites/production/tapestry/content/assets.html (original)
+++ websites/production/tapestry/content/assets.html Thu Feb 20 18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><p>In Tapestry,
<strong>Assets</strong> are any kind of <em>static</em> content that may be
downloaded to a client web browser, such as images, style sheets and JavaScript
files.</p><div class="aui-label" style="float:right" title="Related Articles">
+ <div id="ConfluenceContent"><p>In Tapestry,
<strong>Assets</strong> are any kind of <em>static</em> content that may be
downloaded to a client web browser, such as images, style sheets and JavaScript
files.</p>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
Modified: websites/production/tapestry/content/banner.html
==============================================================================
--- websites/production/tapestry/content/banner.html (original)
+++ websites/production/tapestry/content/banner.html Thu Feb 20 18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><div class="row"
id="top"><div class="col-md-8 home-banner"><p><span
class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img
class="confluence-embedded-image" draggable="false" height="250"
src="banner.data/apache-tapestry-icontext-600.png"></span></p></div>
+ <div id="ConfluenceContent"><div class="row"
id="top">
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="col-md-8 home-banner"><p><span
class="confluence-embedded-file-wrapper confluence-embedded-manual-size"><img
class="confluence-embedded-image" draggable="false" height="250"
src="banner.data/apache-tapestry-icontext-600.png"></span></p></div>
<div class="col-md-4" style="padding: 0 2em 2em"><p>A component-oriented
framework for creating highly scalable web applications in Java.</p></div>
Modified: websites/production/tapestry/content/bannerv2.html
==============================================================================
--- websites/production/tapestry/content/bannerv2.html (original)
+++ websites/production/tapestry/content/bannerv2.html Thu Feb 20 18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><div class="row"
id="top"><div class="col-md-8"><h1 id="BannerV2-"><span
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image
confluence-external-resource" draggable="false"
src="http://tapestry.apache.org/images/tapestry.png"
data-image-src="http://tapestry.apache.org/images/tapestry.png"></span> </h1></div>
+ <div id="ConfluenceContent"><div class="row"
id="top">
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="col-md-8"><h1 id="BannerV2-"><span
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image
confluence-external-resource" draggable="false"
src="http://tapestry.apache.org/images/tapestry.png"
data-image-src="http://tapestry.apache.org/images/tapestry.png"></span> </h1></div>
<div class="col-md-4" style="padding: 0 2em 2em"><div><div class="aui-message
aui-message-error"><p class="title"><strong>Error rendering macro
'html'</strong></p><p>Notify your Confluence administrator that "HTML for
Confluence" requires a valid license. Reason: EXPIRED</p></div></div>
Modified: websites/production/tapestry/content/bean-validation.html
==============================================================================
--- websites/production/tapestry/content/bean-validation.html (original)
+++ websites/production/tapestry/content/bean-validation.html Thu Feb 20
18:18:15 2025
@@ -96,7 +96,15 @@
-</div><p><strong>Bean validation</strong> involves validating user input using
Tapestry's built-in support for the <a class="external-link"
href="http://jcp.org/en/jsr/detail?id=303" rel="nofollow">JSR 303 Bean
Validation API</a>.</p><div class="aui-label" style="float:right"
title="Related Articles">
+</div><p><strong>Bean validation</strong> involves validating user input using
Tapestry's built-in support for the <a class="external-link"
href="http://jcp.org/en/jsr/detail?id=303" rel="nofollow">JSR 303 Bean
Validation API</a>.</p>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
Modified: websites/production/tapestry/content/beaneditform-faq.html
==============================================================================
--- websites/production/tapestry/content/beaneditform-faq.html (original)
+++ websites/production/tapestry/content/beaneditform-faq.html Thu Feb 20
18:18:15 2025
@@ -91,11 +91,11 @@
<!-- /// Content Start -->
<div id="content">
<div id="ConfluenceContent"><h1
id="BeanEditFormFAQ-BeanEditForm">BeanEditForm</h1><p>Main Article: <a
href="beaneditform-guide.html">BeanEditForm Guide</a></p><h2
id="BeanEditFormFAQ-Contents">Contents</h2><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1739988875222 {padding: 0px;}
-div.rbtoc1739988875222 ul {margin-left: 0px;}
-div.rbtoc1739988875222 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1740075275287 {padding: 0px;}
+div.rbtoc1740075275287 ul {margin-left: 0px;}
+div.rbtoc1740075275287 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1739988875222">
+/*]]>*/</style></p><div class="toc-macro rbtoc1740075275287">
<ul class="toc-indentation"><li><a
href="#BeanEditFormFAQ-WhydoIgetexceptionsaboutinstantiatingabeanwhenusingBeanEditForm?">Why
do I get exceptions about instantiating a bean when using
BeanEditForm?</a></li><li><a
href="#BeanEditFormFAQ-What'sthedifferencebetweenBeanEditorandBeanEditForm?">What's
the difference between BeanEditor and BeanEditForm?</a></li><li><a
href="#BeanEditFormFAQ-HowdoIcustomizethelayoutoftheBeanEditForm?">How do I
customize the layout of the BeanEditForm?</a></li></ul>
</div><h2
id="BeanEditFormFAQ-WhydoIgetexceptionsaboutinstantiatingabeanwhenusingBeanEditForm?">Why
do I get exceptions about instantiating a bean when using
BeanEditForm?</h2><p>When you render a BeanEditForm, or when the rendered form
is submitted, Tapestry must instantiate an instance of the object to be edited.
This occurs when the BeanEditForm's <code>object</code> parameter is bound to
null: Tapestry instantiates an instance of the property type so that the
BeanEditForm has an object to read default values from, or to push submitted
values into.</p><p>By default, this uses the standard <a
href="injection-in-detail.html">injection mechanism</a>, which means that
Tapestry will identify the public constructor with the most parameters, and
attempt to find objects and other objects for each constructor
parameter.</p><p>There's two ways to fine tune this so you don't get
errors:</p><ul><li>Place an @<a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache
/tapestry5/ioc/annotations/Inject.html">Inject</a> annotation on the correct
constructor to use (often, the constructor with no parameters).</li></ul><div
class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
<pre><code class="language-java">public class MyBean {
Modified: websites/production/tapestry/content/beaneditform-guide.html
==============================================================================
--- websites/production/tapestry/content/beaneditform-guide.html (original)
+++ websites/production/tapestry/content/beaneditform-guide.html Thu Feb 20
18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div
id="ConfluenceContent"><p><strong>BeanEditForm</strong> is a powerful Tapestry
component capable of generating a complete create/edit user interface for a
typical JavaBean.</p><div style="float: right; max-width: 30%; margin:
1em"><div class="panel" style="border-color: #eee;border-width: 1px;"><div
class="panelHeader" style="border-bottom-width: 1px;border-bottom-color:
#eee;background-color: #eee;"><b>JumpStart Demos</b></div><div
class="panelContent">
+ <div
id="ConfluenceContent"><p><strong>BeanEditForm</strong> is a powerful Tapestry
component capable of generating a complete create/edit user interface for a
typical JavaBean.</p>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div style="float: right; max-width: 30%; margin: 1em"><div class="panel"
style="border-color: #eee;border-width: 1px;"><div class="panelHeader"
style="border-bottom-width: 1px;border-bottom-color: #eee;background-color:
#eee;"><b>JumpStart Demos</b></div><div class="panelContent">
<ul><li><p><a class="external-link"
href="http://jumpstart.doublenegative.com.au/jumpstart/examples/input/edit1/1"
rel="nofollow">Edit (Using BeanEditForm)</a></p></li><li><a
class="external-link"
href="http://jumpstart.doublenegative.com.au/jumpstart/examples/input/create1"
rel="nofollow">Create (Using BeanEditForm)</a></li><li><a class="external-link"
href="http://jumpstart.doublenegative.com.au/jumpstart/examples/input/morecontroledit1/1"
rel="nofollow">More Control Edit (Using BeanEditor)</a></li></ul>
</div></div></div>
Modified: websites/production/tapestry/content/chainbuilder-service.html
==============================================================================
--- websites/production/tapestry/content/chainbuilder-service.html (original)
+++ websites/production/tapestry/content/chainbuilder-service.html Thu Feb 20
18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><p>The
<strong>ChainBuilder Service</strong> is a built-in service used to implement
of one of the most useful of the <em>Gang Of Four</em> design patterns,
the <a class="external-link"
href="https://en.wikipedia.org/wiki/Chain-of-responsibility_pattern"
rel="nofollow">chain of responsibility</a>.</p><div class="aui-label"
style="float:right" title="Related Articles">
+ <div id="ConfluenceContent"><p>The
<strong>ChainBuilder Service</strong> is a built-in service used to implement
of one of the most useful of the <em>Gang Of Four</em> design patterns,
the <a class="external-link"
href="https://en.wikipedia.org/wiki/Chain-of-responsibility_pattern"
rel="nofollow">chain of responsibility</a>.</p>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
Modified: websites/production/tapestry/content/class-reloading.html
==============================================================================
--- websites/production/tapestry/content/class-reloading.html (original)
+++ websites/production/tapestry/content/class-reloading.html Thu Feb 20
18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><h1
id="ClassReloading-LiveClassandTemplateReloading">Live Class and Template
Reloading</h1><div class="aui-label" style="float:right" title="Related
Articles">
+ <div id="ConfluenceContent"><h1
id="ClassReloading-LiveClassandTemplateReloading">Live Class and Template
Reloading</h1>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
@@ -126,11 +134,11 @@
<p>One of the best features of Tapestry is automatic reloading of changed
classes and templates. <em>Page and component</em> classes will automatically
reload when changed. Likewise, changes to component templates and other related
resources will also be picked up immediately. In addition, starting in version
5.2, your service classes will also be reloaded automatically after changes (if
you're using <a href="ioc.html">Tapestry IoC</a>). Starting in version 5.8.3,
you enable multiple classloader mode, which allows smarter page class
invalidation.</p><div class="confluence-information-macro
confluence-information-macro-information"><p class="title
conf-macro-render">Not necessarily throwing away all cached page
instances</p><span class="aui-icon aui-icon-small aui-iconfont-info
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>Since Tapestry 5.8.3, Tapestry can
be run in multiple classloaders mode. When it's on, only the affected cached
page
instances are discarded and rebuilt instead of all of
them. </p></div></div><h2
id="ClassReloading-Contents">Contents</h2><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1739988883553 {padding: 0px;}
-div.rbtoc1739988883553 ul {margin-left: 0px;}
-div.rbtoc1739988883553 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1740075283532 {padding: 0px;}
+div.rbtoc1740075283532 ul {margin-left: 0px;}
+div.rbtoc1740075283532 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1739988883553">
+/*]]>*/</style></p><div class="toc-macro rbtoc1740075283532">
<ul class="toc-indentation"><li><a
href="#ClassReloading-TemplateReloading">Template Reloading</a></li><li><a
href="#ClassReloading-ClassReloading">Class Reloading</a></li><li><a
href="#ClassReloading-PackagesScanned">Packages Scanned</a></li><li><a
href="#ClassReloading-FileSystemOnly">File System Only</a></li><li><a
href="#ClassReloading-ClassLoaderIssues">Class Loader Issues</a></li><li><a
href="#ClassReloading-ClassCastExceptions">ClassCastExceptions</a></li><li><a
href="#ClassReloading-HandlingReloadsinyourCode">Handling Reloads in your
Code</a></li><li><a href="#ClassReloading-CheckingForUpdates">Checking For
Updates</a></li><li><a
href="#ClassReloading-TroubleshootingLiveClassReloading">Troubleshooting Live
Class Reloading</a>
<ul class="toc-indentation"><li><a href="#ClassReloading-QuickChecklist">Quick
Checklist</a></li><li><a
href="#ClassReloading-IfLiveClassReloadingdoesn'twork">If Live Class Reloading
doesn't work</a>
<ul class="toc-indentation"><li><a
href="#ClassReloading-ProductionMode">Production Mode</a></li><li><a
href="#ClassReloading-BuildPathIssues">Build Path Issues</a></li><li><a
href="#ClassReloading-BuildingAutomatically">Building
Automatically</a></li><li><a
href="#ClassReloading-TurnoffJVMhotcodeswapping&automaticrestarts">Turn off
JVM hot code swapping & automatic restarts</a></li></ul>
Modified: websites/production/tapestry/content/client-side-javascript.html
==============================================================================
--- websites/production/tapestry/content/client-side-javascript.html (original)
+++ websites/production/tapestry/content/client-side-javascript.html Thu Feb 20
18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><p>Perhaps nothing in
Tapestry has changed over the years so much as the way client-side JavaScript
is supported. From the get go, the goal was to make JavaScript a first-class
citizen in the Tapestry world, and make it easy to encapsulate JavaScript
within components.</p><div class="aui-label" style="float:right" title="Related
Articles">
+ <div id="ConfluenceContent"><p>Perhaps nothing in
Tapestry has changed over the years so much as the way client-side JavaScript
is supported. From the get go, the goal was to make JavaScript a first-class
citizen in the Tapestry world, and make it easy to encapsulate JavaScript
within components.</p>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
Modified: websites/production/tapestry/content/coffeescript.html
==============================================================================
--- websites/production/tapestry/content/coffeescript.html (original)
+++ websites/production/tapestry/content/coffeescript.html Thu Feb 20 18:18:15
2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div
id="ConfluenceContent"><p><strong>CoffeeScript</strong> (<a
class="external-link" href="http://coffeescript.org"
rel="nofollow">http://coffeescript.org</a>) is a language that compiles down to
JavaScript.</p><div class="aui-label" style="float:right" title="Related
Articles">
+ <div
id="ConfluenceContent"><p><strong>CoffeeScript</strong> (<a
class="external-link" href="http://coffeescript.org"
rel="nofollow">http://coffeescript.org</a>) is a language that compiles down to
JavaScript.</p>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
Modified: websites/production/tapestry/content/committers.html
==============================================================================
--- websites/production/tapestry/content/committers.html (original)
+++ websites/production/tapestry/content/committers.html Thu Feb 20 18:18:15
2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><div
class="table-wrap"><table class="table table-bordered
table-responsive"><colgroup span="1"><col span="1"><col span="1"><col
span="1"><col span="1"><col span="1"></colgroup><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>ID</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>role</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>email address</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>website</p></th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Andreas Andreou</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>andyhot</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>PMC member</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><div class="content-wrapper">
+ <div id="ConfluenceContent"><div
class="table-wrap"><table class="table table-bordered
table-responsive"><colgroup span="1"><col span="1"><col span="1"><col
span="1"><col span="1"><col span="1"></colgroup><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>ID</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>role</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>email address</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>website</p></th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Andreas Andreou</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>andyhot</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>PMC member</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><div class="content-wrapper">
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+
<div class="cfm-align-right" style="text-align:
right;">[email protected]</div>
</div></td><td colspan="1" rowspan="1" class="confluenceTd"><a
class="external-link" href="http://andyhot.gr"
rel="nofollow">http://andyhot.gr</a></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Ben Dotte</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>bdotte</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>committer</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><div class="content-wrapper">
<div class="cfm-align-right" style="text-align: right;">[email protected]</div>
Modified: websites/production/tapestry/content/community.html
==============================================================================
--- websites/production/tapestry/content/community.html (original)
+++ websites/production/tapestry/content/community.html Thu Feb 20 18:18:15 2025
@@ -91,11 +91,11 @@
<!-- /// Content Start -->
<div id="content">
<div id="ConfluenceContent"><p>Tapestry has an
active community of users and developers. This is an overview of how to
participate, along with a list of some of the great contributions of the
community members.</p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1739988908819 {padding: 0px;}
-div.rbtoc1739988908819 ul {margin-left: 0px;}
-div.rbtoc1739988908819 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1740075308988 {padding: 0px;}
+div.rbtoc1740075308988 ul {margin-left: 0px;}
+div.rbtoc1740075308988 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1739988908819">
+/*]]>*/</style></p><div class="toc-macro rbtoc1740075308988">
<ul class="toc-indentation"><li><a href="#Community-GettingInvolved">Getting
Involved</a>
<ul class="toc-indentation"><li><a
href="#Community-ReportingProblems/GettingSupport">Reporting Problems / Getting
Support</a></li><li><a
href="#Community-ContributingtranslationsforTapestrybuilt-inmessages">Contributing
translations for Tapestry built-in messages</a></li><li><a
href="#Community-SourceCodeAccess">Source Code Access</a></li><li><a
href="#Community-BecomingaContributor">Becoming a Contributor</a></li><li><a
href="#Community-BecomingaCommitter">Becoming a Committer</a></li></ul>
</li><li><a href="#Community-CommunityContributions">Community
Contributions</a>
Modified: websites/production/tapestry/content/component-cheat-sheet.html
==============================================================================
--- websites/production/tapestry/content/component-cheat-sheet.html (original)
+++ websites/production/tapestry/content/component-cheat-sheet.html Thu Feb 20
18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><p>This is a summary
of the more common annotations and methods you can add to Tapestry pages and
component classes.</p><div class="aui-label" style="float:right" title="Related
Articles">
+ <div id="ConfluenceContent"><p>This is a summary
of the more common annotations and methods you can add to Tapestry pages and
component classes.</p>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
Modified: websites/production/tapestry/content/component-classes.html
==============================================================================
--- websites/production/tapestry/content/component-classes.html (original)
+++ websites/production/tapestry/content/component-classes.html Thu Feb 20
18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><p>A <strong>component
class</strong> is the class associated with a page, component or mixin in
your Tapestry web application. Classes for pages, components and mixins are all
created in an identical way. They are pure POJOs (Plain Old Java Objects),
typically with annotations and conventionally named methods. They are not
<em>abstract</em>, nor do they need to extend base classes or implement
interfaces.</p><div class="aui-label" style="float:right" title="Related
Articles">
+ <div id="ConfluenceContent"><p>A <strong>component
class</strong> is the class associated with a page, component or mixin in
your Tapestry web application. Classes for pages, components and mixins are all
created in an identical way. They are pure POJOs (Plain Old Java Objects),
typically with annotations and conventionally named methods. They are not
<em>abstract</em>, nor do they need to extend base classes or implement
interfaces.</p>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
Modified: websites/production/tapestry/content/component-events-faq.html
==============================================================================
--- websites/production/tapestry/content/component-events-faq.html (original)
+++ websites/production/tapestry/content/component-events-faq.html Thu Feb 20
18:18:15 2025
@@ -91,11 +91,11 @@
<!-- /// Content Start -->
<div id="content">
<div id="ConfluenceContent"><h1
id="ComponentEventsFAQ-ComponentEvents">Component Events</h1><p>Main Article:
<a href="component-events.html">Component Events</a></p><h2
id="ComponentEventsFAQ-Contents">Contents</h2><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1739989007279 {padding: 0px;}
-div.rbtoc1739989007279 ul {margin-left: 0px;}
-div.rbtoc1739989007279 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1740075407927 {padding: 0px;}
+div.rbtoc1740075407927 ul {margin-left: 0px;}
+div.rbtoc1740075407927 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1739989007279">
+/*]]>*/</style></p><div class="toc-macro rbtoc1740075407927">
<ul class="toc-indentation"><li><a
href="#ComponentEventsFAQ-WhydoesTapestrysendaredirectafteraformissubmitted?">Why
does Tapestry send a redirect after a form is submitted?</a></li><li><a
href="#ComponentEventsFAQ-IspecifiedazoneinmyActionLink/EventLink,sowhydoesn'tmyeventfireviaajax(request.isXHR()isfalse)?">I
specified a zone in my ActionLink/EventLink, so why doesn't my event fire via
ajax (request.isXHR() is false)?</a></li></ul>
</div><h2
id="ComponentEventsFAQ-WhydoesTapestrysendaredirectafteraformissubmitted?">Why
does Tapestry send a redirect after a form is submitted?</h2><p>This is an
extension of the <a class="external-link"
href="http://en.wikipedia.org/wiki/Post/Redirect/Get"
rel="nofollow">Post/Redirect/Get</a> approach. It ensures that after an
operation that updates server-side state, such as a form submission, if the
user resubmits the resulting page, the operation is <strong>not</strong>
performed a second time; instead just the results of the operation, reflecting
the changed server-side state, is re-rendered.</p><p>This has the unwanted
requirement that any data needed to render the response must persist between
the event request (the form submission) and the render request; this often
means that fields must be annotated with @<a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Persist.html">Persist</a>.
Modified: websites/production/tapestry/content/component-events.html
==============================================================================
--- websites/production/tapestry/content/component-events.html (original)
+++ websites/production/tapestry/content/component-events.html Thu Feb 20
18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><p><strong>Component
events</strong> are Tapestry's way of conveying a user's interactions with the
web page, such as clicking links and submitting forms, to designated methods in
your page and component classes. When a component event is triggered, Tapestry
calls the event handler method you've provided, if any, in the containing
component's class.</p><div class="aui-label" style="float:right; max-width:
30%; margin: 1em" title="Related Articles">
+ <div id="ConfluenceContent"><p><strong>Component
events</strong> are Tapestry's way of conveying a user's interactions with the
web page, such as clicking links and submitting forms, to designated methods in
your page and component classes. When a component event is triggered, Tapestry
calls the event handler method you've provided, if any, in the containing
component's class.</p>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right; max-width: 30%; margin: 1em"
title="Related Articles">
Modified: websites/production/tapestry/content/component-libraries.html
==============================================================================
--- websites/production/tapestry/content/component-libraries.html (original)
+++ websites/production/tapestry/content/component-libraries.html Thu Feb 20
18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><div
class="confluence-information-macro confluence-information-macro-warning"><span
class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>This page has not yet been fully
updated for Tapestry 5.4. Things are different and simpler in 5.4 than in
previous releases.</p></div></div><h1
id="ComponentLibraries-CreatingComponentLibraries">Creating Component
Libraries</h1><p>Nearly every Tapestry application includes a least a couple of
custom components, specific to the application. What's exciting about Tapestry
is how easy it is to package components for reuse across many applications ...
and the fact that applications using a component library need no special
configuration.</p><div class="aui-label" style="float:right" title="Related
Articles">
+ <div id="ConfluenceContent"><div
class="confluence-information-macro confluence-information-macro-warning"><span
class="aui-icon aui-icon-small aui-iconfont-error
confluence-information-macro-icon"></span><div
class="confluence-information-macro-body"><p>This page has not yet been fully
updated for Tapestry 5.4. Things are different and simpler in 5.4 than in
previous releases.</p></div></div><h1
id="ComponentLibraries-CreatingComponentLibraries">Creating Component
Libraries</h1><p>Nearly every Tapestry application includes a least a couple of
custom components, specific to the application. What's exciting about Tapestry
is how easy it is to package components for reuse across many applications ...
and the fact that applications using a component library need no special
configuration.</p>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
Modified: websites/production/tapestry/content/component-mixins.html
==============================================================================
--- websites/production/tapestry/content/component-mixins.html (original)
+++ websites/production/tapestry/content/component-mixins.html Thu Feb 20
18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><p>A <strong>Component
Mixin</strong> is a way to supplement an existing Tapestry component with
additional behavior.</p><div class="aui-label" style="float:right"
title="Related Articles">
+ <div id="ConfluenceContent"><p>A <strong>Component
Mixin</strong> is a way to supplement an existing Tapestry component with
additional behavior.</p>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
Modified: websites/production/tapestry/content/component-parameters.html
==============================================================================
--- websites/production/tapestry/content/component-parameters.html (original)
+++ websites/production/tapestry/content/component-parameters.html Thu Feb 20
18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><p><strong>Component
parameters</strong> are the primary means for a component instance and its
container to communicate with each other. Parameters are used to
<em>configure</em> component instances.</p><div class="aui-label"
style="float:right; margin: 1em" title="Related Articles">
+ <div id="ConfluenceContent"><p><strong>Component
parameters</strong> are the primary means for a component instance and its
container to communicate with each other. Parameters are used to
<em>configure</em> component instances.</p>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right; margin: 1em" title="Related
Articles">
@@ -195,11 +203,11 @@
</div></div><p>A component may have any number of parameters. Each parameter
has a specific name, a specific Java type (which may be a primitive value), and
may be <em>optional</em> or <em>required</em>.</p><p>Within a component class,
parameters are declared by using the @<a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Parameter.html">Parameter</a>
annotation on a private field, as we'll see below.</p><p><span
class="confluence-anchor-link"
id="ComponentParameters-bindingparameters"></span></p><h1
id="ComponentParameters-ParameterBindings">Parameter Bindings</h1><p>In
Tapestry, a parameter is not a slot into which data is pushed: it is a
<em>connection</em> between a field of the component (marked with the
@Parameter annotation) and a property or resource of the component's container.
(Components can be nested, so the container can be either the page or another
component.)</p><div class="navmenu" style="float:right; backgro
und:white; margin:3px; padding:3px">
<div class="panel" style="border-width: 1px;"><div class="panelHeader"
style="border-bottom-width: 1px;"><b>Contents</b></div><div
class="panelContent">
<style type="text/css">/*<![CDATA[*/
-div.rbtoc1739988836972 {padding: 0px;}
-div.rbtoc1739988836972 ul {margin-left: 0px;}
-div.rbtoc1739988836972 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1740075236930 {padding: 0px;}
+div.rbtoc1740075236930 ul {margin-left: 0px;}
+div.rbtoc1740075236930 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1739988836972">
+/*]]>*/</style><div class="toc-macro rbtoc1740075236930">
<ul class="toc-indentation"><li><a
href="#ComponentParameters-ParameterBindings">Parameter Bindings</a></li><li><a
href="#ComponentParameters-BindingExpressions">Binding
Expressions</a></li><li><a
href="#ComponentParameters-@Parameterannotation">@Parameter
annotation</a></li><li><a
href="#ComponentParameters-Don'tusethe${...}syntax!">Don't use the ${...}
syntax!</a></li><li><a href="#ComponentParameters-InformalParameters">Informal
Parameters</a></li><li><a
href="#ComponentParameters-ParametersAreBi-Directional">Parameters Are
Bi-Directional</a></li><li><a
href="#ComponentParameters-InheritedParameterBindings">Inherited Parameter
Bindings</a></li><li><a
href="#ComponentParameters-ComputedParameterBindingDefaults">Computed Parameter
Binding Defaults</a></li><li><a
href="#ComponentParameters-UnboundParameters">Unbound Parameters</a></li><li><a
href="#ComponentParameters-ParameterTypeCoercion">Parameter Type
Coercion</a></li><li><a href="#ComponentParameters-ParameterNames">Parameter N
ames</a></li><li><a href="#ComponentParameters-DeterminingifBound">Determining
if Bound</a></li><li><a
href="#ComponentParameters-PublishingParameters">Publishing
Parameters</a></li></ul>
</div>
</div></div></div> <p>The connection between a component and a property
(or resource) of its container is called a <em>binding</em>. The binding is
two-way: the component can read the bound property by reading its parameter
field. Likewise, a component that updates its parameter field will update the
bound property.</p><p>This is important in a lot of cases; for example a
TextField component can read <em>and update</em> the property bound to its
value parameter. It reads the value when rendering, but updates the value when
the form is submitted.</p><p>The component listed below is a looping component;
it renders its body a number of times, defined by its <code>start</code> and
<code>end</code> parameters (which set the boundaries of the loop). The
component can update a <code>result</code> parameter bound to a property of its
container; it will automatically count up or down depending on whether
<code>start</code> or <code>end</code> is larger.</p><div class="code panel
pdl" st
yle="border-width: 1px;"><div class="codeContent panelContent pdl">
Modified: websites/production/tapestry/content/component-reference.html
==============================================================================
--- websites/production/tapestry/content/component-reference.html (original)
+++ websites/production/tapestry/content/component-reference.html Thu Feb 20
18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><p>Tapestry includes
more than 65 built-in components and mixins. In addition, there are hundreds of
Tapestry components freely available from others. Of course, Tapestry makes it
<a href="component-classes.html">trivially easy</a> to create your own custom
components, so if you don't see what you need, just develop them
yourself.</p><div class="aui-label" style="float:right" title="Related
Articles">
+ <div id="ConfluenceContent"><p>Tapestry includes
more than 65 built-in components and mixins. In addition, there are hundreds of
Tapestry components freely available from others. Of course, Tapestry makes it
<a href="component-classes.html">trivially easy</a> to create your own custom
components, so if you don't see what you need, just develop them yourself.</p>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
@@ -135,11 +143,11 @@
<p></p><p><strong>Contents</strong></p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1739988885472 {padding: 0px;}
-div.rbtoc1739988885472 ul {margin-left: 0px;}
-div.rbtoc1739988885472 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1740075285447 {padding: 0px;}
+div.rbtoc1740075285447 ul {margin-left: 0px;}
+div.rbtoc1740075285447 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1739988885472">
+/*]]>*/</style></p><div class="toc-macro rbtoc1740075285447">
<ul class="toc-indentation"><li><a
href="#ComponentReference-Tapestry-providedComponents">Tapestry-provided
Components</a>
<ul class="toc-indentation"><li><a
href="#ComponentReference-AJAX-specificComponents">AJAX-specific
Components</a></li><li><a
href="#ComponentReference-BeanDisplaying&Editing">Bean Displaying &
Editing</a></li><li><a
href="#ComponentReference-ConditionalandLoopingComponents">Conditional and
Looping Components</a></li><li><a
href="#ComponentReference-FormComponents">Form Components</a></li><li><a
href="#ComponentReference-Grids,TablesandTrees">Grids, Tables and
Trees</a></li><li><a href="#ComponentReference-LinksandButtons">Links and
Buttons</a></li><li><a href="#ComponentReference-OutputandMessages">Output and
Messages</a></li><li><a
href="#ComponentReference-Miscellaneous">Miscellaneous</a></li></ul>
</li><li><a href="#ComponentReference-TapestryMixins">Tapestry
Mixins</a></li><li><a href="#ComponentReference-TapestryPages">Tapestry
Pages</a></li><li><a href="#ComponentReference-BaseComponents">Base
Components</a></li><li><a
href="#ComponentReference-OtherComponentLibraries">Other Component
Libraries</a></li></ul>
Modified: websites/production/tapestry/content/component-rendering.html
==============================================================================
--- websites/production/tapestry/content/component-rendering.html (original)
+++ websites/production/tapestry/content/component-rendering.html Thu Feb 20
18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><p><strong>Rendering
of components</strong> in Tapestry 5 is based on a <em>state machine</em> and a
<em>queue</em> (instead of the tail recursion used in Tapestry 4). This breaks
the rendering process up into tiny pieces that can easily be implemented or
overridden. Don't worry, in practice, writing components requires a
breathtakingly small amount of code.</p><div class="aui-label"
style="float:right" title="Related Articles">
+ <div id="ConfluenceContent"><p><strong>Rendering
of components</strong> in Tapestry 5 is based on a <em>state machine</em> and a
<em>queue</em> (instead of the tail recursion used in Tapestry 4). This breaks
the rendering process up into tiny pieces that can easily be implemented or
overridden. Don't worry, in practice, writing components requires a
breathtakingly small amount of code.</p>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
Modified: websites/production/tapestry/content/component-templates.html
==============================================================================
--- websites/production/tapestry/content/component-templates.html (original)
+++ websites/production/tapestry/content/component-templates.html Thu Feb 20
18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><div class="aui-label"
style="float:right; margin: 1em" title="Related Articles">
+ <div id="ConfluenceContent">
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right; margin: 1em" title="Related
Articles">
Modified: websites/production/tapestry/content/configuration.html
==============================================================================
--- websites/production/tapestry/content/configuration.html (original)
+++ websites/production/tapestry/content/configuration.html Thu Feb 20 18:18:15
2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><div class="aui-label"
style="float:right" title="Related Articles">
+ <div id="ConfluenceContent">
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
@@ -162,11 +170,11 @@
<h1 id="Configuration-ConfiguringTapestry">Configuring Tapestry</h1><p>This
page discusses all the ways in which Tapestry can be configured. Tapestry
applications are configured almost entirely using Java, with very little XML at
all.</p><p><strong>Contents</strong></p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1739988799721 {padding: 0px;}
-div.rbtoc1739988799721 ul {margin-left: 0px;}
-div.rbtoc1739988799721 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1740075199863 {padding: 0px;}
+div.rbtoc1740075199863 ul {margin-left: 0px;}
+div.rbtoc1740075199863 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1739988799721">
+/*]]>*/</style></p><div class="toc-macro rbtoc1740075199863">
<ul class="toc-indentation"><li><a
href="#Configuration-XMLconfiguration(web.xml)">XML configuration
(web.xml)</a></li><li><a
href="#Configuration-YourApplication'sModuleClass">Your Application's Module
Class</a></li><li><a
href="#Configuration-ConfigurationSymbolNames">Configuration Symbol
Names</a></li><li><a
href="#Configuration-SettingComponentParameterDefaults">Setting Component
Parameter Defaults</a></li><li><a
href="#Configuration-ConfiguringIgnoredPaths">Configuring Ignored
Paths</a></li><li><a
href="#Configuration-ConfiguringContentTypeMapping">Configuring Content Type
Mapping</a></li><li><a href="#Configuration-SettingExecutionModes">Setting
Execution Modes</a></li><li><a
href="#Configuration-SegregatingApplicationsIntoFolders">Segregating
Applications Into Folders</a></li></ul>
</div><h2 id="Configuration-XMLconfiguration(web.xml)">XML configuration
(web.xml)</h2><p>Tapestry runs on top of the standard Java Servlet API. To the
servlet container, such as Tomcat, Tapestry appears as a <em>servlet
filter</em>. This gives Tapestry great flexibility in matching URLs without
requiring lots of XML configuration.</p><p>Although most configuration is done
with Java, a small but necessary amount of configuration occurs inside the
servlet deployment descriptor, WEB-INF/web.xml. Most of the configuration is
boilerplate, nearly the same for all applications.</p><div class="code panel
pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>web.xml (partial)</b></div><div
class="codeContent panelContent pdl">
<pre><code class="language-xml"><!DOCTYPE web-app
Modified: websites/production/tapestry/content/confluence-site-setup.html
==============================================================================
--- websites/production/tapestry/content/confluence-site-setup.html (original)
+++ websites/production/tapestry/content/confluence-site-setup.html Thu Feb 20
18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><p>This document
describes our web site setup: what is where and how it works.</p><div
class="aui-label" style="float:right" title="Related Articles">
+ <div id="ConfluenceContent"><p>This document
describes our web site setup: what is where and how it works.</p>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+<div class="aui-label" style="float:right" title="Related Articles">
Modified: websites/production/tapestry/content/contributors.html
==============================================================================
--- websites/production/tapestry/content/contributors.html (original)
+++ websites/production/tapestry/content/contributors.html Thu Feb 20 18:18:15
2025
@@ -92,7 +92,15 @@
<div id="content">
<div id="ConfluenceContent"><h2
id="Contributors-Committers">Committers</h2>
-<div class="table-wrap"><table class="table table-bordered
table-responsive"><colgroup span="1"><col span="1"><col span="1"><col
span="1"><col span="1"><col span="1"></colgroup><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>ID</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>role</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>email address</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>website</p></th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Andreas Andreou</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>andyhot</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>PMC member</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><div class="content-wrapper">
+<div class="table-wrap"><table class="table table-bordered
table-responsive"><colgroup span="1"><col span="1"><col span="1"><col
span="1"><col span="1"><col span="1"></colgroup><tbody><tr><th colspan="1"
rowspan="1" class="confluenceTh"><p>Name</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>ID</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>role</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>email address</p></th><th colspan="1" rowspan="1"
class="confluenceTh"><p>website</p></th></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Andreas Andreou</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>andyhot</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>PMC member</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><div class="content-wrapper">
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+
<div class="cfm-align-right" style="text-align:
right;">[email protected]</div>
</div></td><td colspan="1" rowspan="1" class="confluenceTd"><a
class="external-link" href="http://andyhot.gr"
rel="nofollow">http://andyhot.gr</a></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p>Ben Dotte</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>bdotte</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>committer</p></td><td colspan="1" rowspan="1"
class="confluenceTd"><div class="content-wrapper">
<div class="cfm-align-right" style="text-align: right;">[email protected]</div>
Modified: websites/production/tapestry/content/cookbook.html
==============================================================================
--- websites/production/tapestry/content/cookbook.html (original)
+++ websites/production/tapestry/content/cookbook.html Thu Feb 20 18:18:15 2025
@@ -90,7 +90,15 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><p>This is the
<strong>Tapestry Cookbook</strong>, a collection of mini-tutorials for commonly
occurring patterns in Tapestry.</p><h1 id="Cookbook-Contents">Contents</h1><ul
class="childpages-macro"><li><a href="default-parameter.html">Default
Parameter</a> — <span class="smalltext">Avoiding repetition when using
component parameters by adding autoconnect=true</span></li><li><a
href="overriding-exception-reporting.html">Overriding Exception Reporting</a>
— <span class="smalltext">Customizing Tapestry's default exception
reporting page</span></li><li><a href="error-page-recipe.html">Error Page
Recipe</a> — <span class="smalltext">Serving up a Tapestry page as your
site's custom 404 response page</span></li><li><a
href="supporting-informal-parameters.html">Supporting Informal Parameters</a>
— <span class="smalltext">How to make your custom component accept and
pass on all unknown parameters to the underlyi
ng HTML element</span></li><li><a href="component-libraries.html">Component
Libraries</a> — <span class="smalltext">How to create a library of your
custom components</span></li><li><a href="switching-cases.html">Switching
Cases</a> — <span class="smalltext">Performing the equivalent of a
"switch" statement in your component template using blocks and a
delegate</span></li><li><a href="enum-parameter-recipe.html">Enum Parameter
Recipe</a> — <span class="smalltext">Using an Enum as a component
parameter using coercion</span></li><li><a
href="extending-the-if-component.html">Extending the If Component</a> —
<span class="smalltext">Adding a type coercion to enable the If component to
test for anything</span></li><li><a
href="meta-programming-page-content.html">Meta-Programming Page Content</a>
— <span class="smalltext">Adding an Annotation and a Filter to customize
Tapestry's page rendering</span></li><li><a
href="using-select-with-a-list.html">Using Select
With a List</a> — <span class="smalltext">Using SelectModel,
SelectModelFactory and ValueEncoder for Select menus populated from a
database</span></li><li><a href="ioc-cookbook.html">IoC cookbook</a> —
<span class="smalltext">A tutorial for using Tapestry's Inversion of Control
container</span><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>
— <span class="smalltext">Running a Tapestry app within a GAE server
environment</span></li></ul></div>
+ <div id="ConfluenceContent"><p>This is the
<strong>Tapestry Cookbook</strong>, a collection of mini-tutorials for commonly
occurring patterns in Tapestry.</p><h1 id="Cookbook-Contents">Contents</h1><ul
class="childpages-macro"><li><a href="default-parameter.html">Default
Parameter</a> — <span class="smalltext">Avoiding repetition when using
component parameters by adding autoconnect=true</span></li><li><a
href="overriding-exception-reporting.html">Overriding Exception Reporting</a>
— <span class="smalltext">Customizing Tapestry's default exception
reporting page</span></li><li><a href="error-page-recipe.html">Error Page
Recipe</a> — <span class="smalltext">Serving up a Tapestry page as your
site's custom 404 response page</span></li><li><a
href="supporting-informal-parameters.html">Supporting Informal Parameters</a>
— <span class="smalltext">How to make your custom component accept and
pass on all unknown parameters to the underlyi
ng HTML element</span></li><li><a href="component-libraries.html">Component
Libraries</a> — <span class="smalltext">How to create a library of your
custom components</span></li><li><a href="switching-cases.html">Switching
Cases</a> — <span class="smalltext">Performing the equivalent of a
"switch" statement in your component template using blocks and a
delegate</span></li><li><a href="enum-parameter-recipe.html">Enum Parameter
Recipe</a> — <span class="smalltext">Using an Enum as a component
parameter using coercion</span></li><li><a
href="extending-the-if-component.html">Extending the If Component</a> —
<span class="smalltext">Adding a type coercion to enable the If component to
test for anything</span></li><li><a
href="meta-programming-page-content.html">Meta-Programming Page Content</a>
— <span class="smalltext">Adding an Annotation and a Filter to customize
Tapestry's page rendering</span></li><li><a
href="using-select-with-a-list.html">Using Select
With a List</a> — <span class="smalltext">Using SelectModel,
SelectModelFactory and ValueEncoder for Select menus populated from a
database</span></li><li><a href="ioc-cookbook.html">IoC cookbook</a> —
<span class="smalltext">A tutorial for using Tapestry's Inversion of Control
container</span><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>
— <span class="smalltext">Running a Tapestry app within a GAE server
environment</span></li></ul>
+
+<div class="adaptavist-psl-unlicensed-banner adaptavist-psl-warning
adaptavist-psl-js">
+ <b>This page contains macros or features from a plugin which requires a
valid license.</b>
+
+ <p>You will need to contact your administrator.</p>
+
+</div>
+</div>
</div>
<!-- /// Content End -->
</div>