You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by bu...@apache.org on 2014/05/28 19:20:25 UTC

svn commit: r910276 [2/2] - in /websites/production/tapestry/content: ./ cache/

Modified: websites/production/tapestry/content/javascript-rewrite.html
==============================================================================
--- websites/production/tapestry/content/javascript-rewrite.html (original)
+++ websites/production/tapestry/content/javascript-rewrite.html Wed May 28 17:20:24 2014
@@ -62,11 +62,11 @@
 
 <div id="content">
 <div id="ConfluenceContent"><style type="text/css">/*<![CDATA[*/
-div.rbtoc1395336051214 {padding: 0px;}
-div.rbtoc1395336051214 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1395336051214 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1401297584263 {padding: 0px;}
+div.rbtoc1401297584263 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1401297584263 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1395336051214">
+/*]]>*/</style><div class="toc-macro rbtoc1401297584263">
 <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>
@@ -111,7 +111,7 @@ div.rbtoc1395336051214 li {margin-left: 
 
 <h2 id="JavaScriptRewrite-ComplexInitialization">Complex Initialization</h2>
 
-<p>Many users are perplexed by how Tapestry performs initialization: in a typical <em>bespoke</em></p><p></p><p></p><p>&lt;style type='text/css'&gt;
+<p>Many users are perplexed by how Tapestry performs initialization: in a typical <em>bespoke</em></p><p></p><p></p><p></p><p>&lt;style type='text/css'&gt;
 .FootnoteMarker, .FootnoteNum a {
   background: transparent url(/confluence/download/resources/com.adaptavist.confluence.footnoteMacros:footnote/gfx/footnote.png) no-repeat top right;
   padding: 1px 2px 0px 1px;
@@ -183,21 +183,21 @@ var footnoteMarkerHighlight = function(i
             1
     </a>
 </sup>
-</p><p></p><p></p> application, the developer will create a <code>&lt;script&gt;</code> block at the bottom of the page, and do initializations there. In Tapestry, it can be much more complex:<p></p>
+</p><p></p><p></p><p></p> application, the developer will create a <code>&lt;script&gt;</code> block at the bottom of the page, and do initializations there. In Tapestry, it can be much more complex:<p></p>
 
-<ul><li>A JavaScript library, containing one or more <em>initialization functions</em>, is created</li><li>The initialization functions must be <a shape="rect" class="external-link" href="http://en.wikipedia.org/wiki/Monkey_patching" ><em>monkey patched</em></a> into the <code>T5.initializers</code> namespace <p></p><p></p><p>
+<ul><li>A JavaScript library, containing one or more <em>initialization functions</em>, is created</li><li>The initialization functions must be <a shape="rect" class="external-link" href="http://en.wikipedia.org/wiki/Monkey_patching" ><em>monkey patched</em></a> into the <code>T5.initializers</code> namespace <p></p><p></p><p></p><p>
 <sup id="FootnoteMarker2">
     <a shape="rect" class="FootnoteMarker" name="FootnoteMarker2" href="#Footnote2" onclick="footnoteHighlight(&quot;2&quot;,true);" alt="Footnote: Click here to display the footnote" title="Footnote: Click here to display the footnote">
             2
     </a>
 </sup>
-</p><p></p><p></p></li><li>The <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/javascript/JavaScriptSupport.html">JavaScriptSupport</a> environmental must be used to invoke the function, by name, passing it a JSONObject to configure itself (the "specification")</li><li>The affected element must have a unique id attribute, used to coordinate the initialization in the client web browser<p></p><p></p><p>
+</p><p></p><p></p><p></p></li><li>The <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/javascript/JavaScriptSupport.html">JavaScriptSupport</a> environmental must be used to invoke the function, by name, passing it a JSONObject to configure itself (the "specification")</li><li>The affected element must have a unique id attribute, used to coordinate the initialization in the client web browser<p></p><p></p><p></p><p>
 <sup id="FootnoteMarker3">
     <a shape="rect" class="FootnoteMarker" name="FootnoteMarker3" href="#Footnote3" onclick="footnoteHighlight(&quot;3&quot;,true);" alt="Footnote: Click here to display the footnote" title="Footnote: Click here to display the footnote">
             3
     </a>
 </sup>
-</p><p></p><p></p></li></ul>
+</p><p></p><p></p><p></p></li></ul>
 
 
 <p>This often feels like overkill, but it is necessary for a number of desirable characteristics:</p>
@@ -246,30 +246,30 @@ var footnoteMarkerHighlight = function(i
 
 <p>There must be provisions for the following options:</p>
 
-<ul><li>A module may be overriden (for instance, to work around a bug), in which case a specific asset may be used for the module, rather than the default</li><li>A module may need to be converted from one language to another: specifically, a module may be written in CoffeeScript, and need to be compiled down to JavaScript</li><li>A module's content may be aggregated with other related modules (much like a Tapestry 5.3 stack), especially in production<p></p><p></p><p>
+<ul><li>A module may be overriden (for instance, to work around a bug), in which case a specific asset may be used for the module, rather than the default</li><li>A module may need to be converted from one language to another: specifically, a module may be written in CoffeeScript, and need to be compiled down to JavaScript</li><li>A module's content may be aggregated with other related modules (much like a Tapestry 5.3 stack), especially in production<p></p><p></p><p></p><p>
 <sup id="FootnoteMarker4">
     <a shape="rect" class="FootnoteMarker" name="FootnoteMarker4" href="#Footnote4" onclick="footnoteHighlight(&quot;4&quot;,true);" alt="Footnote: Click here to display the footnote" title="Footnote: Click here to display the footnote">
             4
     </a>
 </sup>
-</p><p></p><p></p></li><li>Module content (aggregated or not) should be minimized</li></ul>
+</p><p></p><p></p><p></p></li><li>Module content (aggregated or not) should be minimized</li></ul>
 
 
-<p>In addition, it may be reasonable to have Tapestry automatically (or via some configuration) <a shape="rect" class="external-link" href="http://requirejs.org/docs/commonjs.html" >wrap CommonJS modules as AMD modules</a></p><p></p><p></p><p>
+<p>In addition, it may be reasonable to have Tapestry automatically (or via some configuration) <a shape="rect" class="external-link" href="http://requirejs.org/docs/commonjs.html" >wrap CommonJS modules as AMD modules</a></p><p></p><p></p><p></p><p>
 <sup id="FootnoteMarker5">
     <a shape="rect" class="FootnoteMarker" name="FootnoteMarker5" href="#Footnote5" onclick="footnoteHighlight(&quot;5&quot;,true);" alt="Footnote: Click here to display the footnote" title="Footnote: Click here to display the footnote">
             5
     </a>
 </sup>
-</p><p></p><p></p><p></p>
+</p><p></p><p></p><p></p><p></p>
 
-<p>Modules will be stored on the classpath, in a <code>modulejs</code> package below each library's root package. Modules within that package are referenced by their name relative to the package</p><p></p><p></p><p>
+<p>Modules will be stored on the classpath, in a <code>modulejs</code> package below each library's root package. Modules within that package are referenced by their name relative to the package</p><p></p><p></p><p></p><p>
 <sup id="FootnoteMarker6">
     <a shape="rect" class="FootnoteMarker" name="FootnoteMarker6" href="#Footnote6" onclick="footnoteHighlight(&quot;6&quot;,true);" alt="Footnote: Click here to display the footnote" title="Footnote: Click here to display the footnote">
             6
     </a>
 </sup>
-</p><p></p><p></p>.  <p></p>
+</p><p></p><p></p><p></p>.  <p></p>
 
 <p>Under this system, module <code>core/pubsub</code> would be the  file <code>pubsub.js</code> in the package <code>org.apache.tapestry5.corelib.modulejs</code>, since Tapestry's component library 'core' is mapped to package <code>org.apache.tapestry5.corelib</code>.</p>
 
@@ -279,13 +279,13 @@ var footnoteMarkerHighlight = function(i
 
 <p>A number of new methods will be added to JavaScriptSupport, to support the following behaviors:</p>
 
-<ul><li>require one or more modules</li><li>require a module (that exports a single function) and invoke the function, passing zero or more values<p></p><p></p><p>
+<ul><li>require one or more modules</li><li>require a module (that exports a single function) and invoke the function, passing zero or more values<p></p><p></p><p></p><p>
 <sup id="FootnoteMarker7">
     <a shape="rect" class="FootnoteMarker" name="FootnoteMarker7" href="#Footnote7" onclick="footnoteHighlight(&quot;7&quot;,true);" alt="Footnote: Click here to display the footnote" title="Footnote: Click here to display the footnote">
             7
     </a>
 </sup>
-</p><p></p><p></p></li><li>require a module and a function name and invoke named function exported by the module, passing zero or more values</li></ul>
+</p><p></p><p></p><p></p></li><li>require a module and a function name and invoke named function exported by the module, passing zero or more values</li></ul>
 
 
 <p>The intent here is to support shifting of client-side behavior from the 5.3 style, an approach that involved monkey-patching functions onto <code>T5.initializers</code>, and move the same logic into modules, preferably with simpler parameters.  It is also expected that there will be greater use of <code>data-</code> prefixed HTML5 attributes in place of separate configuration, as outlined above.</p>
@@ -312,13 +312,13 @@ var footnoteMarkerHighlight = function(i
 
 <h2 id="JavaScriptRewrite-ExposeGlobalMessageCatalogtoClient">Expose Global Message Catalog to Client</h2>
 
-<p>Tapestry currently maintains two global message catalogs; a global server-side catalog (usually named <code>WEB-INF/app.properties</code></p><p></p><p></p><p>
+<p>Tapestry currently maintains two global message catalogs; a global server-side catalog (usually named <code>WEB-INF/app.properties</code></p><p></p><p></p><p></p><p>
 <sup id="FootnoteMarker8">
     <a shape="rect" class="FootnoteMarker" name="FootnoteMarker8" href="#Footnote8" onclick="footnoteHighlight(&quot;8&quot;,true);" alt="Footnote: Click here to display the footnote" title="Footnote: Click here to display the footnote">
             8
     </a>
 </sup>
-</p><p></p><p></p>) and a client-side catalog. The client-side catalog is smaller, more limited, and less extensible.<p></p>
+</p><p></p><p></p><p></p>) and a client-side catalog. The client-side catalog is smaller, more limited, and less extensible.<p></p>
 
 <p>Allowing the client application to have full access to the entire message catalog would make maintaining the catalog simpler, and make it easier to keep client-side and server-side messages consistent.</p>
 
@@ -332,34 +332,34 @@ var footnoteMarkerHighlight = function(i
 
 <p>When an Ajax request is processed by the server, the response should handle any of a number of outcomes:</p>
 
-<ul><li>Redirect the entire page to a new URL (on the server, or elsewhere)</li><li>A server-side error to be presented to the user<p></p><p></p><p>
+<ul><li>Redirect the entire page to a new URL (on the server, or elsewhere)</li><li>A server-side error to be presented to the user<p></p><p></p><p></p><p>
 <sup id="FootnoteMarker9">
     <a shape="rect" class="FootnoteMarker" name="FootnoteMarker9" href="#Footnote9" onclick="footnoteHighlight(&quot;9&quot;,true);" alt="Footnote: Click here to display the footnote" title="Footnote: Click here to display the footnote">
             9
     </a>
 </sup>
-</p><p></p><p></p></li><li>Update the content of an implicit (originating) element; typically the element for the Zone that triggered the request</li><li>Update the content of any number of other elements (identified by their client-side id)</li><li>Inject new JavaScript libraries into the page</li><li>Inject new CSS links into the page</li><li>Peform initializations (using <code>T5.initializers</code>) ... but only after all content updates have occurred</li></ul>
+</p><p></p><p></p><p></p></li><li>Update the content of an implicit (originating) element; typically the element for the Zone that triggered the request</li><li>Update the content of any number of other elements (identified by their client-side id)</li><li>Inject new JavaScript libraries into the page</li><li>Inject new CSS links into the page</li><li>Peform initializations (using <code>T5.initializers</code>) ... but only after all content updates have occurred</li></ul>
 
 
-<p>The injected JavaScript libraries and CSS links will often duplicate libraries and CSS links already present on the page; when the page is partially rendered, the server has no way to know what full or partial page renders have already occured</p><p></p><p></p><p>
+<p>The injected JavaScript libraries and CSS links will often duplicate libraries and CSS links already present on the page; when the page is partially rendered, the server has no way to know what full or partial page renders have already occured</p><p></p><p></p><p></p><p>
 <sup id="FootnoteMarker10">
     <a shape="rect" class="FootnoteMarker" name="FootnoteMarker10" href="#Footnote10" onclick="footnoteHighlight(&quot;10&quot;,true);" alt="Footnote: Click here to display the footnote" title="Footnote: Click here to display the footnote">
             10
     </a>
 </sup>
-</p><p></p><p></p>.<p></p>
+</p><p></p><p></p><p></p>.<p></p>
 
 <p>Tapestry 5.3 first loads any additional JavaScript (usually by adding new <code>&lt;script&gt;</code> tags to the page). Once JavaScript libraries and CSS links have been added, and JavaScript libraries have been loaded, the DOM is updated with the new content. Lastly, any initializations are processed.</p>
 
 <p>For Tapestry 5.4, a number of changes are planned:</p>
 
-<ul><li>Tapestry 5.3 style initializations will be a specific application of 5.4 style module requirement and invocation</li><li><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/javascript/InitializationPriority.html#IMMEDIATE">IMMEDIATE</a> may occur before DOM changes</li><li>Module requirement/invocation will occur in <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/javascript/InitializationPriority.html">initialization priority order</a>; for any single priority, initialization will occur in render order<p></p><p></p><p>
+<ul><li>Tapestry 5.3 style initializations will be a specific application of 5.4 style module requirement and invocation</li><li><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/javascript/InitializationPriority.html#IMMEDIATE">IMMEDIATE</a> may occur before DOM changes</li><li>Module requirement/invocation will occur in <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/javascript/InitializationPriority.html">initialization priority order</a>; for any single priority, initialization will occur in render order<p></p><p></p><p></p><p>
 <sup id="FootnoteMarker11">
     <a shape="rect" class="FootnoteMarker" name="FootnoteMarker11" href="#Footnote11" onclick="footnoteHighlight(&quot;11&quot;,true);" alt="Footnote: Click here to display the footnote" title="Footnote: Click here to display the footnote">
             11
     </a>
 </sup>
-</p><p></p><p></p>.</li><li>The response will be embeddable inside other JSONObject responses.</li></ul>
+</p><p></p><p></p><p></p>.</li><li>The response will be embeddable inside other JSONObject responses.</li></ul>
 
 
 <p>To expand on the last note first; the keys that define imported JavaScript and CSS, module requirement and invocation, and content update will not be top-level keys of the JSONObject response: they will be buried inside a <code>tapestry</code> top-level key. An available function will be provided that takes an arbitrary JSONObject, extracts the <code>tapestry</code> key and handles it, then invokes a provided callback before the module requirement and invocation step.  The intent is for requests that perform purely data oriented operations, the server-side can not only provide a response, but can <em>piggy back</em> client-side updates in the response.</p>
@@ -394,13 +394,13 @@ var footnoteMarkerHighlight = function(i
 
 <p>A desirable feature would be request URL that would produce a JSON-formatted report of all assets that should be mirrored by the CDN: this would include all files that might be exposed to the browser, including virtual assets (such as JavaScript stacks, aggregated modules, and so forth).  This could be leveraged by a tool that would use this information to extract the assets from the live application and exported to the CDN.</p>
 
-<p>Determining what assets are available is somewhat problematic as Tapestry mixes server-side only resources (.class files, .tml files, etc.) freely with assets that might be exposed to the browser</p><p></p><p></p><p>
+<p>Determining what assets are available is somewhat problematic as Tapestry mixes server-side only resources (.class files, .tml files, etc.) freely with assets that might be exposed to the browser</p><p></p><p></p><p></p><p>
 <sup id="FootnoteMarker12">
     <a shape="rect" class="FootnoteMarker" name="FootnoteMarker12" href="#Footnote12" onclick="footnoteHighlight(&quot;12&quot;,true);" alt="Footnote: Click here to display the footnote" title="Footnote: Click here to display the footnote">
             12
     </a>
 </sup>
-</p><p></p><p></p>. Some of those server-side resource may expose details, such as other server hosts and potentially user names and passwords, that should never be exposed to the client.<p></p>
+</p><p></p><p></p><p></p>. Some of those server-side resource may expose details, such as other server hosts and potentially user names and passwords, that should never be exposed to the client.<p></p>
 
 <p>In addition, a "walk" of the classpath to locate potential exportable assets can be quite expensive (though not considerably more so than what Tapestry already does at startup to identify page and component classes).</p>
 
@@ -414,7 +414,7 @@ var footnoteMarkerHighlight = function(i
 
 <hr>
 
-<p></p><p></p><p></p><p><table class="Footnotes" style="width: 100%; border:none;" cellspacing="0" cellpadding="0" summary="This table contains one or more notes for references made elsewhere on the page."><caption class="accessibility">Footnotes</caption><thead class="accessibility"><tr class="accessibility"><th colspan="1" rowspan="1" class="accessibility" id="footnote-th1">Reference</th><th colspan="1" rowspan="1" class="accessibility" id="footnote-th2">Notes</th></tr></thead><tbody><tr name="Footnote1"><td colspan="1" rowspan="1" valign="top" class="FootnoteNum" headings="footnote-th1">
+<p></p><p></p><p></p><p></p><p><table class="Footnotes" style="width: 100%; border:none;" cellspacing="0" cellpadding="0" summary="This table contains one or more notes for references made elsewhere on the page."><caption class="accessibility">Footnotes</caption><thead class="accessibility"><tr class="accessibility"><th colspan="1" rowspan="1" class="accessibility" id="footnote-th1">Reference</th><th colspan="1" rowspan="1" class="accessibility" id="footnote-th2">Notes</th></tr></thead><tbody><tr name="Footnote1"><td colspan="1" rowspan="1" valign="top" class="FootnoteNum" headings="footnote-th1">
         <a shape="rect" id="FootnoteNum1" href="#FootnoteMarker1" onclick="footnoteMarkerHighlight(&quot;1&quot;);" onmouseover="footnoteHighlight(&quot;1&quot;,false);" alt="Footnote: Click to return to reference in text" title="Footnote: Click to return to reference in text">
             1
         </a>
@@ -486,7 +486,7 @@ var footnoteMarkerHighlight = function(i
         </a>
       </td><td colspan="1" rowspan="1" valign="top" class="Footnote" id="Footnote12" width="100%" headings="footnote-th2">
           This should never have been the case, but that's hindsight.
-      </td></tr></tbody></table></p><p></p><p></p><p></p></div>
+      </td></tr></tbody></table></p><p></p><p></p><p></p><p></p></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/news.html
==============================================================================
--- websites/production/tapestry/content/news.html (original)
+++ websites/production/tapestry/content/news.html Wed May 28 17:20:24 2014
@@ -61,7 +61,7 @@
   </div>
 
 <div id="content">
-<div id="ConfluenceContent"><p>&#160;</p><p>&#160;</p><p></p><p>&#160;</p><p>&#160;</p><div id="bar"><p><br clear="none"> <strong>We think you will love Tapestry!</strong> Give us 20 minutes and <strong><a shape="rect" href="tapestry-tutorial.html">follow our tutorial</a></strong>.</p></div><p>&#160;</p><p>&#160;</p><div><p>&#160;</p><h2 id="News-News">News <a shape="rect" href="https://cwiki.apache.org/confluence/createrssfeed.action?types=blogpost&amp;spaces=TAPESTRY&amp;title=Apache+Tapestry+News+RSS+Feed&amp;labelString%3D&amp;sort=created&amp;maxResults=10&amp;timeSpan=12&amp;confirm=Create&amp;showContent=true&amp;showDiff=false"><img class="confluence-embedded-image" src="https://cwiki.apache.org/confluence/download/attachments/24185588/Feed-icon.gif?version=1&amp;modificationDate=1289228682000&amp;api=v2" data-image-src="/confluence/download/attachments/24185588/Feed-icon.gif?version=1&amp;modificationDate=1289228682000&amp;api=v2"></a></h2><p>    
+<div id="ConfluenceContent"><p>&#160;</p><p>&#160;</p><p></p><p></p><p></p><p>&#160;</p><p>&#160;</p><div id="bar"><p><br clear="none"> <strong>We think you will love Tapestry!</strong> Give us 20 minutes and <strong><a shape="rect" href="tapestry-tutorial.html">follow our tutorial</a></strong>.</p></div><p>&#160;</p><p>&#160;</p><div><p>&#160;</p><h2 id="News-News">News <a shape="rect" href="https://cwiki.apache.org/confluence/createrssfeed.action?types=blogpost&amp;spaces=TAPESTRY&amp;title=Apache+Tapestry+News+RSS+Feed&amp;labelString%3D&amp;sort=created&amp;maxResults=10&amp;timeSpan=12&amp;confirm=Create&amp;showContent=true&amp;showDiff=false"><img class="confluence-embedded-image" src="https://cwiki.apache.org/confluence/download/attachments/24185588/Feed-icon.gif?version=1&amp;modificationDate=1289228682000&amp;api=v2" data-image-src="/confluence/download/attachments/24185588/Feed-icon.gif?version=1&amp;modificationDate=1289228682000&amp;api=v2"></a></h2><p>    
 
     
         

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 Wed May 28 17:20:24 2014
@@ -122,7 +122,7 @@ public class DBImage
 
 
 
-<span class="gliffy-container" id="gliffy-container-23527573-2598" data-fullwidth="750" data-ceoid="23335008" data-filename="Class Loaders">
+<span class="gliffy-container" id="gliffy-container-23527573-5931" data-fullwidth="750" data-ceoid="23335008" data-filename="Class Loaders">
 
             
 <span class="gliffy-chrome-container">
@@ -142,11 +142,11 @@ public class DBImage
             </span>
 </span>
     
-    <map id="gliffy-map-23527573-5869" name="gliffy-map-23527573-5869"></map>
+    <map id="gliffy-map-23527573-3206" name="gliffy-map-23527573-3206"></map>
 
-    <img class="gliffy-image" id="gliffy-image-23527573-2598" 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&amp;modificationDate=1283534469000&amp;api=v2" usemap="#gliffy-map-23527573-5869">
+    <img class="gliffy-image" id="gliffy-image-23527573-5931" 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&amp;modificationDate=1283534469000&amp;api=v2" usemap="#gliffy-map-23527573-3206">
 
-    <map class="gliffy-dynamic" id="gliffy-dynamic-map-23527573-2598" name="gliffy-dynamic-map-23527573-2598"></map>
+    <map class="gliffy-dynamic" id="gliffy-dynamic-map-23527573-5931" name="gliffy-dynamic-map-23527573-5931"></map>
 </span>
 
 
@@ -171,7 +171,7 @@ 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="templating-and-markup-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="templating-and-markup-faq.html">Templating and Markup FAQ</a>&#160;</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%">&#160;<a shape="rect" href="forms-and-form-components-faq.html">Forms and Form Components FAQ</a></td><td colspan="1" ro
 wspan="1" class="ScrollbarNextIcon"><a shape="rect" href="forms-and-form-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><p>____</p><p>&#160;</p><p>&#160;</p><p><table class="Footnotes" style="width: 100%; border:none;" cellspacing="0" cellpadding="0" summary="This table contains one or more notes for references made elsewhere on the page."><caption class="accessibility">Footnotes</caption><thead class="accessibility"><tr class="accessibility"><th colspan="1" rowspan="1" class="accessibility" id="footnote-th1">Reference</th><th colspan="1" rowspan="1" class="accessibility" id="footnote-th2">Notes</th></tr></thead><tbody></tbody></table></p><p>&#160;</p><p>&#160;</p></div>
+/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="templating-and-markup-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="templating-and-markup-faq.html">Templating and Markup FAQ</a>&#160;</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%">&#160;<a shape="rect" href="forms-and-form-components-faq.html">Forms and Form Components FAQ</a></td><td colspan="1" ro
 wspan="1" class="ScrollbarNextIcon"><a shape="rect" href="forms-and-form-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><p>____</p><p>&#160;</p><p>&#160;</p><p></p><p><table class="Footnotes" style="width: 100%; border:none;" cellspacing="0" cellpadding="0" summary="This table contains one or more notes for references made elsewhere on the page."><caption class="accessibility">Footnotes</caption><thead class="accessibility"><tr class="accessibility"><th colspan="1" rowspan="1" class="accessibility" id="footnote-th1">Reference</th><th colspan="1" rowspan="1" class="accessibility" id="footnote-th2">Notes</th></tr></thead><tbody></tbody></table></p><p></p><p>&#160;</p><p>&#160;</p></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/principles.html
==============================================================================
--- websites/production/tapestry/content/principles.html (original)
+++ websites/production/tapestry/content/principles.html Wed May 28 17:20:24 2014
@@ -182,7 +182,7 @@ public class Login
 ]]></script>
 </div></div>
 
-<p>This short snippet demonstrates a bit about how Tapestry operates. Pages and services within the application are injected with the @<a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/Inject.html">Inject</a> annotation. The method names, <code>onValidateFromForm()</code> and <code>onSuccessFromForm()</code>, inform Tapestry about when each method is to be invoked. This naming convention identifies the event that is handled, ("validate" and "success") and the id of the component from which the event is triggered (the "form" component</p><p></p><p></p><p>&lt;style type='text/css'&gt;
+<p>This short snippet demonstrates a bit about how Tapestry operates. Pages and services within the application are injected with the @<a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/annotations/Inject.html">Inject</a> annotation. The method names, <code>onValidateFromForm()</code> and <code>onSuccessFromForm()</code>, inform Tapestry about when each method is to be invoked. This naming convention identifies the event that is handled, ("validate" and "success") and the id of the component from which the event is triggered (the "form" component</p><p></p><p></p><p></p><p>&lt;style type='text/css'&gt;
 .FootnoteMarker, .FootnoteNum a {
   background: transparent url(/confluence/download/resources/com.adaptavist.confluence.footnoteMacros:footnote/gfx/footnote.png) no-repeat top right;
   padding: 1px 2px 0px 1px;
@@ -254,7 +254,7 @@ var footnoteMarkerHighlight = function(i
             1
     </a>
 </sup>
-</p><p></p><p></p>).<p></p>
+</p><p></p><p></p><p></p>).<p></p>
 
 <p>The "validate" event is triggered to perform cross-field validations, and the "success" event is only triggered when there are no validation errors. The <code>onSuccessFromForm()</code> method's return value directs Tapestry on what to do next: jump to another page within the application (here identified as the class for the page, but many other options exist). When there are exceptions, the page will be redisplayed to the user.</p>
 
@@ -297,13 +297,13 @@ var footnoteMarkerHighlight = function(i
 
 <hr>
 
-<p></p><p></p><p></p><p><table class="Footnotes" style="width: 100%; border:none;" cellspacing="0" cellpadding="0" summary="This table contains one or more notes for references made elsewhere on the page."><caption class="accessibility">Footnotes</caption><thead class="accessibility"><tr class="accessibility"><th colspan="1" rowspan="1" class="accessibility" id="footnote-th1">Reference</th><th colspan="1" rowspan="1" class="accessibility" id="footnote-th2">Notes</th></tr></thead><tbody><tr name="Footnote1"><td colspan="1" rowspan="1" valign="top" class="FootnoteNum" headings="footnote-th1">
+<p></p><p></p><p></p><p></p><p><table class="Footnotes" style="width: 100%; border:none;" cellspacing="0" cellpadding="0" summary="This table contains one or more notes for references made elsewhere on the page."><caption class="accessibility">Footnotes</caption><thead class="accessibility"><tr class="accessibility"><th colspan="1" rowspan="1" class="accessibility" id="footnote-th1">Reference</th><th colspan="1" rowspan="1" class="accessibility" id="footnote-th2">Notes</th></tr></thead><tbody><tr name="Footnote1"><td colspan="1" rowspan="1" valign="top" class="FootnoteNum" headings="footnote-th1">
         <a shape="rect" id="FootnoteNum1" href="#FootnoteMarker1" onclick="footnoteMarkerHighlight(&quot;1&quot;);" onmouseover="footnoteHighlight(&quot;1&quot;,false);" alt="Footnote: Click to return to reference in text" title="Footnote: Click to return to reference in text">
             1
         </a>
       </td><td colspan="1" rowspan="1" valign="top" class="Footnote" id="Footnote1" width="100%" headings="footnote-th2">
           The component id can be omitted, leaving the method name <code>onSuccess()</code>, but that may cause confusion on a page that has multiple Form components triggering events, so it's best to be specific about the source of the event.
-      </td></tr></tbody></table></p><p></p><p></p><p></p></div>
+      </td></tr></tbody></table></p><p></p><p></p><p></p><p></p></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 Wed May 28 17:20:24 2014
@@ -75,11 +75,11 @@ table.ScrollbarTable td.ScrollbarNextIco
 
 <p><strong>Contents</strong></p>
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1395336057298 {padding: 0px;}
-div.rbtoc1395336057298 ul {list-style: disc;margin-left: 0px;padding-left: 5px;}
-div.rbtoc1395336057298 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1401297593362 {padding: 0px;}
+div.rbtoc1401297593362 ul {list-style: disc;margin-left: 0px;padding-left: 5px;}
+div.rbtoc1401297593362 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1395336057298">
+/*]]>*/</style><div class="toc-macro rbtoc1401297593362">
 <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 Wed May 28 17:20:24 2014
@@ -75,11 +75,11 @@ table.ScrollbarTable td.ScrollbarNextIco
 
 <p><strong>Contents</strong></p>
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1395336047014 {padding: 0px;}
-div.rbtoc1395336047014 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1395336047014 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1401297575230 {padding: 0px;}
+div.rbtoc1401297575230 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1401297575230 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1395336047014">
+/*]]>*/</style><div class="toc-macro rbtoc1401297575230">
 <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>
 

Modified: websites/production/tapestry/content/release-notes-52.html
==============================================================================
--- websites/production/tapestry/content/release-notes-52.html (original)
+++ websites/production/tapestry/content/release-notes-52.html Wed May 28 17:20:24 2014
@@ -80,11 +80,11 @@ table.ScrollbarTable td.ScrollbarNextNam
 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="release-notes-51.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="release-notes-51.html">Release Notes 5.1</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="release-notes.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="release-notes.html">Release Notes</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="release-notes-53.html">Release Notes 5.3</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="release-notes-53.html"><img alig
 n="middle" border="0" src="https://cwiki.apache.org/confluence/images/icons/forwd_16.gif" width="16" height="16"></a></td></tr></table></div><p>This is the consolidated list of changes between Tapestry versions 5.1 and 5.2. To upgrade from 5.1 to 5.2, most users will be able to just update the Maven dependency in their POM file (or <a shape="rect" href="download.html">download</a> the new JAR file) and the new version will just work. However, please read carefully below before upgrading, and also review the <a shape="rect" href="how-to-upgrade.html">How to Upgrade</a> instructions.</p><p><strong>Contents</strong></p><p><style type="text/css">/*<![CDATA[*/
-div.rbtoc1395336053583 {padding: 0px;}
-div.rbtoc1395336053583 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1395336053583 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1401297587720 {padding: 0px;}
+div.rbtoc1401297587720 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1401297587720 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1395336053583">
+/*]]>*/</style></p><div class="toc-macro rbtoc1401297587720">
 <ul class="toc-indentation"><li><a shape="rect" href="#ReleaseNotes5.2-BreakingChanges">Breaking Changes</a></li><li><a shape="rect" href="#ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.6">Release Notes: Tapestry 5.2.6</a></li><li><a shape="rect" href="#ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.5">Release Notes: Tapestry 5.2.5</a></li><li><a shape="rect" href="#ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.4">Release Notes: Tapestry 5.2.4</a></li><li><a shape="rect" href="#ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.3">Release Notes: Tapestry 5.2.3</a></li><li><a shape="rect" href="#ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.2">Release Notes: Tapestry 5.2.2</a></li><li><a shape="rect" href="#ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.1">Release Notes: Tapestry 5.2.1</a></li><li><a shape="rect" href="#ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.0">Release Notes: Tapestry 5.2.0</a></li></ul>
 </div><h2 id="ReleaseNotes5.2-BreakingChanges">Breaking Changes</h2><p>The following changes have been made in Tapestry 5.2 that are likely to result in unexpected behavior if your application relies on the changed functionality. Please review this list carefully before upgrading from 5.1 to 5.2. Also check the <a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/deprecated-list.html">Deprecated API List</a> for non-breaking changes.</p><ul><li>Page classes with instance variables that are not thread safe must be created in a method rather than declared as an instance variable. For example, creating an instance variable <code>private final DateFormat format = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);</code> in a page and using it will cause problems because DateFormat is not thread safe. Instead, you must create the DateFormat in a method. See <a shape="rect" href="#ReleaseNotes5.2-Tap5.2.0">Release Notes: Tapestry 5.2.0</a> (below) for
  details.</li><li><a shape="rect" class="external-link" href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/Link.html#toAbsoluteURI%28%29">Link.toAbsoluteURI()</a> now returns the absolute URL, which includes the scheme, hostname and possibly port (e.g., "http://example.com:8080/myapp/viewproduct/4"), rather than a relative URL (e.g., "/myapp/viewproduct/4"). See <a shape="rect" href="#ReleaseNotes5.2-Tap5.2.2">Release Notes: Tapestry 5.2.2</a> (below) for details.</li><li>The <a shape="rect" class="external-link" href="http://tapestry.apache.org/tapestry5.2-dev/tapestry-core/ref/org/apache/tapestry5/corelib/components/Label.html">Label</a> component no longer outputs an id:</li></ul><p>Previously valid code in 5.1.0.5:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[&lt;t:form&gt;&lt;t:label for=&quot;search&quot;/&gt;&lt;t:textfield t:id=&quot;search&quot; size=&quot;50&quot;/&gt;&lt;/t:form&gt;]]></script>

Modified: websites/production/tapestry/content/release-notes-53.html
==============================================================================
--- websites/production/tapestry/content/release-notes-53.html (original)
+++ websites/production/tapestry/content/release-notes-53.html Wed May 28 17:20:24 2014
@@ -75,11 +75,11 @@ table.ScrollbarTable td.ScrollbarNextIco
 
 <p><strong>Contents</strong></p>
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1395336051427 {padding: 0px;}
-div.rbtoc1395336051427 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1395336051427 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1401297584885 {padding: 0px;}
+div.rbtoc1401297584885 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1401297584885 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1395336051427">
+/*]]>*/</style><div class="toc-macro rbtoc1401297584885">
 <ul class="toc-indentation"><li><a shape="rect" href="#ReleaseNotes5.3-BreakingChanges">Breaking Changes</a></li><li><a shape="rect" href="#ReleaseNotes5.3-NewFeatures">New Features</a></li><li><a shape="rect" href="#ReleaseNotes5.3-Sub-tasksCompleted">Sub-tasks Completed</a></li><li><a shape="rect" href="#ReleaseNotes5.3-BugsFixed">Bugs Fixed</a></li><li><a shape="rect" href="#ReleaseNotes5.3-ImprovementsMade">Improvements Made</a></li><li><a shape="rect" href="#ReleaseNotes5.3-NewFeaturesImplemented">New Features Implemented</a></li><li><a shape="rect" href="#ReleaseNotes5.3-TasksCompleted">Tasks Completed</a></li></ul>
 </div> 
 

Modified: websites/production/tapestry/content/release-notes-535.html
==============================================================================
--- websites/production/tapestry/content/release-notes-535.html (original)
+++ websites/production/tapestry/content/release-notes-535.html Wed May 28 17:20:24 2014
@@ -70,7 +70,7 @@ table.ScrollbarTable td.ScrollbarNextNam
 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="release-notes-534.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="release-notes-534.html">Release Notes 5.3.4</a>&#160;</td><td colspan="1" rowspan="1" class="ScrollbarParent" width="33%"><sup><a shape="rect" href="release-notes.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="release-notes.html">Release Notes</a></td><td colspan="1" rowspan="1" class="ScrollbarNextName" width="33%">&#160;<a shape="rect" href="release-notes-536.html">Release Notes 5.3.6</a></td><td colspan="1" rowspan="1" class="ScrollbarNextIcon"><a shape="rect" href="release-notes-536.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> 
-<p></p><p></p><p></p><p></p><p></p><p></p><p></p>
+<p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p>
 
 <p>This is the consolidated list of changes between Tapestry included in version 5.3.5. Tapestry 5.3.5 is a drop-in replacement for prior Tapestry 5.3 releases. To upgrade, just update the Maven dependency in you POM file (or <a shape="rect" href="download.html">download</a> the new JAR file) and the new version will just work. However, please review the <a shape="rect" href="how-to-upgrade.html">How to Upgrade</a> instructions before upgrading. </p>
 

Modified: websites/production/tapestry/content/session-storage.html
==============================================================================
--- websites/production/tapestry/content/session-storage.html (original)
+++ websites/production/tapestry/content/session-storage.html Wed May 28 17:20:24 2014
@@ -104,11 +104,11 @@
 <h1 id="SessionStorage-SessionStorage">Session Storage</h1>
 
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1395336058345 {padding: 0px;}
-div.rbtoc1395336058345 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1395336058345 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1401297595190 {padding: 0px;}
+div.rbtoc1401297595190 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1401297595190 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1395336058345">
+/*]]>*/</style><div class="toc-macro rbtoc1401297595190">
 <ul class="toc-indentation"><li>Related Articles</li><li><a shape="rect" href="#SessionStorage-SessionStateObjects">Session State Objects</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#SessionStorage-Pitfalls">Pitfalls</a></li><li><a shape="rect" href="#SessionStorage-CheckforCreation">Check for Creation</a></li><li><a shape="rect" href="#SessionStorage-PersistenceStrategies">Persistence Strategies</a></li><li><a shape="rect" href="#SessionStorage-ConfiguringSSOs">Configuring SSOs</a></li></ul>
 </li><li><a shape="rect" href="#SessionStorage-SessionAttributes">Session Attributes</a>

Modified: websites/production/tapestry/content/templating-and-markup-faq.html
==============================================================================
--- websites/production/tapestry/content/templating-and-markup-faq.html (original)
+++ websites/production/tapestry/content/templating-and-markup-faq.html Wed May 28 17:20:24 2014
@@ -86,7 +86,7 @@ table.ScrollbarTable td.ScrollbarNextIco
 </div></div><p>Part of the DOCTYPE is the declaration of entities such as <code>&amp;nbsp;</code>.</p><p>Alternately, you can simply use the numeric version: <code>&amp;#160</code>; This is the exact same character and will render identically in the browser.</p><p>Starting in release 5.3, Tapestry introduces an XHTML doctype when no doctype is present; this means that common HTML entities will work correctly.</p><h3 id="TemplatingandMarkupFAQ-Whydosomeimagesinmypageshowupasbrokenlinks?">Why do some images in my page show up as broken links?</h3><p>You have to be careful when using relative URLs inside page templates; the base URL may not always be what you expect. For example, inside your <code>ViewUser.tml</code> file, you may have:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[  &lt;img class=&quot;icon&quot; src=&quot;icons/admin.png&quot;/&gt;${user.name} has Administrative access
 ]]></script>
-</div></div><p>This makes sense; <code>ViewUser.tml</code> is in the web context, as is the <code>icons</code> folder. The default URL for this page will be <code>/viewuser</code></p><p></p><p>&lt;style type='text/css'&gt;
+</div></div><p>This makes sense; <code>ViewUser.tml</code> is in the web context, as is the <code>icons</code> folder. The default URL for this page will be <code>/viewuser</code></p><p></p><p></p><p>&lt;style type='text/css'&gt;
 .FootnoteMarker, .FootnoteNum a {
   background: transparent url(/confluence/download/resources/com.adaptavist.confluence.footnoteMacros:footnote/gfx/footnote.png) no-repeat top right;
   padding: 1px 2px 0px 1px;
@@ -158,7 +158,7 @@ var footnoteMarkerHighlight = function(i
             1
     </a>
 </sup>
-</p><p></p><p>&#160;</p><p>However, most likely, the ViewUser page has a page activation context to identify which user is to be displayed:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</p><p></p><p></p><p>&#160;</p><p>However, most likely, the ViewUser page has a page activation context to identify which user is to be displayed:</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[public class ViewUser
 
   @Property
@@ -167,13 +167,13 @@ var footnoteMarkerHighlight = function(i
 
   . . .
 ]]></script>
-</div></div><p>With a page activation context, the URL for the page will incorporate the id of the User object, something like <code>/viewuser/37371</code>. This is why the relative URLs to the <code>admin.png</code> image is broken: the base path is relative to the page's URL, not to the page template</p><p></p><p>
+</div></div><p>With a page activation context, the URL for the page will incorporate the id of the User object, something like <code>/viewuser/37371</code>. This is why the relative URLs to the <code>admin.png</code> image is broken: the base path is relative to the page's URL, not to the page template</p><p></p><p></p><p>
 <sup id="FootnoteMarker2">
     <a shape="rect" class="FootnoteMarker" name="FootnoteMarker2" href="#Footnote2" onclick="footnoteHighlight(&quot;2&quot;,true);" alt="Footnote: Click here to display the footnote" title="Footnote: Click here to display the footnote">
             2
     </a>
 </sup>
-</p><p></p><p>.</p><p>&#160;</p><p>One solution would be to predict what the page URL will be, and adjust the path for that:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</p><p></p><p></p><p>.</p><p>&#160;</p><p>One solution would be to predict what the page URL will be, and adjust the path for that:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[  &lt;img class=&quot;icon&quot; src=&quot;../icons/admin.png&quot;/&gt;${user.name} has Administrative access
 ]]></script>
 </div></div><p>But this has its own problems; the page activation context may vary in length at different times, or the template in question may be a component used across many different pages, making it difficult to predict what the correct relative URL would be.</p><p>The <em>best</em> solution for this situation, one that will be sure to work in all pages and all components, is to make use of the <code>context:</code> binding prefix:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
@@ -215,7 +215,7 @@ 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="general-questions.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="general-questions.html">General Questions</a>&#160;</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%">&#160;<a shape="rect" href="page-and-component-classes-faq.html">Page And Component Classes FAQ</a></td><td colspan="1" rowspan="1" class="Scrol
 lbarNextIcon"><a shape="rect" href="page-and-component-classes-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><p>&#160;</p><p>&#160;</p><p></p><p><table class="Footnotes" style="width: 100%; border:none;" cellspacing="0" cellpadding="0" summary="This table contains one or more notes for references made elsewhere on the page."><caption class="accessibility">Footnotes</caption><thead class="accessibility"><tr class="accessibility"><th colspan="1" rowspan="1" class="accessibility" id="footnote-th1">Reference</th><th colspan="1" rowspan="1" class="accessibility" id="footnote-th2">Notes</th></tr></thead><tbody><tr name="Footnote1"><td colspan="1" rowspan="1" valign="top" class="FootnoteNum" headings="footnote-th1">
+/*]]>*/</style><div class="Scrollbar"><table class="ScrollbarTable"><tr><td colspan="1" rowspan="1" class="ScrollbarPrevIcon"><a shape="rect" href="general-questions.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="general-questions.html">General Questions</a>&#160;</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%">&#160;<a shape="rect" href="page-and-component-classes-faq.html">Page And Component Classes FAQ</a></td><td colspan="1" rowspan="1" class="Scrol
 lbarNextIcon"><a shape="rect" href="page-and-component-classes-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><p>&#160;</p><p>&#160;</p><p></p><p></p><p><table class="Footnotes" style="width: 100%; border:none;" cellspacing="0" cellpadding="0" summary="This table contains one or more notes for references made elsewhere on the page."><caption class="accessibility">Footnotes</caption><thead class="accessibility"><tr class="accessibility"><th colspan="1" rowspan="1" class="accessibility" id="footnote-th1">Reference</th><th colspan="1" rowspan="1" class="accessibility" id="footnote-th2">Notes</th></tr></thead><tbody><tr name="Footnote1"><td colspan="1" rowspan="1" valign="top" class="FootnoteNum" headings="footnote-th1">
         <a shape="rect" id="FootnoteNum1" href="#FootnoteMarker1" onclick="footnoteMarkerHighlight(&quot;1&quot;);" onmouseover="footnoteHighlight(&quot;1&quot;,false);" alt="Footnote: Click to return to reference in text" title="Footnote: Click to return to reference in text">
             1
         </a>
@@ -227,7 +227,7 @@ table.ScrollbarTable td.ScrollbarNextIco
         </a>
       </td><td colspan="1" rowspan="1" valign="top" class="Footnote" id="Footnote2" width="100%" headings="footnote-th2">
           In fact, the page template may not even be in the web context, it may be stored on the classpath, as component templates are.
-      </td></tr></tbody></table></p><p></p></div>
+      </td></tr></tbody></table></p><p></p><p></p></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/test-page-2.html
==============================================================================
--- websites/production/tapestry/content/test-page-2.html (original)
+++ websites/production/tapestry/content/test-page-2.html Wed May 28 17:20:24 2014
@@ -63,11 +63,11 @@
 <div id="content">
 <div id="ConfluenceContent"><p>
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1395336054934 {padding: 0px;}
-div.rbtoc1395336054934 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1395336054934 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1401297589446 {padding: 0px;}
+div.rbtoc1401297589446 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1401297589446 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1395336054934">
+/*]]>*/</style></p><div class="toc-macro rbtoc1401297589446">
 <ul class="toc-indentation"><li><a shape="rect" href="#TestPage2-Generalquestions">General questions</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#TestPage2-HowdoIgetstartedwithTapestry?">How do I get started with Tapestry?</a></li><li><a shape="rect" href="#TestPage2-WhydoesTapestryusePrototype?WhynotinsertfavoriteJavaScriptlibraryhere?">Why does Tapestry use Prototype? Why not insert favorite JavaScript library here?</a></li><li><a shape="rect" href="#TestPage2-WhydoesTapestryhaveitsownInversionofControlContainer?WhynotSpringorGuice?">Why does Tapestry have its own Inversion of Control Container? Why not Spring or Guice?</a></li><li><a shape="rect" href="#TestPage2-HowdoIupgradefromTapestry4toTapestry5?">How do I upgrade from Tapestry 4 to Tapestry 5?</a></li><li><a shape="rect" href="#TestPage2-WhyaretherebothRequestandHttpServletRequest?">Why are there both Request and HttpServletRequest?</a></li></ul>
 </li></ul>
@@ -114,7 +114,7 @@ div.rbtoc1395336054934 li {margin-left: 
 <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>
 
 <hr>
-<p></p><p></p><p></p><p><table class="Footnotes" style="width: 100%; border:none;" cellspacing="0" cellpadding="0" summary="This table contains one or more notes for references made elsewhere on the page."><caption class="accessibility">Footnotes</caption><thead class="accessibility"><tr class="accessibility"><th colspan="1" rowspan="1" class="accessibility" id="footnote-th1">Reference</th><th colspan="1" rowspan="1" class="accessibility" id="footnote-th2">Notes</th></tr></thead><tbody></tbody></table></p><p></p><p></p><p></p></div>
+<p></p><p></p><p></p><p></p><p><table class="Footnotes" style="width: 100%; border:none;" cellspacing="0" cellpadding="0" summary="This table contains one or more notes for references made elsewhere on the page."><caption class="accessibility">Footnotes</caption><thead class="accessibility"><tr class="accessibility"><th colspan="1" rowspan="1" class="accessibility" id="footnote-th1">Reference</th><th colspan="1" rowspan="1" class="accessibility" id="footnote-th2">Notes</th></tr></thead><tbody></tbody></table></p><p></p><p></p><p></p><p></p></div>
 </div>
 
 <div class="clearer"></div>

Modified: websites/production/tapestry/content/using-beaneditform-to-create-user-forms.html
==============================================================================
--- websites/production/tapestry/content/using-beaneditform-to-create-user-forms.html (original)
+++ websites/production/tapestry/content/using-beaneditform-to-create-user-forms.html Wed May 28 17:20:24 2014
@@ -141,7 +141,7 @@ public class CreateAddress
 <script class="theme: Default; brush: java; gutter: false" type="syntaxhighlighter"><![CDATA[  @Property
   private Address address;
 ]]></script>
-</div></div><p>When you refresh the page, you'll see the following:</p><p><img class="confluence-embedded-image" width="700" src="https://cwiki.apache.org/confluence/download/attachments/23340431/create-address-initial.png?version=1&amp;modificationDate=1291927518000&amp;api=v2" data-image-src="/confluence/download/attachments/23340431/create-address-initial.png?version=1&amp;modificationDate=1291927518000&amp;api=v2"></p><p>Tapestry has done quite a bit of work here. It has created a form that includes a field for each property. Further, it has seen that the honorific property is an enumerated type, and presented that as a drop-down list.</p><p>In addition, Tapestry has converted the property names ("city", "email", "firstName") to user presentable labels ("City", "Email", "First Name"). In fact, these are &lt;label&gt; elements, so clicking a label with the mouse will move the input cursor into the corresponding field.</p><p>This is an awesome start; it's a presentable interface, 
 quite nice in fact for a few minute's work. But it's far from perfect; let's get started with some customizations.</p><h1 id="UsingBeanEditFormToCreateUserForms-ChangingFieldOrder">Changing Field Order</h1><p>The BeanEditForm must guess at the right order to present the fields; for public fields, they end up in alphabetical order</p><p>&lt;style type='text/css'&gt;
+</div></div><p>When you refresh the page, you'll see the following:</p><p><img class="confluence-embedded-image" width="700" src="https://cwiki.apache.org/confluence/download/attachments/23340431/create-address-initial.png?version=1&amp;modificationDate=1291927518000&amp;api=v2" data-image-src="/confluence/download/attachments/23340431/create-address-initial.png?version=1&amp;modificationDate=1291927518000&amp;api=v2"></p><p>Tapestry has done quite a bit of work here. It has created a form that includes a field for each property. Further, it has seen that the honorific property is an enumerated type, and presented that as a drop-down list.</p><p>In addition, Tapestry has converted the property names ("city", "email", "firstName") to user presentable labels ("City", "Email", "First Name"). In fact, these are &lt;label&gt; elements, so clicking a label with the mouse will move the input cursor into the corresponding field.</p><p>This is an awesome start; it's a presentable interface, 
 quite nice in fact for a few minute's work. But it's far from perfect; let's get started with some customizations.</p><h1 id="UsingBeanEditFormToCreateUserForms-ChangingFieldOrder">Changing Field Order</h1><p>The BeanEditForm must guess at the right order to present the fields; for public fields, they end up in alphabetical order</p><p></p><p>&lt;style type='text/css'&gt;
 .FootnoteMarker, .FootnoteNum a {
   background: transparent url(/confluence/download/resources/com.adaptavist.confluence.footnoteMacros:footnote/gfx/footnote.png) no-repeat top right;
   padding: 1px 2px 0px 1px;
@@ -213,7 +213,7 @@ var footnoteMarkerHighlight = function(i
             1
     </a>
 </sup>
-</p><p>.</p><p>&#160;</p><p>A better order for these fields is the order in which they are defined in the Address class:</p><ul><li>honorific</li><li>firstName</li><li>lastName</li><li>street1</li><li>street2</li><li>city</li><li>state</li><li>zip</li><li>email</li><li>phone</li></ul><p>We can accomplish this by using the <code>reorder</code> parameter of the BeanEditForm component, which is a comma separated list of property (or public field) names:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>CreateAddress.tml (partial)</b></div><div class="codeContent panelContent pdl">
+</p><p></p><p>.</p><p>&#160;</p><p>A better order for these fields is the order in which they are defined in the Address class:</p><ul><li>honorific</li><li>firstName</li><li>lastName</li><li>street1</li><li>street2</li><li>city</li><li>state</li><li>zip</li><li>email</li><li>phone</li></ul><p>We can accomplish this by using the <code>reorder</code> parameter of the BeanEditForm component, which is a comma separated list of property (or public field) names:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>CreateAddress.tml (partial)</b></div><div class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[  &lt;t:beaneditform object=&quot;address&quot;
     reorder=&quot;honorific,firstName,lastName,street1,street2,city,state,zip,email,phone&quot; /&gt;
 ]]></script>