You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by bo...@apache.org on 2017/09/16 01:54:20 UTC

svn commit: r1018226 [29/41] - in /websites/production/tapestry/content: ./ cache/ styles/

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 Sat Sep 16 01:54:19 2017
@@ -27,6 +27,17 @@
       </title>
   <link type="text/css" rel="stylesheet" href="/resources/space.css" />
 
+          <link href='/resources/highlighter/styles/shCoreCXF.css' rel='stylesheet' type='text/css' />
+    <link href='/resources/highlighter/styles/shThemeCXF.css' rel='stylesheet' type='text/css' />
+    <script src='/resources/highlighter/scripts/shCore.js' type='text/javascript'></script>
+          <script src='/resources/highlighter/scripts/shBrushJava.js' type='text/javascript'></script>
+          <script src='/resources/highlighter/scripts/shBrushXml.js' type='text/javascript'></script>
+          <script src='/resources/highlighter/scripts/shBrushJScript.js' type='text/javascript'></script>
+          <script src='/resources/highlighter/scripts/shBrushPlain.js' type='text/javascript'></script>
+        <script>
+      SyntaxHighlighter.defaults['toolbar'] = false;
+      SyntaxHighlighter.all();
+    </script>
   
   <link href="/styles/style.css" rel="stylesheet" type="text/css"/>
 
@@ -67,7 +78,202 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><plain-text-body>{scrollbar}</plain-text-body><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  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  href="how-to-upgrade.html">How to Upgrade</a> instructions.</p><p><strong>Contents</strong></p><p><parameter ac:name="maxLevel">2</parameter><parameter ac:name="minLevel">2</parameter></p><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  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  href="release-notes-52.html">Release Notes: Tapestry 5.2.0</a> (below) for details.</li><li><a  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  href="release
 -notes-52.html">Release Notes: Tapestry 5.2.2</a> (below) for details.</li><li>The <a  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><parameter ac:name="language">xml</parameter><plain-text-body>&lt;t:form&gt;&lt;t:label for="search"/&gt;&lt;t:textfield t:id="search" size="50"/&gt;&lt;/t:form&gt;</plain-text-body><p>Combined with JavaScript that references the id:</p><parameter ac:name="language">js</parameter><plain-text-body>jQuery('#search-label').text('This is the search label');   </plain-text-body><p>New JavaScript code for 5.2:</p><parameter ac:name="language">js</parameter><plain-text-body>jQuery('label[for=search]').text('This is the search label');</plain-text-body><ul><li>ContributeTranslatorSource compatibility is broken. Service 'TranslatorSource' is now configured using a MappedConfi
 guration, not a Configuration. See issue <a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1395">TAP5-1395</a></li><li>Code that uses Form.getDefaultTracker().getHasErrors()) fails if it assumes that getDefaultTracker() is not null when validation is successful. See issue <a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1401">TAPS-1401</a>.</li><li>Virtual folders, used to define root packages for component libraries, may no longer contain slashes.</li><li>The path prefix of a LibraryMapping may no longer contain the slash character.</li></ul><h2 id="ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.6">Release Notes: Tapestry 5.2.6</h2><p><parameter ac:name=""><a  href="release-notes-526.html">Release Notes 5.2.6</a></parameter></p><h2 id="ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.5">Release Notes: Tapestry 5.2.5</h2><p><parameter ac:name=""><a  href="release-notes-525.html">Release Notes 5.2.5</a></parameter></p><h2 id="ReleaseNotes5.2-Relea
 seNotes:Tapestry5.2.4">Release Notes: Tapestry 5.2.4</h2><p><parameter ac:name=""><a  href="release-notes-524.html">Release Notes 5.2.4</a></parameter></p><h2 id="ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.3">Release Notes: Tapestry 5.2.3</h2><p><parameter ac:name=""><a  href="release-notes-523.html">Release Notes 5.2.3</a></parameter></p><p><parameter ac:name="">Tap5.2.2</parameter></p><h2 id="ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.2">Release Notes: Tapestry 5.2.2</h2><p><parameter ac:name=""><a  href="release-notes-522.html">Release Notes 5.2.2</a></parameter></p><h2 id="ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.1">Release Notes: Tapestry 5.2.1</h2><p><parameter ac:name=""><a  href="release-notes-521.html">Release Notes 5.2.1</a></parameter></p><p><parameter ac:name="">Tap5.2.0</parameter></p><h2 id="ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.0">Release Notes: Tapestry 5.2.0</h2><p><parameter ac:name=""><a  href="release-notes-520.html">Release Notes 5.2.0</a></parameter></p><plain-t
 ext-body>{scrollbar}</plain-text-body></div>
