...
- Update to your latest minor release version first before upgrade to recent major release. For example as of May 2017, a customer would like to upgrade from 5.4.1 to 5.5.4 (latest release at that time), then the correct sequence would be 5.4.8 → 5.4.12 → 5.5.4 instead of 5.4.8 → 5.5 → 5.5.3.
- Carefully look for "change" or "changes for ..." sections in the Release notes since that changes is necessary in this specific case when you are updating from 5.4.1 solely.
- Because upgrading process takes time and vulnerable to incidents, please minimize the risk by clean up your system, remove unused data, reindex everything and do a full backup first.
Specific points
BOM
2DO
Vaadin
Ugrading from Vaadin 7 to Vaadin 8
...
Vaadin
Ugrading from Vaadin 7 to Vaadin 8
Vaadin 8 in Magnolia 5.6.x
- Magnolia 5.6.x begins with Vaadin 8.1.5
- Vaadin Framework 8.1.5 is a maintenance release that includes a number of bug fixes.
- Vaadin 8.1.5 RNs: https://vaadin.com/download/release/8.1/8.1.5/release-notes.html
Vaadin 8.1.5 DOCS: https://vaadin.com/download/release/8.1/8.1.5/docs/api/
Expand |
---|
title | Main 8.1 (8.0.0) enhancements (features) |
---|
|
- (8.1) Components In Grid
- (8.1) HTML5 Drag and Drop support
- (8.1) TreeGrid, Tree and HierarchicalDataProvider
- (8.1) Improved OSGi Support
- (8.0.0) New, simpler data binding API
- (8.0.0) Vaadin Framework is now based on Java 8
- (8.0.0) Vaadin Framework is using GWT 2.8, allowing client side code to use Java 8
- (8.0.0) Other Framework dependencies including Atmosphere have been upgraded
- (8.0.0) Easier to integrate web components using HTML imports (@HtmlImport) and custom tag name support for AbstractJavaScriptComponent
- (8.0.0) Context click events are now generated on iOS devices
|
- You should check whether and which of your modules contain Vaadin implementations.
- If they do, get the https://github.com/vaadin/framework8-migration-tool .
- Install it locally and run like a Java jar afterwards.
- The script automatically changes the imports of the affected classes and thus – in the majority of cases – will make your module(s) compatible with Vaadin 8.
- As stated on https://vaadin.com/docs/framework/migration/migrating-to-vaadin8.html, some dependencies have to be added in order to use compatible classes from Vaadin 7 (such as
TextField
.)
Change the vaadin-server
dependency from
Mgnl mini code snippet |
---|
|
<dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-server</artifactId> <version>7.7.6</version> </dependency> |
to
Mgnl mini code snippet |
---|
|
<dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-compatibility-server</artifactId> <version>8.0.0</version> </dependency> |
The full list of compatibility packages available for Framework 8:
vaadin-compatibility-server
vaadin-compatibility-client
vaadin-compatibility-client-compiled
vaadin-compatibility-shared
vaadin-compatibility-themes
To be able to use the good new Vaadin 8 features, add also:
Mgnl mini code snippet |
---|
|
<dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-server</artifactId> <version>8.0.0</version> </dependency> |
Normally, you won't need this step since you have a Magnolia running for you. However, in case you are demoing your module as a custom Vaadin application, then you have to include Vaadin7WidgetSet
:
Either annotate the UI class as such with @Widgetset("com.vaadin.v7.Vaadin7WidgetSet"),
or do it in your GW[i]T configuration file by adding <inherits name="com.vaadin.v7.Vaadin7WidgetSet" />
.
The widgetset in EE Pro
If you had EE Pro 5.4.x or previous and are installing EE Pro 5.6: Due to component personalization bringing in new features to the page editor, you must replace the widgetset in the magnolia.properties
file. Either replace or add (depending on the update path):
Code Pro |
---|
magnolia.ui.vaadin.widgetset=info.magnolia.widgetset.MagnoliaProWidgetSet |
Centralized Dependency Management for third-party modules (BOM)
Following the release of Magnolia 5.5.7, Magnolia 5.6.x allows you optionally to define third-party dependencies in a different way. Previously, dependency management information about third-party modules was defined in the parent poms of magnolia.main
and magnolia.ui
. You may now use a software BOM (Bill of materials) project instead. The project can then be imported in all modules. This ensures that the versions of the third-party modules are the same.
To use a BOM in your project, include the following code snippet in the dependency management section of the parent poms and adjust the version number accordingly:
Code Block |
---|
|
<dependencyManagement>
<dependencies>
<dependency>
<groupId>info.magnolia.boms</groupId>
<artifactId>magnolia-external-dependencies</artifactId>
<version>5.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> |
Apache Derby vs H2
The default JCR persistency layer in Magnolia 5.6 is H2, which is reflected in the following setting of the magnolia.repositories.jackrabbit.config
property in the magnolia.properties
file:
...