Updated Branches: refs/heads/master 7619f7eee -> 9bbaa1e0f
Update notes Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/9bbaa1e0 Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/9bbaa1e0 Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/9bbaa1e0 Branch: refs/heads/master Commit: 9bbaa1e0fb23ce8f8f768ce6a247a6c4d0e8ac6d Parents: b47d9ec Author: Howard M. Lewis Ship <[email protected]> Authored: Mon Dec 17 10:07:37 2012 -0800 Committer: Howard M. Lewis Ship <[email protected]> Committed: Mon Dec 17 10:07:37 2012 -0800 ---------------------------------------------------------------------- 54_RELEASE_NOTES.txt | 49 ++++++++++++++++++-------------------------- 1 files changed, 20 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/9bbaa1e0/54_RELEASE_NOTES.txt ---------------------------------------------------------------------- diff --git a/54_RELEASE_NOTES.txt b/54_RELEASE_NOTES.txt index 4898277..efb17be 100644 --- a/54_RELEASE_NOTES.txt +++ b/54_RELEASE_NOTES.txt @@ -2,22 +2,18 @@ Scratch pad for changes destined for the 5.4 release notes page. # Non-Breaking Changes: -A new DeprecationWarning service exists to write runtime-warnings about deprecated component parameters. +A new DeprecationWarning service exists to write runtime warnings about deprecated component parameters. There have been sweeping changes to the client-side support in JavaScript, including the long-awaited abstraction layer. -Tapestry is moving to the use of asynchronously-loaded modules, using the RequireJS module. Much of Tapestry's existing -JavaScript libraries are being recoded as JavaScript modules; in 5.5, the remaining JavaScript libraries will be removed. - -All of the clients-side objects available inside the T5 or Tapestry objects (in Tapestry 5.3) are considered deprecated -in Tapestry 5.4. Where possible, the implementations of such objects have been reworked to use the new support provided -by the modules. In many cases, logic that was previously supplied using client-side objects and the T5.initializers -object is now provided using the event handlers. +Tapestry is moving to the use of asynchronously-loaded modules, using the RequireJS library. Virtually all ofTapestry's +existing JavaScript libraries are being recoded as JavaScript modules; in 5.5, the remaining JavaScript libraries will +be removed. The abstraction layer is a set of wrappers that encapsulate most of the differences between Prototype and jQuery (or -other, more modern JavaScript foundation libraries). By coding the the abstraction layer, it will be possible to swap +other, more modern JavaScript foundation libraries). By coding to the abstraction layer, it will be possible to swap out Prototype support for jQuery. Prototype will no longer be bundled with Tapestry starting in Tapestry 5.5. -Prior releases of Tapestry would require several moving parts to initialize client behavior: +Prior releases of Tapestry would require several separate constructs to initialize client behavior: * A unique id, generated on the server, on a client-side element * A JavaScript library that extended T5.initializers with an initialization function @@ -30,22 +26,12 @@ functions. Tapestry 5.4 represents a shift to a more modern, lighter approach. Behavior of components is encoded into `data-` attributes on the element, and logic shifts to a module that provides top-level event handlers on the -body object. This is an overall win: it reduces the number of event handlers, solves some timing issues related +document object. This is an overall win: it reduces the number of event handlers, solves some timing issues related to running initialization functions, deals with DOM updates better, and is overall more performant. Tapestry is moving away from "magic class names" to a more uniform approach based on the use of HTML 5 compliant "data-" attributes. -* data-prevent-submission: Used on a HTML form to indicate that normal submission should be suppressed; typically because - client-side code will be submitting the form's contents via an Ajax request. - -* data-skip-validation: Used on an HTML form; the immediately subsequent form submission will skip all validation. - This is often associated with buttons that cause a form to be canceled or otherwise submitted without client-side - validation. - -* data-validation: Used on form control elements; a non-null value indicates that the field should have the - `events.field.validate` event triggered on it, when the form is validating, prior to submission. - # Breaking Changes: ## RenderSupport Removed @@ -63,7 +49,7 @@ resurface in the future as a CSS expression, but is currently not supported. The definition of the symbol 'tapestry.asset-path-prefix' has changed; it no longer includes the leading and trailing slashes. The default in 5.3 was "/assets/", in 5.4 it is simply "assets". -## Libraries de-emphasized for modules +## Libraries de-emphasized JavaScript Libraries (including stacks) are being replaced with modules. Note that libraries are now loaded with RequireJS, which may mean that global values exported by the libraries are not visible; you should explicitly attach @@ -71,14 +57,16 @@ properties to the global JavaScript window object, rather than assume that the c ## T5 and Tapestry namespaces all but eliminated -Only a limited number of properties exported as the `T5` and `Tapestry` namespaces (on the client) still exist; enough +Only a limited number of properties exported in the `T5` and `Tapestry` namespaces (on the client) still exist; enough to continue to support the `T5.initializers` approach to page initialization that was used in Tapestry 5.3 and earlier. ## New method on ResourceTransformer The interface org.apache.tapestry5.services.assets.ResourceTransformer has had a new method added: getTransformedContentType(). This makes it possible to determine which file extensions map to which content types -(for example, a ResourceTransformer for CoffeeScript files, with extension ".coffee", would map to "text/javascript"). +(for example, a ResourceTransformer for CoffeeScript files, with extension "coffee", would map to "text/javascript"). + +## Zone component change Older versions of Tapestry included client-side support for an element with the CSS class "t-zone-update" as the actual element to be updated when new content is provided for the zone in a partial page render response. This feature has been @@ -91,7 +79,9 @@ decide to animate them using whatever library is desired. The event names are de ## Floating Console -On the client side, the "floating console" is now only used in cases where a native console is not available. +On the client side, the "floating console" is now only used in cases where a native console is not available. The console +should not be used to present information to ordinary users (Bootstrap provides Alerts for that purpose), but is only +intended for use in development. ## Form.clientValidation parameter @@ -99,13 +89,13 @@ Prior releases of Tapestry mapped "true" and "false" values for Form.clientValid was introduced in Tapestry 5.2, and has now been removed. Support for validating fields on blur (i.e., when tabbing out of a field) has been removed. Validation now occurs when -the form is submitted, or not at all. The ClientValidation.BLUR enum value has been deprecated and is now treated as -SUBMIT. +the form is submitted, or not at all. The ClientValidation.BLUR enum value has been deprecated and is now treated +identically to SUBMIT. ## Wait-for-page logic removed Tapestry 5.3 contained code that attempted to prevent Ajax requests until after the page had loaded; this was based -on the function Tapestry.waitForPage(). Server components no longer make use of this function, and the function +on the function `Tapestry.waitForPage()`. Server components no longer make use of this function, and the function itself now does nothing. A replacement approach to preventing the user from interacting with links and forms before the page initialization has completed may be implemented in the future. @@ -149,7 +139,8 @@ You may want to consider adding `@Import(stack="core")` to your applications' ma ## Palette Component -The selected property is now type `Collection`, not specifically type `List`. It is no longer allowed to be null. +The selected property is now type `Collection`, not specifically type `List`. It is no longer allowed to be null. You may +need to provide a "prepare" event handler to initialize the property before it is read by the Palette component. ## Autocomplete Mixin
