Modified: websites/production/tapestry/content/ioc.html
==============================================================================
--- websites/production/tapestry/content/ioc.html (original)
+++ websites/production/tapestry/content/ioc.html Sun Nov 9 16:12:11 2014
@@ -206,7 +206,7 @@
<h2 id="IoC-IoCSubtopics">IoC Subtopics</h2>
-<ul class="childpages-macro"><li><a shape="rect"
href="tapestry-ioc-overview.html">Tapestry IoC Overview</a></li><li><a
shape="rect" href="tapestry-ioc-modules.html">Tapestry IoC
Modules</a></li><li><a shape="rect"
href="defining-tapestry-ioc-services.html">Defining Tapestry IOC
Services</a></li><li><a shape="rect" href="service-advisors.html">Service
Advisors</a></li><li><a shape="rect"
href="tapestry-ioc-decorators.html">Tapestry IoC Decorators</a></li><li><a
shape="rect" href="tapestry-ioc-configuration.html">Tapestry IoC
Configuration</a></li><li><a shape="rect" href="case-insensitivity.html">Case
Insensitivity</a></li><li><a shape="rect"
href="autoloading-modules.html">Autoloading Modules</a></li><li><a shape="rect"
href="service-implementation-reloading.html">Service Implementation
Reloading</a></li><li><a shape="rect"
href="ordering-by-constraints.html">Ordering by Constraints</a></li><li><a
shape="rect" href="symbols.html">Symbols</a></li><li><a shape="rect"
href="chainbuild
er-service.html">ChainBuilder Service</a></li><li><a shape="rect"
href="pipelinebuilder-service.html">PipelineBuilder Service</a></li><li><a
shape="rect" href="shadowbuilder-service.html">ShadowBuilder
Service</a></li><li><a shape="rect"
href="strategybuilder-service.html">StrategyBuilder Service</a></li><li><a
shape="rect" href="injection-in-detail.html">Injection in Detail</a></li><li><a
shape="rect" href="object-providers.html">Object Providers</a></li><li><a
shape="rect" href="service-serialization.html">Service
Serialization</a></li><li><a shape="rect"
href="typecoercer-service.html">TypeCoercer Service</a></li><li><a shape="rect"
href="starting-the-ioc-registry.html">Starting the IoC Registry</a></li><li><a
shape="rect" href="registry-startup.html">Registry Startup</a></li><li><a
shape="rect" href="parallel-execution.html">Parallel Execution</a></li><li><a
shape="rect" href="logging-in-tapestry.html">Logging in Tapestry</a></li><li><a
shape="rect" href="using-jsr-330-standard-
annotations.html">Using JSR 330 standard annotations</a></li></ul></div>
+<ul class="childpages-macro"><li><a shape="rect"
href="tapestry-ioc-overview.html">Tapestry IoC Overview</a></li><li><a
shape="rect" href="tapestry-ioc-modules.html">Tapestry IoC
Modules</a></li><li><a shape="rect"
href="defining-tapestry-ioc-services.html">Defining Tapestry IOC
Services</a></li><li><a shape="rect" href="service-advisors.html">Service
Advisors</a></li><li><a shape="rect"
href="tapestry-ioc-decorators.html">Tapestry IoC Decorators</a></li><li><a
shape="rect" href="tapestry-ioc-configuration.html">Tapestry IoC
Configuration</a></li><li><a shape="rect" href="case-insensitivity.html">Case
Insensitivity</a></li><li><a shape="rect"
href="autoloading-modules.html">Autoloading Modules</a></li><li><a shape="rect"
href="service-implementation-reloading.html">Service Implementation
Reloading</a></li><li><a shape="rect"
href="ordering-by-constraints.html">Ordering by Constraints</a></li><li><a
shape="rect" href="symbols.html">Symbols</a></li><li><a shape="rect"
href="chainbuild
er-service.html">ChainBuilder Service</a></li><li><a shape="rect"
href="pipelinebuilder-service.html">PipelineBuilder Service</a></li><li><a
shape="rect" href="shadowbuilder-service.html">ShadowBuilder
Service</a></li><li><a shape="rect"
href="strategybuilder-service.html">StrategyBuilder Service</a></li><li><a
shape="rect" href="injection-in-detail.html">Injection in Detail</a></li><li><a
shape="rect" href="object-providers.html">Object Providers</a></li><li><a
shape="rect" href="service-serialization.html">Service
Serialization</a></li><li><a shape="rect"
href="typecoercer-service.html">TypeCoercer Service</a></li><li><a shape="rect"
href="starting-the-ioc-registry.html">Starting the IoC Registry</a></li><li><a
shape="rect" href="registry-startup.html">Registry Startup</a></li><li><a
shape="rect" href="parallel-execution.html">Parallel Execution</a></li><li><a
shape="rect" href="logging-in-tapestry.html">Logging in Tapestry</a></li><li><a
shape="rect" href="using-jsr-330-standard-
annotations.html">Using JSR 330 standard annotations</a></li><li><a
shape="rect" href="operation-tracker.html">Operation Tracker</a></li></ul></div>
</div>
<div class="clearer"></div>
Modified: websites/production/tapestry/content/javascript-faq.html
==============================================================================
--- websites/production/tapestry/content/javascript-faq.html (original)
+++ websites/production/tapestry/content/javascript-faq.html Sun Nov 9
16:12:11 2014
@@ -69,35 +69,13 @@ table.ScrollbarTable td.ScrollbarParent
table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width:
16px;border: none;}
-/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td
colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect"
href="component-events-faq.html"><img align="middle" border="0"
src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16"
height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName"
width="33%"><a shape="rect" href="component-events-faq.html">Component Events
FAQ</a> </td><td colspan="1" rowspan="1" class="ScrollbarParent"
width="33%"><sup><a shape="rect" href="frequently-asked-questions.html"><img
align="middle" border="0"
src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8"
height="8"></a></sup><a shape="rect"
href="frequently-asked-questions.html">Frequently Asked Questions</a></td><td
colspan="1" rowspan="1" class="ScrollbarNextName" width="33%"> <a
shape="rect" href="ajax-components-faq.html">Ajax Components FAQ</a></td><td
colspan="1" rowspan="1" class="ScrollbarNextIcon"
><a shape="rect" href="ajax-components-faq.html"><img align="middle"
>border="0"
>src="https://cwiki.apache.org/confluence/images/icons/forwd_16.gif"
>width="16" height="16"></a></td></tr></table></div>
-
-<h2 id="JavaScriptFAQ-JavaScript">JavaScript</h2>
-
-<p>Main article: <a shape="rect" href="legacy-javascript.html">Legacy
JavaScript</a></p>
-
-<h3
id="JavaScriptFAQ-WhydoIgeta"Tapestryisundefined"erroronformsubmit?">Why
do I get a "Tapestry is undefined" error on form submit?</h3>
-
-<p>This client-side error is clear but can be awkward to solve. It means your
browser has not been able to load the tapestry.js file properly. The question
is, why? It can be due to multiple reasons, some of them below:</p>
-
-<ul><li>First, check if 'tapestry.js' is present in the head part of your
resulting HTML page.</li><li>If you have set the <a shape="rect"
class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/SymbolConstants.html#COMBINE_SCRIPTS">tapestry.combine-scripts</a>
configuration symbol to true, Tapestry generates one single URL to retrieve
all the JS files. Sometimes, this can produce long URLs that browsers are
unable to retrieve. Try setting the symbol to false.
- <div class="aui-message warning shadowed information-macro">
+/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td
colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect"
href="component-events-faq.html"><img align="middle" border="0"
src="https://cwiki.apache.org/confluence/images/icons/back_16.gif" width="16"
height="16"></a></td><td colspan="1" rowspan="1" class="ScrollbarPrevName"
width="33%"><a shape="rect" href="component-events-faq.html">Component Events
FAQ</a> </td><td colspan="1" rowspan="1" class="ScrollbarParent"
width="33%"><sup><a shape="rect" href="frequently-asked-questions.html"><img
align="middle" border="0"
src="https://cwiki.apache.org/confluence/images/icons/up_16.gif" width="8"
height="8"></a></sup><a shape="rect"
href="frequently-asked-questions.html">Frequently Asked Questions</a></td><td
colspan="1" rowspan="1" class="ScrollbarNextName" width="33%"> <a
shape="rect" href="ajax-components-faq.html">Ajax Components FAQ</a></td><td
colspan="1" rowspan="1" class="ScrollbarNextIcon"
><a shape="rect" href="ajax-components-faq.html"><img align="middle"
>border="0"
>src="https://cwiki.apache.org/confluence/images/icons/forwd_16.gif"
>width="16" height="16"></a></td></tr></table></div><h2
>id="JavaScriptFAQ-JavaScript">JavaScript</h2><p>Main article: <a shape="rect"
>href="legacy-javascript.html">Legacy JavaScript</a></p><h3
>id="JavaScriptFAQ-WhydoIgeta"Tapestryisundefined"erroronformsubmit?(5.3andearlier)">Why
> do I get a "Tapestry is undefined" error on form submit? (5.3 and
>earlier)</h3><p>This client-side error is clear but can be awkward to solve.
>It means your browser has not been able to load the tapestry.js file
>properly. The question is, why? It can be due to multiple reasons, some of
>them below:</p><ul><li>First, check if 'tapestry.js' is present in the head
>part of your resulting HTML page.</li><li><p>If you have set the <a
>shape="rect" class="external-link"
>href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/SymbolConstants.html#CO
MBINE_SCRIPTS">tapestry.combine-scripts</a> configuration symbol to true,
Tapestry generates one single URL to retrieve all the JS files. Sometimes, this
can produce long URLs that browsers are unable to retrieve. Try setting the
symbol to false.</p> <div class="aui-message warning shadowed
information-macro">
<span class="aui-icon icon-warning">Icon</span>
<div class="message-content">
<p>This only applies to Tapestry 5.1.</p>
</div>
</div>
-</li><li>If you have included jQuery in conjunction with Tapestry's prototype,
that will cause a conflict with the '$' selector used by both. In this case,
you should put jQuery on top of the stack and turn on the <a shape="rect"
class="external-link" href="http://api.jquery.com/jQuery.noConflict/"
>jQuery.noConflict</a> mode.</li><li>Also, if you have included a custom or
third-party JS library on top of the stack that causes the JavaScript parsing
to fail, then check the JavaScript syntax in that library.</li><li>If you have
used a tool to minimize your JavaScript libraries, this can lead to JavaScript
syntax errors, so check if it works with all the JavaScript files
unpacked.</li></ul>
-
-
-<h3
id="JavaScriptFAQ-What'sthedifferencebetweentheT5objectandtheTapestryobjectinthebrowser?">What's
the difference between the <code>T5</code> object and the
<code>Tapestry</code> object in the browser?</h3>
-
-<p>Both of these objects are <em>namespaces</em>: containers of functions,
constants, and nested namespaces.</p>
-
-<p>The <code>T5</code> object is a replacement for the <code>Tapestry</code>
object, starting in release 5.3. Increasingly, functions defined by the
<code>Tapestry</code> object are being replaced with similar or equivalent
functions in the <code>T5</code> object.</p>
-
-<p>This is part of an overall goal, spanning at least two releases of
Tapestry, to make Tapestry JavaScript framework agnostic; which is to say, not
depend specifically on Prototype or jQuery. Much of the code in the
<code>Tapestry</code> object is specifically linked to Prototype and
Scriptaculous.</p>
-
-<p>The <code>T5</code> object represents a stable, documented, set of APIs
that are preferred when building components for maximum portability between
underlying JavaScript frameworks. In other words, when building component
libraries, coding to the <code>T5</code> object ensures that your component
will be useful regardless of whether the final application is built using
Prototype, jQuery or something else.</p></div>
+</li><li>If you have included jQuery in conjunction with Tapestry's prototype,
that will cause a conflict with the '$' selector used by both. In this case,
you should put jQuery on top of the stack and turn on the <a shape="rect"
class="external-link" href="http://api.jquery.com/jQuery.noConflict/"
>jQuery.noConflict</a> mode.</li><li>Also, if you have included a custom or
third-party JS library on top of the stack that causes the JavaScript parsing
to fail, then check the JavaScript syntax in that library.</li><li>If you have
used a tool to minimize your JavaScript libraries, this can lead to JavaScript
syntax errors, so check if it works with all the JavaScript files
unpacked.</li></ul><h3
id="JavaScriptFAQ-What'sthedifferencebetweentheT5objectandtheTapestryobjectinthebrowser?(5.3andearlier)">What's
the difference between the <code>T5</code> object and the
<code>Tapestry</code> object in the browser? (5.3 and earlier)</h3><p>Both of
these objects are <em>namespaces</em>: container
s of functions, constants, and nested namespaces.</p><p>The <code>T5</code>
object is a replacement for the <code>Tapestry</code> object, starting in
release 5.3. Increasingly, functions defined by the <code>Tapestry</code>
object are being replaced with similar or equivalent functions in the
<code>T5</code> object.</p><p>This is part of an overall goal, spanning at
least two releases of Tapestry, to make Tapestry JavaScript framework agnostic;
which is to say, not depend specifically on Prototype or jQuery. Much of the
code in the <code>Tapestry</code> object is specifically linked to Prototype
and Scriptaculous.</p><p>The <code>T5</code> object represents a stable,
documented, set of APIs that are preferred when building components for maximum
portability between underlying JavaScript frameworks. In other words, when
building component libraries, coding to the <code>T5</code> object ensures that
your component will be useful regardless of whether the final application is
built usi
ng Prototype, jQuery or something else.</p></div>
</div>
<div class="clearer"></div>
Modified: websites/production/tapestry/content/javascript-modules.html
==============================================================================
--- websites/production/tapestry/content/javascript-modules.html (original)
+++ websites/production/tapestry/content/javascript-modules.html Sun Nov 9
16:12:11 2014
@@ -65,7 +65,7 @@
<div class="clearer"></div>
<div id="breadcrumbs">
- <a href="index.html">Apache Tapestry</a> > <a
href="documentation.html">Documentation</a> > <a
href="user-guide.html">User Guide</a> > <a
href="javascript-modules.html">JavaScript Modules</a>
+ <a href="index.html">Apache Tapestry</a> > <a
href="documentation.html">Documentation</a> > <a
href="user-guide.html">User Guide</a> > <a
href="client-side-javascript.html">Client-Side JavaScript</a> > <a
href="javascript-modules.html">JavaScript Modules</a>
<a class="edit" title="Edit this page (requires approval -- just ask on
the mailing list)"
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=41813130">edit</a>
</div>
Modified: websites/production/tapestry/content/javascript-rewrite.html
==============================================================================
--- websites/production/tapestry/content/javascript-rewrite.html (original)
+++ websites/production/tapestry/content/javascript-rewrite.html Sun Nov 9
16:12:11 2014
@@ -62,11 +62,11 @@
<div id="content">
<div id="ConfluenceContent"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1411690823600 {padding: 0px;}
-div.rbtoc1411690823600 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1411690823600 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1415548109966 {padding: 0px;}
+div.rbtoc1415548109966 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1415548109966 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1411690823600">
+/*]]>*/</style><div class="toc-macro rbtoc1415548109966">
<ul class="toc-indentation"><li><a shape="rect"
href="#JavaScriptRewrite-TapestryandJavaScript">Tapestry and
JavaScript</a></li><li><a shape="rect"
href="#JavaScriptRewrite-TapestryJavaScriptLimitations(through5.3)">Tapestry
JavaScript Limitations (through 5.3)</a>
<ul class="toc-indentation"><li><a shape="rect"
href="#JavaScriptRewrite-DependenceonPrototype/Scriptaculous">Dependence on
Prototype/Scriptaculous</a></li><li><a shape="rect"
href="#JavaScriptRewrite-LackofDocumentation">Lack of
Documentation</a></li><li><a shape="rect"
href="#JavaScriptRewrite-LackofModuleStructure">Lack of Module
Structure</a></li><li><a shape="rect"
href="#JavaScriptRewrite-ComplexInitialization">Complex
Initialization</a></li></ul>
</li><li><a shape="rect"
href="#JavaScriptRewrite-JavaScriptImprovementsfor5.4">JavaScript Improvements
for 5.4</a>
Modified: websites/production/tapestry/content/legacy-javascript.html
==============================================================================
--- websites/production/tapestry/content/legacy-javascript.html (original)
+++ websites/production/tapestry/content/legacy-javascript.html Sun Nov 9
16:12:11 2014
@@ -65,7 +65,7 @@
<div class="clearer"></div>
<div id="breadcrumbs">
- <a href="index.html">Apache Tapestry</a> > <a
href="documentation.html">Documentation</a> > <a
href="user-guide.html">User Guide</a> > <a
href="legacy-javascript.html">Legacy JavaScript</a>
+ <a href="index.html">Apache Tapestry</a> > <a
href="documentation.html">Documentation</a> > <a
href="user-guide.html">User Guide</a> > <a
href="client-side-javascript.html">Client-Side JavaScript</a> > <a
href="legacy-javascript.html">Legacy JavaScript</a>
<a class="edit" title="Edit this page (requires approval -- just ask on
the mailing list)"
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=21792074">edit</a>
</div>
Modified: websites/production/tapestry/content/news.html
==============================================================================
--- websites/production/tapestry/content/news.html (original)
+++ websites/production/tapestry/content/news.html Sun Nov 9 16:12:11 2014
@@ -85,7 +85,12 @@ Tapestry 5.4-beta-22 contains a signific
This release is available from the Maven Central Repository, or as
a direct download.…
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=46633206">Edit</a>
+
+ </div>
</div>
@@ -110,16 +115,21 @@ This release is available from the Maven
While not an actual release candidate,…
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=41812917">Edit</a>
+
+ </div>
</div>
<div class="blog-post-listing">
<div class="logo-heading-block">
<span class="logoBlock">
- <a shape="rect" class="userLogoLink" href="
/confluence/display/~bobharner ">
- <img class="userLogo logo"
src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png"
alt="User icon: bobharner" title="bobharner">
- </a> </span>
+ <a shape="rect" class="userLogoLink"
href="/confluence/users/editmyprofilepicture.action" title="Add a picture of
yourself">
+ <img class="userLogo logo defaultLogo"
src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/profilepics/add_profile_pic.png"
alt="User icon: Add a picture of yourself">
+ </a> </span>
<span class="blogHeading">
<a shape="rect" class="blogHeading"
href="2014/03/07/tapestry-54-beta-3-preview-now-available.html">Tapestry
5.4-beta-3 preview now available</a>
</span><div class="page-metadata not-personal"><a shape="rect"
class="url fn confluence-userlink" href=" /confluence/display/~bobharner
">Bob Harner</a> posted on Mar 07, 2014</div>
@@ -132,16 +142,21 @@ While not an actual release candidate, b
If you're using Maven (or Gradle or Ivy, etc),…
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=39622379">Edit</a>
+
+ </div>
</div>
<div class="blog-post-listing">
<div class="logo-heading-block">
<span class="logoBlock">
- <a shape="rect" class="userLogoLink" href="
/confluence/display/~bobharner ">
- <img class="userLogo logo"
src="https://cwiki.apache.org/confluence/images/icons/profilepics/default.png"
alt="User icon: bobharner" title="bobharner">
- </a> </span>
+ <a shape="rect" class="userLogoLink"
href="/confluence/users/editmyprofilepicture.action" title="Add a picture of
yourself">
+ <img class="userLogo logo defaultLogo"
src="https://cwiki.apache.org/confluence/s/en_GB-1988229788/4109/76e0dbb30bc8580e459c201f3535d84f9283a9ac.1/_/images/icons/profilepics/add_profile_pic.png"
alt="User icon: Add a picture of yourself">
+ </a> </span>
<span class="blogHeading">
<a shape="rect" class="blogHeading"
href="2014/02/23/tapestry-54-beta-3-preview-release-vote-underway.html">Tapestry
5.4-beta-3 preview release vote underway</a>
</span><div class="page-metadata not-personal"><a shape="rect"
class="url fn confluence-userlink" href=" /confluence/display/~bobharner
">Bob Harner</a> posted on Feb 23, 2014</div>
@@ -152,7 +167,12 @@ If you're using Maven (or Gradle or Ivy,
A vote is underway for the 3rd beta preview release of Tapestry 5.4.
This follows 2 other betas and 29 alphas for the work on version 5.4 that began
over two years ago.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=39620689">Edit</a>
+
+ </div>
</div>
@@ -172,7 +192,12 @@ If you're using Maven (or Gradle or Ivy,
Apache Tapestry 5.3.7: improves security and stability.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=31819912">Edit</a>
+
+ </div>
</div>
@@ -192,7 +217,12 @@ If you're using Maven (or Gradle or Ivy,
A few days ago we changed our website infrastructure from a Confluence
export that gets rsync'ed over several hosts until it reaches the ASF's main
web servers to a SvnPubSub based approach. Now once an hour a buildbot build
exports the site from Confluence and checks the changes into SVN where they get
picked up by the public facing web servers almost instantly. This allows us to
keep our old website sources in Confluence but also allows us to check in
static resources like JavaDocs,…
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=30752160">Edit</a>
+
+ </div>
</div>
@@ -212,7 +242,12 @@ If you're using Maven (or Gradle or Ivy,
Apache Tapestry 5.3.6: improves security and stability.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=30739033">Edit</a>
+
+ </div>
</div>
@@ -232,7 +267,12 @@ If you're using Maven (or Gradle or Ivy,
The Tapestry Team is very proud to announce the availability of Apache
Tapestry 5.3.5.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=30149356">Edit</a>
+
+ </div>
</div>
@@ -252,7 +292,12 @@ If you're using Maven (or Gradle or Ivy,
The Tapestry Team is very proud to announce the availability of Apache
Tapestry 5.3.4.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=29688185">Edit</a>
+
+ </div>
</div>
@@ -272,7 +317,12 @@ If you're using Maven (or Gradle or Ivy,
The Tapestry Team is very proud to announce the availability of Apache
Tapestry 5.3.3.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=27844861">Edit</a>
+
+ </div>
</div>
@@ -292,7 +342,12 @@ If you're using Maven (or Gradle or Ivy,
James Ward has published a short article about how to deploy Tapestry
applications on the Heroku cloud computing service: Deploy Containerless
Tapestry Apps on Heroku .
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=27837807">Edit</a>
+
+ </div>
</div>
@@ -312,7 +367,12 @@ If you're using Maven (or Gradle or Ivy,
The Tapestry Team is very proud to announce the availability of Apache
Tapestry 5.3.2.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=27837553">Edit</a>
+
+ </div>
</div>
@@ -332,7 +392,12 @@ If you're using Maven (or Gradle or Ivy,
The Tapestry Team is very proud to announce the availability of Apache
Tapestry 5.3.1.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=27834077">Edit</a>
+
+ </div>
</div>
@@ -352,7 +417,12 @@ If you're using Maven (or Gradle or Ivy,
The Tapestry Team is very proud to announce the availability of Apache
Tapestry 5.3.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=27832056">Edit</a>
+
+ </div>
</div>
@@ -372,7 +442,12 @@ If you're using Maven (or Gradle or Ivy,
We've released a new <strong>release candidate</strong> for Tapestry
5.3: Apache Tapestry <strong>5.3-rc-2</strong>.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=27830050">Edit</a>
+
+ </div>
</div>
@@ -392,7 +467,12 @@ If you're using Maven (or Gradle or Ivy,
I've created a very long, detailed discussion of the importance of
Feedback as a cornerstone of Tapestry. It's available from my personal blog,
howardlewisship.com.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=27828095">Edit</a>
+
+ </div>
</div>
@@ -412,7 +492,12 @@ If you're using Maven (or Gradle or Ivy,
We've released the first beta preview of Tapestry 5.3: Tapestry
<strong>5.3-beta-1</strong>.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=27825488">Edit</a>
+
+ </div>
</div>
@@ -432,7 +517,12 @@ If you're using Maven (or Gradle or Ivy,
A short screencast highlighting improvements to Tapestry's handling of
server-side errors during Ajax requests
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=27824405">Edit</a>
+
+ </div>
</div>
@@ -452,7 +542,12 @@ If you're using Maven (or Gradle or Ivy,
A short screencast introducing some new components and features coming
in Tapestry 5.3
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=27822931">Edit</a>
+
+ </div>
</div>
@@ -472,7 +567,12 @@ If you're using Maven (or Gradle or Ivy,
A new stable version of Tapestry is available for download, Tapestry
5.2.6. We can recommend that all Tapestry 5.2 applications upgrade to version
5.2.6.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=27820418">Edit</a>
+
+ </div>
</div>
@@ -492,7 +592,12 @@ If you're using Maven (or Gradle or Ivy,
Apache Tapestry version 5.3.0 is now available. This is the first
alpha release of Tapestry 5.3. It is designed to be a drop-in replacement for
Tapestry 5.2, adding new components and features, with lower memory
utilization, and even faster startup.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=27361981">Edit</a>
+
+ </div>
</div>
@@ -512,7 +617,12 @@ If you're using Maven (or Gradle or Ivy,
We make bold claims right on the front page about performance and back
that up with usually anecdotal evidence. It's nice that a <a shape="rect"
class="external-link"
href="http://www.jtict.com/blog/rails-wicket-grails-play-lift-jsp/"
>disinterested third party has come up with their own framework performance
shootout</a>, covering everthing from Rails to Play to Wicket to (thanks to
Kalle) Tapestry 5.2.5. I have to say that Tapestry significantly rocked
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=26805615">Edit</a>
+
+ </div>
</div>
@@ -532,7 +642,12 @@ If you're using Maven (or Gradle or Ivy,
The new blog Java Magic has some detailed postings about Tapestry's
Aspect Oriented Programming features. This is a blog to track if you are
interested in some of the more advanced capabilities of Tapestry.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=26118772">Edit</a>
+
+ </div>
</div>
@@ -563,7 +678,12 @@ Groovy in Action, Second Edition
That really reflects some pent-up demand, and I hope to see that level of
interest continue.
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=26117001">Edit</a>
+
+ </div>
</div>
@@ -584,7 +704,12 @@ That really reflects some pent-up demand
Today I'm more in love with Tapestry 5 than ever before. I had a milestone
demo at work which went well, and could actually show a good portion of a
re-written website running and working! I'm at the heights of my project
development. I'm sure there are still few more dark evenings loaded with
frustration in store for my future,…
</div>
+
+ <div class="endsection">
+ <a shape="rect"
href="/confluence/pages/editblogpost.action?pageId=26116911">Edit</a>
+
+ </div>
</div>
<p> </p></div></div>
</div>
Added: websites/production/tapestry/content/operation-tracker.html
==============================================================================
--- websites/production/tapestry/content/operation-tracker.html (added)
+++ websites/production/tapestry/content/operation-tracker.html Sun Nov 9
16:12:11 2014
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+
+ <!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<html>
+<head>
+ <meta http-equiv="x-ua-compatible" content="IE=9">
+ <title>
+ Operation Tracker -- Apache Tapestry
+ </title>
+ <link type="text/css" rel="stylesheet" href="/resources/space.css">
+
+
+ <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
+
+</head>
+<body>
+ <div class="wrapper bs">
+
+<div id="navigation"><div class="nav">
+<ul class="alternate"><li><a shape="rect"
href="index.html">Home</a></li><li><a shape="rect"
href="getting-started.html">Getting Started</a></li><li><a shape="rect"
href="documentation.html">Documentation</a></li><li><a shape="rect"
href="download.html">Download</a></li><li><a shape="rect"
href="about.html">About</a></li><li><a shape="rect"
href="community.html">Community</a></li><li><a shape="rect"
class="external-link" href="http://www.apache.org/">Apache</a></li><li><a
shape="rect" class="external-link"
href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a
shape="rect" class="external-link"
href="http://www.apache.org/foundation/thanks.html">Thanks</a></li></ul>
+</div></div>
+
+<div id="top">
+<div id="smallbanner"><div class="searchbox" style="float:right;margin: .3em
1em .1em 1em">
+<p>
+<span style="color: #999; font-size: 90%">Tapestry docs, issues, wikis &
blogs:</span>
+</p><form enctype="application/x-www-form-urlencoded" method="get"
action="http://tapestry.apache.org/search.html">
+ <input type="text" name="q">
+ <input type="submit" value="Search">
+</form>
+
+</div>
+
+<div class="emblem" style="float:left"><a shape="rect" href="index.html"><img
class="confluence-embedded-image"
src="https://cwiki.apache.org/confluence/download/attachments/21791252/tapestry_s.png?version=3&modificationDate=1293093635000&api=v2"
data-image-src="/confluence/download/attachments/21791252/tapestry_s.png?version=3&modificationDate=1293093635000&api=v2"></a></div>
+<div class="title" style="float:left; margin: 0 0 0 3em">
+<h1 id="SmallBanner-PageTitle">Operation Tracker</h1></div></div>
+<div class="clearer"></div>
+</div>
+
+<div class="clearer"></div>
+
+ <div id="breadcrumbs">
+ <a href="index.html">Apache Tapestry</a> > <a
href="documentation.html">Documentation</a> > <a
href="user-guide.html">User Guide</a> > <a
href="ioc.html">IoC</a> > <a
href="operation-tracker.html">Operation Tracker</a>
+ <a class="edit" title="Edit this page (requires approval -- just ask on
the mailing list)"
href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=47384480">edit</a>
+ </div>
+
+<div id="content">
+<div id="ConfluenceContent"><p>Have you ever hit an error in some code and
been faced with a giant stack trace, and no clue what that means?  Us too.
We wished there was a way for the exception to describe the path to the error
not (just) in terms of which methods called which methods, but
what <em>operations</em> triggered what other operations. That's the
OperationTracker.</p><p>The operation tracker is another aspect of Tapestry's
commitment to feedback.</p><p>The <a shape="rect" class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/OperationTracker.html">OperationTracker</a>
is a resource; it's actually a singleton, and is available for injection into
any IoC service (or Tapestry component).</p><p>Using the OperationTracker you
may run a Runnable, or invoke an Invokable (returning a typed response).
 Associated with the operation is a description string.</p><p>If there are
