Consistently use mutable ArrayList for modulesToInstall vs modules
Closes gh-30751
(cherry picked from commit 062d701ae1)
This commit is contained in:
@@ -580,7 +580,7 @@ public class Jackson2ObjectMapperBuilder {
|
|||||||
* @see com.fasterxml.jackson.databind.Module
|
* @see com.fasterxml.jackson.databind.Module
|
||||||
*/
|
*/
|
||||||
public Jackson2ObjectMapperBuilder modulesToInstall(Module... modules) {
|
public Jackson2ObjectMapperBuilder modulesToInstall(Module... modules) {
|
||||||
this.modules = Arrays.asList(modules);
|
this.modules = new ArrayList<>(Arrays.asList(modules));
|
||||||
this.findWellKnownModules = true;
|
this.findWellKnownModules = true;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -229,26 +229,6 @@ class Jackson2ObjectMapperBuilderTests {
|
|||||||
Jackson2ObjectMapperBuilder.json().timeZone(zoneId).build());
|
Jackson2ObjectMapperBuilder.json().timeZone(zoneId).build());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
void modules() {
|
|
||||||
NumberSerializer serializer1 = new NumberSerializer(Integer.class);
|
|
||||||
SimpleModule module = new SimpleModule();
|
|
||||||
module.addSerializer(Integer.class, serializer1);
|
|
||||||
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json().modules(module).build();
|
|
||||||
Serializers serializers = getSerializerFactoryConfig(objectMapper).serializers().iterator().next();
|
|
||||||
assertThat(serializers.findSerializer(null, SimpleType.construct(Integer.class), null)).isSameAs(serializer1);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void modulesWithConsumer() {
|
|
||||||
NumberSerializer serializer1 = new NumberSerializer(Integer.class);
|
|
||||||
SimpleModule module = new SimpleModule();
|
|
||||||
module.addSerializer(Integer.class, serializer1);
|
|
||||||
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json().modules(list -> list.add(module) ).build();
|
|
||||||
Serializers serializers = getSerializerFactoryConfig(objectMapper).serializers().iterator().next();
|
|
||||||
assertThat(serializers.findSerializer(null, SimpleType.construct(Integer.class), null)).isSameAs(serializer1);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void modulesToInstallByClass() {
|
void modulesToInstallByClass() {
|
||||||
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json()
|
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json()
|
||||||
@@ -351,14 +331,15 @@ class Jackson2ObjectMapperBuilderTests {
|
|||||||
barModule.addSerializer(new BarSerializer());
|
barModule.addSerializer(new BarSerializer());
|
||||||
builder.modulesToInstall(fooModule, barModule);
|
builder.modulesToInstall(fooModule, barModule);
|
||||||
ObjectMapper objectMapper = builder.build();
|
ObjectMapper objectMapper = builder.build();
|
||||||
|
|
||||||
assertThat(StreamSupport
|
assertThat(StreamSupport
|
||||||
.stream(getSerializerFactoryConfig(objectMapper).serializers().spliterator(), false)
|
.stream(getSerializerFactoryConfig(objectMapper).serializers().spliterator(), false)
|
||||||
.filter(s -> s.findSerializer(null, SimpleType.construct(Foo.class), null) != null)
|
.filter(s -> s.findSerializer(null, SimpleType.construct(Foo.class), null) != null)
|
||||||
.count()).isEqualTo(1);
|
.count()).isEqualTo(1);
|
||||||
assertThat(StreamSupport
|
assertThat(StreamSupport
|
||||||
.stream(getSerializerFactoryConfig(objectMapper).serializers().spliterator(), false)
|
.stream(getSerializerFactoryConfig(objectMapper).serializers().spliterator(), false)
|
||||||
.filter(s -> s.findSerializer(null, SimpleType.construct(Bar.class), null) != null)
|
.filter(s -> s.findSerializer(null, SimpleType.construct(Bar.class), null) != null)
|
||||||
.count()).isEqualTo(1);
|
.count()).isEqualTo(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static SerializerFactoryConfig getSerializerFactoryConfig(ObjectMapper objectMapper) {
|
private static SerializerFactoryConfig getSerializerFactoryConfig(ObjectMapper objectMapper) {
|
||||||
@@ -369,6 +350,38 @@ class Jackson2ObjectMapperBuilderTests {
|
|||||||
return ((BasicDeserializerFactory) objectMapper.getDeserializationContext().getFactory()).getFactoryConfig();
|
return ((BasicDeserializerFactory) objectMapper.getDeserializationContext().getFactory()).getFactoryConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void modules() {
|
||||||
|
NumberSerializer serializer1 = new NumberSerializer(Integer.class);
|
||||||
|
SimpleModule module = new SimpleModule();
|
||||||
|
module.addSerializer(Integer.class, serializer1);
|
||||||
|
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json().modules(module).build();
|
||||||
|
Serializers serializers = getSerializerFactoryConfig(objectMapper).serializers().iterator().next();
|
||||||
|
assertThat(serializers.findSerializer(null, SimpleType.construct(Integer.class), null)).isSameAs(serializer1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void modulesWithConsumer() {
|
||||||
|
NumberSerializer serializer1 = new NumberSerializer(Integer.class);
|
||||||
|
SimpleModule module = new SimpleModule();
|
||||||
|
module.addSerializer(Integer.class, serializer1);
|
||||||
|
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json().modules(list -> list.add(module) ).build();
|
||||||
|
Serializers serializers = getSerializerFactoryConfig(objectMapper).serializers().iterator().next();
|
||||||
|
assertThat(serializers.findSerializer(null, SimpleType.construct(Integer.class), null)).isSameAs(serializer1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void modulesWithConsumerAfterModulesToInstall() {
|
||||||
|
NumberSerializer serializer1 = new NumberSerializer(Integer.class);
|
||||||
|
SimpleModule module = new SimpleModule();
|
||||||
|
module.addSerializer(Integer.class, serializer1);
|
||||||
|
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json()
|
||||||
|
.modulesToInstall(new JavaTimeModule())
|
||||||
|
.modules(list -> list.add(module) ).build();
|
||||||
|
Serializers serializers = getSerializerFactoryConfig(objectMapper).serializers().iterator().next();
|
||||||
|
assertThat(serializers.findSerializer(null, SimpleType.construct(Integer.class), null)).isSameAs(serializer1);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void propertyNamingStrategy() {
|
void propertyNamingStrategy() {
|
||||||
PropertyNamingStrategy strategy = new PropertyNamingStrategy.SnakeCaseStrategy();
|
PropertyNamingStrategy strategy = new PropertyNamingStrategy.SnakeCaseStrategy();
|
||||||
@@ -381,7 +394,7 @@ class Jackson2ObjectMapperBuilderTests {
|
|||||||
void serializerByType() {
|
void serializerByType() {
|
||||||
JsonSerializer<Number> serializer = new NumberSerializer(Integer.class);
|
JsonSerializer<Number> serializer = new NumberSerializer(Integer.class);
|
||||||
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json()
|
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json()
|
||||||
.modules(new ArrayList<>()) // Disable well-known modules detection
|
.modules(new ArrayList<>()) // disable well-known modules detection
|
||||||
.serializerByType(Boolean.class, serializer)
|
.serializerByType(Boolean.class, serializer)
|
||||||
.build();
|
.build();
|
||||||
assertThat(getSerializerFactoryConfig(objectMapper).hasSerializers()).isTrue();
|
assertThat(getSerializerFactoryConfig(objectMapper).hasSerializers()).isTrue();
|
||||||
@@ -393,7 +406,7 @@ class Jackson2ObjectMapperBuilderTests {
|
|||||||
void deserializerByType() throws JsonMappingException {
|
void deserializerByType() throws JsonMappingException {
|
||||||
JsonDeserializer<Date> deserializer = new DateDeserializers.DateDeserializer();
|
JsonDeserializer<Date> deserializer = new DateDeserializers.DateDeserializer();
|
||||||
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json()
|
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json()
|
||||||
.modules(new ArrayList<>()) // Disable well-known modules detection
|
.modules(new ArrayList<>()) // disable well-known modules detection
|
||||||
.deserializerByType(Date.class, deserializer)
|
.deserializerByType(Date.class, deserializer)
|
||||||
.build();
|
.build();
|
||||||
assertThat(getDeserializerFactoryConfig(objectMapper).hasDeserializers()).isTrue();
|
assertThat(getDeserializerFactoryConfig(objectMapper).hasDeserializers()).isTrue();
|
||||||
@@ -472,7 +485,7 @@ class Jackson2ObjectMapperBuilderTests {
|
|||||||
JsonSerializer<Number> serializer2 = new NumberSerializer(Integer.class);
|
JsonSerializer<Number> serializer2 = new NumberSerializer(Integer.class);
|
||||||
|
|
||||||
Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.json()
|
Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.json()
|
||||||
.modules(new ArrayList<>()) // Disable well-known modules detection
|
.modules(new ArrayList<>()) // disable well-known modules detection
|
||||||
.serializers(serializer1)
|
.serializers(serializer1)
|
||||||
.serializersByType(Collections.singletonMap(Boolean.class, serializer2))
|
.serializersByType(Collections.singletonMap(Boolean.class, serializer2))
|
||||||
.deserializersByType(deserializerMap)
|
.deserializersByType(deserializerMap)
|
||||||
|
|||||||
Reference in New Issue
Block a user