Example usage for org.springframework.messaging MessageHeaders REPLY_CHANNEL

List of usage examples for org.springframework.messaging MessageHeaders REPLY_CHANNEL

Introduction

In this page you can find the example usage for org.springframework.messaging MessageHeaders REPLY_CHANNEL.

Prototype

String REPLY_CHANNEL

To view the source code for org.springframework.messaging MessageHeaders REPLY_CHANNEL.

Click Source Link

Document

The key for the message reply channel.

Usage

From source file:org.springframework.integration.dsl.test.IntegrationFlowTests.java

@Test
public void testMethodInvokingMessageHandler() {
    QueueChannel replyChannel = new QueueChannel();
    Message<?> message = MessageBuilder.withPayload("world")
            .setHeader(MessageHeaders.REPLY_CHANNEL, replyChannel).build();
    this.methodInvokingInput.send(message);
    Message<?> receive = replyChannel.receive(5000);
    assertNotNull(receive);//from  ww  w. j a  va2  s .c  om
    assertEquals("Hello World and world", receive.getPayload());
}

From source file:org.springframework.integration.dsl.test.IntegrationFlowTests.java

@Test
public void testLambdas() {
    QueueChannel replyChannel = new QueueChannel();
    Message<?> message = MessageBuilder.withPayload("World")
            .setHeader(MessageHeaders.REPLY_CHANNEL, replyChannel).build();
    this.lamdasInput.send(message);
    Message<?> receive = replyChannel.receive(5000);
    assertNotNull(receive);/*from  w  w  w. j  a  va2  s. c o  m*/
    assertEquals("Hello World", receive.getPayload());

    message = MessageBuilder.withPayload("Spring").setHeader(MessageHeaders.REPLY_CHANNEL, replyChannel)
            .build();

    this.lamdasInput.send(message);
    assertNull(replyChannel.receive(10));

}

From source file:org.springframework.integration.dsl.test.IntegrationFlowTests.java

@Test
public void testContentEnricher() {
    QueueChannel replyChannel = new QueueChannel();
    Message<?> message = MessageBuilder.withPayload(new TestPojo("Bar"))
            .setHeader(MessageHeaders.REPLY_CHANNEL, replyChannel).build();
    this.enricherInput.send(message);
    Message<?> receive = replyChannel.receive(5000);
    assertNotNull(receive);/*from w ww .j  a v  a2  s. c  om*/
    assertEquals("Bar Bar", receive.getHeaders().get("foo"));
    Object payload = receive.getPayload();
    assertThat(payload, instanceOf(TestPojo.class));
    TestPojo result = (TestPojo) payload;
    assertEquals("Bar Bar", result.getName());
    assertNotNull(result.getDate());
    assertThat(new Date(), Matchers.greaterThanOrEqualTo(result.getDate()));
}

From source file:org.springframework.integration.dsl.test.IntegrationFlowTests.java

@Test
public void testContentEnricher2() {
    QueueChannel replyChannel = new QueueChannel();
    Message<?> message = MessageBuilder.withPayload(new TestPojo("Bar"))
            .setHeader(MessageHeaders.REPLY_CHANNEL, replyChannel).build();
    this.enricherInput2.send(message);
    Message<?> receive = replyChannel.receive(5000);
    assertNotNull(receive);/*from   ww w  .  j  a va  2s.c  o  m*/
    assertNull(receive.getHeaders().get("foo"));
    Object payload = receive.getPayload();
    assertThat(payload, instanceOf(TestPojo.class));
    TestPojo result = (TestPojo) payload;
    assertEquals("Bar Bar", result.getName());
    assertNotNull(result.getDate());
    assertThat(new Date(), Matchers.greaterThanOrEqualTo(result.getDate()));
}

From source file:org.springframework.integration.dsl.test.IntegrationFlowTests.java

