List of usage examples for org.springframework.integration.support MessageBuilder copyHeaders
@Override
public MessageBuilder<T> copyHeaders(@Nullable Map<String, ?> headersToCopy)
From source file:apiserver.services.images.services.ImageInfoService.java
public Object execute(Message<?> message) throws IOException { FileInfoJob props = (FileInfoJob) message.getPayload(); Map result = new HashMap(); result.put(ApiServerConstants.WIDTH, props.getBufferedImage().getWidth()); result.put(ApiServerConstants.HEIGHT, props.getBufferedImage().getHeight()); // return results MessageBuilder mb = MessageBuilder.withPayload(result); mb.copyHeaders(message.getHeaders()); return mb.build(); }
From source file:nz.co.senanque.messaging.OrderEndpoint.java
public Message<Order> issueResponseFor(Message<Order> order) { if (order.getPayload().getOrderName().equals("fatal error")) { throw new RuntimeException("fatal error"); }/* ww w . ja v a 2 s .c o m*/ if (order.getPayload().getOrderName().equals("recoverable error")) { throw new RuntimeException("recoverable error"); } Order ret = new ObjectFactory().createOrder(); OrderItem orderItem = new ObjectFactory().createOrderItem(); orderItem.setItemName("#1"); ret.setRejected(false); ret.setOrderName("whatever"); ret.getOrderItems().add(orderItem); log.debug("processed order: correlationId {}", order.getHeaders().get(IntegrationMessageHeaderAccessor.CORRELATION_ID, Long.class)); MessageBuilder<Order> messageBuilder = MessageBuilder.withPayload(ret); messageBuilder.copyHeaders(order.getHeaders()); return messageBuilder.build(); }
From source file:com.consol.citrus.samples.flightbooking.BookingSplitter.java
@Splitter @Transactional//from w w w. j av a2s . co m 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: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;/*w w w . ja v a2 s .c o m*/ 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:org.springframework.integration.gateway.GatewayMethodInboundMessageMapper.java
private Message<?> mapArgumentsToMessage(Object[] arguments) { Object messageOrPayload = null; boolean foundPayloadAnnotation = false; Map<String, Object> headers = new HashMap<String, Object>(); EvaluationContext methodInvocationEvaluationContext = createMethodInvocationEvaluationContext(arguments); if (this.payloadExpression != null) { messageOrPayload = this.payloadExpression.getValue(methodInvocationEvaluationContext); }//from ww w .j av a 2 s. co m for (int i = 0; i < this.parameterList.size(); i++) { Object argumentValue = arguments[i]; MethodParameter methodParameter = this.parameterList.get(i); Annotation annotation = this.findMappingAnnotation(methodParameter.getParameterAnnotations()); if (annotation != null) { if (annotation.annotationType().equals(Payload.class)) { if (messageOrPayload != null) { this.throwExceptionForMultipleMessageOrPayloadParameters(methodParameter); } String expression = ((Payload) annotation).value(); if (!StringUtils.hasText(expression)) { messageOrPayload = argumentValue; } else { messageOrPayload = this.evaluatePayloadExpression(expression, argumentValue); } foundPayloadAnnotation = true; } else if (annotation.annotationType().equals(Header.class)) { Header headerAnnotation = (Header) annotation; String headerName = this.determineHeaderName(headerAnnotation, methodParameter); if (headerAnnotation.required() && argumentValue == null) { throw new IllegalArgumentException( "Received null argument value for required header: '" + headerName + "'"); } headers.put(headerName, argumentValue); } else if (annotation.annotationType().equals(Headers.class)) { if (argumentValue != null) { if (!(argumentValue instanceof Map)) { throw new IllegalArgumentException( "@Headers annotation is only valid for Map-typed parameters"); } for (Object key : ((Map<?, ?>) argumentValue).keySet()) { Assert.isInstanceOf(String.class, key, "Invalid header name [" + key + "], name type must be String."); Object value = ((Map<?, ?>) argumentValue).get(key); headers.put((String) key, value); } } } } else if (messageOrPayload == null) { messageOrPayload = argumentValue; } else if (Map.class.isAssignableFrom(methodParameter.getParameterType())) { if (messageOrPayload instanceof Map && !foundPayloadAnnotation) { if (payloadExpression == null) { throw new MessagingException("Ambiguous method parameters; found more than one " + "Map-typed parameter and neither one contains a @Payload annotation"); } } this.copyHeaders((Map<?, ?>) argumentValue, headers); } else if (this.payloadExpression == null) { this.throwExceptionForMultipleMessageOrPayloadParameters(methodParameter); } } Assert.isTrue(messageOrPayload != null, "unable to determine a Message or payload parameter on method [" + method + "]"); MessageBuilder<?> builder = (messageOrPayload instanceof Message) ? MessageBuilder.fromMessage((Message<?>) messageOrPayload) : MessageBuilder.withPayload(messageOrPayload); builder.copyHeadersIfAbsent(headers); if (!CollectionUtils.isEmpty(this.headerExpressions)) { Map<String, Object> evaluatedHeaders = new HashMap<String, Object>(); for (Map.Entry<String, Expression> entry : this.headerExpressions.entrySet()) { Object value = entry.getValue().getValue(methodInvocationEvaluationContext); if (value != null) { evaluatedHeaders.put(entry.getKey(), value); } } builder.copyHeaders(evaluatedHeaders); } return builder.build(); }
From source file:org.springframework.integration.mail.transformer.AbstractMailMessageTransformer.java
public Message<?> transform(Message<?> message) { Object payload = message.getPayload(); if (!(payload instanceof javax.mail.Message)) { throw new MessageTransformationException(message, this.getClass().getSimpleName() + " requires a javax.mail.Message payload"); }// ww w. j a v a 2 s .c o m javax.mail.Message mailMessage = (javax.mail.Message) payload; MessageBuilder<T> builder = null; try { builder = this.doTransform(mailMessage); } catch (Exception e) { throw new MessageTransformationException(message, "failed to transform mail message", e); } if (builder == null) { throw new MessageTransformationException(message, "failed to transform mail message"); } builder.copyHeaders(this.extractHeaderMapFromMailMessage(mailMessage)); return builder.build(); }