Skip to content

Upgrade Java runtime to 17 and add container startup verification#143

Merged
tomakehurst merged 9 commits intomainfrom
claude/upgrade-java-17-container-test-2J8PL
Feb 26, 2026
Merged

Upgrade Java runtime to 17 and add container startup verification#143
tomakehurst merged 9 commits intomainfrom
claude/upgrade-java-17-container-test-2J8PL

Conversation

@tomakehurst
Copy link
Member

  • Update all Dockerfiles (standard and Alpine, release and nightly) to use
    eclipse-temurin:17-jre / eclipse-temurin:17-jre-alpine as the runtime base
  • Update nightly build stage from gradle:7-jdk11 to gradle:8-jdk17
  • Bump java.version in integration-tests/pom.xml from 11 to 17
  • Upgrade CI workflow JDK setup from Java 11 to 17
  • Add "Verify container startup" step in ci.yml: starts the freshly built
    image, polls /__admin/health until it responds (30s timeout), then stops
    and removes the container to confirm the image boots correctly

https://claude.ai/code/session_01Pjv2CpfE3we7Tcva58sgUg

claude and others added 9 commits February 26, 2026 09:21
- Update all Dockerfiles (standard and Alpine, release and nightly) to use
  eclipse-temurin:17-jre / eclipse-temurin:17-jre-alpine as the runtime base
- Update nightly build stage from gradle:7-jdk11 to gradle:8-jdk17
- Bump java.version in integration-tests/pom.xml from 11 to 17
- Upgrade CI workflow JDK setup from Java 11 to 17
- Add "Verify container startup" step in ci.yml: starts the freshly built
  image, polls /__admin/health until it responds (30s timeout), then stops
  and removes the container to confirm the image boots correctly

https://claude.ai/code/session_01Pjv2CpfE3we7Tcva58sgUg
- Revert ci.yml JDK setup back to 11 and remove the startup test step
  that was incorrectly added to the generic CI workflow
- Add verify-container-startup job to release-4.x-beta.yml: builds the
  standard image locally (amd64) with the bundled WireMock version,
  starts the container, polls /__admin/health until it responds (30s
  timeout), then stops and removes it
- Make docker-build-push depend on verify-container-startup so the
  multi-platform push only happens after the container is confirmed healthy

https://claude.ai/code/session_01Pjv2CpfE3we7Tcva58sgUg
Instead of hard-coding a Java version in the Dockerfiles, introduce a
JAVA_VERSION build arg that defaults to 11 so existing 3.x release
workflows are unaffected. The release-4.x-beta.yml workflow passes
JAVA_VERSION=17 in every build (both the local verify-container-startup
build and the multi-platform docker-build-push).

https://claude.ai/code/session_01Pjv2CpfE3we7Tcva58sgUg
The integration tests (pom.xml java.version=17) require JDK 17 to compile,
so running them under JDK 11 fails. Add two new matrix entries — standard
and Alpine — with JAVA_VERSION: 17. Each entry passes JAVA_VERSION as a
Docker build arg (so the correct JRE is baked into the image) and uses it
for the actions/setup-java step (so Maven compiles and runs under the
matching JDK). The existing JAVA_VERSION: 11 entries are preserved for
continued 3.x coverage.

https://claude.ai/code/session_01Pjv2CpfE3we7Tcva58sgUg
…version

The test runner JDK and the JRE inside the Docker container are independent.
pom.xml targets Java 17 (source/target), so JDK 11 fails to compile with
"invalid source release: 17". Fix by pinning the setup-java step to 17 for
all matrix entries. JAVA_VERSION continues to control only the Docker build
arg (i.e. which JRE is baked into the image being tested).

https://claude.ai/code/session_01Pjv2CpfE3we7Tcva58sgUg
Eclipse Temurin dropped 32-bit ARM (armv7/armhf) support in Java 17.
eclipse-temurin:17-jre has no linux/arm/v7 manifest, so the multi-platform
docker/build-push-action step was failing for that platform target.

Java 17 matrix now builds only linux/amd64 and linux/arm64 (64-bit ARM),
which are both supported. The Java 11 matrix continues to include
linux/arm/v7 as before since eclipse-temurin:11-jre supports it.

https://claude.ai/code/session_01Pjv2CpfE3we7Tcva58sgUg
@tomakehurst tomakehurst merged commit e4998c1 into main Feb 26, 2026
4 of 8 checks passed
@tomakehurst tomakehurst deleted the claude/upgrade-java-17-container-test-2J8PL branch February 26, 2026 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants