github vaadin/flow 25.0.0-alpha11
Vaadin Flow 25.0.0-alpha11

pre-release2 days ago

Changes since 25.0.0-alpha10

All changes

Breaking changes

  • ElementData to Jackson
    Commit · Pull request · Issue

  • Remove deprecated APIs
    Commit · Pull request

  • Upgrade to React 19
    Commit · Pull request

    Removes the React 19 feature flag and always uses React 19.

  • Remove @polymer/polymer dependency by default
    Commit · Pull request · Issue

    Removes @polymer/polymer dependency from default package.json if polymer-template module is not found from the project. Module is not included by default.

  • Centralize hierarchy management server-side
    Commit · Pull request · Issues 21876, 21877

    The PR refactors HierarchicalDataCommunicator so that hierarchy management (expanded items, hierarchical cache) is centralized on the server side instead of being shared between client and server. This makes the client a simple consumer of flattened data lists, which significantly reduces the client-side complexity and opens the door for in troducing flat data providers to support fetching flattened data directly from the data source. Key changes HierarchyMapper and HierarchicalCommunicationController have been replaced with the new concept, Cache. This new class provides a system for storing data in a hierarchical structure while enabling access in a flattened format for client-side consumption. setRequestedRange and setParentRequestedRange have been replaced with a single setViewportRange which spans all hierarchy levels. Caveats setViewportRange does not currently remove items from Cache and KeyMapper when they move out of the viewport. However, the previous version also only removed items from KeyMapper while keeping them in HierarchyMapper, so item instances actually continued to remain in memory. I feel this could be optimized separately if needed. setViewportRange currently always sends the full viewport to the client even when some items are already present on the client-side. I plan to address this separately, see #21989 refresh(T item) currently also sends the full viewport on every item refresh. I plan to address this separately, see #21989 Test coverage The PR aims at providing test coverage for all core functionality and public APIs. Individual tests for internal APIs such as Cache will be added separately. The refactoring successfully passes all TreeGrid ITs, see #7676 Depends on refactor: remove deprecated HierarchicalDataCommunicator APIs #21965

New features

  • Enable client-side logging in production via localStorage flag (#17935)
    Commit · Pull request

    Allow dynamic control of browser console logging in production mode by checking localStorage for "vaadin.browserLog" flag. Developers can now enable client-side logging in production using: localStorage.setItem('vaadin.browserLog', 'true') This helps with debugging production issues without requiring JAR modifications or rebuilds. � Generated with Claude Code

  • Clarify SignalEnvironment details
    Commit · Pull request

  • Make signal environment init optional
    Commit · Pull request · Issue

    Also removes the duplicate ___staticMocks variants in VaadinServiceSignalsInitializationTest ---------

  • Introduce flattened hierarchy format
    Commit · Pull request

    The PR introduces a new getHierarchyFormat() method to HierarchicalDataProvider. It can be configured to return either HierarchyFormat#NESTED (default) or HierarchyFormat#FLATTENED (new). The selected format defines in what way the data provider returns hierarchical data and how HierarchicalDataCommunicator should fetch and render it.

Fixes

  • Log "Connection remotely closed" IOException at debug level
    Commit · Pull request · Issue

    Changes the log level from ERROR to DEBUG for the specific IOException that occurs when a client connection dies during push communication. This reduces noise in logs, especially during integration tests.

  • Filename encoding of download
    Commit · Pull request · Issue

    Applies utf-8 encoding by default in Content-Disposition header for DownloadEvent.

Don't miss a new flow release

NewReleases is sending notifications on new releases.