Skip to content

Releases: vaadin/framework

Vaadin Framework 8.27.1

16 Sep 18:30
972ed98
Compare
Choose a tag to compare

Vaadin Framework 8.27.1 is an Extended Maintenance hotfix release with the following changes:

  • Fixed an issue with the vaadin-push packaging which prevented the JavaScript payload from loading.
  • Internal test fixes

Vaadin 8.27.0 has the following changes:

  • Added vaadin-push-jakarta package for a Jakarta-based Push implementation, based on Atmosphere 3. This package is meant to be used together with the vaadin-server-mpr-jakarta and vaadin-compatibility-server-mpr-jakarta packages in environments like Spring 6+ and Jetty 11+.

    This feature is to be considered experimental for the moment; please report any and all issues you encounter with it to Vaadin Support.

  • Altered packaging of vaadin-client, vaadin-compatibility-client and vaadin-client-compiler packages to have the vaadin-server and vaadin-compatiblity-server dependencies with provided scope.

    This is a potentially breaking change if your build expects to have a transitive vaadin-server dependency.

    This change was made in order to make it easier to use the Jakarta versions of the server and push packages, namely vaadin-server-mpr-jakarta, vaadin-compatibility-server-mpr-jakarta and vaadin-push-jakarta, as they provide the same API and class structure but rely on the Jakarta namespace instead of Javax.

  • Improved change detection of Binder. This is a backport from Flow pull request #19488 which fixes Flow issue #19260.

    In short, previously a reverted change to a bound field would still be considered a change. With this change, the meaningfulness of the value changes is considered.

  • Fixed an issue in Binder where calling binder.removeBinding() could result in a null pointer exception down the line, as the removed binding was not also removed from the changedBindings list.

    This is a backport of Flow pull request #6827 which fixes Flow issue #5384.

  • Changed the internal LayoutManager.layoutLater method to use requestAnimationFrame instead of a timer with a magic 100 msec timeout value to improve rendering performance and stability. We have not detected any breakage with this change, but it should nonetheless be considered a potentially breaking change, as if your client-side code for whatever reason relies on the presence of that 100 msec timer between layout cycles, you may experience rendering instability.

    If this is the case, contact Vaadin Support.

  • Updated the license checker, which fixes an issue where licence checking could fail due to an SSL error.

  • Vastly improved the ColorPicker widget, by improving the behavior of its history feature and made it render correctly on Valo-based themes.

  • Improved ComboBox so that it no longer unnecessarily truncates the contents of the popup list.

  • Improved ComboBox popup management. ComboBox should no longer cause constant reflows for updating the popup list position when no repositioning is necessary.

  • Fixed an oversight in the eager UI closing feature of Vaadin Server, where the browser's Beacon API would be attempted to be used to signal to the server that the session can be closed and cleaned up. The original implementation assumed browsers detected as Chrome-based to support the Beacon API, but this was found to not be a correct assumption in testing, so Beacon API availability is now detected dynamically at runtime to avoid a late-stage JavaScript execution fault.

    Also made eager UI closing function on Firefox, which advertises Beacon API availability but does not actually send the message to the server. Firefox was special-cased to use the beforeUnload event instead.

Vaadin Framework 8.27.0

13 Sep 12:20
aad11f8
Compare
Choose a tag to compare

Vaadin Framework 8.27.0 is an Extended Maintenance feature release with the following changes:

  • Added vaadin-push-jakarta package for a Jakarta-based Push implementation, based on Atmosphere 3. This package is meant to be used together with the vaadin-server-mpr-jakarta and vaadin-compatibility-server-mpr-jakarta packages in environments like Spring 6+ and Jetty 11+.

    This feature is to be considered experimental for the moment; please report any and all issues you encounter with it to Vaadin Support.

  • Altered packaging of vaadin-client, vaadin-compatibility-client and vaadin-client-compiler packages to have the vaadin-server and vaadin-compatiblity-server dependencies with provided scope.

    This is a potentially breaking change if your build expects to have a transitive vaadin-server dependency.

    This change was made in order to make it easier to use the Jakarta versions of the server and push packages, namely vaadin-server-mpr-jakarta, vaadin-compatibility-server-mpr-jakarta and vaadin-push-jakarta, as they provide the same API and class structure but rely on the Jakarta namespace instead of Javax.

  • Improved change detection of Binder. This is a backport from Flow pull request #19488 which fixes Flow issue #19260.

    In short, previously a reverted change to a bound field would still be considered a change. With this change, the meaningfulness of the value changes is considered.

  • Fixed an issue in Binder where calling binder.removeBinding() could result in a null pointer exception down the line, as the removed binding was not also removed from the changedBindings list.

    This is a backport of Flow pull request #6827 which fixes Flow issue #5384.

  • Changed the internal LayoutManager.layoutLater method to use requestAnimationFrame instead of a timer with a magic 100 msec timeout value to improve rendering performance and stability. We have not detected any breakage with this change, but it should nonetheless be considered a potentially breaking change, as if your client-side code for whatever reason relies on the presence of that 100 msec timer between layout cycles, you may experience rendering instability.

    If this is the case, contact Vaadin Support.

  • Updated the license checker, which fixes an issue where licence checking could fail due to an SSL error.

  • Vastly improved the ColorPicker widget, by improving the behavior of its history feature and made it render correctly on Valo-based themes.

  • Improved ComboBox so that it no longer unnecessarily truncates the contents of the popup list.

  • Improved ComboBox popup management. ComboBox should no longer cause constant reflows for updating the popup list position when no repositioning is necessary.

  • Fixed an oversight in the eager UI closing feature of Vaadin Server, where the browser's Beacon API would be attempted to be used to signal to the server that the session can be closed and cleaned up. The original implementation assumed browsers detected as Chrome-based to support the Beacon API, but this was found to not be a correct assumption in testing, so Beacon API availability is now detected dynamically at runtime to avoid a late-stage JavaScript execution fault.

    Also made eager UI closing function on Firefox, which advertises Beacon API availability but does not actually send the message to the server. Firefox was special-cased to use the beforeUnload event instead.

