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

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

Introduction

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

Prototype

@Override
    @SuppressWarnings("unchecked")
    public Message<T> build() 

Source Link

Usage

From source file:org.opencredo.cloud.storage.si.transformer.internal.BlobToStringTransformer.java

/**
 * @param message/*from w w w  . ja  v a 2 s  .  c o  m*/
 */
protected Message<String> doTransform(Message<BlobDetails> message) {
    if (LOG.isDebugEnabled()) {
        LOG.debug("Transform blob to string: '{}'", String.valueOf(message.getPayload()));
    }

    BlobDetails payload = message.getPayload();

    String blobAsString = getTemplate().receiveAsString(payload.getContainerName(), payload.getName());

    MessageBuilder<String> builder = (MessageBuilder<String>) MessageBuilder.withPayload(blobAsString)//
            .copyHeaders(message.getHeaders());
    Message<String> blobMessage = builder.build();

    return blobMessage;

}

From source file:com.consol.citrus.samples.flightbooking.FlightAggregator.java

public Message<TravelBookingResponseMessage> processFlights(List<FlightBookingConfirmationMessage> messages) {
    TravelBookingResponseMessage responseMessage = new TravelBookingResponseMessage();

    List<Flight> flights = new ArrayList<Flight>();
    for (FlightBookingConfirmationMessage confirmationMessage : messages) {
        flights.add(confirmationMessage.getFlight());
    }//  ww  w.j a  va  2  s  .  c  om

    Flights flightContainer = new Flights();
    flightContainer.getFlights().addAll(flights);
    responseMessage.setFlights(flightContainer);
    responseMessage.setCorrelationId(messages.get(0).getCorrelationId());
    responseMessage.setSuccess(true);

    MessageBuilder<TravelBookingResponseMessage> messageBuilder = MessageBuilder.withPayload(responseMessage);
    messageBuilder.setHeader("correlationId", responseMessage.getCorrelationId());

    return messageBuilder.build();
}

From source file:com.samples.platform.util.AggregatorGetReferenceData.java

/**
 * Aggregate the messages./* w ww  .  j a va2  s  . co  m*/
 *
 * @param messages
 *            The list of {@link GetReferenceDataResponseType} containing
 *            messages.
 * @return One Message with the content of all messages.
 */
public Message<?> aggregate(final Collection<Message<JAXBElement<GetReferenceDataResponseType>>> messages) {
    this.logger.trace("+aggregate {}", messages != null ? messages.size() : " collection of messages is null");
    JAXBElement<GetReferenceDataResponseType> response = null;
    if (messages != null) {
        for (Message<JAXBElement<GetReferenceDataResponseType>> message : messages) {
            if (response == null) {
                response = message.getPayload();
            } else {
                JAXBElement<GetReferenceDataResponseType> payload = message.getPayload();
                response.getValue().getReferenceData().addAll(payload.getValue().getReferenceData());
                response.getValue().getFailure().addAll(payload.getValue().getFailure());
            }
        }
    }
    MessageBuilder<JAXBElement<GetReferenceDataResponseType>> m = MessageBuilder.withPayload(response);
    this.logger.trace("-aggregate {}", messages != null ? messages.size() : " collection of messages is null");
    return m.build();
}

From source file:com.consol.citrus.samples.flightbooking.BookingSplitter.java

