Version 7.7.0 built on 2016-08-24.

Release Notes for Vaadin Framework 7.7.0

Overview of Vaadin 7.7.0 Release

Vaadin 7.7.0 is a feature release that includes a number of new features and bug fixes, as listed in the list of enhancements and change log below.

Change Log for Vaadin 7.7.0

This release includes the following closed issues:

#6346LayoutClickListener doesn't work in FormLayout
#7103IndexedContainerItem.getItemProperty should return null for non-existing properties
#7291Check if gwtSdkFirstInClasspath should be used in archetypes
#8171Check if LoginForm can be replaced by a less hackish solution
#8643AbstractField doesn't fire ReadOnlyStatusChangeEvent when the read-only status of its data source changes
#9629vaadin-archetype-application must not create empty widget set
#11450AbstractField: getValidators() != null bad test
#12076uitest war should not contain guava
#12214Suboptimal default settings for generated pom.xml
#12351Use @Inherited to simplify annotation management
#12397Maven target should exclude gwt-UnitCache and symbolMaps in WAR file
#12653Have predefined cache folders in Vaadin Maven archetypes
#13370Tooltip (description) persists when moving mouse between portlets in Liferay
#13404Move relevant default parameter values from Vaadin archetypes to plug-in defaults
#13584Maven archetype vaadin-archetype-widget should use different folder naming
#13751Integrate upstream maven plugin changes
#13917Maven compile-theme: Support compilation of themes in src/main/resources
#14113MarginInfo should have constructor with two booleans: vertical, horizontal
#14171Artifact name conflict of Guava dependency
#14568MenuBar click misbehaviour if submenu item is focused
#14735Lots of warnings when compiling a project without theme or widget set
#14765ListSelect keyboard selection broken in MultiSelect mode
#15489Valo: Label.setEnabled(false) and Table.setColumnCollapsible("ColumnName", false) are not decorated accordingly
#16498Can't remove shortcut listener from Panel
#16541Better error reporting if container returns null itemId still mentions old devmode for client-side debugging
#17015Widget archetype parameter should be componentClassName does not handle subclasses
#17485Update plug-ins used by Maven archetypes
#17565MarginInfo bitmask methods should be deprecated
#18209AbstractJavaScriptRenderer doesn't support string data
Priority#18418Incorrect position of required indicators in slot
#18935vaadin-maven-plugin is missing <jsInteropMode>
#19012Maven plugin warning messages are too verbose
#19221ComboBox sometimes clears "selection text" when selection popup is opened
#19396Replace Atmosphere JQuery JS with the pure Atmosphere JS
#19427ContainerOrderedWrapper.getItemIds return ids in the wrong order
#19445Maven compile-theme: support all Sass compiler options
#19537MessageSender makes an ambigous call
#19550ListSelect doesn't render red border if validation fails
#19675Vaadin should have a "default widgetset" to look for in the project
#19677Newer GWT maven plugin sourceLevel defaults don't work
#19678Automatically generate widgetset if needed
#19683Use system parameters before application parameters
#19685Limit ComboBox suggestion popup width to the component's width
#19690Grid does not resize when row detail component is shown
Priority#19742NPE on Jetty 9.3 when closing tab with @Push(transport = Transport.WEBSOCKET_XH
#19749Handle unknown attributes in DesignContext
#19766TextArea.getCursorPosition() reports incorrect value when content is empty and using input prompt text
#19770Make AppWidgetset support Spring Boot compatible
Priority#19787Can no longer re-select null item in NativeSelect
Priority#19797GridLayout row heights do not get equally distributed
#19799Add documentatin for onUnregister special function in javascript component/extension javadocs
#19805Widgetset not found with 7.7-SNAPSHOT
Priority#19809Drag & Drop Fileupload broken
Priority#19822Push with no client request can exhaust the JVM heap
#19889Fix old IE tests after merge of (#19658). Old IEs only.
#20001Maven plugin does not look in correct repo for vaadin-client
#20026Vaadin tries to create new Atmosphere threads after servlet context stop
#20031Add null check to method 'setCellFocus'
#20038Static inner classes are not supported by the declarative format
Priority#20052Scroller icon visibility issue in TabSheet within SplitPanel within TabSheet
Priority#20104TabSheet + Grid HeightMode.ROW size issue
VoteEnhancements Vaadin support users have voted for
PriorityDefects Vaadin support users have prioritized

