openrewrite / rewrite-spring

OpenRewrite recipes for Spring projects.
Apache License 2.0
259 stars 77 forks source link

When updating to Spring Boot 3, thymeleaf artifactIds should be updated #318

Closed hetzijzo closed 1 year ago

hetzijzo commented 1 year ago

With Spring Boot 3, some artifactIds for thymeleaf should be updated.

org.thymeleaf:thymeleaf-spring5 -> org.thymeleaf:thymeleaf-spring6 org.thymeleaf.extras:thymeleaf-extras-springsecurity5 -> org.thymeleaf.extras:thymeleaf-extras-springsecurity6

nmck257 commented 1 year ago

late question: does Spring Boot provide dependency management for these deps? If so, are the v5 artifactIds removed from dependency management with SB 3.0?

If all of the above, then we also should add these GAVs as retainVersions arguments on the UpgradeDependencyVersion + UpgradeParentVersion invocations in org.openrewrite.java.spring.boot3.MavenPomUpgrade; otherwise, a project with relevant direct dependencies may get a "no version provided" blip after recipe execution.

timtebeek commented 1 year ago

Thanks for the hint; those dependencies are indeed managed: https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/3.0.5/spring-boot-dependencies-3.0.5.pom

  <thymeleaf.version>3.1.1.RELEASE</thymeleaf.version>
  <thymeleaf-extras-data-attribute.version>2.0.1</thymeleaf-extras-data-attribute.version>
  <thymeleaf-extras-springsecurity.version>3.1.1.RELEASE</thymeleaf-extras-springsecurity.version>
  <thymeleaf-layout-dialect.version>3.1.0</thymeleaf-layout-dialect.version>
...
<dependency>
  <groupId>org.thymeleaf</groupId>
  <artifactId>thymeleaf</artifactId>
  <version>${thymeleaf.version}</version>
</dependency>
<dependency>
  <groupId>org.thymeleaf</groupId>
  <artifactId>thymeleaf-spring6</artifactId>
  <version>${thymeleaf.version}</version>
</dependency>
<dependency>
  <groupId>com.github.mxab.thymeleaf.extras</groupId>
  <artifactId>thymeleaf-extras-data-attribute</artifactId>
  <version>${thymeleaf-extras-data-attribute.version}</version>
</dependency>
<dependency>
  <groupId>org.thymeleaf.extras</groupId>
  <artifactId>thymeleaf-extras-springsecurity6</artifactId>
  <version>${thymeleaf-extras-springsecurity.version}</version>
</dependency>
<dependency>
  <groupId>nz.net.ultraq.thymeleaf</groupId>
  <artifactId>thymeleaf-layout-dialect</artifactId>
  <version>${thymeleaf-layout-dialect.version}</version>
</dependency>
hetzijzo commented 1 year ago

@nmck257 you are absolutely right