Skip to content

Commit 524f701

Browse files
committed
Polishing.
Consistent naming of Jackson 3-based implementations, fix nullability issues. See #2516
1 parent 2b9efcd commit 524f701

File tree

32 files changed

+327
-288
lines changed

32 files changed

+327
-288
lines changed

spring-data-rest-tests/spring-data-rest-tests-core/src/test/java/org/springframework/data/rest/tests/RepositoryTestsConfig.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@
4646
import org.springframework.data.rest.core.support.EntityLookup;
4747
import org.springframework.data.rest.core.support.SelfLinkProvider;
4848
import org.springframework.data.rest.webmvc.EmbeddedResourcesAssembler;
49-
import org.springframework.data.rest.webmvc.json.PersistentEntityJackson3Module;
50-
import org.springframework.data.rest.webmvc.json.PersistentEntityJackson3Module.LookupObjectSerializer;
49+
import org.springframework.data.rest.webmvc.json.PersistentEntityJacksonModule;
50+
import org.springframework.data.rest.webmvc.json.PersistentEntityJacksonModule.LookupObjectSerializer;
5151
import org.springframework.data.rest.webmvc.mapping.Associations;
5252
import org.springframework.data.rest.webmvc.mapping.DefaultLinkCollector;
5353
import org.springframework.data.rest.webmvc.mapping.LinkCollector;
@@ -127,7 +127,7 @@ public SimpleModule persistentEntityModule() {
127127
Associations associations = new Associations(mappings, config());
128128
LinkCollector collector = new DefaultLinkCollector(persistentEntities(), selfLinkProvider, associations);
129129

130-
return new PersistentEntityJackson3Module(associations, persistentEntities(), uriToEntityConverter, collector,
130+
return new PersistentEntityJacksonModule(associations, persistentEntities(), uriToEntityConverter, collector,
131131
invokerFactory, mock(LookupObjectSerializer.class),
132132
new RepresentationModelProcessorInvoker(Collections.<RepresentationModelProcessor<?>> emptyList()),
133133
new EmbeddedResourcesAssembler(persistentEntities(), associations, mock(ExcerptProjector.class)));

spring-data-rest-tests/spring-data-rest-tests-jpa/src/test/java/org/springframework/data/rest/webmvc/json/PersistentEntitySerializationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ static class TestConfig extends RepositoryTestsConfig {
8888
public JsonMapper objectMapper() {
8989

9090
return super.objectMapper().rebuild()
91-
.addModule(new Jackson3Serializers(new EnumTranslator(MessageResolver.DEFAULTS_ONLY)))
91+
.addModule(new JacksonSerializers(new EnumTranslator(MessageResolver.DEFAULTS_ONLY)))
9292
.build();
9393
}
9494
}

spring-data-rest-tests/spring-data-rest-tests-jpa/src/test/java/org/springframework/data/rest/webmvc/json/RepositoryTestsConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
import org.springframework.data.rest.webmvc.EmbeddedResourcesAssembler;
4545
import org.springframework.data.rest.webmvc.jpa.Person;
4646
import org.springframework.data.rest.webmvc.jpa.PersonRepository;
47-
import org.springframework.data.rest.webmvc.json.PersistentEntityJackson3Module.LookupObjectSerializer;
47+
import org.springframework.data.rest.webmvc.json.PersistentEntityJacksonModule.LookupObjectSerializer;
4848
import org.springframework.data.rest.webmvc.mapping.Associations;
4949
import org.springframework.data.rest.webmvc.mapping.DefaultLinkCollector;
5050
import org.springframework.data.rest.webmvc.mapping.LinkCollector;
@@ -130,7 +130,7 @@ public JacksonModule persistentEntityModule() {
130130
Associations associations = new Associations(mappings, config());
131131
LinkCollector collector = new DefaultLinkCollector(persistentEntities(), selfLinkProvider, associations);
132132

133-
return new PersistentEntityJackson3Module(associations, persistentEntities(), uriToEntityConverter, collector,
133+
return new PersistentEntityJacksonModule(associations, persistentEntities(), uriToEntityConverter, collector,
134134
invokerFactory, mock(LookupObjectSerializer.class),
135135
new RepresentationModelProcessorInvoker(Collections.<RepresentationModelProcessor<?>> emptyList()),
136136
new EmbeddedResourcesAssembler(persistentEntities(), associations, mock(ExcerptProjector.class)));

spring-data-rest-tests/spring-data-rest-tests-mongodb/src/test/java/org/springframework/data/rest/webmvc/json/PersistentEntitySerializationTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ static class TestConfig extends RepositoryTestsConfig {
8181
public ObjectMapper objectMapper() {
8282

8383
return super.objectMapper().rebuild()
84-
.addModule(new Jackson3Serializers(new EnumTranslator(MessageResolver.DEFAULTS_ONLY)))
84+
.addModule(new JacksonSerializers(new EnumTranslator(MessageResolver.DEFAULTS_ONLY)))
8585
.build();
8686
}
8787
}
Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,39 +47,39 @@
4747
* @author Greg Turnquist
4848
* @since 5.0
4949
*/
50-
public class AlpsJackson3JsonHttpMessageConverter extends JacksonJsonHttpMessageConverter
50+
public class AlpsJacksonJsonHttpMessageConverter extends JacksonJsonHttpMessageConverter
5151
implements ResponseBodyAdvice<Object> {
5252

5353
private final RootResourceInformationToAlpsDescriptorConverter converter;
5454

5555
/**
56-
* Creates a new {@link AlpsJackson3JsonHttpMessageConverter} for the given
56+
* Creates a new {@link AlpsJacksonJsonHttpMessageConverter} for the given
5757
* {@link RootResourceInformationToAlpsDescriptorConverter}.
5858
*
5959
* @param converter must not be {@literal null}.
6060
*/
61-
public AlpsJackson3JsonHttpMessageConverter(RootResourceInformationToAlpsDescriptorConverter converter) {
61+
public AlpsJacksonJsonHttpMessageConverter(RootResourceInformationToAlpsDescriptorConverter converter) {
6262
this(JsonMapper.builder(), converter);
6363
}
6464

6565
/**
66-
* Creates a new {@link AlpsJackson3JsonHttpMessageConverter} for the given {@link JsonMapper} and
66+
* Creates a new {@link AlpsJacksonJsonHttpMessageConverter} for the given {@link JsonMapper} and
6767
* {@link RootResourceInformationToAlpsDescriptorConverter}.
6868
*
6969
* @param objectMapper must not be {@literal null}.
7070
* @param converter must not be {@literal null}.
7171
*/
72-
public AlpsJackson3JsonHttpMessageConverter(JsonMapper objectMapper,
72+
public AlpsJacksonJsonHttpMessageConverter(JsonMapper objectMapper,
7373
RootResourceInformationToAlpsDescriptorConverter converter) {
7474
this(objectMapper.rebuild(), converter);
7575
}
7676

7777
/**
78-
* Creates a new {@link AlpsJackson3JsonHttpMessageConverter} for the given {@link Converter}.
78+
* Creates a new {@link AlpsJacksonJsonHttpMessageConverter} for the given {@link Converter}.
7979
*
8080
* @param converter must not be {@literal null}.
8181
*/
82-
AlpsJackson3JsonHttpMessageConverter(Builder objectMapper,
82+
AlpsJacksonJsonHttpMessageConverter(Builder objectMapper,
8383
RootResourceInformationToAlpsDescriptorConverter converter) {
8484

8585
super(objectMapper.changeDefaultPropertyInclusion(it -> it.withValueInclusion(Include.NON_EMPTY))
@@ -92,7 +92,7 @@ public AlpsJackson3JsonHttpMessageConverter(JsonMapper objectMapper,
9292
}
9393

9494
@Override
95-
public boolean canWrite(Class<?> clazz, MediaType mediaType) {
95+
public boolean canWrite(Class<?> clazz, @Nullable MediaType mediaType) {
9696
return (clazz.isAssignableFrom(Alps.class) || clazz.isAssignableFrom(RootResourceInformation.class))
9797
&& super.canWrite(clazz, mediaType);
9898
}
@@ -103,7 +103,8 @@ public boolean canRead(ResolvableType type, @Nullable MediaType mediaType) {
103103
}
104104

105105
@Override
106-
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,
106+
public @Nullable Object beforeBodyWrite(@Nullable Object body, MethodParameter returnType,
107+
MediaType selectedContentType,
107108
Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request,
108109
ServerHttpResponse response) {
109110

@@ -114,6 +115,6 @@ public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType
114115

115116
@Override
116117
public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
117-
return converterType.equals(AlpsJackson3JsonHttpMessageConverter.class);
118+
return converterType.equals(AlpsJacksonJsonHttpMessageConverter.class);
118119
}
119120
}

spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/alps/AlpsJsonHttpMessageConverter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
*
4444
* @author Oliver Gierke
4545
* @author Greg Turnquist
46-
* @deprecated since 5.0, in favor of {@link AlpsJackson3JsonHttpMessageConverter}.
46+
* @deprecated since 5.0, in favor of {@link AlpsJacksonJsonHttpMessageConverter}.
4747
*/
4848
@Deprecated(since = "5.0", forRemoval = true)
4949
public class AlpsJsonHttpMessageConverter extends MappingJackson2HttpMessageConverter

spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/alps/RootResourceInformationToAlpsDescriptorConverter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
import org.springframework.data.rest.webmvc.ProfileController;
5454
import org.springframework.data.rest.webmvc.RootResourceInformation;
5555
import org.springframework.data.rest.webmvc.json.EnumTranslator;
56-
import org.springframework.data.rest.webmvc.json.Jackson3Metadata;
56+
import org.springframework.data.rest.webmvc.json.JacksonMetadata;
5757
import org.springframework.data.rest.webmvc.mapping.Associations;
5858
import org.springframework.hateoas.Link;
5959
import org.springframework.hateoas.LinkRelation;
@@ -217,7 +217,7 @@ private List<Descriptor> createJacksonDescriptor(String name, Class<?> type) {
217217

218218
List<Descriptor> descriptors = new ArrayList<Descriptor>();
219219

220-
for (BeanPropertyDefinition definition : new Jackson3Metadata(mapper, type)) {
220+
for (BeanPropertyDefinition definition : new JacksonMetadata(mapper, type)) {
221221

222222
AnnotatedMethod getter = definition.getGetter();
223223
Description description = getter.getAnnotation(Description.class);
@@ -311,7 +311,7 @@ private List<Descriptor> buildPropertyDescriptors(final Class<?> type, LinkRelat
311311

312312
final PersistentEntity<?, ?> entity = persistentEntities.getRequiredPersistentEntity(type);
313313
final List<Descriptor> propertyDescriptors = new ArrayList<Descriptor>();
314-
final Jackson3Metadata jackson = new Jackson3Metadata(mapper, type);
314+
final JacksonMetadata jackson = new JacksonMetadata(mapper, type);
315315
final ResourceMetadata metadata = associations.getMetadataFor(entity.getType());
316316

317317
entity.doWithProperties(new SimplePropertyHandler() {

spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/aot/ValueInstantiatorCustomizerRuntimeHints.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.springframework.aot.hint.RuntimeHints;
2121
import org.springframework.aot.hint.RuntimeHintsRegistrar;
2222
import org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module;
23-
import org.springframework.data.rest.webmvc.json.PersistentEntityJackson3Module;
23+
import org.springframework.data.rest.webmvc.json.PersistentEntityJacksonModule;
2424
import org.springframework.util.ClassUtils;
2525

2626
import com.fasterxml.jackson.databind.deser.std.StdValueInstantiator;
@@ -41,13 +41,18 @@ class ValueInstantiatorCustomizerRuntimeHints implements RuntimeHintsRegistrar {
4141
public void registerHints(RuntimeHints hints, @Nullable ClassLoader classLoader) {
4242

4343
if (ClassUtils.isPresent("tools.jackson.databind.ObjectMapper", classLoader)) {
44-
hints.reflection().registerField(
45-
PersistentEntityJackson3Module.AssociationUriResolvingDeserializerModifier.ValueInstantiatorCustomizer.CONSTRUCTOR_ARGS_FIELD);
44+
if (PersistentEntityJacksonModule.AssociationUriResolvingDeserializerModifier.ValueInstantiatorCustomizer.CONSTRUCTOR_ARGS_FIELD != null) {
45+
hints.reflection().registerField(
46+
PersistentEntityJacksonModule.AssociationUriResolvingDeserializerModifier.ValueInstantiatorCustomizer.CONSTRUCTOR_ARGS_FIELD);
47+
}
4648
}
4749

4850
if (ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper", classLoader)) {
49-
hints.reflection().registerField(
50-
PersistentEntityJackson2Module.AssociationUriResolvingDeserializerModifier.ValueInstantiatorCustomizer.CONSTRUCTOR_ARGS_FIELD);
51+
52+
if (PersistentEntityJackson2Module.AssociationUriResolvingDeserializerModifier.ValueInstantiatorCustomizer.CONSTRUCTOR_ARGS_FIELD != null) {
53+
hints.reflection().registerField(
54+
PersistentEntityJackson2Module.AssociationUriResolvingDeserializerModifier.ValueInstantiatorCustomizer.CONSTRUCTOR_ARGS_FIELD);
55+
}
5156
}
5257
}
5358
}

spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/RepositoryRestMvcConfiguration.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,11 @@
8484
import org.springframework.data.rest.webmvc.RepositoryRestHandlerAdapter;
8585
import org.springframework.data.rest.webmvc.RepositoryRestHandlerMapping;
8686
import org.springframework.data.rest.webmvc.RestMediaTypes;
87-
import org.springframework.data.rest.webmvc.alps.AlpsJackson3JsonHttpMessageConverter;
87+
import org.springframework.data.rest.webmvc.alps.AlpsJacksonJsonHttpMessageConverter;
8888
import org.springframework.data.rest.webmvc.alps.RootResourceInformationToAlpsDescriptorConverter;
8989
import org.springframework.data.rest.webmvc.convert.UriListHttpMessageConverter;
9090
import org.springframework.data.rest.webmvc.json.*;
91-
import org.springframework.data.rest.webmvc.json.PersistentEntityJackson3Module.LookupObjectSerializer;
91+
import org.springframework.data.rest.webmvc.json.PersistentEntityJacksonModule.LookupObjectSerializer;
9292
import org.springframework.data.rest.webmvc.json.PersistentEntityToJsonSchemaConverter.ValueTypeSchemaPropertyCustomizerFactory;
9393
import org.springframework.data.rest.webmvc.mapping.Associations;
9494
import org.springframework.data.rest.webmvc.mapping.DefaultLinkCollector;
@@ -631,7 +631,7 @@ public UriListHttpMessageConverter uriListHttpMessageConverter() {
631631
public RequestMappingHandlerAdapter repositoryExporterHandlerAdapter(
632632
@Qualifier("mvcValidator") ObjectProvider<Validator> validator,
633633
@Qualifier("defaultMessageConverters") List<HttpMessageConverter<?>> defaultMessageConverters,
634-
AlpsJackson3JsonHttpMessageConverter alpsJsonHttpMessageConverter, SelfLinkProvider selfLinkProvider,
634+
AlpsJacksonJsonHttpMessageConverter alpsJsonHttpMessageConverter, SelfLinkProvider selfLinkProvider,
635635
PersistentEntityResourceHandlerMethodArgumentResolver persistentEntityArgumentResolver,
636636
PersistentEntityResourceAssemblerArgumentResolver persistentEntityResourceAssemblerArgumentResolver,
637637
RootResourceInformationHandlerMethodArgumentResolver repoRequestArgumentResolver,
@@ -720,7 +720,7 @@ protected JacksonModule persistentEntityJackson3Module(LinkCollector linkCollect
720720
associationLinks.get(), excerptProjector.get());
721721
LookupObjectSerializer lookupObjectSerializer = new LookupObjectSerializer(PluginRegistry.of(getEntityLookups()));
722722

723-
return new PersistentEntityJackson3Module(associationLinks.get(), persistentEntities.get(),
723+
return new PersistentEntityJacksonModule(associationLinks.get(), persistentEntities.get(),
724724
new UriToEntityConverter(persistentEntities.get(), repositoryInvokerFactory.get(),
725725
() -> defaultConversionService),
726726
linkCollector, repositoryInvokerFactory.get(), lookupObjectSerializer, invoker.getObject(), assembler);
@@ -777,7 +777,7 @@ public List<HttpMessageConverter<?>> defaultMessageConverters(
777777
@Qualifier("jacksonHttpMessageConverter") TypeConstrainedJacksonJsonHttpMessageConverter jacksonHttpMessageConverter,
778778
@Qualifier("halJacksonHttpMessageConverter") TypeConstrainedJacksonJsonHttpMessageConverter halJacksonHttpMessageConverter,
779779
@Qualifier("halFormsJacksonHttpMessageConverter") TypeConstrainedJacksonJsonHttpMessageConverter halFormsJacksonHttpMessageConverter,
780-
AlpsJackson3JsonHttpMessageConverter alpsJsonHttpMessageConverter,
780+
AlpsJacksonJsonHttpMessageConverter alpsJsonHttpMessageConverter,
781781
UriListHttpMessageConverter uriListHttpMessageConverter,
782782
RepositoryRestConfiguration repositoryRestConfiguration) {
783783

@@ -810,9 +810,9 @@ public List<HttpMessageConverter<?>> defaultMessageConverters(
810810
}
811811

812812
@Bean
813-
public AlpsJackson3JsonHttpMessageConverter alpsJsonHttpMessageConverter(
813+
public AlpsJacksonJsonHttpMessageConverter alpsJsonHttpMessageConverter(
814814
RootResourceInformationToAlpsDescriptorConverter alpsConverter) {
815-
return new AlpsJackson3JsonHttpMessageConverter(alpsConverter);
815+
return new AlpsJacksonJsonHttpMessageConverter(alpsConverter);
816816
}
817817

818818
@Bean
@@ -889,7 +889,7 @@ protected List<HandlerMethodArgumentResolver> defaultMethodArgumentResolvers(Sel
889889
PersistentEntityResourceAssemblerArgumentResolver persistentEntityResourceAssemblerArgumentResolver,
890890
RootResourceInformationHandlerMethodArgumentResolver repoRequestArgumentResolver) {
891891

892-
Jackson3MappingAwareSortTranslator sortTranslator = new Jackson3MappingAwareSortTranslator(objectMapper(),
892+
JacksonMappingAwareSortTranslator sortTranslator = new JacksonMappingAwareSortTranslator(objectMapper(),
893893
repositories.get(), DomainClassResolver.of(repositories.get(), resourceMappings.get(), baseUri.get()),
894894
persistentEntities.get(), associationLinks.get());
895895

@@ -946,7 +946,7 @@ protected Builder basicObjectMapperBuilder() {
946946
repositoryInvokerFactory.get(), () -> defaultConversionService), resourceMappings.get()));
947947

948948
if (repositoryRestConfiguration.get().isEnableEnumTranslation()) {
949-
mapperBuilder.addModule(new Jackson3Serializers(enumTranslator.get()));
949+
mapperBuilder.addModule(new JacksonSerializers(enumTranslator.get()));
950950
}
951951

952952
return mapperBuilder;

spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/AggregateReferenceResolvingModule.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@
3030

3131
import org.springframework.data.rest.core.UriToEntityConverter;
3232
import org.springframework.data.rest.core.mapping.ResourceMappings;
33-
import org.springframework.data.rest.webmvc.json.PersistentEntityJackson3Module.AssociationUriResolvingDeserializerModifier.ValueInstantiatorCustomizer;
34-
import org.springframework.data.rest.webmvc.json.PersistentEntityJackson3Module.CollectionValueInstantiator;
35-
import org.springframework.data.rest.webmvc.json.PersistentEntityJackson3Module.UriStringDeserializer;
33+
import org.springframework.data.rest.webmvc.json.PersistentEntityJacksonModule.AssociationUriResolvingDeserializerModifier.ValueInstantiatorCustomizer;
34+
import org.springframework.data.rest.webmvc.json.PersistentEntityJacksonModule.CollectionValueInstantiator;
35+
import org.springframework.data.rest.webmvc.json.PersistentEntityJacksonModule.UriStringDeserializer;
3636
import org.springframework.data.util.TypeInformation;
3737
import org.springframework.util.Assert;
3838

0 commit comments

Comments
 (0)