From dbc17680cff69cc70088a29439c575e04cab5ccb 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 8754a51deac6..2e1e955d12b0 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 MappingJackson2MessageConverter() { 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 421b014ef9b4..f9c4216b8d5c 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 MappingJackson2MessageConverter(MimeType... supportedMimeTypes) { 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() {