List of usage examples for org.springframework.integration.support MessageBuilder build
@Override @SuppressWarnings("unchecked") public Message<T> build()
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; }