amqpMessage = converter.toMessage(requestMessage.getPayload(), amqpMessageProperties); if (headersMappedLast) { headerMapper.fromHeadersToRequest(requestMessage.getHeaders(), amqpMessageProperties);
@Test // INT-2090 public void jsonTypeIdNotOverwritten() { DefaultAmqpHeaderMapper headerMapper = DefaultAmqpHeaderMapper.inboundMapper(); MessageConverter converter = new Jackson2JsonMessageConverter(); MessageProperties amqpProperties = new MessageProperties(); converter.toMessage("123", amqpProperties); Map<String, Object> headerMap = new HashMap<String, Object>(); headerMap.put("__TypeId__", "java.lang.Integer"); MessageHeaders integrationHeaders = new MessageHeaders(headerMap); headerMapper.fromHeadersToRequest(integrationHeaders, amqpProperties); assertEquals("java.lang.String", amqpProperties.getHeaders().get("__TypeId__")); Object result = converter.fromMessage(new Message("123".getBytes(), amqpProperties)); assertEquals(String.class, result.getClass()); }
@Override public Message toMessage(Object object, MessageProperties messageProperties) throws MessageConversionException { return this.delegate.toMessage(object, messageProperties); }
/** * Convert a Java object to a Message. * The default implementation calls {@link #toMessage(Object, MessageProperties)}. * @param object the object to convert * @param messageProperties The message properties. * @param genericType the type to use to populate type headers. * @return the Message * @throws MessageConversionException in case of conversion failure * @since 2.1 */ default Message toMessage(Object object, MessageProperties messageProperties, @Nullable Type genericType) throws MessageConversionException { return toMessage(object, messageProperties); }
@Override public org.springframework.amqp.core.Message toMessage(Object object, MessageProperties messageProperties) throws MessageConversionException { if (!(object instanceof Message)) { throw new IllegalArgumentException("Could not convert [" + object + "] - only [" + Message.class.getName() + "] is handled by this converter"); } Message<?> input = (Message<?>) object; org.springframework.amqp.core.Message amqpMessage = this.payloadConverter.toMessage( input.getPayload(), messageProperties); this.headerMapper.fromHeaders(input.getHeaders(), messageProperties); return amqpMessage; }
private Message convertMessageIfNecessary(final Object object) { if (object instanceof Message) { return (Message) object; } return messageConverter.toMessage(object, new MessageProperties()); } }
@Override protected Message createMessage(Object object, MessageProperties messageProperties) { String contentType = messageProperties.getContentType(); MessageConverter converter = converters.get(contentType); if(converter == null) //Try to fall back converter = this.fallbackConverter; if(converter == null) //Can't even fall back, punt throw new MessageConversionException("Cannot find converter for content type of "+contentType); return converter.toMessage(object, messageProperties); }
@Override protected Message createMessage(Object object, MessageProperties messageProperties) { String contentType = messageProperties.getContentType(); MessageConverter converter = converters.get(contentType); if(converter == null) //Try to fall back converter = this.fallbackConverter; if(converter == null) //Can't even fall back, punt throw new MessageConversionException("Cannot find converter for content type of "+contentType); return converter.toMessage(object, messageProperties); }
protected Message convertMessageIfNecessary(final Object object) { if (object instanceof Message) { return (Message) object; } return getRequiredMessageConverter().toMessage(object, new MessageProperties()); }
@Override public Message toMessage(Object object, MessageProperties messageProperties) { String contentType = messageProperties.getContentType(); return getConverterForContentType(contentType).toMessage(object, messageProperties); }
protected Message convertMessageIfNecessary(final Object object) { if (object instanceof Message) { return (Message) object; } return getRequiredMessageConverter().toMessage(object, new MessageProperties()); }
private org.springframework.amqp.core.Message createMessage(Message<?> message) { try { return getAmqpMessageConverter().toMessage(message, new MessageProperties()); } catch (org.springframework.amqp.support.converter.MessageConversionException ex) { throw new MessageConversionException("Could not convert '" + message + "'", ex); } }
private org.springframework.amqp.core.Message createMessage(Message<?> message) { try { return getAmqpMessageConverter().toMessage(message, new MessageProperties()); } catch (org.springframework.amqp.support.converter.MessageConversionException ex) { throw new MessageConversionException("Could not convert '" + message + "'", ex); } }
protected Message createMessage(final Object payload, final MessageProperties messageProperties) { if (payload == null) { messageProperties.setContentType(MessageProperties.CONTENT_TYPE_JSON); return new Message(null, messageProperties); } return getDmfClient().getMessageConverter().toMessage(payload, messageProperties); }
protected Message createMessage(final Object payload, final MessageProperties messageProperties) { if (payload == null) { messageProperties.setContentType(MessageProperties.CONTENT_TYPE_JSON); return new Message(null, messageProperties); } return getDmfClient().getMessageConverter().toMessage(payload, messageProperties); }
public Message toAMQPMessage(MessageConverter msgConverter) { MessageProperties properties = new MessageProperties(); properties.setMessageId(this.getMessageId()); Message amqpMessage; if(this.getBody() != null) { amqpMessage = msgConverter.toMessage(this.getBody(), properties); if(LOG.isTraceEnabled()) { String asText = new String(amqpMessage.getBody()); LOG.trace("Translating To AMQP Message: "+asText); } } else { amqpMessage = new Message(new byte[]{}, properties); } return new HeadersPostProcessor(this).postProcessMessage(amqpMessage); }
protected void sendCancelMessageToTarget(final String tenant, final String controllerId, final Long actionId, final URI address) { if (!IpUtil.isAmqpUri(address)) { return; } final DmfActionRequest actionRequest = new DmfActionRequest(); actionRequest.setActionId(actionId); final Message message = getMessageConverter().toMessage(actionRequest, createConnectorMessagePropertiesEvent(tenant, controllerId, EventTopic.CANCEL_DOWNLOAD)); amqpSenderService.sendMessage(message, address); }
private void send(Object object, Address replyToAddress, Message requestMessage) { Message message = this.messageConverter.toMessage(object, new MessageProperties()); message.getMessageProperties().setCorrelationId(requestMessage.getMessageProperties().getCorrelationId()); getAmqpTemplate().send(replyToAddress.getExchangeName(), replyToAddress.getRoutingKey(), message); }
@Test public void convertMessageConversionExceptionOnSend() { Message<String> message = createTextMessage(); MessageConverter messageConverter = mock(MessageConverter.class); willThrow(org.springframework.amqp.support.converter.MessageConversionException.class) .given(messageConverter).toMessage(eq(message), anyMessageProperties()); messagingTemplate.setAmqpMessageConverter(messageConverter); thrown.expect(org.springframework.messaging.converter.MessageConversionException.class); messagingTemplate.send("myQueue", message); }
@Override public Object convertSendAndReceive(Object payload) throws AmqpException { Object[] arguments = ((RemoteInvocation) payload).getArguments(); if (arguments.length == 1 && arguments[0].equals("timeout")) { return null; } MessageConverter messageConverter = serviceExporter.getMessageConverter(); Address replyTo = new Address("fakeExchangeName", "fakeRoutingKey"); MessageProperties messageProperties = new MessageProperties(); messageProperties.setReplyToAddress(replyTo); Message message = messageConverter.toMessage(payload, messageProperties); serviceExporter.onMessage(message); Message resultMessage = sentSavingTemplate.getLastMessage(); return messageConverter.fromMessage(resultMessage); } };