Adding a uniform configuration for all json/yaml mapper use cases: bugfix
This commit is contained in:
parent
a5e3b81a50
commit
6edb0d49e9
|
@ -7,18 +7,11 @@ package org.whispersystems.textsecuregcm.util;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||||
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
import com.fasterxml.jackson.annotation.PropertyAccessor;
|
||||||
import com.fasterxml.jackson.core.JsonParser;
|
|
||||||
import com.fasterxml.jackson.databind.DeserializationContext;
|
|
||||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||||
import com.fasterxml.jackson.databind.JsonDeserializer;
|
|
||||||
import com.fasterxml.jackson.databind.Module;
|
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.module.SimpleModule;
|
|
||||||
import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
|
import com.fasterxml.jackson.dataformat.yaml.YAMLMapper;
|
||||||
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
|
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||||
import com.vdurmont.semver4j.Semver;
|
|
||||||
import java.io.IOException;
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
public class SystemMapper {
|
public class SystemMapper {
|
||||||
|
@ -42,20 +35,9 @@ public class SystemMapper {
|
||||||
return mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
return mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
|
||||||
.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE)
|
.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE)
|
||||||
.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY)
|
.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY)
|
||||||
|
.setVisibility(PropertyAccessor.CREATOR, JsonAutoDetect.Visibility.PUBLIC_ONLY)
|
||||||
.registerModules(
|
.registerModules(
|
||||||
applicationModule(),
|
|
||||||
new JavaTimeModule(),
|
new JavaTimeModule(),
|
||||||
new Jdk8Module());
|
new Jdk8Module());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Module applicationModule() {
|
|
||||||
return new SimpleModule()
|
|
||||||
.addDeserializer(Semver.class, new JsonDeserializer<>() {
|
|
||||||
@Override
|
|
||||||
public Semver deserialize(final JsonParser p, final DeserializationContext ctxt) throws IOException {
|
|
||||||
final String strValue = p.readValueAs(String.class);
|
|
||||||
return strValue != null ? new Semver(strValue) : null;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue