Hello, Tapestry community! Tapestry 5.8.3, after a long year, has finally been released, and it has a long list of release notes! :) It should very soon be accessible at https://tapestry.apache.org/release-notes-582.html, but here's a text version of its highlights (which don't include all enhancements and bugs):
TAP5-2742 - Smarter page cache invalidation CLOSED Smarter page cache validation (also known as multiple classloader mode). Besides collecting dependencies between page, component, mixin and base classes, this enhancement, when turned on, allows Tapestry to invalidate just the cached page instances that need to be rebuilt when a class, template, messages properties or asset is changed. It's documented in the Multiple Classloader Mode/Smarter Page Class Invalidation section of the class reloading page. TAP5-1733 - Throw bespoke exceptions so they may be more easily identified by Error Handlers CLOSED Tapestry no longer logs an OperationException when a client submits a form using a method other than POST. Previously, the log entry would explain that "Forms require that the request method be POST and that the t:formdata query parameter have values." Likewise, in production mode, instead of displaying the error page, Tapestry silently redirects back to the page containing the form. TAP5-2708 - CssCompressor update/optimizations RESOLVED TAP5-1733 - Throw bespoke exceptions so they may be more easily identified by Error Handlers CLOSED TAP5-2600 - CSS minification breaks transition statement RESOLVED The YUI CssCompressor got updated to the latest available code, which fixes multiple issues (TAP5-2753, TAP5-2708, TAP5-2600). As Yahoo doesn't develop the Compressor further, a better testing environment was added to tapestry-webresources to fix any upcoming CSS compression issues faster. TAP5-2745 - Tree component with empty list of root nodes causes NullPointerException RESOLVED The Tree component now gracefully handles an empty list of root nodes instead of throwing an NPE. TAP5-2743 - PerThreadValue<T> should provide more convenience methods RESOLVED Convenience methods added to PerThreadValue for easier use: T computeIfAbsent(Supplier<? extends T> fn) T computeIfPresent(Function<? super T, ? extends T> fn) T compute(Function<? super T, ? extends T> fn) void ifSet(Consumer<? super T> action) TAP5-2730 - Misspelt ‘ComnpressedModules’ object id RESOLVED CookieBuilder now accepts java.time.Duration for its maxAge-related operation. Also, a TypeCoercion for TimeInterval->Duration was added, so Duration is usable for SymbolConstants.COOKIE_MAX_AGE. TAP5-2735 - LocalizationSetter should add "void setLocaleFromRequest(Request)" RESOLVED New method void setNonPersistentLocaleFromRequest(Request request) added to LocalizationSetter to expose all of the locale handling through the service. TAP5-2739 - Remove org.apache.tapestry5.ioc.internal.util.JDKUtils and org.apache.tapestry5.ioc.internal.util.DummyLock RESOLVED Remnants from Java 5->6 transitions removed: org.apache.tapestry5.ioc.internal.util.JDKUtils and org.apache.tapestry5.ioc.internal.util.DummyLock. TAP5-2730 - Misspelt ‘ComnpressedModules’ object id RESOLVED Misspelt internally used id in org.apache.tapestry5.modules fixed (ComnpressedModules -> CompressedModules) Happy coding! -- Thiago --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org