Skip to content

OF-3326 - Default to Java 21 in Docker, add Java 25 variant - #3419

Open
Fishbowler wants to merge 1 commit into
igniterealtime:mainfrom
Fishbowler:docker-java-25
Open

OF-3326 - Default to Java 21 in Docker, add Java 25 variant#3419
Fishbowler wants to merge 1 commit into
igniterealtime:mainfrom
Fishbowler:docker-java-25

Conversation

@Fishbowler

@Fishbowler Fishbowler commented Jul 4, 2026

Copy link
Copy Markdown
Member

Java 21 is LTS, and we've got users using it. This upgrades our default container images to use it.

Changes to Java make a jump to 25 by default too risky for plugins at this point in time, but this adds a 25 variant to our publishing to allow experimentation.

This adds -java21 and -java25 suffixes to image tags, and defaults the "suffixless" version to Java 21.

     Resulting published tags:                                                                                                                                                                                                     
                                                                                                                                                                                                                                   
     ┌────────────────┬───────────────────────┬───────────────┐                                                                                                                                                                    
     │    Trigger     │     Java 21 tags      │  Java 25 tag  │                                                                                                                                                                    
     ├────────────────┼───────────────────────┼───────────────┤                                                                                                                                                                    
     │ push to main   │ main, main-java21     │ main-java25   │                                                                                                                                                                    
     ├────────────────┼───────────────────────┼───────────────┤                                                                                                                                                                    
     │ push to 5.1    │ 5.1, 5.1-java21       │ 5.1-java25    │                                                                                                                                                                    
     ├────────────────┼───────────────────────┼───────────────┤                                                                                                                                                                    
     │ push of v5.1.0 │ v5.1.0, v5.1.0-java21 │ v5.1.0-java25 │                                                                                                                                                                    
     └────────────────┴───────────────────────┴───────────────┘     

@coderabbitai

coderabbitai Bot commented Jul 4, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: e99bcaa9-e088-4320-b237-a56fe11ce3e5

📥 Commits

Reviewing files that changed from the base of the PR and between b2fcdaf and 453deca.

📒 Files selected for processing (1)
  • .github/workflows/continuous-integration-workflow.yml

Included review availability: Your plan provides up to 8 included reviews per hour; 6 remain after this review.


📝 Walkthrough

Walkthrough

The Dockerfile now accepts JAVA_VERSION, defaulting to 21, across all build and runtime stages. CI builds and stores Docker images for Java 21 and 25, uses the Java 21 image for integration, and publishes plain Java 21 tags alongside Java-versioned tags for both versions.

Suggested reviewers: guusdk

Merge Risk: 🟡 Moderate · up to 453de

Version tag pushes currently would omit the promised major.minor image aliases such as 5.1 and its Java variants, leaving the published tags inconsistent with the PR description. The workflow rules should be corrected before merge.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed The pull request description directly explains the Docker image updates, Java 21 default, Java 25 variant, and image tag suffixes described in the changeset.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Fishbowler
Fishbowler force-pushed the docker-java-25 branch 2 times, most recently from c53dc32 to b5154ab Compare July 7, 2026 18:40
@Fishbowler
Fishbowler marked this pull request as ready for review July 7, 2026 18:41
@Fishbowler Fishbowler changed the title Docker - Default to Java 21, add Java 25 OF-3326 - Default to Java 21 in Docker, add Java 25 variant Jul 7, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
.github/workflows/continuous-integration-workflow.yml (1)

1299-1303: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick win

Move the generated tags into env. Line 1302 splices multiline step outputs directly into the shell script; pass them through environment variables first so the script only expands $PLAIN_TAGS and $VERSIONED_TAGS.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/continuous-integration-workflow.yml around lines 1299 -
1303, The tag-pushing shell step is expanding multiline step outputs directly
inside the script, which should be moved into environment variables instead.
Update the Tag and push image step to pass the values from
steps.meta.outputs.tags and steps.meta-versioned.outputs.tags through env (for
example as PLAIN_TAGS and VERSIONED_TAGS), then build ALL_TAGS from those
variables inside the run block; use the existing push step to locate it.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/continuous-integration-workflow.yml:
- Around line 1285-1297: The two docker/metadata-action@v6 steps in the workflow
metadata setup need the semver minor alias added so release images publish both
full tags and minor-version tags. Update the metadata configuration in the
“Extract metadata (plain tags, default Java version only)” step and the “Extract
metadata (versioned tags)” step to include a semver rule using
pattern={{major}}.{{minor}}, and keep the existing java suffix behavior in the
meta-versioned step so it produces tags like 5.1 and 5.1-java25.

---

Nitpick comments:
In @.github/workflows/continuous-integration-workflow.yml:
- Around line 1299-1303: The tag-pushing shell step is expanding multiline step
outputs directly inside the script, which should be moved into environment
variables instead. Update the Tag and push image step to pass the values from
steps.meta.outputs.tags and steps.meta-versioned.outputs.tags through env (for
example as PLAIN_TAGS and VERSIONED_TAGS), then build ALL_TAGS from those
variables inside the run block; use the existing push step to locate it.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 48c4c722-8e72-401c-b755-2c1be4d01eaf

📥 Commits

Reviewing files that changed from the base of the PR and between 9c2279d and b5154ab.

📒 Files selected for processing (2)
  • .github/workflows/continuous-integration-workflow.yml
  • Dockerfile

Comment thread .github/workflows/continuous-integration-workflow.yml
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