diff --git a/.github/actions/publish-gradle-plugin/action.yml b/.github/actions/publish-gradle-plugin/action.yml index 8c136ba732c2..e01647c9efde 100644 --- a/.github/actions/publish-gradle-plugin/action.yml +++ b/.github/actions/publish-gradle-plugin/action.yml @@ -21,7 +21,7 @@ runs: using: composite steps: - name: Set Up JFrog CLI - uses: jfrog/setup-jfrog-cli@1641575d87647fb969c0545f0b6a76873e328b7c # v5.0.0 + uses: jfrog/setup-jfrog-cli@deda456d982fc5e9a7a020b63eb0d2968aedd33e # v5.1.0 env: JF_ENV_SPRING: ${{ inputs.jfrog-cli-config-token }} - name: Download Artifacts diff --git a/.github/actions/sync-to-maven-central/action.yml b/.github/actions/sync-to-maven-central/action.yml index 863c70b21db6..02152b406471 100644 --- a/.github/actions/sync-to-maven-central/action.yml +++ b/.github/actions/sync-to-maven-central/action.yml @@ -17,7 +17,7 @@ runs: using: composite steps: - name: Set Up JFrog CLI - uses: jfrog/setup-jfrog-cli@1641575d87647fb969c0545f0b6a76873e328b7c # v5.0.0 + uses: jfrog/setup-jfrog-cli@deda456d982fc5e9a7a020b63eb0d2968aedd33e # v5.1.0 env: JF_ENV_SPRING: ${{ inputs.jfrog-cli-config-token }} - name: Download Release Artifacts diff --git a/.github/actions/update-homebrew-tap/action.yml b/.github/actions/update-homebrew-tap/action.yml index d8c4b5886561..ad2a6dddc04c 100644 --- a/.github/actions/update-homebrew-tap/action.yml +++ b/.github/actions/update-homebrew-tap/action.yml @@ -11,7 +11,7 @@ runs: using: composite steps: - name: Check Out Homebrew Tap Repo - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: path: updated-homebrew-tap-repo repository: spring-io/homebrew-tap diff --git a/.github/workflows/build-and-deploy-snapshot.yml b/.github/workflows/build-and-deploy-snapshot.yml index dbcffad1b965..002f6eb34ac0 100644 --- a/.github/workflows/build-and-deploy-snapshot.yml +++ b/.github/workflows/build-and-deploy-snapshot.yml @@ -15,7 +15,7 @@ jobs: runs-on: ${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} steps: - name: Check Out Code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Build and Publish id: build-and-publish uses: ./.github/actions/build diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 8420a1a829b4..943884c4e852 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -9,7 +9,7 @@ jobs: runs-on: ${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} steps: - name: Check Out Code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Build id: build uses: ./.github/actions/build diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 45eca692291f..893d69a9fdc2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,7 +42,7 @@ jobs: git config --global core.longPaths true Stop-Service -name Docker - name: Check Out Code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Build id: build uses: ./.github/actions/build diff --git a/.github/workflows/release-milestone.yml b/.github/workflows/release-milestone.yml index edf767a41856..c61954bd3980 100644 --- a/.github/workflows/release-milestone.yml +++ b/.github/workflows/release-milestone.yml @@ -15,7 +15,7 @@ jobs: runs-on: ${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} steps: - name: Check Out Code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Build and Publish id: build-and-publish uses: ./.github/actions/build @@ -60,7 +60,7 @@ jobs: runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} steps: - name: Check Out Code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Sync to Maven Central uses: ./.github/actions/sync-to-maven-central with: @@ -76,7 +76,7 @@ jobs: runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} steps: - name: Set up JFrog CLI - uses: jfrog/setup-jfrog-cli@1641575d87647fb969c0545f0b6a76873e328b7c # v5.0.0 + uses: jfrog/setup-jfrog-cli@deda456d982fc5e9a7a020b63eb0d2968aedd33e # v5.1.0 env: JF_ENV_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }} - name: Promote build @@ -90,7 +90,7 @@ jobs: runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} steps: - name: Check Out Code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Publish uses: ./.github/actions/publish-gradle-plugin with: @@ -121,7 +121,7 @@ jobs: runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} steps: - name: Check Out Code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Create GitHub Release uses: ./.github/actions/create-github-release with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f95e64827fbc..32d2629ae994 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,7 +14,7 @@ jobs: runs-on: ${{ vars.UBUNTU_MEDIUM || 'ubuntu-latest' }} steps: - name: Check Out Code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Build and Publish id: build-and-publish uses: ./.github/actions/build @@ -71,7 +71,7 @@ jobs: runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} steps: - name: Check Out Code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Sync to Maven Central uses: ./.github/actions/sync-to-maven-central with: @@ -87,7 +87,7 @@ jobs: runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} steps: - name: Set up JFrog CLI - uses: jfrog/setup-jfrog-cli@1641575d87647fb969c0545f0b6a76873e328b7c # v5.0.0 + uses: jfrog/setup-jfrog-cli@deda456d982fc5e9a7a020b63eb0d2968aedd33e # v5.1.0 env: JF_ENV_SPRING: ${{ vars.COMMERCIAL && secrets.COMMERCIAL_JF_ARTIFACTORY_SPRING || secrets.JF_ARTIFACTORY_SPRING }} - name: Promote open source build @@ -105,7 +105,7 @@ jobs: runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} steps: - name: Check Out Code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Publish uses: ./.github/actions/publish-gradle-plugin with: @@ -122,7 +122,7 @@ jobs: runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} steps: - name: Check Out Code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Publish to SDKMAN! uses: ./.github/actions/publish-to-sdkman with: @@ -138,7 +138,7 @@ jobs: runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} steps: - name: Check Out Code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Update Homebrew Tap uses: ./.github/actions/update-homebrew-tap with: @@ -169,7 +169,7 @@ jobs: runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} steps: - name: Check Out Code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Create GitHub Release uses: ./.github/actions/create-github-release with: diff --git a/.github/workflows/run-system-tests.yml b/.github/workflows/run-system-tests.yml index c4ec0771883c..f43c485a7192 100644 --- a/.github/workflows/run-system-tests.yml +++ b/.github/workflows/run-system-tests.yml @@ -24,7 +24,7 @@ jobs: echo '{"storage-driver":"overlay2"}' | sudo tee /etc/docker/daemon.json sudo systemctl restart docker - name: Check Out Code - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Prepare Gradle Build uses: ./.github/actions/prepare-gradle-build with: diff --git a/.github/workflows/trigger-docs-build.yml b/.github/workflows/trigger-docs-build.yml index 60a6f6e044a6..ce40249669d7 100644 --- a/.github/workflows/trigger-docs-build.yml +++ b/.github/workflows/trigger-docs-build.yml @@ -26,7 +26,7 @@ jobs: actions: write steps: - name: Check Out - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: ref: docs-build - name: Trigger Workflow diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml index a31b4a93e970..1c28390bde19 100644 --- a/.github/workflows/verify.yml +++ b/.github/workflows/verify.yml @@ -38,13 +38,13 @@ jobs: runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }} steps: - name: Check Out Release Verification Tests - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: ref: 'v0.0.15' repository: spring-projects/spring-boot-release-verification token: ${{ secrets.token }} - name: Check Out Send Notification Action - uses: actions/checkout@v6 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: path: send-notification sparse-checkout: .github/actions/send-notification diff --git a/antora/package-lock.json b/antora/package-lock.json index 9d3cad02b9bf..8e7d49e5f20c 100644 --- a/antora/package-lock.json +++ b/antora/package-lock.json @@ -6,8 +6,8 @@ "": { "dependencies": { "@antora/atlas-extension": "1.0.0-alpha.5", - "@antora/cli": "3.2.0-alpha.12", - "@antora/site-generator": "3.2.0-alpha.12", + "@antora/cli": "3.2.0-rc.2", + "@antora/site-generator": "3.2.0-rc.2", "@asciidoctor/tabs": "1.0.0-beta.6", "@springio/antora-extensions": "1.14.12", "@springio/antora-xref-extension": "1.0.0-alpha.5", @@ -16,17 +16,17 @@ } }, "node_modules/@antora/asciidoc-loader": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.2.0-alpha.12.tgz", - "integrity": "sha512-GVkVfbHGV+01uk2LCch75fbNdGWkXW8SPeydIEwpy1TZuM5bz6x8f+Ks9qO3Feb6DBgSWpAqj7TLmGtZNaIwZg==", + "version": "3.2.0-rc.2", + "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.2.0-rc.2.tgz", + "integrity": "sha512-mBzUCDnpomxZZ+ZbH2ryZxC3BmEX5p2FzvQRY0uo+YQJVpDAoOCUb2HDhwYJVbgOM/ceaFWgF2dGPjMXlSslqQ==", "license": "MPL-2.0", "dependencies": { - "@antora/logger": "3.2.0-alpha.12", + "@antora/logger": "3.2.0-rc.2", "@antora/user-require-helper": "~3.0", "@asciidoctor/core": "~2.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/atlas-extension": { @@ -45,38 +45,38 @@ } }, "node_modules/@antora/cli": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-3.2.0-alpha.12.tgz", - "integrity": "sha512-UaRcJBLpEas8kMVCJcZit41+/EMTS0HBHIYripf98HzyB3ljGYp8M6kMMvrO/YdHohMgF65aSjz6sSSrHYDpwg==", + "version": "3.2.0-rc.2", + "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-3.2.0-rc.2.tgz", + "integrity": "sha512-4yi34VFPLK0RgTgL3kpFM4DnfhsTttpBZMKKBnJ8iKWOnf8iZnrsXLPsiaXCazNiPQnLMhf/sNl+prHJAItPuA==", "license": "MPL-2.0", "dependencies": { - "@antora/logger": "3.2.0-alpha.12", - "@antora/playbook-builder": "3.2.0-alpha.12", + "@antora/logger": "3.2.0-rc.2", + "@antora/playbook-builder": "3.2.0-rc.2", "@antora/user-require-helper": "~3.0", - "commander": "~13.1" + "commander": "~14.0" }, "bin": { "antora": "bin/antora" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/content-aggregator": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.2.0-alpha.12.tgz", - "integrity": "sha512-4JSK6u7ihbr5b4Jp3XFWYAUsn593OZvWFayrqmupcnLYcyooGjTDUqnO2UHDH9GLelZxLhlOaxTGBrovXF+kNQ==", + "version": "3.2.0-rc.2", + "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.2.0-rc.2.tgz", + "integrity": "sha512-cBJquPs+opKd+fxQWwpy4xZWyNJIReE5xPqbE6YVI2iqM6MyVDLR3A5mlsRex1yLzfKOhSTIuTmQlzSaiy+9RA==", "license": "MPL-2.0", "dependencies": { "@antora/expand-path-helper": "~3.0", - "@antora/logger": "3.2.0-alpha.12", + "@antora/logger": "3.2.0-rc.2", "@antora/user-require-helper": "~3.0", "braces": "~3.0", "cache-directory": "~2.0", "fast-glob": "~3.3", "hpagent": "~1.2", - "isomorphic-git": "~1.37", - "js-yaml": "~4.1", + "isomorphic-git": "~1.38", + "js-yaml": "~4.2", "multi-progress": "~4.0", "picomatch": "~4.0", "progress": "~2.0", @@ -85,34 +85,56 @@ "vinyl": "~3.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" + } + }, + "node_modules/@antora/content-aggregator/node_modules/js-yaml": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", + "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/@antora/content-classifier": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.2.0-alpha.12.tgz", - "integrity": "sha512-CTGRxjKkd4wZKVXquz+B5ker3YeFakGUeNG4XLULxNis7WVi99b/SZoh00gMjHeftXqschx8JugwXNAiO7yz2w==", + "version": "3.2.0-rc.2", + "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.2.0-rc.2.tgz", + "integrity": "sha512-692Qr1mD1V7oQ7ArYj8idNjhSgQNIpola1WchahY/jyGZtYk3bX+6W0o0Vr35+hcHNEhMRfIflDSH54TsuD7hQ==", "license": "MPL-2.0", "dependencies": { - "@antora/asciidoc-loader": "3.2.0-alpha.12", - "@antora/logger": "3.2.0-alpha.12", + "@antora/asciidoc-loader": "3.2.0-rc.2", + "@antora/logger": "3.2.0-rc.2", "mime-types": "~3.0", "vinyl": "~3.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/document-converter": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.2.0-alpha.12.tgz", - "integrity": "sha512-fTAw3ohkM8Cj/kocX7oJj0njivtj2T/PJs4nv6nWnb87/Dceh+B7O9hS+qz5jwCwByx6HulE6bG9Uc+BgZFuww==", + "version": "3.2.0-rc.2", + "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.2.0-rc.2.tgz", + "integrity": "sha512-W0sfx2ldTy7pGYQqfi2HrGrzuEhkUIuS0scjKyxO/JuNPWdreNdp7hb6fBukNpScqHzRLhKD3wutsksZAFg6dw==", "license": "MPL-2.0", "dependencies": { - "@antora/asciidoc-loader": "3.2.0-alpha.12" + "@antora/asciidoc-loader": "3.2.0-rc.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/expand-path-helper": { @@ -125,9 +147,9 @@ } }, "node_modules/@antora/file-publisher": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/file-publisher/-/file-publisher-3.2.0-alpha.12.tgz", - "integrity": "sha512-l74Ge+VkbflBRNkflJRtPcmQP0VchbhihUnmA9oj7y5bz+arLvFNFKL1zo0qllJ121VQE34fINheH0D68l9ilQ==", + "version": "3.2.0-rc.2", + "resolved": "https://registry.npmjs.org/@antora/file-publisher/-/file-publisher-3.2.0-rc.2.tgz", + "integrity": "sha512-xGqIQIOTpvz7rEsbiA59NsIBnAwtl+WRSepduRTy6Gv8lim0lrJT/rhnxcAEPU/1as++FWdtMMLolkdI0fU4bg==", "license": "MPL-2.0", "dependencies": { "@antora/expand-path-helper": "~3.0", @@ -136,129 +158,151 @@ "yazl": "~3.3" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/logger": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.2.0-alpha.12.tgz", - "integrity": "sha512-feyaa9w79rKuQQ9A1HpLYHNrAVgo8Oc3J/Ptu6M9XCm/T7utNA79z8DyQWL4yQADrI64f52sZv9PpSAF7EVz8A==", + "version": "3.2.0-rc.2", + "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.2.0-rc.2.tgz", + "integrity": "sha512-qNCOxx1WbleUaFzeyZ3kbRL2Hf4hN6CbvvRY7w45+iwH/ErejAR5iDtH2sCWbRJGYUt2hUbJ6FmpFFkXProaeA==", "license": "MPL-2.0", "dependencies": { "@antora/expand-path-helper": "~3.0", - "pino": "10.1.0" + "pino": "~10.3" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/navigation-builder": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.2.0-alpha.12.tgz", - "integrity": "sha512-b/+UbU/u2EasQQTwznE4Yv5+eoNuTKpYn3YBlFDVt68WhXuIee+Gevzb38EnWBCn+XrPvWRV99ZE/ccCJBE5ng==", + "version": "3.2.0-rc.2", + "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.2.0-rc.2.tgz", + "integrity": "sha512-2kaZfzdx+2g3yEC+qgMpg1s6Ms6GOrzgWd47eH7/HAJ0+zFMhDnv0vhfIaDcOBtpgwdZkiJFpPN1dkGFWqtBuQ==", "license": "MPL-2.0", "dependencies": { - "@antora/asciidoc-loader": "3.2.0-alpha.12" + "@antora/asciidoc-loader": "3.2.0-rc.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/page-composer": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.2.0-alpha.12.tgz", - "integrity": "sha512-oGVhhPVo9FCwhfrEiGdzUjnA7cf1Yl4dyJd82fk+JakyhaifLxGgKmJazWn8CXs1OJUd7ImjkpX4vVAryTnlZw==", + "version": "3.2.0-rc.2", + "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.2.0-rc.2.tgz", + "integrity": "sha512-J7l5Le+JZHL9giv7k3JScHE4afghA8cnX3lEGglPF8YWapzpfyJXrEBP4ukCjTgDvnpUcnxW1pYImM3yCTEC1g==", "license": "MPL-2.0", "dependencies": { - "@antora/logger": "3.2.0-alpha.12", + "@antora/logger": "3.2.0-rc.2", "handlebars": "~4.7" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/playbook-builder": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.2.0-alpha.12.tgz", - "integrity": "sha512-mOLSX7Xr297Svt3UCka0ebPN9eKq2/2qZVwgflQXZruEMY6hl6sqey8tGYZhcINKYGcGEej4EXGj0R0u1xt0oA==", + "version": "3.2.0-rc.2", + "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.2.0-rc.2.tgz", + "integrity": "sha512-Fk/Ko/HYGGfDfIMZydyHidc66ASPyb+Wi0pzI4hTsK4PP8cP4NR2Rat9njAIUoMTuwsBogBGKH9uJ9l5bj/G4Q==", "license": "MPL-2.0", "dependencies": { "@iarna/toml": "~2.2", "convict": "~6.2", - "js-yaml": "~4.1", + "js-yaml": "~4.2", "json5": "~2.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" + } + }, + "node_modules/@antora/playbook-builder/node_modules/js-yaml": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", + "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/@antora/redirect-producer": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.2.0-alpha.12.tgz", - "integrity": "sha512-K58XBU3NKsGMPeLRpk/J7PWR/8TMXjX/sgnUK4Yl/NjNh2uksKfsW/DLUV8ErXYaxT8l+1R8nAgBGRSpuBIUOQ==", + "version": "3.2.0-rc.2", + "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.2.0-rc.2.tgz", + "integrity": "sha512-p3USy+gHDlMf+1USd1cMiW4S+B0gNNaeuYuR3/dLYHjJWJxqlyTdkRbyPD/GP/gyme72MyckBN135PJ0otX8Dg==", "license": "MPL-2.0", "dependencies": { - "@antora/content-classifier": "3.2.0-alpha.12", + "@antora/content-classifier": "3.2.0-rc.2", "vinyl": "~3.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/site-generator": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/site-generator/-/site-generator-3.2.0-alpha.12.tgz", - "integrity": "sha512-iLt+3RRx0NgA2A2LEg6LLsfxXeb/yYQIvOkrlGJonnADsYhl4U+301Pns9VKLQURY7iUnjkvi7QJrLUb0cJftg==", + "version": "3.2.0-rc.2", + "resolved": "https://registry.npmjs.org/@antora/site-generator/-/site-generator-3.2.0-rc.2.tgz", + "integrity": "sha512-Cggr+l5Xy6sW6P36q51UXrtKVHplHvIYzv2v7lykxXAPE9fNhdj2spkBQi18sIjC9+lxT9f2F5J/A8+G8HCtpg==", "license": "MPL-2.0", "dependencies": { - "@antora/asciidoc-loader": "3.2.0-alpha.12", - "@antora/content-aggregator": "3.2.0-alpha.12", - "@antora/content-classifier": "3.2.0-alpha.12", - "@antora/document-converter": "3.2.0-alpha.12", - "@antora/file-publisher": "3.2.0-alpha.12", - "@antora/logger": "3.2.0-alpha.12", - "@antora/navigation-builder": "3.2.0-alpha.12", - "@antora/page-composer": "3.2.0-alpha.12", - "@antora/playbook-builder": "3.2.0-alpha.12", - "@antora/redirect-producer": "3.2.0-alpha.12", - "@antora/site-mapper": "3.2.0-alpha.12", - "@antora/site-publisher": "3.2.0-alpha.12", - "@antora/ui-loader": "3.2.0-alpha.12", + "@antora/asciidoc-loader": "3.2.0-rc.2", + "@antora/content-aggregator": "3.2.0-rc.2", + "@antora/content-classifier": "3.2.0-rc.2", + "@antora/document-converter": "3.2.0-rc.2", + "@antora/file-publisher": "3.2.0-rc.2", + "@antora/logger": "3.2.0-rc.2", + "@antora/navigation-builder": "3.2.0-rc.2", + "@antora/page-composer": "3.2.0-rc.2", + "@antora/playbook-builder": "3.2.0-rc.2", + "@antora/redirect-producer": "3.2.0-rc.2", + "@antora/site-mapper": "3.2.0-rc.2", + "@antora/site-publisher": "3.2.0-rc.2", + "@antora/ui-loader": "3.2.0-rc.2", "@antora/user-require-helper": "~3.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/site-mapper": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.2.0-alpha.12.tgz", - "integrity": "sha512-JM9CeuAvqZZejcly64C8WOn2BbMh33iSxZCMyJdWuz1GjIEuI8y3CY0W1YcGNUQtEdEaBfmSArH2aMEz3c4vYg==", + "version": "3.2.0-rc.2", + "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.2.0-rc.2.tgz", + "integrity": "sha512-oucoF+xRGWGNnmxPA4K+RiRx6xk1zGOYnz90cK5Q6uFkwDabOwwJeM6lcp9BgeqL+xqIsw4PXSg87EcuYLsKDQ==", "license": "MPL-2.0", "dependencies": { - "@antora/content-classifier": "3.2.0-alpha.12", + "@antora/content-classifier": "3.2.0-rc.2", "vinyl": "~3.0" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/site-publisher": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.2.0-alpha.12.tgz", - "integrity": "sha512-gde53/tYRgTY8jqYnL1Yq1SmGhd0/+k8iooKBXONzpI6v9crWow4+RTEaGbjVKM0bMS0lBurs+0lyjLzpirUFw==", + "version": "3.2.0-rc.2", + "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.2.0-rc.2.tgz", + "integrity": "sha512-fW+yLMR7NwaLDr9p4pRLFERyVEl36BtTOn+ltkoQ3kjCCl7eopH/43KVLcKK5BFiFLYv8St/3ha8b9iwzSMSpg==", "license": "MPL-2.0", "dependencies": { - "@antora/file-publisher": "3.2.0-alpha.12" + "@antora/file-publisher": "3.2.0-rc.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/ui-loader": { - "version": "3.2.0-alpha.12", - "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.2.0-alpha.12.tgz", - "integrity": "sha512-SkrYKWyMubho7uakypMiHkoV9S+pU9PUxYchCl+FChQGY515LJn1ibOmsZVhcGtbYU1u+YgkBxcG/bujbm4Vfw==", + "version": "3.2.0-rc.2", + "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.2.0-rc.2.tgz", + "integrity": "sha512-rZpnyYzrFJDTrUeQRw5MMYxDQXbH4UDioXlzs3lzH444938jaoocRx+Mpo96G8Bi4McixVDvynxUiUyBgiIpcw==", "license": "MPL-2.0", "dependencies": { "@antora/expand-path-helper": "~3.0", @@ -266,15 +310,37 @@ "cache-directory": "~2.0", "fast-glob": "~3.3", "hpagent": "~1.2", - "js-yaml": "~4.1", + "js-yaml": "~4.2", "picomatch": "~4.0", "should-proxy": "~1.0", "simple-get": "~4.0", "vinyl": "~3.0", - "yauzl": "~3.3" + "yauzl": "~3.4" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" + } + }, + "node_modules/@antora/ui-loader/node_modules/js-yaml": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.2.0.tgz", + "integrity": "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/@antora/user-require-helper": { @@ -974,12 +1040,12 @@ } }, "node_modules/commander": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", - "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/compress-commons": { @@ -1968,9 +2034,9 @@ "license": "MIT" }, "node_modules/isomorphic-git": { - "version": "1.37.9", - "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.37.9.tgz", - "integrity": "sha512-jmjEiXhaPQy27AcTwI6KYFXMhYq3RB5G7MKsFZ/J1oW7dMNOKW9rGi05LhD9Shl7lp15WyQ1cRrRdl0aE8yIhQ==", + "version": "1.38.5", + "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.38.5.tgz", + "integrity": "sha512-4HBmx1UB+SdRaQh7+zN7lvFQxc4zl7s0oIM/1+5xveu6+QrOeFfx5QDeRNpqCzFHICISEdbK7GilsTsrgE006Q==", "license": "MIT", "dependencies": { "async-lock": "^1.4.1", @@ -2400,31 +2466,31 @@ } }, "node_modules/pino": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-10.1.0.tgz", - "integrity": "sha512-0zZC2ygfdqvqK8zJIr1e+wT1T/L+LF6qvqvbzEQ6tiMAoTqEVK9a1K3YRu8HEUvGEvNqZyPJTtb2sNIoTkB83w==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/pino/-/pino-10.3.1.tgz", + "integrity": "sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg==", "license": "MIT", "dependencies": { "@pinojs/redact": "^0.4.0", "atomic-sleep": "^1.0.0", "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^2.0.0", + "pino-abstract-transport": "^3.0.0", "pino-std-serializers": "^7.0.0", "process-warning": "^5.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", "sonic-boom": "^4.0.1", - "thread-stream": "^3.0.0" + "thread-stream": "^4.0.0" }, "bin": { "pino": "bin.js" } }, "node_modules/pino-abstract-transport": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", - "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-3.0.0.tgz", + "integrity": "sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==", "license": "MIT", "dependencies": { "split2": "^4.0.0" @@ -2910,14 +2976,23 @@ } }, "node_modules/thread-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", - "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-4.2.0.tgz", + "integrity": "sha512-e2zZ96wSChazBsbENf/Pcm/4swHt2cEKQ92rhUjkL9GCKiTDJIaTBenjE/m9DXi0QBmTMDkFDdOomUy20A1tDQ==", "license": "MIT", "dependencies": { - "real-require": "^0.2.0" + "real-require": "^1.0.0" + }, + "engines": { + "node": ">=20" } }, + "node_modules/thread-stream/node_modules/real-require": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-1.0.0.tgz", + "integrity": "sha512-P4nbQYQfePJxRSmY+v/KINxVucm4NF3p3s7pJveMTtom52FR4YGltUQLB8idDXwDDWW+eYrWDFbuzUnjoWHF7g==", + "license": "MIT" + }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -3205,27 +3280,17 @@ } }, "node_modules/yauzl": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.3.1.tgz", - "integrity": "sha512-RNPCUkiE/ZgO4w8i9U5yDQVHaFDdnzaFANElRvpJteCspvmv2VqrRb9lvS6odVD+jqI/zDsxAHJVsafpcheVQQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.4.0.tgz", + "integrity": "sha512-jIH9yLR9wqr0wOS0TpBvo/g/2UgZH5qePVbjgRliiF0BYvOZyaBknKsF+x9Iht0O6sqgnB93rCICdOZFecJuDw==", "license": "MIT", "dependencies": { - "buffer-crc32": "~0.2.3", "pend": "~1.2.0" }, "engines": { "node": ">=12" } }, - "node_modules/yauzl/node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/yazl": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/yazl/-/yazl-3.3.1.tgz", diff --git a/antora/package.json b/antora/package.json index 1f9ed7fc1f0a..8b95e5f71f40 100644 --- a/antora/package.json +++ b/antora/package.json @@ -3,8 +3,8 @@ "antora": "node npm/antora.js" }, "dependencies": { - "@antora/cli": "3.2.0-alpha.12", - "@antora/site-generator": "3.2.0-alpha.12", + "@antora/cli": "3.2.0-rc.2", + "@antora/site-generator": "3.2.0-rc.2", "@antora/atlas-extension": "1.0.0-alpha.5", "@springio/antora-extensions": "1.14.12", "@springio/antora-xref-extension": "1.0.0-alpha.5", diff --git a/build-plugin/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/reacting.adoc b/build-plugin/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/reacting.adoc index 5ccd7f80e3f2..33558dd5a706 100644 --- a/build-plugin/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/reacting.adoc +++ b/build-plugin/spring-boot-gradle-plugin/src/docs/antora/modules/gradle-plugin/pages/reacting.adoc @@ -113,5 +113,8 @@ When the {url-cyclonedx-docs-gradle-plugin}[CycloneDX plugin] is applied to a pr When the {url-protobuf-docs-gradle-plugin}[Protobuf plugin] is applied to a project, the Spring Boot plugin: . Configures `protoc` to use the artifact `com.google.protobuf:protoc`, aligning its version with that of Protobuf dependencies on the runtime classpath. -. Configures the `grpc` plugin to use the artifact `io.grpc:protoc-gen-grpc-java`, aligning its version with that of gRPC dependencies on the runtime classpath. + +Additionally, when the Protobuf `grpc` plugin is configured, the Spring Boot plugin: + +. Configures it to use the artifact `io.grpc:protoc-gen-grpc-java`, aligning its version with that of gRPC dependencies on the runtime classpath. . Configures the `grpc` plugin of all generate proto tasks with the option `@generated=omit`. diff --git a/build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/ProtobufPluginAction.java b/build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/ProtobufPluginAction.java index 897c4eadacb1..338bd21b451d 100644 --- a/build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/ProtobufPluginAction.java +++ b/build-plugin/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/ProtobufPluginAction.java @@ -62,8 +62,7 @@ public Class> getPluginClass() { public void execute(Project project) { ProtobufExtension protobuf = project.getExtensions().getByType(ProtobufExtension.class); protobuf.protoc(this::configureProtoc); - protobuf.plugins(this::configurePlugins); - protobuf.generateProtoTasks(this::configureGenerateProtoTasks); + protobuf.plugins((plugins) -> configurePlugins(plugins, protobuf)); project.getConfigurations() .named(this::isProtobufToolsLocator) .configureEach((configuration) -> configureProtobufToolsLocator(project, configuration)); @@ -73,8 +72,11 @@ private void configureProtoc(ExecutableLocator protoc) { protoc.setArtifact(protocDependency.asDependencySpec()); } - private ExecutableLocator configurePlugins(NamedDomainObjectContainer plugins) { - return plugins.create("grpc", (grpc) -> grpc.setArtifact(grpcDependency.asDependencySpec())); + private void configurePlugins(NamedDomainObjectContainer plugins, ProtobufExtension protobuf) { + plugins.matching((plugin) -> "grpc".equals(plugin.getName())).configureEach((grpc) -> { + grpc.setArtifact(grpcDependency.asDependencySpec()); + protobuf.generateProtoTasks(this::configureGenerateProtoTasks); + }); } private void configureGenerateProtoTasks(GenerateProtoTaskCollection tasks) { diff --git a/build-plugin/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/ProtobufPluginActionIntegrationTests.gradle b/build-plugin/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/ProtobufPluginActionIntegrationTests.gradle index 9008568a1f57..4eb508578b99 100644 --- a/build-plugin/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/ProtobufPluginActionIntegrationTests.gradle +++ b/build-plugin/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/ProtobufPluginActionIntegrationTests.gradle @@ -33,6 +33,12 @@ dependencies { implementation("io.grpc:grpc-util:1.79.0") } +protobuf { + plugins { + grpc {} + } +} + tasks.register("protocArtifact") { doFirst { protobuf { diff --git a/module/spring-boot-webclient/src/main/java/org/springframework/boot/webclient/autoconfigure/service/PropertiesWebClientHttpServiceGroupConfigurer.java b/module/spring-boot-webclient/src/main/java/org/springframework/boot/webclient/autoconfigure/service/PropertiesWebClientHttpServiceGroupConfigurer.java index b4460fbab52d..c9d5770316f0 100644 --- a/module/spring-boot-webclient/src/main/java/org/springframework/boot/webclient/autoconfigure/service/PropertiesWebClientHttpServiceGroupConfigurer.java +++ b/module/spring-boot-webclient/src/main/java/org/springframework/boot/webclient/autoconfigure/service/PropertiesWebClientHttpServiceGroupConfigurer.java @@ -47,6 +47,11 @@ */ class PropertiesWebClientHttpServiceGroupConfigurer implements WebClientHttpServiceGroupConfigurer { + /** + * The default order for the PropertiesWebClientHttpServiceGroupConfigurer. + */ + private static final int DEFAULT_ORDER = Ordered.HIGHEST_PRECEDENCE + 10; + private final HttpServiceClientProperties properties; private final HttpClientSettingsPropertyMapper clientSettingsPropertyMapper; @@ -65,7 +70,7 @@ class PropertiesWebClientHttpServiceGroupConfigurer implements WebClientHttpServ @Override public int getOrder() { - return Ordered.HIGHEST_PRECEDENCE; + return DEFAULT_ORDER; } @Override