+                <div id="ConfluenceContent"><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  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  href="how-to-upgrade.html">How to Upgrade</a> instructions.</p><p><strong>Contents</strong></p><p><style type="text/css">/*<![CDATA[*/
+div.rbtoc1499639567259 {padding: 0px;}
+div.rbtoc1499639567259 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1499639567259 li {margin-left: 0px;padding-left: 0px;}
+
+/*]]>*/</style></p><div class="toc-macro rbtoc1499639567259">
+<ul class="toc-indentation"><li><a  href="#ReleaseNotes5.2-BreakingChanges">Breaking Changes</a></li><li><a  href="#ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.6">Release Notes: Tapestry 5.2.6</a></li><li><a  href="#ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.5">Release Notes: Tapestry 5.2.5</a></li><li><a  href="#ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.4">Release Notes: Tapestry 5.2.4</a></li><li><a  href="#ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.3">Release Notes: Tapestry 5.2.3</a></li><li><a  href="#ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.2">Release Notes: Tapestry 5.2.2</a></li><li><a  href="#ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.1">Release Notes: Tapestry 5.2.1</a></li><li><a  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  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  href="release-notes-52.html">Release Notes: Tapestry 5.2.0</a> (below) for details.</li><li><a  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  href="release-notes-52.html">Release Notes: Tapestry 5.2.2</a> (below) for details.</li><li>The <a  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">
+<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;t:form&gt;&lt;t:label for="search"/&gt;&lt;t:textfield t:id="search" size="50"/&gt;&lt;/t:form&gt;</pre>
+</div></div><p>Combined with JavaScript that references the id:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: js; gutter: false; theme: Default" style="font-size:12px;">jQuery('#search-label').text('This is the search label');   </pre>
+</div></div><p>New JavaScript code for 5.2:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<pre class="brush: js; gutter: false; theme: Default" style="font-size:12px;">jQuery('label[for=search]').text('This is the search label');</pre>
+</div></div><ul><li>ContributeTranslatorSource compatibility is broken. Service 'TranslatorSource' is now configured using a MappedConfiguration, not a Configuration. See issue <a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1395">TAP5-1395</a></li><li>Code that uses Form.getDefaultTracker().getHasErrors()) fails if it assumes that getDefaultTracker() is not null when validation is successful. See issue <a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1401">TAPS-1401</a>.</li><li>Virtual folders, used to define root packages for component libraries, may no longer contain slashes.</li><li>The path prefix of a LibraryMapping may no longer contain the slash character.</li></ul><h2 id="ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.6">Release Notes: Tapestry 5.2.6</h2><p>Tapestry 5.2.6 is a maintenance release.
+
+</p><p></p><p>
+                
+</p><h3>        Bugs Fixed
+</h3>
+<ul><li>[<a  href="https://issues.apache.org/jira/browse/TAP5-1368">TAP5-1368</a>] -         The onFailure function provided to Tapestry.ajaxRequest does not always get invoked
+</li><li>[<a  href="https://issues.apache.org/jira/browse/TAP5-1546">TAP5-1546</a>] -         TranslatorSource incorrectly annotated with @UsesConfiguration when it should now be @UsesMappedConfiguration (as of 5.2)
+</li><li>[<a  href="https://issues.apache.org/jira/browse/TAP5-1551">TAP5-1551</a>] -         FormFragment change visibility/hide and remove event listeners should call event.stop() to prevent container fragments from also being hidden
+</li></ul>
+            
+<h3>        Improvements Made
+</h3>
+<ul><li>[<a  href="https://issues.apache.org/jira/browse/TAP5-1482">TAP5-1482</a>] -         Upgrade Prototype to 1.7 / Scriptaculous 1.9.0
+</li><li>[<a  href="https://issues.apache.org/jira/browse/TAP5-1538">TAP5-1538</a>] -         Optimize client-side URL rebuilding in IE 7
+</li><li>[<a  href="https://issues.apache.org/jira/browse/TAP5-1539">TAP5-1539</a>] -         Optimize document scans used by Tapestry.FieldEventManager to not locate the label or icon until actually needed
+</li></ul>
+                                            
+<p></p><h2 id="ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.5">Release Notes: Tapestry 5.2.5</h2><p>Version 5.2.5 is a maintenance release for 5.2.4.
+
+</p><h3 id="ReleaseNotes5.2-BugsFixed">Bugs Fixed</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1372">TAP5-1372</a> - BaseURLSource uses getLocalPort() rather than getServerPort()</li></ul>
+
+
+<h3 id="ReleaseNotes5.2-ImprovementsMade">Improvements Made</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1040">TAP5-1040</a> - Allow HTML5 doctype to be printed</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1208">TAP5-1208</a> - In development mode, Tapestry should "shadow" field &amp; parameter values to instance variables, to assist with debugging</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1346">TAP5-1346</a> - Fix broken links on new Web Site</li></ul><h2 id="ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.4">Release Notes: Tapestry 5.2.4</h2><p>Version 5.2.4 replaces version <a  href="release-notes-523.html">5.2.3</a>, which had an incorrect version number in the quickstart archetype.
+
+</p><h3 id="ReleaseNotes5.2-ImprovementsMade.1">Improvements Made</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1349">TAP5-1394</a> &#8211; The method parameter annotations are missing from Tapestry IoC proxies</li></ul><h2 id="ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.3">Release Notes: Tapestry 5.2.3</h2><p></p><h3 id="ReleaseNotes5.2-BugsFixed.1">Bugs Fixed</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1204">TAP5-1204</a> &#8211; tapestry-core JAR includes some compiled Groovy test scripts</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1326">TAP5-1326</a> &#8211; Bug in ConcurrentBarrierTest</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1327">TAP5-1327</a> &#8211; Tapestry IOC depends on SLF4J 1.5.6 which is not compatible with Hibernate 3.6 (which depends on 1.6.1)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1328">TAP5-1328</a> &#8211; Tapestry.ajaxRequest() fails when just parameters are provided, but not an onSuccess handler function</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1330">TAP5-1330</a> &#8211; Position of Injected Stylesheets changed from 5.1 to 5.2</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1332">
 TAP5-1332</a> &#8211; In a multi-zone update, if the referenced Zone can not be found on the client, Tapestry stops updating Zones with no error</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1334">TAP5-1334</a> &#8211; Id attribute of the @Decorate annotation should be optional</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1345">TAP5-1345</a> &#8211; A supported locale name is only recognized in lower case</li></ul>
+
+
+<h3 id="ReleaseNotes5.2-ImprovementsMade.2">Improvements Made</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-929">TAP5-929</a> &#8211; Implement sendRedirect() for TestableResponseImpl</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1333">TAP5-1333</a> &#8211; Zone should implement an interface, BodyElement, that extends ClientElement and provides the body property</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1341">TAP5-1341</a> &#8211; Improve page testing facilities</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1342">TAP5-1342</a> &#8211; Provide convenient methods for Element and Document to find elements</li></ul><p><span class="confluence-anchor-link" id="ReleaseNotes5.2-Tap5.2.2"></span></p><h2 id="ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.2">Release Notes: Tapestry 5.2.2</h2><p>It is now possible to generate an absolute URL from a Link object; an absolute URL includes the URL scheme, host, port
  number (if necessary) followed by the complete path.  This is useful in a number of situations, such as when generating a URL that may be e-mailed to an end user.
+
+</p><p>The semantics of the <code>Link.toAbsoluteURL()</code> method has changed; in prior releases it returned a complete URL (i.e., starting with a leading slash), and the method was typically used when generating an Ajax callback URL.  Starting in 5.2.2 this generates an absolute URL (as described above). In most cases, you should change code that invoked <code>toAbsoluteURL()</code> with a call to <code>toURL()</code> instead; because Tapestry no longer 'optimizes' URLs, this will work for Ajax cases as well.</p>
+
+<p>Deployed Tapestry applications often run behind a firewall, the available Request information about incoming hostname and port is often not accurate (it represents the private request from the firewall server to the application server, whereas the client uses a public request to the firewall server). When using absolute URLs, you will likely want to override the BaseURLSource service to provide accurate values that reflect your application's deployment.</p>
+
+<h3 id="ReleaseNotes5.2-BugsFixed.2">Bugs Fixed</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-708">TAP5-708</a> &#8211; Element.forceAttribute uses the element's namespace to match the attribute.</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-709">TAP5-709</a> &#8211; Element.attribute(String name, String value) adds elements that already exist</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-804">TAP5-804</a> &#8211; Element#addClassName can create an additional new 'class' attribute</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-921">TAP5-921</a> &#8211; Properties defined in an Interface are not exposed by PropertyAccess  for abstract classes that do not directly implement the methods</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1287">TAP5-1287</a> &#8211; Some services require a notification that they have been reloaded, so they can clean up extern
 al dependencies</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1293">TAP5-1293</a> &#8211; Whitespaces in SymbolConstants.SUPPORTED_LOCALES cause that locales are not persised</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1294">TAP5-1294</a> &#8211; Validation macros do not work when used in @Validate annotation</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1297">TAP5-1297</a> &#8211; Client-side validation of @Pattern is broken</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1303">TAP5-1303</a> &#8211; Linking a Form to a Zone will no longer work unless the Form contains validated fields</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1304">TAP5-1304</a> &#8211; When using PropertyShadowBuilder to build a service, if the property  is null, an immediate exception is needed (rather than a  NullPointerExcept
 ion)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1309">TAP5-1309</a> &#8211; When using a MultiZoneUpdate, Tapestry will clear the referenced zone</li></ul>
