diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index af35096..adc4107 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -31,11 +31,11 @@ jobs:
- name: Check out source
uses: actions/checkout@v4
- - name: Set up Java 17
+ - name: Set up Java 25
uses: actions/setup-java@v4
with:
distribution: temurin
- java-version: "17"
+ java-version: "25"
cache: maven
- name: Build and test
diff --git a/Dockerfile b/Dockerfile
index af91b83..e518d42 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,11 +1,11 @@
-FROM maven:3.9.9-eclipse-temurin-17 AS build
+FROM maven:3.9.9-eclipse-temurin-25 AS build
WORKDIR /workspace
COPY pom.xml .
COPY src ./src
RUN mvn -B -DskipTests package
-FROM eclipse-temurin:17-jre-alpine AS runtime
+FROM eclipse-temurin:25-jre-alpine AS runtime
WORKDIR /app
RUN addgroup -S spring && adduser -S spring -G spring
diff --git a/README.md b/README.md
index 52db31f..b8d0dc5 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,12 @@
# Task Manager API
A Spring Boot REST API for managing tasks, with JWT-based authentication. It uses
-Java 17, Maven, Spring Web, Spring Data JPA, Spring Security, Lombok, and H2 for
+Java 25, Maven, Spring Web, Spring Data JPA, Spring Security, Lombok, and H2 for
local development. Docker Compose runs the application with PostgreSQL.
## Run locally
-With Java 17 and Maven installed, start the application from the project root:
+With Java 25 and Maven installed, start the application from the project root:
```sh
mvn spring-boot:run
diff --git a/pom.xml b/pom.xml
index 778c659..f8e2b89 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
org.springframework.boot
spring-boot-starter-parent
- 3.2.0
+ 3.5.16
@@ -18,7 +18,7 @@
Spring Boot Task Manager API
- 17
+ 25
@@ -59,7 +59,7 @@
org.springdoc
springdoc-openapi-starter-webmvc-ui
- 2.3.0
+ 2.8.17
@@ -72,6 +72,7 @@
org.postgresql
postgresql
+ 42.7.12
runtime
@@ -110,6 +111,19 @@
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
+
+
+
org.springframework.boot
spring-boot-maven-plugin
diff --git a/target/classes/com/example/taskmanager/TaskManagerApplication.class b/target/classes/com/example/taskmanager/TaskManagerApplication.class
index 9e02d1a..61fd878 100644
Binary files a/target/classes/com/example/taskmanager/TaskManagerApplication.class and b/target/classes/com/example/taskmanager/TaskManagerApplication.class differ
diff --git a/target/classes/com/example/taskmanager/config/OpenApiConfig.class b/target/classes/com/example/taskmanager/config/OpenApiConfig.class
index 81ef9f6..49f6766 100644
Binary files a/target/classes/com/example/taskmanager/config/OpenApiConfig.class and b/target/classes/com/example/taskmanager/config/OpenApiConfig.class differ
diff --git a/target/classes/com/example/taskmanager/config/RequestLoggingConfig$1.class b/target/classes/com/example/taskmanager/config/RequestLoggingConfig$1.class
index e16bf8b..c760068 100644
Binary files a/target/classes/com/example/taskmanager/config/RequestLoggingConfig$1.class and b/target/classes/com/example/taskmanager/config/RequestLoggingConfig$1.class differ
diff --git a/target/classes/com/example/taskmanager/config/RequestLoggingConfig.class b/target/classes/com/example/taskmanager/config/RequestLoggingConfig.class
index 9da593a..62cc347 100644
Binary files a/target/classes/com/example/taskmanager/config/RequestLoggingConfig.class and b/target/classes/com/example/taskmanager/config/RequestLoggingConfig.class differ
diff --git a/target/classes/com/example/taskmanager/config/SecurityConfig.class b/target/classes/com/example/taskmanager/config/SecurityConfig.class
index 6181943..6702432 100644
Binary files a/target/classes/com/example/taskmanager/config/SecurityConfig.class and b/target/classes/com/example/taskmanager/config/SecurityConfig.class differ
diff --git a/target/classes/com/example/taskmanager/controller/AuthController$AuthRequest.class b/target/classes/com/example/taskmanager/controller/AuthController$AuthRequest.class
index 095bfcd..a8902af 100644
Binary files a/target/classes/com/example/taskmanager/controller/AuthController$AuthRequest.class and b/target/classes/com/example/taskmanager/controller/AuthController$AuthRequest.class differ
diff --git a/target/classes/com/example/taskmanager/controller/AuthController$AuthResponse.class b/target/classes/com/example/taskmanager/controller/AuthController$AuthResponse.class
index 5a8cfc2..beb28e0 100644
Binary files a/target/classes/com/example/taskmanager/controller/AuthController$AuthResponse.class and b/target/classes/com/example/taskmanager/controller/AuthController$AuthResponse.class differ
diff --git a/target/classes/com/example/taskmanager/controller/AuthController.class b/target/classes/com/example/taskmanager/controller/AuthController.class
index 8465bfe..004f80d 100644
Binary files a/target/classes/com/example/taskmanager/controller/AuthController.class and b/target/classes/com/example/taskmanager/controller/AuthController.class differ
diff --git a/target/classes/com/example/taskmanager/controller/TaskController.class b/target/classes/com/example/taskmanager/controller/TaskController.class
index e724e5a..083fad1 100644
Binary files a/target/classes/com/example/taskmanager/controller/TaskController.class and b/target/classes/com/example/taskmanager/controller/TaskController.class differ
diff --git a/target/classes/com/example/taskmanager/health/DatabaseHealthIndicator.class b/target/classes/com/example/taskmanager/health/DatabaseHealthIndicator.class
index 0ca9f7e..c7647e0 100644
Binary files a/target/classes/com/example/taskmanager/health/DatabaseHealthIndicator.class and b/target/classes/com/example/taskmanager/health/DatabaseHealthIndicator.class differ
diff --git a/target/classes/com/example/taskmanager/model/Task.class b/target/classes/com/example/taskmanager/model/Task.class
index bcf0d4d..b1bcf76 100644
Binary files a/target/classes/com/example/taskmanager/model/Task.class and b/target/classes/com/example/taskmanager/model/Task.class differ
diff --git a/target/classes/com/example/taskmanager/model/User.class b/target/classes/com/example/taskmanager/model/User.class
index 204314d..4ce3845 100644
Binary files a/target/classes/com/example/taskmanager/model/User.class and b/target/classes/com/example/taskmanager/model/User.class differ
diff --git a/target/classes/com/example/taskmanager/repository/TaskRepository.class b/target/classes/com/example/taskmanager/repository/TaskRepository.class
index 7cc7ad1..5a62de7 100644
Binary files a/target/classes/com/example/taskmanager/repository/TaskRepository.class and b/target/classes/com/example/taskmanager/repository/TaskRepository.class differ
diff --git a/target/classes/com/example/taskmanager/repository/UserRepository.class b/target/classes/com/example/taskmanager/repository/UserRepository.class
index 95e0a51..8fd46b5 100644
Binary files a/target/classes/com/example/taskmanager/repository/UserRepository.class and b/target/classes/com/example/taskmanager/repository/UserRepository.class differ
diff --git a/target/classes/com/example/taskmanager/security/JwtAuthenticationFilter.class b/target/classes/com/example/taskmanager/security/JwtAuthenticationFilter.class
index ed52a62..c8c2209 100644
Binary files a/target/classes/com/example/taskmanager/security/JwtAuthenticationFilter.class and b/target/classes/com/example/taskmanager/security/JwtAuthenticationFilter.class differ
diff --git a/target/classes/com/example/taskmanager/security/JwtUtil.class b/target/classes/com/example/taskmanager/security/JwtUtil.class
index a056411..7e41531 100644
Binary files a/target/classes/com/example/taskmanager/security/JwtUtil.class and b/target/classes/com/example/taskmanager/security/JwtUtil.class differ
diff --git a/target/classes/com/example/taskmanager/service/TaskService.class b/target/classes/com/example/taskmanager/service/TaskService.class
index d268441..563d653 100644
Binary files a/target/classes/com/example/taskmanager/service/TaskService.class and b/target/classes/com/example/taskmanager/service/TaskService.class differ
diff --git a/target/classes/com/example/taskmanager/service/UserService.class b/target/classes/com/example/taskmanager/service/UserService.class
index 9029070..8373fbf 100644
Binary files a/target/classes/com/example/taskmanager/service/UserService.class and b/target/classes/com/example/taskmanager/service/UserService.class differ
diff --git a/target/direct-dependencies.txt b/target/direct-dependencies.txt
new file mode 100644
index 0000000..95bb886
--- /dev/null
+++ b/target/direct-dependencies.txt
@@ -0,0 +1,17 @@
+
+The following files have been resolved:
+ org.springframework.boot:spring-boot-starter-web:jar:3.5.16:compile[36m -- module spring.boot.starter.web[0;1m [auto][m
+ org.springframework.boot:spring-boot-starter-data-jpa:jar:3.5.16:compile[36m -- module spring.boot.starter.data.jpa[0;1m [auto][m
+ org.springframework.boot:spring-boot-starter-security:jar:3.5.16:compile[36m -- module spring.boot.starter.security[0;1m [auto][m
+ org.springframework.boot:spring-boot-starter-actuator:jar:3.5.16:compile[36m -- module spring.boot.starter.actuator[0;1m [auto][m
+ io.micrometer:micrometer-registry-prometheus:jar:1.15.12:runtime[36m -- module micrometer.registry.prometheus[0;1m [auto][m
+ net.logstash.logback:logstash-logback-encoder:jar:8.0:compile[36m -- module logstash.logback.encoder[0;1m [auto][m
+ org.springdoc:springdoc-openapi-starter-webmvc-ui:jar:2.8.17:compile[36m -- module org.springdoc.openapi.ui[0;1m [auto][m
+ com.h2database:h2:jar:2.3.232:runtime[36m -- module com.h2database[0;1m [auto][m
+ org.postgresql:postgresql:jar:42.7.11:runtime[36m -- module org.postgresql.jdbc[0;1m [auto][m
+ io.jsonwebtoken:jjwt-api:jar:0.12.5:compile[36m -- module jjwt.api[0;1;33m (auto)[m
+ io.jsonwebtoken:jjwt-impl:jar:0.12.5:runtime[36m -- module jjwt.impl[0;1;33m (auto)[m
+ io.jsonwebtoken:jjwt-jackson:jar:0.12.5:runtime[36m -- module jjwt.jackson[0;1;33m (auto)[m
+ org.projectlombok:lombok:jar:1.18.46:compile (optional)[36m -- module lombok[m
+ org.springframework.boot:spring-boot-starter-test:jar:3.5.16:test[36m -- module spring.boot.starter.test[0;1m [auto][m
+