Version 8.25.2 built on 2024-05-14.
Release Notes for Vaadin Framework 8.25.2
- Overview of Vaadin Framework 8.25.2 release
- Enhancements in Vaadin Framework 8.25
- Known Issues and Limitations
- Getting started with Vaadin Framework
- Package Contents
- Migrating from Vaadin 7.7
- Vaadin Framework 8.25.2 dependencies
- Supported Technologies
- Vaadin Framework on the Web
Overview of Vaadin Framework 8.25.2 Release
Vaadin Framework 8.25.2 is a feature release that includes a number of new features and bug fixes, as listed in the list of enhancements below.
Change log for Vaadin Framework 8.25.2
Below is a list of notable user-facing changes for the maintenance releases of Vaadin 8.25.
You can find a full change history starting with Vaadin 8.15.0 in GitHub. Please note, that development of Vaadin Framework 7 and 8 has moved to a private repository as part of the change from Apache 2.0 to Vaadin Commercial License, and as such a Git commit history is not available to the public.
Vaadin 8.25.2
-
Defined Vaadin License Checker version as a variable in the root POM in order to fix OSGI packaging. The packaging change in 8.25.1 exposed this issue.
Mitigated the performance overhead caused by the Grid changes in 8.25.0, namely the re-layouting of a Grid on scroll is now only performed when a ComponentRenderer is present.
Vaadin 8.25.1
-
Reverted a fix for a ComboBox issue where, if a filter was applied and the user opens the dropdown choice menu, the currently selected choice was not initially being scrolled into view. This fix had the side effect of making it impossible to scroll the dropdown menu in certain cases.
The fix for the original issue will be re-implemented in a side-effect free manner in a future release.
- Fixed a packaging issue, where the Vaadin license checker and Vaadin Open were incorrectly being included as part of the vaadin-server artifact. This caused a cascade of classpath conflict warnings on startup. As far as we're aware, this problem appeared to be completely cosmetic but was causing concern for some users.
- Added a missing style rule for FormLayout's disabled caption opacity when using the light Valo theme.
- Updated the license checker version.
Vaadin 8.25.0
-
Added feature in Grid that allows setting the order of the hidable columns as presented in the Grid sidebar menu. The list can now be sorted either as DEFAULT, ASCENDING or DESCENDING. Default order is the same as the presentation order in the Grid. Ascending and descending ordering use the set title of each hidable column, sorted alphabetically.
The new API can be found in Grid - grid.setSidebarColumnOrder(GridConstants.SidebarColumnOrder order) and the corresponding getter grid.getSidebarColumnOrder().
- Fixed edge-case issue #12611 where a combination of a TabSheet inside of a FormLayout inside of a TabSheet would be rendered with 0px width.
-
Added a workaround for Grid issue #12608 where using a layout component containing multiple subcomponents inside a Grid cell with a ComponentRenderer would cause rendering to break.
This workaround schedules re-layouting of the Grid after each scroll event. As a result, minor slowdowns in complex Grids can occur in some cases.
If you are experiencing performance issues with your Grids after upgrading to Vaadin 8.25.0, please open a support ticket at support.vaadin.com.
-
Improved the documentation of the TestBench TextFieldElement class.
Incompatible or behavior-altering changes in 8.25
- Vaadin Framework 8.24.0 removed the Flash widget and Flash object support in the Embedded component.
- Since 8.21.0 Vaadin Framework 8 requires Java 11 to build, but will run on Java 8.
Known Issues and Limitations
- Mozilla Firefox version 100+ changed the rendering of drop-down lists, causing visual inconsistencies in reference screenshots. This issue is being worked on.
- Windows 11 changed the behavior and visual style of scrollbars. This behavior is planned to be re-homogenized in a future Vaadin 8 release.
- @PushStateNavigation can cause browser to load resources from wrong URLs (#10329)
- Drag'n'drop in a Table doesn't work on touch devices running Internet Explorer (Windows Phone, Surface) (#5170)
- Payload based drop criteria do not work on IE11 - use criteria scripts if IE11 support of drop validation is required
- Specifying layout sizes using em is currently discouraged, because it results in fractional components sizes in many cases, which might cause unwanted 1px gaps between components.
-
Up-to-date information about configuration needed for push and
compatibility issues are available in
this wiki page.
The most prominent limitations are: - The Maven GWT compilation for Vaadin7WidgetSet requires at least 1 gigabyte of memory, when using the vaadin-client-compatibility package. If compiled inside Eclipse, possibly even more.
Getting started with Vaadin Framework
Vaadin Framework is a Java framework for building modern web applications that look great, perform well and make you and your users happy. The Framework is available under the Apache License, Version 2.0 (see the license.html in the Vaadin Framework ZIP package).
The easiest ways to start using Vaadin Framework are:
- Maven dependency.If using Maven, define it as a dependency or use any of the available archetypes to create a new project. More information at https://vaadin.com/maven
- IDE Plugins.If using Eclipse, use the Vaadin Plugin for Eclipse, which automatically downloads the Framework libraries. For NetBeans 8.0 and 7.4, use the official Vaadin plugin that provides Maven based wizards and code completion support for Vaadin Framework based development.
Vaadin Framework is also available as a ZIP package downloadable from the Vaadin Download page.
Package Contents
Inside the ZIP installation package you will find:
- Separate server-side (vaadin-server) and client-side (vaadin-client, vaadin-client-compiler) development libraries
- Precompiled widget set (vaadin-client-compiled) for server-side development
- Shared library (vaadin-shared) for both server- and client-side libraries
- Valo theme (the only inbuilt theme) (vaadin-themes)
- Dependency libraries provided under the lib/ folder
- Vaadin 7 compatible classes for server-side (vaadin-compatibility-server, vaadin-compatibility-shared), client-side (vaadin-compatibility-client) and themes (vaadin-compatibility-themes)
See the README.TXT in the installation package for detailed information about the package contents.
For server-side development, copy the vaadin-server, vaadin-client-compiled, vaadin-shared, and vaadin-themes from the main folder and the dependencies from the lib folder to the WEB-INF/lib folder of your Vaadin project. (The vaadin-client-compiled is necessary if you do not wish to compile the widget set by your own, which you need to do if you use almost any add-on components.)
Migrating from Vaadin Framework 7.7
Most Vaadin Framework 7 applications need some changes when migrating to Vaadin Framework 8. In addition to updating dependencies, all references to Framework 7 style data binding and components using it need to be updated either to use new Framework 8 style data binding or to use the compatibility versions in separate packages.
Vaadin Framework 7 compatible versions of the old data binding API and components (with the exception of Form) are available in the package com.vaadin.v7 in modules vaadin-compatibility-server, vaadin-compatibility-shared etc. that can be used instead of vaadin-server, vaadin-shared etc. The package vaadin-compatibility-client-compiled ontains the widgetset com.vaadin.v7.Vaadin7WidgetSet which can be used instead of DefaultWidgetSet. Please note that the rename to com.vaadin.v7 has only been applied to classes that are only relevant for the compatibility modules. Some classes have also been renamed while still being part of the non-compatibility modules.
All applications using either Reindeer, Runo, Chameleon or Base theme must include the vaadin-compatibility-themes package.
There is a migration tool which helps with some of the migration steps.
Some Vaadin Framework 7 add-ons do not work in version 8 - please check the add-ons in Vaadin Directory for Framework version 8 support.
Common Upgrade Steps
Always when upgrading from an earlier Vaadin Framework version, you must:
- Recompile your classes using the new Framework version. Binary compatibility is only guaranteed for maintenance releases of Framework.
- Unless using the precompiled widget set, recompile your widget set using the new Framework version.
Remember also to refresh the project in your IDE to ensure that the new version of everything is in use.
By using the " ?debug " URL parameter, you can verify that the version of the servlet, the theme, and the widget set all match.
Eclipse users should always check if there is a new version of the Eclipse Plug-in available.
Maven users should update the Vaadin Framework dependency version in the pom.xml .
Vaadin Framework 8.25.2 Dependencies
When using Maven, Ivy, Gradle, or other dependency management system, all Framework dependencies are downloaded automatically. This is also the case when using the Vaadin Plugin for Eclipse.
The Vaadin Framework ZIP installation package includes the dependencies in the lib subfolder. These need to be copied to the WEB-INF/lib folder of the web application that uses Vaadin Framework.
The dependencies are listed in the Licensing description. Some are explicit dependencies packaged and distributed as separate JARs, while some are included inside other libraries.
Bean Validation
If you use the bean validation feature, you need a Bean Validation API implementation. You need to install the implementation JAR in the WEB-INF/lib directory of the web application that uses validation.
Supported Technologies
The server-side Vaadin Framework 8 is compatible with Java 8 and 11. Note, that the client-side Java code, compiled using GWT to be run as JS on the browser side, only supports language features up to Java 9 and a subset of JDK libraries. Vaadin Framework 8 is developed and tested with Oracle JDK, but other compliant Java distributions should work as well. More about Java support in FAQ. Vaadin Framework 8 is especially supported on the following operating systems:
- Windows
- Linux
- Mac OS X
Vaadin Framework 8 requires Java Servlet API 3.0 but also supports later versions and should work with any Java application server that conforms to the standard. The following application servers are supported:
- Apache Tomcat 7-9
- Apache TomEE 1.7 and 7.0
- Oracle WebLogic Server 12.2
- IBM WebSphere Application Server 9
- JBoss EAP 6
- Wildfly 8-13
- Jetty 8-9
- Glassfish 4
- Payara Server 164
Vaadin Framework 8 supports the JSR-286 Portlet specification and all portals that implement the specification should work provided they support Java 8 and Servlet 3.0. The following portals are supported:
- Liferay Portal 6.2
- Liferay Portal 7.0
Vaadin Framework 8.25.2 supports the following desktop browsers:
- Mozilla Firefox 54+
- Mozilla Firefox ESR 52+
- Internet Explorer 11, Edge (latest version)
- Safari 9+
- Google Chrome 59+
Additionally, Vaadin Framework supports the built-in browsers in the following mobile operating systems:
- iOS 9+
- Android 4+ with Chrome 42+
Vaadin on the Web
- vaadin.com - The developer portal containing everything you need to know about Vaadin
- vaadin.com/framework/demos - A collection of demos for Vaadin Framework
- vaadin.com/docs/v8/framework/tutorial.html - Getting started with Vaadin Framework
- vaadin.com/forum - Forums for Vaadin Framework related discussions
- vaadin.com/docs/v8 - Vaadin Docs - complete reference manual for all Vaadin products
- vaadin.com/api - Online javadocs
- vaadin.com/directory - Add-ons for Vaadin Framework
- vaadin.com/support - Commercial support for Vaadin Framework
- vaadin.com/consulting - Expert services for Vaadin Framework users
- vaadin.com/company - Information about the company behind Vaadin Framework
- vaadin.com/contribute - Contribution quide
- github.com/vaadin/framework - Github repository