Siguiendo esta guía de migración: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide
La versión mínima de Spring Boot para Java 21 es 3.2.
Se irá completando esta guía con las cosas que nos afecten.
Revisar las dependencias de cada proyecto y ver que sean compatibles con spring boot 3.2.x y Java 21. Versiones que provee Spring Boot 3.0: https://docs.spring.io/spring-boot/docs/3.0.x/reference/html/dependency-versions.html#appendix.dependency-versions.properties.
Revisando el parent fundewebjs-api-parent, veo estas versiones:
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <resource.delimiter>@</resource.delimiter> <spring-boot.version>2.7.18</spring-boot.version> <spring-cloud.version>2021.0.9</spring-cloud.version> <spring-security.version>5.7.7</spring-security.version> <fundewebjs-starter.version>1.0.4</fundewebjs-starter.version> <fundewebjs-dependencies.version>[1.0.8,1.9.99]</fundewebjs-dependencies.version> <sonar.qualitygate.wait>true</sonar.qualitygate.wait> <jacoco.version>0.8.12</jacoco.version> <hibernate.version>5.6.15.Final</hibernate.version> <maven-antrun-plugin.version>3.0.0</maven-antrun-plugin.version> <maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version> <maven-clean-plugin.version>3.2.0</maven-clean-plugin.version> <maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version> <maven-dependency-plugin.version>3.3.0</maven-dependency-plugin.version> <maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version> <maven-enforcer-plugin.version>3.0.0</maven-enforcer-plugin.version> <maven-failsafe-plugin.version>2.22.2</maven-failsafe-plugin.version> <maven-help-plugin.version>3.2.0</maven-help-plugin.version> <maven-install-plugin.version>2.5.2</maven-install-plugin.version> <maven-invoker-plugin.version>3.2.2</maven-invoker-plugin.version> <maven-jar-plugin.version>3.2.2</maven-jar-plugin.version> <maven-javadoc-plugin.version>3.4.1</maven-javadoc-plugin.version> <maven-resources-plugin.version>3.2.0</maven-resources-plugin.version> <maven-shade-plugin.version>3.3.0</maven-shade-plugin.version> <maven-source-plugin.version>3.2.1</maven-source-plugin.version> <maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version> <maven-war-plugin.version>3.3.2</maven-war-plugin.version> |
En fundewebjs-starter:
<java.version>1.8</java.version> <spring-cloud.version>2021.0.6</spring-cloud.version> <springdoc.version>1.6.13</springdoc.version> <jjwt.version>0.9.1</jjwt.version> <jdbc-driver.version>12.2.0.1.0</jdbc-driver.version> <fundewebjs-dependencies.version>[1.0.8,1.9.99]</fundewebjs-dependencies.version> |
En fundewebjs-dependencies:
<java.version>1.8</java.version>
<fdwjs.version>${project.version}</fdwjs.version>
<spring-boot.version>2.7.12</spring-boot.version>
<spring-cloud.version>2021.0.6</spring-cloud.version>
<spring-security.version>5.2.4.RELEASE</spring-security.version>
<jjwt.version>0.9.1</jjwt.version>
<lombok.version>1.18.12</lombok.version>
<commons-io.version>2.6</commons-io.version>
<micrometer.version>1.9.8</micrometer.version>
<commons.lang3.version>3.12.0</commons.lang3.version>
<log4j2.version>2.17.2</log4j2.version>
<jul2slf4j.version>1.7.35</jul2slf4j.version>
<hibernate-validator.version>5.1.0.Final</hibernate-validator.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<encoding>UTF-8</encoding>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
De estas versiones, habrá que actualizar las siguientes:
Pendiente de revisar todas las versiones y actualizaciones necesarias |
Revisar qué clases, métodos y properties han quedado deprecated.
Para las properties que se han quitado o renombrado, se puede añadir la siguiente dependencia:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-properties-migrator</artifactId> <scope>runtime</scope> </dependency> |
Esta imprimirá un diagnóstico al inicio y migrará temporalmente las properties en tiempo de ejecución por ti. Esto es, lo usaremos para ver el diagnóstico si tenemos properties deprecated, pero no lo utilizaremos como parche.