List of usage examples for com.fasterxml.jackson.databind BeanDescription getBeanClass
public Class<?> getBeanClass()
From source file:org.apache.ode.jacob.soup.jackson.JacobModule.java
public JacobModule() { super("jacob-module", Version.unknownVersion()); final ExecutionQueueImplSerializer cqis = new ExecutionQueueImplSerializer(); addSerializer(ChannelProxy.class, new ChannelProxySerializer(cqis)); addSerializer(Message.class, new MessageSerializer()); addSerializer(JacksonExecutionQueueImpl.class, cqis); addSerializer(ChannelRef.class, new ChannelRefSerializer(cqis)); addDeserializer(JacksonExecutionQueueImpl.class, new ExecutionQueueImplDeserializer()); addDeserializer(Message.class, new MessageDeserializer()); addDeserializer(Channel.class, new ChannelProxyDeserializer()); addDeserializer(ChannelRef.class, new ChannelRefDeserializer()); setDeserializerModifier(new BeanDeserializerModifier() { public JsonDeserializer<?> modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc, JsonDeserializer<?> deserializer) { // use channel proxy deserializer for channels. if (Channel.class.isAssignableFrom(beanDesc.getBeanClass()) && beanDesc.getBeanClass().isInterface()) { return new ChannelProxyDeserializer(); }/*from ww w.java 2 s. c om*/ return super.modifyDeserializer(config, beanDesc, deserializer); } }); }
From source file:com.logsniffer.config.BeanConfigFactoryManager.java
@SuppressWarnings("unchecked") @PostConstruct/*from w w w . j a va2 s .c o m*/ private void initJsonMapper() { final SimpleModule module = new SimpleModule(); module.setDeserializerModifier(new BeanDeserializerModifier() { @Override public JsonDeserializer<?> modifyDeserializer(final DeserializationConfig config, final BeanDescription beanDesc, final JsonDeserializer<?> deserializer) { if (ConfiguredBean.class.isAssignableFrom(beanDesc.getBeanClass())) { return new ConfiguredBeanDeserializer(deserializer); } return deserializer; } }); jsonMapper.registerModule(module); if (postConstructors != null) { for (final BeanPostConstructor<?> bpc : postConstructors) { mappedPostConstrucors.put(bpc.getClass(), bpc); } } // Register sub beans final ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider( false); final AssignableTypeFilter filter4configBenas = new AssignableTypeFilter(ConfiguredBean.class); scanner.addIncludeFilter(filter4configBenas); for (final BeanDefinition bd : scanner.findCandidateComponents("com.logsniffer")) { try { final Class<? extends ConfiguredBean> clazz = (Class<? extends ConfiguredBean>) Class .forName(bd.getBeanClassName()); final JsonTypeName jsonNameAnnotation = clazz.getAnnotation(JsonTypeName.class); final List<String> names = new ArrayList<String>(); configBeanNames.put(clazz, names); if (jsonNameAnnotation != null) { names.add(jsonNameAnnotation.value()); if (jsonNameAnnotation.deprecated() != null) { for (final String dep : jsonNameAnnotation.deprecated()) { names.add(dep); } } } names.add(clazz.getSimpleName()); logger.debug("Registered JSON type {} for following names: {}", clazz, names); } catch (final ClassNotFoundException e) { logger.warn("Failed to register JSON type name for " + bd.getBeanClassName(), e); } } }