Repository navigation
Conversation
Fixes: spring-projects#11538 The HiveMQ-based spring-integration-mqtt-client module provides the replacement for the Paho-based MQTT integration. * Deprecate the existing module types for removal as of 7.2. * Explain the replacement in the MQTT reference and What's New. Signed-off-by: Jaehong Park <105151063+PHJ2000@users.noreply.github.com>
|
The Migration Guide note is done: https://github.com/spring-projects/spring-integration/wiki/Spring-Integration-7.1-to-7.2-Migration-Guide |
artembilan
left a comment
There was a problem hiding this comment.
Thank you!
A little inconvenience, though.
Now we got a gazillion of removal warnings in our build logs.
Please, go over all the classes in the module (including tests) and add a @SuppressWarnings("removal"), too.
This will mitigate build noise on the matter and won't cause a situation that some other problem would slip from us.
| * @see org.eclipse.paho.client.mqttv3.MqttCallbackExtended#connectComplete | ||
| * @deprecated since 7.2 in favor of the {@code spring-integration-mqtt-client} module. | ||
| */ | ||
| @Deprecated(since = "7.2", forRemoval = true) |
There was a problem hiding this comment.
I don't think it makes sense to put such an annotation on all the inner types.
I believe just top-level class is enough.
There was a problem hiding this comment.
Removed the redundant @Deprecated annotations and @deprecated Javadoc tags from ConnectCallback, DefaultMessageHandler, and Will in 02b7ee2. Deprecation is now declared only on the enclosing top-level types.
Suppress removal warnings on top-level production and test types so internal uses of the deprecated API do not obscure other build warnings. Remove redundant deprecation declarations from nested types; retain deprecation on their enclosing top-level types. Signed-off-by: Jaehong Park <105151063+PHJ2000@users.noreply.github.com>
|
Addressed in 02b7ee2. Added Validation: Thank you for adding the migration guide note. |
Deprecate the Paho-based
spring-integration-mqtttypes for removal as of 7.2 in favor of the HiveMQ-basedspring-integration-mqtt-clientmodule. Update the MQTT reference and What's New with the deprecation and migration direction. No runtime logic is changed.Fixes #11538.
Validation
:spring-integration-mqtt:check api antora: passed after updating the branch to main at6a037f85a8(50 MQTT tests passed, zero failures/skips; Checkstyle, API docs, and reference docs passed; JDK 25 and Docker).MySqlTxTimeoutMessageStoreTests.concurrentPollingtimeouts, reported in MySqlTxTimeoutMessageStoreTests.concurrentPolling repeatedly times out during JDBC module tests #11553. In a separate observation, two attempts reached the existing 10-minute JUnit timeout and advanced to retries; the run was stopped by my 30-minute observation limit before all retries completed. This is not a claim of a permanent hang or a final suite failure.Proposed migration guide note
The wiki is maintained separately from this repository. Could the following note be included in the 7.1-to-7.2 migration guide?
Paho-based MQTT support
The
spring-integration-mqttmodule and its types are deprecated for removal in Spring Integration 7.2.Use the
spring-integration-mqtt-clientmodule, which is based on the HiveMQ MQTT client, for new MQTT integrations.When migrating an existing integration, replace the
org.springframework.integration:spring-integration-mqttdependency withorg.springframework.integration:spring-integration-mqtt-client.Update the Spring Integration MQTT components to use the
org.springframework.integration.mqtt.clientpackages and adapt client configuration to the HiveMQ API.For example, the new module provides
Mqtt3ClientManagerandMqtt5ClientManagerinstead ofMqttv3ClientManagerandMqttv5ClientManager, andMqtt3MessageDrivenChannelAdapterandMqtt5MessageDrivenChannelAdapterfor inbound adapters.Paho connection options and callback implementations need to be adapted to the corresponding HiveMQ APIs.
The deprecated module remains available in 7.2.