Vaadin 17.0.0.beta2
Vaadin consists of a set of web components, a Java web framework, configurable themes, tools and a set of app templates.
Visit vaadin.com to get started.
New and Noteworthy Since Vaadin 16
Here are the highlighted new and improved features in vaadin 17. To see the full list of bug fixes and improvements, check Included Projects and Change Log.
Framework
Features
- A new client forms API for TypeScript (TS) views
- New Binder API to associate a UI Field with a Model property.
- Java Generator now produces Form Models for TS to make easy bind it to the UI elments.
- Bean Validators in client side able to reuse Java Bean annotations, and to add custom validations
- New data binding API for components
- Component's are now have an API for getting and manipulating of the in-memory data, such as exporting data, traversing between items, add/remove operations, and more
- Lazy data loading components have now an ability to set only a data fetch callback with no knowledge of item count, as well as an API for lazy loading customisation
- Live Reload in browser
- Extended URL parameters support with routing
- Basic LitTemplate support based on LitElement for Java UIs
-
- More new feature description in the framework can be found from here
Breaking changes
- Removed the PWA install popup. Because
beforeInstallPrompt
was removed from browsers specs - Throwing instead of Warning when configuration annotations like
@Push
or@BodySize
are not in theAppShell
class - Due to the new data binding API:
- Using of
HasItems
interface has been replaced by newHasListDataView
,HasLazyDataView
andHasDataView
interfaces - Using of
HasDataProvider::setDataProvider
is deprecated and newHasListDataView
,HasLazyDataView
andHasDataView
interfaces API are recommended to use. - These changes have been updated in components(Grid, Select, CheckBoxGroup), too
- Using of
- More Deprecations and Incompatible Changes in the framework can be found from here
Components
TypeScript definitions for all components
In Vaadin 17, Vaadin components come with TypeScript definitions helping to use web components in TypeScript views. Depending on the IDE you use, TypeScript definitions can also give additional benefits like better code completion and auto import.
New features with Vaadin Charts
- Add new Java styling APIs
- Support 4 new chart types (Org Chart, Timeline, X-Range, Bullet)
Known issues
Due to the identified bug with latest Chrome(version: 84.0.4147.105), Vaadin components with popup (like ComboBox, Select, DatePicker) may cause Chrome to freeze in layouts with several nested Divs.
Changes since 17.0.0.beta1
- Vaadin Flow (4.0.0.rc1)
- Vaadin Checkbox (Flow integration 4.0.0.beta2, web component v2.4.0-beta1)
- Checkbox
- Checkbox Group
- Vaadin Grid (Flow integration 6.0.0.beta2, web component v5.7.0-beta1)
- Grid
- Tree Grid
- Grid Context Menu
- Vaadin Select (Flow integration 4.0.0.beta2, web component v2.3.0-beta1)
Support
vaadin 17 is supported for one month after Vaadin 18 has been released. The latest LTS (long term support) version is Vaadin 14. More details of our release model are available on our roadmap page.
Vaadin also provides commercial support and warranty.
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.
Java Web Framework
- Vaadin Flow (4.0.0.rc1)
- Vaadin Spring Addon (14.0.0.beta1)
- Vaadin CDI Addon (12.0.1). You can use the add-on with V10+, see https://github.com/vaadin/cdi#using-with-vaadin-10 for instructions.
- Maven Plugin for Vaadin (17.0.0.beta2)
- Gradle plugin for Flow (1.2)
- Vaadin Multiplatform Runtime (Prime)
Components
- Vaadin Accordion (Flow integration 4.0.0.beta1, web component v1.2.0-beta1)
- Vaadin App Layout (Flow integration 4.0.0.beta1, web component v2.2.0-beta1)
- Vaadin Button (Flow integration 4.0.0.beta1, web component v2.4.0-beta1)
- Vaadin Checkbox (Flow integration 4.0.0.beta2, web component v2.4.0-beta1)
- Checkbox
- Checkbox Group
- Vaadin Combo Box (Flow integration 5.0.0.beta1, web component v5.3.0-beta1)
- Vaadin Context Menu (Flow integration 5.0.0.beta1, web component v4.5.0-beta1)
- Vaadin Custom Field (Flow integration 5.0.0.beta1, web component v1.2.0-beta1)
- Vaadin Date Picker (Flow integration 4.0.0.beta1, web component v4.3.0-beta1)
- Vaadin Date Time Picker (Flow integration 3.0.0.beta1, web component v1.3.0-beta1)
- Vaadin Details (Flow integration 4.0.0.beta1, web component v1.2.0-beta1)
- Vaadin Dialog (Flow integration 4.0.0.beta1, web component v2.5.0-beta1)
- Vaadin Form Layout (Flow integration 4.0.0.beta1, web component v2.3.0-beta1)
- Vaadin Grid (Flow integration 6.0.0.beta2, web component v5.7.0-beta1)
- Grid
- Tree Grid
- Grid Context Menu
- Vaadin Icons (Flow integration 4.0.0.beta1, web component v4.3.1)
- Vaadin Item (web component v2.3.0-beta1)
- Vaadin List Box (Flow integration 4.0.0.beta1, web component v1.4.0-beta1)
- Vaadin Login (Flow integration 4.0.0.beta1, web component v1.2.0-beta1)
- Vaadin Menu Bar (Flow integration 3.0.0.beta1, web component v1.2.0-beta1)
- Vaadin Notification (Flow integration 4.0.0.beta1, web component v1.6.0-beta1)
- Vaadin Ordered Layout (Flow integration 4.0.0.beta1, web component v1.4.0-beta1)
- Horizontal Layout
- Vertical Layout
- Flex Layout
- Vaadin Progress Bar (Flow integration 4.0.0.beta1, web component v1.3.0-beta1)
- Vaadin Radio Button (Flow integration 4.0.0.beta1, web component v1.4.0-beta1)
- Radio Button
- Radio Button Group
- Vaadin Select (Flow integration 4.0.0.beta2, web component v2.3.0-beta1)
- Vaadin Split Layout (Flow integration 4.0.0.beta1, web component v4.3.0-beta1)
- Vaadin Tabs (Flow integration 4.0.0.beta1, web component v3.2.0-beta1)
- Vaadin Text Field (Flow integration 4.0.0.beta1, web component v2.7.0-beta1)
- Text Field
- Text Area
- Password Field
- Big Decimal Field
- Email Field
- Integer Field
- Number Field
- Vaadin Time Picker (Flow integration 4.0.0.beta1, web component v2.3.0-beta1)
- Vaadin Upload (Flow integration 4.0.0.beta1, web component v4.4.0-beta1)
- Vaadin Board (PRO) (Flow integration 5.0.0.beta1, web component v2.2.0-beta1)
- Vaadin Charts (PRO) (Flow integration 9.0.0.beta1, web component v7.0.0-beta1)
- Vaadin Confirm Dialog (PRO) (Flow integration 4.0.0.beta1, web component v1.3.0-beta1)
- Vaadin Cookie Consent (PRO) (Flow integration 4.0.0.beta1, web component v1.2.0-beta1)
- Vaadin Crud (PRO) (Flow integration 4.0.0.beta1, web component v1.3.0-beta1)
- Vaadin Grid Pro (PRO) (Flow integration 4.0.0.beta1, web component v2.2.0-beta1)
- Vaadin Rich Text Editor (PRO) (Flow integration 4.0.0.beta1, web component v1.3.0-beta1)
Themes
Router
- Vaadin Router (v1.7.2)
Tools
- Vaadin Designer (Pro) (Release notes)
- Vaadin TestBench (Pro) (6.3.0)
Getting Started with Vaadin
App starters
The best way to get started with Vaadin is to go to https://vaadin.com/start and pick an app template for the technology stack you’re interested in.
Note
vaadin 17 starters are not available just yet in vaadin.com. You can use Vaadin 14 starter and manually change Vaadin version (see instructions below).
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>17.0.0.beta2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
...
</dependencyManagement>
<repositories>
<repository>
<id>vaadin-prereleases</id>
<url>https://maven.vaadin.com/vaadin-prereleases</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>vaadin-prereleases</id>
<url>https://maven.vaadin.com/vaadin-prereleases</url>
</pluginRepository>
</pluginRepositories>
Known Issues and Limitations
This is the prerelease version of vaadin 17 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.
Flow
- The Template-in-Template feature has some limitations
- Links matching the context do not result in browser page load by default, instead they are handled with application routing. To opt-out, set the
router-ignore
attribute on the anchor element. This opt-out is needed for cases when native browser navigation is necessary, e. g., when usingAnchor
to link aStreamResource
download.
Migrating from Vaadin 8
Migrating from Vaadin 10-14
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