+
+
+<h3 id="ReleaseNotes5.2-ImprovementsMade.3">Improvements Made</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-538">TAP5-538</a> &#8211; Add the facility to optionally disable on-focus-change triggered validation while retaining the on-form-submit validation</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-874">TAP5-874</a> &#8211; Form component should be able to render a secure URL even on an insecure page</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1272">TAP5-1272</a> &#8211; New annotations @Decorate and @Advise to identify methods that decorate or annotate services</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1291">TAP5-1291</a> &#8211; Extend Link with new methods for producing absolute URLs (that include scheme, hostname, etc.)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1295">TAP5-1295</a> &#8211; Simplify connecting a link or form to an (enclosing) Zone<
 /li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1298">TAP5-1298</a> &#8211; BeanBlockContribution should be split into two sub-classes: EditBlockContribution and DisplayBlockContribution</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1300">TAP5-1300</a> &#8211; Define a special CSS class to prevent a client-side form from submitting normally (for Ajax use cases)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1306">TAP5-1306</a> &#8211; Additional method for Link: addParameterValue(String,Object) that uses ContextPathEncoder to encode object value to a string</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1314">TAP5-1314</a> &#8211; SeleniumTestCase should expose the underlying CommandProcessor, to  allow execution of commands not defined by the Selenium interface</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TA
 P5-1315">TAP5-1315</a> &#8211; Allow individual SeleniumTestCases to run w/o configuring SeleniumLauncher</li></ul>
+
+
+<h3 id="ReleaseNotes5.2-NewFeaturesAdded">New Features Added</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1299">TAP5-1299</a> &#8211; Option to disable live service reloading via a JVM system property</li></ul>
+
+
+<h3 id="ReleaseNotes5.2-TasksCompleted">Tasks Completed</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1317">TAP5-1317</a> &#8211; Upgrade Hibernate dependency to latest, Hibernate 3.6.0.Final</li></ul>
+<h2 id="ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.1">Release Notes: Tapestry 5.2.1</h2><p>Prior releases of Tapestry attempted to "optimize" URLs, by creating relative URLs where appropriate. Unfortunately, that caused its own problems with Ajax requests, since the base URL for an Ajax request is not the same as the base URL for the enclosing page.  In any case, this feature has been removed, all URLs are now complete URLs (they start with a leading slash, and include the context path and the additional path that describes the page, page activation context, etc.).
+
+</p><p>As part of this change, the <em>internal</em> RequestPathOptimizer service has been removed.</p>
+
+<h3 id="ReleaseNotes5.2-BugsFixed.3">Bugs Fixed</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-710">TAP5-710</a> &#8211; Documentation about "use of asset: and context: to reference  assets directly from a template file" has errors (See TAP5-214)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-752">TAP5-752</a> &#8211; Tapestry bin download includes lots of libraries that shouldn't be there due to licensing concerns</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-770">TAP5-770</a> &#8211; Minor documentation typos in PageLoaded annotation</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-818">TAP5-818</a> &#8211; Tapestry should properly support JDK 1.5 Generics when reading and updating properties and property expressions</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1004">TAP5-1004</a> &#8211; X-Tapestry-ErrorMessage may lead to HTTP Response Splitting</l
 i><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1011">TAP5-1011</a> &#8211; When using @PageActivationContext and providing a no-args activate event handler, the handler may be called too soon</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1118">TAP5-1118</a> &#8211; Using Ajax updates to add an Upload component to an existing  Form fails in IE, which still sends application/x-www-form-urlencoded  encoded request</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1123">TAP5-1123</a> &#8211; Documentation in ApplicationStateManager is not quite  correct: when creating an SSO it uses the full injection machinery, not  necessarilly the no-args constructor</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1177">TAP5-1177</a> &#8211; In a partial page update request, if the server returns an  empty string for the content, the client-side is left as is, rat
 her than  cleared</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1188">TAP5-1188</a> &#8211; Refactoring the base class of a live-reloaded service  implementation can cause mysterious NoSuchMethodError exceptions</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1192">TAP5-1192</a> &#8211; IE 8 throws an exception while purging JavaScript event handlers from elements as they are destroyed</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1201">TAP5-1201</a> &#8211; PageResponseRenderer.render() should call RequestGlobabls.storeActivePageName(String pageName)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1222">TAP5-1222</a> &#8211; Accessing a public field of a non-component object inside  component code can result in a TransfomationException  if the accessed  field name matches the name of a component field</li><li><a  class="external-link" href=
 "https://issues.apache.org/jira/browse/TAP5-1228">TAP5-1228</a> &#8211; The need to configure the tapestry.alias-mode symbol makes it  awkward to start a Registry up for unit testing purposes</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1229">TAP5-1229</a> &#8211; Tapestry binary/source distributions do not include all modules</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1230">TAP5-1230</a> &#8211; SeleniumTestCase.assertFieldValue() should invoke writeErrorReport() on failure</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1232">TAP5-1232</a> &#8211; Restore injection of service id (as a String) into service decorator methods for proper backwards compatibility</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1235">TAP5-1235</a> &#8211; The interaction between a Form component and the active page  can be problematic when there is an error l
 oading a page</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1241">TAP5-1241</a> &#8211; Setting the content length of the response should automatically disable response compression</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1244">TAP5-1244</a> &#8211; Tapestry components and mixins should be converted to use JavaScriptSupport, not RenderSupport</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1246">TAP5-1246</a> &#8211; Tapestry should use SQLException.getNextException() to dig down to the "root cause"</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1254">TAP5-1254</a> &#8211; The decorateComponentEventLink event name is misspelled</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1258">TAP5-1258</a> &#8211; Maven quickstart archetype puts the wrong version in the pom.xml</li><li><a  class="external-link" h
 ref="https://issues.apache.org/jira/browse/TAP5-1260">TAP5-1260</a> &#8211; Document "Assets", Section "Securing Assets" is outdated</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1261">TAP5-1261</a> &#8211; Tapestry adds event handlers not only to form components, but also to simple forms</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1264">TAP5-1264</a> &#8211; Ordering of MarkupRenderer (and PartialMarkupRender) filters  can cause bad interraction between ClientBehaviorSupport and Heartbeat</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1265">TAP5-1265</a> &#8211; Change the description for the quickstart archetype to just "Tapestry 5 Quickstart Project"</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1269">TAP5-1269</a> &#8211; Annotation @FactoryDefaults should be allowed on methods, for use with the @Contribute annotation</li><li><a  cl
 ass="external-link" href="https://issues.apache.org/jira/browse/TAP5-1277">TAP5-1277</a> &#8211; Tapestry incorrectly calls PrintWriter.flush(), not close(), when writing JSON objects and arrays as the response</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1279">TAP5-1279</a> &#8211; Importing a JavaScript library that is part of a stack should  import the entire stack instead of the individual library (to take  advantage of JavaScript aggregation)</li></ul>
+
+
+<h3 id="ReleaseNotes5.2-ImprovementsMade.4">Improvements Made</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-363">TAP5-363</a> &#8211; Cookbook: Using Tapestry to serve servlet-container error pages</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1233">TAP5-1233</a> &#8211; Live reloading of service implementation classes causes  IllegalAccessError if the class contains protected or package private  methods</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1236">TAP5-1236</a> &#8211; Add method Response.disableCompression() (to avoid use of a internal global key)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1245">TAP5-1245</a> &#8211; Break out the Tapestry JSON support into an independent module</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1250">TAP5-1250</a> &#8211; Add support for creating a Flow from an Iterable (not just Collection and object array)</li><li><a  
 class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1256">TAP5-1256</a> &#8211; Failed Selenium assertions should capture a screenshot (as well as the current page HTML)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1266">TAP5-1266</a> &#8211; Bring quickstart archetype up to date in several ways</li></ul>
