GH-3455: default MqttMessConv.toMessageBuilder()

Fixes https://github.com/spring-projects/spring-integration/issues/3455

After introduction `MqttMessageConverter.toMessageBuilder()`
(https://github.com/spring-projects/spring-integration/issues/3181)
the existing `MqttMessageConverter` must also implement this new method
where in most cases `toMessage()` must call `toMessageBuilder()` instead though.

* Make `MqttMessageConverter.toMessageBuilder()` as a `default` with a delegation
to the `toMessage()` allowing target implementors to keep their code during
migration without any breaking changes

**Cherry-pick to 5.3.x**
This commit is contained in:
Artem Bilan
2021-01-08 16:12:30 -05:00
committed by Gary Russell
parent 732a1b87e1
commit 040fa703ca
2 changed files with 22 additions and 14 deletions

View File

@@ -90,7 +90,6 @@ import org.springframework.integration.mqtt.outbound.MqttPahoMessageHandler;
import org.springframework.integration.mqtt.support.DefaultPahoMessageConverter;
import org.springframework.integration.mqtt.support.MqttHeaderAccessor;
import org.springframework.integration.mqtt.support.MqttMessageConverter;
import org.springframework.integration.support.AbstractIntegrationMessageBuilder;
import org.springframework.integration.test.util.TestUtils;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageHandlingException;
@@ -312,25 +311,21 @@ public class MqttAdapterTests {
adapter.setConverter(new MqttMessageConverter() {
@Override public Message<?> toMessage(String topic, MqttMessage mqttMessage) {
@Override
public Message<?> toMessage(String topic, MqttMessage mqttMessage) {
return null;
}
@Override public AbstractIntegrationMessageBuilder<?> toMessageBuilder(String topic,
MqttMessage mqttMessage) {
@Override
public Object fromMessage(Message<?> message, Class<?> targetClass) {
return null;
}
@Override public Object fromMessage(Message<?> message, Class<?> targetClass) {
@Override
public Message<?> toMessage(Object payload, MessageHeaders headers) {
return null;
}
@Override public Message<?> toMessage(Object payload, MessageHeaders headers) {
return null;
}
});
callback.get().messageArrived("baz", message);