Example usage for org.springframework.integration.support MessageBuilder fromMessage

List of usage examples for org.springframework.integration.support MessageBuilder fromMessage

Introduction

In this page you can find the example usage for org.springframework.integration.support MessageBuilder fromMessage.

Prototype

public static <T> MessageBuilder<T> fromMessage(Message<T> message) 

Source Link

Document

Create a builder for a new Message instance pre-populated with all of the headers copied from the provided message.

Usage

From source file:eu.openanalytics.rsb.si.HeaderSettingMessageSourceWrapper.java

public Message<T> receive() {
    final Message<T> receivedMessage = wrappedMessageSource.receive();

    if (receivedMessage == null) {
        return null;
    }// ww  w  . ja  va2  s .c  o  m

    final MessageBuilder<T> messageBuilder = MessageBuilder.fromMessage(receivedMessage).setHeader(headerName,
            headerValue);
    return messageBuilder.build();
}

From source file:org.bitcoinrt.server.ConnectionBroker.java

public List<Message<?>> createBroadCastMessages(Message<?> message) {

    final List<Message<?>> messages = new ArrayList<Message<?>>();

    for (String connectionId : clients.keySet()) {
        messages.add(/*from ww  w . ja v a  2s .  c o m*/
                MessageBuilder.fromMessage(message).setHeader(IpHeaders.CONNECTION_ID, connectionId).build());
    }

    return messages;

}

From source file:sipackage.core.SIAdapterUpperPrefixExecutor.java

/**
 * Execute a retrieving (polling) SIAdapterUpperPrefix operation.
 *
 * @param requestMessage May be null.//from  w ww . j  a  v  a  2  s.com
 * @return The payload object, which may be null.
 */
public Object poll(final Message<?> requestMessage) {

    if (logger.isWarnEnabled()) {
        logger.warn("Logic not implemented, yet.");
    }

    if (requestMessage == null) {
        return null;
    }

    return MessageBuilder.fromMessage(requestMessage).build();
}

From source file:org.ehcache.siehcache.core.EhcacheAdapterExecutor.java

/**
 * Execute a retrieving (polling) EhcacheAdapter operation.
 *
 * @param requestMessage May be null./*from  w  ww .  j av a 2s.c o m*/
 * @return The payload object, which may be null.
 */
public Object poll(final Message<?> requestMessage) {

    if (logger.isWarnEnabled()) {
        logger.warn("Logic not implemented, yet.");
    }

    return MessageBuilder.fromMessage(requestMessage).build();
}

From source file:org.springframework.integration.aggregator.AbstractAggregatingMessageGroupProcessor.java

public final Object processMessageGroup(MessageGroup group) {
    Assert.notNull(group, "MessageGroup must not be null");

    Map<String, Object> headers = this.aggregateHeaders(group);
    Object payload = this.aggregatePayloads(group, headers);
    MessageBuilder<?> builder;/*from   w  w  w  .  j a v a 2  s . co m*/
    if (payload instanceof Message<?>) {
        builder = MessageBuilder.fromMessage((Message<?>) payload).copyHeadersIfAbsent(headers);
    } else {
        builder = MessageBuilder.withPayload(payload).copyHeadersIfAbsent(headers);
    }

    return builder.popSequenceDetails().build();
}

From source file:org.springframework.integration.config.xml.GatewayParserTests.java

private void startResponder(final PollableChannel requestChannel, final MessageChannel replyChannel) {
    Executors.newSingleThreadExecutor().execute(() -> {
        Message<?> request = requestChannel.receive(60000);
        assertNotNull("Request not received", request);
        Message<?> reply = MessageBuilder.fromMessage(request).setCorrelationId(request.getHeaders().getId())
                .build();/* w  w  w  .  ja v  a2 s.co m*/
        Object payload = null;
        if (request.getPayload().equals("futureSync")) {
            payload = new AsyncResult<Message<?>>(reply);
        } else if (request.getPayload().equals("flowCompletable")) {
            payload = CompletableFuture.<String>completedFuture("SYNC_COMPLETABLE");
        } else if (request.getPayload().equals("flowCustomCompletable")) {
            MyCompletableFuture myCompletableFuture1 = new MyCompletableFuture();
            myCompletableFuture1.complete("SYNC_CUSTOM_COMPLETABLE");
            payload = myCompletableFuture1;
        } else if (request.getPayload().equals("flowCompletableM")) {
            payload = CompletableFuture.<Message<?>>completedFuture(reply);
        } else if (request.getPayload().equals("flowCustomCompletableM")) {
            MyCompletableMessageFuture myCompletableFuture2 = new MyCompletableMessageFuture();
            myCompletableFuture2.complete(reply);
            payload = myCompletableFuture2;
        }
        if (payload != null) {
            reply = MessageBuilder.withPayload(payload).copyHeaders(reply.getHeaders()).build();
        }
        replyChannel.send(reply);
    });
}

From source file:org.springframework.integration.configuration.EnableIntegrationTests.java

