Modified: websites/production/tapestry/content/forms.html
==============================================================================
--- websites/production/tapestry/content/forms.html (original)
+++ websites/production/tapestry/content/forms.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/frequently-asked-questions.html
==============================================================================
--- websites/production/tapestry/content/frequently-asked-questions.html
(original)
+++ websites/production/tapestry/content/frequently-asked-questions.html Thu
Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/functional-flows.html
==============================================================================
--- websites/production/tapestry/content/functional-flows.html (original)
+++ websites/production/tapestry/content/functional-flows.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/general-questions.html
==============================================================================
--- websites/production/tapestry/content/general-questions.html (original)
+++ websites/production/tapestry/content/general-questions.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -143,11 +144,11 @@
<!-- /// Content Start -->
<div id="content">
<div id="ConfluenceContent"><h1
id="GeneralQuestions-GeneralQuestions">General Questions</h1><h2
id="GeneralQuestions-Contents">Contents</h2><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1669470784623 {padding: 0px;}
-div.rbtoc1669470784623 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1669470784623 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1712222000619 {padding: 0px;}
+div.rbtoc1712222000619 ul {margin-left: 0px;}
+div.rbtoc1712222000619 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1669470784623">
+/*]]>*/</style></p><div class="toc-macro rbtoc1712222000619">
<ul class="toc-indentation"><li><a
href="#GeneralQuestions-HowdoIgetstartedwithTapestry?">How do I get started
with Tapestry?</a></li><li><a
href="#GeneralQuestions-WhydoesTapestryusePrototype(inversionsbefore5.4)?WhynotinsertfavoriteJavaScriptlibraryhere?">Why
does Tapestry use Prototype (in versions before 5.4)? Why not insert favorite
JavaScript library here?</a></li><li><a
href="#GeneralQuestions-WhydoesTapestryhaveitsownInversionofControlContainer?WhynotSpringorGuice?">Why
does Tapestry have its own Inversion of Control Container? Why not Spring or
Guice?</a></li><li><a
href="#GeneralQuestions-HowdoIupgradefromTapestry4toTapestry5?">How do I
upgrade from Tapestry 4 to Tapestry 5?</a></li><li><a
href="#GeneralQuestions-HowdoIupgradefromoneversionofTapestry5toanother?">How
do I upgrade from one version of Tapestry 5 to another?</a></li><li><a
href="#GeneralQuestions-WhyaretherebothRequestandHttpServletRequest?">Why are
there both Request and HttpServletRequest?</a></li></ul>
</div><h2 id="GeneralQuestions-HowdoIgetstartedwithTapestry?">How do I get
started with Tapestry?</h2><p class="confluence-link">The easiest way to get
started is to use <a class="external-link"
href="http://maven.apache.org">Apache Maven</a> to create your initial project;
Maven can use an <em>archetype</em> (a kind of project template) to create a
bare-bones Tapestry application for you. See the <a
href="getting-started.html">Getting Started</a> page for more
details.</p><p>Even without Maven, Tapestry is quite easy to set up. You just
need to <a href="general-questions.html">download</a> the binaries and setup
your build to place them inside your WAR's WEB-INF/lib folder. The rest is just
some one-time <a href="configuration.html">configuration of the web.xml
deployment descriptor</a>.</p><h2
id="GeneralQuestions-WhydoesTapestryusePrototype(inversionsbefore5.4)?WhynotinsertfavoriteJavaScriptlibraryhere?">Why
does Tapestry use Prototype (in versions before 5.4)? Why not <em>i
nsert favorite JavaScript library here</em>?</h2><p>An important goal for
Tapestry is seamless DHTML and Ajax integration. To serve that goal, it was
important that the built in components be capable of Ajax operations, such as
dynamically re-rendering parts of the page. Because of that, it made sense to
bundle a well-known JavaScript library as part of Tapestry.</p><p>At the time
(this would be 2006-ish), Prototype and Scriptaculous were well known and well
documented, whereas jQuery was just getting started.</p><p>The intent has
always been to make this aspect of Tapestry pluggable. Tapestry 5.4 includes
the option of either Prototype or jQuery, and future versions of Tapestry will
likely remove Prototype as an option..</p><h2
id="GeneralQuestions-WhydoesTapestryhaveitsownInversionofControlContainer?WhynotSpringorGuice?">Why
does Tapestry have its own Inversion of Control Container? Why not Spring or
Guice?</h2><p>An Inversion of Control Container is <em>the</em> key piece of
Tape
stry's infrastructure. It is absolutely necessary to create software as
robust, performant and extensible as Tapestry.</p><p>Tapestry IoC includes a
number of features that distinguish itself from other
containers:</p><ul><li>Configured in code, not XML</li><li>Built-in extension
mechanism for services: configurations and contributions</li><li>Built-in
aspect oriented programming model (service decorations and advice)</li><li>Easy
modularization</li><li>Best-of-breed exception reporting</li></ul><p>Because
Tapestry is implemented on top of its IoC container, and because the container
makes it easy to extend or replace any service inside the container, it is
possible to make the small changes to Tapestry needed to customize it to any
project's needs.</p><p>In addition – and this is critical –
Tapestry allows 3rd party libraries to be built that fully participate in the
configurability of Tapestry itself. This means that such libraries can be
configured the same way T
apestry itself is configured, and such libraries can also configure Tapestry
itself. This <em>distributed configuration</em> requires an IOC container that
fully supports such configurability.</p><h2
id="GeneralQuestions-HowdoIupgradefromTapestry4toTapestry5?">How do I upgrade
from Tapestry 4 to Tapestry 5?</h2><p>There is no existing tool that supports
upgrading from Tapestry 4 to Tapestry 5; Tapestry 5 is a complete
rewrite.</p><p>Many of the basic concepts in Tapestry 4 are still present in
Tapestry 5, but refactored, improved, streamlined, and simplified. The basic
concept of pages, templates and components are largely the same. Other aspects,
such as server-side event handling, is markedly different.</p><p>Tapestry 5 is
designed so that it can live side-by-side in the same servlet as a Tapestry 4
app, without package namespace conflicts, sharing session data and common
resources such as images and CSS. This means that you can gradually migrate a
Tapestry 4 app to Tapestry 5 one
page (or one portion of the app) at a time.</p><h2
id="GeneralQuestions-HowdoIupgradefromoneversionofTapestry5toanother?">How do I
upgrade from one version of Tapestry 5 to another?</h2><p>Main Article: <a
href="how-to-upgrade.html">How to Upgrade</a>.</p><p>A lot of effort goes into
making an upgrade from one Tapestry 5 release to another go smoothly. In the
general case, it is just a matter of updating the version number in your Maven
<code>build.xml</code> or Gradle <code>build.gradle</code> file and executing
the appropriate commands (e.g., <code>gradle idea</code> or <code>mvn
eclipse:eclipse</code>) to bring your local workspace up to date with the
latest binaries.</p><p>After changing dependencies, you should always perform a
clean recompile of your application.</p><p>We make every effort to ensure
backwards-compatibility. Tapestry is mostly coded in terms of interfaces; those
interfaces are stable to a point: interfaces your code is expected to implement
are usually complet
ely frozen; interfaces your code is expected to invoke, such as the interfaces
to IoC services, are stable, but may have new methods added in a release;
existing methods are not changed.</p><p>In <em>rare</em> cases a choice is
necessary between fixing bugs (or adding essential functionality) and
maintaining complete backwards compatibility; in those cases, an incompatible
change may be introduced. These are always discussed in detail in the <a
href="release-notes.html">Release Notes</a> for the specific release. You
should always read the release notes before attempting an upgrade, and always
(really, <em>always</em>) be prepared to retest your application
afterwards.</p><p>Note that you should be careful any time you make use of
<strong>internal</strong> APIs (you can tell an API is internal by the package
name, <code>org.apache.tapestry5.internal). </code>Internal APIs may change
<em>at any time</em>; there's no guarantee of backwards compatibility. Please
always check on th
e documentation, or consult the user mailing list, to see if there's a stable,
public alternative. If you do make use of internal APIs, be sure to get a
discussion going so that your needs can be met in the future by a stable,
public API.</p><h2
id="GeneralQuestions-WhyaretherebothRequestandHttpServletRequest?"><span
style="color: rgb(83,145,38);">Why are there both Request and
HttpServletRequest?</span></h2><p>Tapestry's Request interface is <em>very</em>
close to the standard HttpServletRequest interface. It differs in a few ways,
omitting some unneeded methods, and adding a couple of new methods (such as
<code>isXHR()</code>), as well as changing how some existing methods operate.
For example, <code>getParameterNames()</code> returns a sorted List of Strings;
HttpServletRequest returns an Enumeration, which is a very dated
approach.</p><p>However, the stronger reason for Request (and the related
interfaces Response and Session) is to enable the support for Portlets at some
point
in the future. By writing code in terms of Tapestry's Request, and not
HttpServletRequest, you can be assured that the same code will operate in both
Servlet Tapestry and Portlet Tapestry.</p></div>
</div>
Modified: websites/production/tapestry/content/getting-started.html
==============================================================================
--- websites/production/tapestry/content/getting-started.html (original)
+++ websites/production/tapestry/content/getting-started.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/google-app-engine.html
==============================================================================
--- websites/production/tapestry/content/google-app-engine.html (original)
+++ websites/production/tapestry/content/google-app-engine.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/hibernate-core-conf.html
==============================================================================
--- websites/production/tapestry/content/hibernate-core-conf.html (original)
+++ websites/production/tapestry/content/hibernate-core-conf.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/hibernate-core.html
==============================================================================
--- websites/production/tapestry/content/hibernate-core.html (original)
+++ websites/production/tapestry/content/hibernate-core.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/hibernate-statistics.html
==============================================================================
--- websites/production/tapestry/content/hibernate-statistics.html (original)
+++ websites/production/tapestry/content/hibernate-statistics.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/hibernate-support-faq.html
==============================================================================
--- websites/production/tapestry/content/hibernate-support-faq.html (original)
+++ websites/production/tapestry/content/hibernate-support-faq.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -143,11 +144,11 @@
<!-- /// Content Start -->
<div id="content">
<div id="ConfluenceContent"><h1
id="HibernateSupportFAQ-HibernateSupport">Hibernate Support</h1><p>Main
article: <a href="hibernate.html">Hibernate</a></p><h2
id="HibernateSupportFAQ-Contents">Contents</h2><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1669470836722 {padding: 0px;}
-div.rbtoc1669470836722 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1669470836722 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1712222112717 {padding: 0px;}
+div.rbtoc1712222112717 ul {margin-left: 0px;}
+div.rbtoc1712222112717 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1669470836722">
+/*]]>*/</style></p><div class="toc-macro rbtoc1712222112717">
<ul class="toc-indentation"><li><a
href="#HibernateSupportFAQ-HowdoIgetHibernatetostartupupwhentheapplicationstartsup,ratherthanlazilywiththefirstrequestfortheapplication?">How
do I get Hibernate to startup up when the application starts up, rather than
lazily with the first request for the application?</a></li></ul>
</div><h2
id="HibernateSupportFAQ-HowdoIgetHibernatetostartupupwhentheapplicationstartsup,ratherthanlazilywiththefirstrequestfortheapplication?">How
do I get Hibernate to startup up when the application starts up, rather than
lazily with the first request for the application?</h2><p>This was a minor
problem in 5.0; by 5.1 it is just a matter of overriding the configuration
system <code>tapestry.hibernate-early-startup</code> to "true".</p></div>
</div>
Modified: websites/production/tapestry/content/hibernate-user-guide.html
==============================================================================
--- websites/production/tapestry/content/hibernate-user-guide.html (original)
+++ websites/production/tapestry/content/hibernate-user-guide.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/hibernate.html
==============================================================================
--- websites/production/tapestry/content/hibernate.html (original)
+++ websites/production/tapestry/content/hibernate.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/hilo.html
==============================================================================
--- websites/production/tapestry/content/hilo.html (original)
+++ websites/production/tapestry/content/hilo.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/home.html
==============================================================================
--- websites/production/tapestry/content/home.html (original)
+++ websites/production/tapestry/content/home.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -142,7 +143,7 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><p>This is the home
page of the Apache Tapestry wiki space in Confluence. The public home page is
the <a href="index.html">Index</a> page.</p><p>From here you can go
to</p><ul><li><a href="index.html">Index</a> – the entry page for the
auto-generated website</li><li><a href="documentation.html">Documentation</a>
– the documentation main page</li><li><a href="sandbox.html">Sandbox</a>
– a sandbox for developing new ideas and testing things out</li><li><a
class="createlink"
href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=TAPESTRY&title=Board+Reports&linkCreation=true&fromPageId=23339348">Board
Reports</a> – Quarterly reports to the Apache Board</li></ul><p>After
posting a new blog entry, you should update the following pages, to force the
new content to be included:</p><ul><li><a
href="index.html">Index</a></li><li><a href="news.html">News</a></li></ul><h2
id="Home-TO
DOList">TODO List</h2><p>A quick place to jot down notes on work needed to be
done.</p><ul><li>Use of symbols to define (some) component parameter
defaults</li><li>Update examples r.e. use of Maven Archetype</li><li>Document
ResourceTranslators</li><li><span style="line-height: 1.4285715;">Discuss
PageCatalog page</span></li><li>Document that public static fields are also
treated as properties</li><li>Document AlertManager</li><li>Document 5.4
component fields may be non-private (even public, if final)</li></ul></div>
+ <div id="ConfluenceContent"><p>This is the home
page of the Apache Tapestry wiki space in Confluence. The public home page is
the <a href="index.html">Index</a> page.</p><p>From here you can go
to</p><ul><li><a href="index.html">Index</a> – the entry page for the
auto-generated website</li><li><a href="documentation.html">Documentation</a>
– the documentation main page</li><li><a href="sandbox.html">Sandbox</a>
– a sandbox for developing new ideas and testing things out</li><li><a
class="unresolved" href="#">Board Reports</a> – Quarterly reports to the
Apache Board</li></ul><p>After posting a new blog entry, you should update the
following pages, to force the new content to be included:</p><ul><li><a
href="index.html">Index</a></li><li><a href="news.html">News</a></li></ul><h2
id="Home-TODOList">TODO List</h2><p>A quick place to jot down notes on work
needed to be done.</p><ul><li>Use of symbols to define (some) component
parameter
defaults</li><li>Update examples r.e. use of Maven Archetype</li><li>Document
ResourceTranslators</li><li><span style="line-height: 1.4285715;">Discuss
PageCatalog page</span></li><li>Document that public static fields are also
treated as properties</li><li>Document AlertManager</li><li>Document 5.4
component fields may be non-private (even public, if final)</li></ul></div>
</div>
<!-- /// Content End -->
</div>
Modified: websites/production/tapestry/content/how-to-upgrade.html
==============================================================================
--- websites/production/tapestry/content/how-to-upgrade.html (original)
+++ websites/production/tapestry/content/how-to-upgrade.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/https.html
==============================================================================
--- websites/production/tapestry/content/https.html (original)
+++ websites/production/tapestry/content/https.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified:
websites/production/tapestry/content/implementing-the-hi-lo-guessing-game.html
==============================================================================
---
websites/production/tapestry/content/implementing-the-hi-lo-guessing-game.html
(original)
+++
websites/production/tapestry/content/implementing-the-hi-lo-guessing-game.html
Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/index.html
==============================================================================
--- websites/production/tapestry/content/index.html (original)
+++ websites/production/tapestry/content/index.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/indexv1.html
==============================================================================
--- websites/production/tapestry/content/indexv1.html (original)
+++ websites/production/tapestry/content/indexv1.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/indexv2-old.html
==============================================================================
--- websites/production/tapestry/content/indexv2-old.html (original)
+++ websites/production/tapestry/content/indexv2-old.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/indexv2.html
==============================================================================
--- websites/production/tapestry/content/indexv2.html (original)
+++ websites/production/tapestry/content/indexv2.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/injection-faq.html
==============================================================================
--- websites/production/tapestry/content/injection-faq.html (original)
+++ websites/production/tapestry/content/injection-faq.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -143,11 +144,11 @@
<!-- /// Content Start -->
<div id="content">
<div id="ConfluenceContent"><h1
id="InjectionFAQ-Injection">Injection</h1><p>Main article:  <a
href="injection.html">Injection</a></p><h2
id="InjectionFAQ-Contents">Contents</h2><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1669470802209 {padding: 0px;}
-div.rbtoc1669470802209 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1669470802209 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1712222041110 {padding: 0px;}
+div.rbtoc1712222041110 ul {margin-left: 0px;}
+div.rbtoc1712222041110 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1669470802209">
+/*]]>*/</style></p><div class="toc-macro rbtoc1712222041110">
<ul class="toc-indentation"><li><a
href="#InjectionFAQ-What'sthedifferencebetweenthe@Componentand@InjectComponentannotations?">What's
the difference between the @Component and @InjectComponent
annotations?</a></li><li><a
href="#InjectionFAQ-What'sthedifferencebetweenthe@InjectPageand@InjectContainerannotations?">What's
the difference between the @InjectPage and @InjectContainer
annotations?</a></li><li><a
href="#InjectionFAQ-IgetanexceptionbecauseIhavetwoserviceswiththesameinterface,howdoIhandlethis?">I
get an exception because I have two services with the same interface, how do I
handle this?</a></li><li><a
href="#InjectionFAQ-What'sthedifferencebetween@Injectand@Environmental?">What's
the difference between @Inject and @Environmental?</a></li><li><a
href="#InjectionFAQ-Butwait...IseeIusedthe@Injectannotationanditstillworked.Whatgives?">But
wait ... I see I used the @Inject annotation and it still worked. What
gives?</a></li><li><a href="#InjectionFAQ-Ok,butRequestisasingletonservi
ce,notanenvironmental,andIcaninjectthat.IsTapestryreallythreadsafe?">Ok, but
Request is a singleton service, not an environmental, and I can inject that. Is
Tapestry really thread safe?</a></li><li><a
href="#InjectionFAQ-Iuse@Injectonafieldtoinjectaservice,butthefieldisstillnull,whathappened?">I
use @Inject on a field to inject a service, but the field is still null, what
happened?</a></li></ul>
</div><h2
id="InjectionFAQ-What'sthedifferencebetweenthe@Componentand@InjectComponentannotations?">What's
the difference between the <code>@Component</code> and
<code>@InjectComponent</code> annotations?</h2><p>The <code>@Component</code>
annotation is used to define the <em>type</em> of component, and its parameter
bindings. When using <code>@Component</code>, the template must not define the
type, and any parameter bindings are merged in:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre><code class="language-java"> <a t:id="home" class="nav">Back to
home</a>
Modified: websites/production/tapestry/content/injection-in-detail.html
==============================================================================
--- websites/production/tapestry/content/injection-in-detail.html (original)
+++ websites/production/tapestry/content/injection-in-detail.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -169,7 +170,7 @@
<span class="icon aui-icon content-type-page"
title="Page">Page:</span> </div>
<div class="details">
- <a href="environmental-services.html">Environmental
Services</a>
+ <a href="injection-in-detail.html">Injection in
Detail</a>
</div>
@@ -178,7 +179,7 @@
<span class="icon aui-icon content-type-page"
title="Page">Page:</span> </div>
<div class="details">
- <a href="injection.html">Injection</a>
+ <a href="environmental-services.html">Environmental
Services</a>
</div>
@@ -187,7 +188,7 @@
<span class="icon aui-icon content-type-page"
title="Page">Page:</span> </div>
<div class="details">
- <a href="injection-in-detail.html">Injection in
Detail</a>
+ <a href="injection.html">Injection</a>
</div>
Modified: websites/production/tapestry/content/injection.html
==============================================================================
--- websites/production/tapestry/content/injection.html (original)
+++ websites/production/tapestry/content/injection.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -178,7 +179,7 @@
<span class="icon aui-icon content-type-page"
title="Page">Page:</span> </div>
<div class="details">
- <a href="injection.html">Injection</a>
+ <a href="environmental-services.html">Environmental
Services</a>
</div>
@@ -187,7 +188,7 @@
<span class="icon aui-icon content-type-page"
title="Page">Page:</span> </div>
<div class="details">
- <a href="environmental-services.html">Environmental
Services</a>
+ <a href="injection.html">Injection</a>
</div>
Modified: websites/production/tapestry/content/input-validation.html
==============================================================================
--- websites/production/tapestry/content/input-validation.html (original)
+++ websites/production/tapestry/content/input-validation.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/integrating-with-jpa.html
==============================================================================
--- websites/production/tapestry/content/integrating-with-jpa.html (original)
+++ websites/production/tapestry/content/integrating-with-jpa.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -150,11 +151,11 @@
<div class="param-body"></div>
</div><p>Tapestry provides a built-in integration with the Java Persistence
API (JPA) through the <strong>Tapestry-jpa</strong> module. This module
supersedes the 3rd-party <a class="external-link"
href="http://www.tynamo.org/tapestry-jpa+guide/" rel="nofollow">Tynamo JPA
module</a>.</p><p><strong>Contents</strong></p><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1689772302411 {padding: 0px;}
-div.rbtoc1689772302411 ul {margin-left: 0px;}
-div.rbtoc1689772302411 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1712221957099 {padding: 0px;}
+div.rbtoc1712221957099 ul {margin-left: 0px;}
+div.rbtoc1712221957099 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1689772302411">
+/*]]>*/</style></p><div class="toc-macro rbtoc1712221957099">
<ul class="toc-indentation"><li><a
href="#IntegratingwithJPA-Downloading">Downloading</a>
<ul class="toc-indentation"><li><a
href="#IntegratingwithJPA-SelectingaJPAImplementation">Selecting a JPA
Implementation</a></li></ul>
</li><li><a href="#IntegratingwithJPA-ConfiguringJPA">Configuring JPA</a>
Modified:
websites/production/tapestry/content/integrating-with-spring-framework.html
==============================================================================
--- websites/production/tapestry/content/integrating-with-spring-framework.html
(original)
+++ websites/production/tapestry/content/integrating-with-spring-framework.html
Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -178,11 +179,11 @@
<p>For integrating Spring Security into your application, see <a
href="security.html">Security</a>.</p><p><strong>Contents</strong></p><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1669470767089 {padding: 0px;}
-div.rbtoc1669470767089 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1669470767089 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1712221963102 {padding: 0px;}
+div.rbtoc1712221963102 ul {margin-left: 0px;}
+div.rbtoc1712221963102 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1669470767089">
+/*]]>*/</style></p><div class="toc-macro rbtoc1712221963102">
<ul class="toc-indentation"><li>Related Articles</li></ul>
<ul><li><a href="#IntegratingwithSpringFramework-SpringVersion">Spring
Version</a></li><li><a href="#IntegratingwithSpringFramework-Usage">Usage</a>
<ul class="toc-indentation"><li><a
href="#IntegratingwithSpringFramework-Requireddependency">Required
dependency</a></li><li><a
href="#IntegratingwithSpringFramework-Updateyourweb.xmlfile">Update your
web.xml file</a></li><li><a
href="#IntegratingwithSpringFramework-AccessingtheSpringApplicationContext">Accessing
the Spring Application Context</a></li><li><a
href="#IntegratingwithSpringFramework-Injectingbeans">Injecting
beans</a></li><li><a
href="#IntegratingwithSpringFramework-InjectingTapestryservicesinSpringbeans">Injecting
Tapestry services in Spring beans</a></li></ul>
Modified: websites/production/tapestry/content/integration-testing.html
==============================================================================
--- websites/production/tapestry/content/integration-testing.html (original)
+++ websites/production/tapestry/content/integration-testing.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified:
websites/production/tapestry/content/integration-with-existing-applications.html
==============================================================================
---
websites/production/tapestry/content/integration-with-existing-applications.html
(original)
+++
websites/production/tapestry/content/integration-with-existing-applications.html
Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -143,11 +144,11 @@
<!-- /// Content Start -->
<div id="content">
<div id="ConfluenceContent"><h1
id="Integrationwithexistingapplications-Integrationwithexistingapplications">Integration
with existing applications</h1><h2
id="Integrationwithexistingapplications-Contents">Contents</h2><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1669470853805 {padding: 0px;}
-div.rbtoc1669470853805 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1669470853805 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1712222145459 {padding: 0px;}
+div.rbtoc1712222145459 ul {margin-left: 0px;}
+div.rbtoc1712222145459 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style></p><div class="toc-macro rbtoc1669470853805">
+/*]]>*/</style></p><div class="toc-macro rbtoc1712222145459">
<ul class="toc-indentation"><li><a
href="#Integrationwithexistingapplications-HowdoImakeaformonaJSPsubmitintoTapestry?">How
do I make a form on a JSP submit into Tapestry?</a></li><li><a
href="#Integrationwithexistingapplications-HowdoIshareinformationbetweenaJSPapplicationandtheTapestryapplication?">How
do I share information between a JSP application and the Tapestry
application?</a></li><li><a
href="#Integrationwithexistingapplications-HowdoIputtheTapestryapplicationinsideafolder,toavoidconflicts?">How
do I put the Tapestry application inside a folder, to avoid
conflicts?</a></li></ul>
</div><p>You may have an existing JSP (or Struts, Spring MVC, etc.)
application that you want to migrate to Tapestry. It's quite common to do this
in stages, moving some functionality into Tapestry and leaving other parts,
initially, in the other system. <a href="request-processing-faq.html">You may
need to prevent Tapestry from handling certain requests</a>.</p><h2
id="Integrationwithexistingapplications-HowdoImakeaformonaJSPsubmitintoTapestry?">How
do I make a form on a JSP submit into Tapestry?</h2><p>Tapestry's Form
component does a lot of work while an HTML form is rendering to store all the
information needed to handle the form submission in a later request; this is
all very specific to Tapestry and the particular construction of your pages and
forms; it can't be reproduced from a JSP.</p><p>Fortunately, that isn't
necessary: you can have a standard HTML Form submit to a Tapestry page, you
just don't get to use all of Tapestry's built in conversion and validation
logic.</p><p>
All you need to know is how Tapestry converts page class names to page names
(that appear in the URL). It's basically a matter of stripping off the
<em>root-package</em>.<code>pages</code> prefix from the fully qualified class
name. So, for example, if you are building a login screen as a JSP, you might
want to have a Tapestry page to receive the user name and password. Let's
assume the Tapestry page class is
<code>com.example.myapp.pages.LoginForm</code>; the page name will be
<code>loginform (although, since </code><span>Tapestry is case
insensitive, LoginForm would work just as well)</span><span>, and the URL will
be </span><code>/loginform</code><span>.</span></p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>LoginForm.tml</b></div><div
class="codeContent panelContent pdl">
<pre><code class="language-xml"><form method="post" action="/loginform">
Modified: websites/production/tapestry/content/introduction.html
==============================================================================
--- websites/production/tapestry/content/introduction.html (original)
+++ websites/production/tapestry/content/introduction.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -204,7 +205,7 @@
</div>
-<h2 id="Introduction-WhatisApacheTapestry?">What is Apache
Tapestry?</h2><p>Apache Tapestry is an open-source framework for creating
dynamic, robust, highly scalable web applications in Java. Tapestry complements
and builds upon the standard Java Servlet API, and so it works in any servlet
container or application server.</p><p>Tapestry divides a web application into
a set of pages, each constructed from components. This provides a consistent
structure, allowing the Tapestry framework to assume responsibility for key
concerns such as URL construction and dispatch, persistent state storage on the
client or on the server, user input validation,
localization/internationalization, and exception reporting. Developing Tapestry
applications involves creating HTML templates using plain HTML, and adding a
small java class for each. In Tapestry, you create your application in terms of
objects, and the methods and properties of those objects – and
specifically not in terms of URLs and qu
ery parameters. Tapestry brings true object oriented development to Java web
applications.</p><p>Tapestry is specifically designed to make creating new
components very easy, as this is a routine approach when building
applications.</p><p>Tapestry is architected to scale from tiny, single-page
applications all the way up to massive applications consisting of hundreds of
individual pages, developed by large, diverse teams. Tapestry easily integrates
with any kind of backend, including JEE, Spring and Hibernate.</p><p>It's more
than what you can do with Tapestry ... it's also how you do it! Tapestry is a
vastly productive environment. Java developers love it because they can make
Java code changes and see them immediately ... no redeploy, no restart! And
it's blazingly fast to boot (even when files have changed). Designers love it
because Tapestry templates are so close to ordinary HTML, without all the cruft
and confusion seen in <a href="tapestry-for-jsf-users.html">JavaServer Pages<
/a>. Managers love it because it makes it easy for large teams to work
together productively, and because they know important features (including
localization) are baked right in. Once you work in Tapestry there's no going
back!</p><p>Tapestry is released under the Apache Software License 2.0.</p><h2
id="Introduction-ThirdPartyLibraries,TutorialsandResources">Third Party
Libraries, Tutorials and Resources</h2><p>A number of third party libraries,
tutorials and resources are listed on the <a
href="modules.html">Modules</a> page.</p><h2
id="Introduction-AboutReleasesandSnapshots">About Releases and Snapshots</h2><p
class="confluence-link">Most users will want to use the latest stable release
of Tapestry, and for that your best bet for new projects is to use the
Quickstart Maven archetype to create your initial Tapestry project, as
described on the <a href="getting-started.html">Getting Started</a> page. The
Quickstart archetype generates a full, working project directory. For upg
rading existing projects, just use the Maven dependency listed on the <a
href="download.html">Download</a> page.</p><p>You can also pull down Tapestry
modules in the form of binary and source JARs from the <a class="external-link"
href="http://search.maven.org/#browse" title="1738327132" rel="nofollow">Maven
Central repository</a>.</p><p>Tapestry itself is built using Gradle, which
makes it really easy to download the source and build it yourself, either the
whole project, or just one single module.</p><p>The use of Maven and Gradle has
let us move with great speed, providing preview releases and
snapshots.</p><p>Snapshots are intermediate versions of releases, with
"-SNAPSHOT" at the end of the version number. Maven notices that -SNAPSHOT
suffix and handles the dependency specially. It knows that snapshot releases
can change frequently, so it will keep checking (at least once a day, maybe
more often) to see if there's an updated version of the snapshot.</p><p>A
nightly build proces
s on Tapestry's continuous integration server creates new snapshots every
night.</p><p>Snapshots don't go in the Maven central repository (that's
reserved for full releases). Instead, they go into the Tapestry snapshots
repository at <a class="external-link"
href="https://repository.apache.org/content/groups/snapshots/org/apache/tapestry/">https://repository.apache.org/content/groups/snapshots/org/apache/tapestry/</a>.</p><p>To
access the snapshot repository, just add <code>-DremoteRepositories=<span
class="nolink"><a class="external-link"
href="http://repository.apache.org/snapshots/">http://repository.apache.org/snapshots/</a></span></code>
to the command line when running Maven.</p><p>Documentation on this site
sometimes refers to the latest snapshot ... that is, it is often ahead of the
last official release, with version-specific differences clearly marked. In
some cases, it is written as if the snapshot release is stable. For example, if
documentation refers to version 5.7.x a
nd that hasn't been released yet, you can try 5.7.x-SNAPSHOT.</p></div>
+<h2 id="Introduction-WhatisApacheTapestry?">What is Apache
Tapestry?</h2><p>Apache Tapestry is an open-source framework for creating
dynamic, robust, highly scalable web applications in Java. Tapestry complements
and builds upon the standard Java Servlet API, and so it works in any servlet
container or application server.</p><p>Tapestry divides a web application into
a set of pages, each constructed from components. This provides a consistent
structure, allowing the Tapestry framework to assume responsibility for key
concerns such as URL construction and dispatch, persistent state storage on the
client or on the server, user input validation,
localization/internationalization, and exception reporting. Developing Tapestry
applications involves creating HTML templates using plain HTML, and adding a
small java class for each. In Tapestry, you create your application in terms of
objects, and the methods and properties of those objects – and
specifically not in terms of URLs and qu
ery parameters. Tapestry brings true object oriented development to Java web
applications.</p><p>Tapestry is specifically designed to make creating new
components very easy, as this is a routine approach when building
applications.</p><p>Tapestry is architected to scale from tiny, single-page
applications all the way up to massive applications consisting of hundreds of
individual pages, developed by large, diverse teams. Tapestry easily integrates
with any kind of backend, including JEE, Spring and Hibernate.</p><p>It's more
than what you can do with Tapestry ... it's also how you do it! Tapestry is a
vastly productive environment. Java developers love it because they can make
Java code changes and see them immediately ... no redeploy, no restart! And
it's blazingly fast to boot (even when files have changed). Designers love it
because Tapestry templates are so close to ordinary HTML, without all the cruft
and confusion seen in <a href="tapestry-for-jsf-users.html">JavaServer Pages<
/a>. Managers love it because it makes it easy for large teams to work
together productively, and because they know important features (including
localization) are baked right in. Once you work in Tapestry there's no going
back!</p><p>Tapestry is released under the Apache Software License 2.0.</p><h2
id="Introduction-ThirdPartyLibraries,TutorialsandResources">Third Party
Libraries, Tutorials and Resources</h2><p>A number of third party libraries,
tutorials and resources are listed on the <a
href="modules.html">Modules</a> page.</p><h2
id="Introduction-AboutReleasesandSnapshots">About Releases and Snapshots</h2><p
class="confluence-link">Most users will want to use the latest stable release
of Tapestry, and for that your best bet for new projects is to use the
Quickstart Maven archetype to create your initial Tapestry project, as
described on the <a href="getting-started.html">Getting Started</a> page. The
Quickstart archetype generates a full, working project directory. For upg
rading existing projects, just use the Maven dependency listed on the <a
href="download.html">Download</a> page.</p><p>You can also pull down Tapestry
modules in the form of binary and source JARs from the <a class="external-link"
href="http://search.maven.org/#browse" rel="nofollow" title="1738327132">Maven
Central repository</a>.</p><p>Tapestry itself is built using Gradle, which
makes it really easy to download the source and build it yourself, either the
whole project, or just one single module.</p><p>The use of Maven and Gradle has
let us move with great speed, providing preview releases and
snapshots.</p><p>Snapshots are intermediate versions of releases, with
"-SNAPSHOT" at the end of the version number. Maven notices that -SNAPSHOT
suffix and handles the dependency specially. It knows that snapshot releases
can change frequently, so it will keep checking (at least once a day, maybe
more often) to see if there's an updated version of the snapshot.</p><p>A
nightly build proces
s on Tapestry's continuous integration server creates new snapshots every
night.</p><p>Snapshots don't go in the Maven central repository (that's
reserved for full releases). Instead, they go into the Tapestry snapshots
repository at <a class="external-link"
href="https://repository.apache.org/content/groups/snapshots/org/apache/tapestry/">https://repository.apache.org/content/groups/snapshots/org/apache/tapestry/</a>.</p><p>To
access the snapshot repository, just add <code>-DremoteRepositories=<span
class="nolink"><a class="external-link"
href="http://repository.apache.org/snapshots/">http://repository.apache.org/snapshots/</a></span></code>
to the command line when running Maven.</p><p>Documentation on this site
sometimes refers to the latest snapshot ... that is, it is often ahead of the
last official release, with version-specific differences clearly marked. In
some cases, it is written as if the snapshot release is stable. For example, if
documentation refers to version 5.7.x a
nd that hasn't been released yet, you can try 5.7.x-SNAPSHOT.</p></div>
</div>
<!-- /// Content End -->
</div>
Modified: websites/production/tapestry/content/ioc-advice.html
==============================================================================
--- websites/production/tapestry/content/ioc-advice.html (original)
+++ websites/production/tapestry/content/ioc-advice.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-autoload.html
==============================================================================
--- websites/production/tapestry/content/ioc-autoload.html (original)
+++ websites/production/tapestry/content/ioc-autoload.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-case.html
==============================================================================
--- websites/production/tapestry/content/ioc-case.html (original)
+++ websites/production/tapestry/content/ioc-case.html Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-coerce.html
==============================================================================
--- websites/production/tapestry/content/ioc-coerce.html (original)
+++ websites/production/tapestry/content/ioc-coerce.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-command.html
==============================================================================
--- websites/production/tapestry/content/ioc-command.html (original)
+++ websites/production/tapestry/content/ioc-command.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-configuration.html
==============================================================================
--- websites/production/tapestry/content/ioc-configuration.html (original)
+++ websites/production/tapestry/content/ioc-configuration.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified:
websites/production/tapestry/content/ioc-cookbook-basic-services-and-injection.html
==============================================================================
---
websites/production/tapestry/content/ioc-cookbook-basic-services-and-injection.html
(original)
+++
websites/production/tapestry/content/ioc-cookbook-basic-services-and-injection.html
Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-cookbook-basics.html
==============================================================================
--- websites/production/tapestry/content/ioc-cookbook-basics.html (original)
+++ websites/production/tapestry/content/ioc-cookbook-basics.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-cookbook-override.html
==============================================================================
--- websites/production/tapestry/content/ioc-cookbook-override.html (original)
+++ websites/production/tapestry/content/ioc-cookbook-override.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified:
websites/production/tapestry/content/ioc-cookbook-overriding-ioc-services.html
==============================================================================
---
websites/production/tapestry/content/ioc-cookbook-overriding-ioc-services.html
(original)
+++
websites/production/tapestry/content/ioc-cookbook-overriding-ioc-services.html
Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-cookbook-patterns.html
==============================================================================
--- websites/production/tapestry/content/ioc-cookbook-patterns.html (original)
+++ websites/production/tapestry/content/ioc-cookbook-patterns.html Thu Apr 4
09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
@@ -142,7 +143,60 @@
<!-- /// Content Start -->
<div id="content">
- <div id="ConfluenceContent"><p>Tapestry IoC has
support for implementing several of the <a class="external-link"
href="http://en.wikipedia.org/wiki/Design_pattern_(computer_science)"
rel="nofollow">Gang Of Four Design Patterns</a>. In fact, the IoC container
itself is a pumped up version of the Factory pattern.</p><img
class="wysiwyg-unknown-macro"
src="https://cwiki.apache.org/confluence/plugins/servlet/confluence/placeholder/unknown-macro?name=div&locale=en_GB&version=2"><p>The
basis for these patterns is often the use of <em>service builder methods</em>,
where a <a href="ioc-cookbook-service-configurations.html">configuration</a>
for the service is combined with a factory to produce the service
implementation on the fly.</p><p><span class="confluence-anchor-link"
id="IoCCookbookPatterns-chainofcommand"></span></p><h1
id="IoCCookbookPatterns-ChainofCommandPattern">Chain of Command
Pattern</h1><p>Main Article: <a href="chainbuilder-service.html">
Chain of Command</a></p><p>Let's look at another example, again from the
Tapestry code base. The <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/InjectionProvider.html">InjectProvider</a>
interface is used to process the @Inject annotation on the fields of a
Tapestry page or component. Many different instances are combined together to
form a <em>chain of command</em>.</p><p>The interface has only a single method
(this is far from uncommon):</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+ <div id="ConfluenceContent"><p>Tapestry IoC has
support for implementing several of the <a class="external-link"
href="http://en.wikipedia.org/wiki/Design_pattern_(computer_science)"
rel="nofollow">Gang Of Four Design Patterns</a>. In fact, the IoC container
itself is a pumped up version of the Factory pattern.</p><div class="aui-label"
style="float:right" title="Related Articles">
+
+
+
+
+
+
+
+
+
+
+<h3>Related Articles</h3>
+
+<ul class="content-by-label"><li>
+ <div>
+ <span class="icon aui-icon content-type-page"
title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a href="pipelinebuilder-service.html">PipelineBuilder
Service</a>
+
+
+ </div>
+ </li><li>
+ <div>
+ <span class="icon aui-icon content-type-page"
title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a href="strategybuilder-service.html">StrategyBuilder
Service</a>
+
+
+ </div>
+ </li><li>
+ <div>
+ <span class="icon aui-icon content-type-page"
title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a href="ioc-cookbook-patterns.html">IoC Cookbook -
Patterns</a>
+
+
+ </div>
+ </li><li>
+ <div>
+ <span class="icon aui-icon content-type-page"
title="Page">Page:</span> </div>
+
+ <div class="details">
+ <a href="chainbuilder-service.html">ChainBuilder
Service</a>
+
+
+ </div>
+ </li></ul>
+</div>
+
+
+<p>The basis for these patterns is often the use of <em>service builder
methods</em>, where a <a
href="ioc-cookbook-service-configurations.html">configuration</a> for the
service is combined with a factory to produce the service implementation on the
fly.</p><p><span class="confluence-anchor-link"
id="IoCCookbookPatterns-chainofcommand"></span></p><h1
id="IoCCookbookPatterns-ChainofCommandPattern">Chain of Command
Pattern</h1><p>Main Article: <a href="chainbuilder-service.html">Chain of
Command</a></p><p>Let's look at another example, again from the Tapestry code
base. The <a class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/InjectionProvider.html">InjectProvider</a>
interface is used to process the @Inject annotation on the fields of a
Tapestry page or component. Many different instances are combined together to
form a <em>chain of command</em>.</p><p>The interface has only a single method
(this is far from uncommon):</p><div class
="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
<pre><code class="language-java">public interface InjectionProvider
{
boolean provideInjection(String fieldName, Class fieldType, ObjectLocator
locator,
Modified:
websites/production/tapestry/content/ioc-cookbook-service-configurations.html
==============================================================================
---
websites/production/tapestry/content/ioc-cookbook-service-configurations.html
(original)
+++
websites/production/tapestry/content/ioc-cookbook-service-configurations.html
Thu Apr 4 09:17:08 2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-cookbook.html
==============================================================================
--- websites/production/tapestry/content/ioc-cookbook.html (original)
+++ websites/production/tapestry/content/ioc-cookbook.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-decorator.html
==============================================================================
--- websites/production/tapestry/content/ioc-decorator.html (original)
+++ websites/production/tapestry/content/ioc-decorator.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache
Modified: websites/production/tapestry/content/ioc-injection.html
==============================================================================
--- websites/production/tapestry/content/ioc-injection.html (original)
+++ websites/production/tapestry/content/ioc-injection.html Thu Apr 4 09:17:08
2024
@@ -99,7 +99,8 @@
<div class="dropdown-menu"
aria-labelledby="developmentNavbarDropdown">
<a class="dropdown-item"
href="https://gitbox.apache.org/repos/asf?p=tapestry-5.git">Source Code</a>
<a class="dropdown-item"
href="https://issues.apache.org/jira/browse/TAP5">Issues</a>
- </div>
+ <a class="dropdown-item" href="/development-roadmap.html"
title="Development Roadmap">Roadmap</a>
+                </div>
</li><li class="nav-item dropdown">
<a class="nav-link dropdown-toggle active"
id="apacheNavbarDropdown" href="#" role="button" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Apache