Compare commits

..

76 Commits

Author SHA1 Message Date
Sam Brannen ed3d91b929 Update antora-extensions to 1.14.12
See gh-36851
2026-05-28 11:01:56 +02:00
Sam Brannen 731ceb8aca Upgrade to fast-xml-parser 5.7.0 2026-05-27 12:19:12 +02:00
Sam Brannen 6f213fb6a0 Upgrade Antora dependencies 2026-05-27 12:13:00 +02:00
Sam Brannen 131ae59724 Pin Node.js version to 24.15.0
Prior to this commit, the `antora` Gradle task silently failed to build
the reference documentation, since Antora uses the latest LTS release
for Node.js by default, and the latest LTS apparently does not work for
us.
2026-05-27 12:09:02 +02:00
Brian Clozel dd3b3a7c69 Remove 6.0.x and 6.1.x reference docs
Branches are now in commercial support mode.
2026-03-23 09:32:20 +01:00
github-actions[bot] cbe79a9241 Update Antora Spring UI to v0.4.26 2026-03-14 10:10:40 +00:00
Sébastien Deleuze ef4a5fb54c Upgrade Antora dependencies
See gh-36105
See gh-36106
2026-01-07 10:20:21 +01:00
Sam Brannen 8ffaec5d72 Update rsync-antora-reference to v0.0.22
Closes gh-35951
2025-12-02 15:40:24 +01:00
Sam Brannen 578cdb5f7e Update antora-extensions to 1.14.7
Closes gh-35949
2025-12-02 15:38:11 +01:00
Sam Brannen 305a512a55 Stop linking to 6.1.22-SNAPSHOT reference docs
With this commit, we now include snapshots for main (which currently
correlates to 7.0.x), 6.2.x, and 7.0.x to 9.*.x.

Closes gh-35923
2025-11-28 12:59:04 +01:00
github-actions[bot] cf036eeaa3 Update Antora UI Spring to v0.4.25
Closes gh-35877

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-11-24 14:43:29 +01:00
github-actions[bot] fa8a30f753 Update Antora Spring UI to v0.4.22
Closes gh-35858
2025-11-24 10:17:15 +01:00
github-actions[bot] f63ae425bf Update Antora Spring UI to v0.4.20
Closes gh-35812
2025-11-17 14:21:09 +01:00
github-actions[bot] fa20dd820d Update Antora Spring UI to v0.4.19
Closes gh-35796
2025-11-12 12:33:31 +01:00
Sébastien Deleuze 01cebc85b4 Flip the Java 17/25 order
To use Java 17 as the default.
2025-09-23 18:46:47 +02:00
Sébastien Deleuze 6cf89a1e58 Upgrade to Gradle 9.1.0 and Java 25 2025-09-23 18:26:58 +02:00
Brian Clozel e5e8574466 Install both Java 17 and Java 24 for building docs
Docs branches have different Java requirements we should ensure that all
required Java versions are available locally.
2025-06-13 00:52:48 +02:00
Brian Clozel a2cabcbb90 Enable automatic toolchain provisioning 2025-06-12 17:27:03 +02:00
Brian Clozel 9b3625b39e Upgrade to Gradle 8.14.2 2025-06-12 09:33:44 +02:00
Brian Clozel 7232e83807 Fix failing build for docs
As of https://github.com/spring-projects/spring-framework/issues/35007,
the auto-provisioning is disabled for Java runtimes in Gradle.
This makes the build fail because Java 24 is required for building the
docs whereas this action is setting up Java 17.