no exceptions, then no problem.</p><p>If there 
60;are exceptions, then you'll see the console output logged at the point of
the exception:</p><pre></pre><p>qtp644826761-13 [ERROR] Registry Operations
trace:<br clear="none">qtp644826761-13 [ERROR] Registry [ 1] Handling page
render request for page DatumEditor<br clear="none">qtp644826761-13 [ERROR]
Registry [ 2] Constructing instance of page class
org.apache.tapestry5.integration.app1.pages.DatumEditor<br
clear="none">qtp644826761-13 [ERROR] Registry [ 3] Assembling root component
for page DatumEditor<br clear="none">qtp644826761-13 [ERROR] Registry [ 4]
Running component class transformations on
org.apache.tapestry5.integration.app1.pages.Datum<br
clear="none">qtp644826761-13 [ERROR] RequestExceptionHandler Processing of
request failed with uncaught exception: java.lang.RuntimeException: Exception
assembling root component of page DatumEditor: Unable to instantiate instance
of transformed class org.apache.tapestry5.integration.app1.pages.DatumEditor:
java.lang.reflect.Invocatio
nTargetException<br clear="none">java.lang.RuntimeException: Exception
assembling root component of page DatumEditor: Unable to instantiate instance
of transformed class org.apache.tapestry5.integration.app1.pages.DatumEditor:
java.lang.reflect.InvocationTargetException<br clear="none"> at
org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.performAssembleRootComponent(ComponentAssemblerImpl.<a
shape="rect" class="external-link" href="http://java:129" >java:129</a>)<br
clear="none"> at
org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.access$000(ComponentAssemblerImpl.java:37)<br
clear="none"> at
org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$1.invoke(ComponentAssemblerImpl.java:81)<br
clear="none"> at
org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$1.invoke(ComponentAssemblerImpl.java:78)<br
clear="none"> at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:82)<br
clear="none"> at org.apache.ta
pestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:72)<br
clear="none"> at
org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.<a
shape="rect" class="external-link" href="http://java:1258" >java:1258</a>)<br
clear="none"> at
org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.assembleRootComponent(ComponentAssemblerImpl.java:76)<br
clear="none"> at
org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.<a
shape="rect" class="external-link" href="http://java:197" >java:197</a>)<br
clear="none"> at
org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.<a
shape="rect" class="external-link" href="http://java:190" >java:190</a>)<br
clear="none"> at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:82)<br
clear="none"> at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:72)<br
clear="none"> at org.a
pache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.<a shape="rect"
class="external-link" href="http://java:1258" >java:1258</a>)<br clear="none">
at
org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.<a
shape="rect" class="external-link" href="http://java:189" >java:189</a>)<br
clear="none"> at $PageLoader_13a0346ec83c4e52.loadPage(Unknown Source)<br
clear="none"> at
org.apache.tapestry5.internal.services.PageSourceImpl.getPage(PageSourceImpl.<a
shape="rect" class="external-link" href="http://java:104" >java:104</a>)<br
clear="none"> at $PageSource_13a0346ec83c4e51.getPage(Unknown Source)<br
clear="none"> at $PageSource_13a0346ec83c4e50.getPage(Unknown Source)<br
clear="none"> at
org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:86)<br
clear="none"> at $RequestPageCache_13a0346ec83c4e4f.get(Unknown Source)<br
clear="none"> at $RequestPageCache_13a0346ec83c4e4e.get(Unknown Source)<br
clear="none"> at org.ap
ache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:56)<br
clear="none"> at
org.apache.tapestry5.modules.TapestryModule$34.handle(TapestryModule.<a
shape="rect" class="external-link" href="http://java:1978" >java:1978</a>)<br
clear="none"> at $PageRenderRequestHandler_13a0346ec83c4f9c.handle(Unknown
Source)<br clear="none"> at
$PageRenderRequestHandler_13a0346ec83c4f97.handle(Unknown Source)<br
clear="none"> at
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48)<br
clear="none"> at
org.apache.tapestry5.internal.services.DeferredResponseRenderer.handlePageRender(DeferredResponseRenderer.java:52)<br
clear="none"> at
$ComponentRequestFilter_13a0346ec83c4f95.handlePageRender(Unknown Source)<br
clear="none"> at
$ComponentRequestHandler_13a0346ec83c4f98.handlePageRender(Unknown Source)<br
clear="none"> at org.apache.tapestry5.services.InitializeActivePageName
.handlePageRender(InitializeActivePageName.java:47)<br clear="none"> at
$ComponentRequestFilter_13a0346ec83c4f94.handlePageRender(Unknown Source)<br
clear="none"> at
$ComponentRequestHandler_13a0346ec83c4f98.handlePageRender(Unknown Source)<br
clear="none"> at
org.apache.tapestry5.internal.services.ProductionModeUnknownComponentFilter.handlePageRender(ProductionModeUnknownComponentFilter.java:62)<br
clear="none"> at
$ComponentRequestFilter_13a0346ec83c4f93.handlePageRender(Unknown Source)<br
clear="none"> at
$ComponentRequestHandler_13a0346ec83c4f98.handlePageRender(Unknown Source)<br
clear="none"> at
org.apache.tapestry5.internal.services.RequestOperationTracker$2.run(RequestOperationTracker.java:73)<br
clear="none"> at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:56)<br
clear="none"> at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:60)<br
clear="none"> at org.apache.tapestry5.ioc.internal.Regi
stryImpl.run(RegistryImpl.<a shape="rect" class="external-link"
href="http://java:1252" >java:1252</a>)<br clear="none"> at
org.apache.tapestry5.internal.services.RequestOperationTracker.handlePageRender(RequestOperationTracker.java:66)<br
clear="none"> at
$ComponentRequestFilter_13a0346ec83c4f92.handlePageRender(Unknown Source)<br
clear="none"> at
$ComponentRequestHandler_13a0346ec83c4f98.handlePageRender(Unknown Source)<br
clear="none"> at
$ComponentRequestHandler_13a0346ec83c4f81.handlePageRender(Unknown Source)<br
clear="none"> at
org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:52)<br
clear="none"> at $Dispatcher_13a0346ec83c4f7f.dispatch(Unknown Source)<br
clear="none"> at $Dispatcher_13a0346ec83c4f80.dispatch(Unknown Source)<br
clear="none"> at $Dispatcher_13a0346ec83c4f74.dispatch(Unknown Source)<br
clear="none"> at
org.apache.tapestry5.modules.TapestryModule$RequestHandlerTerminator.service(TapestryModule.<a
shape="rect" class="
external-link" href="http://java:304" >java:304</a>)<br clear="none"> at
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)<br
clear="none"> at $RequestFilter_13a0346ec83c4f73.service(Unknown Source)<br
clear="none"> at $RequestHandler_13a0346ec83c4f75.service(Unknown Source)<br
clear="none"> at
org.apache.tapestry5.modules.TapestryModule$3.service(TapestryModule.<a
shape="rect" class="external-link" href="http://java:854" >java:854</a>)<br
clear="none"> at $RequestHandler_13a0346ec83c4f75.service(Unknown Source)<br
clear="none"> at
org.apache.tapestry5.modules.TapestryModule$2.service(TapestryModule.<a
shape="rect" class="external-link" href="http://java:844" >java:844</a>)<br
clear="none"> at $RequestHandler_13a0346ec83c4f75.service(Unknown Source)<br
clear="none"> at
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:89)<br
clear="none"> at $RequestHandler_13a0346ec83c4f75.service(Unknown Source)<br c
lear="none"> at
org.apache.tapestry5.integration.app1.services.AppModule$2.service(AppModule.<a
shape="rect" class="external-link" href="http://java:111" >java:111</a>)<br
clear="none"> at $RequestFilter_13a0346ec83c4f71.service(Unknown Source)<br
clear="none"> at $RequestHandler_13a0346ec83c4f75.service(Unknown Source)<br
clear="none"> at $RequestHandler_13a0346ec83c4f6a.service(Unknown Source)<br
clear="none"> at
org.apache.tapestry5.modules.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.<a
shape="rect" class="external-link" href="http://java:255" >java:255</a>)<br
clear="none"> at
org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:59)<br
clear="none"> at $HttpServletRequestHandler_13a0346ec83c4f6c.service(Unknown
Source)<br clear="none"> at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)<br
clear="none"> at $HttpServletRequestFilter_13a0346ec83c4f6d.service(Unknown
Source)<br clear="none">
at $HttpServletRequestFilter_13a0346ec83c4f68.service(Unknown Source)<br
clear="none"> at $HttpServletRequestHandler_13a0346ec83c4f6c.service(Unknown
Source)<br clear="none"> at
org.apache.tapestry5.modules.TapestryModule$1.service(TapestryModule.<a
shape="rect" class="external-link" href="http://java:804" >java:804</a>)<br
clear="none"> at $HttpServletRequestHandler_13a0346ec83c4f6c.service(Unknown
Source)<br clear="none"> at
$HttpServletRequestHandler_13a0346ec83c4f67.service(Unknown Source)<br
clear="none"> at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.<a
shape="rect" class="external-link" href="http://java:166" >java:166</a>)<br
clear="none"> at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.<a
shape="rect" class="external-link" href="http://java:1291" >java:1291</a>)<br
clear="none"> at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.<a
shape="rect" class="external-link" href="http://java:443" >java:443</a>)<br cl
ear="none"> at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.<a
shape="rect" class="external-link" href="http://java:137" >java:137</a>)<br
clear="none"> at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.<a
shape="rect" class="external-link" href="http://java:556" >java:556</a>)<br
clear="none"> at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.<a
shape="rect" class="external-link" href="http://java:227" >java:227</a>)<br
clear="none"> at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.<a
shape="rect" class="external-link" href="http://java:1044" >java:1044</a>)<br
clear="none"> at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.<a shape="rect"
class="external-link" href="http://java:372" >java:372</a>)<br clear="none"> at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.<a
shape="rect" class="external-link" href="http://java:189" >java:189</a>)<br
clear="n
one"> at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.<a
shape="rect" class="external-link" href="http://java:978" >java:978</a>)<br
clear="none"> at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.<a
shape="rect" class="external-link" href="http://java:135" >java:135</a>)<br
clear="none"> at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.<a
shape="rect" class="external-link" href="http://java:116" >java:116</a>)<br
clear="none"> at org.eclipse.jetty.server.Server.handle(Server.<a shape="rect"
class="external-link" href="http://java:369" >java:369</a>)<br clear="none"> at
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.<a
shape="rect" class="external-link" href="http://java:486" >java:486</a>)<br
clear="none"> at
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.<a
shape="rect" class="external-link" href="http://java:933" >java:933</a>)<br cle
ar="none"> at
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.<a
shape="rect" class="external-link" href="http://java:995" >java:995</a>)<br
clear="none"> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.<a
shape="rect" class="external-link" href="http://java:644" >java:644</a>)<br
clear="none"> at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.<a
shape="rect" class="external-link" href="http://java:235" >java:235</a>)<br
clear="none"> at
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)<br
clear="none"> at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.<a
shape="rect" class="external-link" href="http://java:668" >java:668</a>)<br
clear="none"> at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)<br
clear="none"> at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.<a
shape="rect" class="external
-link" href="http://java:608" >java:608</a>)<br clear="none"> at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.<a
shape="rect" class="external-link" href="http://java:543" >java:543</a>)<br
clear="none"> at java.lang.Thread.run(Thread.<a shape="rect"
class="external-link" href="http://java:724" >java:724</a>)<br
clear="none">Caused by: java.lang.RuntimeException: Unable to instantiate
instance of transformed class
org.apache.tapestry5.integration.app1.pages.DatumEditor:
java.lang.reflect.InvocationTargetException<br clear="none"> at
org.apache.tapestry5.internal.plastic.ClassInstantiatorImpl.newInstance(ClassInstantiatorImpl.<a
shape="rect" class="external-link" href="http://java:113" >java:113</a>)<br
clear="none"> at
org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$2$1.newInstance(ComponentInstantiatorSourceImpl.<a
shape="rect" class="external-link" href="http://java:235" >java:235</a>)<br
clear="none"> at org.apache.tapestry5.internal
.structure.InternalComponentResourcesImpl.<init>(InternalComponentResourcesImpl.<a
shape="rect" class="external-link" href="http://java:163" >java:163</a>)<br
clear="none"> at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.<init>(ComponentPageElementImpl.<a
shape="rect" class="external-link" href="http://java:555" >java:555</a>)<br
clear="none"> at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.<init>(ComponentPageElementImpl.<a
shape="rect" class="external-link" href="http://java:579" >java:579</a>)<br
clear="none"> at
org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.performAssembleRootComponent(ComponentAssemblerImpl.java:97)<br
clear="none"> ... 94 more<br clear="none">Caused by:
java.lang.reflect.InvocationTargetException<br clear="none"> at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)<br
clear="none"> at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.
java:57)<br clear="none"> at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)<br
clear="none"> at java.lang.reflect.Constructor.newInstance(Constructor.<a
shape="rect" class="external-link" href="http://java:526" >java:526</a>)<br
clear="none"> at
org.apache.tapestry5.internal.plastic.ClassInstantiatorImpl.newInstance(ClassInstantiatorImpl.<a
shape="rect" class="external-link" href="http://java:109" >java:109</a>)<br
clear="none"> ... 99 more<br clear="none">Caused by:
org.apache.tapestry5.ioc.internal.OperationException: Field _value of class
org.apache.tapestry5.integration.app1.pages.Datum must be instrumented, and may
not be public.<br clear="none"> at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.<a
shape="rect" class="external-link" href="http://java:184" >java:184</a>)<br
clear="none"> at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:62)<br
cl
ear="none"> at
org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:60)<br
clear="none"> at
org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.<a shape="rect"
class="external-link" href="http://java:1252" >java:1252</a>)<br clear="none">
at
org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.transform(ComponentInstantiatorSourceImpl.<a
shape="rect" class="external-link" href="http://java:266" >java:266</a>)<br
clear="none"> at
org.apache.tapestry5.internal.plastic.PlasticClassPool.loadAndTransformClass(PlasticClassPool.<a
shape="rect" class="external-link" href="http://java:368" >java:368</a>)<br
clear="none"> at
org.apache.tapestry5.internal.plastic.PlasticClassLoader.loadClass(PlasticClassLoader.java:38)<br
clear="none"> at java.lang.ClassLoader.loadClass(ClassLoader.<a shape="rect"
class="external-link" href="http://java:357" >java:357</a>)<br clear="none"> at
org.apache.tapestry5.integration.app1.pages.Dat
umEditor.initializeInstance(DatumEditor.java:22)<br clear="none"> at
org.apache.tapestry5.integration.app1.pages.DatumEditor.<init>(DatumEditor.java)<br
clear="none"> ... 104 more<br clear="none">Caused by:
java.lang.IllegalArgumentException: Field _value of class
org.apache.tapestry5.integration.app1.pages.Datum must be instrumented, and may
not be public.<br clear="none"> at
org.apache.tapestry5.internal.plastic.PlasticFieldImpl.ensureNotPublic(PlasticFieldImpl.<a
shape="rect" class="external-link" href="http://java:166" >java:166</a>)<br
clear="none"> at
org.apache.tapestry5.internal.plastic.PlasticFieldImpl.replaceFieldReadAccess(PlasticFieldImpl.<a
shape="rect" class="external-link" href="http://java:423" >java:423</a>)<br
clear="none"> at
org.apache.tapestry5.internal.plastic.PlasticFieldImpl.setComputedConduit(PlasticFieldImpl.<a
shape="rect" class="external-link" href="http://java:292" >java:292</a>)<br
clear="none"> at org.apache.tapestry5.internal.transform.Unclaimed
FieldWorker.transformField(UnclaimedFieldWorker.java:99)<br clear="none"> at
org.apache.tapestry5.internal.transform.UnclaimedFieldWorker.transform(UnclaimedFieldWorker.java:88)<br
clear="none"> at
$ComponentClassTransformWorker2_13a0346ec83c4e9a.transform(Unknown Source)<br
clear="none"> at
$ComponentClassTransformWorker2_13a0346ec83c4e9c.transform(Unknown Source)<br
clear="none"> at
$ComponentClassTransformWorker2_13a0346ec83c4e7f.transform(Unknown Source)<br
clear="none"> at
org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$3.run(ComponentInstantiatorSourceImpl.<a
shape="rect" class="external-link" href="http://java:316" >java:316</a>)<br
clear="none"> at
org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:56)<br
clear="none"> ... 112 more</p><p>Notice how the operation trace at the top of
the text succinctly explains how execution arrived at the point of failure and
why, information that isn't captured in a stack trace.</p><p
>This operation trace appears in the Tapestry web applications, as part of the
><a shape="rect" href="runtime-exceptions.html">default exception report
>page</a>.</p><p>There are times, especially when tracking down startup
>failures, where it is useful to see the operations log even without explicit
>exceptions.</p><p>Enabling <strong>debug</strong> level logging for
>the <strong>org.apache.tapestry5.ioc.Registry</strong> logging category
>will provide huge volumes of output in the console:</p><pre></pre><p>[DEBUG]
>Registry [ 1] --> Creating non-proxied instance of service
>ServiceConfigurationListenerHub<br clear="none">[DEBUG] Registry [ 2] -->
>Creating plan to instantiate
>org.apache.tapestry5.ioc.services.ServiceConfigurationListenerHub via public
>org.apache.tapestry5.ioc.services.ServiceConfigurationListenerHub(java.util.List)<br
> clear="none">[DEBUG] Registry [ 3] --> Determining injection value for
>parameter #1 (java.util.List)<br clear="none">[DEBUG] Registry [ 4]
--> Collecting ordered configuration for service
ServiceConfigurationListenerHub<br clear="none">[DEBUG] Registry [ 5] -->
Invoking
org.apache.tapestry5.ioc.FredModule.configureServiceConfigurationListener(OrderedConfiguration,
CatchAllServiceConfigurationListener) (at FredModule.<a shape="rect"
class="external-link" href="http://java:141" >java:141</a>)<br
clear="none">[DEBUG] Registry [ 6] --> Determining injection value for
parameter #1 (org.apache.tapestry5.ioc.OrderedConfiguration)<br
clear="none">[DEBUG] Registry [ 6] <-- Determining injection value for
parameter #1 (org.apache.tapestry5.ioc.OrderedConfiguration) [0.17 ms]<br
clear="none">[DEBUG] Registry [ 6] --> Determining injection value for
parameter #2 (org.apache.tapestry5.ioc.CatchAllServiceConfigurationListener)<br
clear="none">[DEBUG] Registry [ 7] --> Creating proxy for service
MasterObjectProvider<br clear="none">[DEBUG] Registry [ 7] <-- Creating
proxy for service MasterObjectProvider [2.82 m
s]<br clear="none">[DEBUG] Registry [ 7] --> Realizing service
MasterObjectProvider<br clear="none">[DEBUG] Registry [ 8] --> Instantiating
service MasterObjectProvider implementation via
org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl(List,
OperationTracker) (at MasterObjectProviderImpl.java:33) via
org.apache.tapestry5.ioc.modules.TapestryIOCModule.bind(ServiceBinder) (at
TapestryIOCModule.java:50)<br clear="none">[DEBUG] Registry [ 9] -->
Creating plan to instantiate
org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl via public
org.apache.tapestry5.ioc.internal.services.MasterObjectProviderImpl(java.util.List,org.apache.tapestry5.ioc.OperationTracker)<br
clear="none">[DEBUG] Registry [ 10] --> Determining injection value for
parameter #1 (java.util.List)<br clear="none">[DEBUG] Registry [ 11] -->
Collecting ordered configuration for service MasterObjectProvider<br
clear="none">[DEBUG] Registry [ 12] --> Invoking org.apache.ta
pestry5.ioc.modules.TapestryIOCModule.setupObjectProviders(OrderedConfiguration,
ServiceOverride) (at TapestryIOCModule.<a shape="rect" class="external-link"
href="http://java:136" >java:136</a>)<br clear="none">[DEBUG] Registry [ 13]
--> Determining injection value for parameter #1
(org.apache.tapestry5.ioc.OrderedConfiguration)<br clear="none">[DEBUG]
Registry [ 13] <-- Determining injection value for parameter #1
(org.apache.tapestry5.ioc.OrderedConfiguration) [0.17 ms]<br
clear="none">[DEBUG] Registry [ 13] --> Determining injection value for
parameter #2 (org.apache.tapestry5.ioc.services.ServiceOverride)<br
clear="none">[DEBUG] Registry [ 14] --> Creating proxy for service
ServiceOverride<br clear="none">[DEBUG] Registry [ 14] <-- Creating proxy
for service ServiceOverride [2.15 ms]<br clear="none">[DEBUG] Registry [ 13]
<-- Determining injection value for parameter #2
(org.apache.tapestry5.ioc.services.ServiceOverride) [2.62 ms]<br
clear="none">[DEBUG] Regis
try [ 13] --> Creating proxy for service UpdateListenerHub<br
clear="none">[DEBUG] Registry [ 13] <-- Creating proxy for service
UpdateListenerHub [2.28 ms]</p><p>...</p><p>The output identifies operation
depth (the number in square brackets), whether the operation is
starting (–>) or finishing (<–), and even the
execution time of the operation.</p></div>
+</div>
+
+<div class="clearer"></div>
+<div id="footer">
+<div id="footer"><p>Apache Tapestry, Tapestry, Apache, the Apache feather
logo, and the Apache Tapestry project logo are trademarks of The Apache
Software Foundation.<br clear="none">
+</p><p><script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-400821-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript';
ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' :
'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
+ })();
+</script></p><p></p></div>
+</div>
+ <div id="comments_thread"></div>
+ <script type="text/javascript"
src="https://comments.apache.org/show_comments.lua?site=tapestry&page=http://tapestry.apache.org/operation-tracker.html"
async="true">
+ </script>
+ <noscript>
+ <iframe width="100%" height="500"
src="https://comments.apache.org/iframe.lua?site=tapestry&page=http://tapestry.apache.org/operation-tracker.html"></iframe>
+ </noscript>
+ </div>
+</body>
+</html>
Propchange: websites/production/tapestry/content/operation-tracker.html
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
websites/production/tapestry/content/page-and-component-classes-faq.html
==============================================================================
--- websites/production/tapestry/content/page-and-component-classes-faq.html
(original)
+++ websites/production/tapestry/content/page-and-component-classes-faq.html
Sun Nov 9 16:12:11 2014
@@ -122,13 +122,13 @@ public class DBImage
-<span class="gliffy-container" id="gliffy-container-23527573-2710"
data-fullwidth="750" data-ceoid="23335008"
data-edit="${diagramEditLink.getLinkUrl()}"
data-full="/confluence/plugins/gliffy/viewer.action?inline=false&attachmentId=23527573&attachmentVersion=4&lastPage=%2Fpages%2Fviewpage.action%3FpageId%3D23335008"
data-filename="Class Loaders">
+<span class="gliffy-container" id="gliffy-container-23527573-9539"
data-fullwidth="750" data-ceoid="23335008"
data-edit="/confluence/plugins/gliffy/editor.action?name=Class
Loaders&ceoid=23335008&key=TAPESTRY&pageId=23335008&inline=false&lastPage=%2Fpages%2Fviewpage.action%3FpageId%3D23335008"
data-full="/confluence/plugins/gliffy/viewer.action?inline=false&name=Class
Loaders&ceoid=23335008&key=TAPESTRY&pageId=23335008&attachmentId=23527573&attachmentVersion=4&lastPage=%2Fpages%2Fviewpage.action%3FpageId%3D23335008"
data-filename="Class Loaders">
- <map id="gliffy-map-23527573-8024" name="gliffy-map-23527573-8024"></map>
+ <map id="gliffy-map-23527573-9685" name="gliffy-map-23527573-9685"></map>
- <img class="gliffy-image" id="gliffy-image-23527573-2710" width="750"
height="425" data-full-width="750" data-full-height="425"
src="https://cwiki.apache.org/confluence/download/attachments/23335008/Class%20Loaders.png?version=4&modificationDate=1283534469000&api=v2"
alt="Class Loaders" usemap="#gliffy-map-23527573-8024">
+ <img class="gliffy-image" id="gliffy-image-23527573-9539" width="750"
height="425" data-full-width="750" data-full-height="425"
src="https://cwiki.apache.org/confluence/download/attachments/23335008/Class%20Loaders.png?version=4&modificationDate=1283534469000&api=v2"
alt="Class Loaders" usemap="#gliffy-map-23527573-9685">
- <map class="gliffy-dynamic" id="gliffy-dynamic-map-23527573-2710"
name="gliffy-dynamic-map-23527573-2710"></map>
+ <map class="gliffy-dynamic" id="gliffy-dynamic-map-23527573-9539"
name="gliffy-dynamic-map-23527573-9539"></map>
</span>
Modified: websites/production/tapestry/content/persistent-page-data.html
==============================================================================
--- websites/production/tapestry/content/persistent-page-data.html (original)
+++ websites/production/tapestry/content/persistent-page-data.html Sun Nov 9
16:12:11 2014
@@ -99,105 +99,35 @@
</div>
</li></ul>
-</div>
-
-<h1 id="PersistentPageData-PersistentPageData">Persistent Page Data</h1>
-
- <div class="aui-message hint shadowed information-macro">
+</div><h1 id="PersistentPageData-PersistentPageData">Persistent Page Data</h1>
<div class="aui-message hint shadowed information-macro">
<span class="aui-icon icon-hint">Icon</span>
<div class="message-content">
<p>The use of the term "persistence" here refers
to <em>page-level</em> persistence, NOT database persistence.</p>
</div>
</div>
-
-
-<p>Most instance variables in Tapestry are automatically cleared at the end of
each request. This is important, as it pertains to how Tapestry pages are
shared, over time, by many users.</p>
-
-<p>However, you often want to store some data on a <em>single</em> page, and
have access to it in later requests to that same page, without having to store
it in a database between requests. (To store values across multiple pages, see
<a shape="rect" href="session-storage.html">Session Storage</a>.)</p>
-
-<p>Making page data persist across requests to a single page is accomplished
with the @<a shape="rect" class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Persist.html">Persist</a>
annotation. This annotation is applied to private instance fields of
components:</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent
panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
- @Persist
+<p>Most instance variables in Tapestry are automatically cleared at the end of
each request. This is important, as it pertains to how Tapestry pages are
shared, over time, by many users.</p><p>However, you often want to store some
data on a <em>single</em> page, and have access to it in later requests to that
same page, without having to store it in a database between requests. (To store
values across multiple pages, see <a shape="rect"
href="session-storage.html">Session Storage</a>.)</p><p>Making page data
persist across requests to a single page is accomplished with the @<a
shape="rect" class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Persist.html">Persist</a>
annotation. This annotation is applied to private instance fields of
components:</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[ @Persist
private int value;
]]></script>
-</div></div>
-
-<p>Such annotated fields will retain their state between requests. Generally,
speaking, this means that the value is stored into the session (but other
approaches are possible).</p>
-
-<p>Whenever you make a change to a persistent field, its value is saved. On
later requests to the same page, the value for the field is restored.</p>
-
-<h2 id="PersistentPageData-PersistenceStrategies">Persistence Strategies</h2>
-
-<p>The value for each field is the <em>strategy</em> used to store the field
between requests.</p>
-
-<h3 id="PersistentPageData-SessionStrategy">Session Strategy</h3>
-
-<p>The session strategy stores field changes into the session; the session is
created as necessary.</p>
-
-<p>A suitably long session attribute name is used; it incorporates the name of
the page, the nested component id, and the name of the field.</p>
-
-<p>Session strategy is the default strategy used unless otherwise
overridden.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader
panelHeader pdl" style="border-bottom-width: 1px;"><b>Example: Session
Strategy</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
- @Persist
+</div></div><p>Such annotated fields will retain their state between requests.
Generally, speaking, this means that the value is stored into the session (but
other approaches are possible).</p><p>Whenever you make a change to a
persistent field, its value is saved. On later requests to the same page, the
value for the field is restored.</p><h2
id="PersistentPageData-PersistenceStrategies">Persistence Strategies</h2><p>The
value for each field is the <em>strategy</em> used to store the field between
requests.</p><h3 id="PersistentPageData-SessionStrategy">Session
Strategy</h3><p>The session strategy stores field changes into the session; the
session is created as necessary.</p><p>A suitably long session attribute name
is used; it incorporates the name of the page, the nested component id, and the
name of the field.</p><p>Session strategy is the default strategy used unless
otherwise overridden.</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeHeader panelHead
er pdl" style="border-bottom-width: 1px;"><b>Example: Session
Strategy</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[ @Persist
private int value;
]]></script>
-</div></div>
-
-<h3 id="PersistentPageData-FlashStrategy">Flash Strategy</h3>
-
-<p>The flash strategy stores information in the session as well, just for not
very long. Values are stored into the session, but then deleted from the
session as they are first used to restore a page's state.</p>
-
-<p>The flash is typically used to store temporary messages that should only be
displayed to the user once.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader
panelHeader pdl" style="border-bottom-width: 1px;"><b>Example: Flash
Strategy</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
- @Persist(PersistenceConstants.FLASH)
+</div></div><h3 id="PersistentPageData-FlashStrategy">Flash
Strategy</h3><p>The flash strategy stores information in the session as well,
just for not very long. Values are stored into the session, but then deleted
from the session as they are first used to restore a page's state.</p><p>The
flash is typically used to store temporary messages that should only be
displayed to the user once.</p><div class="code panel pdl" style="border-width:
1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width:
1px;"><b>Example: Flash Strategy</b></div><div class="codeContent panelContent
pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[ @Persist(PersistenceConstants.FLASH)
private int value;
]]></script>
-</div></div>
-
-<h3 id="PersistentPageData-ClientStrategy">Client Strategy</h3>
-
-<p>The field is persisted onto the client; you will see an additional query
parameter in each URL (or an extra hidden field in each form).</p>
-
-<p>Client persistence is somewhat expensive. It can bloat the size of the
rendered pages by adding hundreds of characters to each link. There is extra
processing on each request to de-serialize the values encoded into the query
parameter.</p>
-
-<p>Client persistence does not scale very well; as more information is stored
into the query parameter, its length can become problematic. In many cases, web
browsers, firewalls or other servers may silently truncate the URL which will
break the application.</p>
-
-<p>Use client persistence with care, and store a minimal amount of data. Try
to store the identity (that is, primary key) of an object, rather than the
object itself.</p>
-
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader
panelHeader pdl" style="border-bottom-width: 1px;"><b>Example: Client
Strategy</b></div><div class="codeContent panelContent pdl">
-<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
- @Persist(PersistenceConstants.CLIENT)
+</div></div><h3 id="PersistentPageData-ClientStrategy">Client
Strategy</h3><p>The field is persisted onto the client; you will see an
additional query parameter in each URL (or an extra hidden field in each
form).</p><p>Client persistence is somewhat expensive. It can bloat the size of
the rendered pages by adding hundreds of characters to each link. There is
extra processing on each request to de-serialize the values encoded into the
query parameter.</p><p>Client persistence does not scale very well; as more
information is stored into the query parameter, its length can become
problematic. In many cases, web browsers, firewalls or other servers may
silently truncate the URL which will break the application.</p><p>Use client
persistence with care, and store a minimal amount of data. Try to store the
identity (that is, primary key) of an object, rather than the object
itself.</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeHeader panelHeader pdl" style="bord
er-bottom-width: 1px;"><b>Example: Client Strategy</b></div><div
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[ @Persist(PersistenceConstants.CLIENT)
private int value;
]]></script>
-</div></div>
-
-<h2 id="PersistentPageData-PersistenceStrategyInheritance">Persistence
Strategy Inheritance</h2>
-
-<p>By default the value for the Persist annotation is the empty string. When
this is true, then the actual strategy to be used is determined by a search up
the component hierarchy.</p>
-
-<p>For each component, the meta-data property
<code>tapestry.persistence-strategy</code> is checked. This can be specified
using the <a shape="rect" class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Meta.html">Meta</a>
annotation.</p>
-
-<p>If the value is non-blank, then that strategy is used. This allows a
component to control the persistence strategy used inside any sub-components
(that don't explicitly use a different strategy).</p>
-
-<p>In any case, if no component provides the meta data, then the ultimate
default, "session", is used.</p>
-
-<h2 id="PersistentPageData-DefaultValues">Default Values</h2>
-
-<p>Fields marked with @Persist may not have default values (whether set
inline, or inside a constructor).</p>
-
-<h2 id="PersistentPageData-ClearingPersistentFields">Clearing Persistent
Fields</h2>
-
-<p>If you reach a point where you know that all data for a page can be
discarded, you can do exactly that.</p>
-
-<p>The method <code>discardPersistentFieldChanges()</code> of
ComponentResources will discard all persistent fields for the page, regardless
of which strategy is used to store the property. This will not affect the page
in memory, but takes effect for subsequent requests.</p>
-
-<h2 id="PersistentPageData-ClusteringIssues">Clustering Issues</h2>
+</div></div><h3 id="PersistentPageData-HibernateEntityStrategy">Hibernate
Entity Strategy</h3><p><span style="line-height: 1.4285715;">Entity persistence
is provided by either the tapestry-hibernate modules (which extend Tapestry
with new features).</span></p><p>In Entity persistence, the field should store
a Hibernate entity instance.</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeHeader panelHeader pdl"
style="border-bottom-width: 1px;"><b>"Hibernate Entity Strategy"</b></div><div
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
@Persist(HibernatePersistenceConstants.ENTITY)
+ private User user;]]></script>
+</div></div><p> </p><p>The value stored in the HttpSession is
a <em>token</em> for the entity: its Java class name and primary key. When
the field is restored in a later request, the entity is re-instantiated using
that data.</p><p>What is <em>not</em> stored is any changes to the
persistent entity that are not committed to the external datastore (the
database).</p><p>Starting in Tapestry 5.4, it is possible to store a
non-persistent entity (a transient entity). A transient entity is stored
directly into the HttpSession, and should be Serializable if the application is
clustered.</p><h3 id="PersistentPageData-JPAEntityStrategy">JPA Entity
Strategy</h3><p>The tapestry-jpa module introduces a similar strategy (also
with the name "entity"). However, at the current time it may only store a
persisted entity (one that has been saved to the database and has a primary
key).</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeHeader panelHeader pdl" style
="border-bottom-width: 1px;"><b>"Example: JPA Entity Strategy"</b></div><div
class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[ @Persist(JpaPersistenceConstants.ENTITY)
+ private Account account;]]></script>
+</div></div><p><span style="color: rgb(83,145,38);font-size:
20.0px;line-height: 1.5;">Persistence Strategy Inheritance</span></p><p>By
default the value for the Persist annotation is the empty string. When this is
true, then the actual strategy to be used is determined by a search up the
component hierarchy.</p><p>For each component, the meta-data property
<code>tapestry.persistence-strategy</code> is checked. This can be specified
using the <a shape="rect" class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Meta.html">Meta</a>
annotation.</p><p>If the value is non-blank, then that strategy is used. This
allows a component to control the persistence strategy used inside any
sub-components (that don't explicitly use a different strategy).</p><p>In any
case, if no component provides the meta data, then the ultimate default,
"session", is used.</p><h2 id="PersistentPageData-DefaultValues">Default
Values</h2><p>Fields marked with @Per
sist may not have default values (whether set inline, or inside a
constructor).</p><h2 id="PersistentPageData-ClearingPersistentFields">Clearing
Persistent Fields</h2><p>If you reach a point where you know that all data for
a page can be discarded, you can do exactly that.</p><p>The method
<code>discardPersistentFieldChanges()</code> of ComponentResources will discard
all persistent fields for the page, regardless of which strategy is used to
store the property. This will not affect the page in memory, but takes effect
for subsequent requests.</p><p></p><h2
id="PersistentPageData-ClusteringIssues">Clustering Issues</h2>
<p>The Servlet API was designed with the intention that there would be only a
modest amount of server-side state, and that the stored values would be
individual numbers and strings, and thus, immutable.</p>
@@ -223,7 +153,13 @@
<h3
id="PersistentPageData-SessionPersistedObjectAnalyzerService">SessionPersistedObjectAnalyzer
Service</h3>
-<p>The <a shape="rect" class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/SessionPersistedObjectAnalyzer.html">SessionPersistedObjectAnalyzer</a>
service is ultimately responsible for determining whether a session persisted
object is dirty or not (dirty meaning in need of a restore into the session).
This is an extensible service where new strategies, for new classes, can be
introduced.</p></div>
+<p>The <a shape="rect" class="external-link"
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/SessionPersistedObjectAnalyzer.html">SessionPersistedObjectAnalyzer</a>
service is ultimately responsible for determining whether a session persisted
object is dirty or not (dirty meaning in need of a restore into the session).
This is an extensible service where new strategies, for new classes, can be
introduced.</p><div class="code panel pdl" style="border-width: 1px;"><div
class="codeHeader panelHeader pdl" style="border-bottom-width:
1px;"><b>Example: Entity Session Strategy</b></div><div class="codeContent
panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[
@Persist(HibernatePersistenceConstants.ENTITY)
+ private User user;]]></script>
+</div></div><div class="code panel pdl" style="border-width: 1px;"><div
class="codeHeader panelHeader pdl" style="border-bottom-width:
1px;"><b>"Example:JAP Session Strategy"</b></div><div class="codeContent
panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false"
type="syntaxhighlighter"><![CDATA[ @Persist(JpaPersistenceConstants.ENTITY)
+ private Account account;]]></script>
+</div></div></div>
</div>
<div class="clearer"></div>
Modified: websites/production/tapestry/content/release-notes-50.html
==============================================================================
--- websites/production/tapestry/content/release-notes-50.html (original)
+++ websites/production/tapestry/content/release-notes-50.html Sun Nov 9
16:12:11 2014
@@ -75,11 +75,11 @@ table.ScrollbarTable td.ScrollbarNextIco
<p><strong>Contents</strong></p>
<style type="text/css">/*<![CDATA[*/
-div.rbtoc1411690820514 {padding: 0px;}
-div.rbtoc1411690820514 ul {list-style: disc;margin-left: 0px;padding-left:
5px;}
-div.rbtoc1411690820514 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1415548156054 {padding: 0px;}
+div.rbtoc1415548156054 ul {list-style: disc;margin-left: 0px;padding-left:
5px;}
+div.rbtoc1415548156054 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1411690820514">
+/*]]>*/</style><div class="toc-macro rbtoc1415548156054">
<ul class="toc-indentation"><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.19">Tapestry Version
5.0.19</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.18">Tapestry Version
5.0.18</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.17">Tapestry Version
5.0.17</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.16">Tapestry Version
5.0.16</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.15">Tapestry Version
5.0.15</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.14">Tapestry Version
5.0.14</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.13">Tapestry Version
5.0.13</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.12">Tapestry Version
5.0.12</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.11">Tapestry Version
5.0.11</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.10">Tapestry Version 5.0.
10</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.9">Tapestry Version
5.0.9</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.8">Tapestry Version
5.0.8</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.7">Tapestry Version
5.0.7</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.6">Tapestry Version
5.0.6</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.5">Tapestry Version
5.0.5</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.4">Tapestry Version
5.0.4</a></li><li><a shape="rect"
href="#ReleaseNotes5.0-TapestryVersion5.0.3">Tapestry Version
5.0.3</a></li></ul>
</div>
Modified: websites/production/tapestry/content/release-notes-51.html
==============================================================================
--- websites/production/tapestry/content/release-notes-51.html (original)
+++ websites/production/tapestry/content/release-notes-51.html Sun Nov 9
16:12:11 2014
@@ -75,11 +75,11 @@ table.ScrollbarTable td.ScrollbarNextIco
<p><strong>Contents</strong></p>
<style type="text/css">/*<![CDATA[*/
-div.rbtoc1411690820861 {padding: 0px;}
-div.rbtoc1411690820861 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1411690820861 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1415548084512 {padding: 0px;}
+div.rbtoc1415548084512 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1415548084512 li {margin-left: 0px;padding-left: 0px;}
-/*]]>*/</style><div class="toc-macro rbtoc1411690820861">
+/*]]>*/</style><div class="toc-macro rbtoc1415548084512">
<ul class="toc-indentation"><li><a shape="rect"
href="#ReleaseNotes5.1-TapestryVersion5.1.0.5">Tapestry Version
5.1.0.5</a></li><li><a shape="rect"
href="#ReleaseNotes5.1-TapestryVersion5.1.0.4">Tapestry Version
5.1.0.4</a></li><li><a shape="rect"
href="#ReleaseNotes5.1-TapestryVersion5.1.0.3">Tapestry Version
5.1.0.3</a></li><li><a shape="rect"
href="#ReleaseNotes5.1-TapestryVersion5.1.0.2">Tapestry Version
5.1.0.2</a></li><li><a shape="rect"
href="#ReleaseNotes5.1-TapestryVersion5.1.0.1">Tapestry Version
5.1.0.1</a></li><li><a shape="rect"
href="#ReleaseNotes5.1-TapestryVersion5.1.0.0">Tapestry Version
5.1.0.0</a></li></ul>
</div>