Vaadin Flow 9.0.0.beta3
Changes in Flow from 9.0.0.beta2
-
Breaking Changes:
-
⧉ Remove StaticFileHandler.isStaticResourceRequest. PR:12263
This simplifies static file handling so the same logic is not duplicate in two places. It also makes it possible to always query the dev server for files instead of knowing upfront what the dev server can serve. The method is removed instead of retained as there are two ways it could have been used: 1. Called to check if a given request is a static resource request 2. Overridden in a custom StaticFileHandler To keep the method we would need to do the following for the cases: 1. Make isStaticResourceRequest return serveStaticResource() != null 2. Make serveStaticResource() call isStaticResourceRequest() as the first thing We cannot do both so it is safer to remove the method to force code to be updated
-
-
New Features:
-
⧉ Support vite in v14 bootstrap. PR:12259
Support vite build in the v14 bootstrap to have exported webcomponents working. Closes #12057
-
⧉ Compress Vite output by default in production. PR:12308. Ticket:12055
As Brotli is disabled by default, you need to enable it to use this feature. #4740 will enable Brotli by default once server issues are sorted out
-
⧉ Mention vaadin.whitelisted-packages as a possible cause of missing template file. PR:12310
-
⧉ Lit templates in Vite dev and prod mode. PR:12204
Dev mode: load template from file system (looking into
frontend
,@node_modules/@vaadin/flow-frontend
,@node_modules
(for paths not starting with./
)).
Prod mode: copy templates totarget/classes/META-INF/VAADIN/config/templates
as part ofbuild-frontend
task. I.e., template sources are no longer gotten fromstats.json
. -
⧉ Add vite watchdog. PR:12230. Ticket:12060
Add watchdog to stop vite when java handler exits or crashes.
-
-
Fixes:
-
⧉ Log dev server output using standard logger. PR:12321. Ticket:12281
Rename DevServerOutputFinder to the more descriptive DevServerOutputTracker
-
⧉ Use Vite's mergeConfig to merge values instead of overwriting. PR:12302
-
⧉ Ensure that side effects of readBean do not set hasChanges true. PR:12181
JavaDoc of hasChanges says: "Check whether any of the bound fields' have uncommitted changes since last explicit call to readBean(Object), removeBean(), writeBean(Object)} or writeBeanIfValid(Object)." If readBean has converters, they will be run and field values updated accordingly. Furthermore if fields have value change listeners that will produce further changes in values, this should be considered according to above as part of readBean procedure and thus hasChanges still should return false. Cherry pick from: vaadin/framework#12455
-
⧉ Clean Vite production output folder on build. PR:12304
Without this you get (!) outDir /.../project/target/classes/META-INF/VAADIN/webapp is not inside project root and will not be emptied. Use --emptyOutDir to override.
-
⧉ Ensure Flow client container is pre-attached on navigation. PR:12228. Ticket:12080
The client-side Vaadin Router does not attach components until the
onBeforeEnter
callback is run. However, when the Flow client initializes a server-side view, it assumes its container and the UI root are connected to the document. This concerns constructor timing as well asAttachEvent
listeners. This fixes the issue by pre-attaching the hidden container element created in theFlow.ts
(the adapter for the client-side router) to the body. -
⧉ Make URLUtil.encodeURI behave like encodeURI in JavaScript and add encodeURIComponent. PR:12291
-
⧉ Changed copied server info to format "header: value" to be easier to read. PR:12271
-
⧉ Auto-update Node for alternative directory. PR:12270. Ticket:12264
-
⧉ Set style property priority using proper API method. PR:12019. Ticket:11981
-
⧉ Use encoded path for dev server. PR:12225. Ticket:12221
Allows project folders with spaces to work
-
⧉ Only log RouteNotFoundError if debugging is enabled. PR:12231
-
⧉ Split Vite configuration into a generated part and a customizable part. PR:12208. Ticket:12115
-