@Test
public void testContentEnricher3() {
    QueueChannel replyChannel = new QueueChannel();
    Message<?> message = MessageBuilder.withPayload(new TestPojo("Bar"))
            .setHeader(MessageHeaders.REPLY_CHANNEL, replyChannel).build();
    this.enricherInput3.send(message);
    Message<?> receive = replyChannel.receive(5000);
    assertNotNull(receive);//from  w  ww. ja  va 2 s  .co  m
    assertEquals("Bar Bar", receive.getHeaders().get("foo"));
    Object payload = receive.getPayload();
    assertThat(payload, instanceOf(TestPojo.class));
    TestPojo result = (TestPojo) payload;
    assertEquals("Bar", result.getName());
    assertNull(result.getDate());
}

From source file:org.springframework.kafka.support.AbstractKafkaHeaderMapper.java

protected boolean matches(String header, Object value) {
    if (matches(header)) {
        if ((header.equals(MessageHeaders.REPLY_CHANNEL) || header.equals(MessageHeaders.ERROR_CHANNEL))
                && !(value instanceof String)) {
            if (this.logger.isDebugEnabled()) {
                this.logger.debug("Cannot map " + header + " when type is [" + value.getClass()
                        + "]; it must be a String");
            }//  w  w  w  .j  a  v a 2 s .  c  om
            return false;
        }
        return true;
    }
    return false;
}

From source file:org.springframework.messaging.core.GenericMessagingTemplate.java

@Override
@Nullable/*from w  w w  .j  av  a  2s  .c o m*/
protected final Message<?> doSendAndReceive(MessageChannel channel, Message<?> requestMessage) {
    Assert.notNull(channel, "'channel' is required");
    Object originalReplyChannelHeader = requestMessage.getHeaders().getReplyChannel();
    Object originalErrorChannelHeader = requestMessage.getHeaders().getErrorChannel();

    long sendTimeout = sendTimeout(requestMessage);
    long receiveTimeout = receiveTimeout(requestMessage);

    TemporaryReplyChannel tempReplyChannel = new TemporaryReplyChannel(this.throwExceptionOnLateReply);
    requestMessage = MessageBuilder.fromMessage(requestMessage).setReplyChannel(tempReplyChannel)
            .setHeader(this.sendTimeoutHeader, null).setHeader(this.receiveTimeoutHeader, null)
            .setErrorChannel(tempReplyChannel).build();

    try {
        doSend(channel, requestMessage, sendTimeout);
    } catch (RuntimeException ex) {
        tempReplyChannel.setSendFailed(true);
        throw ex;
    }

    Message<?> replyMessage = this.doReceive(tempReplyChannel, receiveTimeout);
    if (replyMessage != null) {
        replyMessage = MessageBuilder.fromMessage(replyMessage)
                .setHeader(MessageHeaders.REPLY_CHANNEL, originalReplyChannelHeader)
                .setHeader(MessageHeaders.ERROR_CHANNEL, originalErrorChannelHeader).build();
    }

    return replyMessage;
}

From source file:org.springframework.messaging.support.MessageHeaderAccessor.java

protected void verifyType(String headerName, Object headerValue) {
    if (headerName != null && headerValue != null) {
        if (MessageHeaders.ERROR_CHANNEL.equals(headerName)
                || MessageHeaders.REPLY_CHANNEL.endsWith(headerName)) {
            if (!(headerValue instanceof MessageChannel || headerValue instanceof String)) {
                throw new IllegalArgumentException(
                        "'" + headerName + "' header value must be a MessageChannel or String");
            }//from  w  w  w .j ava  2  s .  com
        }
    }
}

From source file:org.springframework.messaging.support.MessageHeaderAccessor.java

public void setReplyChannelName(String replyChannelName) {
    setHeader(MessageHeaders.REPLY_CHANNEL, replyChannelName);
}

From source file:org.springframework.messaging.support.MessageHeaderAccessor.java

public void setReplyChannel(MessageChannel replyChannel) {
    setHeader(MessageHeaders.REPLY_CHANNEL, replyChannel);
}