Releases: vaadin/flow
Vaadin Flow 24.8.1
Changes since 24.8.0
Fixes
-
Do not store build info in bundle (#21786)
Commit · Pull requestDo not store the flow-build-info inside the production bundle zip file.
-
Avoid NPE when tracking usage for removed nodes (#21739)
Commit · Pull requestThe change value cannot be extracted if there's no data node in the tree. Check for this both when creating the usage instance and when later evaluating whether it has changes. Note that removing a node is not seen as changing the node itself but only as a change to the node's parent.
-
Include default methods from interfaces in BeanPropertySet (#21770)
Commit · Pull request · Issue -
Update Query getPageSize to check for offset (#21725)
Commit · Pull request · IssueMake getPageSize check that it matches the offset. Update javadocs for Query to explain that getPage updates the pageSize to match offset.
-
Use handlers registered using ResourceHandlerRegistry (#21686) (CP: 24.8)
Commit · Pull requestFor instance Swagger uses ResourceHandlerRegistry to register a handler for /swagger-ui/index.html and this is now called without excluding any url from Vaadin
Vaadin Flow 24.7.8
Changes since 24.7.7
Fixes
-
Update Query getPageSize to check for offset (#21725)
Commit · Pull request · IssueMake getPageSize check that it matches the offset. Update javadocs for Query to explain that getPage updates the pageSize to match offset.
Vaadin Flow 25.0.0.alpha2
Changes since 25.0.0.alpha1
Breaking changes
-
Bump Spring Boot to 4.0.0-SNAPSHOT
Commit · Pull requestReferences #21620 org.hibernate.validator.constraints.NotEmpty annotation has been removed from Hibernate Validator.
New features
-
Add a short method to SortDirection enum
Commit · Pull request · IssueThe SortDirection enum only provides name(), getOpposite() methods. This change introduces a new method called getShortName() which returns shortened version of SortDirection. This short names can be useful in the SQL queries etc.
-
Add Flow component for code Html element #20832
Commit · Pull request -
Added new style methods
Commit · Pull requestAdd methods to better cover commonly used css properties.
-
Add ComponentEffect helper
Commit · Pull request · Issue -
Add ElementRequestHandler to Element
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
Commit · Pull requestAdd LinkMode to Anchor for selecting if the anchor should be download or inline. handle null mode
Fixes
-
Update Query getPageSize to check for offset
Commit · Pull request · IssueMake getPageSize check that it matches the offset. Update javadocs for Query to explain that getPage updates the pageSize to match offset.
-
Use handlers registered using ResourceHandlerRegistry
Commit · Pull requestFor instance Swagger uses ResourceHandlerRegistry to register a handler for /swagger-ui/index.html and this is now called without excluding any url from Vaadin
-
Drop transitive dependency ph-css
Commit · Pull request · IssueReplace functionality and remove the ph-css dependency.
-
Remove reflections library as a transitive dependency
Commit · Pull requestCloses #21680
-
Download sets content-disposition
Commit · Pull requestDownload handlers should set content-disposition: inline when inline has been invoked.
-
Allow observing other nodes from an observer
Commit · Pull request · Issue
Vaadin Flow 24.6.13
Changes since 24.6.12
Fixes
-
Update Query getPageSize to check for offset (#21725)
Commit · Pull request · IssueMake getPageSize check that it matches the offset. Update javadocs for Query to explain that getPage updates the pageSize to match offset.
-
Do not generate list for empty string (#21522)
Commit · Pull request · IssueDo not generate a 1 item list for the default empty string in dev mode init for file extensions.
Vaadin Flow 24.8.0
Changes since 24.7.0
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 · Docs for uploadsSimplifies 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 -
Add ComponentEffect helper
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.7.7
Changes since 24.7.6
Fixes
-
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.
-
Do not generate list for empty string (#21522)
Commit · Pull request · IssueDo not generate a 1 item list for the default empty string in dev mode init for file extensions.
Vaadin Flow 24.8.0.rc2
Changes since 24.8.0.rc1
New features
- Add ComponentEffect helper (#21674)
Commit · Pull request · Issue
Vaadin Flow 23.6.2
Changes since 23.6.1
Fixes
-
Resume client to server communication after web socket reconnection (#20283)
Commit · Pull request · IssueWhen a websocket PUSH connection is closed and re-established because of a network failure, the RequestResponseTracker.hasActiveRequest is not reset, prenvint the Flow client to send additional messages to the server. This change will reset the flag on reconnection. It also will track unsent PUSH message over websocket, to retry the delivery once the connection is re-established, preventing client resynchronization. In addition, it sets a default value of 12 for the Atmospehere maxWebsocketErrorRetries setting, to ensure that the Flow client will attempt to reconnect with web socket transport several times, instead of immediately downgrade to long-polling after first failed connection.
Vaadin Flow 2.12.1
Changes since 2.12.0
Fixes
-
Resume client to server communication after web socket reconnection (#20283)
Commit · Pull request · IssueWhen a websocket PUSH connection is closed and re-established because of a network failure, the RequestResponseTracker.hasActiveRequest is not reset, prenvint the Flow client to send additional messages to the server. This change will reset the flag on reconnection. It also will track unsent PUSH message over websocket, to retry the delivery once the connection is re-established, preventing client resynchronization. In addition, it sets a default value of 12 for the Atmospehere maxWebsocketErrorRetries setting, to ensure that the Flow client will attempt to reconnect with web socket transport several times, instead of immediately downgrade to long-polling after first failed connection.
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.