+
+
+<h3 id="ReleaseNotes5.2-NewFeatures">New Features</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-910">TAP5-910</a> &#8211; Cookbook: defining a new enum as a component parameter, and adding the string -&gt; enum type coercion for it</li></ul>
+
+
+<h3 id="ReleaseNotes5.2-TasksCompleted.1">Tasks Completed</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1240">TAP5-1240</a> &#8211; Upgrade Hibernate dependencies to 3.5.4-Final</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1267">TAP5-1267</a> &#8211; Remove the code that "optimizes" generated URLs as it is not always possible to know what the base URL is</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1270">TAP5-1270</a> &#8211; Upgrade EasyMock dependency to version 3.0</li></ul>
+<p><span class="confluence-anchor-link" id="ReleaseNotes5.2-Tap5.2.0"></span></p><h2 id="ReleaseNotes5.2-ReleaseNotes:Tapestry5.2.0">Release Notes: Tapestry 5.2.0</h2><p>Tapestry 5.2.0 represents nearly a year of work past the prior stable release, 5.1.0.5.  For the most part, the upgrade is quite straight forward, but please read the notes below carefully.
+
+</p><h3 id="ReleaseNotes5.2-LiveServiceReloading">Live Service Reloading</h3>
+
+<p>Tapestry 5.2.0 extends Tapestry's concept of live reloading of Java code into the service layer. In most cases, service implementations of your application will now live reload, seamlessly. See the <a  href="frequently-asked-questions.html">FAQ</a> for some additional notes about live reloading.</p>
+
+<h3 id="ReleaseNotes5.2-PagesNoLongerPooled">Pages No Longer Pooled</h3>
+
+<p>This is a huge change from Tapestry 5.1 to 5.2; Tapestry no longer pools page instances. It creates <strong>one</strong> instance of each page (per supported locale). Tapestry rewrites your component classes so that all mutable state is stored in a per-thread HashMap. This will greatly reduce Tapestry's memory footprint, especially on heavily loaded sites.</p>
+
+<p>This change makes it easier to share objects between threads, which is problematic when the objects are not thread-safe.  For example:</p>
+
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Valid Component Code (5.1)</b></div><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
+  @Inject
+  private Locale locale;
+
+  private final DateFormat format = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);
+
+  public String getCurrentTimeFormatted()
+  {
+    return format.format(new Date());
+  }
+</pre>
+</div></div>
+
+<p>In the above code, <em>under 5.1</em>, the DateFormat object was not shared between threads, as each thread would operate with a different instance of the containing page.  Under 5.2, the final field <em>will</em> be shared across threads, which is problematic as DateFormat is not thread safe. The code should be rewritten as:</p>
+
+<div class="code panel pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" style="border-bottom-width: 1px;"><b>Updated for 5.2</b></div><div class="codeContent panelContent pdl">
+<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
+  @Inject
+  private Locale locale;
+
+  public String getCurrentTimeFormatted()
+  {
+    DateFormat format = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);
+tapestry.page-pool-enabled
+    return format.format(new Date());
+  }
+</pre>
+</div></div>
+
+<p>If such issues are difficult to solve, remember that as a temporary work-around you have the option of re-enabling the page pooling behavior of 5.1 by setting <code>tapestry.page-pool-enabled</code> to "true" in your <a  href="configuration.html">configuration</a>.</p>
+
+<h3 id="ReleaseNotes5.2-ServiceIdInjection">Service Id Injection</h3>
+
+<p>In prior releases of Tapestry, a constructor parameter of type String was assumed to be the service id. In the many cases where these was not the case (such as using the @Value or @Symbol annotation), the parameter needed to be annotated with the @Inject annotation.</p>
+
+<p>Starting in 5.2.0, this feature is no longer present (this is a <em>non-backwards compatible change</em>, but one that affects virtually nobody).  A parameter of type String will be subject to normal injection; you will likely want to use @Value or @Symbol with it, or you will see an error that "No service implements java.lang.String.".</p>
+
+<div class="confluence-information-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
+<p>Igor made a change such that a bare String is injected as the service id in some circumstance; it may be decorator methods.  This needs to be documented properly.</p></div></div>
+
+<h3 id="ReleaseNotes5.2-TranslatorSource">TranslatorSource</h3>
+
+<p>The configuration type for TranslatorSource has changed in an <em>incompatible</em> way: from an unordered collection to a mapped collection; this is to support overrides of Tapestry's<br clear="none">
+built-in translators. This will break existing module classes that contribute to the TranslatorSource service configuration.</p>
+
+<h3 id="ReleaseNotes5.2-Assets">Assets</h3>
+
+<p>There have been some changes to how assets operate in Tapestry 5.2.</p>
+
+<p>Virtual folders, used to define root packages for component libraries, may no longer contain slashes. Virtual folders are the pathPrefix property of the LibraryMapping objects that are contributed to the ComponentClassResolver service.</p>
+
+<p>Each LibraryMapping  is now automatically converted into a matching contribution to   the ClasspathAssetAliasManager service. Previously a library author was encouraged to make contributions to both services. The path prefix of a LibraryMapping is also now prohibited from containing the slash character.</p>
+
+<p>It is now quite necessary to configure the application version number: all assets are exposed via a URL that incorporates the application version number; in previous releases, each library could configure its own version number. By implication, changing library versions and nothing else will now require a change to the application version number.</p>
+
+<h3 id="ReleaseNotes5.2-ClassTransformationAPIchanges">ClassTransformation API changes</h3>
+
+<p>The ClassTransformation API, used to implement component meta-programming, has been rewritten with an eye to making class transformations easier to implement while removing the dependency on the Javassist library. This is of note only to <em>advanced</em> users who have implemented ComponentClassTransformWorkers, which operate on the ClassTransformation API.</p>
+
+<p>Much of the existing API has been deprecated and <em>some</em> deprecated methods are now non-functional. The deprecated methods will be removed in Tapestry 5.3.</p>
+
+<p>This represents a shift in how the API operates; previously much of the logic in ComponentClassTransformWorkers was built in terms of Javassist: adding new bytecode to existing methods. The new API switches away from this, and now works in terms of adding new fields, initializing those fields using callbacks, providing callbacks for access to fields, and adding advice to methods.</p>
+
+<h3 id="ReleaseNotes5.2-TemplateParserbacktoSAX">Template Parser back to SAX</h3>
+
+<p>Tapestry no longer uses a StAX parser to parse component templates, it has reverted to using a normal SAX parser. This change reduces the number of dependencies for Tapestry, and is a stepping stone towards compatibility with Google App Engine.</p>
+
+<h3 id="ReleaseNotes5.2-BugsFixed.4">Bugs Fixed</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-266">TAP5-266</a> &#8211; In a conflict between a render phase annotation and the naming convention, the explicit annotation should win</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-707">TAP5-707</a> &#8211; Yellow highlight remains on updated zone if zone is re-updated too quickly</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-711">TAP5-711</a> &#8211; Submit component: using image parameter prevents selected event from being fired</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-714">TAP5-714</a> &#8211; Incorrect encoding of single quotes for Ajax requests</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-715">TAP5-715</a> &#8211; TypeCoercer.explain incorrectly reports the plan to coerce from primitive types to wrapper types</li><li><a  class="external-link" h
 ref="https://issues.apache.org/jira/browse/TAP5-719">TAP5-719</a> &#8211; Component LinkSubmit doesn't work</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-728">TAP5-728</a> &#8211; When using the @Validate annotation, spaces around the commas that separate contraints cause runtime exceptions</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-734">TAP5-734</a> &#8211; Tapestry tutorial documentation refers to old archtype command</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-747">TAP5-747</a> &#8211; Property expressions that include method invocations that in  turn reference properties result in spurious error about "root"</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-748">TAP5-748</a> &#8211; NPE when defining a component using just t:id and no type or @Component annotation</li><li><a  class="external-link" href="https://issues.apache.org/jir
 a/browse/TAP5-749">TAP5-749</a> &#8211; The FormFragment and LinkSubmit components create a hidden field whose id ends with ":hidden"</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-750">TAP5-750</a> &#8211; Tapestry should not attempt to GZip flash movies (.swf files)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-755">TAP5-755</a> &#8211; URL rewriting documentation contains an example that won't compile due to lack of a return value</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-759">TAP5-759</a> &#8211; The documentation of DefaultNullFieldStrategy#replaceFromClient() is wrong about what gets returned</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-765">TAP5-765</a> &#8211; Included JavaScript libraries are not properly uniqued within an Ajax partial update response</li><li><a  class="external-link" href="https://issues.apache.org/jira/bro
 wse/TAP5-767">TAP5-767</a> &#8211; PropertyConduitSourceImpl should use english locale (instead of default locale) when evaluating decimals</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-769">TAP5-769</a> &#8211; JavaScript aggregation can be inefficient across multiple pages with different JS requirements</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-774">TAP5-774</a> &#8211; Initialization JavaScript needs help when order counts</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-779">TAP5-779</a> &#8211; CLONE -Linksubmit doesn't work inside a form with Zone parameter set</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-786">TAP5-786</a> &#8211; Exception messages in the pageload packages should be localized</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-787">TAP5-787</a> &#8211; AbstractIntegrationTest's "as
 sertTextPresent" only checks the first value</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-788">TAP5-788</a> &#8211; ParallelExecutor service throws RejectedExecutionException if more then THREAD_POOL_MAX_SIZE jobs are submitted</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-796">TAP5-796</a> &#8211; Form component generates invalid xHtml: there should not be the "name" attribute</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-812">TAP5-812</a> &#8211; The input validation documentation incorrectly shows validation occuring in the success event handler method</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-813">TAP5-813</a> &#8211; the component rendering page of the user guide is not generated by maven</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-815">TAP5-815</a> &#8211; Asset dispatcher allows any file
  inside the webapp visible and downloadable</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-823">TAP5-823</a> &#8211; Message about incompatible return type of a render phase method is misleading</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-824">TAP5-824</a> &#8211; Javasisst 3.9.0.GA not available from central repository</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-830">TAP5-830</a> &#8211; SpringModuleDef unnecessarily hard-codes that the type of  object stored in the context as a ConfigurableWebApplicationContext when  any object implementing ApplicationContext is sufficient</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-834">TAP5-834</a> &#8211; BaseOptimizedSessionPersistedObject does not work correctly with Tomcat &amp; Jetty</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-837">TAP5-837</a> &#8211;
  prototype1.6.0 not support for ie8</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-839">TAP5-839</a> &#8211; Tapestry should ignore (public) synthetic methods in module classes</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-856">TAP5-856</a> &#8211; MetaDataLocatorImpl.findMeta(String, String, Class) doesn't  check contributed defaults - breaks SECURE_PAGE contributions</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-868">TAP5-868</a> &#8211; It is not possible to attach a validation event listener to a Palette (or other &lt;select&gt; field)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-871">TAP5-871</a> &#8211; Generation of Component Reference failed on Windows</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-881">TAP5-881</a> &#8211; Tapestry's customized Blackbird implementation sends a dubious cookie v
 alue over every request</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-894">TAP5-894</a> &#8211; Fix PartialMarkupDocumentLinkerTest.stylesheet_link()</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-896">TAP5-896</a> &#8211; Contribute 'properties' file extension to the configuration of ResourceDigestGenerator</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-898">TAP5-898</a> &#8211; BeanModel methods reorder, include and exclude should return BeanModel&lt;T&gt; (not BeanModel&lt;?&gt;)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-908">TAP5-908</a> &#8211; Blackbird console should not add cookies to requests</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-913">TAP5-913</a> &#8211; Stack size too large exception, related to PropertyExpressionLexer</li><li><a  class="external-link" href="https://issues.apache.
 org/jira/browse/TAP5-919">TAP5-919</a> &#8211; Calling MarkupWriter.element() with an even number of  arguments throws ArrayIndexOutOfBounds exception, not a useful exception  about omitting a attribute name or value</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-923">TAP5-923</a> &#8211; Injeting Tapestry Services to Spring Beans is completely undocumented</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-936">TAP5-936</a> &#8211; Tapestry wiki link links to nothing for locales other then en</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-937">TAP5-937</a> &#8211; LinkImpl does not handle parameters properly when passed into the constructor</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-940">TAP5-940</a> &#8211; Zone should fire a heart beat event</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-943">TAP5-943</
 a> &#8211; Documentation for event handler methods should go into detail about returns true or false</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-944">TAP5-944</a> &#8211; When a ValueEncoder is unable to convert an id to a entity,  it should wrap the underlying type coercion exception to describe the  input and expected output type</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-945">TAP5-945</a> &#8211; Unnecessary and severe lock contention in PerthreadManagerImpl</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-947">TAP5-947</a> &#8211; Default name "submit" for submit component breaks javascript function submit()</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-959">TAP5-959</a> &#8211; Ajax event handler methods that return a page instance, page  class or page name should cause the client to redirect to that page, but  doesn't work in IE7
  or 8 if the URL has a query param</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-961">TAP5-961</a> &#8211; When a URL rewriting rule changes the path for a rendered  link (component event or page render), any query parameters associated  with the original link are lost</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-962">TAP5-962</a> &#8211; Errors component includes an @Environmental for FormSupport, but doesn't use it</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-964">TAP5-964</a> &#8211; Exception report failed to render due to NPE inside session-persisted objects' toString()</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-974">TAP5-974</a> &#8211; PageCallback should be marked with the @ImmutableSessionPersistedObject annotation</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-987">TAP5-987</a> &#8211; I
 n some cases you can invoke Form.recordError() and the Form will still fire a success (not a failure) event</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1001">TAP5-1001</a> &#8211; Garbled exception message when a component is defined in a  namespace that is not properly defined as a Tapestry library namespace</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1018">TAP5-1018</a> &#8211; Request to Application Root path ignores ComponentRequestFilter's</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1019">TAP5-1019</a> &#8211; French translations for number format error message</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1020">TAP5-1020</a> &#8211; Fix typo in tapestry-hibernate/src/site/apt/userguide.apt:  HibernateTransactionAdviser should be HibernateTransactionAdvisor</li><li><a  class="external-link" href="https://issues.apache.org/jira
 /browse/TAP5-1030">TAP5-1030</a> &#8211; Injecting a Logger into a non-service object, created as part  of constructing a service configuration, should work but doesn't</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1031">TAP5-1031</a> &#8211; NPE from Any component when invoking getClientId() before the component renders</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1034">TAP5-1034</a> &#8211; Using URLRewriteRules will fail for component event links if the page has an activation context</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1042">TAP5-1042</a> &#8211; URLRewriting causes confusion about the incoming Request path, leading to incorrect optimized relative URLs</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1043">TAP5-1043</a> &#8211; PropertyDisplayBlocks causes NullPointerException when property of type Calendar is null</li><li><a 
  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1047">TAP5-1047</a> &#8211; @IncludeJavaScriptLibrary and @IncludeStylesheet may incorrectly calculate resources in component sub-classes</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1052">TAP5-1052</a> &#8211; Component classes page of the guide should be much more  specific that only component classes go in pages, components, etc.</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1054">TAP5-1054</a> &#8211; Not able to pass an empty string as appName to PageTester</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1057">TAP5-1057</a> &#8211; XSS vulnerability in calendar component</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1060">TAP5-1060</a> &#8211; In IE8, forms that should submit using Ajax are triggering full page requests due to a client-side JavaScript error</li><
 li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1067">TAP5-1067</a> &#8211; Created component constructor may use too many parameters</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1068">TAP5-1068</a> &#8211; RenderSupport.addScriptLink(String) deprecated and removed without replacement</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1069">TAP5-1069</a> &#8211; Tapestry POM should reference only the Apache Nexus repository, not the tapestry.formos.com repository</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1074">TAP5-1074</a> &#8211; The @QueryParameter annotation uses TypeCoercer to convert  from request parameter strings to method parameter values, it should use  the ValueEncoder</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1075">TAP5-1075</a> &#8211; When a template contains a reference to an unknown compo
 nent,  the new UnknownValueException is reported but the Location is no longer  reported, making it much harder to determine where the error occurred</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1076">TAP5-1076</a> &#8211; When a service implementation is reloadable, it will not eager load</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1080">TAP5-1080</a> &#8211; Page activation context lost when redirecting from HTTP to HTTPS due to the @Secure annotation</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1086">TAP5-1086</a> &#8211; Localized root path request results in a 404 error if Index page is not available</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1088">TAP5-1088</a> &#8211; Bean editor model for &lt;class name&gt; already contains a  property model for property &lt;property name&gt; when combining model  parameter with add parame
 ter of BeanEditor or BeanEditForm</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1090">TAP5-1090</a> &#8211; Deleting a live-reloaded class can result in a non-descriptive "Parameter url was null." exception</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1096">TAP5-1096</a> &#8211; If a Zone's id parameter is bound, then the clientId property should return that value, even before the Zone renders</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1100">TAP5-1100</a> &#8211; On ajax request, template body doesn't render if page is new in pagepool or if server restarted</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1105">TAP5-1105</a> &#8211; BeanModelSource should recognize public field as properties, but doesn't</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1106">TAP5-1106</a> &#8211; Tapestry.ajaxFailureHan
 dler has an incorrect signature for an Ajax.Request onException callback</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1109">TAP5-1109</a> &#8211; Updating multiple zones within a Form creates anomalous empty text fields</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1110">TAP5-1110</a> &#8211; Tapestry holds onto the verbose descriptions of component class transformations, causing a memory leak</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1116">TAP5-1116</a> &#8211; Live lock when using compressed and virtual assets due to ByteArrayOutputStream being synchronized</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1120">TAP5-1120</a> &#8211; It is not possible to override the default Translator contributions to the TranslatorSource service</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1124">TAP5-1124</a> &
 #8211; FormEventManager.setSubmittingElement(element) creates input element with type="input"</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1128">TAP5-1128</a> &#8211; A space is added to a HTML start comment sequence making it impossible to add IE conditional comments</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1130">TAP5-1130</a> &#8211; LinkSubmit component doesn't work when form contains Select component with default id</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1136">TAP5-1136</a> &#8211; java.lang.UnsupportedOperationException from UpdateListenerHub when a weak reference is reclaimed</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1137">TAP5-1137</a> &#8211; Dynamically adding JavaScript libraries to a page via a  partial page update does not seem to work consistently in Safari and  Chrome</li><li><a  class="external-link" href=
 "https://issues.apache.org/jira/browse/TAP5-1138">TAP5-1138</a> &#8211; ClassTransformation deprecated a bunch of methods, then refers to replacements that don't exist</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1141">TAP5-1141</a> &#8211; Type coercion from arbitrary object to Boolean will NPE when  the object's toString() returns null (should coerce to false)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1145">TAP5-1145</a> &#8211; Writing only text (or raw text) into a Document via MarkupWriter results in [empty Document], not the actual text</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1147">TAP5-1147</a> &#8211; Ajax updates under IE leak lots of memory</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1154">TAP5-1154</a> &#8211; ValidationDecorator.insideField not called for Select component</li><li><a  class="external-link" href="h
 ttps://issues.apache.org/jira/browse/TAP5-1156">TAP5-1156</a> &#8211; Provide a ValueEncoder for a Hibernate entity automatically only if a mapped class exists</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1158">TAP5-1158</a> &#8211; Captured HTML from failed Selenium assertions do not get stored in the correct place on Windows</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1161">TAP5-1161</a> &#8211; Tapestry 5.1 seems incompatible with Spring 3</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1166">TAP5-1166</a> &#8211; ClassPropertyAdapterImpl should skip static  fields</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1182">TAP5-1182</a> &#8211; javax.management preventsTapestry apps from being deployed on GAE</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1185">TAP5-1185</a> &#8211; Upgrade to latest Java
 ssist version to avoid LocalVariableTable exceptions (especially on Google App Engine)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1198">TAP5-1198</a> &#8211; A user defined activate event handler appears to execute  *before* the event handler supplied by @PageActivationContext, making  defensive coding impossible</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1203">TAP5-1203</a> &#8211; Use of @Contribute annotation does not work properly with marker annotations</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1207">TAP5-1207</a> &#8211; A form control component (such as TextField) whose id is "id" can confuse client-side logic for the Form DOM object</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1209">TAP5-1209</a> &#8211; Marker annotations used with services that have contributions  should be applicable to methods (as well as fields an
 d parameters) for  compatibility with @Contribute</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1210">TAP5-1210</a> &#8211; MultiZone update from EventLink with Form fails in Internet Explorer</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1211">TAP5-1211</a> &#8211; LinkSubmit broken in IE 7 mode</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1216">TAP5-1216</a> &#8211; ValueEncoderSource does not define a @UsesMappedConfiguration annotation</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1223">TAP5-1223</a> &#8211; The name "JavaScript" should have a capital "S" but is inconsistent in some class and interface names</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1224">TAP5-1224</a> &#8211; When contributing to a service using a "contribute" method,  the service id from the method name now matches case-sen
 sitively to the  service id (it should be case insensitive)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1262">TAP5-1262</a> &#8211; XSS vulnerability in calendar component (apply to 5.1.0.x)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1282">TAP5-1282</a> &#8211; Form component generates invalid xHtml: there should not be the "name" attribute - Applied to 5.1</li></ul>
