Skip to content

Switch to Vert.x 5 - #3492

Open
ozangunalp wants to merge 8 commits into
smallrye:mainfrom
ozangunalp:vertx_5_mqtt_5
Open

Switch to Vert.x 5#3492
ozangunalp wants to merge 8 commits into
smallrye:mainfrom
ozangunalp:vertx_5_mqtt_5

Conversation

@ozangunalp

Copy link
Copy Markdown
Collaborator

With MQTT v5 and a new RabbitMQ connector on top of rabbitmq amqp-client

- Bump Vert.x from 4.x to 5.1.3 and smallrye-vertx-mutiny-clients to 4.0.0-beta2
- Migrate internal APIs: io.vertx.core.impl -> io.vertx.core.internal
- Migrate context locals to ContextLocals/VertxContext APIs
- Migrate executeBlocking to Vert.x 5 Future-based API
- Adapt Kafka TransactionalProducerTest to blocking API (withTransactionAndAwait)
- Set root context for OutgoingAmqpChannel
- Fix context locals availability when Vertx instance is created
- Migrate documentation snippets
- Add OpenRewrite recipes for Vert.x migration
Replace the Vert.x RabbitMQ client based connector with a new
implementation built on the RabbitMQ AMQP Java client library.

- Rewrite IncomingRabbitMQChannel and OutgoingRabbitMQChannel using
  the RabbitMQ Java client with SenderProcessor for graceful shutdown
- Add shared connection support across channels
- Add lazy client connection mode
- Add RabbitMQ request-reply implementation
- Add MessageConverters for IncomingRabbitMQMessage
- Make ack/nack idempotent
- Remove the old vertx-rabbitmq based connector and rabbitmq-og module,
  consolidate into a single smallrye-reactive-messaging-rabbitmq module
- Update CI to reference the consolidated module
- Update documentation and examples
@ozangunalp
ozangunalp force-pushed the vertx_5_mqtt_5 branch 2 times, most recently from c4e8a94 to ef7f594 Compare August 10, 2026 13:30
@codecov

codecov Bot commented Aug 10, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 61.86613% with 188 lines in your changes missing coverage. Please review.
✅ Project coverage is 75.43%. Comparing base (a96442f) to head (4bef237).
⚠️ Report is 1230 commits behind head on main.

Files with missing lines Patch % Lines
.../smallrye/reactive/messaging/jms/JmsConnector.java 56.96% 30 Missing and 4 partials ⚠️
...allrye/reactive/messaging/jms/XaMessagePoller.java 0.00% 33 Missing ⚠️
...e/messaging/jms/fault/JmsXaTransactionFailure.java 0.00% 22 Missing ⚠️
...e/messaging/jms/commit/JmsXaTransactionCommit.java 0.00% 19 Missing ⚠️
...active/messaging/jms/JmsXaTransactionMetadata.java 0.00% 13 Missing ⚠️
.../io/smallrye/reactive/messaging/mqtt/MqttSink.java 75.60% 3 Missing and 7 partials ⚠️
...e/messaging/mqtt/ReceivingMqttMessageMetadata.java 75.00% 5 Missing and 5 partials ⚠️
...o/smallrye/reactive/messaging/mqtt/MqttSource.java 62.50% 7 Missing and 2 partials ⚠️
...saging/mqtt/SendingMqttMessageMetadataBuilder.java 65.38% 8 Missing and 1 partial ⚠️
.../reactive/messaging/mqtt/internal/MqttHelpers.java 33.33% 3 Missing and 3 partials ⚠️
... and 9 more
Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff              @@
##               main    #3492      +/-   ##
============================================
- Coverage     77.47%   75.43%   -2.05%     
- Complexity     3778     5288    +1510     
============================================
  Files           306      466     +160     
  Lines         12673    18206    +5533     
  Branches       1648     2268     +620     
============================================
+ Hits           9818    13733    +3915     
- Misses         2116     3374    +1258     
- Partials        739     1099     +360     
Files with missing lines Coverage Δ
.../smallrye/reactive/messaging/amqp/AmqpMessage.java 95.23% <100.00%> (-0.06%) ⬇️
...ye/reactive/messaging/amqp/AmqpMessageBuilder.java 68.67% <ø> (ø)
.../reactive/messaging/amqp/AmqpMessageConverter.java 79.22% <ø> (-2.98%) ⬇️
...e/reactive/messaging/amqp/IncomingAmqpChannel.java 91.35% <ø> (ø)
...e/reactive/messaging/amqp/OutgoingAmqpChannel.java 73.13% <ø> (ø)
.../reactive/messaging/aws/sqs/SqsInboundChannel.java 84.25% <ø> (ø)
...rye/reactive/messaging/jms/IncomingJmsMessage.java 52.63% <100.00%> (+2.63%) ⬆️
...llrye/reactive/messaging/jms/JmsMessagePoller.java 100.00% <100.00%> (ø)
...lrye/reactive/messaging/jms/JmsResourceHolder.java 86.79% <ø> (ø)
...lrye/reactive/messaging/jms/JmsSessionContext.java 100.00% <100.00%> (ø)
... and 52 more

... and 280 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

- Upgrade MqttClientSession to MQTT v5: QoS 2 publish handshake,
  CONNACK server constraints, reason code propagation, session expiry
- Add ReceivingMqttMessageMetadata and SendingMqttMessageMetadataBuilder
  for v5 message properties (content type, response topic, correlation
  data, user properties)
- Add MqttClientSessionCustomizer CDI hook for enhanced authentication
- Add SubscriptionOptions with subscription identifier support
- Add Paho MQTT v5 test client dependency
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.

2 participants