From 8bd92c97083f3a14b226d409c8647d63afa6d6ab Mon Sep 17 00:00:00 2001
From: =?utf8?q?Pekka=20Hyv=C3=B6nen?=
Date: Fri, 9 Dec 2016 09:57:14 +0200
Subject: [PATCH] Add list of breaking changes in FW8 to release notes (#102)
* Add list of breaking changes in FW8 to release notes
Fixes vaadin/framework8-issues#226
---
all/src/main/templates/release-notes.html | 120 +++++++++++++++++++---
1 file changed, 108 insertions(+), 12 deletions(-)
diff --git a/all/src/main/templates/release-notes.html b/all/src/main/templates/release-notes.html
index 13e71ff9d8..99f41b2c91 100644
--- a/all/src/main/templates/release-notes.html
+++ b/all/src/main/templates/release-notes.html
@@ -103,21 +103,117 @@
Notes for Vaadin 7.7.0.
- Incompatible or Behavior-altering Changes in @version-minor@
-
+ Incompatible or Behavior-altering Changes in @version-major@
+
+ Compatibility and requirements
- Vaadin now requires Java 8 or later and Servlet 3.0 or later
- Support for older browsers (including Microsoft IE 8-10) and Windows Phone has been dropped
- - A new data binding API replaces the old API (including Container, Item, Property, FieldGroup, Validator, Converter and components using those).
- - The default width of Label is now undefined, matching other components
- - Immediate mode is the default for all components except Upload
- - Some deprecated/obsolete parts of API (including the Form component) have been removed
- - Most addListener/removeListener methods have been removed - use the Java 8 friendly addClickListener(), addValueChangeListener() etc. instead
- - Many new listeners are unregistered using a Registration object returned by addXyzListener() rather than with a separate removeXyzListener()
- - Old input prompts have been replaced with placeholders utilizing the related browser functionality
+ - Supported servers
+
+ New Data Binding API related changes
+ - Components using Property, Item or Container API have been reimplemented for the new API, except Tree, Table, TreeTable and Calendar
+ - Vaadin 7 versions of the components available in the v7 compatibility package for easier migration, see list of legacy components
+ - Binder is the replacement of FieldGroup, and similarly BeanBinder is the replacement of BeanFieldGroup
+ - Converters and Validators have been moved from Components to Binder
+ - DataProvider is the replacement of Container
+
+ - ListDataProvider is the default in-memory data provider replacing IndexedContainer, BeanItemContainer, and BeanContainer
+ - BackEndDataProvider is the basis for a lazy data provider
+ - SQLContainer is deprecated in v7 compatibility package and not directly replaced
+ - HierarchicalContainer is deprecated in v7 compatibility package and a replacement is planned for 8.1
+
+ - All components that list data are based on Listing / AbstractListing
+ - All Listing components have been typed with the type of items they are listing
+ - HasValue replaces the Field interface as the basis for all field components
+ - Field components based on HasValue may or may not accept null values, depending on each component. There is no setNullRepresentation anymore
+ - AbstractField::setRequired(boolean) has been replaced with:
+
+ - HasValue::setRequiredIndicatorVisible(boolean) which only makes the * required indicator visible for the component
+ - BindingBuilder::setRequired(String) adds a "not-empty" validator when used in Binder and makes the * required indicator visible
+
+ - setItemCaptionGenerator in AbstractListing replaces setItemCaption, setItemCaptionMode and setItemCaptionPropertyId from AbstractSelect
+ - setItemIconGenerator in AbstractListing replaces setItemIcon and setItemIconPropertyId from AbstractSelect
+
+ General API changes
+ - All components are now immediate, and AbstractComponent::setImmediate(boolean immediate) has been removed.
+ - Read-only is now a feature for field components and has been moved from AbstractComponent to HasValue
+ - Some deprecated/obsolete parts of API have been removed
+ - All addListener/removeListener methods have been removed - replaced with the Java 8 friendly addClickListener(), addValueChangeListener() etc. instead
+ - All new listeners are unregistered using a Registration object returned by addXyzListener() rather than with a separate removeXyzListener()
+ - Input prompts have been replaced with placeholders utilizing the related browser functionality, API is now setPlaceHolder instead of setInputPrompt
+ - Valo is the default theme, instead of Reindeer
+ - Valo is the only included theme, all other themes have been moved to the compatiblity-themes package and are available as a separate dependency
+ - SharedState and the getter methods for it have been added to each component, regardless of whether those are used for anything or not
- The old liferay theme (Liferay 6.0 look) has been removed
- - Components in the compatibility packages now use the prefix "vaadin7-" in declarative design files
- - RichTextArea no longer receives a special "v-richtextarea-readonly" class when readonly, only the standard "v-readonly" class
+ Component specific API changes
+ - DateField replaces old PopupDateField
+ - DateField and InlineDateField are now based on Java 8 LocalDate instead of Date
+ - DateField and InlineDateField don't support time anymore, meaning the highest resolution for those is Resolution.DAY
+ - OptionGroup has been removed and replaced by:
+
+ - CheckBoxGroup replaces OptionGroup in multiselect mode
+ - RadioButtonGroup replaces OptionGroup in single select mode
+ OptionGroup::setItemEnabled(Object, boolean) has been replaced by setItemEnabledProvider that accepts a predicate
+
+ - TwinColSelect is always in multiselect mode
+ - ListSelect is always in multiselect mode
+ - Upload has a separate immediate mode setImmediateMode(boolean immediateMode) replacing removed setImmediate
+ - RichTextArea no longer receives a special "v-richtextarea-readonly" class when readonly, only the standard "v-readonly" class
+ - Grid has been typed to the bean type it is using and its columns are specified with a value provider callback instead of "propertyId"
+ - Grid Editor now uses Binder instead of FieldGroup, and doesn't support a FieldFactory
+ - Grid selection API has been removed from component level to GridSelectionModel which is available via Grid::getSelectionModel()
+ - Grid::setSelectionModel(GridSelectionModel) visibility has been changed from public to protected to reduce confusion with Grid::setSelectionMode
+
+ Component specific visual changes
+ - The default width of Label is now undefined, matching other components
+ - The default width for ComboBox pop-up is now 100 % (previously undefined)
+ - NOT YET INCLUDED: VerticalLayout has by default spacing = true and margin = true
+ - NOT YET INCLUDED: HorizontalLayout has by default spacing = true and margin = false
+
+ Component specific declarative syntax changes
+ - Components in the compatibility packages now use the prefix vaadin7-" in declarative design files
+ - required-indicator-visible attribute replaces the required attribute
+ - placeholder attribute replaces the input-prompt attribute for input components
+ - multi-select attribute is no longer used for select components
+ - v-option-group with attribute multi-select=true is replaced by v-check-box-group
+ - v-option-group with attribute multi-select=false is replaced by v-radio-button-group
+ - immediate attribute is not used for any component
+ - read-only attribute is now only used for field components instead of all components
+ - v-upload has a new attribute immediate-mode that replaces the removed immediate attribue
+
+ Legacy components in the v7 compatiblity package com.vaadin.v7.ui available as a separate dependency
+ - Calendar - no replacement in 8
+ - CheckBox
+ - ColorPicker
+ - ColorPickerArea
+ - ComboBox
+ - CustomField
+ - DateField - the replacing 8 version does not support selecting time
+ - Form - no replacement in 8
+ - Grid (and renderers)
+ - HorizontalLayout
+ - InlineDateField - the replacing 8 version does not support selecting time
+ - Label
+ - ListSelect
+ - NativeSelect
+ - OptionGroup - replaced by CheckBoxGroup (multiselection) and RadioButtonGroup (single selection)
+ - PasswordField
+ - PopupDateField - replaced by partly by DateField, but doesn't allow selecting time
+ - ProgressBar
+ - ProgressIndicator
+ - RichTextArea
+ - Select - removed, use ComboBox for single selection and ListSelect for multiselection
+ - Table - no replacement in 8.0, use Grid.
+ - TextArea
+ - TextField
+ - Tree - no replacement in 8.0, planned for 8.1
+ - TreeTable - no replacement in 8.0, TreeGrid planned for 8.1
+ - TwinColSelect
+ - VerticalLayout
+ - Upload
+
+
Known Issues and Limitations
- Context click events are not generated on iOS devices
@@ -368,7 +464,7 @@
following application servers are supported:
-
+
- Apache Tomcat 7-8
- Apache TomEE 1.7 and 7.0
- Oracle WebLogic Server 12.2
--
2.39.5