Vaadin Flow 2.1 is a feature release of the Java Framework in Vaadin 14.1 that includes a number of new features and enhancements. Vaadin 14.1 is a long-term support (LTS) release and it replaces the previous version 14.0.
2.1 Feature Highlights
Improved start-up and build time in development mode by improving the performance for scanning frontend resources (#6480, #6482)
- In development mode, all discovered frontend resources are included in the bundle, instead of including only what is actually used by in the application. This way complex and slow scanning can be skipped when they don't actually bring any value but can take a long time.
- The production build (the
build-frontend
Maven target) still creates a bundle that includes only the frontend resources that are used in the application. - The production build now also creates a "fallback-chunk": if the browser requests a resource that is missing from the optimized bundle, an additional fallback bundle is loaded to not break the UI for the users.
- You don't need to do anything to benefit from this new behavior.
- There is no longer a need to do black/white listing of classes in Spring Boot projects, as was recommended in 14.0 to optimize the time for the frontend build when the application contained very large external libraries.
- The difference is the most significant in big projects. Further improvements for speeding up the recurring startup and build times are WIP for 2.2.
Generic Drag and Drop support (#3978)
- Components can be made draggable and drop targets.
- Focused on DnD operations inside the same UI, please comment on issues so we know what other use cases are important.
- Documentation
- Note, while this feature was part of the Flow 2.0 release, now it has been officially included in Vaadin 14.1 and the
flow-dnd
artifact doesn't need to be added separately to a project.
Small Enhancements
- API to provide deep-refresh for
HierarchicalDataProvider
items (#6202) @PreserveOnRefresh
works for Embedded Flow Components (#6390)- Embedded Flow Components are not based on Polymer (#5800)
- Java Component API for
<pre>
element (#5010) - Add two new
setRoute()
variants toRouterLink
(#6540) - Added
StringToUuidConverter
(#4400)
Upgrading from 2.0 (Vaadin 14.0)
Update your vaadin
or vaadin-core
dependency to the latest 14.1.x version and recompile the code. Release candidate 14.1.0.rc1 will be released on the 25th of November and final release on the 5th of December (2019). Please note that the release candidate version will be available in the Vaadin prereleases Maven repository, not Maven central.
Deprecations from 2.0
- The optional
loadMode
parameter in@JsModule
annotation has been deprecated as it has no effect on how the module will be loaded, but instead, it depends on whether it is a local or external resource - The
addJsModule(String, LoadMode)
inPage
has been deprecated due to the same reason,LoadMode
parameter has no effect andaddJsModule(String)
should be used instead - The
isSuccesful
method inDragEndEvent
has been deprecated in favor ofisSuccessful
Dependency Updates in 2.1
- org.jsoup.jsoup has been updated to 1.12.1 (was 1.11.3)
- net.bytebuddy.byte-buddy has been updated to 1.10.1 (was 1.9.13)
Incompatible Changes in 2.1
There are some binary-incompatible changes in 2.1, so you need to recompile your code.
There are no breaking changes in the public API for application or component developers, but the following internal API has changed. You should not care about this, unless you have forked the project and are maintaining your own version or have a plugin that is using some internal parts of Flow.
WebComponentUI::connectWebComponent
has been removed and replaced with aprivate
method as this is not a method anyone should be callingNodeTasks.$Builder
methodcollectVisitedClasses
has been removedNodeUpdater
's protected constructor has changedFrontendDependencies
constantLUMO
has been removedDevModeInitializertop
methodgetJarFilesFromClassloader
has been removedDevModeInitializer$VisitedClasses
has been removed
Change log for 2.1.0
Changes between latest 2.0 (2.0.18) and 2.1
Changes since 2.1.0.rc1