Changes since 25.0.0
Breaking changes
-
Update old browser check to verify compatibility with Vaadin 25+
Commit · Pull request · IssueUpdate old browser check to ensure that Vaadin 25 compatible application can be detected. Vaadin's web-components require popover to be available.
New features
-
Add Component::bindVisible
Commit · Pull request · IssueAdds public void bindVisible(Signal) method to Component and Element. ElementAttributeMap, AbstractPropertyMap and NodeMap are refactored to share same bindSignal and hasSignal code.
-
Add HasEnabled::bindEnabled
Commit · Pull request · IssueAdds void bindEnabled(Signal) method to HasEnabled and Element. Introduces new Node Feature SignalBindingFeature that stores signal and registration in a Map. Only bindEnabled initializes the feature to keep memory consumption optimal when binding is not used.
-
Move to com.interaso.webpush
Commit · Pull requestChange from webpush-jwt-jose4j to com.interaso.webpush
-
Improve SpringInstantiator
Commit · Pull request · IssueAvoid manually counting beans of a given type. Instead, rely on Spring’s own resolution logic, which may eliminate the ambiguity. If ambiguity persists, fall back to the previous behavior. This fixes an issue where one might have multiple beans of an abstract or interface type in the context but has already taken care of ambiguity by hinting spring on which one to use (e.g. by using @primary, @fallback or other spring provided mechanisms). With the old implementation this would lead to an exception as it would try to instantiate a bean of an abstract type or interface, when spring would have been able to find a unique bean. This especially fixes cases where one has multiple beans of I18NProvider or MenuAccessControl which themselves are a perfect example where the old implementation was lacking.
-
Add protected API to regenerate data in viewport
Commit · Pull requestThe PR adds a protected
refreshViewportmethod to both DataCommunicator and HierarchicalDataCommunicator. This method regenerates and resends data for items that are currently visible in the viewport. -
Implement getItems(offset, limit) in DataView
Commit · Pull request · Issue- Added getItems with offset/limit to DataView interface - Implemented efficient query-based retrieval in AbstractDataView - Optimized backend fetching in AbstractLazyDataView - Added verification tests in AbstractLazyDataViewTest and AbstractListDataViewTest
Fixes
-
ReflectionClassFinder should not exclued Vaadin packages
Commit · Pull requestRejecting hilla packages prevents TS endpoints to be generated.
-
Do not leak internally used dependencies to actual apps, not even as optionals
Commit · Pull request · IssueUses shade plugin to pull in some transitive dependencies to internal "flow-build-util" module. Although they are not ending up to the actual production artifact, they lower the DX as in IDE it may appear one has them evailable.
-
Make StyleSheetHotswapper registered listener serializable
Commit · Pull request · IssueStyleSheetHotswapper registers a UIInitListener and a AfterNavigationListener when it gets initialized. However, lambdas are capturing the hotswapper instance that is not serializable and furthermore keeps a reference to VaadinService. This change refactors the listeners so that they will not capture the StyleSheetHotswapper instance.
-
Zip file extractor
Commit · Pull requestdefault archive extractor.
-
Stablize jrejsmap in flow-client
Commit · Pull request · Issue -
Propagate node settings to frontendTools
Commit · Pull request · IssueHave the correct settings for FrontendToolsSettings in gradle toolsSettings. Dev mode should also read the node settings when starting the dev server if available.
-
Check binding not binder status
Commit · Pull request · IssueCheck the correct statuses for non null.
-
Css minification
Commit · Pull request · IssueDo not remove space around plus sign.
-
Optimize Reactive.flush() for large listener queues
Commit · Pull request · Issue -
Register reflection and resource hints for error handlers in native builds
Commit · Pull request · IssueExtract and register exception types from HasErrorParameter generic parameter for reflection. Register resource hints for ClassPathScanner to discover error handler classes at runtime in GraalVM native images. 🤖 Generated with Claude Code
-
Add missing reflection hints for type used with ReflectTools
Commit · Pull request · IssueWebComponentExporter, I18NProvider, and MenuAccessControl might be instantiated via ReflectTools.createInstance and were missing reflection hints in VaadinBeanFactoryInitializationAotProcessor, which could cause issues at runtime in native executables.
-
Do not serve reserved folders
Commit · Pull requestDo not run indexhtmlrequesthandler for requests to vaadin reserved folders.
-
Install hilla-generator dependencies if Hilla is available
Commit · Pull request · IssueAdds hilla-generator-* dependencies to package.json when Hilla is available via EndpointRequestUtil.isHillaAvailable(), not only when Hilla is used (FrontendUtils.isHillaUsed(...)).
-
Register client callable methods for reflection
Commit · Pull request · IssueRegisters reflection hints for client callable methods to ensure they can be detected and invoked when running native executables.
-
Register layout as beans for native build hints
Commit · Pull request · IssueLayout classes referenced by Vaadin routes are instantiated programmatically and they might contain annotation managed by Spring like
@PostConstruct. This change discovers and registers layout classes as beans during AOT processing so that related information are available for native build. -
Allow access to SecurityContext for invalidated http session
Commit · Pull request -
Add flow-server test-jar for vaadin-dev-server tests
Commit · Pull requestConfigure flow-server to create a test-jar artifact and add it as a dependency to vaadin-dev-server. This allows vaadin-dev-server tests to use test utility classes from flow-server without creating a circular dependency. Changes: - Added test-jar execution to flow-server maven-jar-plugin - Added flow-server test-jar dependency to vaadin-dev-server (test scope) - Updated imports in vaadin-dev-server tests to use original packages from flow-server test classes This fixes compilation errors in vaadin-dev-server tests that use MockUI, MockDeploymentConfiguration, MockVaadinSession, and other test utilities after hotswapper classes were moved to vaadin-dev-server.