@Splitter
@Transactional/*from   ww w .j a v  a  2  s .  c  om*/
public Object splitMessage(Message<?> message) {
    List<Message<FlightBookingRequestMessage>> flightRequests = new ArrayList<Message<FlightBookingRequestMessage>>();

    if (!(message.getPayload() instanceof TravelBookingRequestMessage)) {
        throw new IllegalStateException("Unsupported message type: " + message.getPayload().getClass());
    }

    TravelBookingRequestMessage request = ((TravelBookingRequestMessage) message.getPayload());

    //Save customer if not already present
    if (customerDao.find(request.getCustomer().getId()) == null) {
        customerDao.persist(request.getCustomer());
    }

    for (Flight flight : request.getFlights().getFlights()) {
        //Save flight if necessary
        if (flightDao.find(flight.getFlightId()) == null) {
            flightDao.persist(flight);
        }

        FlightBookingRequestMessage flightRequest = new FlightBookingRequestMessage();
        flightRequest.setFlight(flight);
        flightRequest.setCorrelationId(request.getCorrelationId());
        flightRequest.setCustomer(request.getCustomer());
        flightRequest.setBookingId("Bx" + bookingIndex.incrementAndGet());

        MessageBuilder<FlightBookingRequestMessage> messageBuilder = MessageBuilder.withPayload(flightRequest);
        messageBuilder.copyHeaders(message.getHeaders());

        flightRequests.add(messageBuilder.build());
    }

    return flightRequests;
}

From source file:com.consol.citrus.samples.greeting.GreetingService.java

@Override
public Message<GreetingResponseMessage> processMessage(Message<GreetingRequestMessage> request) {
    GreetingResponseMessage response = new GreetingResponseMessage();
    response.setOperation(request.getPayload().getOperation());
    response.setCorrelationId(request.getPayload().getCorrelationId());
    response.setUser("GreetingService");
    response.setText("Hello " + request.getPayload().getUser() + "!");

    MessageBuilder<GreetingResponseMessage> builder = MessageBuilder.withPayload(response);
    builder.setHeader("CorrelationId", request.getHeaders().get("CorrelationId"));
    builder.setHeader("Operation", "sayHello");
    builder.setHeader("Type", "response");

    return builder.build();
}

From source file:poc.telnet.AuthenticationInterceptor.java