+
+
+<h3 id="ReleaseNotes5.2-ImprovementsMade.5">Improvements Made</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-69">TAP5-69</a> &#8211; Add annotation, @Contribute, to allow service contributor methods to be arbitrary named</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-88">TAP5-88</a> &#8211; Add support for Bulgarian locale</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-179">TAP5-179</a> &#8211; The TriggerFragment mixin would be more useful if it could  invert its logic, i.e., make a a fragment visible when a checkbox was  turned off</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-247">TAP5-247</a> &#8211; Move all Tapestry 5 configuration keys to a constant class</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-335">TAP5-335</a> &#8211; Provide access to annotations of service implementation class</li><li><a  class="external-link" href="https://issues.apache.org/jira/b
 rowse/TAP5-424">TAP5-424</a> &#8211; Allow component libraries to contribute extra resources to the global application catalog</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-632">TAP5-632</a> &#8211; Property names (in property expressions) should be able to read or update public variables</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-674">TAP5-674</a> &#8211; Make it easy to implement a page callback mechanism</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-678">TAP5-678</a> &#8211; Allow blackbird to be disabled in production mode</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-685">TAP5-685</a> &#8211; Allow services defined by module tapestry-ioc to be advised and decorated</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-713">TAP5-713</a> &#8211; Change template parser to not use StAX, as it is not (yet)
  compatible with Google App Engine</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-760">TAP5-760</a> &#8211; The Form event "validateForm" is awkwardly named and should be replaced with the simpler name "validate"</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-762">TAP5-762</a> &#8211; Upgrade Selenium dependencies to version 1.0.1</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-764">TAP5-764</a> &#8211; Hidden should support ClientElement and support informal parameters.</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-777">TAP5-777</a> &#8211; Tapestry should ensure that mixins are applied in a deterministic order.</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-783">TAP5-783</a> &#8211; tapestry should mark via annotation which annotations are component-specific vs. more general</li><li><a  class="external-l
 ink" href="https://issues.apache.org/jira/browse/TAP5-789">TAP5-789</a> &#8211; Provide bean and display blocks for java.util.Calendar</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-790">TAP5-790</a> &#8211; Provide ApplicationStatePersistenceStrategy for Hibernate entities</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-803">TAP5-803</a> &#8211; ProgressiveDisplay should include a read-only body property of type Block, just like Zone</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-807">TAP5-807</a> &#8211; PageRenderLinkSource should add additional methods for  creating a Link when you have the page's activation context as an  EventContext</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-810">TAP5-810</a> &#8211; Improve documentation of @Persist annotation</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-811">
 TAP5-811</a> &#8211; Layout component documentation is not very clear about directory structure</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-814">TAP5-814</a> &#8211; include a diagram showing how incoming requests pass through the different pipelines, filters and dispatchers</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-826">TAP5-826</a> &#8211; The ActionLink documentation is missing the option to use object arrays as context inside templates</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-859">TAP5-859</a> &#8211; In a stack trace, any lines associated with line #1 of a  class are likely to be synthetic methods and should be classified as  "uninteresting"</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-863">TAP5-863</a> &#8211; Tapestry.ajaxRequest is insufficient when doing extra, such as adding query parameters</li><li><a  class="exter
 nal-link" href="https://issues.apache.org/jira/browse/TAP5-884">TAP5-884</a> &#8211; Introduce a symbol for tapestry.js</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-887">TAP5-887</a> &#8211; Easier way to initialize a JSONObject with keys and values</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-889">TAP5-889</a> &#8211; Provide fluent API for order constraints of contributions</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-904">TAP5-904</a> &#8211; Make use of Selenium.showContextualBanner() when running integration tests</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-905">TAP5-905</a> &#8211; Tapestry should support the full range of Unicode characters acceptible by Java as property names</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-912">TAP5-912</a> &#8211; Validation of properties of type java.util
 .Collection should fail when the collection is empty</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-914">TAP5-914</a> &#8211; When autobuilding a Java bean (such as a Session State Object), the code should use the OperationTracker</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-915">TAP5-915</a> &#8211; It should be possible to override a components message catalog</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-917">TAP5-917</a> &#8211; Don't set Expires header when tapestry.production-mode is false</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-927">TAP5-927</a> &#8211; Cannot use Scala for Tapestry IOC Modules</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-948">TAP5-948</a> &#8211; Built-in mechanism to identify self-referential links and/or event/render requests</li><li><a  class="external-link" href="ht
 tps://issues.apache.org/jira/browse/TAP5-958">TAP5-958</a> &#8211; Upgrade Tapestry's built-in copy of prototype.js to version 1.6.1</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-963">TAP5-963</a> &#8211; Allow access to static resources (css, js, jpg, jpeg, png, gif) inside the app package</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-965">TAP5-965</a> &#8211; Upgrade EasyMock dependency to release 2.5.2</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-967">TAP5-967</a> &#8211; ObjectLocator.autobuild would be more useful with an override  that allowed a message about the object to be described</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-971">TAP5-971</a> &#8211; FormFragment component should include a parameter to control  whether non-visible content is included in the form submission</li><li><a  class="external-link" href="https://issu
 es.apache.org/jira/browse/TAP5-978">TAP5-978</a> &#8211; Provide remote management of the page pool settings</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-979">TAP5-979</a> &#8211; Form component should be more careful with the validation  tracker to ensure that a session is not created unless needed</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-993">TAP5-993</a> &#8211; Reorganize ComponentClassTransformWorkers to start moving away from Javassist</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-994">TAP5-994</a> &#8211; Field autofocus should be done via Tapestry.init instead of using $ function</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1000">TAP5-1000</a> &#8211; When Autobuilding a class, the constructor to be used should be identified in the trace output</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/T
 AP5-1014">TAP5-1014</a> &#8211; Message about missing or wrong retention policy of a marker annotation is misleading</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1015">TAP5-1015</a> &#8211; Provide a new return type for event handler methods that  would trigger the rendering of a particular page without a redirect</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1023">TAP5-1023</a> &#8211; (5.2.0-SPNAPSHOT Maven dependencies) tapestry-hibernate-5.2.0  jar generated with tapestry-hibernate-5.2.0-yyyyMMdd.hhmmss-?.jar &gt;  tapestry-hibernate-5.2.0-SNAPSHOT.jar whereas all other jar are using  -5.2.0-SNAPSHOT</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1024">TAP5-1024</a> &#8211; Submit component should allow return values from event handler methods triggered by its event</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1033">TAP5-1033</a> &#
 8211; Upgrade selenium dependencies to 1.0.3</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1036">TAP5-1036</a> &#8211; It would be nice if there was a way for committers to run individual integration tests again</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1037">TAP5-1037</a> &#8211; Rewrite URLRewriter integration tests to use new SeleniumTestCase instead of deprecated AbstractIntegrationTestSuite</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1038">TAP5-1038</a> &#8211; Rewrite live reload integration tests to use new SeleniumTestCase instead of deprecated AbstractIntegrationTestSuite</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1046">TAP5-1046</a> &#8211; Change Tapestry client-side JavaScript to make the tapx/Confirm component easier to implement</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1050
 ">TAP5-1050</a> &#8211; Add API to prevent a particular service implementation from being live reloaded</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1055">TAP5-1055</a> &#8211; Provide hook to post-process properties files before rolling them into component Messages</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1061">TAP5-1061</a> &#8211; When a Zone component sends an Ajax request for a client-side  update, it should pass an extra query parameter identifying the zone's  client-side id</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1077">TAP5-1077</a> &#8211; Merge symbol values into property values from a bean definition</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1085">TAP5-1085</a> &#8211; The ExceptionReporter should be configured to mark more of  the Tapestry generated classes (used for method &amp; field access and  method advice
 ) as hidden by default</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1091">TAP5-1091</a> &#8211; CLONE -Handler method of LinkSubmit component should accept a context</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1094">TAP5-1094</a> &#8211; Create a binding prefix, "symbol:", that is used to access IoC symbols</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1112">TAP5-1112</a> &#8211; Handle array types in property expressions</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1126">TAP5-1126</a> &#8211; Add a new validator, "none", used when overriding the @Validate annotation</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1127">TAP5-1127</a> &#8211; Documentation for the Submit and LinkSubmit components should  identify that you should cancel defer when inside a Loop</li><li><a  class="external-link" href="
 https://issues.apache.org/jira/browse/TAP5-1129">TAP5-1129</a> &#8211; LinkSubmit should render minimally (and as &lt;span&gt; tag) and then fill in the details on the client</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1132">TAP5-1132</a> &#8211; HibernateGridDataSource should assign the result of  Projections.rowCount() to java.lang.Number when determining the number  of rows for the configured entity type</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1135">TAP5-1135</a> &#8211; Provide a convinient method to build and start the registry</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1150">TAP5-1150</a> &#8211; Refactor out a new base class between org.testng.Assert and  org.apache.tapestry5.ioc.test.TestBase for non-mock related tests</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1152">TAP5-1152</a> &#8211; TypeCoercer should include 
 a method exposing the coercion it would use for a given source and target type</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1153">TAP5-1153</a> &#8211; When in development mode, Tapestry should pretty-print JSON content</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1155">TAP5-1155</a> &#8211; JavaScript initialization inside the partial page render Ajax response should be unquoted</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1157">TAP5-1157</a> &#8211; Client-side exceptions during Tapestry.init() should be caught and reported with the console</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1165">TAP5-1165</a> &#8211; Make better use of the OperationTracker to identify what's  going on during a request (and especially, during page construction)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1170">TAP5-
 1170</a> &#8211; Remove automatic injection of service id into parameters of type String</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1174">TAP5-1174</a> &#8211; Provide a ComponentEventResultProcessor that sends an error response to the client</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1197">TAP5-1197</a> &#8211; Eliminate page pooling using shared page instances that separate their structure from the mutable state</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1225">TAP5-1225</a> &#8211; Use recent Groovy/GMaven version and fix GMaven configuration in tapestry-core POM</li></ul>
