Support Maven smoke test apps#11695
Conversation
The smoke-test-app plugin now has separate Gradle and Maven application entry points. OpenLiberty smoke tests can use the shared nested-build wiring instead of bespoke Exec tasks, while existing Gradle smoke-test apps keep the same task model. Maven apps still launch through the checked-in root mvnw instead of an installed mvn. Keeping mvnw preserves the Maven version pinned by .mvn/wrapper/maven-wrapper.properties and gives CI and local builds the same cross-platform launcher. CI no longer rewrites maven-wrapper.properties to use MASS. Apache Maven Wrapper documents MVNW_REPOURL as the repository-manager override, so GitLab exports it from MAVEN_REPOSITORY_PROXY and trims the trailing slash before mvnw appends the Maven distribution path: https://maven.apache.org/tools/wrapper/#Using_a_Maven_Repository_Manager The Maven path is covered by smoke-test plugin tests. ProjectBuilder verifies mavenApp task wiring, and the TestKit end-to-end test runs a fake mvnw with MAVEN_REPOSITORY_PROXY. It also asserts the nested Maven process receives MVNW_REPOURL.
|
|
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8d8083c592
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @get:InputFile | ||
| @get:PathSensitive(PathSensitivity.RELATIVE) | ||
| abstract val mavenExecutable: RegularFileProperty |
There was a problem hiding this comment.
Track the Maven wrapper properties as task inputs
Because this cacheable task only declares the wrapper script itself as an input, changes to .mvn/wrapper/maven-wrapper.properties are invisible even though the checked-in mvnw reads that file to choose the Maven distribution. When the pinned Maven version/checksum or wrapper distribution settings change, mvnStage can still be considered up-to-date or restored from cache and keep the artifact built with the previous Maven; please add the wrapper properties file (and any other wrapper files the script reads) as task inputs.
Useful? React with 👍 / 👎.
AlexeyKuznetsov-DD
left a comment
There was a problem hiding this comment.
LGTM, nice improvement.
left several cosmetic comments
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
5d07637 to
a417f04
Compare
Only wire Gradle stop and Maven build timeouts when the smoke app DSL sets them explicitly. Add Maven cache coverage that deletes the app output directory and verifies the jar is restored from the outer build cache. Mirror the output assertion for the existing Gradle cache test.
a417f04 to
2a2da2a
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2a2da2a230
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
/merge |
|
View all feedbacks in Devflow UI.
This pull request is not mergeable according to GitHub. Common reasons include pending required checks, missing approvals, or merge conflicts — but it could also be blocked by other repository rules or settings.
The expected merge time in
|
635c6b8
into
master
What Does This Do
Adds Maven support to the smoke-test-app plugin and migrates the OpenLiberty smoke test applications to it.
Motivation
Keep nested smoke-test application builds on shared Gradle wiring while preserving the checked-in Maven wrapper for pinned Maven execution.
Additional Notes
GitLab now uses the Maven Wrapper
MVNW_REPOURLrepository-manager override instead of rewritingmaven-wrapper.properties.