Skip to content

Commit 6d0bfa2

Browse files
jskupsiklbwexler
andauthored
Reverted toolbox to jdk 21, fixed comments and docs (#852)
Co-authored-by: Lee Wexler <lbwexler@xh.io>
1 parent 51273e3 commit 6d0bfa2

9 files changed

Lines changed: 22 additions & 16 deletions

File tree

.github/workflows/buildRelease.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,10 @@ jobs:
7373
steps:
7474
- uses: actions/checkout@v6
7575

76-
- name: Setup JDK 25
76+
- name: Setup JDK 21
7777
uses: actions/setup-java@v5
7878
with:
79-
java-version: '25'
79+
java-version: '21'
8080
distribution: 'zulu'
8181

8282
- name: Setup Gradle

.github/workflows/buildSnapshot.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ jobs:
4444
steps:
4545
- uses: actions/checkout@v6
4646

47-
- name: Setup JDK 25
47+
- name: Setup JDK 21
4848
uses: actions/setup-java@v5
4949
with:
50-
java-version: '25'
50+
java-version: '21'
5151
distribution: 'zulu'
5252

5353
- name: Setup Gradle

.github/workflows/ci.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ jobs:
2121

2222
steps:
2323
- uses: actions/checkout@v6
24-
- name: Setup JDK 25
24+
- name: Setup JDK 21
2525
uses: actions/setup-java@v5
2626
with:
27-
java-version: '25'
27+
java-version: '21'
2828
distribution: 'zulu'
2929

3030
- name: Setup Gradle
@@ -87,10 +87,10 @@ jobs:
8787

8888
steps:
8989
- uses: actions/checkout@v6
90-
- name: Setup JDK 25
90+
- name: Setup JDK 21
9191
uses: actions/setup-java@v5
9292
with:
93-
java-version: '25'
93+
java-version: '21'
9494
distribution: 'zulu'
9595

9696
# Generates and submits a dependency graph, enabling Dependabot Alerts for all project dependencies.

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
## 9.0-SNAPSHOT - unreleased
44

5+
* Downgraded toolbox build toolchain back to JDK 21 — JDK 25 is not currently usable out of the box (Gradle 8.x caps its compatible JVM at version 24) and requires advanced setup not recommended for most production apps.
6+
* Added a `majorJavaVersion` property to `gradle.properties` to centralize JVM version control, this is a good pattern to have in client apps.
7+
58
## 8.4.0 - 2026-04-30
69

710
### Libraries

CLAUDE.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,8 @@ additional setup required — it runs directly from installed `node_modules`. Se
194194
A Groovy-based MCP server exposing hoist-core docs and AST-based symbol inspection. Runs via a
195195
project-local launcher (`./bin/hoist-core-mcp`) generated by `./gradlew installHoistCoreTools`;
196196
re-run that task after cloning the repo or bumping `hoistCoreVersion`. Toolbox typically tracks a
197-
hoist-core SNAPSHOT, so the bundled content stays close to `develop`. Requires Java 17+. The
198-
same task also writes `./bin/hoist-core-docs` and `./bin/hoist-core-symbols` CLI launchers. See
197+
hoist-core SNAPSHOT, so the bundled content stays close to `develop`. The same task also writes
198+
`./bin/hoist-core-docs` and `./bin/hoist-core-symbols` CLI launchers. See
199199
the `xh:using-hoist-core-reference` skill for the routing table and the full install/upgrade
200200
procedure.
201201

@@ -267,9 +267,11 @@ server only indexes Java source. For navigating into Groovy code, use Grep/Glob
267267

268268
- **Frontend**: TypeScript, React 18, MobX, AG Grid, Highcharts, `@xh/hoist` framework
269269
- **Backend**: Grails 7 (Groovy/Spring Boot), `hoist-core` framework
270-
- **JDK**: Java 25 is required for local development and CI. The Gradle toolchain in
271-
`build.gradle` pins the language level to 25. (Note that `hoist-core` itself is separately
272-
pinned to Java 17 bytecode so its published JAR remains runnable by client apps on JDK 17+.)
270+
- **JDK**: the JVM version used for local development and CI is set by `majorJavaVersion` in
271+
`gradle.properties`; the Gradle toolchain in `build.gradle` reads that value. JDK 25+ is not
272+
currently usable — Gradle 8.x caps its compatible JVM at version 24. (Note that `hoist-core`
273+
itself is separately pinned to a lower bytecode level so its published JAR remains runnable
274+
by older client apps — see `hoist-core` docs for the current minimum.)
273275
- **Database**: MySQL (or H2 in-memory for quick local dev via `APP_TOOLBOX_USE_H2=true`)
274276
- **Package Manager**: Yarn 1.22 (frontend), Gradle via wrapper (backend)
275277

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ springBoot {
4444

4545
java {
4646
toolchain {
47-
languageVersion = JavaLanguageVersion.of(25)
47+
languageVersion = JavaLanguageVersion.of(Integer.parseInt(majorJavaVersion))
4848
}
4949
}
5050

docker/tomcat/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
FROM xhio/xh-tomcat:next-tc10-jdk25
1+
FROM xhio/xh-tomcat:next-tc10-jdk21
22
COPY setenv.sh bin/
33
COPY *.war webapps/ROOT.war

docs/build-and-deploy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ that automate that process.
1515

1616
Runs automatically on pushes and pull requests to `develop`. Includes three independent jobs:
1717

18-
- **Build** — checks out the project, sets up JDK 17 and Gradle, and runs `./gradlew build` to
18+
- **Build** — checks out the project, sets up Java and Gradle, and runs `./gradlew build` to
1919
validate the Grails server compiles successfully.
2020
- **Lint** — sets up Node.js (version from `client-app/.nvmrc`), installs JS dependencies via
2121
`yarn install --frozen-lockfile`, and runs `yarn lint` to validate the client code.

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ xhAppName=Toolbox
33
xhAppPackage=io.xh.toolbox
44
xhAppVersion=9.0-SNAPSHOT
55

6+
majorJavaVersion=21
67
grailsVersion=7.1.1
78
hoistCoreVersion=40.0-SNAPSHOT
89
dotEnvGradlePluginVersion=4.0.0

0 commit comments

Comments
 (0)