Vaadin Framework 7.7.44

14 Aug 10:22
19b658a
Compare
Choose a tag to compare

The Vaadin Framework 7.7.44 is an extended-support release with the following changes:

  • Internal changes needed for future development
  • ComboBox popup position updates smoother when the page is scrolled

Vaadin Framework 8.26.0

15 Jul 13:15
ed0401d
Compare
Choose a tag to compare

Vaadin Framework 8.26.0 is an Extended Maintenance feature release with the following changes:

  • Backported Binder fixes from Flow (pull requests #18760, #18770, #18891, #18833). This also fixes an issue where data entry was being prohibited by required fields with no value assigned - with multiple empty required fields with input validation enabled on the same form, clicking on one of the required fields would result in loss of UI interactivity. Validation is now only run for changed fields, not an entire field group.
  • Improved GridLayout layouting. Due the timing of internal measurements, GridLayout could finish its layouting logic prematurely and then fail to account for the size of its contents once the child components finished rendering, e.g. in situations where dynamically loaded styles are applied late.
  • Fixed a ComboBox issue where ComboBox would open the wrong page in the dropdown option list, or prevent navigation in some cases. This fix was previously attempted in 8.18.1 but had to be reverted in 8.25.1 due to it preventing scrolling of the list as an unforeseen side effect. These side effects are now properly detected in continuous integration tests and should not recur.
  • Updated client-side compilation to use GWT 2.11.0 for better Java 11 compatibility.

Vaadin Framework 8.25.2

14 May 11:23
7ce2e18
Compare
Choose a tag to compare

Vaadin Framework 8.25.2 is an Extended Maintenance patch release with the following changes:

  • Defined Vaadin License Checker version as a variable in the root POM in order to fix OSGI packaging. The packaging change in 8.25.1 exposed this issue.
  • Mitigated the performance overhead caused by the Grid changes in 8.25.0, namely the re-layouting of a Grid on scroll is now only performed when a ComponentRenderer is present.

Vaadin Framework 7.7.43

29 Apr 14:02
518da78
Compare
Choose a tag to compare

The Vaadin Framework 7.7.43 is an extended-support release with the following changes:

  • Made ComboBox rendering faster by trying to avoid constant popup size recalculations
  • Backported Upload fixed from Vaadin 8, namely preventing upload if no file has been selected, and making sure the ChangeListener still works after the first upload.
  • Added things necessary for JavaDoc generation.
  • Updated the license checker, fixed tests, updated the copyright dates

Vaadin Framework 8.25.1

24 Apr 12:22
ae7aa76
Compare
Choose a tag to compare

Vaadin Framework 8.25.1 is an Extended Maintenance patch release with the following changes:

  • Reverted a fix for a ComboBox issue where, if a filter was applied and the user opens the dropdown choice menu, the currently selected choice was not initially being scrolled into view. This fix had the side effect of making it impossible to scroll the dropdown menu in certain cases. The fix for the original issue will be re-implemented in a side-effect free manner in a future release.
  • Fixed a packaging issue, where the Vaadin license checker and Vaadin Open were incorrectly being included as part of the vaadin-server artifact. This caused a cascade of classpath conflict warnings on startup. As far as we're aware, this problem appeared to be completely cosmetic but was causing concern for some users.
  • Added a missing style rule for FormLayout's disabled caption opacity when using the light Valo theme.
  • Updated the license checker version.

Vaadin Framework 8.25.0

16 Apr 03:58
60fa02c
Compare
Choose a tag to compare

Vaadin Framework 8.25.0 is an Extended Maintenance feature release with the following changes:

  • Added feature in Grid that allows setting the order of the hidable columns as presented in the Grid sidebar menu. The list can now be sorted either as DEFAULT, ASCENDING or DESCENDING. Default order is the same as the presentation order in the Grid. Ascending and descending ordering use the set title of each hidable column, sorted alphabetically.
    • The new API can be found in Grid - grid.setSidebarColumnOrder(GridConstants.SidebarColumnOrder order) and the corresponding getter grid.getSidebarColumnOrder().
  • Fixed edge-case issue #12611 where a combination of a TabSheet inside of a FormLayout inside of a TabSheet would be rendered with 0px width.
  • Added a workaround for Grid issue #12608 where using a layout component containing multiple subcomponents inside a Grid cell with a ComponentRenderer would cause rendering to break.
    • This workaround schedules re-layouting of the Grid after each scroll event. As a result, minor slowdowns in complex Grids can occur in some cases.
    • If you are experiencing performance issues with your Grids after upgrading to Vaadin 8.25.0, please open a support ticket at support.vaadin.com.
  • Improved the documentation of the TestBench TextFieldElement class.

Vaadin Framework 8.24.0

27 Feb 08:52
5bda06f
Compare
Choose a tag to compare

Vaadin Framework 8.24.0 is an Extended Maintenance feature release with the following changes:

  • Removed support for Adobe Flash in the form of the Flash widget and Flash type support in Embed. Adobe Flash has not been supported at all in modern browsers since 2021, and has had several known security issues long before that, to the point that security auditing tools will now actively flag the dormant Flash support code in Vaadin Framework as "harmful".
  • The Flash widget and the parts of the Embedded widget specifically providing Flash support are no longer present in Vaadin Framework, meaning that any software currently relying on the Flash widget will fail to compile.
    • The existing Flash widget and Embedded support is planned to be provided in the form of an add-on for those that need it, but at the time of the release of Vaadin 8.24.0 this add-on is not yet available.
    • If your application still relies on Flash support, please contact support@vaadin.com or alternatively open a ticket at support.vaadin.com.
  • Removed a reference to ActiveXObject used in the bootstrap script, which was a workaround needed for Internet Explorer versions up to version 9. Support for Internet Explorer 9 finally ended on January 9, 2024 for Azure customers.
    • At this point, the only Internet Explorer version receiving any kind of support from Microsoft is Internet Explorer 11. Customers should be aware, though, that support for IE11 is only offered on a "best effort" basis, in that we will actively attempt to not break features that worked on IE11 in the past, but no new code or fixes are being built with IE11 or even tested against it.
      It should be noted that all support for Internet Explorer 11 as well as compatibility code for IE11 may be removed from Vaadin Framework after extended support for IE11 ends.
  • Fixed a Drag & Drop issue that prevented dragging of certain widgets on some browsers and operating systems, but not on others. Widget dragging behavior should now be stable on all platforms.
  • Fixed scroll bar behavior on Firefox in several widgets.
  • Made sure DataProvider I/O streams are closed eagerly to avoid resource leaks. Framework cannot reliably detect which streams are affected, so all potentially susceptible streams are now handled using a try-with-resources pattern.
  • Several improvements have been made to Binder through Flow backports:
    • Validation has been improved as follows
      • Once Binder.handleFieldValueChange runs for a binding when readBean was used, the whole binder will be silently validated also. BinderValidationStatusHandler is called like before (only contains status from changed binding), but StatusChangeEvent is now fired considering all bindings and if possible bean validators as well.
      • Once Binder.handleFieldValueChange runs for a binding when setBean was used, doWriteIfValid will validate all bindings, not only the changed ones. This prevents writing an invalid bean in cases where one or more of the initial values are in invalid state (but not marked as such since setBean resets validation status), but they have not been changed from their initial value(s).
      • Calling setAsRequiredEnabled with a changed value no longer triggers validation, since that validation is now handled elsewhere when needed as stated above.
      • It is now possible to check for changes for a specific binding via the Binder.hasChanges method. This is a backported feature from Flow.
      • See Flow issue #17395 and Flow pull request #17861.
    • It is now possible to only write the changed properties to a Bean through an overloaded Binder.writeBean method that now accepts an additional Collection parameter. This is a backported feature from Flow.
  • Several internal tests were fixed for improved build stability.

Vaadin Framework 8.23.0

02 Jan 21:36
1f42a3c
Compare
Choose a tag to compare
  • Implemented eager UI cleanup through the Beacon API. Previously UIs would be cleaned up after several consequtive missed heartbeats. Now, closing the browser or tab or navigating away from the page sends a message to the server to notify it of such, allowing the UI to be destroyed immediately.
    This should result in lower server resource usage without any modifications to the software. However, this feature does come with some caveats:
    • This feature is not available for Internet Explorer clients. Our testing showed that Internet Explorer will report compatibility with the API, but fail to function as expected. As such, the feature is disabled for IE.
    • Vaadin 8 included a LegacyApplication class for Vaadin 6 compatibility that was a holdover from Vaadin 7 and should have been removed with the release of Vaadin 8. This feature may cause systems extending the LegacyApplication class to close and not reopen when the first client closes their window.
      If this is a problem for your application, please contact Vaadin Support.
    • Should you experience ANY abnormal behavior as it pertains to UI instance availability with this version of Vaadin but not with 8.22.0, please let us know by creating a support ticket.
  • Improved stability of internal tests and build.
  • Fixed JavaDoc generation and deployment to vaadin.com/api.

This release is available through the usual Maven repositories.