Skip to content

Series of improvements to vertx-utils and resteasy#53676

Draft
jponge wants to merge 7 commits intoquarkusio:mainfrom
jponge:scratchpad/vertx-utils-and-resteasy-improvements
Draft

Series of improvements to vertx-utils and resteasy#53676
jponge wants to merge 7 commits intoquarkusio:mainfrom
jponge:scratchpad/vertx-utils-and-resteasy-improvements

Conversation

@jponge
Copy link
Copy Markdown
Member

@jponge jponge commented Apr 17, 2026

This is a series of improvements to vertx-utils and resteasy (reactive and classic) while revisiting the state of VertxInputStream and VertxOutputStream.

This draft is part of the thoughts on #53618 for the main (Quarkus 3) branch.

jponge added 7 commits April 17, 2026 18:34
Deduplicate the near-identical VertxBlockingInput inner classes from
the three VertxInputStream implementations (vertx-http runtime,
RESTEasy Reactive server, RESTEasy Reactive client) into a single
shared class in vertx-utils.

The new implementation uses ReentrantLock/Condition instead of
synchronized/wait/notifyAll to avoid carrier-thread pinning when
running on JDK 21+ virtual threads.
Replace byte-array allocations and copies with Unpooled.wrappedBuffer
and ByteBufInputStream for reading request bodies.
…eaming

Use VertxByteBufAllocator.POOLED_ALLOCATOR for response byte[] writes
instead of Buffer.buffer() heap copies.

Replace manual handler/pause/resume/endHandler wiring in async file
body writers (Vert.x and Mutiny) with the built-in pipe().to() API.

Pass Buffer directly in ServerMutinyBufferMessageBodyWriter when the
context is a VertxResteasyReactiveRequestContext.
@jponge
Copy link
Copy Markdown
Member Author

jponge commented Apr 17, 2026

I've been exploring various refactorings around the case of Vertx{Input,Output}Stream this week and I probably need a break.

@franz1981 @geoand there are possibly some changes that could be useful, I tried to rebuild a coherent commits series from various branches / changes I had. No big rush to review, it's a draft. I'm interested in your opinion but I'm not sure what the fate of this PR is.

@github-actions
Copy link
Copy Markdown

🎊 PR Preview 6a8549a has been successfully built and deployed to https://quarkus-pr-main-53676-preview.surge.sh/version/main/guides/

  • Images of blog posts older than 3 months are not available.
  • Newsletters older than 3 months are not available.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant