github vaadin/flow 25.1.0-alpha8
Vaadin Flow 25.1.0-alpha8

latest release: 24.10.0-alpha2
pre-release6 hours ago

Changes since 25.1.0-alpha7

All changes

Breaking changes

  • Rename Signal value()/value(T) to get()/set(T)
    Commit · Pull request

    Rename the signal value getter from value() to get() and the setter from value(T) to set(T) for a more intuitive and conventional API. This affects Signal, WritableSignal and all implementations across the codebase including Javadoc, tests, and IT views.

  • Make two-way signal bindings explicit with a write callback parameter
    Commit · Pull request

    Change bindValue(WritableSignal) to bindValue(Signal, SerializableConsumer) so that two-way bindings require an explicit write-back callback. This forces developers to acknowledge when user input is received, providing an additional layer of safety. The first parameter is a read-only Signal for the signal-to-component direction. The second parameter is the callback for propagating value changes back to the signal. After invoking the callback, the signal is re-consulted via peek() and if the value differs, the component reverts to the signal's value. A null callback creates a read-only binding that throws on setValue while attached.

New features

Fixes

  • Restore backwards-compatible 2-parameter constructors for BlurEvent and FocusEvent
    Commit · Pull request

    The 3-parameter constructors with @eventdata broke backwards compatibility for code that directly instantiates these events. Re-add the original (Component, boolean) constructors alongside the @eventdata variants, matching the pattern used by ClickEvent, KeyDownEvent, etc.

  • Exclude JUnit 5 engines from Failsafe classpath in IT tests
    Commit · Pull request

    The centralized JUnit 5 dependencies in the root POM caused Failsafe to auto-switch from the JUnit 4 provider to the JUnit Platform provider. This broke TestBench's ParallelRunner parameterization, losing the [any_Chrome_] test name suffixes and (production) variant reporting. Force junit 4 for ITs for now

  • Update tailwind path
    Commit · Pull request · Issue

    Make the tailwind templat import target not ./ but from Frontend so we do not get faulty imports in generated.

  • Wait for async browser navigation in HistoryIT to prevent flakiness
    Commit · Pull request

    history.back() and history.forward() are asynchronous browser operations. The test was asserting URLs and status messages immediately after clicking back/forward buttons, causing intermittent failures. Replace direct assertEquals assertions with waitUntil polling via waitForUrl() and waitForStatusMessages() helpers, matching the pattern used by BackNavIT.

  • Reset loading indicator state after each request
    Commit · Pull request · Issue

    Changes the loading indicator to reset after each individual request completes, rather than staying visible across rapid successive requests. Previously, the timer would continue across multiple requests, causing the indicator to show even when each individual request was fast. Now each request gets independent timing - if a request completes before the threshold (default 450ms), the indicator never appears. This fixes the issue with cursor tracking and other scenarios involving many rapid server calls.

  • Prevent NPE in ShortcutRegistration when lifecycleOwner is null
    Commit · Pull request · Issue

    Add null guard in fireShortcutEvent() to handle the case where a KeyDown event fires after the shortcut's lifecycle owner has been detached and remove() has set lifecycleOwner to null.

  • Detect theme component CSS changes even without theme.json
    Commit · Pull request · Issue

    themeShadowDOMStylesheetsChanged only scanned for components/ folders in themes discovered via theme.json. Themes without a theme.json (but with a components/ directory) were silently skipped, so the dev bundle was never rebuilt to include their component styles. Always include the main theme name when scanning for components/ folders, regardless of whether theme.json exists.

  • Add junit-vintage-engine to flow-server to restore JUnit 4 test discovery
    Commit · Pull request

    The signals module merge (be2f0b2) added JUnit 5 Jupiter dependencies to flow-server, causing Surefire to use the JUnit Platform provider which only discovers JUnit 5 tests. Without junit-vintage-engine, the ~271 JUnit 4 test classes were silently skipped.

  • Set required Java and Maven versions in flow-maven-plugin
    Commit · Pull request

    Prevents potential issues with Maven versions >= 3.9.12 if a Java version newer than the supported one is used to package the Maven plugin.

Don't miss a new flow release

NewReleases is sending notifications on new releases.