40
40
import org .jspecify .annotations .Nullable ;
41
41
42
42
import org .springframework .core .ResolvableType ;
43
- import org .springframework .kafka .support .JacksonUtils ;
44
- import org .springframework .kafka .support .mapping .AbstractJavaTypeMapper ;
45
- import org .springframework .kafka .support .mapping .DefaultJackson2JavaTypeMapper ;
46
- import org .springframework .kafka .support .mapping .Jackson2JavaTypeMapper ;
47
- import org .springframework .kafka .support .mapping .Jackson2JavaTypeMapper .TypePrecedence ;
48
43
import org .springframework .util .Assert ;
49
44
import org .springframework .util .ClassUtils ;
50
45
import org .springframework .util .StringUtils ;
71
66
* @deprecated since 4.0 in favor of {@link JacksonJsonDeserializer} for Jackson 3.
72
67
*/
73
68
@ Deprecated (forRemoval = true , since = "4.0" )
69
+ @ SuppressWarnings ("removal" )
74
70
public class JsonDeserializer <T > implements Deserializer <T > {
75
71
76
72
/**
@@ -134,7 +130,8 @@ public class JsonDeserializer<T> implements Deserializer<T> {
134
130
135
131
protected @ Nullable JavaType targetType ; // NOSONAR
136
132
137
- protected Jackson2JavaTypeMapper typeMapper = new DefaultJackson2JavaTypeMapper (); // NOSONAR
133
+ protected org .springframework .kafka .support .mapping .Jackson2JavaTypeMapper typeMapper =
134
+ new org .springframework .kafka .support .mapping .DefaultJackson2JavaTypeMapper (); // NOSONAR
138
135
139
136
private @ Nullable ObjectReader reader ;
140
137
@@ -203,7 +200,7 @@ public JsonDeserializer(@Nullable JavaType targetType) {
203
200
* @since 2.2
204
201
*/
205
202
public JsonDeserializer (@ Nullable Class <? super T > targetType , boolean useHeadersIfPresent ) {
206
- this (targetType , JacksonUtils .enhancedObjectMapper (), useHeadersIfPresent );
203
+ this (targetType , org . springframework . kafka . support . JacksonUtils .enhancedObjectMapper (), useHeadersIfPresent );
207
204
}
208
205
209
206
/**
@@ -215,7 +212,7 @@ public JsonDeserializer(@Nullable Class<? super T> targetType, boolean useHeader
215
212
* @since 2.3
216
213
*/
217
214
public JsonDeserializer (@ Nullable TypeReference <? super T > targetType , boolean useHeadersIfPresent ) {
218
- this (targetType , JacksonUtils .enhancedObjectMapper (), useHeadersIfPresent );
215
+ this (targetType , org . springframework . kafka . support . JacksonUtils .enhancedObjectMapper (), useHeadersIfPresent );
219
216
}
220
217
221
218
/**
@@ -227,7 +224,7 @@ public JsonDeserializer(@Nullable TypeReference<? super T> targetType, boolean u
227
224
* @since 2.3
228
225
*/
229
226
public JsonDeserializer (@ Nullable JavaType targetType , boolean useHeadersIfPresent ) {
230
- this (targetType , JacksonUtils .enhancedObjectMapper (), useHeadersIfPresent );
227
+ this (targetType , org . springframework . kafka . support . JacksonUtils .enhancedObjectMapper (), useHeadersIfPresent );
231
228
}
232
229
233
230
/**
@@ -318,22 +315,22 @@ public JsonDeserializer(@Nullable JavaType targetType, ObjectMapper objectMapper
318
315
initialize (targetType , useHeadersIfPresent );
319
316
}
320
317
321
- public Jackson2JavaTypeMapper getTypeMapper () {
318
+ public org . springframework . kafka . support . mapping . Jackson2JavaTypeMapper getTypeMapper () {
322
319
return this .typeMapper ;
323
320
}
324
321
325
322
/**
326
- * Set a customized type mapper. If the mapper is an {@link AbstractJavaTypeMapper},
323
+ * Set a customized type mapper. If the mapper is an {@link org.springframework.kafka.support.mapping. AbstractJavaTypeMapper},
327
324
* any class mappings configured in the mapper will be added to the trusted packages.
328
325
* @param typeMapper the type mapper.
329
326
* @since 2.1
330
327
*/
331
- public void setTypeMapper (Jackson2JavaTypeMapper typeMapper ) {
328
+ public void setTypeMapper (org . springframework . kafka . support . mapping . Jackson2JavaTypeMapper typeMapper ) {
332
329
Assert .notNull (typeMapper , "'typeMapper' cannot be null" );
333
330
this .typeMapper = typeMapper ;
334
331
this .typeMapperExplicitlySet = true ;
335
- if (typeMapper instanceof AbstractJavaTypeMapper ) {
336
- addMappingsToTrusted ((( AbstractJavaTypeMapper ) typeMapper ) .getIdClassMapping ());
332
+ if (typeMapper instanceof org . springframework . kafka . support . mapping . AbstractJavaTypeMapper typeMapperToUse ) {
333
+ addMappingsToTrusted (typeMapperToUse .getIdClassMapping ());
337
334
}
338
335
this .setterCalled = true ;
339
336
}
@@ -350,8 +347,8 @@ public void setUseTypeMapperForKey(boolean isKey) {
350
347
351
348
private void doSetUseTypeMapperForKey (boolean isKey ) {
352
349
if (!this .typeMapperExplicitlySet
353
- && this .getTypeMapper () instanceof AbstractJavaTypeMapper ) {
354
- (( AbstractJavaTypeMapper ) this . getTypeMapper ()) .setUseForKey (isKey );
350
+ && this .getTypeMapper () instanceof org . springframework . kafka . support . mapping . AbstractJavaTypeMapper typeMapperToUse ) {
351
+ typeMapperToUse .setUseForKey (isKey );
355
352
}
356
353
}
357
354
@@ -422,8 +419,8 @@ public void configure(Map<String, ?> configs, boolean isKey) {
422
419
StringUtils .delimitedListToStringArray ((String ) configs .get (TRUSTED_PACKAGES ), "," , " \r \n \f \t " ));
423
420
}
424
421
if (configs .containsKey (TYPE_MAPPINGS ) && !this .typeMapperExplicitlySet
425
- && this .typeMapper instanceof AbstractJavaTypeMapper ) {
426
- (( AbstractJavaTypeMapper ) this . typeMapper ) .setIdClassMapping (createMappings (configs ));
422
+ && this .typeMapper instanceof org . springframework . kafka . support . mapping . AbstractJavaTypeMapper typeMapperToUse ) {
423
+ typeMapperToUse .setIdClassMapping (createMappings (configs ));
427
424
}
428
425
if (configs .containsKey (REMOVE_TYPE_INFO_HEADERS )) {
429
426
this .removeTypeHeaders = Boolean .parseBoolean (configs .get (REMOVE_TYPE_INFO_HEADERS ).toString ());
@@ -469,8 +466,8 @@ private void setUpTypeResolver(String method) {
469
466
catch (IllegalStateException e ) {
470
467
if (e .getCause () instanceof NoSuchMethodException ) {
471
468
this .typeResolver = (topic , data , headers ) ->
472
- (JavaType ) SerializationUtils .propertyToMethodInvokingFunction (
473
- method , byte [].class , getClass ().getClassLoader ()).apply (data , headers );
469
+ (JavaType ) SerializationUtils .propertyToMethodInvokingFunction (
470
+ method , byte [].class , getClass ().getClassLoader ()).apply (data , headers );
474
471
return ;
475
472
}
476
473
throw e ;
@@ -482,7 +479,10 @@ private void setUpTypePrecedence(Map<String, ?> configs) {
482
479
if (configs .containsKey (USE_TYPE_INFO_HEADERS )) {
483
480
this .useTypeHeaders = Boolean .parseBoolean (configs .get (USE_TYPE_INFO_HEADERS ).toString ());
484
481
}
485
- this .typeMapper .setTypePrecedence (this .useTypeHeaders ? TypePrecedence .TYPE_ID : TypePrecedence .INFERRED );
482
+ this .typeMapper .setTypePrecedence (
483
+ this .useTypeHeaders
484
+ ? org .springframework .kafka .support .mapping .Jackson2JavaTypeMapper .TypePrecedence .TYPE_ID
485
+ : org .springframework .kafka .support .mapping .Jackson2JavaTypeMapper .TypePrecedence .INFERRED );
486
486
}
487
487
}
488
488
@@ -497,7 +497,9 @@ else if (!isKey && configs.containsKey(VALUE_DEFAULT_TYPE)) {
497
497
}
498
498
499
499
if (javaType != null ) {
500
- initialize (javaType , TypePrecedence .TYPE_ID .equals (this .typeMapper .getTypePrecedence ()));
500
+ initialize (javaType ,
501
+ org .springframework .kafka .support .mapping .Jackson2JavaTypeMapper .TypePrecedence .TYPE_ID
502
+ .equals (this .typeMapper .getTypePrecedence ()));
501
503
}
502
504
}
503
505
catch (ClassNotFoundException | LinkageError e ) {
@@ -516,7 +518,10 @@ private void initialize(@Nullable JavaType type, boolean useHeadersIfPresent) {
516
518
}
517
519
518
520
addTargetPackageToTrusted ();
519
- this .typeMapper .setTypePrecedence (useHeadersIfPresent ? TypePrecedence .TYPE_ID : TypePrecedence .INFERRED );
521
+ this .typeMapper .setTypePrecedence (
522
+ useHeadersIfPresent
523
+ ? org .springframework .kafka .support .mapping .Jackson2JavaTypeMapper .TypePrecedence .TYPE_ID
524
+ : org .springframework .kafka .support .mapping .Jackson2JavaTypeMapper .TypePrecedence .INFERRED );
520
525
}
521
526
522
527
private JavaType setupTargetType (Map <String , ?> configs , String key ) throws ClassNotFoundException , LinkageError {
@@ -525,7 +530,7 @@ private JavaType setupTargetType(Map<String, ?> configs, String key) throws Clas
525
530
}
526
531
else if (configs .get (key ) instanceof String ) {
527
532
return TypeFactory .defaultInstance ()
528
- .constructType (ClassUtils .forName ((String ) configs .get (key ), null ));
533
+ .constructType (ClassUtils .forName ((String ) configs .get (key ), null ));
529
534
}
530
535
else {
531
536
throw new IllegalStateException (key + " must be Class or String" );
@@ -587,7 +592,9 @@ private void doAddTrustedPackages(String... packages) {
587
592
if (this .typeResolver != null ) {
588
593
javaType = this .typeResolver .resolveType (topic , data , headers );
589
594
}
590
- if (javaType == null && this .typeMapper .getTypePrecedence ().equals (TypePrecedence .TYPE_ID )) {
595
+ if (javaType == null && this .typeMapper .getTypePrecedence ()
596
+ .equals (org .springframework .kafka .support .mapping .Jackson2JavaTypeMapper .TypePrecedence .TYPE_ID )) {
597
+
591
598
javaType = this .typeMapper .toJavaType (headers );
592
599
}
593
600
if (javaType != null ) {
@@ -708,13 +715,13 @@ public JsonDeserializer<T> ignoreTypeHeaders() {
708
715
}
709
716
710
717
/**
711
- * Use the supplied {@link Jackson2JavaTypeMapper}.
718
+ * Use the supplied {@link org.springframework.kafka.support.mapping. Jackson2JavaTypeMapper}.
712
719
* @param mapper the mapper.
713
720
* @return the deserializer.
714
721
* @since 2.3
715
- * @see #setTypeMapper(Jackson2JavaTypeMapper)
722
+ * @see #setTypeMapper(org.springframework.kafka.support.mapping. Jackson2JavaTypeMapper)
716
723
*/
717
- public JsonDeserializer <T > typeMapper (Jackson2JavaTypeMapper mapper ) {
724
+ public JsonDeserializer <T > typeMapper (org . springframework . kafka . support . mapping . Jackson2JavaTypeMapper mapper ) {
718
725
setTypeMapper (mapper );
719
726
return this ;
720
727
}
@@ -723,7 +730,7 @@ public JsonDeserializer<T> typeMapper(Jackson2JavaTypeMapper mapper) {
723
730
* Add trusted packages to the default type mapper.
724
731
* @param packages the packages.
725
732
* @return the deserializer.
726
- * @since 2,5
733
+ * @since 2, 5
727
734
*/
728
735
public JsonDeserializer <T > trustedPackages (String ... packages ) {
729
736
try {
0 commit comments