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 f4a8cf31f1..819bbdb3f8 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 @@ -55,7 +55,7 @@ import org.springframework.util.ClassUtils; *
  • {@link DeserializationFeature#FAIL_ON_UNKNOWN_PROPERTIES} is disabled
  • * * - *

    Compatible with Jackson 2.6 and higher, as of Spring 4.3. + *

    Compatible with Jackson 2.9 to 2.12, as of Spring 5.3. * * @author Mark Pollack * @author Dave Syer 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 935657a2ed..63ab09fd70 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 @@ -52,7 +52,7 @@ import org.springframework.util.MimeType; *

  • {@link DeserializationFeature#FAIL_ON_UNKNOWN_PROPERTIES} is disabled
  • * * - *

    Compatible with Jackson 2.9 and higher, as of Spring 5.1. + *

    Compatible with Jackson 2.9 to 2.12, as of Spring 5.3. * * @author Rossen Stoyanchev * @author Juergen Hoeller diff --git a/spring-web/src/main/java/org/springframework/http/converter/cbor/MappingJackson2CborHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/cbor/MappingJackson2CborHttpMessageConverter.java index 02c3151ef7..12016c184b 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/cbor/MappingJackson2CborHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/cbor/MappingJackson2CborHttpMessageConverter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,7 +37,7 @@ import org.springframework.util.Assert; *

    The default constructor uses the default configuration provided by * {@link Jackson2ObjectMapperBuilder}. * - *

    Compatible with Jackson 2.9 and higher. + *

    Compatible with Jackson 2.9 to 2.12, as of Spring 5.3. * * @author Sebastien Deleuze * @since 5.0 diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java index 8dfb121c0d..5e90059576 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/AbstractJackson2HttpMessageConverter.java @@ -61,7 +61,7 @@ import org.springframework.util.TypeUtils; * Abstract base class for Jackson based and content type independent * {@link HttpMessageConverter} implementations. * - *

    Compatible with Jackson 2.9 and higher, as of Spring 5.0. + *

    Compatible with Jackson 2.9 to 2.12, as of Spring 5.3. * * @author Arjen Poutsma * @author Keith Donald diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java b/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java index ef4ce71bb7..cec7769237 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilder.java @@ -92,7 +92,7 @@ import org.springframework.util.xml.StaxUtils; * support for Kotlin classes and data classes * * - *

    Compatible with Jackson 2.6 and higher, as of Spring 4.3. + *

    Compatible with Jackson 2.9 to 2.12, as of Spring 5.3. * * @author Sebastien Deleuze * @author Juergen Hoeller @@ -649,8 +649,8 @@ public class Jackson2ObjectMapperBuilder { * An option to apply additional customizations directly to the * {@code ObjectMapper} instances at the end, after all other config * properties of the builder have been applied. - * @param configurer a configurer to apply; if invoked multiple times, all - * configurers are applied in the same order. + * @param configurer a configurer to apply. If several configurers are + * registered, they will get applied in their registration order. * @since 5.3 */ public Jackson2ObjectMapperBuilder postConfigurer(Consumer configurer) { diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperFactoryBean.java b/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperFactoryBean.java index 36338243c2..57d3e63e18 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/Jackson2ObjectMapperFactoryBean.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -135,7 +135,7 @@ import org.springframework.lang.Nullable; * </bean * * - *

    Compatible with Jackson 2.6 and higher, as of Spring 4.3. + *

    Compatible with Jackson 2.9 to 2.12, as of Spring 5.3. * * @author Dmitry Katsubo * @author Rossen Stoyanchev diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java index b3616ea197..9113ab9692 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,7 +36,7 @@ import org.springframework.lang.Nullable; * *

    The default constructor uses the default configuration provided by {@link Jackson2ObjectMapperBuilder}. * - *

    Compatible with Jackson 2.9 and higher, as of Spring 5.0. + *

    Compatible with Jackson 2.9 to 2.12, as of Spring 5.3. * * @author Arjen Poutsma * @author Keith Donald diff --git a/spring-web/src/main/java/org/springframework/http/converter/smile/MappingJackson2SmileHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/smile/MappingJackson2SmileHttpMessageConverter.java index 9eead5a3e1..5bed2ca929 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/smile/MappingJackson2SmileHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/smile/MappingJackson2SmileHttpMessageConverter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,7 +35,7 @@ import org.springframework.util.Assert; * *

    The default constructor uses the default configuration provided by {@link Jackson2ObjectMapperBuilder}. * - *

    Compatible with Jackson 2.9 and higher. + *

    Compatible with Jackson 2.9 to 2.12, as of Spring 5.3. * * @author Sebastien Deleuze * @since 5.0 diff --git a/spring-web/src/main/java/org/springframework/http/converter/xml/MappingJackson2XmlHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/xml/MappingJackson2XmlHttpMessageConverter.java index 3e1d6729da..05a8660668 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/xml/MappingJackson2XmlHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/xml/MappingJackson2XmlHttpMessageConverter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,7 +37,7 @@ import org.springframework.util.Assert; * *

    The default constructor uses the default configuration provided by {@link Jackson2ObjectMapperBuilder}. * - *

    Compatible with Jackson 2.9 and higher, as of Spring 5.0. + *

    Compatible with Jackson 2.9 to 2.12, as of Spring 5.3. * * @author Sebastien Deleuze * @since 4.1 diff --git a/spring-web/src/test/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilderTests.java b/spring-web/src/test/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilderTests.java index 81a8fe3fa1..32e91d07f6 100644 --- a/spring-web/src/test/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilderTests.java +++ b/spring-web/src/test/java/org/springframework/http/converter/json/Jackson2ObjectMapperBuilderTests.java @@ -354,7 +354,7 @@ class Jackson2ObjectMapperBuilderTests { @Test void propertyNamingStrategy() { - PropertyNamingStrategy strategy = new PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy(); + PropertyNamingStrategy strategy = new PropertyNamingStrategy.SnakeCaseStrategy(); ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json().propertyNamingStrategy(strategy).build(); assertThat(objectMapper.getSerializationConfig().getPropertyNamingStrategy()).isSameAs(strategy); assertThat(objectMapper.getDeserializationConfig().getPropertyNamingStrategy()).isSameAs(strategy); @@ -430,9 +430,8 @@ class Jackson2ObjectMapperBuilderTests { assertThat(output).doesNotContain("value2"); } - @Test // gh-23017 + @Test // gh-23017 void postConfigurer() { - JacksonAnnotationIntrospector introspector1 = new JacksonAnnotationIntrospector(); JacksonAnnotationIntrospector introspector2 = new JacksonAnnotationIntrospector(); @@ -456,7 +455,7 @@ class Jackson2ObjectMapperBuilderTests { JsonSerializer serializer2 = new NumberSerializer(Integer.class); Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.json() - .modules(new ArrayList<>()) // Disable well-known modules detection + .modules(new ArrayList<>()) // Disable well-known modules detection .serializers(serializer1) .serializersByType(Collections.singletonMap(Boolean.class, serializer2)) .deserializersByType(deserializerMap) @@ -564,7 +563,6 @@ class Jackson2ObjectMapperBuilderTests { assertThat(objectMapper.getFactory().getClass()).isEqualTo(SmileFactory.class); } - @Test void visibility() throws JsonProcessingException { ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json() @@ -578,6 +576,7 @@ class Jackson2ObjectMapperBuilderTests { assertThat(json).doesNotContain("property3"); } + static class CustomIntegerModule extends Module { @Override @@ -664,6 +663,7 @@ class Jackson2ObjectMapperBuilderTests { } } + static class JacksonVisibilityBean { @SuppressWarnings("unused") @@ -674,9 +674,9 @@ class Jackson2ObjectMapperBuilderTests { public String getProperty3() { return null; } - } + static class OffsetDateTimeDeserializer extends JsonDeserializer { private static final String CURRENT_ZONE_OFFSET = OffsetDateTime.now().getOffset().toString(); @@ -697,6 +697,7 @@ class Jackson2ObjectMapperBuilderTests { } } + @JsonDeserialize static class DemoPojo { @@ -709,7 +710,6 @@ class Jackson2ObjectMapperBuilderTests { public void setOffsetDateTime(OffsetDateTime offsetDateTime) { this.offsetDateTime = offsetDateTime; } - } @SuppressWarnings("serial") diff --git a/spring-web/src/test/java/org/springframework/http/converter/json/Jackson2ObjectMapperFactoryBeanTests.java b/spring-web/src/test/java/org/springframework/http/converter/json/Jackson2ObjectMapperFactoryBeanTests.java index 8968b87234..cfef6d650d 100644 --- a/spring-web/src/test/java/org/springframework/http/converter/json/Jackson2ObjectMapperFactoryBeanTests.java +++ b/spring-web/src/test/java/org/springframework/http/converter/json/Jackson2ObjectMapperFactoryBeanTests.java @@ -261,7 +261,7 @@ public class Jackson2ObjectMapperFactoryBeanTests { @Test public void propertyNamingStrategy() { - PropertyNamingStrategy strategy = new PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy(); + PropertyNamingStrategy strategy = new PropertyNamingStrategy.SnakeCaseStrategy(); this.factory.setPropertyNamingStrategy(strategy); this.factory.afterPropertiesSet(); diff --git a/spring-web/src/test/java/org/springframework/http/converter/json/SpringHandlerInstantiatorTests.java b/spring-web/src/test/java/org/springframework/http/converter/json/SpringHandlerInstantiatorTests.java index 085025ced5..34ec83ba40 100644 --- a/spring-web/src/test/java/org/springframework/http/converter/json/SpringHandlerInstantiatorTests.java +++ b/spring-web/src/test/java/org/springframework/http/converter/json/SpringHandlerInstantiatorTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -46,7 +46,6 @@ import com.fasterxml.jackson.databind.jsontype.TypeDeserializer; import com.fasterxml.jackson.databind.jsontype.TypeIdResolver; import com.fasterxml.jackson.databind.jsontype.TypeSerializer; import com.fasterxml.jackson.databind.jsontype.impl.StdTypeResolverBuilder; -import com.fasterxml.jackson.databind.type.TypeFactory; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -202,11 +201,6 @@ public class SpringHandlerInstantiatorTests { return JsonTypeInfo.Id.CUSTOM; } - // Only needed when compiling against Jackson 2.7; gone in 2.8 - public JavaType typeFromId(String s) { - return TypeFactory.defaultInstance().constructFromCanonical(s); - } - @Override public String idFromValue(Object value) { isAutowiredFiledInitialized = (this.capitalizer != null); @@ -227,7 +221,6 @@ public class SpringHandlerInstantiatorTests { return null; } - // New in Jackson 2.7 @Override public String getDescForKnownTypeIds() { return null; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/AbstractJackson2View.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/AbstractJackson2View.java index ffac9fb147..b24f766eae 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/AbstractJackson2View.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/AbstractJackson2View.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -41,7 +41,7 @@ import org.springframework.web.servlet.view.AbstractView; * Abstract base class for Jackson based and content type independent * {@link AbstractView} implementations. * - *

    Compatible with Jackson 2.6 and higher, as of Spring 4.3. + *

    Compatible with Jackson 2.9 to 2.12, as of Spring 5.3. * * @author Jeremy Grelle * @author Arjen Poutsma diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/MappingJackson2JsonView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/MappingJackson2JsonView.java index 4bed5c7891..25290cc281 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/MappingJackson2JsonView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/MappingJackson2JsonView.java @@ -42,7 +42,7 @@ import org.springframework.web.servlet.View; * *

    The default constructor uses the default configuration provided by {@link Jackson2ObjectMapperBuilder}. * - *

    Compatible with Jackson 2.6 and higher, as of Spring 4.3. + *

    Compatible with Jackson 2.9 to 2.12, as of Spring 5.3. * * @author Jeremy Grelle * @author Arjen Poutsma diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java index 95815ba0e3..05b5640785 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -38,7 +38,7 @@ import org.springframework.web.servlet.view.json.AbstractJackson2View; * *

    The default constructor uses the default configuration provided by {@link Jackson2ObjectMapperBuilder}. * - *

    Compatible with Jackson 2.6 and higher, as of Spring 4.3. + *

    Compatible with Jackson 2.9 to 2.12, as of Spring 5.3. * * @author Sebastien Deleuze * @since 4.1