List of usage examples for org.springframework.messaging MessageHeaders get
@Nullable
public Object get(Object key)
From source file:org.openwms.common.comm.transformer.tcp.HeaderAppendingTransformer.java
private int headerLength(MessageHeaders h) { return String.valueOf(h.get(CommHeader.SYNC_FIELD_NAME)).length() + String.valueOf(h.get(CommHeader.MSG_LENGTH_FIELD_NAME)).length() + String.valueOf(h.get(CommHeader.SENDER_FIELD_NAME)).length() + String.valueOf(h.get(CommHeader.RECEIVER_FIELD_NAME)).length() + String.valueOf(h.get(CommHeader.SEQUENCE_FIELD_NAME)).length(); }
From source file:org.springframework.cloud.stream.app.log.sink.LogSinkApplicationTests.java
private void testMessage(Message<byte[]> message, String expectedPayload) { assertNotNull(this.sink.input()); assertEquals(LoggingHandler.Level.WARN, this.logSinkHandler.getLevel()); Log logger = TestUtils.getPropertyValue(this.logSinkHandler, "messageLogger", Log.class); assertEquals("foo", TestUtils.getPropertyValue(logger, "logger.name")); logger = spy(logger);// ww w . ja v a2s . c om new DirectFieldAccessor(this.logSinkHandler).setPropertyValue("messageLogger", logger); this.sink.input().send(message); ArgumentCaptor<Object> captor = ArgumentCaptor.forClass(Object.class); verify(logger).warn(captor.capture()); assertEquals(expectedPayload.toUpperCase(), captor.getValue()); this.logSinkHandler.setLogExpressionString("#this"); this.sink.input().send(message); verify(logger, times(2)).warn(captor.capture()); Message captorMessage = (Message) captor.getAllValues().get(2); assertEquals("Unexpected payload value", expectedPayload, captorMessage.getPayload()); MessageHeaders messageHeaders = captorMessage.getHeaders(); assertEquals("Unexpected number of headers", 3, messageHeaders.size()); String[] headers = { "contentType" }; for (String header : headers) { assertTrue("Missing " + header + " header", messageHeaders.containsKey(header)); assertEquals("Header " + header + " does not match", messageHeaders.get(header), message.getHeaders().get(header)); } }
From source file:org.springframework.cloud.stream.binder.pubsub.PubSubMessageHandler.java
protected String encodeHeaders(MessageHeaders headers) throws Exception { Map<String, Object> rawHeaders = new HashMap<>(); for (String key : headers.keySet()) { rawHeaders.put(key, headers.get(key)); }// ww w .ja va2 s . co m return mapper.writeValueAsString(rawHeaders); }
From source file:org.springframework.integration.dsl.test.IntegrationFlowTests.java
@Test public void testHeaderEnricher() { QueueChannel replyChannel = new QueueChannel(); Message<String> message = MessageBuilder .withPayload("<root><elementOne>1</elementOne><elementTwo>2</elementTwo></root>") .setReplyChannel(replyChannel).build(); try {//from w ww. j av a 2 s . co m this.xpathHeaderEnricherInput.send(message); fail("Expected MessageDispatchingException"); } catch (Exception e) { assertThat(e, instanceOf(MessageDeliveryException.class)); assertThat(e.getCause(), instanceOf(MessageDispatchingException.class)); assertThat(e.getMessage(), containsString("Dispatcher has no subscribers")); } this.controlBus.send("@xpathHeaderEnricher.start()"); this.xpathHeaderEnricherInput.send(message); Message<?> result = replyChannel.receive(2000); assertNotNull(result); MessageHeaders headers = result.getHeaders(); assertEquals("1", headers.get("one")); assertEquals("2", headers.get("two")); assertThat(headers.getReplyChannel(), instanceOf(String.class)); }
From source file:org.springframework.integration.dsl.test.xml.XmlTests.java
@Test public void testHeaderEnricher() { QueueChannel replyChannel = new QueueChannel(); Message<String> message = MessageBuilder .withPayload("<root><elementOne>1</elementOne><elementTwo>2</elementTwo></root>") .setReplyChannel(replyChannel).build(); try {/*w w w .j ava2s .co m*/ this.xpathHeaderEnricherInput.send(message); fail("Expected MessageDispatchingException"); } catch (Exception e) { assertThat(e, instanceOf(MessageDeliveryException.class)); assertThat(e.getCause(), instanceOf(MessageDispatchingException.class)); assertThat(e.getMessage(), containsString("Dispatcher has no subscribers")); } this.controlBusFlowInput.send(new GenericMessage<>("@xpathHeaderEnricher.start()")); this.xpathHeaderEnricherInput.send(message); Message<?> result = replyChannel.receive(2000); assertNotNull(result); MessageHeaders headers = result.getHeaders(); assertEquals("1", headers.get("one")); assertEquals("2", headers.get("two")); assertThat(headers.getReplyChannel(), instanceOf(String.class)); assertFalse(headers.containsKey("foo")); }
From source file:org.springframework.integration.samples.rest.service.EmployeeSearchService.java
/** * The API <code>getEmployee()</code> looks up the mapped in coming message header's id param * and fills the return object with the appropriate employee details. The return * object is wrapped in Spring Integration Message with response headers filled in. * This example shows the usage of URL path variables and how the service act on * those variables.//from w w w . jav a2 s. com * @param inMessage * @return an instance of <code>{@link Message}</code> that wraps <code>{@link EmployeeList}</code> */ @Secured("ROLE_REST_HTTP_USER") public Message<EmployeeList> getEmployee(Message<?> inMessage) { EmployeeList employeeList = new EmployeeList(); Map<String, Object> responseHeaderMap = new HashMap<String, Object>(); try { MessageHeaders headers = inMessage.getHeaders(); String id = (String) headers.get("employeeId"); boolean isFound; if (id.equals("1")) { employeeList.getEmployee().add(new Employee(1, "John", "Doe")); isFound = true; } else if (id.equals("2")) { employeeList.getEmployee().add(new Employee(2, "Jane", "Doe")); isFound = true; } else if (id.equals("0")) { employeeList.getEmployee().add(new Employee(1, "John", "Doe")); employeeList.getEmployee().add(new Employee(2, "Jane", "Doe")); isFound = true; } else { isFound = false; } if (isFound) { setReturnStatusAndMessage("0", "Success", employeeList, responseHeaderMap); } else { setReturnStatusAndMessage("2", "Employee Not Found", employeeList, responseHeaderMap); } } catch (Exception e) { setReturnStatusAndMessage("1", "System Error", employeeList, responseHeaderMap); logger.error("System error occured :" + e); } Message<EmployeeList> message = new GenericMessage<EmployeeList>(employeeList, responseHeaderMap); return message; }
From source file:org.springframework.jms.support.converter.SimpleJmsHeaderMapper.java
@Override public void fromHeaders(MessageHeaders headers, javax.jms.Message jmsMessage) { try {/* w w w.j ava2s. c om*/ Object jmsCorrelationId = headers.get(JmsHeaders.CORRELATION_ID); if (jmsCorrelationId instanceof Number) { jmsCorrelationId = jmsCorrelationId.toString(); } if (jmsCorrelationId instanceof String) { try { jmsMessage.setJMSCorrelationID((String) jmsCorrelationId); } catch (Exception e) { logger.info("failed to set JMSCorrelationID, skipping", e); } } Object jmsReplyTo = headers.get(JmsHeaders.REPLY_TO); if (jmsReplyTo instanceof Destination) { try { jmsMessage.setJMSReplyTo((Destination) jmsReplyTo); } catch (Exception e) { logger.info("failed to set JMSReplyTo, skipping", e); } } Object jmsType = headers.get(JmsHeaders.TYPE); if (jmsType instanceof String) { try { jmsMessage.setJMSType((String) jmsType); } catch (Exception e) { logger.info("failed to set JMSType, skipping", e); } } Set<String> headerNames = headers.keySet(); for (String headerName : headerNames) { if (StringUtils.hasText(headerName) && !headerName.startsWith(JmsHeaders.PREFIX)) { Object value = headers.get(headerName); if (value != null && SUPPORTED_PROPERTY_TYPES.contains(value.getClass())) { try { String propertyName = this.fromHeaderName(headerName); jmsMessage.setObjectProperty(propertyName, value); } catch (Exception e) { if (headerName.startsWith("JMSX")) { if (logger.isTraceEnabled()) { logger.trace( "skipping reserved header, it cannot be set by client: " + headerName); } } else if (logger.isWarnEnabled()) { logger.warn("failed to map Message header '" + headerName + "' to JMS property", e); } } } } } } catch (Exception e) { if (logger.isWarnEnabled()) { logger.warn("error occurred while mapping from MessageHeaders to JMS properties", e); } } }
From source file:org.springframework.jms.support.SimpleJmsHeaderMapper.java
@Override public void fromHeaders(MessageHeaders headers, javax.jms.Message jmsMessage) { try {/*w ww .j ava2s. c om*/ Object jmsCorrelationId = headers.get(JmsHeaders.CORRELATION_ID); if (jmsCorrelationId instanceof Number) { jmsCorrelationId = jmsCorrelationId.toString(); } if (jmsCorrelationId instanceof String) { try { jmsMessage.setJMSCorrelationID((String) jmsCorrelationId); } catch (Exception e) { logger.info("failed to set JMSCorrelationID, skipping", e); } } Object jmsReplyTo = headers.get(JmsHeaders.REPLY_TO); if (jmsReplyTo instanceof Destination) { try { jmsMessage.setJMSReplyTo((Destination) jmsReplyTo); } catch (Exception e) { logger.info("failed to set JMSReplyTo, skipping", e); } } Object jmsType = headers.get(JmsHeaders.TYPE); if (jmsType instanceof String) { try { jmsMessage.setJMSType((String) jmsType); } catch (Exception e) { logger.info("failed to set JMSType, skipping", e); } } Set<String> headerNames = headers.keySet(); for (String headerName : headerNames) { if (StringUtils.hasText(headerName) && !headerName.startsWith(JmsHeaders.PREFIX)) { Object value = headers.get(headerName); if (value != null && SUPPORTED_PROPERTY_TYPES.contains(value.getClass())) { try { String propertyName = this.fromHeaderName(headerName); jmsMessage.setObjectProperty(propertyName, value); } catch (Exception e) { if (headerName.startsWith("JMSX")) { if (logger.isTraceEnabled()) { logger.trace( "skipping reserved header, it cannot be set by client: " + headerName); } } else if (logger.isWarnEnabled()) { logger.warn("failed to map Message header '" + headerName + "' to JMS property", e); } } } } } } catch (Exception ex) { if (logger.isWarnEnabled()) { logger.warn("error occurred while mapping from MessageHeaders to JMS properties", ex); } } }
From source file:org.springframework.kafka.support.converter.MessagingMessageConverter.java
@SuppressWarnings({ "unchecked", "rawtypes" }) @Override/*from w w w . ja va 2 s .c om*/ public ProducerRecord<?, ?> fromMessage(Message<?> message, String defaultTopic) { MessageHeaders headers = message.getHeaders(); Object topicHeader = headers.get(KafkaHeaders.TOPIC); String topic = null; if (topicHeader instanceof byte[]) { topic = new String(((byte[]) topicHeader), StandardCharsets.UTF_8); } else if (topicHeader instanceof String) { topic = (String) topicHeader; } else if (topicHeader == null) { Assert.state(defaultTopic != null, "With no topic header, a defaultTopic is required"); } else { throw new IllegalStateException( KafkaHeaders.TOPIC + " must be a String or byte[], not " + topicHeader.getClass()); } Integer partition = headers.get(KafkaHeaders.PARTITION_ID, Integer.class); Object key = headers.get(KafkaHeaders.MESSAGE_KEY); Object payload = convertPayload(message); Long timestamp = headers.get(KafkaHeaders.TIMESTAMP, Long.class); Headers recordHeaders = initialRecordHeaders(message); if (this.headerMapper != null) { this.headerMapper.fromHeaders(headers, recordHeaders); } return new ProducerRecord(topic == null ? defaultTopic : topic, partition, timestamp, key, payload, recordHeaders); }
From source file:org.springframework.messaging.core.AbstractMessageSendingTemplate.java
/** * Convert the given Object to serialized form, possibly using a * {@link MessageConverter}, wrap it as a message with the given * headers and apply the given post processor. * @param payload the Object to use as payload * @param headers headers for the message to send * @param postProcessor the post processor to apply to the message * @return the converted message/*from ww w . j a v a 2 s . c o m*/ */ protected Message<?> doConvert(Object payload, @Nullable Map<String, Object> headers, @Nullable MessagePostProcessor postProcessor) { MessageHeaders messageHeaders = null; Object conversionHint = (headers != null ? headers.get(CONVERSION_HINT_HEADER) : null); Map<String, Object> headersToUse = processHeadersToSend(headers); if (headersToUse != null) { if (headersToUse instanceof MessageHeaders) { messageHeaders = (MessageHeaders) headersToUse; } else { messageHeaders = new MessageHeaders(headersToUse); } } MessageConverter converter = getMessageConverter(); Message<?> message = (converter instanceof SmartMessageConverter ? ((SmartMessageConverter) converter).toMessage(payload, messageHeaders, conversionHint) : converter.toMessage(payload, messageHeaders)); if (message == null) { String payloadType = payload.getClass().getName(); Object contentType = (messageHeaders != null ? messageHeaders.get(MessageHeaders.CONTENT_TYPE) : null); throw new MessageConversionException("Unable to convert payload with type='" + payloadType + "', contentType='" + contentType + "', converter=[" + getMessageConverter() + "]"); } if (postProcessor != null) { message = postProcessor.postProcessMessage(message); } return message; }