Changes since 23.3.0.alpha1
Breaking changes
-
Enable auto update of installed Node by default (#15044)
Commit · Pull requestThis makes Flow keep its installed Node version up to date. Manually installed node versions are not affected
-
Extract addon files to frontend/generated/jar-resources instead of a fake npm package (#14979)
Commit · Pull request · IssueNo longer creates target/flow-frontend so any tool or script relying on that needs to be updated Any manual import in JS/TS files from
@vaadin/flow-frontend
needs to be updated toFrontend/generated/jar-resources
New features
-
Throw a meaningful exception if deployed into a Servlet 5 container
Commit · Pull requestFor #14835
-
Allow specifying vaadin.devServerPort to connect to an already running dev server
Commit · Pull requestThis is only meant for debugging the dev server itself and the connection to it
-
Allow excluding URLs from being handled by a root mapped Vaadin Spring servlet
Commit · Pull request · IssueThis makes it possible to make services like swagger work correctly even when Vaadin is mapped to the context root.
-
Adapt to a new auto configuration in Spring Boot
Commit · Pull request · IssueSpring Boot introduced a new location for auto configuration entries in spring boot 2.7.0. The new location is META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports. This has until spring boot 3.0.0-M5 worked in parallel with the spring.factories configuration. The spring.factories support was removed in spring boot 3.0.0-M5 so this move has to be done now in order for the auto configuration to be picked up. Picked to master from #14629
Fixes
-
Do not log null if servlet deployer is disabled (#15054)
Commit · Pull request · Issue -
Interpret a directory import as an import for index.js in the directory (#15005)
Commit · Pull request · IssueThis is only used by the theme import rewriter which traverses all imports. It does not actually affect which files are imported
-
Clean commented css before handling (#14924)
Commit · Pull request · IssueRemove any comment blocks in CSS before creating link references.
-
Run npm install if folder changes
Commit · Pull request · IssueIf application folder changes we should execute npm install to get any folder references updated.
-
Long parameter regex (#14895)
Commit · Pull request · IssueHasUrlParameter now accepts all valid long values and throws in the case where value is out of Long range.
-
Use access and not lock (#14827)
Commit · Pull request · IssueUse access so that we do not deadlock.
-
AbstractDataProvider serialization (#14870)
Commit · Pull request · IssueReplace lambda with anonymous inner class in AbstractDataProvider to fix serialization issue(s). Test available in flow-components project since the issue only happens when the data provider is used with a grid.
-
Synchronize pwa handler on map (#14838)
Commit · Pull requestSynchronize pwa handler on the requestHandlerMap instead of locking the session. Locking and unlocking session may fire a push event that might make the server client sync faulty. touches #14797
-
Locking on FeatureFlags instead of VaadinContext (#13962) (#14741)
Commit · Pull request · IssueOnly lock on FeatureFlags when checking for wrapper and initializing
-
Old node installation (#14840)
Commit · Pull request · Issuenode installation we check the correc path for npm script.
-
Defer location and query tracking
Commit · Pull request · IssueTrack of location and query string after response from server happens too early when handling server side navigation, because history.pushState is executed within a setTimeout. This change defers the tracking to the next event loop cycle in order to get the correct values.
-
Redirect if refresh token is in push response also
Commit · Pull request · Issue -
Ignore nonexistent nodes during resync
Commit · Pull request · Issues 14232, 14470Ignore changes for nodes that are not available in the tree when a resync is underway. This will get the page to a working condition after a resync as all changes for existing nodes are executed.
-
Attach polymer binding callback to a promise that always resolves
Commit · Pull request · IssuePolymer binding callback was attached to the promise returned by customElements.whenDefined, but this promise may never complete if the input element is not a custom element, causing memory leaks on browser because of element capture. This change introduces a new promise that completes either when whenDefined is fulfilled or after a fixed timeout, allowing the garbage collector to clean resources.
-
Write version.json from the currently constructed package.json
Commit · Pull requestThe earlier logic was like 1. Read package.json 2. Modify package.json in memory 3. Generate version.json based on package.json file 4. Write modified package.json to file Where step 3 ignored what was done in step 2
-
Throw exception if Vite and deprecatedV14Bootstrapping are used
Commit · Pull requestInterrupts application's bootstrapping if Vite + v14 Bootstrapping are detected with the message to fallback to Webpack, sine Vite is not supported yet with this mode.
-
Cancel previous flush request if new one is forced
Commit · Pull request · Issue -
Do not assume a /VAADIN/ mapping is the real servlet mapping*
Commit · Pull request -
Do not use a fixed download root
Commit · Pull request · IssueAs the default download root might be different depending on the used system we should not use a hardcoded default if user has not given a download root.
-
Make system property feature flag value always override stored one
Commit · Pull request · IssueEnable or disable a feature flag by providing a system property is not working when feature flags file is loaded by a ResourceProvider. This change makes system properties always take precedence over stored values
-
Make paths work as version numbers in @NpmPackage
Commit · Pull request · Issue -
Only map websockets to servlet path and not any sub paths
Commit · Pull request -
Use es2020 for Vite, es2019 for webpack
Commit · Pull request · Issue