@Override public AdviceMessage<?> convert(Document source) { @SuppressWarnings("unchecked") Map<String, Object> headers = MongoDbMessageStore.this.converter.normalizeHeaders((Map<String, Object>) source.get("headers")); Message<?> inputMessage = null; if (source.get("inputMessage") != null) { Bson inputMessageObject = (Bson) source.get("inputMessage"); Object inputMessageType = asMap(inputMessageObject).get("_class"); try { Class<?> messageClass = ClassUtils.forName(inputMessageType.toString(), MongoDbMessageStore.this.classLoader); inputMessage = (Message<?>) MongoDbMessageStore.this.converter.read(messageClass, inputMessageObject); } catch (Exception e) { throw new IllegalStateException("failed to load class: " + inputMessageType, e); } } AdviceMessage<?> message = new AdviceMessage<>( MongoDbMessageStore.this.converter.extractPayload(source), headers, inputMessage); enhanceHeaders(message.getHeaders(), headers); return message; }
@Override public AdviceMessage<?> convert(Document source) { @SuppressWarnings("unchecked") Map<String, Object> headers = MongoDbMessageStore.this.converter.normalizeHeaders((Map<String, Object>) source.get("headers")); Message<?> inputMessage = null; if (source.get("inputMessage") != null) { Bson inputMessageObject = (Bson) source.get("inputMessage"); Object inputMessageType = asMap(inputMessageObject).get("_class"); try { Class<?> messageClass = ClassUtils.forName(inputMessageType.toString(), MongoDbMessageStore.this.classLoader); inputMessage = (Message<?>) MongoDbMessageStore.this.converter.read(messageClass, inputMessageObject); } catch (Exception e) { throw new IllegalStateException("failed to load class: " + inputMessageType, e); } } AdviceMessage<?> message = new AdviceMessage<>( MongoDbMessageStore.this.converter.extractPayload(source), headers, inputMessage); enhanceHeaders(message.getHeaders(), headers); return message; }