github vaadin/platform 14.1.0
Vaadin 14.1.0

latest releases: 24.5.0.beta3, 24.5.0.beta2, 23.5.6...
4 years ago

Vaadin 14.1.0

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, 12th Aug 2019) release. More details of our release model are available on our roadmap page.

Vaadin also provides commercial support and warranty.

Notes

When updating from a previous version to 14.1.0 it might be required to delete package-lock.json file and node_modules directory. In the error message, only node_modules is mentioned. It can be also fixed by running a npm ddp command (dedupe).

Drag and Drop does not work for Spring applications, due to frontend resource scanning bug vaadin/spring#519
- There is a workaround: Include @JsModule(com.vaadin.flow.component.dnd.internal.DndUtil.DND_CONNECTOR) into your root layout

New and Noteworthy

This is a stable release of Vaadin 14.1 that replaces Vaadin 14.0 in the 14.X LTS series.

Vaadin 14.1 introduces several improvements but also three new components: MultiSelectListBox, IntegerField, and BigDecimalField. Also in this release, the Generic Drag & Drop feature will be available as default.

From below you can find a list of new user values provided. All changes to a particular module can be found from GitHub following the link provided in the "Included Projects and Change Log" sections.

New development mode build

Improve your development experience by reducing build time in development mode significantly for big projects. For projects that have a lot of code, usually from external libraries, with 14.0 took a lot of time to start up the server and update after changes with certain reload tools. In 14.1 this will get significantly faster, in particular in Spring Boot projects that don’t have black/white-listing for the big external libraries they are using.

Generic Drag & Drop

Build applications with DnD operations inside the same UI using only Java.
Make your components draggable with DragSource or drop targets with DropTarget.

@PreserveOnRefresh support for Embedded Flow Components

Improve end-user experience when embedding Vaadin to another page.
In case the user has entered data to the embedded Vaadin part and the page is refreshed, the data is not lost.

Theming JS API aka vaadin-themable-mixin

JavaScript developers have much more convenient API for theming Vaadin components.
Take a deep dive in GitHub.

New component MultiSelectListBox

New field component for multi-selection. The biggest difference to the Checkbox group is that MultiSelectListBox only has one tab stop, whereas, with the Checkbox group, you have to tab through each checkbox individually.

New component BigDecimalField

New field allows you to read/write BigDecimal type data.
Take a look in GitHub.

New component IntegerField

A field that allows you to read/write Integer type data.
More info about IntegerField: Java Integration, WebComponent

RichTextEditor HTML write API

The users are no longer restricted to the controversial Delta format when setting value for the rich text editor, but can now set the value of the editor in HTML alternatively.
APIs available: Java Integration, WebComponent

New Grid column APIs

Grid.scrollToIndex(index) API: Users can scroll the grid programmatically to a specific index
ColumnResizeListener: Possibility to react to user originated column resize events and read/write new widths to the columns
ColumnReorderListener: Possibility to react to user originated column reorder events and programmatically apply new column order

Upload all finished

You can now react to an event that occurs after all the uploads have finished, regardless if they finished successfully or not.

Crud improvements

The data editor for a selected row can be placed below/on the side of the grid alternatively to the previous mode, where the editor is always in a popup.

Minor changes and improvements

User statistics

We made adjustments to our analytics to increase the reliability of the data and allow us to better understand product usage for users who are signed in.

Subtrees in TreeGrid can be refreshed when needed

Subtrees in TreeGrid can be refreshed when needed

The developer can react to File rejected for Upload

The developer can react to File rejected for Upload

Grid Dynamic context menu creation on click time

Flow Grid's context menu content can be updated with relevant content right before it opens.

Grid click event column reference

Enables determining which column on a grid row was clicked.

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

Themes

  • Vaadin Lumo theme (v1.5.0)
  • Vaadin Material theme (v1.2.3).

Java Web Framework

Tools

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.

Maven Archetypes

Maven is the de-facto build tool for Java web applications. Major IDEs also support Maven out of the box and most often you'll be using Maven via your favorite IDE. There is currently one Maven archetype available, the vaadin-archetype-application which corresponds to the project base for Flow. The version of the archetype should match the platform version. After you have Maven installed, you can quickly create and run a Vaadin app with the following command:

mvn -B archetype:generate \
                -DarchetypeGroupId=com.vaadin \
                -DarchetypeArtifactId=vaadin-archetype-application \
                -DarchetypeVersion=14.1.0\
                -DgroupId=org.test \
                -DartifactId=vaadin-app \
                -Dversion=1.0-SNAPSHOT \
                && cd vaadin-app \
                && mvn package jetty:run

