public static synchronized void reset() { for (ObjectMapper mapper : U.list(MAPPER, PRETTY_MAPPER)) { SerializerProvider serializerProvider = mapper.getSerializerProvider(); if (serializerProvider instanceof DefaultSerializerProvider) { DefaultSerializerProvider provider = (DefaultSerializerProvider) serializerProvider; provider.flushCachedSerializers(); } else { Log.warn("Couldn't clear the cache of Jackson serializers!", "class", Cls.of(serializerProvider)); } DeserializationContext deserializationContext = mapper.getDeserializationContext(); Object cache = Cls.getFieldValue(deserializationContext, "_cache"); if (cache instanceof DeserializerCache) { DeserializerCache deserializerCache = (DeserializerCache) cache; deserializerCache.flushCachedDeserializers(); } else { Log.warn("Couldn't clear the cache of Jackson deserializers!", "class", Cls.of(cache)); } } }
public class App { public static void main(String... args) throws JsonProcessingException, IOException { ObjectMapper objectMapper = new ObjectMapper(); SimpleModule module = new SimpleModule(); /* initialize object */ A a = new A(1, 2, 3); /* initialize a new serializer object with wanted properties and add to module */ module.addSerializer(new ASerializer(new String[]{"_1", "_2"})); /* if you want to flush cached serializers */ DefaultSerializerProvider dsp = (DefaultSerializerProvider) objectMapper.getSerializerProvider(); dsp.flushCachedSerializers(); objectMapper.registerModule(module); System.out.println(objectMapper.writeValueAsString(a)); } }
public void cleanCache() { SerializerProvider serializerProvider = getObjectMapper().getSerializerProvider(); if (serializerProvider instanceof DefaultSerializerProvider) { ((DefaultSerializerProvider) serializerProvider).flushCachedSerializers(); } } }
void cleanSerializerCache(ObjectMapper mapper) { if (mapper.getSerializerProvider() instanceof DefaultSerializerProvider) { int cachedSerProvs = ((DefaultSerializerProvider) mapper .getSerializerProvider()).cachedSerializersCount(); if (cachedSerProvs > 0) { // getLogger() // .debug("flushing cachedSerializersCount:" // + cachedSerProvs); ((DefaultSerializerProvider) mapper.getSerializerProvider()) .flushCachedSerializers(); } } }