support for vertx 5.1#11655
Conversation
This comment has been minimized.
This comment has been minimized.
|
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: 94f46421d6
ℹ️ 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".
| @@ -0,0 +1,184 @@ | |||
| package server | |||
There was a problem hiding this comment.
Convert new Vert.x 5.1 specs to JUnit 5
The root AGENTS.md explicitly says to always use JUnit 5 and not write new Groovy/Spock tests. This commit adds new .groovy specs under vertx-web-5.1 (including this one and several others), so the change violates the repo's test-convention gate and should be converted to JUnit 5 instead of adding more Spock coverage.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
yeah well they are only copied from existing tests, I guess that's OK ?
I added the tag to ignore it.
🟢 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. |
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4e94baa47e
ℹ️ 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".
| group = 'io.vertx' | ||
| module = 'vertx-web' | ||
| versions = '[5.0.0.CR1,)' | ||
| versions = '[5.0.0.CR1,5.1.0)' |
There was a problem hiding this comment.
Add a runtime 5.1 gate to the 5.0 instrumenters
This Gradle muzzle range only changes validation; it does not affect the runtime matcher generated for the existing 5.0 modules. The 5.0 HttpServerRequestInstrumentation and RoutingContextImplInstrumentation still only require HTTP_HEADERS_INTERNAL, which remains present in Vert.x 5.1, so Vert.x 5.1 apps will load the old 5.0 AppSec body/file-upload advices alongside the new 5.1 ones and can publish request bodies or file names twice. Add a 5.1-exclusive runtime gate or otherwise stop the 5.0 instrumenters from matching 5.1.
Useful? React with 👍 / 👎.
|
|
||
| @Override | ||
| public Reference[] additionalMuzzleReferences() { | ||
| return new Reference[] {VertxVersionMatcher.HTTP_HEADERS_INTERNAL}; |
There was a problem hiding this comment.
Gate the new AppSec advice to Vert.x 5.1 at runtime
Because this 5.1 instrumenter only checks the 5.0-era HTTP_HEADERS_INTERNAL reference, it will also match Vert.x 5.0 class loaders. For Vert.x 5.0 apps, adding this module makes the 5.1 bodyHandler advice run in addition to the existing 5.0 advice, double-wrapping the handler and causing the request-body AppSec callback to be delivered twice. Include the VERTX_5_1 reference here before applying the 5.1 advice.
Useful? React with 👍 / 👎.
What Does This Do
Adapt existing instrumentation for vertx 5.1:
Motivation
Additional Notes
I tried to keep the commits cleanly separated between copying the existing instrumentations that were ported and then modifying them in a separate commit, so that the changes are more readable. Do select individual commits when reviewing.
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issue/merge. You can also:/merge --commit-message "..."/merge -c/merge -f --reason "reason"; please use this judiciously, as some checks do not run at the PR-level (note: the PR still needs to be mergeable, this will only skip the pre-merge build)Jira ticket: [PROJ-IDENT]