Skip to content

Releases: vaadin/flow

Vaadin Flow 24.8.0.rc1

09 Jun 12:46
c6c3fd1
Compare
Choose a tag to compare
Pre-release

Changes since 24.8.0.beta4

All changes

New features

  • Add ElementRequestHandler to Element (#21656)
    Commit · Pull request

    Add possibility to give a ElementRequestHandler as attribute to Element so you can directly use .setAttribute("xyz", downloadHandler) and .setAttribute("xyz", uploadHandler)

  • Add link type control to Anchor (#21649)
    Commit · Pull request

    Add LinkMode to Anchor for selecting if the anchor should be download or inline. handle null mode

Fixes

  • Download sets content-disposition (#21671)
    Commit · Pull request

    Download handlers should set content-disposition: inline when inline has been invoked.

Vaadin Flow 24.8.0.beta4

06 Jun 12:16
bbf5197
Compare
Choose a tag to compare
Pre-release

Changes since 24.8.0.beta3

All changes

Fixes

Vaadin Flow 23.6.1

09 Jun 08:49
1e1f37f
Compare
Choose a tag to compare

No changes since 23.6.0

Vaadin Flow 25.0.0.alpha1

05 Jun 12:02
69fd8f5
Compare
Choose a tag to compare
Pre-release

Changes since 24.8.0.alpha13

All changes

Breaking changes

New features

  • Add method for download
    Commit · Pull request

    Add methods for checking if anchor is a download and setting the download status.

  • Fire internal events about start/complete
    Commit · Pull request

    Adds internal start/complete events that is used by Upload component to trigger it's own lifecycle logic. Part-of #21533

  • Add subscription mechanism to receive all processed events
    Commit · Pull request · Issue

  • Auto-reload service worker in dev mode
    Commit · Pull request

  • Initialize signals environment
    Commit · Pull request

  • Create transfer util
    Commit · Pull request · Issue

    Create a TransferUtil for handling data transfer for upload and download. For upload handle xhr vs multipart part vs multipart iterator. This makes the UploadHanlder interface easier to handle.

  • Make current user available without an AuthenticationContext instance
    Commit · Pull request

    Makes it possible to write an application method like public static Optional<User> getCurrentUser() { return AuthenticationContext.getCurrentAuthenticatedUser(AppUserInfo.class).map(AppUserInfo::user); } instead of re-implementing everything from AuthenticationContext

  • Add a shortcut to get DeploymentConfiguration from UIInternals
    Commit · Pull request

    Summary of Change: Added a helper method in UIInternals to get deployment configurations from the service from the session. Motivation and Context: There are many areas of code that need to access deployment configuration from UIInternals but accessing is quite clunky and long.

  • Add overloads with TransferContext
    Commit · Pull request

Fixes

  • Deduce content type from file name
    Commit · Pull request

  • Multipart upload on jetty
    Commit · Pull request

    jetty when parts is not handled. Will automatically fallback to iterator.

  • Clear download attribute if inline handler set
    Commit · Pull request

    Clear the download attrubte from anchor if setHref is called with a new inline handler.

  • Refine request caching rules
    Commit · Pull request · Issue

    Updates VaadinDefaultRequestCache to skip caching requests based on default and custom rules, including matching media types, headers, and request paths such as /.well-known/.... Refactors request handling utility logic for reusability. Closes #21394

  • Prevent route collision check before dev server is started
    Commit · Pull request · Issue

  • Update beanstore ui if changed
    Commit · Pull request · Issue

    Update the beanstore currentUI instance if it is changed due to a reload or bookmark navigation where the window name stays the same.

  • UI available from event in upoad handling.
    Commit · Pull request

  • Make Vite messages from browser to server work
    Commit · Pull request · Issue

  • Improve TaskExecutor selection strategy in SpringVaadinServletService
    Commit · Pull request · Issue

    When multiple TaskExecutor beans are available at application startup, Vaadin prevents application startup by throwing an exception. This change applies a smarter selection strategy instead of immediately failing with, by prioritizing regular TaskExecutor beans over TaskScheduler beans when both are present (fixes issues when @EnableScheduling is used) and application defined executors over Spring defaults.

  • Do not generate list for empty string
    Commit · Pull request · Issue

    Do not generate a 1 item list for the default empty string in dev mode init for file extensions.

  • Set download attribute for Anchor DownloadHandlers
    Commit · Pull request

    Part of #21487 add tests

  • Remove name/fileName from inputStreamDownload
    Commit · Pull request

    Remove the possibility to give fileName/name to inputStreamDownloadHandler as the atual downloaded name is decided on transfer and will in many cases not match or be confusing to match in 2 places.

  • Handle downloads where the server does not provide content-length
    Commit · Pull request

Vaadin Flow 24.8.0.beta3

05 Jun 12:02
a9b590f
Compare
Choose a tag to compare
Pre-release

Changes since 24.8.0.beta2

All changes

Breaking changes

  • Give more data to FileFactory (#21622)
    Commit · Pull request

    Have FileFactory get more information on upload by giving it UploadMetadata instead of only filename.

  • Remove isMultipart method (#21612)
    Commit · Pull request

  • Declare IOException in download/upload callbacks (#21610)
    Commit · Pull request

    This allows to write the code in the callbacks without requiring catch(IOException e) each time.

  • Use long for content length in DownloadResponse (#21590)
    Commit · Pull request

New features

  • Add method for download (#21624)
    Commit · Pull request

    Add methods for checking if anchor is a download and setting the download status.

  • Fire internal events about start/complete (#21554)
    Commit · Pull request

    Adds internal start/complete events that is used by Upload component to trigger it's own lifecycle logic. Part-of #21533

Fixes

  • Multipart upload on jetty (#21619)
    Commit · Pull request

    jetty when parts is not handled. Will automatically fallback to iterator.

  • Clear download attribute if inline handler set (#21623)
    Commit · Pull request

    Clear the download attrubte from anchor if setHref is called with a new inline handler.

  • Refine request caching rules (#21558)
    Commit · Pull request · Issue

    Updates VaadinDefaultRequestCache to skip caching requests based on default and custom rules, including matching media types, headers, and request paths such as /.well-known/.... Refactors request handling utility logic for reusability. Closes #21394

  • Prevent route collision check before dev server is started (#21615)
    Commit · Pull request · Issue

  • Update beanstore ui if changed (#21570)
    Commit · Pull request · Issue

    Update the beanstore currentUI instance if it is changed due to a reload or bookmark navigation where the window name stays the same.

  • UI available from event in upoad handling. (#21538)
    Commit · Pull request

Vaadin Flow 23.6.0

09 Jun 08:39
efddcad
Compare
Choose a tag to compare

Changes since 23.5

All changes

Breaking changes

  • Upgrade default Node.js to 22 and supported to 20

New features

  • Backport of PWA icons generation at build time (#21284)
    Backport of #16994 (limited to PWA icon handling) to 23.6.

  • Backport of PWA icon image lazy generation (#21263)
    Backport #20516 to Flow 23.6.

  • Enable preserving partial view chain
    Backport of #21189 to 23.6.

  • Fix role checking when using websocket push
    Backport of #20679 to 23.6

  • feat: Upgrade webpack to version 5 (#21360)
    Updates Webpack to version 5.
    Replaces extract-loader with extract-loader-5 for compatibility with Webpack 5.
    Replaces file-loader with Webpack 5 assets feature, as recommended in the migration guide.
    Bumps several npm dependencies.
    Fixes handle of frontend folder in generated tsconfig.json file.
    Update flow Javascript plugins to adapt to Webpack dependencies changes.

  • Bump frontend dependencies (patch+minor versions) (#21469)

Vaadin Flow 2.12.0

09 Jun 08:49
7efbd91
Compare
Choose a tag to compare

Changes since 2.11.0

All changes

Breaking changes

  • Upgrade default Node.js to 22 and supported to 20 (2.12) (#21322)

New features

  • Backport of PWA icons generation at build time (#21279)
    Backport of #16994 (limited to PWA icon handling) to 2.12.

  • Backport of PWA icon image lazy generation (#21262)
    Backport #20516 to Flow 2.12.

  • Upgrade webpack to version 5 (2.12) (#21375)
    Updated webpack to version 5.
    Replaces file-loader with Webpack 5 assets feature, as recommended in the migration guide.
    Bumps several npm dependencies.
    Update Webpack configuration to correctly handle /VAADIN public path both in dev and prod modes.
    Update flow Javascript plugins to adapt to Webpack dependencies changes.

Vaadin Flow 24.8.0.beta2

30 May 14:13
2babe91
Compare
Choose a tag to compare
Pre-release

Changes since 24.8.0.beta1

All changes

Fixes

  • Make Vite messages from browser to server work (#21565)
    Commit · Pull request · Issue

  • Improve TaskExecutor selection strategy in SpringVaadinServletService (#21542)
    Commit · Pull request · Issue

    When multiple TaskExecutor beans are available at application startup, Vaadin prevents application startup by throwing an exception. This change applies a smarter selection strategy instead of immediately failing with, by prioritizing regular TaskExecutor beans over TaskScheduler beans when both are present (fixes issues when @EnableScheduling is used) and application defined executors over Spring defaults.

Vaadin Flow 24.8.0.beta1

30 May 10:06
c81915f
Compare
Choose a tag to compare
Pre-release

Changes since 24.8.0.alpha15

All changes

Breaking changes

  • Upgrade org.jsoup:jsoup from 1.19.1 to 1.20.1
    Commit · Pull request
    The newer version rebuilds the HTML pretty-printer. The specific HTML produced by the pretty-printer may be different from previous versions and may be a breaking change, e.g. if Element.getOuterHTML is used.

  • Add setContentLengthLong to VaadinResponse
    Commit · Pull request

    Adds the setContentLengthLong() method to VaadinResponse to be in sync with the HttpServletResponse.

New features

  • Upload and Download handlers
    Issue · Docs for downloads (in draft) · Docs for uploads (in draft)

    Simplifies how Flow applications handle uploads and downloads by aligning more closely with regular HTTP request handling paradigms and by improving helper APIs. StreamResource and Receiver are deprecated in favour of this new API.
    Examples of usage:

    // Download a File and show a notification when completed (requires @Push)
    var anchor = new Anchor(DownloadHandler.forFile(new File("tos.pdf")
                                 .whenComplete(success -> Notification.show("Success: " + success)),
                                               "Download terms of service");
    
    // Upload a File into temporary directory on the server
    var upload = new Upload(UploadHandler.inMemory((meta, data) -> {
                          Notifiation.show("Got " + data.length + " bytes for " + meta.getFileName());
    }).onProgress((transferredBytes, totalBytes) -> 
                          Notification.show("Received "  + transferredBytes),
                             32768 // progress interval in bytes
    ));

    Related changes:

  • Reactive UI state management with Signals
    Issue · Docs in draft

    Introduces a Vaadin Flow/Java library for Signals that helps to create a UI in Vaadin Flow applications in reactive way, e.g.:

    public class SignalDemo extends VerticalLayout {
        // creates a signal instance that can be shared across the application
        private final NumberSignal counter =
                SignalFactory.IN_MEMORY_SHARED.number("counter");
    
        public SignalDemo() {
            Button button = new Button(getLabel(),
                    // updates the signal value on each button click
                    click -> counter.incrementBy(1.0));
            add(button);
    
            // Effect that updates the button text whenever the counter changes
            Signal.effect(() -> button.setText(getLabel()));
        }
    
        private String getLabel() {
            return String.format("Clicked %d times", counter.valueAsInt());
        }
    }

    For more insights about Signals concept please watch Full Stack Signals for Real-time reactive UIs. This is a preview feature in Vaadin 24.8, only covers the core framework integration - component API enhancements to be shipped in the future releases.

    Related changes:

  • Support scanning configuration in maven plugin
    Commit · Pull request · Issue · Docs

    Allows to fine tune scanning for frontend resources by defining inclusion and exclusion rules in the Flow maven plugin <configuration>:

    <frontendScanner>
        <enabled>true</enabled>
        <includeOutputDirectory>true</includeOutputDirectory>
        <!-- Only scan for company artifacts -->
        <includes>
            <include>
                <groupId>com.mycompany.*</groupId>
                <artifactId>*</artifactId>
            </include>
        </includes>
        <!--
           But ignore backed artifacts, since they do not
            contain frontend related classes
        -->
        <excludes>
           <exclude>
                <groupId>com.mycompany.backend</groupId>
                <artifactId>*</artifactId>
            </exclude>
        </excludes>
    </frontendScanner>
  • Enable preserving partial view chain
    Commit · Pull request

    Make it possible to reuse only parts of the preserve on refresh chain instead of the full chain.

  • Use Jackson in public API and implementation instead of Elemental
    Issue

    Uses Jackson library and deprecates Elemental:

    • ReactAdapter and element to support jackson
      Commit · Pull request
      Have ReactAdapter and element use Jackson. AbstractSinglePropertyField to support Jackson type.

    • WebComponent more Jackson
      Commit · Pull request
      Change more parts of webComponent to use Jackson instead of elemental.

    • Use single scanner for plugin class scan
      Commit · Pull request · Issue

    • Router parts to jackson
      Commit · Pull request
      Use jackson for router and navigation.

    • Internals to jackson
      Commit · Pull request
      Change internal functions to use jackson.

    • Jackson used in dev-server
      Commit · Pull request
      Use jackson instead of elemental in the dev-server.

    • Add ignore version check to plugin params
      Commit · Pull request · Issue

    • Use jackson for setting up configuration
      Commit · Pull request
      Use jackson for setting up configuration settings.

    • Change internal json handling to jackson
      Commit · Pull request
      Change internal json manipulation from elemental to jackson.

    • Plugins to use jackson
      [Commit](...

Read more

Vaadin Flow 24.8.0.alpha15

26 May 13:01
40abc9c
Compare
Choose a tag to compare
Pre-release

No changes since 24.8.0.alpha14