+
+
+<h3 id="ReleaseNotes5.2-NewFeatures.1">New Features</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-52">TAP5-52</a> &#8211; Add Error component that presents validation errors of a single field</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-56">TAP5-56</a> &#8211; Tapestry should have support for IE conditional stylesheets</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-86">TAP5-86</a> &#8211; Add support for "cancel" submit buttons (which bypass client-side validation)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-103">TAP5-103</a> &#8211; provide access to component parameters from within mixins</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-138">TAP5-138</a> &#8211; Add Zone parameter to Select component</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-152">TAP5-152</a> &#8211; Add @Translate annotation to define name of 
 translator to be  used with a bean property (rather than lookup by property type)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-156">TAP5-156</a> &#8211; Add a @QueryParameter annotation for parameters to event handler method</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-226">TAP5-226</a> &#8211; Add annotation @SessionAttribute to map a field to a specific session attribute</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-680">TAP5-680</a> &#8211; Tapestry should provide a mixin for ensuring that the client id of a ClientElement is rendered</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-692">TAP5-692</a> &#8211; T5 should pick up validators to be applied to a field from the containing component's .properties file.</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-801">TAP5-801</a> &#8211; Add Trigger compone
 nt to trigger a component event during rendering</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-895">TAP5-895</a> &#8211; Tracking issue for Tapestry/JSR-303 integration</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-951">TAP5-951</a> &#8211; Create more flexible API for testing with Selenium that  allows for multiple test cases to share a single instance of  Selenium/SeleniumServer/Jetty</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-966">TAP5-966</a> &#8211; TapestryFilter should be able add additional modules to the  Registry to accomidate different testing (or other) execution  configurations</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1013">TAP5-1013</a> &#8211; Live class reloading for service implementations</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1028">TAP5-1028</a> &#8211; Validator Macr
 os: Combine multiple common validators into a single term</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1035">TAP5-1035</a> &#8211; In places where an invalid key is used to accessed a named  value, Tapestry should report the possible names better (using HTML  lists, rather than a long comma-separated string)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1056">TAP5-1056</a> &#8211; The application global message catalog should be injectable into services</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1064">TAP5-1064</a> &#8211; Extend PropertyAccess to understand Scala style properties (which use a different naming convention than JavaBeans)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1065">TAP5-1065</a> &#8211; Non-visual mixin to generate events as it begins/ends rendering (useful for generating matching JavaScript)</li><li><a  class=
 "external-link" href="https://issues.apache.org/jira/browse/TAP5-1079">TAP5-1079</a> &#8211; Live class reloading should extend to proxied objects (such as from ObjectLocator.proxy()</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1084">TAP5-1084</a> &#8211; Zones that initially render inside a Form should support updates within the Form</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1095">TAP5-1095</a> &#8211; LocalizationSetter service should expose the supported locales as a list of Locale and as a SelectModel</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1097">TAP5-1097</a> &#8211; New annotation: @HeartbeatDeferred to mark component methods that should execute at the end of the current Heartbeat</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1098">TAP5-1098</a> &#8211; Provide new SelectModelFactory service that can automatically  build
  a standard SelectModel from objects and property names</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1099">TAP5-1099</a> &#8211; Introduce public service responsible for handling page activation</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1121">TAP5-1121</a> &#8211; Provide an annotation to support automatic discarding of the  persistent fields after a component or page method invocation</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1159">TAP5-1159</a> &#8211; Easy way to customize search locations for page and component templates</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1190">TAP5-1190</a> &#8211; New page-level events to "decorate" component event and page render links</li></ul>
