Vaadin 14.2.0.alpha4
Vaadin consists of a set of web components, a Java web framework, configurable themes, tools and a set of app templates.
With every major release, we will change and improve things based on your feedback. This may lead to breaking changes, which will be listed for each part of the platform in the breaking changes section.
Visit vaadin.com to get started.
Support
Vaadin 14 is an LTS (long term support) version, which will be supported for 5 years after the GA (general availability) release. More details of our release model are available on our roadmap page.
Vaadin also provides commercial support and warranty.
New and Noteworthy
Here are the highlighted new and improved features in Vaadin 14. To see the full list of bug fixes and improvements, check Included Projects and Change Log.
npm support
Using Bower for frontend dependencies is currently discouraged (by the author), and npm has become the defacto standard. In Vaadin 14 npm is used as the front-end package manager. Bower (compatibility mode) and WebJars are still fully supported in Vaadin 14. Using npm is the recommended mode in Vaadin 14.
Framework
- Support for npm and ES6 modules
- Support for Polymer 3 templates
- Adding @PreserveOnRefresh on a router layout or route will preserve the user-edited component state when the user refreshes the page by reusing the component instances
- Embedding Flow application is now possible by exporting it as a web component.
- When executing JavaScript from the server-side Java, it is possible to get the return value of the execution to the server-side using Page.executeJs(String expression, Serializable... parameters)
- It is possible to obtain details like screen width & height and time zone on the server-side using Page.retrieveExtendedClientDetails( ExtendedClientDetailsReceiver receiver)
- Simplified styling of application and component with @CssImport
Components
- Grid rows drag and drop
- Grid columns auto-width
- Customise value representation for Grid Pro
- Menubar component added
- App Layout with drawer
- Clear button visibility APIs
- Dropdown select value change without opening
- New theme variants for Notification
Changes since 14.2.0.alpha3
- Vaadin Flow (2.2.0.alpha13)
- Vaadin Spring Addon (12.2.0.alpha3)
- Vaadin Checkbox (Flow integration 2.0.3, web component v2.2.12)
- Checkbox
- Checkbox Group
- Vaadin Date Picker (Flow integration 2.0.6, web component v4.0.6)
- Vaadin Select (Flow integration 2.0.3, web component v2.1.7)
- Vaadin Grid (Flow integration 4.1.1, web component v5.5.0)
- Grid
- Tree Grid
- Grid Context Menu
- Vaadin Radio Button (Flow integration 2.0.2, web component v1.2.4)
- Radio Button
- Radio Button Group
- Vaadin Custom Field (Flow integration 3.0.4, web component v1.0.11)
Vaadin Flow
Prerelease for Vaadin 14.2
Vaadin Flow 2.2.0.alpha13 is a prerelease of the Java Framework targeted to Vaadin 14.2 that includes a number of new features and enhancements. To try it out, use the latest 14.2 prerelease available from the Vaadin prereleases Maven repository.
Significant Changes Since 2.2.0.alpha12
- Improve server start-up time in development mode by skipping ES5 transpilation for webpack by default
- Can be re-enabled for e.g. testing with IE11 by using the
devmode.transpilation=true
parameter - Production build (
build-frontend
) not affected
- Can be re-enabled for e.g. testing with IE11 by using the
- Shorcuts now support multiple components to listen on
- Pin frontend dependencies for pnpm when platform is used with the readPackage hook
- Allow setting custom template parser in npm-mode
2.2 Feature Highlights
Better frontend dependency management by using pnpm AKA performant npm
- Packages are by default cached locally and linked instead of downloaded for every project
-> Faster recurring builds in comparison to npm (benchmarks) - Only one
package.json
file used, reducing complexity (previously another file was in/target
)
-> More reliable build when updating Vaadin version - No migration needed, see differences here for more information about what has changed
- For running pnpm on a CI server, please see details here
Portlet 3.0 support for Pluto portal
- Enabled by using an add-on
- Documentation and demo
Experimental: Fire routing life-cycle BeforeEnterEvent
from parent -> child order
This feature may be changed in an upcoming prerelease.
This change effects the ordering of routing events and the timeline when routing components are created.
After this change, routing events are fired in the following order:
- Global routing handlers are invoked
setParameter
is invoked for top most navigation layer (main layout)BeforeEnterHandler
handler is invoked for the top most navigation layer (main layout), if implemented- Next level component instances are created, and steps 2-3 triggered for that layer
Before this change, all routing components were created eagerly, and events were fired from child->parent order with first setParameter
invoked, then global handlers and last BeforeEnterHandler
s.
This change fixes a design flaw and prevents developers from accidentally compromising application security, when routing components are not created if the end user does not have access to them.
In case this change would break your existing Vaadin 10+ project, please open an issue.
Minor improvements in 2.2
- Shorcuts now support multiple components to listen on (alpha13)
- Improve server start-up time in development mode by skipping ES5 transpilation for webpack by default (alpha13)
- Allow setting custom template parser in npm-mode (alpha13)
- It is easier to create forms with "save-as-draft" type of functionality by using
Binder::writeBeanAsDraf(BEAN)
(forward ported from vaadin/framework#11833) (alpha12) - Form bindings can now be triggered between required and non-required state with
setRequiredEnabled(boolean)
(partly fixes #5030) (forward ported from vaadin/framework#11834) (alpha12) HasOrderedComponents
now provides access to the child components withStream<Component> getChildren()
without casting it toComponent
(alpha12)VaadinContext
accepts attributes for storing based on super types withsetAttribute(Class<T>, T)
(alpha12)- In development mode, webpack bundles are not compressed(alpha12)
- Introduction of
VaadinConfig
andHandlerHelper
for non-servlet environments (replacingServletConfig
&ServletHelper
) (alpha7) - Added
Page.open(String url, String windowName)
(alpha7) - Added
isIpad()
andisIOS()
toExtendedClientDetails
to replace non-workingWebBrowser
versions (both broken for iPads with iOS 13) (alpha7) - Optimized application server memory usage by reducing
stats.json
file size
-> This drops the production stats size for megabundle by default from 40mb to 1.9mb or in Bakery App Starter from 42mb to 686kb (alpha4)
Known Issues and Limitations in 2.2
- pnpm is not able to resolve dependencies to git commits with the "short" hash format. See details and workaround from.
Deprecations since 2.1
com.vaadin.flow.component.ShortcutRegistration::getOwner
is deprecated in favor ofgetOwners
which returns all possible ownerscom.vaadin.flow.router.BeforeEvent::getRouteTargetType
is deprecated in favor ofgetRerouteTargetType
com.vaadin.flow.server.FallibleCommand
is deprecated in favor ofcom.vaadin.flow.server.frontend.FallibleCommand
com.vaadin.flow.server.ServletHelper
is deprecated in favor ofcom.vaadin.flow.server.HandlerHelper
com.vaadin.flow.server.startup.ApplicationRouteRegistry::getInstance(javax.servlet.ServletContext)
is deprecated in favor ofgetInstance(com.vaadin.flow.server.VaadinContext)
Dependency Updates in 2.2
- Following webpack dependencies have been updated:
- webpack-cli 3.3.0 -> 3.3.10
- webpack-dev-server 3.3.0 -> 3.9.0
- webpack-babel-multi-target-plugin 2.1.0 -> 2.3.3
- copy-webpack-plugin 5.0.3 -> 5.1.0
All Changes since previous 2.2 prerelease
See complete list of changes in 2.2.0.alpha13
Vaadin Spring Addon
Prerelease for Vaadin 14.2
This is a prerelease version for Vaadin Spring add-on, built on Flow 2.2.0.alpha13, targeted for Vaadin 14.2.
Changes since previous release
- Add parameter
devmode.transpile
to enable ES5 transpilation in development mode (off by default) - Update repositories to force use https
- Add a new constant for the test
Vaadin Checkbox
Java: 2.0.3
Changes Since 2.0.2
- Updated web component to 2.2.12
- Fixed the incorrect console warning
Compatibility
This release for vaadin-checkbox-flow
- is built on
<vaadin-checkbox>
Web Component version 2.2.12 - tested with Vaadin Flow version 2.0.19
WebComponent: 2.2.12
Fixes
- Prevent incorrect console warning when using value property
Changes Since v2.2.11:
-fix: prevent incorrect console warning
Vaadin Date Picker
Java: 2.0.6
2.0.6
This is a maintenance release of the Java integration for <vaadin-date-picker>
Web Component (github), to be used from the server side Java with Vaadin Flow.
Changes since 2.0.5
- Updated demos
WebComponent: 4.0.6
v4.0.6
Live Demo →
API Documentation →
Changes Since v4.0.5:
-
docs: improve localization demo [skip ci]
-
Improve date picker demos second part
-
docs: fix using Sugar locale in demos
-
docs: restore sugar locale for demos
-
Improve Vaadin Date Picker demos
Vaadin Select
Java: 2.0.3
Changes since 2.0.2
- Fix for ItemRenderer when ItemLabelGenerator is used
- Use removeChild instead of remove for IE11
WebComponent: 2.1.7
Fixes
- Lumo
align-center
andalign-right
variants now apply to overlay
Changes Since v2.1.6:
-
docs: update align demo, cleanup modules [skip ci]
-
fix: apply align theme variants to overlay
-
docs: improve styling demos [skip ci]
Vaadin Grid
Java: 4.1.1
Fixes since 4.1.0
- Improved error handling in connector
- Fix serialization of TreeGrid with HierarchyColumn
- Fix running tests locally
- Fix being able to switch from multi selection mode to other modes
- Remove usage of DndUtil which is in Flow internal
WebComponent: 5.5.0
New Features
-
Added
column-resize
event fired on column resize end -
Exposed
scrollToIndex()
method as a public API
Changes Since v5.4.11:
-
Fix ios detection for iOS 13 iPad
-
Remove will-change from frozen columns on iOS
-
feat: scroll to index
-
test: make tests more reliable with listenOnce
-
fix(scrolling): implementation of WheelEvent deltaMode
-
fix: Fix physical child column reordering
-
Fire 'column-resize' event on column drag resize end
Vaadin Radio Button
Java: 2.0.2
Changes since 2.0.1
- #114 Update demos
WebComponent: 1.2.4
Changes Since v1.2.3:
-
fix: ensure change event on mouseup is fired
-
Update radio-button-theme-variants-demos.html
-
Update radio-button-basic-demos.html
-
docs: improve radio button demos [skip ci]
-
Move change event declaration inside the correct block
Vaadin Custom Field
Java: 3.0.4
Compatibility
This release for vaadin-custom-field-flow
- is built on
<vaadin-custom-field>
Web Component version 1.0.11 - tested with Vaadin Flow version 2.1.3
WebComponent: 1.0.11
Changes Since v1.0.10:
-
fix: add small theme variant
-
fix: label styles for disabled and readonly states
Make label styles consistent with vaadin-text-field when using the attribute
disabled
orreadonly
on the custom field. This only adds the styles for custom field label. The attributes are not automatically synchronized between custom field and any child components.
Included Projects and Change Log
Vaadin includes the following projects. Release notes with detailed change logs for each project are linked below.
Projects marked as (Pro) are available for users with Pro or Prime subscriptions. Everything else is free and open source.
Components
- Vaadin Accordion (Flow integration 2.0.0, web component v1.0.1)
- Vaadin Button (Flow integration 2.0.2, web component v2.2.2)
- Vaadin Checkbox (Flow integration 2.0.3, web component v2.2.12)
- Checkbox
- Checkbox Group
- Vaadin Combo Box (Flow integration 3.0.6, web component v5.0.9)
- Vaadin Context Menu (Flow integration 3.1.2, web component v4.3.15)
- Vaadin Date Picker (Flow integration 2.0.6, web component v4.0.6)
- Vaadin Time Picker (Flow integration 2.0.3, web component v2.0.4)
- Vaadin Details (Flow integration 2.0.0, web component v1.0.1)
- Vaadin Dialog (Flow integration 2.0.1, web component v2.2.1)
- Vaadin Select (Flow integration 2.0.3, web component v2.1.7)
- Vaadin Form Layout (Flow integration 2.0.2, web component v2.1.6)
- Vaadin Grid (Flow integration 4.1.1, web component v5.5.0)
- Grid
- Tree Grid
- Grid Context Menu
- Vaadin Icons (Flow integration 2.0.1, web component v4.3.1)
- Vaadin Item (web component v2.1.1)
- Vaadin List Box (Flow integration 2.1.1, web component v1.2.0)
- List Box
- Multi Select List Box
- Vaadin Menu Bar (Flow integration 1.0.2, web component v1.0.3)
- Vaadin Notification (Flow integration 2.0.0, web component v1.4.0)
- Vaadin Ordered Layout (Flow integration 2.0.0, web component v1.1.0)
- Horizontal Layout
- Vertical Layout
- Flex Layout
- Vaadin Progress Bar (Flow integration 2.0.2, web component v1.1.2)
- Vaadin Radio Button (Flow integration 2.0.2, web component v1.2.4)
- Radio Button
- Radio Button Group
- Vaadin Split Layout (Flow integration 2.0.3, web component v4.1.1)
- Vaadin Tabs (Flow integration 2.0.4, web component v3.0.5)
- Vaadin Text Field (Flow integration 2.1.0, web component v2.5.3)
- Text Field
- Text Area
- Password Field
- Big Decimal Field
- Email Field
- Integer Field
- Number Field
- Vaadin Upload (Flow integration 2.1.0, web component v4.2.2)
- Vaadin Custom Field (Flow integration 3.0.4, web component v1.0.11)
- Vaadin App Layout (Flow integration 2.0.4, web component v2.0.4)
- Vaadin Login (Flow integration 2.0.0, web component v1.0.1)
- Vaadin Board (PRO) (Flow integration 3.0.1, web component v2.1.1)
- Vaadin Charts (PRO) (Flow integration 7.0.2, web component v6.2.4)
- Vaadin Confirm Dialog (PRO) (Flow integration 2.0.2, web component v1.1.5)
- Vaadin Cookie Consent (PRO) (Flow integration 2.0.2, web component v1.1.2)
- Vaadin Crud (PRO) (Flow integration 2.1.0, web component v1.1.0)
- Vaadin Grid Pro (PRO) (Flow integration 2.0.3, web component v2.0.5)
- Vaadin Rich Text Editor (PRO) (Flow integration 2.1.1, web component v1.1.1)
Themes
Java Web Framework
- Vaadin Flow (2.2.0.alpha13)
- Vaadin Spring Addon (12.2.0.alpha3)
- Vaadin CDI Addon (11.2.0.alpha1). You can use the add-on with V10+, see https://github.com/vaadin/cdi#using-with-vaadin-10 for instructions.
- Maven Plugin for Vaadin (14.2.0.alpha4)
- Gradle plugin for Flow (1.2)
- Vaadin Multiplatform Runtime (Prime)
Tools
- Vaadin Designer (Pro) (Release notes)
- Vaadin TestBench (Pro) (6.2.1)
Getting Started with Vaadin 14
App starters
The best way to get started with Vaadin 14 is to go to https://vaadin.com/start and pick an app template for the technology stack you’re interested in.
Manually changing Vaadin version for Java projects
Add the following contents to your project pom.xml.
<dependencyManagement>
...
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-bom</artifactId>
<version>14.2.0.alpha4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
...
</dependencyManagement>
<repositories>
<repository>
<id>vaadin-prerelease</id>
<url>https://maven.vaadin.com/vaadin-prereleases</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>vaadin-prerelease</id>
<url>https://maven.vaadin.com/vaadin-prereleases</url>
</pluginRepository>
</pluginRepositories>
Known Issues and Limitations
This is the prerelease version of Vaadin 14.x for evaluating a number of new features and bug fixes. The API in this prerelease version is not considered final and may change based on user feedback.
OSGi support
- OSGi with npm does not work in V14.0.0-V14.1.0. We are working on a fix for V14.x.
- OSGi with Bower has problems with V14.0.0-V14.1.0
Flow
- The Template-in-Template feature has some limitations
- There are some issues in using Web Sockets as the Push channel in certain OSGi environments, but long polling works.
Components
- The dark theme preset does not work in IE11 when applied to the
<html>
element.
Migrating from Vaadin 8
Migrating from Vaadin 10-13
Reporting Issues
We appreciate if you try to find the most relevant repository to report the issue in. If it is not obvious which project to add issues to, you are always welcome to report any issue at https://github.com/vaadin/platform/issues.
A few rules of thumb will help you and us in finding the correct repository for the issue:
- If you encounter an issue when using the HTML/JS API of a component or the component renders incorrectly, the problem is likely in the web component. The web component repositories are named like https://github.com/vaadin/vaadin-button
- If you encounter an issue when using the Java API of a component, the problem is likely in the Flow integration of the web component. The Flow component integration repositories are named like https://github.com/vaadin/vaadin-button-flow
- If you encounter an issue with Flow which does not seem to be related to a specific component, the problem is likely in Flow itself. The Flow repository is https://github.com/vaadin/flow
- If you encounter an issue with Designer, the repository is https://github.com/vaadin/designer
- If you encounter an issue with TestBench, the repository is https://github.com/vaadin/testbench