diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 1fbcff17..2b1d4ad6 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -63,13 +63,18 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v5 - + - name: Set up JDK + uses: actions/setup-java@v5 + with: + java-version: '25' + distribution: 'temurin' # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} build-mode: ${{ matrix.build-mode }} + # If you wish to specify custom queries, you can do so here or in a config file. # By default, queries listed here will override any specified in a config file. # Prefix the list here with "+" to use these queries and those in the config file. diff --git a/.github/workflows/gradle-build.yml b/.github/workflows/gradle-build.yml index 62c7bf17..51b5af91 100644 --- a/.github/workflows/gradle-build.yml +++ b/.github/workflows/gradle-build.yml @@ -60,7 +60,7 @@ jobs: - name: Set up JDK uses: actions/setup-java@v5 with: - java-version: '21' + java-version: '25' distribution: 'temurin' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 @@ -89,6 +89,24 @@ jobs: name: build-artifacts path: '**/build/' + dependecy-submission: + name: Dependency Submission + runs-on: ubuntu-latest + steps: + - name: Checkout sources + uses: actions/checkout@v5 + - name: Setup Java + uses: actions/setup-java@v5 + with: + distribution: 'temurin' + java-version: 25 + - name: Generate and submit dependency graph + uses: gradle/actions/dependency-submission@v4 + with: + build-scan-publish: true + build-scan-terms-of-use-url: "https://gradle.com/terms-of-service" + build-scan-terms-of-use-agree: "yes" + code-quality: name: Code Quality with Sonar needs: [gradle-build, check-changes] @@ -101,7 +119,7 @@ jobs: - name: Set up JDK uses: actions/setup-java@v5 with: - java-version: '21' + java-version: '25' distribution: 'temurin' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 diff --git a/.github/workflows/gradle-wrapper-updater.yml b/.github/workflows/gradle-wrapper-updater.yml index 5feae36a..f95e162f 100644 --- a/.github/workflows/gradle-wrapper-updater.yml +++ b/.github/workflows/gradle-wrapper-updater.yml @@ -14,7 +14,7 @@ jobs: - name: Set up JDK uses: actions/setup-java@v5 with: - java-version: '21' + java-version: '25' distribution: 'temurin' - name: Update Gradle Wrapper diff --git a/README.adoc b/README.adoc index c243a3ca..68c2aa2d 100644 --- a/README.adoc +++ b/README.adoc @@ -8,8 +8,8 @@ Samples and tutorials for https://spring.io/projects/spring-boot[Spring Boot] mo Spring Data, Spring Batch, Spring Cloud, Spring Security, Spring GraphQL, and Spring Test. Each tutorial is equipped with source code in individual submodules and can be found on {url-quickref}[GitHub]. -image:https://img.shields.io/badge/Java_-21-blue?style=flat-square[Static Badge] -image:https://img.shields.io/badge/Spring_Boot-3.5.5-blue?style=flat-square&logo=springboot[Spring Boot version] +image:https://img.shields.io/badge/Java_-25-blue?style=flat-square[Static Badge] +image:https://img.shields.io/badge/Spring_Boot-3.5.6-blue?style=flat-square&logo=springboot[Spring Boot version] image:https://img.shields.io/github/actions/workflow/status/rashidi/spring-boot-tutorials/gradle-build.yml?style=flat-square&logo=githubactions&color=blue[Gradle Build] image:https://img.shields.io/github/actions/workflow/status/rashidi/spring-boot-tutorials/build-and-publish-antora.yml?style=flat-square&logo=antora&label=Antora&color=blue[Antora Site Status, link={url-docs}] image:https://img.shields.io/sonar/coverage/rashidi_spring-boot-tutorials?server=https%3A%2F%2Fsonarcloud.io&style=flat-square&color=blue[Sonar Coverage] @@ -27,8 +27,8 @@ best practices and keeping all dependencies up-to-date. The quality of these tut and always will be, my primary goal. With the help of https://github.com/dependabot[Dependabot], each tutorial is also kept up-to-date with the latest -dependencies. Currently, we are using Java https://adoptium.net/en-GB/temurin/releases/?version=21[Temurin 21] -with https://plugins.gradle.org/plugin/org.springframework.boot/3.5.5[Spring Boot 3.5.5]. +dependencies. Currently, we are using Java https://adoptium.net/en-GB/temurin/releases?version=25[Temurin 25] +with https://plugins.gradle.org/plugin/org.springframework.boot/3.5.6[Spring Boot 3.5.6]. == Documentation diff --git a/batch-rest-repository/build.gradle.kts b/batch-rest-repository/build.gradle.kts index 6cac3de0..057b4cef 100644 --- a/batch-rest-repository/build.gradle.kts +++ b/batch-rest-repository/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/batch-skip-step/build.gradle.kts b/batch-skip-step/build.gradle.kts index 3a8b3541..bb742b2c 100644 --- a/batch-skip-step/build.gradle.kts +++ b/batch-skip-step/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/batch-skip-step/src/test/java/zin/rashidi/boot/batch/user/UserBatchJobTests.java b/batch-skip-step/src/test/java/zin/rashidi/boot/batch/user/UserBatchJobTests.java index 93c4a6fe..54540225 100644 --- a/batch-skip-step/src/test/java/zin/rashidi/boot/batch/user/UserBatchJobTests.java +++ b/batch-skip-step/src/test/java/zin/rashidi/boot/batch/user/UserBatchJobTests.java @@ -68,7 +68,7 @@ void findAll() { assertThat(execution.getExitStatus()).isEqualTo(COMPLETED); }); - var users = jdbc.query("SELECT * FROM users", (rs, rowNum) -> + var users = jdbc.query("SELECT * FROM users", (rs, _) -> new User(rs.getLong("id"), rs.getString("name"), rs.getString("username")) ); diff --git a/build.gradle.kts b/build.gradle.kts index 1e62e946..d5414a8e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -13,7 +13,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/cloud-jdbc-env-repo/build.gradle.kts b/cloud-jdbc-env-repo/build.gradle.kts index c4a2f839..91d0e7c9 100644 --- a/cloud-jdbc-env-repo/build.gradle.kts +++ b/cloud-jdbc-env-repo/build.gradle.kts @@ -11,7 +11,7 @@ val springCloudVersion = "2025.0.0" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/cloud-jdbc-env-repo/src/main/java/zin/rashidi/boot/cloud/jdbcenvrepo/greet/GreetResource.java b/cloud-jdbc-env-repo/src/main/java/zin/rashidi/boot/cloud/jdbcenvrepo/greet/GreetResource.java index ac68c015..2f49c65a 100644 --- a/cloud-jdbc-env-repo/src/main/java/zin/rashidi/boot/cloud/jdbcenvrepo/greet/GreetResource.java +++ b/cloud-jdbc-env-repo/src/main/java/zin/rashidi/boot/cloud/jdbcenvrepo/greet/GreetResource.java @@ -18,7 +18,7 @@ class GreetResource { @GetMapping("/greet") public String greet(@RequestParam String greeting) { - return String.format("%s, my name is %s", greeting, properties.name()); + return "%s, my name is %s".formatted(greeting, properties.name()); } } diff --git a/data-domain-events/build.gradle.kts b/data-domain-events/build.gradle.kts index 877b8820..ed2c1c69 100644 --- a/data-domain-events/build.gradle.kts +++ b/data-domain-events/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/data-envers-audit/build.gradle.kts b/data-envers-audit/build.gradle.kts index 51acc882..ebef28d9 100644 --- a/data-envers-audit/build.gradle.kts +++ b/data-envers-audit/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/data-jdbc-audit/build.gradle.kts b/data-jdbc-audit/build.gradle.kts index 58ab6cf8..b5d75a87 100644 --- a/data-jdbc-audit/build.gradle.kts +++ b/data-jdbc-audit/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/data-jdbc-schema-generation/build.gradle.kts b/data-jdbc-schema-generation/build.gradle.kts index 89f57c3c..b9cbb19f 100644 --- a/data-jdbc-schema-generation/build.gradle.kts +++ b/data-jdbc-schema-generation/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/data-jpa-audit/build.gradle.kts b/data-jpa-audit/build.gradle.kts index 2c8b39ca..c49b495a 100644 --- a/data-jpa-audit/build.gradle.kts +++ b/data-jpa-audit/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/data-jpa-event/build.gradle.kts b/data-jpa-event/build.gradle.kts index 86851751..195efe5b 100644 --- a/data-jpa-event/build.gradle.kts +++ b/data-jpa-event/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/data-jpa-filtered-query/build.gradle.kts b/data-jpa-filtered-query/build.gradle.kts index 2c8b39ca..c49b495a 100644 --- a/data-jpa-filtered-query/build.gradle.kts +++ b/data-jpa-filtered-query/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/data-jpa-filtered-query/src/main/java/zin/rashidi/boot/data/jpa/jpa/JpaCustomBaseRepository.java b/data-jpa-filtered-query/src/main/java/zin/rashidi/boot/data/jpa/jpa/JpaCustomBaseRepository.java index 26e779e1..1d776d0f 100644 --- a/data-jpa-filtered-query/src/main/java/zin/rashidi/boot/data/jpa/jpa/JpaCustomBaseRepository.java +++ b/data-jpa-filtered-query/src/main/java/zin/rashidi/boot/data/jpa/jpa/JpaCustomBaseRepository.java @@ -23,7 +23,7 @@ public JpaCustomBaseRepository(JpaEntityInformation entityInformation, Ent @Override public List findAll() { var hasStatusField = Stream.of(ReflectionUtils.getDeclaredMethods(getDomainClass())).anyMatch(field -> field.getName().equals("status")); - return hasStatusField ? findAll((root, query, criteriaBuilder) -> root.get("status").in(ACTIVE)) : super.findAll(); + return hasStatusField ? findAll((root, _, _) -> root.get("status").in(ACTIVE)) : super.findAll(); } } diff --git a/data-jpa-hibernate-cache/build.gradle.kts b/data-jpa-hibernate-cache/build.gradle.kts index a8d35f49..f4ace931 100644 --- a/data-jpa-hibernate-cache/build.gradle.kts +++ b/data-jpa-hibernate-cache/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion = JavaLanguageVersion.of(21) + languageVersion = JavaLanguageVersion.of(25) } } diff --git a/data-mongodb-audit/build.gradle.kts b/data-mongodb-audit/build.gradle.kts index a060c14c..686f8b45 100644 --- a/data-mongodb-audit/build.gradle.kts +++ b/data-mongodb-audit/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/data-mongodb-full-text-search/build.gradle.kts b/data-mongodb-full-text-search/build.gradle.kts index a060c14c..686f8b45 100644 --- a/data-mongodb-full-text-search/build.gradle.kts +++ b/data-mongodb-full-text-search/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/data-mongodb-tc-data-load/build.gradle.kts b/data-mongodb-tc-data-load/build.gradle.kts index 328a85f1..544c47b8 100644 --- a/data-mongodb-tc-data-load/build.gradle.kts +++ b/data-mongodb-tc-data-load/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/data-mongodb-transactional/build.gradle.kts b/data-mongodb-transactional/build.gradle.kts index a8235c1f..9d3d1c8f 100644 --- a/data-mongodb-transactional/build.gradle.kts +++ b/data-mongodb-transactional/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/data-redis-cache/build.gradle.kts b/data-redis-cache/build.gradle.kts index b9b89780..069dc9f7 100644 --- a/data-redis-cache/build.gradle.kts +++ b/data-redis-cache/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion = JavaLanguageVersion.of(21) + languageVersion = JavaLanguageVersion.of(25) } } diff --git a/data-repository-definition/build.gradle.kts b/data-repository-definition/build.gradle.kts index 9761c612..25b6f088 100644 --- a/data-repository-definition/build.gradle.kts +++ b/data-repository-definition/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/data-rest-composite-id/build.gradle.kts b/data-rest-composite-id/build.gradle.kts index bc4adcad..969a3450 100644 --- a/data-rest-composite-id/build.gradle.kts +++ b/data-rest-composite-id/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion = JavaLanguageVersion.of(21) + languageVersion = JavaLanguageVersion.of(25) } } diff --git a/data-rest-composite-id/src/main/java/zin/rashidi/datarest/compositeid/book/Book.java b/data-rest-composite-id/src/main/java/zin/rashidi/datarest/compositeid/book/Book.java index 8f4924f0..f321b827 100644 --- a/data-rest-composite-id/src/main/java/zin/rashidi/datarest/compositeid/book/Book.java +++ b/data-rest-composite-id/src/main/java/zin/rashidi/datarest/compositeid/book/Book.java @@ -56,7 +56,7 @@ public Isbn(String isbn) { @Override public String toString() { - return String.format("%d%d%d%d%d", prefix, group, registrant, publication, check); + return "%d%d%d%d%d".formatted(prefix, group, registrant, publication, check); } } diff --git a/data-rest-validation/build.gradle.kts b/data-rest-validation/build.gradle.kts index 5697d1b8..748b4810 100644 --- a/data-rest-validation/build.gradle.kts +++ b/data-rest-validation/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index 0ec4c612..5d19be2d 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -20,4 +20,4 @@ best practices and keeping all dependencies up-to-date. The quality of these tut and always will be, my primary goal. With the help of https://github.com/dependabot[Dependabot], each tutorial is also kept up-to-date with the latest -dependencies. Currently, we are using Java https://adoptium.net/en-GB/temurin/releases/?version=21[Temurin 21] +dependencies. Currently, we are using Java https://adoptium.net/en-GB/temurin/releases/?version=25[Temurin 25] diff --git a/graphql/build.gradle.kts b/graphql/build.gradle.kts index bf1d3974..513f5c20 100644 --- a/graphql/build.gradle.kts +++ b/graphql/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/jooq/build.gradle.kts b/jooq/build.gradle.kts index aa229c86..914afcea 100644 --- a/jooq/build.gradle.kts +++ b/jooq/build.gradle.kts @@ -13,7 +13,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/modulith/build.gradle.kts b/modulith/build.gradle.kts index f00a77a3..47fc94fe 100644 --- a/modulith/build.gradle.kts +++ b/modulith/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/supplemental-ui/partials/footer-content.hbs b/supplemental-ui/partials/footer-content.hbs index d0b6283c..62314704 100644 --- a/supplemental-ui/partials/footer-content.hbs +++ b/supplemental-ui/partials/footer-content.hbs @@ -1,7 +1,7 @@ diff --git a/test-execution-listeners/build.gradle.kts b/test-execution-listeners/build.gradle.kts index a060c14c..686f8b45 100644 --- a/test-execution-listeners/build.gradle.kts +++ b/test-execution-listeners/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/test-rest-assured/build.gradle.kts b/test-rest-assured/build.gradle.kts index 0a2e6c09..dca1754e 100644 --- a/test-rest-assured/build.gradle.kts +++ b/test-rest-assured/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/test-slice-tests-rest/build.gradle.kts b/test-slice-tests-rest/build.gradle.kts index b3e0ea78..34f6bb34 100644 --- a/test-slice-tests-rest/build.gradle.kts +++ b/test-slice-tests-rest/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/web-rest-client/build.gradle.kts b/web-rest-client/build.gradle.kts index 365d658e..4b4578ff 100644 --- a/web-rest-client/build.gradle.kts +++ b/web-rest-client/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) + languageVersion.set(JavaLanguageVersion.of(25)) } } diff --git a/web-rest-client/src/main/java/zin/rashidi/boot/web/restclient/user/UserRestRepository.java b/web-rest-client/src/main/java/zin/rashidi/boot/web/restclient/user/UserRestRepository.java index d7f80774..fb82dfbe 100644 --- a/web-rest-client/src/main/java/zin/rashidi/boot/web/restclient/user/UserRestRepository.java +++ b/web-rest-client/src/main/java/zin/rashidi/boot/web/restclient/user/UserRestRepository.java @@ -36,7 +36,7 @@ public List findAll() { public User findById(Long id) { return restClient.get().uri("/{id}", id) .retrieve() - .onStatus(HttpStatusCode::is4xxClientError, ((request, response) -> { + .onStatus(HttpStatusCode::is4xxClientError, ((_, _) -> { throw new UserNotFoundException(); })) .body(User.class); diff --git a/web-thymeleaf-xss/build.gradle.kts b/web-thymeleaf-xss/build.gradle.kts index e80eb8b5..b2aeea63 100644 --- a/web-thymeleaf-xss/build.gradle.kts +++ b/web-thymeleaf-xss/build.gradle.kts @@ -9,7 +9,7 @@ version = "0.0.1-SNAPSHOT" java { toolchain { - languageVersion = JavaLanguageVersion.of(21) + languageVersion = JavaLanguageVersion.of(25) } }