Skip to content

Releases: vaadin/flow

Vaadin Flow 24.7.0.alpha2

18 Dec 11:02
fb02577
Compare
Choose a tag to compare
Pre-release

Changes since 24.7.0.alpha1

All changes

Breaking changes

  • Change supported Node from 18 to 20
    Commit · Pull request

    Node 20 is the active LTS version for Node. Node 18 will be end of life soon and new libraries like React 19 support Node 20+

Fixes

  • Re-build production bundle if index.html changes
    Commit · Pull request · Issue

    Stores index.html hash in stats.json and forces production bundle to be re-built if file contents have changed. Changes to index.html do not trigger a dev bundle re-generation since in dev mode the file is served directly from the frontend folder.

  • Disable workbox developer logs by default
    Commit · Pull request · Issue

  • Handle logout from a background thread
    Commit · Pull request

    Allows AuthenticationContext.logout feature to be used from a background thread, handling the missing request by forcing the client to make an additional request. Applies the same logic used to support logout when using PUSH with websocket transport. References #11026

  • Fix role checking when using websocket push
    Commit · Pull request

    When using PUSH with websocket transport, the atmosphere wrapped request can be a no-op implementation whose isUserInRole method alwasy returns false, causing, for example, wrong access checking during navigation. This change falls back to Spring Securty for role checking when PUSH transport is websocket. It also fixes some tests in order to propagate the Spring Security context when starting Thread that perform UI operations. References psi#123 Part of #11026

  • Catch exceptions from detach calls
    Commit · Pull request

  • Ensure requestEnd clears Vaadin thread locals
    Commit · Pull request

    Makes sure that Vaadin thread locals are cleared even if something fails durung requestEnd execution. It also wraps Vaadin interceptors execution in a try/catch block to ensure all of them are invoked and that potential failures does not affect the continuation of requestEnd method.

  • Browser parsing
    Commit · Pull request

    Added new opera userAgent string. Better logging for failures. Better matching for version string. Fixed android mistaken check. Part of #20610 Add isIPad Add testing userAgent strings from json file.

  • Fix redirect URL for PUSH with websocket transport
    Commit · Pull request · Issue

    When PUSH is enabled with websocket transport, the redirect URL to be used after a successfull login is not correctly computed because it is based on the PUSH servlet mapping. This change detects the situation and computes the correct URL.

  • Appended path on fast navigate
    Commit · Pull request · Issue

    When navigating in quick succession check that path starts with / as else react wll append to current url.

  • Complete client websocket future on open
    Commit · Pull request · Issue

    Completing the websocket future in onOpen event prevents the connection to hang indefintely when application run on low resources.

Vaadin Flow 24.6.0

17 Dec 10:47
daa6581
Compare
Choose a tag to compare

All Changes since Vaadin Flow 24.5

Breaking changes

  • Upgrade minimum supported Gradle version to 8.7
    Commit · Pull request

    Jackson 2.18 is incompatible with Gradle 8.4 because it contains classes compiled with Java 22. This change bumps Gradle minumum supported version to 8.7 that supports Java 22.

  • WebPush Subscription Wrapper and feature flag removal
    Commit · Pull request

New features

  • Add drag image for DragSource
    Commit · Pull request · Issue · Docs

    Adds DragSource#setDragImage(ComponentDragImage ) and DragSource#setDragImage(Component dragImage, int offsetX, int offsetY). API is used to set image component as a drag image for drag source component. Follows specification of HTML Drag and Drop API for DataTransfer#setDragImage() method.
    Examples:

    CardComponent card = new CardComponent();
    // use Image component as a drag image
    card.setDragImage(new Image("/cards/ace_of_spades.png", "Ace of Spades"));
  • Extend WebPushMessage with the custom settings
    Commit · Pull request · Issue · Docs

    Adds a Java API for setting the custom options as described in https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification#parameters.
    Note that this isn't an experimental feature anymore.

    WebPushAction webPushAction = new WebPushAction("dashboard", "Open Dashboard");
    WebPushOptions webPushOptions = new WebPushOptions(body, List.of(webPushAction), "This is my data", "https://example.com/my-icon.png");
    webPush.sendNotification(subscription, new WebPushMessage(title, webPushOptions));
  • Enable easier override for SpringServlet
    Commit · Pull request · Issue · Docs

    Can be done by providing a custom Spring configuration class, see linked docs for more details.

  • Add support for customizable projectFileExtensions
    Commit · Pull request · Issue

  • Opt-out web components from package.json
    Commit · Pull request · Docs

    Adds new property npm.excludeWebComponents (or npmExcludeWebComponents in Maven configurations). By default, it's false and everything works as before. true will exclude all Vaadin web component dependencies from package.json for development mode (Vite/dev bundle) and production bundle build. Excluded dependencies are all Vaadin core components (e.g. button, grid, login, etc.) and commercial components (e.g. charts, rich-text-editor, etc.), but not lumo/material themes.

  • Fire an event when all hotswap operations have completed
    Commit · Pull request

  • Generate PWA icons at build time
    Commit · Pull request · Issue

    Generates PWA icons during the production build, preventing the need to use AWT APIs at runtime and making first requests to the application faster. Also prevents potential issues caused by loading AWT native library in native images.

