Skip to content

Commit 5046d53

Browse files
authored
GH-10261: Don't use Jackson 3 API in places with Jackson 2 (#10263)
Fixes: #10261 The problem is like this: ``` Caused by: java.lang.NoClassDefFoundError: tools/jackson/databind/ValueSerializer at org.springframework.integration.kafka.inbound.KafkaMessageDrivenChannelAdapter.<init>(KafkaMessageDrivenChannelAdapter.java:141) ``` Not clear why accessing static constant without any references to Jackson API causes imports of that class to be accessed, but that is what we have so far. * Use already deprecated `JacksonJsonUtils` in those places when `JacksonPresent.isJackson2Present()`
1 parent e5ac610 commit 5046d53

File tree

4 files changed

+16
-10
lines changed

4 files changed

+16
-10
lines changed

spring-integration-kafka/src/main/java/org/springframework/integration/kafka/channel/SubscribableKafkaChannel.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import org.springframework.integration.dispatcher.MessageDispatcher;
2626
import org.springframework.integration.dispatcher.RoundRobinLoadBalancingStrategy;
2727
import org.springframework.integration.dispatcher.UnicastingDispatcher;
28-
import org.springframework.integration.support.json.JacksonMessagingUtils;
2928
import org.springframework.integration.support.management.ManageableSmartLifecycle;
3029
import org.springframework.kafka.config.KafkaListenerContainerFactory;
3130
import org.springframework.kafka.core.KafkaOperations;
@@ -77,6 +76,7 @@ public class SubscribableKafkaChannel extends AbstractKafkaChannel implements Su
7776
* @param factory factory for creating a container for receiving.
7877
* @param channelTopic the topic.
7978
*/
79+
@SuppressWarnings({"this-escape", "removal"})
8080
public SubscribableKafkaChannel(KafkaOperations<?, ?> template, KafkaListenerContainerFactory<?> factory,
8181
String channelTopic) {
8282

@@ -87,7 +87,9 @@ public SubscribableKafkaChannel(KafkaOperations<?, ?> template, KafkaListenerCon
8787
if (JacksonPresent.isJackson2Present()) {
8888
var messageConverter = new MessagingMessageConverter();
8989
var headerMapper = new DefaultKafkaHeaderMapper();
90-
headerMapper.addTrustedPackages(JacksonMessagingUtils.DEFAULT_TRUSTED_PACKAGES.toArray(new String[0]));
90+
headerMapper.addTrustedPackages(
91+
org.springframework.integration.support.json.JacksonJsonUtils.DEFAULT_TRUSTED_PACKAGES
92+
.toArray(new String[0]));
9193
messageConverter.setHeaderMapper(headerMapper);
9294
this.recordListener.setMessageConverter(messageConverter);
9395
}

spring-integration-kafka/src/main/java/org/springframework/integration/kafka/inbound/KafkaInboundGateway.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
import org.springframework.integration.support.AbstractIntegrationMessageBuilder;
3838
import org.springframework.integration.support.ErrorMessageUtils;
3939
import org.springframework.integration.support.MessageBuilder;
40-
import org.springframework.integration.support.json.JacksonMessagingUtils;
4140
import org.springframework.kafka.core.KafkaTemplate;
4241
import org.springframework.kafka.listener.AbstractMessageListenerContainer;
4342
import org.springframework.kafka.listener.ConsumerSeekAware;
@@ -97,7 +96,7 @@ public class KafkaInboundGateway<K, V, R> extends MessagingGatewaySupport
9796
* @param messageListenerContainer the container.
9897
* @param kafkaTemplate the kafka template.
9998
*/
100-
@SuppressWarnings("this-escape")
99+
@SuppressWarnings({"this-escape", "removal"})
101100
public KafkaInboundGateway(AbstractMessageListenerContainer<K, V> messageListenerContainer,
102101
KafkaTemplate<K, R> kafkaTemplate) {
103102

@@ -112,7 +111,9 @@ public KafkaInboundGateway(AbstractMessageListenerContainer<K, V> messageListene
112111
if (JacksonPresent.isJackson2Present()) {
113112
MessagingMessageConverter messageConverter = new MessagingMessageConverter();
114113
DefaultKafkaHeaderMapper headerMapper = new DefaultKafkaHeaderMapper();
115-
headerMapper.addTrustedPackages(JacksonMessagingUtils.DEFAULT_TRUSTED_PACKAGES.toArray(new String[0]));
114+
headerMapper.addTrustedPackages(
115+
org.springframework.integration.support.json.JacksonJsonUtils.DEFAULT_TRUSTED_PACKAGES
116+
.toArray(new String[0]));
116117
messageConverter.setHeaderMapper(headerMapper);
117118
this.listener.setMessageConverter(messageConverter);
118119
}

spring-integration-kafka/src/main/java/org/springframework/integration/kafka/inbound/KafkaMessageDrivenChannelAdapter.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
import org.springframework.integration.kafka.support.RawRecordHeaderErrorMessageStrategy;
4040
import org.springframework.integration.support.ErrorMessageUtils;
4141
import org.springframework.integration.support.MessageBuilder;
42-
import org.springframework.integration.support.json.JacksonMessagingUtils;
4342
import org.springframework.kafka.listener.AbstractMessageListenerContainer;
4443
import org.springframework.kafka.listener.BatchMessageListener;
4544
import org.springframework.kafka.listener.ConsumerSeekAware;
@@ -120,7 +119,7 @@ public KafkaMessageDrivenChannelAdapter(AbstractMessageListenerContainer<K, V> m
120119
* @param messageListenerContainer the container.
121120
* @param mode the mode.
122121
*/
123-
@SuppressWarnings("this-escape")
122+
@SuppressWarnings({"this-escape", "removal"})
124123
public KafkaMessageDrivenChannelAdapter(AbstractMessageListenerContainer<K, V> messageListenerContainer,
125124
ListenerMode mode) {
126125

@@ -138,7 +137,9 @@ public KafkaMessageDrivenChannelAdapter(AbstractMessageListenerContainer<K, V> m
138137
messageConverter.setGenerateMessageId(true);
139138
messageConverter.setGenerateTimestamp(true);
140139
DefaultKafkaHeaderMapper headerMapper = new DefaultKafkaHeaderMapper();
141-
headerMapper.addTrustedPackages(JacksonMessagingUtils.DEFAULT_TRUSTED_PACKAGES.toArray(new String[0]));
140+
headerMapper.addTrustedPackages(
141+
org.springframework.integration.support.json.JacksonJsonUtils.DEFAULT_TRUSTED_PACKAGES
142+
.toArray(new String[0]));
142143
messageConverter.setHeaderMapper(headerMapper);
143144
this.recordListener.setMessageConverter(messageConverter);
144145
this.batchListener.setMessageConverter(messageConverter);

spring-integration-kafka/src/main/java/org/springframework/integration/kafka/inbound/KafkaMessageSource.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@
5858
import org.springframework.integration.core.Pausable;
5959
import org.springframework.integration.endpoint.AbstractMessageSource;
6060
import org.springframework.integration.support.AbstractIntegrationMessageBuilder;
61-
import org.springframework.integration.support.json.JacksonMessagingUtils;
6261
import org.springframework.kafka.core.ConsumerFactory;
6362
import org.springframework.kafka.core.DefaultKafkaConsumerFactory;
6463
import org.springframework.kafka.listener.ConsumerAwareRebalanceListener;
@@ -235,6 +234,7 @@ public KafkaMessageSource(ConsumerFactory<K, V> consumerFactory,
235234
* @param ackCallbackFactory the ack callback factory.
236235
* @param allowMultiFetch true to allow {@code max.poll.records > 1}.
237236
*/
237+
@SuppressWarnings("removal")
238238
public KafkaMessageSource(ConsumerFactory<K, V> consumerFactory,
239239
ConsumerProperties consumerProperties,
240240
KafkaAckCallbackFactory<K, V> ackCallbackFactory,
@@ -264,7 +264,9 @@ public KafkaMessageSource(ConsumerFactory<K, V> consumerFactory,
264264

265265
if (JacksonPresent.isJackson2Present()) {
266266
DefaultKafkaHeaderMapper headerMapper = new DefaultKafkaHeaderMapper();
267-
headerMapper.addTrustedPackages(JacksonMessagingUtils.DEFAULT_TRUSTED_PACKAGES.toArray(new String[0]));
267+
headerMapper.addTrustedPackages(
268+
org.springframework.integration.support.json.JacksonJsonUtils.DEFAULT_TRUSTED_PACKAGES
269+
.toArray(new String[0]));
268270
messagingMessageConverter.setHeaderMapper(headerMapper);
269271
}
270272
}

0 commit comments

Comments
 (0)