You can also view the list of the closed issues at the Vaadin developer's site.

Enhancements in Vaadin 7.7

Vaadin 7.7 includes many major and minor enhancements. Below is a list of the most notable changes:

For enhancements introduced in Vaadin 7.6, see the Release Notes for Vaadin 7.6.0.

Incompatible or Behavior-altering Changes in 7.7

Known Issues and Limitations

GWT Dependency Changes

The GWT dependencies for Vaadin are now provided as actual dependencies and not bundled with Vaadin packages. This means that you can override the GWT version in your own project if you want to. Note that the GWT Elemental is still partially bundled with shared package to avoid having the gwt-user as a dependency everywhere.

Vaadin Installation

Vaadin is a Java framework for building modern web applications that look great, perform well and make you and your users happy. Vaadin is available under the Apache License, Version 2.0 (see the license.html in the Vaadin ZIP package).

The easiest ways to install Vaadin are:

Vaadin Framework is also available as a ZIP package downloadable from Vaadin Download page.

Package Contents

Inside the ZIP installation package you will find:

See the README.TXT in the installation package for detailed information about the package contents. Book of Vaadin (for Vaadin 7) gives more detailed instructions.

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.)

Updates to the Packaging

Since Vaadin 7.2.0, the old vaadin-theme-compiler has been moved into a separate project and renamed to vaadin-sass-compiler. It is now included along with the other 3rd party dependencies in the ZIP package.

For pure client-side development, you only need the vaadin-client and vaadin-client-compiler JARs, which should be put to a non-deployed project library folder, such as lib . You also need them if you compile the widget set for any reason, such as using Vaadin add-ons, or create new server-side components integrated with client-side widgets.

Migrating from Vaadin 6

All Vaadin 6 applications need some changes when migrating to Vaadin 7. The most obvious changes are in the application/window API and require extending either UI or UI.LegacyApplication instead of Application. A detailed list of migration changes are given in the Vaadin 7 Migration Guide.

Any custom client-side widgets need to be ported to use the new client-server communication API, or the Vaadin 6 compatibility API.

Vaadin 6 add-ons (ones that contain widgets) do not work in Vaadin 7 - please check the add-ons in Vaadin Directory for Vaadin 7 support.

Vaadin 7.7.0 Dependencies

When using Maven, Ivy, Gradle, or other dependency management system, all Vaadin dependencies are downloaded automatically. This is also the case when using the Vaadin Plugin for Eclipse.

The Vaadin 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.

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 in Vaadin 7, 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.

Upgrading to Vaadin 7.7

When upgrading from an earlier Vaadin version, you must:

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. The Eclipse Plug-in can be used to update the Vaadin version in the project (Project properties » Vaadin).

Maven users should update the Vaadin dependency version in the pom.xml unless it is defined as LATEST . You must also ensure that the GWT dependency uses the correct version and recompile your project and your widget set.

Liferay and other portal users must install the Vaadin libraries in ROOT/WEB-INF/lib/ in the portal (and remove a possibly obsolete older vaadin.jar). Additionally, the contents of the vaadin-client-compiled and vaadin-themes must be extracted to the ROOT/html/VAADIN directory in the Liferay installation. If your portal uses custom widgets, you can use Liferay Control Panel for Vaadin for easy widget set compilation.

Supported Technologies

Vaadin 7 is compatible with Java 6 and newer. Vaadin 7 is especially supported on the following operating systems:

Vaadin 7 requires Java Servlet API 2.4 but also supports later versions and should work with any Java application server that conforms to the standard. The following application servers are supported:

Vaadin 7 supports the JSR-286 Portlet specification and all portals that implement the specification should work. The following portals are supported:

Vaadin also supports Google App Engine.

Vaadin 7.7.0 supports the following desktop browsers:

Additionally, Vaadin supports the built-in browsers in the following mobile operating systems:

Vaadin SQL Container supports the following databases:

Vaadin on the Web