private static IMessage DoMapMessage( IMessage message, IMessageConverter converter, IRabbitHeaderMapper headerMapper, MessageDeliveryMode defaultDeliveryMode, bool headersMappedLast, bool reply) { var targetHeaders = new MessageHeaders(); IMessage amqpMessage; if (!headersMappedLast) { MapHeaders(message.Headers, targetHeaders, headerMapper, reply); } // if (converter is ContentTypeDe && headersMappedLast) { // String contentType = contentTypeAsString(message.getHeaders()); // if (contentType != null) // { // amqpMessageProperties.setContentType(contentType); // } // } amqpMessage = converter.ToMessage(message.Payload, targetHeaders); if (headersMappedLast) { MapHeaders(message.Headers, targetHeaders, headerMapper, reply); } // checkDeliveryMode(message, amqpMessageProperties, defaultDeliveryMode); return(amqpMessage); }
/** * Map an o.s.m.Message to an o.s.a.core.Message. When using a * {@link ContentTypeDelegatingMessageConverter}, {@link AmqpHeaders#CONTENT_TYPE} and * {@link MessageHeaders#CONTENT_TYPE} will be used for the selection, with the AMQP * header taking precedence. * @param requestMessage the request message. * @param converter the message converter to use. * @param headerMapper the header mapper to use. * @param defaultDeliveryMode the default delivery mode. * @param headersMappedLast true if headers are mapped after conversion. * @return the mapped Message. */ public static IMessage MapMessage( IMessage requestMessage, IMessageConverter converter, IRabbitHeaderMapper headerMapper, MessageDeliveryMode defaultDeliveryMode, bool headersMappedLast) { return(DoMapMessage(requestMessage, converter, headerMapper, defaultDeliveryMode, headersMappedLast, false)); }
private static void MapHeaders( IMessageHeaders messageHeaders, IMessageHeaders targetHeaders, IRabbitHeaderMapper headerMapper, bool reply) { if (reply) { headerMapper.FromHeadersToReply(messageHeaders, targetHeaders); } else { headerMapper.FromHeadersToRequest(messageHeaders, targetHeaders); } }