static

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;
                    }
                });
            }
        });
    }