+
+
+<h3 id="ReleaseNotes5.2-TasksCompleted.2">Tasks Completed</h3>
+
+<ul><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-11">TAP5-11</a> &#8211; CookiesImplTest does specify a domain cookie with a domain not prefixed with a . (dot)</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-556">TAP5-556</a> &#8211; Fix TranslatorSourceImplTest</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-756">TAP5-756</a> &#8211; Add ioko-tapestry-commons to the related projects list</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-819">TAP5-819</a> &#8211; remove ide-specific files from all sub-modules and add them to svn:ignore</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-969">TAP5-969</a> &#8211; Method AbstractField.createDefaultParameterBinding() should be deprecated</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-976">TAP5-976</a> &#8211; Upgrade Spring dependencie
 s to version 3.0.0.RELEASE</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1081">TAP5-1081</a> &#8211; Remove formos references from 5.2.0 archetype</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1087">TAP5-1087</a> &#8211; Upgrade TestNG dependencies to version 5.12.1</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1134">TAP5-1134</a> &#8211; Upgrade Hibernate dependencies to 3.5.2</li><li><a  class="external-link" href="https://issues.apache.org/jira/browse/TAP5-1195">TAP5-1195</a> &#8211; Rename annotations @QueryParameter and @QueryParameterMapped (both introduced in 5.2.0) to more mnemonic names</li></ul>
+</div>
       </div>
 
       <div class="clearer"></div>