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

pre-release11 hours ago

Changes since 25.0.0-beta3

All changes

Breaking changes

  • Remove elemental-json from flow-server
    Commit · Pull request

    Remove all elemental-json usage from flow-server module (excluding flow-client which still uses it for GWT). This removes internal APIs and updates all code to use Jackson 3 exclusively. Changes: - Delete JsonUtils.java and JsonSerializer.java (internal APIs) - Remove elemental-json bridge methods from JacksonUtils.java - Remove gwt-elemental dependency from flow-server/pom.xml - Update EventData documentation to remove elemental.json.JsonValue - Update VaadinServletContextInitializer package exclusions - Update RouterLinkView test to use Jackson ObjectNode - Update DefaultApplicationConfigurationFactoryTest to use JacksonUtils BREAKING CHANGE: Internal APIs JsonUtils and JsonSerializer have been removed. Applications should use Jackson 3 types (JsonNode, ObjectNode, ArrayNode) and JacksonUtils methods instead. The EventData annotation no longer supports elemental.json.JsonValue - use JsonNode instead.

  • NPM assets available under assets
    Commit · Pull request · Issue

    Copy all npm assets to sub folder assets in VAADIN/static and accept redirect for /assets/{filepath} to prepend VAADIN/static to the requested file. This reverts commit 9ae2190.

  • Change Dependency.toJson() to return Jackson ObjectNode
    Commit · Pull request

    Server-side code now uses Jackson's automatic bean serialization via valueToTree(). Client-side GWT tests use helper methods to manually construct elemental JSON when needed for testing.

New features

  • Add SignalPropertySupport helper
    Commit · Pull request · Issue

    Provides a SignalPropertySupport helper class that encapsulates the state management needed for making getXyz, setXyz, and bindXyz behave in the same way as Signal for Element properties.

  • Add Tailwind CSS support behind the feature flag
    Commit · Pull request · Issue

  • Add UI.ensureCurrent() to provide better error message if UI is not available
    Commit · Pull request

    Add a new UI.ensureCurrent() method that returns a non-null UI instance or throws IllegalStateException with a helpful error message guiding developers to use UI.access() for background threads. This provides a cleaner alternative to the UI.getCurrent() + null check pattern and makes code more explicit about requiring an active UI context.

Fixes

  • CssImport in webcomponentexporter should not show in document
    Commit · Pull request · Issue

    Any CssImport added to a WebComponentExporter should only be applied to the WebComponent and not apply to elements outside the component.

  • Wait for dev server in DevModeNoClassCacheIT to prevent flaky test
    Commit · Pull request

    The test was timing out waiting for the "last-span" element because it didn't wait for the Vite dev server to fully initialize before checking for DOM elements. Adding waitForDevServer() ensures the dev server, Spring Boot app, and view rendering complete before assertions.

  • Extract filename and content type from headers in StreamReceiverHandler for XHR uploads
    Commit · Pull request

    StreamReceiverHandler.doHandleXhrFilePost() was using hardcoded "unknown" values for both filename and content type, even though the headers were available in the request. This fix: - Extracts filename from X-Filename header (with proper decoding) - Extracts content type from Content-Type header - Creates reusable helper methods in TransferUtil to avoid duplication with the existing XHR upload handling code (from commit 1c777e1)

  • Use content type from header and name from X-Filename/Content-Disposition for XHR uploads
    Commit · Pull request

    Uses the filename from a X-Filename header (set by vaadin-upload). The filename is encoded using JavaScript's encodeURIComponent and decoded on the server using UrlUtil.decodeURIComponent (RFC 3986).

  • Flush outputStream after write
    Commit · Pull request

    transfer() method should call flush() on the OutputStream before returning to ensure all buffered data is actually written

  • Invalid generated javascript
    Commit · Pull request · Issue

  • Use ResourceProvider to search for frontend resources
    Commit · Pull request · Issue

    Using resource provider to search for frontend resources prevents potential issues with environment that use multiple classloaders, like Quarkus. Every environment can provide its own resource provider implementation that uses the best approach for loading resources from classpath.

  • Do not use undefined this.log
    Commit · Pull request

Don't miss a new flow release

NewReleases is sending notifications on new releases.