This commit also upgrades other GitHub actions.
2025-06-12 09:22:16 +02:00
Sébastien Deleuze 91afab7723 Fix broken antora task
See https://github.com/spring-io/antora-extensions/pull/43
2025-02-19 16:49:24 +01:00
github-actions[bot] e19a8e58fc Update Antora UI Spring to v0.4.18 (#33899)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-16 17:51:07 +01:00
Sébastien Deleuze 5f2707a7e3 Upgrade Antora extensions to 1.14.2
It adds support to external link CSS style via
override-navigation-builder-extension.
2024-10-22 08:46:36 +02:00
github-actions[bot] 92ecef74ec Update Antora Spring UI to v0.4.17 2024-10-16 14:12:11 +02:00
Stéphane Nicoll 11c9373439 Polish 2024-08-22 11:09:18 +02:00
Stéphane Nicoll 6f8db2cfd3 Upgrade to Java 17.0.12 2024-08-22 10:33:30 +02:00
Stéphane Nicoll bff8cff03b Upgrade to Gradle 8.9 2024-08-22 10:32:50 +02:00
Sébastien Deleuze c55979b8a9 Build documentation branches only for 6.1 and later
To avoid a duplication error caused by a conflict between the
6.0.x branch and the v6.0.23 tag.
2024-08-16 17:01:00 +02:00
github-actions[bot] 097c773b91 Update Antora Spring UI to v0.4.16 2024-06-17 10:06:44 +00:00
Sébastien Deleuze 431cce0b1e Upgrade to Gradle 8.7 2024-05-27 16:57:12 +02:00
Sébastien Deleuze 0ed87a350c Revert "Add update-antora-ui-spring.yml workflow"
This reverts commit 1a43d698d1.
2024-05-27 16:53:11 +02:00
Marcus Hert Da Coregio 1a43d698d1 Add update-antora-ui-spring.yml workflow 2024-05-24 16:55:10 +02:00
Sébastien Deleuze 94c5481e9e Remove per-branch-antora-playbook.yml
Not needed anymore due to gh-32864.
2024-05-22 16:47:44 +02:00
Rob Winch 41675587ea Modernize Antora Build
- Use package.json so dependabot can automatically update JS dependencies
- Use @springio/antora-extensions (automatically apply default extensions
  in proper order)
- Leverage set-algolia-env-extension to manage algolia env variables
- Update to latest ui

Closes gh-32863
2024-05-22 16:45:17 +02:00
Sébastien Deleuze b14a20161f Update spring-doc-actions to 0.0.16 2024-05-16 18:00:25 +02:00
Sébastien Deleuze 10e5029e88 Upgrade to antora-ui-spring 0.4.13
See https://github.com/spring-io/antora-ui-spring/pull/234
2024-05-15 18:44:01 +02:00
Sébastien Deleuze 4b2552f498 Upgrade to antora-ui-spring 0.4.12 in per-branch-antora-playbook.yml 2024-04-05 10:31:54 +02:00
Sébastien Deleuze 554f15262d Upgrade to antora-ui-spring 0.4.12 2024-04-05 10:00:45 +02:00
Sébastien Deleuze 9fc8046728 Upgrade asciidoctor-extensions to 1.0.0-alpha.10
See gh-22171
2024-03-07 18:03:52 +01:00
Rob Winch 9b60075085 Fixes atlas-extension order
The atlas-extension must be registered before the latest-version-extension
so that the latest version logic is applied to versions imported from the
atlas-extension.

Closes gh-32067
2024-01-22 20:40:47 +01:00
Sébastien Deleuze aa2ea2055d Enable .htaccess generation on per branch builds
See gh-32044
2024-01-19 18:34:54 +01:00
Rob Winch f9c1e6053c Update to spring-io/spring-doc-actions v0.0.14 2024-01-19 17:16:05 +01:00
Rob Winch 2362a142c1 Update to antora-extensions 1.8.2 2024-01-19 09:16:27 +01:00
Stéphane Nicoll b656bb4855 Merge pull request #31701 from rwinch/docs-build-version-updates
Docs build version updates
2023-11-28 10:33:31 +01:00
Rob Winch c6eb4c0eae antora-extensions 1.7.0 2023-11-27 23:36:33 -06:00
Rob Winch 57c6cc83da antora-ui-spring v0.4.9 2023-11-27 23:36:33 -06:00
Rob Winch 1943aad216 Remove @opendevise/antora-release-line-extension
This causes conflicts with latest-version-extension and needs removed.

Closes gh-31480
2023-10-25 19:40:40 +02:00
Rob Winch 57b9a57452 Add Search in all Spring Docs
Closes gh-31290
2023-09-22 10:25:36 +02:00
Rob Winch 35f3e5d664 Update to antora-ui-spring 0.3.6 2023-09-08 08:36:24 +01:00
Rob Winch d88eccc837 Update to antora-ui-spring 0.3.5 2023-08-28 14:04:55 -05:00
Stephane Nicoll 3f8db79e1c Docs build updates
Closes gh-31022
2023-08-10 15:51:16 +02:00
Rob Winch e30e453bb4 Use bust-cloudflare-antora-cache@v0.0.11
Various bug fixes and features
2023-08-09 17:11:59 -05:00
Rob Winch edc01f4957 Add caching for the collector
Cache the collector output for tags which speeds up builds with tags.

- Add inject-collector-cache-config-extension
- Update deployment to include the cache in the site
- Update rsync-antora-referece to handle the cache properly
2023-08-09 17:11:17 -05:00
Rob Winch a53a17c01a Add the partial build extension
Allows partial builds to occur from other branches.
2023-08-09 17:08:29 -05:00
Rob Winch 6c95ee2334 latest-version-extension before collector-extension
This ensures that the versions that do not need to be built will be removed
prior to running the collector on them and thus saving time.
2023-08-09 17:07:57 -05:00
Rob Winch 6236ed56e4 Update to antora-extensions 1.4.2 2023-08-09 17:07:06 -05:00
Rob Winch 6455960cf1 Fix space to tabs 2023-08-09 17:06:53 -05:00
Rob Winch 3771743082 Use a map for antora.options 2023-08-09 17:06:36 -05:00
Rob Winch 1e3b4cdc34 Fix site.url
This was causing the .htaccess file to be generated incorrectly which
prevented redirects from happening properly.

Closes gh-31018
2023-08-09 17:04:47 -05:00
Rob Winch 889c9c7de4 Update to antora-ui-spring 0.3.3 2023-07-18 11:14:26 -05:00
Rob Winch da97ab1dea Update to spring-antora-ui v0.3.2 2023-07-12 17:31:20 +01:00
Rob Winch 9ac9cd15fb Update to antora-ui-spring v0.3.1
- Adds GitHub Project Link
- Adds Stackoverflow Link
- Adds Related Documentation links
2023-07-12 17:07:52 +01:00
Stéphane Nicoll 621f0a6568 Merge pull request #30673 from rwinch/spring-doc-actions-v0.0.8
Upgrade to spring-doc-actions 0.0.8
2023-06-19 15:48:41 +02:00
Rob Winch 6fb9e4a9ea Update to spring-doc-actions 0.0.8 2023-06-14 15:47:23 -05:00
rstoyanchev 3881954125 Roll back rsync-antora-reference to 0.0.5 for now 2023-06-14 20:04:24 +01:00
Rob Winch 42a4409c73 Update to antora-ui-spring v0.3.0 2023-06-14 19:52:49 +01:00
Rob Winch 6c5ef6db1e Add bust-cloudflare-antora-cache
This is necessary so that the css and JavaScript cache will be busted
when updates are deployed
2023-06-14 19:52:49 +01:00
rstoyanchev f4ccf68458 Revert "Use cached playbook in build dir"
This reverts commit 4aa824d456.

See gh-30481
2023-05-23 15:10:24 +01:00
Rob Winch 4aa824d456 Use cached playbook in build dir
Closes gh-30466
2023-05-10 17:38:01 +01:00
rstoyanchev 6a68b4d299 Polishing
Closes gh-30453
2023-05-10 17:36:32 +01:00
Rob Winch 28cc8b7a08 Include future Spring branches and Releases
See gh-30453
2023-05-10 17:36:32 +01:00
Rob Winch 317eee83ac Enable tabs-sync-option
This ensures that the tabs are synced across pages. See
https://github.com/asciidoctor/asciidoctor-tabs#tabs-sync
2023-05-05 17:17:21 +01:00
Rob Winch 81e9a8a26d rwinch to spring-projects 2023-05-04 17:48:59 +01:00
rstoyanchev a2337b73e0 Add main branch to antora-playbook
Closes gh-30415
2023-05-04 15:54:49 +01:00
Rob Winch 8422f0f5b7 Initial 2023-05-03 00:20:21 -05:00
rstoyanchev dc3c016712 Add .gitignore 2023-04-24 15:38:47 +01:00
15 changed files with 677 additions and 18 deletions
+57
View File
@@ -0,0 +1,57 @@
name: Build and Deploy Documentation
run-name: ${{ format('{0} ({1})', github.workflow, github.event.inputs.build-refname || 'all') }}
on:
workflow_dispatch:
inputs:
build-refname:
description: Enter git refname to build (e.g., 5.7.x).
required: false
push:
branches: docs-build
env:
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
permissions: read-all
jobs:
build-and-deploy-docs:
name: Build and Deploy Documentation
if: github.repository_owner == 'spring-projects'
runs-on: ubuntu-latest
steps:
- name: Check Out
uses: actions/checkout@v4
with:
fetch-depth: 5
- name: Set Up Java
uses: actions/setup-java@v4
with:
distribution: 'liberica'
java-version: |
25
17
- name: Set Up Gradle
uses: gradle/actions/setup-gradle@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1
with:
cache-read-only: false
- name: Set up refname build
if: github.event.inputs.build-refname
run: |
git fetch --depth 1 https://github.com/$GITHUB_REPOSITORY ${{ github.event.inputs.build-refname }}
echo BUILD_REFNAME=${{ github.event.inputs.build-refname }} >> $GITHUB_ENV
echo BUILD_VERSION=$(git cat-file --textconv FETCH_HEAD:gradle.properties | sed -n '/^version=/ { s/^version=//;p }') >> $GITHUB_ENV
- name: Run Antora
run: ./gradlew antora
- name: Copy the cache to be included in the site
run: cp -rf build/antora/inject-collector-cache-config-extension/.cache build/site/
- name: Publish Docs
uses: spring-io/spring-doc-actions/rsync-antora-reference@v0.0.22
with:
docs-username: ${{ secrets.DOCS_USERNAME }}
docs-host: ${{ secrets.DOCS_HOST }}
docs-ssh-key: ${{ secrets.DOCS_SSH_KEY }}
docs-ssh-host-key: ${{ secrets.DOCS_SSH_HOST_KEY }}
- name: Bust Cloudflare Cache
uses: spring-io/spring-doc-actions/bust-cloudflare-antora-cache@v0.0.22
with:
context-root: spring-framework
cloudflare-zone-id: ${{ secrets.CLOUDFLARE_ZONE_ID }}
cloudflare-cache-token: ${{ secrets.CLOUDFLARE_CACHE_TOKEN }}
+55 -7
View File
@@ -1,8 +1,56 @@
#*
.#*
*~
_site
.idea
*.sw[op]
# Miscellaneous
*.java.hsp
*.sonarj
*.sw*
.DS_Store
build.sh
integration-repo
ivy-cache
argfile*
activemq-data/
classes/
# Log files
jxl.log
jmx.log
derby.log
# Gradle artifacts
.gradle
.gradletasknamecache
/build
buildSrc/build
/spring-*/build
/framework-bom/build
/framework-docs/build
/integration-tests/build
/src/asciidoc/build
spring-test/test-output/
# Maven artifacts
pom.xml
/target/
# Eclipse artifacts, including WTP generated manifests
bin
.classpath
.project
sample-pages
.settings
.springBeans
spring-*/src/main/java/META-INF/MANIFEST.MF
# IDEA artifacts and output dirs
*.iml
*.ipr
*.iws
.idea
out
test-output
atlassian-ide-plugin.xml
# VS Code
.vscode/
cached-antora-playbook.yml
node_modules
+3
View File
@@ -0,0 +1,3 @@
# Enable auto-env through the sdkman_auto_env config
# Add key=value pairs of SDKs to use below
java=17.0.12-librca
+140
View File
@@ -0,0 +1,140 @@
= Spring Framework Docs Build
You're currently viewing the Antora playbook branch.
The playbook branch hosts the docs build that is used to build and publish the production docs site.
The Spring Framework reference docs are built using https://antora.org[Antora].
This README covers how to build the docs in a software branch as well as how to build the production docs site locally.
== Overview
To prepare your system for building the documentation, <<prerequisites,install the prerequisites>> and then <<build-main,create your workspace and build the main branch documentation>>.
Once you've completed those steps, follow the instructions in <<build-branch,Build the 6.0.x branch documentation>> to learn how to build the documentation for a version branch you haven't previously checked out.
To build the production site documentation on your computer, follow the instructions in <<prerequisites,Prerequisites>>, <<build-main,Build the main branch documentation>>, and then <<build-production,Build the production documentation site>>.
.Branch checkout instead of worktrees
[NOTE]
====
If you prefer to set up your workspace without worktrees, complete the steps in <<prerequisites,Prerequisites>> and clone the project repository onto your computer.
Then follow the instructions in each section starting from the `sdk env || sdk env install` step once you've checked out the desired branch.
====
[#prerequisites]
== Prerequisites (everyone)
These instructions assume you already have basic tools on your system, including bash, zip, unzip, git, and curl.
In addition to these basic tools, you need https://sdkman.io/install[SDKMAN!] installed so that the correct JDK is set for each branch.
. Open your terminal and enter the following command:
+
--
$ curl -s "https://get.sdkman.io" | bash
This command downloads and installs SDKMAN!
Once installation is complete, you should see a command displayed in your terminal that will initiate SDKMAN.
--
. Copy the command displayed in your terminal and run it.
`$HOME` is the path unique to your computer (e.g., _home/my-jam/.sdkman/bin/sdkman-init.sh_).
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
You'll use SDKMAN in the next sections to install and switch to the JDK required for each branch.
Now you're ready to <<build-main,create your workspace>>.
[#build-main]
== Build the main branch documentation (writers)
Your workspace will be the folder that contains the git worktrees of the project.
. In your terminal, create a directory for the project and then change into that directory.
$ mkdir spring-framework
$ cd spring-framework
. Clone the project repository and create the primary worktree for the main branch.
Then change into the new _main_ folder.
$ git clone https://github.com/spring-projects/spring-framework main
$ cd main
. Switch to the required JDK using SDKMAN by running the following command:
+
--
$ sdk env || sdk env install
SDKMAN will switch to the required JDK or install it if it isn't present.
--
. Generate the documentation with Antora using the following command:
+
--
$ ./gradlew -PbuildSrc.skipTests=true :framework-docs:antora
This command will build the documentation, including any generated attributes, for the main branch.
--
. Navigate to _$HOME/spring-framework/main/framework-docs/build/site/index.html_ to view the generated documentation.
[#build-branch]
== Build the 6.0.x branch documentation (writers)
NOTE: The instructions in this section assume you've completed the steps in the <<build-main,previous section>>.
After creating the worktree for the main branch, you can set up a worktree for any other branches you'll work on in the future.
In this section, you'll create a worktree for the 6.0.x branch in your project workspace.
. To add a worktree, you have to be in a worktree.
In your terminal, change to the _main_ folder if you aren't already in it, e.g., _$HOME/spring-framework/main_.
Set up a worktree for the 6.0.x branch and then change into the new directory by running the following commands:
$ git worktree add ../6.0.x 6.0.x --track
$ cd ../6.0.x
. Switch to the required JDK or install it.
$ sdk env || sdk env install
. Generate the documentation with the following command:
+
--
$ ./gradlew -PbuildSrc.skipTests=true :framework-docs:antora
This command will build the documentation, including any generated attributes, for the 6.0.x branch.
--
. Navigate to _$HOME/spring-framework/6.0.x/docs/build/site/index.html_ to view the generated documentation.
[#build-production]
== Build the production documentation site (docs manager)
NOTE: The instructions in this section assume you've <<build-main,prepared your workspace and created the worktree for the main branch>>.
To build the project's production site, you'll set up a worktree for the docs-build branch of the repository.
. To add a worktree, you have to be in a worktree.
In your terminal, change to the _main_ folder if you aren't already in it, e.g., _$HOME/spring-framework/main_.
Run the following command to set up the worktree for the _docs-build_ branch.
Then change into the new _docs-build_ directory.
$ git worktree add ../docs-build docs-build --track
$ cd ../docs-build
. Switch to the required JDK or install it.
$ sdk env || sdk env install
. Generate the documentation for the project's production site using the following command:
+
--
$ ./gradlew antora
This command will build all of the documentation included in the project's production site from the repository on GitHub.
To build the documentation from the current clone, using any worktrees that are available, use the following command instead:
$ ./gradlew antora --playbook local-antora-playbook.yml
--
. Navigate to _$HOME/spring-framework/docs-site/build/site/index.html_ to view the generated documentation.
+41
View File
@@ -0,0 +1,41 @@
antora:
extensions:
- require: '@springio/antora-extensions'
root_component_name: 'framework'
site:
title: Spring Framework
url: https://docs.spring.io/spring-framework/reference
robots: allow
git:
ensure_git_suffix: false
content:
sources:
- url: https://github.com/spring-projects/spring-framework
# Refname matching:
# https://docs.antora.org/antora/latest/playbook/content-refname-matching/
# branches: We include snapshots for main, 6.2.x, and 7.0.x to 9.*.x.
branches: ['main', '6.2.x', '{7..9}.+({0..9}).x']
# tags: include all releases from 6.2.0 to 9.*.*.
tags: ['v6.2.+({0..9})', 'v{7..9}.+({0..9}).+({0..9})?(-{RC,M}*)']
start_path: framework-docs
asciidoc:
extensions:
- '@asciidoctor/tabs'
- '@springio/asciidoctor-extensions'
- '@springio/asciidoctor-extensions/include-code-extension'
attributes:
page-stackoverflow-url: https://stackoverflow.com/questions/tagged/spring
page-pagination: ''
hide-uri-scheme: '@'
tabs-sync-option: '@'
include-java: 'example$docs-src/main/java/org/springframework/docs'
urls:
latest_version_segment_strategy: redirect:to
latest_version_segment: ''
redirect_facility: httpd
runtime:
log:
failure_level: warn
ui:
bundle:
url: https://github.com/spring-io/antora-ui-spring/releases/download/v0.4.26/ui-bundle.zip
+12
View File
@@ -0,0 +1,12 @@
plugins {
id 'base'
id 'org.antora' version '1.0.0'
}
antora {
options = [clean: true, fetch: true, stacktrace: true]
}
node {
version = '24.15.0'
}
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

+2
View File
@@ -0,0 +1,2 @@
group=org.springframework
description=Spring Framework Docs Site
Binary file not shown.
+7
View File
@@ -0,0 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Vendored Executable
+251
View File
@@ -0,0 +1,251 @@
#!/bin/sh
#
# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
#
##############################################################################
#
# Gradle start up script for POSIX generated by Gradle.
#
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
app_path=$0
# Need this for daisy-chained symlinks.
while
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
[ -h "$app_path" ]
do
ls=$( ls -ld "$app_path" )
link=${ls#*' -> '}
case $link in #(
/*) app_path=$link ;; #(
*) app_path=$APP_HOME$link ;;
esac
done
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
warn () {
echo "$*"
} >&2
die () {
echo
echo "$*"
echo
exit 1
} >&2
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "$( uname )" in #(
CYGWIN* ) cygwin=true ;; #(
Darwin* ) darwin=true ;; #(
MSYS* | MINGW* ) msys=true ;; #(
NONSTOP* ) nonstop=true ;;
esac
CLASSPATH="\\\"\\\""
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD=$JAVA_HOME/jre/sh/java
else
JAVACMD=$JAVA_HOME/bin/java
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD=java
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi
# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC2039,SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
fi
# Collect all arguments for the java command, stacking in reverse order:
# * args from the command line
# * the main class name
# * -classpath
# * -D...appname settings
# * --module-path (only if needed)
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
# For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
case $arg in #(
-*) false ;; # don't mess with options #(
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
[ -e "$t" ] ;; #(
*) false ;;
esac
then
arg=$( cygpath --path --ignore --mixed "$arg" )
fi
# Roll the args list around exactly as many times as the number of
# args, so each arg winds up back in the position where it started, but
# possibly modified.
#
# NB: a `for` loop captures its iteration list before it begins, so
# changing the positional parameters here affects neither the number of
# iterations, nor the values presented in `arg`.
shift # remove old arg
set -- "$@" "$arg" # push replacement arg
done
fi
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
#
# In Bash we could simply go:
#
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
# set -- "${ARGS[@]}" "$@"
#
# but POSIX shell has neither arrays nor command substitution, so instead we
# post-process each arg (as a line of input to sed) to backslash-escape any
# character that might be a shell metacharacter, then use eval to reverse
# that process (while maintaining the separation between arguments), and wrap
# the whole thing up as a single "set" statement.
#
# This will of course break if any of these variables contains a newline or
# an unmatched quote.
#
eval "set -- $(
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
xargs -n1 |
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@"
Vendored
+94
View File
@@ -0,0 +1,94 @@
@rem
@rem Copyright 2015 the original author or authors.
@rem
@rem Licensed under the Apache License, Version 2.0 (the "License");
@rem you may not use this file except in compliance with the License.
@rem You may obtain a copy of the License at
@rem
@rem https://www.apache.org/licenses/LICENSE-2.0
@rem
@rem Unless required by applicable law or agreed to in writing, software
@rem distributed under the License is distributed on an "AS IS" BASIS,
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@rem SPDX-License-Identifier: Apache-2.0
@rem
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if %ERRORLEVEL% equ 0 goto execute
echo. 1>&2
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto execute
echo. 1>&2
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
:execute
@rem Setup the command line
set CLASSPATH=
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
:end
@rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
-11
View File
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<meta charset="utf-8">
<title>Redirecting&hellip;</title>
<link rel="canonical" href="https://spring.io/projects/spring-framework">
<meta http-equiv="refresh" content="0; url=https://spring.io/projects/spring-framework">
<meta name="robots" content="noindex">
<h1>Redirecting&hellip;</h1>
<a href="https://spring.io/projects/spring-framework">Click here if you are not redirected.</a>
<script>location="https://spring.io/projects/spring-framework"</script>
</html>
+11
View File
@@ -0,0 +1,11 @@
{
"dependencies": {
"antora": "3.2.0-alpha.12",
"@antora/atlas-extension": "1.0.0-alpha.5",
"@antora/collector-extension": "1.0.3",
"@asciidoctor/tabs": "1.0.0-beta.6",
"@springio/antora-extensions": "1.14.12",
"fast-xml-parser": "5.7.0",
"@springio/asciidoctor-extensions": "1.0.0-alpha.18"
}
}
+4
View File
@@ -0,0 +1,4 @@
plugins {
id "org.gradle.toolchains.foojay-resolver-convention" version "1.0.0"
}