Author: buildbot
Date: Mon Jan 16 14:20:04 2017
New Revision: 1005035

Log:
Production update by buildbot for tapestry

Modified:
    websites/production/tapestry/content/cache/main.pageCache
    websites/production/tapestry/content/release-notes-54.html

Modified: websites/production/tapestry/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/tapestry/content/release-notes-54.html
==============================================================================
--- websites/production/tapestry/content/release-notes-54.html (original)
+++ websites/production/tapestry/content/release-notes-54.html Mon Jan 16 
14:20:04 2017
@@ -64,7 +64,7 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p>This is the consolidated list 
of changes between Tapestry versions 5.3 and 5.4. To upgrade to 5.4, most users 
who are not using deprecated features will be able to just update the 
dependency version in their Maven POM file or Gradle build script (or <a  
href="download.html">download</a> the new JAR files) and the new version will 
just work, although the introduction of Bootstrap CSS will require some styling 
adjustments for most applications not already using Bootstrap. Please read 
carefully below before upgrading, and also review the <a  
href="how-to-upgrade.html">How to Upgrade</a> instructions.</p><h2 
id="ReleaseNotes5.4-IncompatibleAPIs">Incompatible APIs</h2><h3 
id="ReleaseNotes5.4-JavaScriptSupport">JavaScriptSupport</h3><p>Some existing 
methods of JavaScriptSupport were changed from returning void, to returning the 
JavaScriptSupport instance, to allow for chaining of calls. This interface is 
consumed by end-user code, but not gen
 erally implemented by end-user code.</p><h2 
id="ReleaseNotes5.4-BreakingFeatures">Breaking Features</h2><h3 
id="ReleaseNotes5.4-ClassFactoryRemoved">ClassFactory Removed</h3><p>Tapestry's 
use of the <a  class="external-link" 
href="http://www.csg.is.titech.ac.jp/~chiba/javassist/"; 
rel="nofollow">Javassist</a> bytecode library has been completely removed, 
along with many related services, such as <a  class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/ioc/services/ClassFactory.html";>ClassFactory</a>,
 that were deprecated in 5.3. Use <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/services/PlasticProxyFactory.html";>PlasticProxyFactory</a>
 instead. Most users will not be affected by this unless they relied on 
Tapestry's dependency on Javassist.</p><h3 
id="ReleaseNotes5.4-MarkupWriterFactoryAPIchanged">MarkupWriterFactory API 
changed</h3><p>The <a  class="external-link" href="http://tapestry.apache.or
 
g/current/apidocs/org/apache/tapestry5/services/MarkupWriterFactory.html">MarkupWriterFactory</a>
 interface has 3 new methods, added to support the HTML5 rules for element 