Changes since 24.6.0.rc1

Fixes

  • Disable workbox developer logs by default (#20718)
    Commit · Pull request · Issue

  • Handle logout from a background thread (#20688)
    Commit · Pull request

    Allows AuthenticationContext.logout feature to be used from a background thread, handling the missing request by forcing the client to make an additional request. Applies the same logic used to support logout when using PUSH with websocket transport. References #11026

  • Fix role checking when using websocket push (#20679)
    Commit · Pull request

    When using PUSH with websocket transport, the atmosphere wrapped request can be a no-op implementation whose isUserInRole method alwasy returns false, causing, for example, wrong access checking during navigation. This change falls back to Spring Securty for role checking when PUSH transport is websocket. It also fixes some tests in order to propagate the Spring Security context when starting Thread that perform UI operations. References psi#123 Part of #11026

  • Catch exceptions from detach calls (#20656)
    Commit · Pull request

  • Ensure requestEnd clears Vaadin thread locals (#20687)
    Commit · Pull request

    Makes sure that Vaadin thread locals are cleared even if something fails durung requestEnd execution. It also wraps Vaadin interceptors execution in a try/catch block to ensure all of them are invoked and that potential failures does not affect the continuation of requestEnd method.

  • Browser parsing (#20657)
    Commit · Pull request

    Added new opera userAgent string. Better logging for failures. Better matching for version string. Fixed android mistaken check. Part of #20610 Add isIPad Add testing userAgent strings from json file.

Contributions 🏅

Vaadin Flow 23.5.11

18 Dec 13:16
5b0a847
Compare
Choose a tag to compare

Changes since 23.5.10

All changes

Fixes

  • Ensure requestEnd clears Vaadin thread locals (#20687)
    Commit · Pull request

    Makes sure that Vaadin thread locals are cleared even if something fails durung requestEnd execution. It also wraps Vaadin interceptors execution in a try/catch block to ensure all of them are invoked and that potential failures does not affect the continuation of requestEnd method.

Vaadin Flow 24.6.0.rc1

11 Dec 13:04
60a9597
Compare
Choose a tag to compare
Pre-release

Changes since 24.6.0.beta8

All changes

Fixes

  • Fix redirect URL for PUSH with websocket transport (#20666)
    Commit · Pull request · Issue

  • Appended path on fast navigate (#20673)
    Commit · Pull request · Issue

    When navigating in quick succession check that path starts with / as else react wll append to current url.

  • Complete client websocket future on open (#20587)
    Commit · Pull request · Issue

    Completing the websocket future in onOpen event prevents the connection to hang indefintely when application run on low resources.

  • Wrap UI closing to catch exceptions (#20645)
    Commit · Pull request · Issue

    When session destroy is triggered, wraps each UI close/detach to catch exceptions, making sure session destroy listeners are called.

  • Prevent generated pwa icons to be added to manifest (#20639)
    Commit · Pull request

    Generated PWA icons are served at runtime by PwaHandler, that also takes care of adding a subset of them to the web manifest for caching. However, the Vite inject-manifest-to-sw plugin adds all generated icons to the manifest with /pwa-icons path prefix making them pre-cached by the browser and potentially breaking pre-defined security rules. This change prevents generated icons to be added to the manifest, preserving the previous behavior.

Vaadin Flow 24.7.0.alpha1

09 Dec 15:13
e238e00
Compare
Choose a tag to compare
Pre-release

Changes since 24.6.0.beta3

All changes

New features

  • Resend payload of reoccuring client request
    Commit · Pull request

    If the client request contains the previous id and exactly the same message content respond with the same payload as previously.

Fixes

  • Prevent generated pwa icons to be added to manifest
    Commit · Pull request

    Generated PWA icons are served at runtime by PwaHandler, that also takes care of adding a subset of them to the web manifest for caching. However, the Vite inject-manifest-to-sw plugin adds all generated icons to the manifest with /pwa-icons path prefix making them pre-cached by the browser and potentially breaking pre-defined security rules. This change prevents generated icons to be added to the manifest, preserving the previous behavior.

  • Wrap UI closing to catch exceptions
    Commit · Pull request · Issue

    When session destroy is triggered, wraps each UI close/detach to catch exceptions, making sure session destroy listeners are called.

  • Service destroy listener exceptions
    Commit · Pull request

    Related to #20577

  • Remove timeout for browser websocket connection for Vite
    Commit · Pull request

  • Enforce plugin-required dependencies and log incompatibilities
    Commit · Pull request · Issue

    The Flow Maven Plugin uses a class loader that combines project and plugin dependencies to ensure class scanning happens on runtime artifacts. However, plugin execution may fail if the project defines dependency versions incompatible with those used by the plugin. This change enforces the use of plugin-defined versions for certain dependencies not directly used by Flow at runtime. Additionally, it logs potential incompatibilities for other dependencies if the build fails.

  • Remove modal component on route refresh
    Commit · Pull request · Issue

    Modal components attached to the UI were not removed or replaced during self-navigation triggered by a route refresh. This change updates navigation handler to ensure modal components are removed and adds a new navigation trigger for route refresh to differentiate programmatic navigations (e.g., forward actions). It also modifies Hotswapper to require a full chain refresh when modal components are present.

  • Add vite-ping subprotocol to Vite websocket proxy
    Commit · Pull request · Issue

  • Include all component tracker locations
    Commit · Pull request

    Some filtering was already earlier moved to Copilot and handling everything in the same place is easier

  • Compute unique key for artifact
    Commit · Pull request

    Computes a unique key for maven artifacts when collecting dependencies for the Flow maven plugin isolated classloader.

  • Prevent hotswap failure if class is not found
    Commit · Pull request

    References #20389

  • Multiple fast navigate calls
    Commit · Pull request · Issue

    and fast navigate calls throws exception due to faulty blocker state change. Add test view for manual testing. Test script doesn't fail on double click.

Vaadin Flow 24.6.0.beta8

09 Dec 09:19
7fb42bb
Compare
Choose a tag to compare
Pre-release

Changes since 24.6.0.beta7

All changes

Fixes

Vaadin Flow 24.5.9

05 Dec 11:04
0b5c6ca
Compare
Choose a tag to compare

Changes since 24.5.8

All changes

Fixes

  • Remove timeout for browser websocket connection for Vite (#20611)
    Commit · Pull request

  • Enforce plugin-required dependencies and log incompatibilities (#20601)
    Commit · Pull request · Issue

    The Flow Maven Plugin uses a class loader that combines project and plugin dependencies to ensure class scanning happens on runtime artifacts. However, plugin execution may fail if the project defines dependency versions incompatible with those used by the plugin. This change enforces the use of plugin-defined versions for certain dependencies not directly used by Flow at runtime. Additionally, it logs potential incompatibilities for other dependencies if the build fails.

Vaadin Flow 24.6.0.beta7

04 Dec 07:43
ef0e8a6
Compare
Choose a tag to compare
Pre-release

Changes since 24.6.0.beta6

All changes

Fixes

  • Enforce plugin-required dependencies and log incompatibilities (#20601)
    Commit · Pull request · Issue

    The Flow Maven Plugin uses a class loader that combines project and plugin dependencies to ensure class scanning happens on runtime artifacts. However, plugin execution may fail if the project defines dependency versions incompatible with those used by the plugin. This change enforces the use of plugin-defined versions for certain dependencies not directly used by Flow at runtime. Additionally, it logs potential incompatibilities for other dependencies if the build fails.

Vaadin Flow 24.6.0.beta6

29 Nov 12:32
f40312f
Compare
Choose a tag to compare
Pre-release

Changes since 24.6.0.beta5

All changes

Fixes

  • Remove modal component on route refresh (#20540)
    Commit · Pull request · Issue

    Modal components attached to the UI were not removed or replaced during self-navigation triggered by a route refresh. This change updates navigation handler to ensure modal components are removed and adds a new navigation trigger for route refresh to differentiate programmatic navigations (e.g., forward actions). It also modifies Hotswapper to require a full chain refresh when modal components are present.

  • Add vite-ping subprotocol to Vite websocket proxy (#20578)
    Commit · Pull request · Issue

Vaadin Flow 24.5.8

02 Dec 07:47
4b7ea7d
Compare
Choose a tag to compare

Changes since 24.5.7

All changes

Fixes

  • Remove modal component on route refresh (#20540)
    Commit · Pull request · Issue

    Modal components attached to the UI were not removed or replaced during self-navigation triggered by a route refresh. This change updates navigation handler to ensure modal components are removed and adds a new navigation trigger for route refresh to differentiate programmatic navigations (e.g., forward actions). It also modifies Hotswapper to require a full chain refresh when modal components are present.

  • Include all component tracker locations (#20568)
    Commit · Pull request

    Some filtering was already earlier moved to Copilot and handling everything in the same place is easier

  • Compute unique key for artifact (#20551)
    Commit · Pull request

    Computes a unique key for maven artifacts when collecting dependencies for the Flow maven plugin isolated classloader.

  • Prevent hotswap failure if class is not found (#20549)
    Commit · Pull request

    References #20389