mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-12-27 09:27:27 +00:00
Upgrade to Spring Boot 4.0.0
Signed-off-by: Patrick Baumgartner <contact@patbaumgartner.com>
This commit is contained in:
parent
b5a630b199
commit
37d53152a0
12 changed files with 24 additions and 27 deletions
|
|
@ -60,13 +60,13 @@ A similar setup is provided for MySQL and PostgreSQL if a persistent database co
|
||||||
You can start MySQL or PostgreSQL locally with whatever installer works for your OS or use docker:
|
You can start MySQL or PostgreSQL locally with whatever installer works for your OS or use docker:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -e MYSQL_USER=petclinic -e MYSQL_PASSWORD=petclinic -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=petclinic -p 3306:3306 mysql:9.2
|
docker run -e MYSQL_USER=petclinic -e MYSQL_PASSWORD=petclinic -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=petclinic -p 3306:3306 mysql:9.5
|
||||||
```
|
```
|
||||||
|
|
||||||
or
|
or
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -e POSTGRES_USER=petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 postgres:18.0
|
docker run -e POSTGRES_USER=petclinic -e POSTGRES_PASSWORD=petclinic -e POSTGRES_DB=petclinic -p 5432:5432 postgres:18.1
|
||||||
```
|
```
|
||||||
|
|
||||||
Further documentation is provided for [MySQL](https://github.com/spring-projects/spring-petclinic/blob/main/src/main/resources/db/mysql/petclinic_db_setup_mysql.txt)
|
Further documentation is provided for [MySQL](https://github.com/spring-projects/spring-petclinic/blob/main/src/main/resources/db/mysql/petclinic_db_setup_mysql.txt)
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
plugins {
|
plugins {
|
||||||
id 'java'
|
id 'java'
|
||||||
id 'checkstyle'
|
id 'checkstyle'
|
||||||
id 'org.springframework.boot' version '4.0.0-RC2'
|
id 'org.springframework.boot' version '4.0.0'
|
||||||
id 'io.spring.dependency-management' version '1.1.7'
|
id 'io.spring.dependency-management' version '1.1.7'
|
||||||
id 'org.graalvm.buildtools.native' version '0.11.1'
|
id 'org.graalvm.buildtools.native' version '0.11.1'
|
||||||
id 'org.cyclonedx.bom' version '3.0.0'
|
id 'org.cyclonedx.bom' version '3.0.2'
|
||||||
id 'io.spring.javaformat' version '0.0.47'
|
id 'io.spring.javaformat' version '0.0.47'
|
||||||
id "io.spring.nohttp" version "0.0.11"
|
id "io.spring.nohttp" version "0.0.11"
|
||||||
id 'net.ltgt.errorprone' version '4.3.0'
|
id 'net.ltgt.errorprone' version '4.3.0'
|
||||||
|
|
@ -25,9 +25,9 @@ repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
|
||||||
ext.checkstyleVersion = "11.1.0"
|
ext.checkstyleVersion = "12.1.2"
|
||||||
ext.springJavaformatCheckstyleVersion = "0.0.47"
|
ext.springJavaformatCheckstyleVersion = "0.0.47"
|
||||||
ext.webjarsLocatorLiteVersion = "1.1.1"
|
ext.webjarsLocatorLiteVersion = "1.1.2"
|
||||||
ext.webjarsFontawesomeVersion = "4.7.0"
|
ext.webjarsFontawesomeVersion = "4.7.0"
|
||||||
ext.webjarsBootstrapVersion = "5.3.8"
|
ext.webjarsBootstrapVersion = "5.3.8"
|
||||||
ext.errorProneVersion = "2.42.0"
|
ext.errorProneVersion = "2.42.0"
|
||||||
|
|
@ -78,7 +78,6 @@ checkstyleNohttp {
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.withType(JavaCompile).configureEach {
|
tasks.withType(JavaCompile).configureEach {
|
||||||
options.release = 17
|
|
||||||
options.errorprone {
|
options.errorprone {
|
||||||
disableAllChecks = true
|
disableAllChecks = true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
services:
|
services:
|
||||||
mysql:
|
mysql:
|
||||||
image: mysql:9.2
|
image: mysql:9.5
|
||||||
ports:
|
ports:
|
||||||
- "3306:3306"
|
- "3306:3306"
|
||||||
environment:
|
environment:
|
||||||
|
|
@ -12,7 +12,7 @@ services:
|
||||||
volumes:
|
volumes:
|
||||||
- "./conf.d:/etc/mysql/conf.d:ro"
|
- "./conf.d:/etc/mysql/conf.d:ro"
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:18.0
|
image: postgres:18.1
|
||||||
ports:
|
ports:
|
||||||
- "5432:5432"
|
- "5432:5432"
|
||||||
environment:
|
environment:
|
||||||
|
|
|
||||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
|
@ -1,6 +1,6 @@
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip
|
||||||
networkTimeout=10000
|
networkTimeout=10000
|
||||||
validateDistributionUrl=true
|
validateDistributionUrl=true
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ spec:
|
||||||
app: demo-db
|
app: demo-db
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- image: postgres:18.0
|
- image: postgres:18.1
|
||||||
name: postgresql
|
name: postgresql
|
||||||
env:
|
env:
|
||||||
- name: POSTGRES_USER
|
- name: POSTGRES_USER
|
||||||
|
|
|
||||||
2
mvnw
vendored
2
mvnw
vendored
|
|
@ -185,7 +185,7 @@ fi
|
||||||
__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR=''
|
__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR=''
|
||||||
[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v
|
[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v
|
||||||
|
|
||||||
# normalize https auth
|
# normalize http auth
|
||||||
case "${MVNW_PASSWORD:+has-password}" in
|
case "${MVNW_PASSWORD:+has-password}" in
|
||||||
'') MVNW_USERNAME='' MVNW_PASSWORD='' ;;
|
'') MVNW_USERNAME='' MVNW_PASSWORD='' ;;
|
||||||
has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;;
|
has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;;
|
||||||
|
|
|
||||||
13
pom.xml
13
pom.xml
|
|
@ -5,7 +5,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-parent</artifactId>
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
<version>4.0.0-RC2</version>
|
<version>4.0.0</version>
|
||||||
<relativePath></relativePath>
|
<relativePath></relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
@ -19,20 +19,19 @@
|
||||||
|
|
||||||
<!-- Generic properties -->
|
<!-- Generic properties -->
|
||||||
<java.version>25</java.version>
|
<java.version>25</java.version>
|
||||||
<maven.compiler.release>17</maven.compiler.release>
|
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
<!-- Important for reproducible builds. Update using e.g. ./mvnw versions:set -DnewVersion=... -->
|
<!-- Important for reproducible builds. Update using e.g. ./mvnw versions:set -DnewVersion=... -->
|
||||||
<project.build.outputTimestamp>2024-11-28T14:37:52Z</project.build.outputTimestamp>
|
<project.build.outputTimestamp>2025-11-22T16:15:42Z</project.build.outputTimestamp>
|
||||||
|
|
||||||
<!-- Web dependencies -->
|
<!-- Web dependencies -->
|
||||||
<webjars-locator.version>1.1.1</webjars-locator.version>
|
<webjars-locator.version>1.1.2</webjars-locator.version>
|
||||||
<webjars-bootstrap.version>5.3.8</webjars-bootstrap.version>
|
<webjars-bootstrap.version>5.3.8</webjars-bootstrap.version>
|
||||||
<webjars-font-awesome.version>4.7.0</webjars-font-awesome.version>
|
<webjars-font-awesome.version>4.7.0</webjars-font-awesome.version>
|
||||||
|
|
||||||
<checkstyle.version>11.1.0</checkstyle.version>
|
<checkstyle.version>12.1.2</checkstyle.version>
|
||||||
<error-prone.version>2.42.0</error-prone.version>
|
<error-prone.version>2.42.0</error-prone.version>
|
||||||
<jacoco.version>0.8.13</jacoco.version>
|
<jacoco.version>0.8.14</jacoco.version>
|
||||||
<libsass.version>0.3.4</libsass.version>
|
<libsass.version>0.3.4</libsass.version>
|
||||||
<lifecycle-mapping>1.0.0</lifecycle-mapping>
|
<lifecycle-mapping>1.0.0</lifecycle-mapping>
|
||||||
<maven-checkstyle.version>3.6.0</maven-checkstyle.version>
|
<maven-checkstyle.version>3.6.0</maven-checkstyle.version>
|
||||||
|
|
@ -290,10 +289,10 @@
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>default-compile</id>
|
<id>default-compile</id>
|
||||||
<phase>compile</phase>
|
|
||||||
<goals>
|
<goals>
|
||||||
<goal>compile</goal>
|
<goal>compile</goal>
|
||||||
</goals>
|
</goals>
|
||||||
|
<phase>compile</phase>
|
||||||
<configuration>
|
<configuration>
|
||||||
<compilerArgs>
|
<compilerArgs>
|
||||||
<arg>-XDcompilePolicy=simple</arg>
|
<arg>-XDcompilePolicy=simple</arg>
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,6 @@ package org.springframework.samples.petclinic.owner;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import jakarta.annotation.Nonnull;
|
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
|
||||||
|
|
@ -33,9 +33,9 @@ import org.springframework.samples.petclinic.vet.VetRepository;
|
||||||
import org.springframework.test.context.ActiveProfiles;
|
import org.springframework.test.context.ActiveProfiles;
|
||||||
import org.springframework.test.context.aot.DisabledInAotMode;
|
import org.springframework.test.context.aot.DisabledInAotMode;
|
||||||
import org.springframework.web.client.RestTemplate;
|
import org.springframework.web.client.RestTemplate;
|
||||||
import org.testcontainers.containers.MySQLContainer;
|
|
||||||
import org.testcontainers.junit.jupiter.Container;
|
import org.testcontainers.junit.jupiter.Container;
|
||||||
import org.testcontainers.junit.jupiter.Testcontainers;
|
import org.testcontainers.junit.jupiter.Testcontainers;
|
||||||
|
import org.testcontainers.mysql.MySQLContainer;
|
||||||
import org.testcontainers.utility.DockerImageName;
|
import org.testcontainers.utility.DockerImageName;
|
||||||
|
|
||||||
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
|
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
|
||||||
|
|
@ -47,7 +47,7 @@ class MySqlIntegrationTests {
|
||||||
|
|
||||||
@ServiceConnection
|
@ServiceConnection
|
||||||
@Container
|
@Container
|
||||||
static MySQLContainer<?> container = new MySQLContainer<>(DockerImageName.parse("mysql:9.2"));
|
static MySQLContainer container = new MySQLContainer(DockerImageName.parse("mysql:9.5"));
|
||||||
|
|
||||||
@LocalServerPort
|
@LocalServerPort
|
||||||
int port;
|
int port;
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ import org.springframework.boot.testcontainers.service.connection.ServiceConnect
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Profile;
|
import org.springframework.context.annotation.Profile;
|
||||||
import org.testcontainers.containers.MySQLContainer;
|
import org.testcontainers.mysql.MySQLContainer;
|
||||||
import org.testcontainers.utility.DockerImageName;
|
import org.testcontainers.utility.DockerImageName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -35,8 +35,8 @@ public class MysqlTestApplication {
|
||||||
@ServiceConnection
|
@ServiceConnection
|
||||||
@Profile("mysql")
|
@Profile("mysql")
|
||||||
@Bean
|
@Bean
|
||||||
static MySQLContainer<?> container() {
|
static MySQLContainer container() {
|
||||||
return new MySQLContainer<>(DockerImageName.parse("mysql:9.2"));
|
return new MySQLContainer(DockerImageName.parse("mysql:9.5"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
|
||||||
|
|
@ -31,9 +31,9 @@ import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.samples.petclinic.owner.Owner;
|
import org.springframework.samples.petclinic.owner.Owner;
|
||||||
import org.springframework.samples.petclinic.owner.OwnerRepository;
|
import org.springframework.samples.petclinic.owner.OwnerRepository;
|
||||||
import org.springframework.samples.petclinic.owner.PetTypeRepository;
|
|
||||||
import org.springframework.samples.petclinic.owner.Pet;
|
import org.springframework.samples.petclinic.owner.Pet;
|
||||||
import org.springframework.samples.petclinic.owner.PetType;
|
import org.springframework.samples.petclinic.owner.PetType;
|
||||||
|
import org.springframework.samples.petclinic.owner.PetTypeRepository;
|
||||||
import org.springframework.samples.petclinic.owner.Visit;
|
import org.springframework.samples.petclinic.owner.Visit;
|
||||||
import org.springframework.samples.petclinic.vet.Vet;
|
import org.springframework.samples.petclinic.vet.Vet;
|
||||||
import org.springframework.samples.petclinic.vet.VetRepository;
|
import org.springframework.samples.petclinic.vet.VetRepository;
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ import org.springframework.http.ResponseEntity;
|
||||||
*/
|
*/
|
||||||
// NOT Waiting https://github.com/spring-projects/spring-boot/issues/5574
|
// NOT Waiting https://github.com/spring-projects/spring-boot/issues/5574
|
||||||
@SpringBootTest(webEnvironment = RANDOM_PORT,
|
@SpringBootTest(webEnvironment = RANDOM_PORT,
|
||||||
properties = { "server.error.include-message=ALWAYS", "management.endpoints.access.default=none" })
|
properties = { "spring.web.error.include-message=ALWAYS", "management.endpoints.access.default=none" })
|
||||||
@AutoConfigureTestRestTemplate
|
@AutoConfigureTestRestTemplate
|
||||||
class CrashControllerIntegrationTests {
|
class CrashControllerIntegrationTests {
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue