Skip to content

635 chore use jdk 25 and aot caching on quarkus playground#636

Merged
fugerit79 merged 7 commits intomainfrom
635-chore-use-jdk-25-and-aot-caching-on-quarkus-playground
Apr 4, 2026
Merged

635 chore use jdk 25 and aot caching on quarkus playground#636
fugerit79 merged 7 commits intomainfrom
635-chore-use-jdk-25-and-aot-caching-on-quarkus-playground

Conversation

@fugerit79
Copy link
Copy Markdown
Member

No description provided.

@fugerit79 fugerit79 linked an issue Apr 4, 2026 that may be closed by this pull request
@fugerit79 fugerit79 requested review from Copilot and mttfranci April 4, 2026 18:28
@fugerit79 fugerit79 self-assigned this Apr 4, 2026
@fugerit79 fugerit79 added the enhancement New feature or request label Apr 4, 2026
@codacy-production
Copy link
Copy Markdown

codacy-production bot commented Apr 4, 2026

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity

Metric Results
Complexity 0

View in Codacy

TIP This summary will be updated as you push new changes. Give us feedback

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the Quarkus playground packaging and CI to target JDK 25 and to introduce build-time AOT cache generation for the container image, while adding Quarkus integration-test wrappers to run the existing REST tests as ITs.

Changes:

  • Add @QuarkusIntegrationTest wrapper classes (*RestIt) for existing REST test suites.
  • Rework the Quarkus playground Dockerfile into a multi-stage build that attempts to generate and ship an AOT cache.
  • Update the Docker publish workflow to build with Java 25 (GraalVM) and enable Quarkus jar AOT packaging; document the base image change in the changelog.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
fj-doc-playground-quarkus/src/test/java/org/fugerit/java/doc/playground/ValRestIt.java Adds IT wrapper for ValRestTest.
fj-doc-playground-quarkus/src/test/java/org/fugerit/java/doc/playground/GenerateRestIt.java Adds IT wrapper for GenerateRestTest (contains a compile-breaking unused import).
fj-doc-playground-quarkus/src/test/java/org/fugerit/java/doc/playground/ConfigRestIt.java Adds IT wrapper for convert tests, but naming doesn’t match the base test class.
fj-doc-playground-quarkus/src/test/java/org/fugerit/java/doc/playground/ConfigConvertRestIt.java Adds IT wrapper for ConfigConvertRestTest.
fj-doc-playground-quarkus/src/test/java/org/fugerit/java/doc/playground/CatalogRestIt.java Adds IT wrapper for CatalogRestTest.
fj-doc-playground-quarkus/Dockerfile Introduces multi-stage AOT cache build + runtime startup that uses the cache if present (currently risks failing the image build).
CHANGELOG.md Notes the Quarkus playground base image move to ubi9/openjdk-25-runtime.
.github/workflows/docker_publish.yml Builds/publishes using Java 25 (GraalVM) and enables Quarkus jar AOT.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +42 to +44
# Copia l'AOT cache generata nello stage precedente
COPY --chown=185:0 --from=aot-builder /deployments/app.aot /deployments/app.aot

Copy link

Copilot AI Apr 4, 2026

Choose a reason for hiding this comment

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

The AOT generation step explicitly warns that /deployments/app.aot might not be generated, but the runtime stage unconditionally COPYs that file from aot-builder. If AOT generation fails or times out, the Docker build will fail at this COPY. To make the build resilient, ensure the file always exists (e.g., create an empty placeholder when missing) or adjust the build so the runtime stage doesn’t depend on a conditional artifact.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

@copilot apply changes based on this feedback

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Ok thanks for the feedback

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Fixed in af47d91. When AOT cache generation fails or times out, the builder stage now runs touch /deployments/app.aot to create an empty placeholder, ensuring the COPY in the runtime stage always succeeds. The existing [ -s app.aot ] check in the CMD already handles the empty-file case by falling back to normal startup.

fugerit79 and others added 2 commits April 4, 2026 20:34
…layground/ConfigRestIt.java

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…layground/GenerateRestIt.java

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…event COPY failure in Docker build

Agent-Logs-Url: https://github.com/fugerit-org/fj-doc/sessions/ffe19657-b523-4007-926f-bca40d9571c4

Co-authored-by: fugerit79 <20170348+fugerit79@users.noreply.github.com>
@fugerit79 fugerit79 merged commit 3a06662 into main Apr 4, 2026
4 checks passed
@fugerit79 fugerit79 deleted the 635-chore-use-jdk-25-and-aot-caching-on-quarkus-playground branch April 4, 2026 18:37
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Apr 4, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CHORE]: use JDK 25 and AOT caching on quarkus playground

3 participants