Manually changing Vaadin version for Java projects

Add the following dependency to dependencyManagement in pom.xml.

<dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-bom</artifactId>
    <version>14.1.0</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

Note

If you are using any pre-release version of Flow 2.X / Vaadin 14.X in your project, remove the following files and directories when updating to 14.X:

  • webpack-config.js
  • package.json
  • package-lock.json
  • node_modules

Supported Technologies

Operating Systems

Development is supported with the following operating systems, for any OS version that supports either frontend development (Bower/npm as package manager) or Java 8

  • Windows
  • Linux
  • macOS

Desktop Browsers

  • Evergreen versions of the following browsers on :
    • Chrome on these operating systems:
      • Windows 7, Windows 8.1, Windows 10 or later
      • macOS 10.9 (OS X Mavericks) or later
      • 64-bit Ubuntu 14.04+, Debian 8+, openSUSE 13.3+, or Fedora Linux 24+
    • Firefox on these operating systems
      • Windows 7, Windows 8.1, Windows 10 or later
      • macOS 10.9 (OS X Mavericks) or later
      • Any Linux with the following packages:
        • GTK+ 3.4 or higher
        • GLib 2.22 or higher
        • Pango 1.14 or higher
        • X.Org 1.0 or higher (1.7 or higher is recommended)
        • libstdc++ 4.6.1 or higher
      • Latest Firefox ESR is supported (starting from Firefox ESR 68)
    • Safari on macOS 10.9 (OS X Mavericks) or later
    • Edge on Windows 10 or later
  • Internet Explorer 11 on Windows 7, Windows 8 and Windows 10
    • (see Known Issues and Limitations below)

Mobile Browsers

The following built-in browsers in the following mobile operating systems:

  • Safari starting from iOS 9
  • Google Chrome evergreen on Android (requiring Android 4.4 or newer)

Development environments

Any IDE or editor that works with the language of your choice should work well. Our teams often use Eclipse, IntelliJ, Atom and Visual Studio Code among others (including Emacs and Vim).

Vaadin Designer supports the following IDEs:

  • Eclipse Java EE versions: Photon, 2018 and 2019.
  • JetBrains IntelliJ IDEA 2017, 2018 and 2019. Community or Ultimate edition.

Java

The server-side parts of Vaadin support version 8 and 11 of any JDK or JREs. More about Java support in FAQ.

Application Servers

Vaadin Flow requires Java Servlet API 3.1 (JSR-340) or newer. It is tested on:

  • Apache Tomcat 8.0.x, 8.5, 9
  • Apache TomEE 7.0.4->
  • Oracle WebLogic Server 12.2.1
  • IBM WebSphere Application Server 8.5 Liberty Profile and 9
  • RedHat JBoss EAP 7
  • WildFly 14, 15, 16
  • Jetty 9.4
  • Payara Server
  • Payara Micro

Supported Node.js and npm versions

Node.js version 10.x for the npm mode.
npm version 5.6.0 or greater.

Breaking changes

This lists products that have breaking changes from V13

Flow

App Layout 2

  • AbstractAppRouterLayout was removed. AppLayout itself now implements RouterLayout.
  • AppLayoutMenu and AppLayoutMenuItem were removed.
    Migration guide available in vaadin.com/docs

ComboBox and Datepicker

  • The clear button is now hidden by default. To make it visible, use setClearButtonVisible(true). (Note: if the value of the combo box is empty, the clear button is always hidden.)

Known Issues and Limitations

OSGi support

  • OSGi with npm does not work in V14.0.0-V14.1 We are working on a fix for V14.x.
  • OSGi with Bower has problems with V14.0.0-V14.1

Performance

  • Due to the limitation of web components polyfills, component rendering on IE11 and EdgeHTML can be upto 5-10 times slower than on other browsers

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.
  • Drag and Drop does not work for Spring applications, due to frontend resource scanning bug vaadin/spring#519
    • There is a workaround: Include @JsModule(com.vaadin.flow.component.dnd.internal.DndUtil.DND_CONNECTOR) into your root layout

Components

  • The dark theme preset does not work in IE11 when applied to the <html> element.

Migrating from Vaadin 8

See the migration guide

Migrating from Vaadin 10-13

See the migration guide

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:

  1. 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
  2. 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
  3. 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
  4. If you encounter an issue with Designer, the repository is https://github.com/vaadin/designer
  5. If you encounter an issue with TestBench, the repository is https://github.com/vaadin/testbench

Don't miss a new platform release

NewReleases is sending notifications on new releases.