Version 7.6.0 built on 2015-12-28.

Release Notes for Vaadin Framework 7.6.0

Overview of Vaadin 7.6.0 Release

Vaadin 7.6.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.6.0

This release includes the following closed issues:

#4200Pressing ESC-key in Firefox cancels active XHR-request causing Communication Problem
Vote#6914Event when a Table column is collapsed
#7449Serverside browser detection doesn't work on Weblogic Portal 10.3.2
Vote#7717Allow HTML content in Tree captions
#9782Move VaadinSession storage logic to VaadinService
Vote#9811Non-collapsible columns should not be listed in the pop-up
#9953Properly initialize thread locals during HTTP session deserialization
Vote#10213UI needs a removeNavigator()-method
Vote#11733Show a "reconnecting" dialog if the server connection is lost
Vote#12518Make it possible to use XHR for actions initiated by the client even if push is enabled
#14006Allow instantiation of Vaadin Navigator with default constructor
Vote#14121Expose Push Connection state to Widget/Javascript
#14378Server Communication Progress/Error is not shown in push mode while in reconnect state.
Priority#14465Push transport does not reconnect or show error after computer sleep
#14555Update FontAwesome to version 4.4.0
#14716Use window.performance.now() in Profiler when available
Priority#14882NPE at FileUploadHandler.java:686 when the UI is already disposed
Priority#16195Grid item IDs out of sync with container
#16348Doing "lazy init" in attach listener causes lots of "already registered" warnings
Priority#16465Push with longpolling: ui hangs for one minute on first click
#16597Column width are incorrectly calculated if there is a narrow column
#16725Editor row validation and field validation are not in sync
#16838Support column resize in Grid by dragging the header
Priority#16841Tab should only cycle through row fields in Grid editor
#16845There should be an option for using unconverted itemIds as caption in selection components.
#16855Grid: Unable to listen to right click events on the client (for context menu)
#16858Grid: Add context menu support
#16918ComboBox scrolling broken on IE11
#16991Add "sortable" style to Grid header
#17075Long polling connection tracking is incompatible with certain proxies
Priority#17301StringToEnumConverter fails with custom Enum.toString() implementations
Priority#17383Window should not have ESC close shortcut hardcoded
#17519Boolean attributes are serialized inconsistently in to declarative format
#17583True boolean attibutes should be 'margin' not 'margin=""'
#17679Table rendering performance degradation since 6.8.13
#17917Refactor handling of focus and blur events in Connectors
Priority#17947Performance degradation when upgrading from 6.8.13 to 7.4.5
#18317Make the framework detect hierarchy changes not sent to the client
#18319Grid: expanding/collapsing the Details feels sluggish
#18339deselectAll() method is needed in Grid
#18456Accordion Tabs don't contain the set id
#18472Extract theme font icons to a separate font
#18481Support generated cell and row descriptions in Grid
#18503Calls to container.indexOfId with SQL backend are expensive.
#18510Omit empty hierarchy data from the response
#18530setEnabled(false) in component container does not disable link in child Link component
#18550Support defining a suspend timeout when using push
#18624Grid SelectionModels should be extensions
#18630AbstractRemoteDataSource does not inform properly on cache drop
#18659Grid private nested class Sidebar has dead code
#18663Grid row details can be opened even if no generator has been set
#18692RowHandle pinning in AbstractRemoteDataSource does excessive RPC calls
Priority#18698Grid: CssLayout around the Grid cuts off Sidebar-Menu
#18703Slot of OrderedLayout on client side is final
#18750Frozen grid non-editable columns misaligned in editor
#18758Use of connection close in long polling causes excess tcp socket usage
#18760Invalid (Finnish) month names shown in PopupDateField when using Java 8
#18782Round up to three decimal places values shown in the profiler section.
#18787Valo Theme: FormLayout don't have separators when nested on a table on the first line
#18809Moving the editor row does not save value
#18811SingleSelectionModel default behaviour changed
#18812Grid unbuffered editor does not display validation errors
#18819Push connection hangs when interrupting the websocket connection
#18831Grid misbehaves when selected items are filtered out
#18838Add a style name to the body when reconnect dialog is shown
#18908Grid has a validation error race condition
#18909RpcDataSourceConnector throws when scrolling too fast
#18919Grid editor should follow focus based on events from the user
#18956Grid editor opening does not always handle internal cell focus correctly
#18959Grid editor move twice too fast throws an exception
Priority#18987Primary style name is null for number of components
#18989Support defining the URL to use for push requests
#18998Store VaadinSession as APPLICATION_SCOPE in portals
#19007PortletSession is missing methods for scoped methods
#19009"Communication error" in Liferay 6.2 CE GA4 when using IE
#19015Components should support context click events
#19017Unable to override ConnectionStateHandler without extending DefaultConnectionStateHandler
#19024Make debugging widgetset splitting easier
#19034Report total app bootstrap time in the debug window
#19038DataGenerators occasionally want to get rid of old data
#19042Extend ContextClickEvent support to have a specific event for table
#19056TreeTable should support context click events
#19062Tree should support context click events
#19092Undeprecate and document VaadinPortletSession
#19096Checkbox in Grid Editor does not change value
#19128Grid should support context clicks in empty areas
#19130Table and TreeTable should support context click events in empty area
#19141Grid headers and footers are misaligned in Runo theme
#19152De-selecting a row that is already removed from container causes NPE
Priority#19201Websocket reconnect fails when killing the wifi connection
#19206Add ContextClickEvent for long touches.
#19222Improve Longtouch context menu behaviour on iOS.
#19227Specify custom first day of week for Calendar
#19302MultiSelectionModel setSelected does not update on the client
#19322Select all checkbox is not correctly updated
#19323Upgrade to Atmosphere-js 2.2.13
Priority#19357Grid selection disappears when sorting
Priority#19359Grid selection does not apply when you change the visibility
Priority#19360Grid keeps item selected when you unselect
#19364Grid: cellClassGenerator fails if its returns an empty string
#19367Context click should not select text
#19368Enable using custom overlay in VMenuBar
#19371RpcDataProvider does not recreate value change listeners on ItemSetChange
#19388Javascript error when browser goes online
#19389Unbuffered editor focus handling broken in IE8
#19391Websocket does not reconnect after Firefox/Safari goes offline and online again
#19394Unable to set boolean configuration values for push through UI
#19408Context click on the resize handle gets handled by the wrong cell
 
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.6

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

For enhancements introduced in Vaadin 7.5, see the Release Notes for Vaadin 7.5.0.

Incompatible or Behavior-altering Changes in 7.6

Known Issues and Limitations

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 or JAR 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.6.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.6

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