public MutableMessage(T payload, @Nullable Map<String, Object> headers) { this(payload, new MutableMessageHeaders(headers)); }
@Override public MessageHeaders read(Kryo kryo, Input input, Class<MessageHeaders> type) { @SuppressWarnings("unchecked") Map<String, Object> headers = kryo.readObject(input, HashMap.class); return new MutableMessageHeaders(headers); }
return new GenericMessage<>(payload, new MutableMessageHeaders(headers));
@Override public T convert(JsonNode root, DeserializationContext ctxt) throws IOException { Map<String, Object> headers = this.mapper.readValue(root.get("headers").traverse(), TypeFactory.defaultInstance().constructMapType(HashMap.class, String.class, Object.class)); Object payload = this.mapper.readValue(root.get("payload").traverse(), this.payloadType); return buildMessage(new MutableMessageHeaders(headers), payload, root, ctxt); }
/** * Create a builder for a new {@link Message} instance with the provided payload. * The {@code generateHeaders} flag allows to disable {@link MessageHeaders#ID} * and {@link MessageHeaders#TIMESTAMP} headers generation. * @param payload the payload for the new message * @param generateHeaders whether generate {@link MessageHeaders#ID} * and {@link MessageHeaders#TIMESTAMP} headers * @param <T> The type of the payload. * @return A MutableMessageBuilder. * @since 5.0 */ public static <T> MutableMessageBuilder<T> withPayload(T payload, boolean generateHeaders) { MutableMessage<T> message; if (generateHeaders) { message = new MutableMessage<>(payload); } else { message = new MutableMessage<>(payload, new MutableMessageHeaders(null, MessageHeaders.ID_VALUE_NONE, -1L)); } return fromMessage(message); }
@SuppressWarnings("unchecked") @Override public Message<?> toMessage(TcpConnection connection, @Nullable Map<String, Object> headers) throws Exception { Message<Object> message = null; Object payload = connection.getPayload(); if (payload != null) { AbstractIntegrationMessageBuilder<Object> messageBuilder; if (this.bytesMessageMapper != null && payload instanceof byte[]) { messageBuilder = (AbstractIntegrationMessageBuilder<Object>) getMessageBuilderFactory() .fromMessage(this.bytesMessageMapper.toMessage((byte[]) payload)); } else { messageBuilder = getMessageBuilderFactory() .withPayload(payload); } MessageHeaders messageHeaders = new MutableMessageHeaders(null); addStandardHeaders(connection, messageHeaders); addCustomHeaders(connection, messageHeaders); message = messageBuilder .copyHeaders(messageHeaders) .copyHeadersIfAbsent(headers) .build(); } else { if (this.logger.isWarnEnabled()) { this.logger.warn("Null payload from connection " + connection.getConnectionId()); } } return message; }
public MutableMessage(T payload, @Nullable Map<String, Object> headers) { this(payload, new MutableMessageHeaders(headers)); }
@Override public MessageHeaders read(Kryo kryo, Input input, Class<MessageHeaders> type) { @SuppressWarnings("unchecked") Map<String, Object> headers = kryo.readObject(input, HashMap.class); return new MutableMessageHeaders(headers); }
.transform(new GenericTransformer<Message<String>, Message<String>>() { @Override public Message<String> transform(Message<String> message) { //incorrectly instantiated MutableMessageHeaders headers = new MutableMessageHeaders(); headers.put("Content-Type", "application/json"); headers.put("Accept", "application/json"); Message<String> request = new GenericMessage<String>(json.toString(), headers); return request; } })
return new GenericMessage<>(payload, new MutableMessageHeaders(headers));
@Override public T convert(JsonNode root, DeserializationContext ctxt) throws IOException { Map<String, Object> headers = this.mapper.readValue(root.get("headers").traverse(), TypeFactory.defaultInstance().constructMapType(HashMap.class, String.class, Object.class)); Object payload = this.mapper.readValue(root.get("payload").traverse(), this.payloadType); return buildMessage(new MutableMessageHeaders(headers), payload, root, ctxt); }
/** * Create a builder for a new {@link Message} instance with the provided payload. * The {@code generateHeaders} flag allows to disable {@link MessageHeaders#ID} * and {@link MessageHeaders#TIMESTAMP} headers generation. * @param payload the payload for the new message * @param generateHeaders whether generate {@link MessageHeaders#ID} * and {@link MessageHeaders#TIMESTAMP} headers * @param <T> The type of the payload. * @return A MutableMessageBuilder. * @since 5.0 */ public static <T> MutableMessageBuilder<T> withPayload(T payload, boolean generateHeaders) { MutableMessage<T> message; if (generateHeaders) { message = new MutableMessage<>(payload); } else { message = new MutableMessage<>(payload, new MutableMessageHeaders(null, MessageHeaders.ID_VALUE_NONE, -1L)); } return fromMessage(message); }
@SuppressWarnings("unchecked") @Override public Message<?> toMessage(TcpConnection connection, @Nullable Map<String, Object> headers) throws Exception { Message<Object> message = null; Object payload = connection.getPayload(); if (payload != null) { AbstractIntegrationMessageBuilder<Object> messageBuilder; if (this.bytesMessageMapper != null && payload instanceof byte[]) { messageBuilder = (AbstractIntegrationMessageBuilder<Object>) getMessageBuilderFactory() .fromMessage(this.bytesMessageMapper.toMessage((byte[]) payload)); } else { messageBuilder = getMessageBuilderFactory() .withPayload(payload); } MessageHeaders messageHeaders = new MutableMessageHeaders(null); addStandardHeaders(connection, messageHeaders); addCustomHeaders(connection, messageHeaders); message = messageBuilder .copyHeaders(messageHeaders) .copyHeadersIfAbsent(headers) .build(); } else { if (this.logger.isWarnEnabled()) { this.logger.warn("Null payload from connection " + connection.getConnectionId()); } } return message; }