@Override
public boolean onMessage(Message<?> message) {
    String payload = new String((byte[]) message.getPayload());
    if (payload.startsWith("login")) {
        String[] items = payload.split("[:;]");
        if (items.length == 3) {
            String userName = items[1];
            String password = items[2];
            boolean authenticated = this.authentication.authenticate(userName, password);
            String msg = null;/*from w ww. ja  v  a 2  s  . com*/
            if (authenticated) {
                this.authenticated = authenticated;
                this.userName = userName;
                msg = "logined";
            } else {
                msg = "wrong user name or password";
            }
            try {
                super.send(MessageBuilder.withPayload(msg).build());
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    } else if (payload.startsWith("logout")) {
        super.close();
    } else {
        if (authenticated) {
            MessageBuilder<String> builder = MessageBuilder.withPayload(payload);
            builder.copyHeaders(message.getHeaders()).setHeader("userName", this.userName);
            return super.onMessage(builder.build());

        } else {
            try {
                super.send(new GenericMessage<String>(
                        "Have not login yet. please login with login:username:password"));
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
    }
    return true;

}

From source file:siia.business.EmailHeaderEnricher.java

public Message<Passenger> populateEmailHeader(Passenger passenger, @Headers Map<String, Object> headers) {

    MessageBuilder<Passenger> responseBuilder = MessageBuilder.withPayload(passenger).copyHeaders(headers);
    Profile profile = passenger.getProfile();
    if (profile != null) {
        String emailAddress = profile.getEmailAddress();
        if (emailAddress != null) {
            responseBuilder.setHeader(MailHeaders.TO, emailAddress);
        }/*from w ww. j a v  a2 s  . c o m*/
    }
    return responseBuilder.build();
}

From source file:com.joshlong.activiti.coordinator.CoordinatorGatewayClient.java

public Message<?> processMessage(Message<?> message) throws MessagingException {
    try {//from   w w w  .j  a  v  a2s  .  c om
        MessageHeaders headers = message.getHeaders();

        String procName = (String) headers.get(CoordinatorConstants.PROCESS_NAME);

        String stateName = (String) headers.get(CoordinatorConstants.STATE_NAME);

        ActivitiStateHandlerRegistration registration = registry.findRegistrationForProcessAndState(procName,
                stateName);

        Object bean = applicationContext.getBean(registration.getBeanName());

        Method method = registration.getHandlerMethod();
        //         int size = method.getParameterTypes().length;
        ArrayList<Object> argsList = new ArrayList<Object>();

        Map<Integer, String> processVariablesMap = registration.getProcessVariablesExpected();

        // already has which indexes get which process variables
        Map<Integer, Object> variables = new HashMap<Integer, Object>();

        for (Integer i : processVariablesMap.keySet())
            variables.put(i, headers.get(processVariablesMap.get(i)));

        if (registration.requiresProcessId()) {
            variables.put(registration.getProcessIdIndex(), headers.get(CoordinatorConstants.PROC_ID));
        }

        //         System.out.println(variables.toString());

        List<Integer> indices = new ArrayList<Integer>(variables.keySet());
        Collections.sort(indices);

        argsList.clear();

        for (Integer idx : indices)
            argsList.add(variables.get(idx));

        Object[] args = argsList.toArray(new Object[argsList.size()]);
        Object result = (args.length == 0) ? method.invoke(bean) : method.invoke(bean, args);

        MessageBuilder builder = MessageBuilder.withPayload(message.getPayload())
                .copyHeaders(message.getHeaders());

        if (result instanceof Map) {
            // then we update the BPM
            // by including them in the reply message
            builder.copyHeadersIfAbsent((Map) result);
        }

        return builder.build();
    } catch (Throwable e) {
        throw new RuntimeException(e);
    }
}

From source file:nz.co.senanque.messaging.springintegration.MessageSenderImpl.java

public boolean send(T graph, long correlationId) {

    Object payload = graph;//from   w ww.j av  a 2  s. c o  m

    if (m_marshaller != null) {
        Result result = m_resultFactory.createResult(graph);
        if (result == null) {
            throw new MessagingException("Unable to marshal payload, ResultFactory returned null.");
        }
        try {
            m_marshaller.marshal(graph, result);
        } catch (Exception e) {
            throw new WorkflowException("Failed to marshal payload", e);
        }
        Document doc = (Document) m_resultTransformer.transformResult(result);
        payload = doc;
    }

    MessageBuilder<?> messageBuilder = MessageBuilder.withPayload(payload);
    if (getReplyChannel() != null) {
        messageBuilder.setReplyChannel(getReplyChannel());
    }
    if (getErrorChannel() != null) {
        messageBuilder.setErrorChannel(getErrorChannel());
    }
    if (getMessagePriority() != null) {
        messageBuilder.setPriority(getMessagePriority());
    }
    messageBuilder.setCorrelationId(correlationId);
    Message<?> ret = messageBuilder.build();
    return getChannel().send(messageBuilder.build());
}

From source file:org.opencredo.cloud.storage.si.transformer.internal.BlobToByteArrayTransformer.java

/**
 * @param message//from w  w w. j  a va2 s  .c om
 * @throws IOException
 */
public Message<byte[]> doTransform(Message<BlobDetails> message) {
    if (LOG.isDebugEnabled()) {
        LOG.debug("Transform blob to byte array: '{}'", String.valueOf(message.getPayload()));
    }
    BlobDetails payload = message.getPayload();

    MessageBuilder<byte[]> builder;
    InputStream input = getTemplate().receiveAsInputStream(payload.getContainerName(), payload.getName());
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    try {
        IOUtils.copy(input, output);
    } catch (IOException e) {
        throw new BlobTransformException("Failed to copy blob [" + payload + "] byte stream to byte array", e);
    }

    builder = (MessageBuilder<byte[]>) MessageBuilder.withPayload(output.toByteArray())//
            .copyHeaders(message.getHeaders());
    Message<byte[]> blobMessage = builder.build();

    return blobMessage;
}