@Test
public void testBridgeAnnotations() {
    GenericMessage<?> testMessage = new GenericMessage<Object>("foo");
    this.bridgeInput.send(testMessage);
    Message<?> receive = this.bridgeOutput.receive(2000);
    assertNotNull(receive);//w ww . java  2 s .  c o  m
    assertSame(receive, testMessage);
    assertNull(this.bridgeOutput.receive(10));

    this.pollableBridgeInput.send(testMessage);
    receive = this.pollableBridgeOutput.receive(2000);
    assertNotNull(receive);
    assertSame(receive, testMessage);
    assertNull(this.pollableBridgeOutput.receive(10));

    try {
        this.metaBridgeInput.send(testMessage);
        fail("MessageDeliveryException expected");
    } catch (Exception e) {
        assertThat(e, Matchers.instanceOf(MessageDeliveryException.class));
        assertThat(e.getMessage(), Matchers.containsString("Dispatcher has no subscribers"));
    }

    this.context
            .getBean("enableIntegrationTests.ContextConfiguration.metaBridgeOutput.bridgeFrom", Lifecycle.class)
            .start();

    this.metaBridgeInput.send(testMessage);
    receive = this.metaBridgeOutput.receive(2000);
    assertNotNull(receive);
    assertSame(receive, testMessage);
    assertNull(this.metaBridgeOutput.receive(10));

    this.bridgeToInput.send(testMessage);
    receive = this.bridgeToOutput.receive(2000);
    assertNotNull(receive);
    assertSame(receive, testMessage);
    assertNull(this.bridgeToOutput.receive(10));

    PollableChannel replyChannel = new QueueChannel();
    Message<?> bridgeMessage = MessageBuilder.fromMessage(testMessage).setReplyChannel(replyChannel).build();
    this.pollableBridgeToInput.send(bridgeMessage);
    receive = replyChannel.receive(2000);
    assertNotNull(receive);
    assertSame(receive, bridgeMessage);
    assertNull(replyChannel.receive(10));

    try {
        this.myBridgeToInput.send(testMessage);
        fail("MessageDeliveryException expected");
    } catch (Exception e) {
        assertThat(e, Matchers.instanceOf(MessageDeliveryException.class));
        assertThat(e.getMessage(), Matchers.containsString("Dispatcher has no subscribers"));
    }

    this.context
            .getBean("enableIntegrationTests.ContextConfiguration.myBridgeToInput.bridgeTo", Lifecycle.class)
            .start();

    this.myBridgeToInput.send(bridgeMessage);
    receive = replyChannel.receive(2000);
    assertNotNull(receive);
    assertSame(receive, bridgeMessage);
    assertNull(replyChannel.receive(10));
}

From source file:org.springframework.integration.core.MessagingTemplate.java

private <S, R> Message<R> doSendAndReceive(MessageChannel channel, Message<S> requestMessage) {
    Object originalReplyChannelHeader = requestMessage.getHeaders().getReplyChannel();
    Object originalErrorChannelHeader = requestMessage.getHeaders().getErrorChannel();
    TemporaryReplyChannel replyChannel = new TemporaryReplyChannel(this.receiveTimeout,
            this.throwExceptionOnLateReply);
    requestMessage = MessageBuilder.fromMessage(requestMessage).setReplyChannel(replyChannel)
            .setErrorChannel(replyChannel).build();
    try {//w  w w  .j  av  a 2s  . co m
        this.doSend(channel, requestMessage);
    } catch (RuntimeException e) {
        replyChannel.setClientWontReceive(true);
        throw e;
    }
    Message<R> reply = this.doReceive(replyChannel);
    if (reply != null) {
        reply = MessageBuilder.fromMessage(reply)
                .setHeader(MessageHeaders.REPLY_CHANNEL, originalReplyChannelHeader)
                .setHeader(MessageHeaders.ERROR_CHANNEL, originalErrorChannelHeader).build();
    }
    return reply;
}

From source file:org.springframework.integration.flow.handler.FlowMessageHandler.java

@Override
protected Object handleRequestMessage(Message<?> requestMessage) {
    UUID conversationId = requestMessage.getHeaders().getId();
    Message<?> message = MessageBuilder.fromMessage(requestMessage).pushSequenceDetails(conversationId, 0, 0)
            .build();//  www  . ja va 2s . c o m
    try {

        ResponseMessageHandler responseMessageHandler = new ResponseMessageHandler(conversationId);
        flowOutputChannel.subscribe(responseMessageHandler);
        flowInputChannel.send(message, timeout);
        flowOutputChannel.unsubscribe(responseMessageHandler);

        return responseMessageHandler.getResponse();

    } catch (MessagingException me) {
        log.error(me.getMessage(), me);

        if (conversationId.equals(me.getFailedMessage().getHeaders().getCorrelationId())) {
            if (errorChannel != null) {
                errorChannel.send(
                        new ErrorMessage(me, Collections.singletonMap(FlowConstants.FLOW_OUTPUT_PORT_HEADER,
                                (Object) FlowConstants.FLOW_HANDLER_EXCEPTION_HEADER_VALUE)));

            }
        } else {
            throw me;
        }
    }
    return null;
}

From source file:org.springframework.integration.flow.interceptor.FlowInterceptor.java

@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {
    if (log.isDebugEnabled()) {
        log.debug(this + " received a message from port " + portName + " on channel " + channel);
    }// w  w w  . j  a  v a2 s. co m

    Map<String, Object> headersToCopy = Collections.singletonMap(FlowConstants.FLOW_OUTPUT_PORT_HEADER,
            (Object) portName);

    return MessageBuilder.fromMessage(message).copyHeaders(headersToCopy).build();
}