Releases: vaadin/flow
Vaadin Flow 24.8.0.rc1
Changes since 24.8.0.beta4
New features
-
Add ElementRequestHandler to Element (#21656)
Commit · Pull requestAdd 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 requestAdd LinkMode to Anchor for selecting if the anchor should be download or inline. handle null mode
Fixes
-
Download sets content-disposition (#21671)
Commit · Pull requestDownload handlers should set content-disposition: inline when inline has been invoked.
Vaadin Flow 24.8.0.beta4
Changes since 24.8.0.beta3
Fixes
- Allow observing other nodes from an observer (#21653)
Commit · Pull request · Issue - Deduce content type from file name (#21611)
Commit · Pull request
Vaadin Flow 23.6.1
No changes since 23.6.0
Vaadin Flow 25.0.0.alpha1
Changes since 24.8.0.alpha13
Breaking changes
-
Give more data to FileFactory
Commit · Pull requestHave FileFactory get more information on upload by giving it UploadMetadata instead of only filename.
-
Remove isMultipart method
Commit · Pull request -
Declare IOException in download/upload callbacks
Commit · Pull request -
Use long for content length in DownloadResponse
Commit · Pull request
New features
-
Add method for
download
Commit · Pull requestAdd methods for checking if anchor is a download and setting the download status.
-
Fire internal events about start/complete
Commit · Pull requestAdds 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 · IssueCreate 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 requestMakes 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 requestSummary 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 requestjetty when parts is not handled. Will automatically fallback to iterator.
-
Clear download attribute if inline handler set
Commit · Pull requestClear the download attrubte from anchor if setHref is called with a new inline handler.
-
Refine request caching rules
Commit · Pull request · IssueUpdates 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 · IssueUpdate 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 · IssueWhen 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 · IssueDo 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 requestPart of #21487 add tests
-
Remove name/fileName from inputStreamDownload
Commit · Pull requestRemove 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
Changes since 24.8.0.beta2
Breaking changes
-
Give more data to FileFactory (#21622)
Commit · Pull requestHave 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 requestThis 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 requestAdd methods for checking if anchor is a download and setting the download status.
-
Fire internal events about start/complete (#21554)
Commit · Pull requestAdds 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 requestjetty when parts is not handled. Will automatically fallback to iterator.
-
Clear download attribute if inline handler set (#21623)
Commit · Pull requestClear the download attrubte from anchor if setHref is called with a new inline handler.
-
Refine request caching rules (#21558)
Commit · Pull request · IssueUpdates 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 · IssueUpdate 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
Changes since 23.5
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
Changes since 2.11.0
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
Changes since 24.8.0.beta1
Fixes
-
Make Vite messages from browser to server work (#21565)
Commit · Pull request · Issue -
Improve TaskExecutor selection strategy in SpringVaadinServletService (#21542)
Commit · Pull request · IssueWhen 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
Changes since 24.8.0.alpha15
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. ifElement.getOuterHTML
is used. -
Add setContentLengthLong to VaadinResponse
Commit · Pull requestAdds 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
andReceiver
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:
-
Add ElementRequestHandler
Commit · Pull request · Issue -
Add DownloadHandler
Commit · Pull request -
Add DownloadHandler to html components
Commit · Pull request -
Add UploadHandler
Commit · Pull request -
Add factory method for UploadHandler
Commit · Pull request · Issue -
Add TransferProgressListener API
Commit · Pull request -
Create TransferUtil
Commit · Pull request · Issue -
Add overloads with TransferContext
Commit · Pull request
-
-
Reactive UI state management with Signals
Issue · Docs in draftIntroduces 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:
-
Add high-level signal APIs
Commit · Pull request -
Initialise signals environment (#21490)
Commit · Pull request -
Add trees and transactions to signals module
Commit · Pull request -
Add subscription mechanism to receive all processed events (#21402)
Commit · Pull request · Issue -
Add signal commands
Commit · Pull Request
-
-
Support scanning configuration in maven plugin
Commit · Pull request · Issue · DocsAllows 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 requestMake 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
IssueUses 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](...
-
Vaadin Flow 24.8.0.alpha15
No changes since 24.8.0.alpha14