List of usage examples for org.springframework.messaging.converter MessageConverter toMessage
@Nullable Message<?> toMessage(Object payload, @Nullable MessageHeaders headers);
From source file:org.springframework.cloud.aws.messaging.support.converter.ObjectMessageConverterTest.java
@Test public void testToMessageAndFromMessage() throws Exception { String content = "stringwithspecialcharsa8"; MySerializableClass sourceMessage = new MySerializableClass(content); MessageConverter messageConverter = new ObjectMessageConverter(); Message<?> message = messageConverter.toMessage(sourceMessage, getMessageHeaders("UTF-8")); assertTrue(Base64.isBase64(message.getPayload().toString().getBytes("UTF-8"))); MySerializableClass result = (MySerializableClass) messageConverter.fromMessage(message, MySerializableClass.class); assertEquals(content, result.getContent()); }
From source file:org.springframework.cloud.aws.messaging.support.converter.ObjectMessageConverterTest.java
@Test public void testToMessageAndFromMessageWithCustomEncoding() throws Exception { String content = "stringwithspecialcharsa8"; MySerializableClass sourceMessage = new MySerializableClass(content); MessageConverter messageConverter = new ObjectMessageConverter("ISO-8859-1"); Message<?> message = messageConverter.toMessage(sourceMessage, getMessageHeaders("ISO-8859-1")); assertTrue(Base64.isBase64(message.getPayload().toString().getBytes("ISO-8859-1"))); MySerializableClass result = (MySerializableClass) messageConverter.fromMessage(message, MySerializableClass.class); assertEquals(content, result.getContent()); }
From source file:org.springframework.cloud.stream.binder.kafka.streams.KafkaStreamsMessageConversionDelegate.java
/** * Serialize {@link KStream} records on outbound based on contentType. * * @param outboundBindTarget outbound KStream target * @return serialized KStream/*from ww w. jav a 2 s . com*/ */ @SuppressWarnings("rawtypes") public KStream serializeOnOutbound(KStream<?, ?> outboundBindTarget) { String contentType = this.kstreamBindingInformationCatalogue.getContentType(outboundBindTarget); MessageConverter messageConverter = this.compositeMessageConverterFactory .getMessageConverterForAllRegistered(); return outboundBindTarget.mapValues((v) -> { Message<?> message = v instanceof Message<?> ? (Message<?>) v : MessageBuilder.withPayload(v).build(); Map<String, Object> headers = new HashMap<>(message.getHeaders()); if (!StringUtils.isEmpty(contentType)) { headers.put(MessageHeaders.CONTENT_TYPE, contentType); } MessageHeaders messageHeaders = new MessageHeaders(headers); return messageConverter.toMessage(message.getPayload(), messageHeaders).getPayload(); }); }
From source file:org.springframework.messaging.core.AbstractMessageSendingTemplate.java
/** * Convert the given Object to serialized form, possibly using a * {@link MessageConverter}, wrap it as a message with the given * headers and apply the given post processor. * @param payload the Object to use as payload * @param headers headers for the message to send * @param postProcessor the post processor to apply to the message * @return the converted message//from w w w . j av a 2 s . com */ protected Message<?> doConvert(Object payload, @Nullable Map<String, Object> headers, @Nullable MessagePostProcessor postProcessor) { MessageHeaders messageHeaders = null; Object conversionHint = (headers != null ? headers.get(CONVERSION_HINT_HEADER) : null); Map<String, Object> headersToUse = processHeadersToSend(headers); if (headersToUse != null) { if (headersToUse instanceof MessageHeaders) { messageHeaders = (MessageHeaders) headersToUse; } else { messageHeaders = new MessageHeaders(headersToUse); } } MessageConverter converter = getMessageConverter(); Message<?> message = (converter instanceof SmartMessageConverter ? ((SmartMessageConverter) converter).toMessage(payload, messageHeaders, conversionHint) : converter.toMessage(payload, messageHeaders)); if (message == null) { String payloadType = payload.getClass().getName(); Object contentType = (messageHeaders != null ? messageHeaders.get(MessageHeaders.CONTENT_TYPE) : null); throw new MessageConversionException("Unable to convert payload with type='" + payloadType + "', contentType='" + contentType + "', converter=[" + getMessageConverter() + "]"); } if (postProcessor != null) { message = postProcessor.postProcessMessage(message); } return message; }