Version 7.5.0.rc1 built on 2015-06-12.
Release Notes for Vaadin Framework 7.5.0.rc1
- Overview of Vaadin 7.5.0.rc1 Release
- Change Log for Vaadin 7.5.0.rc1
- Enhancements in Vaadin 7.5
- Incompatible or Behavior-altering Changes in 7.5
- Known Issues and Limitations
- Vaadin Installation
- Package Contents
- Migrating from Vaadin 6
- Vaadin 7.5.0.rc1 dependencies
- Upgrading to Vaadin 7.5
- Supported Technologies
- Vaadin on the Web
Overview of Vaadin 7.5.0.rc1 Release
Vaadin 7.5.0.rc1 is a pre-release for evaluating a number of new features and bug fixes, as listed in the list of enhancements and change log below.
Change Log for Vaadin 7.5.0.rc1
This release includes the following closed issues:
| #3855 | SplitPanel should have an event for the splitter being moved | |
| #6245 | Table.setVisibleColumns() causes table to forget column headers, icons, alignment | |
| #9369 | ComboBox should select selected value on TAB also when new items are allowed | |
| #10945 | Insuffient RPC interface detection in registerRpc | |
| #13323 | Websocket test does not work with JBossEap 6 | |
| #13389 | toUpperCase method in Vaadin reflection operations should work in English locale | |
| #13567 | Add -strict switch for superdevmode codeserver | |
| #13653 | Use com.google.gwt.precompress.Precompress by default | |
| #13709 | Validators should imply immediate | |
| #13864 | setSelectable in Table could be made intelligent, like setImmediate is nowadays | |
| #14137 | Alignment.TOP_CENTER and Alignment.TOP_RIGTH does not work for Vertical Layout | |
| #14381 | Server push - JSR356 path problem on embedded Jetty 9.2.1 | |
| Priority | #14432 | Push with weblogic 12.1.2 and websockets |
| #14775 | Label is not displayed correctly inside FormLayout when FormLayout is placed inside double VerticalLayout | |
| #14872 | Notification styles should be scoped more eagerly (Valo) | |
| #14914 | Deprecate streaming transport | |
| Priority | #15274 | TabSheet issue after setSelectedTab |
| #15381 | The icon of MenuItem doesn't turn grey | |
| #15410 | Can't use double[] as renderer data type | |
| #15464 | Implement StringToCollectionConverter | |
| #15502 | ComboBox Null Selection can't be selected | |
| #15549 | Validate and fix declarative support for OptionGroup | |
| #16321 | Validate and fix declarative support for Tree inline data | |
| #16324 | Validate and fix declarative support for DragAndDropWrapper | |
| #16328 | Validate and fix declarative support for MenuBar | |
| #16330 | Validate and fix declarative support for AbstractMedia | |
| #16331 | Validate and fix declarative support for Audio | |
| #16332 | Validate and fix declarative support for Video | |
| #16334 | Validate and fix declarative support for PopupView | |
| #16335 | Provide a Window.setPosition(x,y) | |
| #16336 | Validate and fix declarative support for AbstractColorPicker | |
| #16367 | Validate and fix declarative support for table | |
| #16368 | Validate and fix declarative support for treetable | |
| #16560 | com.vaadin.ui.renderer.DateRenderer doesn't handle null values | |
| #16584 | DesignContext does not allow setting local id | |
| #16594 | Validate and fix declarative support for GridLayout | |
| #16595 | Validate and fix declarative support for Calendar | |
| #16596 | Validate and fix declarative support for Grid | |
| #16643 | Implement column reordering using drag and drop for Grid | |
| #16644 | Implement expandable row details for Grid | |
| #16685 | Selecting all Grid rows with Checkbox in Header using Space does not work | |
| #16732 | Pressing enter on a header cell not in the default row should not sort | |
| #16738 | Push/Atmosphere initialization should be done in context deployment phase | |
| #16933 | Create custom tags for Components | |
| #17023 | Add UI for letting the user hide or show selected Grid columns | |
| #17028 | Navigator.addProvider should not accept null values | |
| #17080 | Grid has no sane API to define visible columns | |
| #17089 | Inconsistent default values of certain field types | |
| #17090 | Problems finding PopupDateFieldElements | |
| #17127 | Connectors should also be able to be DeferredWorkers | |
| #17136 | Multiple connector registering if cells in Grid.HeaderRow are joint | |
| #17148 | Add option for writing out inline data for AbstractSelect instances | |
| #17166 | ReadOnlyException when calling fieldgroup.setItemDataSource(null) if one field is readonly | |
| Priority | #17190 | MarginInfo is not supported by declarative |
| #17196 | Validate and fix declarative support for Slider | |
| #17210 | Validate and fix declarative support for CustomLayout | |
| #17270 | Add a way to scroll to particular opened row details in Grid | |
| #17272 | API for column hiding toggle caption | |
| #17273 | When hiding the last frozen column, it is unfrozen when it comes visible again | |
| #17274 | Null widget for details generator sometimes closes the details erroneously | |
| #17275 | Declarative does not parse and format FontIcons correctly | |
| #17287 | Hiding a column breaks all spanning header cells that overlap that column | |
| #17293 | Scrolling down with an opened detail row in Grid fails asserts | |
| #17314 | Validate and fix declarative support for Window | |
| #17332 | Use MenuBar in Grid's sidebar for column hiding | |
| #17334 | Reorder spacers in Escalator, alongside rows | |
| #17353 | Make invisible Escalator spacers as uninteractable as possible | |
| #17361 | MenuBar reads captions wrong for MenuItems | |
| #17367 | Detail rows cause empty RPC call roundtrips even without any detail rows. | |
| #17369 | Support responsive=true to enable responsiveness for a component | |
| #17370 | Slider cannot be used with double as limits | |
| #17377 | Vaadin-server bundle missing import of jsoup bundle | |
| #17412 | Theming for Grid's sidebar | |
| #17415 | Make the Grid StaticSection types public | |
| #17423 | Move details row decorators out of the spacer <td> | |
| #17425 | Declarative test can't access public properties in nonpublic superclasses | |
| #17444 | DesignContext is missing getter for local id's | |
| #17454 | Weblogic 12 should use JSR 356 websockets by default | |
| #17456 | Glassfish4 websockets do not work with multiple servlets | |
| #17478 | Grid.Column.setHidable and Grid.Column.setHidden should return the Column | |
| #17481 | Declarative support and tests for Grid's Column hiding and reordering. | |
| #17484 | Declarative UI tests need a test harness in the framework | |
| #17488 | AbstractComponent.writeDesign should not clear element content | |
| #17510 | Firefox does not work with Glassfish 4 when using JSR-356 websockets | |
| #17548 | Valo Theme shows readonly checkboxes same as editable checkboxes | |
| #17554 | Grid HTML element for select-all CheckBox and CheckBox in GridRow is different | |
| #17564 | MarginInfo is missing JavaDoc | |
| #17569 | Add API for adding custom items to the Grid column toggle sidebar menu | |
| #17608 | All UIDL responses should use the same content type | |
| #17619 | Gridlayout calculates caption position incorrectly when using alignment | |
| #17691 | Making column hidden or visible while details row is open in Grid | |
| #17692 | Grid's Column reordering drop marker is misplaced on top of sidebar open button | |
| #17693 | Grid column reordering with DND floating element positioning broken | |
| #17814 | SubPartArguments is missing JavaDoc | |
| #17825 | Add Component.setStyleName(String, boolean) | |
| #17826 | Grid detail row outline overflows | |
| #17846 | Split panel primary stylename is present twice | |
| #17858 | SQLContainer.commit leaves transaction open if queryDelegate.removeRow throws IllegalArgumentException | |
| #17860 | Remove out of sync system message | |
| #17879 | License checker claims invalid license is valid | |
| #17890 | Grid.setColumns throws non-descriptive error | |
| #17895 | Drag selection fails with multiple Grids on the same page | |
| #17915 | PopupDateField shows no popup button in IE8 when used in Grid editor row | |
| #17935 | Internal Error when trying to open editor and no converter can be found for a type | |
| #17948 | Links to resources with Å or å in file name won't work | |
| #17960 | Debug window should have an icon for retrieving a given component hierarchy as a declarative design | |
| #17970 | DesignResourceConverter formats/parses font icon codepoints incorrectly | |
| #17982 | TabSheet declarative does not support the tabsVisible setting. | |
| #17986 | Grid client-side events are hard to use | |
| #18000 | Grid with all cols hidden throws exception | |
| #18003 | Grid extensions could use some helper functions for getting items and columns | |
| #18011 | Grid uses new instead of GWT.create in multiple parts of its client-side | |
| #18015 | Update loading indicators | |
| #18019 | Improve error handling when adding columns | |
| #18021 | Grid editor should set a class name for cells that are not editable | |
| #18027 | PopUpDateField does not clear Input-Prompt on getting focus | |
| #18028 | Column hiding UI does not use caption set using Column.setHeaderCaption | |
| #18030 | Hiding not-last column in the Grid causes IndexOutOfBoundsException on the client | |
| #18039 | JsonEncoder encodes all numeric types as strings | |
| #18040 | Redundant copying of RPC parameters values in ServerRpcManager.applyInvocation | |
| #18043 | FreeformQuery with 'Group By' Statement Throws SqlException when no results found | |
| #18054 | Focus the field in the the active cell when manually opening Grid editor | |
| Priority | #18068 | GridLayout: removing column does not remove expand ratio |
| #18069 | Refreshing the page when using Tomcat and long polling or streaming can cause a static resource not to be loaded | |
| #18102 | Non-immediate checkbox contacts server upon click | |
| #18103 | Cells are empty after hiding and showing column | |
| #18111 | Hidden column UI should hide when clicking out | |
| #18120 | Grid sidebar classname should be "open" not "opened" | |
| #18152 | ImageRenderer incorrectly handles null Resource | |
| #18166 | GridLayout: removing row does not remove expand ratio | |
| #18168 | Fix GAE tests . They do not work since 21-05-2015. | |
| #18181 | WidgetUtil.getRequiredWidthComputedStyle is broken in multiple ways | |
| Priority | #18192 | Slider always has value max-int when using double-max thresholds bigger than max-int |
| #18229 | MarginInfo not correctly set for declerative layout | |
| #18234 | Drag and drop columns in chrome 43 after grid size change fails | |
| #18236 | Chameleon theme Search-styled ComboBox width is not stable in Firefox | |
| #18238 | GridLayout declarative format does not support margins | |
| Vote | Enhancements Vaadin support users have voted for | |
| Priority | Defects 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.5
Vaadin 7.5 includes many major and minor enhancements. Below is a list of the most notable changes:
- Column reordering using drag and drop in Grid
- Column hiding in Grid
- Row details support in Grid
- JSR 356 WebSocket support has been refactored to improve compatibility with Wildfly and WebLogic
For enhancements introduced in Vaadin 7.4, see the Release Notes for Vaadin 7.4.0.
Incompatible or Behavior-altering Changes in 7.5
- The push path has been changed from /PUSH/ to /PUSH to be compatible with JSR 356.
- Widgetset files and other pre-compressed resources are sent as gzip to compatible browsers. This may interfere with custom response compression solutions that do not respect the Content-Encoding response header.
Known Issues and Limitations
- Drag'n'drop in a Table doesn't work on touch devices running Internet Explorer (Windows Phone, Surface) (#13737)
It is currently not possible to specify font-size as em or %, or layout component sizes with em (#10634).
This does not apply to Valo, but using em sizes to size layouts is discouraged, because it results in fractional component 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:- HTTP proxies can prevent push requests from working properly. To mitigate the issues, avoid using streaming and configure your proxy so it allows response headers to pass through before the whole response is received. #17075 should make long-polling work seamlessly with all proxies.
- HTTP session can not be invalidated while using push over websockets on Tomcat 7 (#11721)
- Cookies are not available while using websockets (#11808)
- Push is currently not supported in portals (See #11493)
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:
- If using Maven, define it as a dependency or use any of the available archetypes (only vaadin-application is available for Vaadin 7 at the time of this release) to create a new project
- If using Eclipse, use the Vaadin Plugin for Eclipse, which automatically downloads the Vaadin libraries.
It is also available as a ZIP package downloadable from 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
- Built-in themes (vaadin-themes)
- Dependency libraries provided under the lib/ folder
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.5.0.rc1 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.5
When upgrading from an earlier Vaadin version, you must:
- Recompile your classes using the new Vaadin version. Binary compatibility is only guaranteed for maintenance releases of Vaadin.
- Unless using the precompiled widget set, recompile your widget set using the new Vaadin 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. 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
Notes and Limitations for Google App Engine
The following instructions and limitations apply when you run a Vaadin application under the Google App Engine.
-
Applications must use GAEVaadinServlet instead of VaadinServlet in web.xml .
-
Session support must be enabled in appengine-web.xml :
<sessions-enabled>true</sessions-enabled>
-
Avoid using the session for storage, usual App Engine limitations apply (no synchronization, that is, unreliable).
-
Vaadin uses memcache for mutex, the key is of the form _vmutex<sessionid> .
-
The Vaadin VaadinSession class is serialized separately into memcache and datastore; the memcache key is _vac<sessionid> and the datastore entity kind is _vac with identifiers of the type _vac<sessionid> .
-
DO NOT update application state when serving an ConnectorResource (such as ClassResource.getStream()).
-
The application remains locked during uploads - a progress bar is not possible
For other known problems, see open tickets at developer site dev.vaadin.com.
Supported Technologies
Vaadin 7 is compatible with Java 6 and newer. Vaadin 7 is especially supported on the following operating systems:
- Windows
- Linux
- Mac OS X
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:
- Apache Tomcat 5-8
- Apache TomEE 1
- Oracle WebLogic Server 10.3-12
- IBM WebSphere Application Server 7-8
- JBoss Application Server 4-7
- Wildfly 8
- Jetty 5-9
- Glassfish 2-4
Vaadin 7 supports the JSR-286 Portlet specification and all portals that implement the specification should work. The following portals are supported:
- Liferay Portal 5.2-6
- GateIn Portal 3
- eXo Platform 3
- IBM WebSphere Portal 8
Vaadin also supports Google App Engine.
Vaadin 7.5.0.rc1 supports the following desktop browsers:
- Mozilla Firefox 18-38
- Mozilla Firefox 17 ESR, 24 ESR, 31 ESR, 38 ESR
- Internet Explorer 8-11
- Safari 6-8
- Opera 16-29
- Google Chrome 23-42
Additionally, Vaadin supports the built-in browsers in the following mobile operating systems:
- iOS 5-8
- Android 2.3-5
- Windows Phone 8
Vaadin SQL Container supports the following databases:
- HSQLDB
- MySQL
- MSSQL
- Oracle
- PostgreSQL
Vaadin on the Web
- vaadin.com - The developer portal containing everything you need to know about Vaadin
- vaadin.com/demo - A collection of demos for Vaadin
- vaadin.com/learn - Getting started with Vaadin
- vaadin.com/forum - Forums for Vaadin related discussions
- vaadin.com/book - Book of Vaadin - everything you need to know about Vaadin
- vaadin.com/api - Online javadocs
- vaadin.com/directory - Add-ons for Vaadin
- vaadin.com/pro-tools - Commercial tools for Vaadin development
- vaadin.com/support - Commercial support for Vaadin development
- vaadin.com/services - Expert services for Vaadin
- vaadin.com/company - Information about the company behind Vaadin
- dev.vaadin.com - Bug tracker
- How to get the source code of Vaadin