endings. If you have any classes that <em>implement</em> MarkupWriterFactory 
(which is rare), they'll need to be modified to implement the new 
methods.</p><h3 id="ReleaseNotes5.4-InjectedScriptsatBottom">Injected Scripts 
at Bottom</h3><p>In prior versions of Tapestry, JavaScript libraries injected 
into the page (via the @<a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Import.html";>Import</a>
 annotation, or via <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/javascript/JavaScriptSupport.html";>JavaScriptSupport</a>),
 were injected into the &lt;head&gt; element of the HTML page, either at the 
end of the element, or before any existing &lt;script&gt; element.</p><p>With 
this release, the Tapestry integr
 ates with <a  class="external-link" href="http://requirejs.org/"; 
rel="nofollow">RequireJS</a> to dynamically load libraries. This may affect a 
small number of JavaScript libraries, such as <a  class="external-link" 
href="http://www.google.com/analytics/"; rel="nofollow">Google Analytics</a> 
that need to be placed at the top of the page; in those cases, the library 
should be added to the template of your application's main layout component, 
instead of relying on @Import and JavaScriptSupport.</p><h3 
id="ReleaseNotes5.4-NoRedirectOnFormValidationErrors">No Redirect On Form 
Validation Errors</h3><p>In prior releases of Tapestry, when a client-side form 
was submitted and there were server-side validation errors, Tapestry would 
perform a redirect-after-post to re-render the page; this meant that the <a  
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ValidationTracker.html";>ValidationTracker</a>
 object that stores validation errors would, itself
 , need to persist to the new render request, causing a server-side session to 
be created. Starting in 5.4, the default behavior for server-side validation 
exceptions is to re-render the page content immediately, within the same 
request; this obviates the need to use a persistent field to store the 
tracker.</p><h2 id="ReleaseNotes5.4-NewFeatures">New Features</h2><h3 
id="ReleaseNotes5.4-Componentfieldvisibility">Component field 
visibility</h3><p>In prior versions of Tapestry, all instance fields of 
components had to be visibility private; starting with versions 5.3.2 and 5.4, 
this has been relaxed. Component fields may be protected, or package private 
(that is, no visibility modifier). Fields that are final, or annotated with @<a 
 class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Retain.html";>Retain</a>
 may even be public. In any case, this makes it easier for pages to work with 
other pages in the same package, and for subclasses 
 to more easily access the fields (including parameter fields, or injections) 
provided by base classes. This feature should be used with care, as it can lead 
to designs that are more difficult to maintain.</p><h3 
id="ReleaseNotes5.4-JavaScriptModules">JavaScript Modules</h3><p>Prior releases 
of Tapestry primarily organized client-side logic in terms of JavaScript 
libraries. These libraries can be declaratively imported into the page (either 
during a full-page render, or during an Ajax partial page update). In addition, 
libraries can be combined together into <em>stacks</em>, which (in a production 
application) are combined into a single virtual asset.</p><p>The library 
approach is <a  href="javascript-rewrite-in-54.html">fundamentally limited in a 
number of ways</a>, including namespace pollution and dealing with dependencies 
between libraries. Tapestry 5.4 introduces a parallel mechanism, based on <a  
class="external-link" href="http://requirejs.org"; rel="nofollow">RequireJS</a> 
and
  the <a  class="external-link" 
href="https://github.com/amdjs/amdjs-api/wiki/AMD"; rel="nofollow">Asynchronous 
Module Definition</a> as a way to speed up initial page load and organize 
client-side JavaScript in a more expressive and maintainable way.</p><h2>       
 Sub-task
+                <div id="ConfluenceContent"><p>This is the consolidated list 
of changes between Tapestry versions 5.3 and 5.4. To upgrade to 5.4, most users 
who are not using deprecated features will be able to just update the 
dependency version in their Maven POM file or Gradle build script (or <a  
href="download.html">download</a> the new JAR files) and the new version will 
just work, although the introduction of Bootstrap CSS will require some styling 
adjustments for most applications not already using Bootstrap. Please read 
carefully below before upgrading, and also review the <a  
href="how-to-upgrade.html">How to Upgrade</a> instructions.</p><h2 
id="ReleaseNotes5.4-IncompatibleAPIs">Incompatible APIs</h2><h3 
id="ReleaseNotes5.4-JavaScriptSupport">JavaScriptSupport</h3><p>Some existing 
methods of JavaScriptSupport were changed from returning void, to returning the 
JavaScriptSupport instance, to allow for chaining of calls. This interface is 
consumed by end-user code, but not gen
 erally implemented by end-user code.</p><h2 
id="ReleaseNotes5.4-BreakingFeatures">Breaking Features</h2><h3 
id="ReleaseNotes5.4-ClassFactoryRemoved">ClassFactory Removed</h3><p>Tapestry's 
use of the <a  class="external-link" 
href="http://www.csg.is.titech.ac.jp/~chiba/javassist/"; 
rel="nofollow">Javassist</a> bytecode library has been completely removed, 
along with many related services, such as <a  class="external-link" 
href="http://tapestry.apache.org/5.3/apidocs/org/apache/tapestry5/ioc/services/ClassFactory.html";>ClassFactory</a>,
 that were deprecated in 5.3. Use <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ioc/services/PlasticProxyFactory.html";>PlasticProxyFactory</a>
 instead. Most users will not be affected by this unless they relied on 
Tapestry's dependency on Javassist.</p><h3 
id="ReleaseNotes5.4-ClientBehaviorSupportFunctionalityRemoved">ClientBehaviorSupport
 Functionality Removed</h3><p>This service collected details about 
 zone usage, including the client-side behavior associated with 
<code>FormFragment</code>s. This interface is only kept for binary 
compatibility in Tapestry 5.4; the implementation no longer does anything but 
throw exceptions and will be removed in 5.5 or later.</p><h3 
id="ReleaseNotes5.4-FormInjectorRemoved">FormInjector Removed</h3><p>The 
FormInjector component was removed; it was intended for use only inside the 
AjaxFormLoop component (which was rewritten in 5.4 and no longer uses 
FormInjector). FormInjector was not widely used elsewhere, if it was used at 
all.</p><h3 
id="ReleaseNotes5.4-MarkupWriterFactoryAPIChanged">MarkupWriterFactory API 
Changed</h3><p>The <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/MarkupWriterFactory.html";>MarkupWriterFactory</a>
 interface has 3 new methods, added to support the HTML5 rules for element 
endings. If you have any classes that <em>implement</em> MarkupWriterFactory 
(which is rare), the
 y'll need to be modified to implement the new methods. As noted in the <a  
class="external-link" 
href="http://tapestry.apache.org/5.4/apidocs/org/apache/tapestry5/services/ClientBehaviorSupport.html";>Javadocs</a>,
 use JavaScriptSupport directly instead.</p><h3 
id="ReleaseNotes5.4-InjectedScriptsatBottom">Injected Scripts at 
Bottom</h3><p>In prior versions of Tapestry, JavaScript libraries injected into 
the page (via the @<a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Import.html";>Import</a>
 annotation, or via <a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/services/javascript/JavaScriptSupport.html";>JavaScriptSupport</a>),
 were injected into the &lt;head&gt; element of the HTML page, either at the 
end of the element, or before any existing &lt;script&gt; element.</p><p>With 
this release, the Tapestry integrates with <a  class="external-link" 
href="http://requirejs.org/"; rel="
 nofollow">RequireJS</a> to dynamically load libraries. This may affect a small 
number of JavaScript libraries, such as <a  class="external-link" 
href="http://www.google.com/analytics/"; rel="nofollow">Google Analytics</a> 
that need to be placed at the top of the page; in those cases, the library 
should be added to the template of your application's main layout component, 
instead of relying on @Import and JavaScriptSupport.</p><h3 
id="ReleaseNotes5.4-NoRedirectOnFormValidationErrors">No Redirect On Form 
Validation Errors</h3><p>In prior releases of Tapestry, when a client-side form 
was submitted and there were server-side validation errors, Tapestry would 
perform a redirect-after-post to re-render the page; this meant that the <a  
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/ValidationTracker.html";>ValidationTracker</a>
 object that stores validation errors would, itself, need to persist to the new 
render request, causing a server-side ses
 sion to be created. Starting in 5.4, the default behavior for server-side 
validation exceptions is to re-render the page content immediately, within the 
same request; this obviates the need to use a persistent field to store the 
tracker.</p><h2 id="ReleaseNotes5.4-NewFeatures">New Features</h2><h3 
id="ReleaseNotes5.4-Componentfieldvisibility">Component field 
visibility</h3><p>In prior versions of Tapestry, all instance fields of 
components had to be visibility private; starting with versions 5.3.2 and 5.4, 
this has been relaxed. Component fields may be protected, or package private 
(that is, no visibility modifier). Fields that are final, or annotated with @<a 
 class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Retain.html";>Retain</a>
 may even be public. In any case, this makes it easier for pages to work with 
other pages in the same package, and for subclasses to more easily access the 
fields (including parameter fields, or injec
 tions) provided by base classes. This feature should be used with care, as it 
can lead to designs that are more difficult to maintain.</p><h3 
id="ReleaseNotes5.4-JavaScriptModules">JavaScript Modules</h3><p>Prior releases 
of Tapestry primarily organized client-side logic in terms of JavaScript 
libraries. These libraries can be declaratively imported into the page (either 
during a full-page render, or during an Ajax partial page update). In addition, 
libraries can be combined together into <em>stacks</em>, which (in a production 
application) are combined into a single virtual asset.</p><p>The library 
approach is <a  href="javascript-rewrite-in-54.html">fundamentally limited in a 
number of ways</a>, including namespace pollution and dealing with dependencies 
between libraries. Tapestry 5.4 introduces a parallel mechanism, based on <a  
class="external-link" href="http://requirejs.org"; rel="nofollow">RequireJS</a> 
and the <a  class="external-link" href="https://github.com/amdjs/amdjs-ap
 i/wiki/AMD" rel="nofollow">Asynchronous Module Definition</a> as a way to 
speed up initial page load and organize client-side JavaScript in a more 
expressive and maintainable way.</p><h2>        Sub-task
 </h2>
 <ul><li>[<a  
href="https://issues.apache.org/jira/browse/TAP5-2445";>TAP5-2445</a>] -         
Reduce usage of PerthreadMap in AbstractConditional
 </li><li>[<a  
href="https://issues.apache.org/jira/browse/TAP5-2446";>TAP5-2446</a>] -         
Use ObjectCreator instead of PerThreadValue when appropriate


Reply via email to