tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r976290 - in /websites/production/tapestry/content: cache/main.pageCache release-notes-54.html
Date Thu, 24 Dec 2015 12:20:04 GMT
Author: buildbot
Date: Thu Dec 24 12:20:03 2015
New Revision: 976290

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 Thu Dec 24 12:20:03 2015
@@ -92,7 +92,7 @@
                             </a>
 
     </div>
-</div>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 application.. Please read carefully below
before upgrading, and also review the <a  href="how-to-upgrade.html">How to Upgrade</a>
instructions.<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 generally implemented by end-user code.</p><h2 id="ReleaseNotes5.4-BreakingF
 eatures">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.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), 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 integrates with <a  class="external-link" href="http://requirejs.org/"
rel="nof
 ollow">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 sessio
 n 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 injectio
 ns) 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/w
 iki/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>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.<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 generally implemented by end-user code.</p><h2 i
 d="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.org/current/apidocs/org/apache/tapestry5/servic
 es/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 integrates with <a  class="external-link" href="htt
 p://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 p
 arameter 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
 </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



Mime
View raw message