Skip to content

GH-3271: Add AmqpClient implementation for AMQP 1.0#3272

Merged
cppwfs merged 8 commits intospring-projects:mainfrom
artembilan:GH-3271
Jan 6, 2026
Merged

GH-3271: Add AmqpClient implementation for AMQP 1.0#3272
cppwfs merged 8 commits intospring-projects:mainfrom
artembilan:GH-3271

Conversation

@artembilan
Copy link
Copy Markdown
Member

Fixes: #3271

  • Introduce the AmqpClient as a fluent API for send and receive operations. This is similar to well-known WebClient and JdbcClient APIs
  • Add AmqpClientException and AmqpClientNackReceivedException specific to ProtonJ interaction
  • Document the new spring-amqp-client module (at least what is there so far)

@artembilan artembilan requested a review from cppwfs December 30, 2025 18:57
@artembilan
Copy link
Copy Markdown
Member Author

This is just an initial PR with a PoC to make sure that I am on the right track with an API.

Thanks

Copy link
Copy Markdown
Contributor

@cppwfs cppwfs left a comment

Choose a reason for hiding this comment

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

The client is so cool!

Added my comments.

Copy link
Copy Markdown
Contributor

@cppwfs cppwfs left a comment

Choose a reason for hiding this comment

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

Just a couple more :-)

@artembilan artembilan requested a review from cppwfs January 5, 2026 21:27
Fixes: spring-projects#3271

* Introduce the `AmqpClient` as a fluent API for send and receive operations.
This is similar to well-known `WebClient` and `JdbcClient` APIs
* Add `AmqpClientException` and `AmqpClientNackReceivedException` specific to ProtonJ interaction
* Document the new `spring-amqp-client` module (at least what is there so far)
* Implement `ReceiveSpec`
* Expose `AmqpClient.taskExecutor`
* Expose `AmqpClient.completionTimeout`
* Rework `AmqpClientTests` to use new `AmqpClient.from()` API instead of native ProtonJ
* Cover more properties interchange and conversion support
* Document `AmqpClient.from()` API
* Some other comments and explanations
Copy link
Copy Markdown
Contributor

@cppwfs cppwfs left a comment

Choose a reason for hiding this comment

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

Things are looking good!
Here are my usual annoying comments :-)

* Provide more Javadocs for public API
@artembilan artembilan requested a review from cppwfs January 6, 2026 13:55
Copy link
Copy Markdown
Contributor

@cppwfs cppwfs left a comment

Choose a reason for hiding this comment

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

With the latest set of changes I think we can merge this POC! WDYT?

Great work on this!!!!

@artembilan
Copy link
Copy Markdown
Member Author

Thanks for quick and reasonable review!
For now I think it is OK to be merged.
I provided everything what I wanted to proof the concept.

There are still a lot of API I have in mind to implement, but all of that could be done in separate PRs.

So, feel free to merge.
Or let me know and I'll do myself.
Thanks again!

@cppwfs cppwfs merged commit 9530cd8 into spring-projects:main Jan 6, 2026
3 checks passed
@artembilan artembilan deleted the GH-3271 branch January 6, 2026 20:37
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.

Add generic AMQP 1.0 client support

2 participants