The test automation application for Asset Control that I am currently working on uses Vaadin for its GUI. I started development with version 13. Just recently Vaadin 14 (LTS) has been released and initially I just used the compatibility mode to move to version 14 without making any actual changes.

Of course, that was only temporary.

Today I upgraded properly following Vaadin’s migration guide.

There is one thing that I ran into. And I am totally at fault. So, should anyone else try to migrate to Vaadin 14 and they use the Spring Boot setup with embedded Tomcat and get an error that Tomcat cannot be started, let me tell you to check your spring-boot-starter-parent version and ensure you are on 2.1.0.RELEASE or above. I wasn’t! And using the correct version fixed the Tomcat problem for me.

To Vaadin’s credit they do mention this in the migration guide. Just make sure to follow it.

Addendum

I should also say that I am using GitLab for source control and CI/CD of that same project. With the move to Vaadin 14 comes the requirement for having Nodejs/npm.

My original .gitlab-ci.yml was making use of the docker image maven:3.3.9-jdk-8 for its runner, but now I needed an alternative with both maven and npm. My solution was to use https://github.com/cschockaert/docker-npm-maven. Kudos!

And my .gitlab-ci.yml now looks like this:

image: cschockaert/docker-npm-maven:latest

stages:
  - build
  - test

variables:
  MAVEN_CLI_OPTS: "--batch-mode"
  MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"

cache:
  paths:
    - .m2/repository/
    - target/

build:
  stage: build
  script:
    - mvn $MAVEN_CLI_OPTS compile

test:
  stage: test
  script:
    - mvn $MAVEN_CLI_OPTS test