in aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/entities/EntityImpl.java [124:162]
static {
for (Module module: mapper.findModules()) {
try {
mapper.registerModule(module);
logger.debug("Registered module: " + module.getModuleName());
} catch (Throwable t) {
logger.error("Exception registering module: " + module.getModuleName(), t);
}
}
/*
* Inject the CauseSerializer and StackTraceElementSerializer classes into the local mapper such that they will serialize
* their respective object types.
*/
mapper.registerModule(new SimpleModule() {
private static final long serialVersionUID = 545800949242254918L;
@Override
public void setupModule(SetupContext setupContext) {
super.setupModule(setupContext);
setupContext.addBeanSerializerModifier(new BeanSerializerModifier() {
@SuppressWarnings("unchecked")
@Override
public JsonSerializer<?> modifySerializer(
SerializationConfig serializationConfig,
BeanDescription beanDescription,
JsonSerializer<?> jsonSerializer) {
Class<?> beanClass = beanDescription.getBeanClass();
if (Cause.class.isAssignableFrom(beanClass)) {
return new CauseSerializer((JsonSerializer<Object>) jsonSerializer);
} else if (StackTraceElement.class.isAssignableFrom(beanClass)) {
return new StackTraceElementSerializer();
}
return jsonSerializer;
}
});
}
});
}