From e42e89c04fc9755b2b9f313b13564ac3b048b614 Mon Sep 17 00:00:00 2001 From: Marten Deinum Date: Thu, 14 Sep 2023 15:39:57 +0200 Subject: [PATCH] Add constructors to take ObjectMapper Prior to this commit in the message converters it was possible to set a pre-configured ObjectMapper. However the constructor would still create and configure an ObjectMapper. With the added constructor it is now possible to directly construct the message converter with the proper ObjectMapper. This prevents the this additional ObjectMapper to be constructed. --- .../support/converter/MappingJackson2MessageConverter.java | 5 +++++ .../converter/MappingJackson2MessageConverter.java | 7 +++++++ 2 files changed, 12 insertions(+) diff --git a/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java b/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java index 8754a51dea..2e1e955d12 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java @@ -96,6 +96,11 @@ public class MappingJackson2MessageConverter implements SmartMessageConverter, B this.objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); } + public MappingJackson2MessageConverter(ObjectMapper objectMapper) { + Assert.notNull(objectMapper, "ObjectMapper must not be null"); + this.objectMapper = objectMapper; + } + /** * Specify the {@link ObjectMapper} to use instead of using the default. */ diff --git a/spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java b/spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java index 421b014ef9..f9c4216b8d 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/converter/MappingJackson2MessageConverter.java @@ -85,6 +85,13 @@ public class MappingJackson2MessageConverter extends AbstractMessageConverter { this.objectMapper = initObjectMapper(); } + public MappingJackson2MessageConverter(ObjectMapper objectMapper) { + super(new MimeType("application", "json"), new MimeType("application", "*+json")); + Assert.notNull(objectMapper, "ObjectMapper must not be null"); + this.objectMapper = objectMapper; + } + + @SuppressWarnings("deprecation") // on Jackson 2.13: configure(MapperFeature, boolean) private ObjectMapper initObjectMapper() {