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 download the new JAR file) and the new version will just work. However, please read carefully below before upgrading, and also review the How to Upgrade instructions.
Contents
Breaking Changes
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 Deprecated API List for non-breaking changes.
- 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
private final DateFormat format = DateFormat.getDateInstance(DateFormat.MEDIUM, locale);
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 Release Notes: Tapestry 5.2.0 (below) for details. - Link.toAbsoluteURI() 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 Release Notes: Tapestry 5.2.2 (below) for details.
- The Label component no longer outputs an id:
Previously valid code in 5.1.0.5:
Combined with JavaScript that references the id:
New JavaScript code for 5.2:
- ContributeTranslatorSource compatibility is broken. Service 'TranslatorSource' is now configured using a MappedConfiguration, not a Configuration. See issue TAP5-1395
- Code that uses Form.getDefaultTracker().getHasErrors()) fails if it assumes that getDefaultTracker() is not null when validation is successful. See issue TAPS-1401.
- Virtual folders, used to define root packages for component libraries, may no longer contain slashes.
- The path prefix of a LibraryMapping may no longer contain the slash character.