ActiveViam is upgrading version 6.0 of Atoti Server from Spring Boot 2 to Spring Boot 3 to address common vulnerabilities and exposure (CVEs) and to be in line with Spring long-term support.
While migrating to Spring Boot 3 offers better support to our clients, longer stability and is attractive for the new features it offers, it comes with some challenges for the technical teams behind every Atoti project. To help those who choose to migrate to this version, we explain some of the common challenges below.
Spring Boot 3 specific updates
Some of the changes required are specific to differences between Spring Boot 3 and Spring Boot 2.
Spring Boot 3 requires Java 17; projects must now compile using JDK 17, compared to JDK 11 before. While most projects should be capable of this, some external libraries do not support this new language version yet.
Additionally, Spring Boot 3 comes with new dependencies. The ownership of javax
has been transferred to Jakarta EE
, a new project managed by the Eclipse Foundation. This requires a lot of dependency and import migrations, from a simple search-and-replace of javax
by jakarta
to finding the updated code patterns. And javax
provided a wide set of components: code annotations for quality, XML parsing, persistence in database with Java and servlet implementations. In addition to this large renaming, several packages have taken the opportunity to rename as well. For example Hibernate, changing to hibernate.orm
.
The third challenge is the migration of Spring framework itself, like new patterns for defining the security of REST endpoints.
Atoti Server specific updates
There are two changes driven from the Atoti Server side.
As part of Atoti Server 6.0, we provided built-in support for tracing through Spring Cloud Sleuth. This wrapper disappeared in Spring Boot 3, so we took this as an opportunity to migrate to OpenTelemetry. While this change should be transparent, it requires a change of configuration when setting up project options for tracing.
The second element is the drop of support for Remote Invocation in Spring 6. While the core config exposing services like the ConfigurationService or the QueriesServices has been removed, the services remain and can be used. They are simply not exposed as web services anymore. We encourage users to migrate to Atoti Server REST and WebSocket services instead.