Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. 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.
  2. 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.
  3. 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
    titleMain 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


  1. You should check whether and which of your modules contain Vaadin implementations.
  2. If they do, get the https://github.com/vaadin/framework8-migration-tool .
    1. Install it locally and run like a Java jar afterwards.
    2. 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.
  3. 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
    Styleboxed

    <dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-server</artifactId>
    <version>7.7.6</version>
    </dependency>

    to 

    Mgnl mini code snippet
    Styleboxed

    <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

    (lightbulb) To be able to use the good new Vaadin 8 features, add also:

    Mgnl mini code snippet
    Styleboxed

    <dependency>
    <groupId>com.vaadin</groupId>
    <artifactId>vaadin-server</artifactId>
    <version>8.0.0</version>
    </dependency>


  4. (warning) 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 :

    1. Either annotate the UI class as such with @Widgetset("com.vaadin.v7.Vaadin7WidgetSet"),

    2. 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
languagexml
<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:

...