Java 类com.fasterxml.jackson.databind.ser.SerializerCache 实例源码

项目:QuizUpWinner    文件:SerializerProvider.java   
public SerializerProvider()
{
  this._config = null;
  this._serializerFactory = null;
  this._serializerCache = new SerializerCache();
  this._knownSerializers = null;
  this._rootNames = new RootNameLookup();
  this._serializationView = null;
}
项目:cevent-app    文件:JacksonReloader.java   
private void invalidateJacksonCaches() {
    try {
        ConfigurableListableBeanFactory beanFactory = applicationContext.getBeanFactory();
        Collection<ObjectMapper> mappers = BeanFactoryUtils
                .beansOfTypeIncludingAncestors(beanFactory, ObjectMapper.class)
                .values();

        for (ObjectMapper mapper : mappers) {
            log.trace("Flushing Jackson serializer cache");
            SerializerProvider serializerProvider = mapper.getSerializerProvider();
            Field serializerCacheField = serializerProvider.getClass().getSuperclass().getSuperclass().getDeclaredField("_serializerCache");
            ReflectionUtils.makeAccessible(serializerCacheField);
            SerializerCache serializerCache = (SerializerCache) serializerCacheField.get(serializerProvider);
            Method serializerCacheFlushMethod = SerializerCache.class.getDeclaredMethod("flush");
            serializerCacheFlushMethod.invoke(serializerCache);

            log.trace("Flushing Jackson deserializer cache");
            DeserializationContext deserializationContext = mapper.getDeserializationContext();
            Field deSerializerCacheField = deserializationContext.getClass().getSuperclass().getSuperclass().getDeclaredField("_cache");
            ReflectionUtils.makeAccessible(deSerializerCacheField);
            DeserializerCache deSerializerCache = (DeserializerCache) deSerializerCacheField.get(deserializationContext);
            Method deSerializerCacheFlushMethod = DeserializerCache.class.getDeclaredMethod("flushCachedDeserializers");
            deSerializerCacheFlushMethod.invoke(deSerializerCache);
        }
    } catch (Exception e) {
        log.warn("Could not hot reload Jackson class!");
        e.printStackTrace();
    }
}
项目:parkingfriends    文件:JacksonReloader.java   
public void reloadEvent() {
    log.debug("Hot reloading Jackson classes");
    try {
        ConfigurableListableBeanFactory beanFactory = applicationContext.getBeanFactory();
        Collection<ObjectMapper> mappers = BeanFactoryUtils
                .beansOfTypeIncludingAncestors(beanFactory, ObjectMapper.class)
                .values();

        for (ObjectMapper mapper : mappers) {
            log.trace("Flushing Jackson serializer cache");
            SerializerProvider serializerProvider = mapper.getSerializerProvider();
            Field serializerCacheField = serializerProvider.getClass().getSuperclass().getSuperclass().getDeclaredField("_serializerCache");
            ReflectionUtils.makeAccessible(serializerCacheField);
            SerializerCache serializerCache = (SerializerCache) serializerCacheField.get(serializerProvider);
            Method serializerCacheFlushMethod = SerializerCache.class.getDeclaredMethod("flush");
            serializerCacheFlushMethod.invoke(serializerCache);

            log.trace("Flushing Jackson deserializer cache");
            DeserializationContext deserializationContext = mapper.getDeserializationContext();
            Field deSerializerCacheField = deserializationContext.getClass().getSuperclass().getSuperclass().getDeclaredField("_cache");
            ReflectionUtils.makeAccessible(deSerializerCacheField);
            DeserializerCache deSerializerCache = (DeserializerCache) deSerializerCacheField.get(deserializationContext);
            Method deSerializerCacheFlushMethod = DeserializerCache.class.getDeclaredMethod("flushCachedDeserializers");
            deSerializerCacheFlushMethod.invoke(deSerializerCache);
        }
    } catch (Exception e) {
        log.warn("Could not hot reload Jackson class!");
        e.printStackTrace();
    }
}