From e189307ab635655cfac81f8b0878035f532b8eb3 Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Tue, 22 Mar 2016 15:10:13 -0400 Subject: [PATCH] INT-3968: Map JmsDestination Header (Inbound) JIRA: https://jira.spring.io/browse/INT-3968 Also deprecate `o.s.i.jms.JmsHeaders` in favor of the `o.s.jms.support` version. *Fix JavaDocs for `JmsHeaders` and `DefaultScriptExecutor` --- .../jms/DefaultJmsHeaderMapper.java | 14 +++++++++-- .../integration/jms/JmsHeaders.java | 23 +++++++++++-------- .../jms/config/JmsHeaderEnricherParser.java | 6 ++--- .../jms/DefaultJmsHeaderMapperTests.java | 3 ++- .../jms/config/JmsHeaderEnricherTests.java | 9 ++++---- ...nariosWithCorrelationKeyProvidedTests.java | 2 +- .../jsr223/DefaultScriptExecutor.java | 7 +++--- 7 files changed, 41 insertions(+), 23 deletions(-) diff --git a/spring-integration-jms/src/main/java/org/springframework/integration/jms/DefaultJmsHeaderMapper.java b/spring-integration-jms/src/main/java/org/springframework/integration/jms/DefaultJmsHeaderMapper.java index f373343748..0d675c37e9 100644 --- a/spring-integration-jms/src/main/java/org/springframework/integration/jms/DefaultJmsHeaderMapper.java +++ b/spring-integration-jms/src/main/java/org/springframework/integration/jms/DefaultJmsHeaderMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2015 the original author or authors. + * Copyright 2002-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.integration.IntegrationMessageHeaderAccessor; +import org.springframework.jms.support.JmsHeaders; import org.springframework.messaging.MessageHeaders; import org.springframework.util.StringUtils; @@ -111,7 +112,7 @@ public class DefaultJmsHeaderMapper implements JmsHeaderMapper { try { Object jmsCorrelationId = headers.get(JmsHeaders.CORRELATION_ID); if (jmsCorrelationId instanceof Number) { - jmsCorrelationId = ((Number) jmsCorrelationId).toString(); + jmsCorrelationId = jmsCorrelationId.toString(); } if (jmsCorrelationId instanceof String) { try { @@ -191,6 +192,15 @@ public class DefaultJmsHeaderMapper implements JmsHeaderMapper { catch (Exception e) { logger.info("failed to read JMSMessageID property, skipping", e); } + try { + Destination destination = jmsMessage.getJMSDestination(); + if (destination != null) { + headers.put(JmsHeaders.DESTINATION, destination); + } + } + catch (Exception ex) { + logger.info("failed to read JMSDestination property, skipping", ex); + } try { String correlationId = jmsMessage.getJMSCorrelationID(); if (correlationId != null) { diff --git a/spring-integration-jms/src/main/java/org/springframework/integration/jms/JmsHeaders.java b/spring-integration-jms/src/main/java/org/springframework/integration/jms/JmsHeaders.java index 078938ddb0..25584a2e1a 100644 --- a/spring-integration-jms/src/main/java/org/springframework/integration/jms/JmsHeaders.java +++ b/spring-integration-jms/src/main/java/org/springframework/integration/jms/JmsHeaders.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 the original author or authors. + * Copyright 2002-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,9 +19,14 @@ package org.springframework.integration.jms; /** * Pre-defined names and prefixes to be used for setting and/or retrieving JMS * attributes from/to integration Message Headers. - * + * + * @deprecated - use {@link org.springframework.jms.support.JmsHeaders}. + * Will be removed in the Spring Integration 5.0. + * * @author Mark Fisher + * @author Gary Russell */ +@Deprecated public abstract class JmsHeaders { /** @@ -29,18 +34,18 @@ public abstract class JmsHeaders { * user-defined headers and other internal headers (e.g. correlationId). * @see DefaultJmsHeaderMapper */ - public static final String PREFIX = "jms_"; + public static final String PREFIX = org.springframework.jms.support.JmsHeaders.PREFIX; - public static final String MESSAGE_ID = PREFIX + "messageId"; + public static final String MESSAGE_ID = org.springframework.jms.support.JmsHeaders.MESSAGE_ID; - public static final String CORRELATION_ID = PREFIX + "correlationId"; + public static final String CORRELATION_ID = org.springframework.jms.support.JmsHeaders.CORRELATION_ID; - public static final String REPLY_TO = PREFIX + "replyTo"; + public static final String REPLY_TO = org.springframework.jms.support.JmsHeaders.REPLY_TO; - public static final String REDELIVERED = PREFIX + "redelivered"; + public static final String REDELIVERED = org.springframework.jms.support.JmsHeaders.REDELIVERED; - public static final String TYPE = PREFIX + "type"; + public static final String TYPE = org.springframework.jms.support.JmsHeaders.TYPE; - public static final String TIMESTAMP = PREFIX + "timestamp"; + public static final String TIMESTAMP = org.springframework.jms.support.JmsHeaders.TIMESTAMP; } diff --git a/spring-integration-jms/src/main/java/org/springframework/integration/jms/config/JmsHeaderEnricherParser.java b/spring-integration-jms/src/main/java/org/springframework/integration/jms/config/JmsHeaderEnricherParser.java index 49d4766e6d..7667904ae9 100644 --- a/spring-integration-jms/src/main/java/org/springframework/integration/jms/config/JmsHeaderEnricherParser.java +++ b/spring-integration-jms/src/main/java/org/springframework/integration/jms/config/JmsHeaderEnricherParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2009 the original author or authors. + * Copyright 2002-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,11 +17,11 @@ package org.springframework.integration.jms.config; import org.springframework.integration.config.xml.HeaderEnricherParserSupport; -import org.springframework.integration.jms.JmsHeaders; +import org.springframework.jms.support.JmsHeaders; /** * Header enricher for JMS specific values. - * + * * @author Mark Fisher * @since 2.0 */ diff --git a/spring-integration-jms/src/test/java/org/springframework/integration/jms/DefaultJmsHeaderMapperTests.java b/spring-integration-jms/src/test/java/org/springframework/integration/jms/DefaultJmsHeaderMapperTests.java index 870fa0a5ae..7bbb2038df 100644 --- a/spring-integration-jms/src/test/java/org/springframework/integration/jms/DefaultJmsHeaderMapperTests.java +++ b/spring-integration-jms/src/test/java/org/springframework/integration/jms/DefaultJmsHeaderMapperTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2014 the original author or authors. + * Copyright 2002-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -38,6 +38,7 @@ import org.mockito.stubbing.Answer; import org.springframework.integration.IntegrationMessageHeaderAccessor; import org.springframework.integration.support.MessageBuilder; +import org.springframework.jms.support.JmsHeaders; import org.springframework.jms.support.converter.MappingJackson2MessageConverter; import org.springframework.jms.support.converter.MessageType; import org.springframework.messaging.Message; diff --git a/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsHeaderEnricherTests.java b/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsHeaderEnricherTests.java index f7bb519712..b10ab867cc 100644 --- a/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsHeaderEnricherTests.java +++ b/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsHeaderEnricherTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2010 the original author or authors. + * Copyright 2002-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,12 +24,12 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.integration.jms.DefaultJmsHeaderMapper; +import org.springframework.integration.jms.StubTextMessage; +import org.springframework.jms.support.JmsHeaders; import org.springframework.messaging.Message; import org.springframework.messaging.MessageChannel; import org.springframework.messaging.PollableChannel; -import org.springframework.integration.jms.DefaultJmsHeaderMapper; -import org.springframework.integration.jms.JmsHeaders; -import org.springframework.integration.jms.StubTextMessage; import org.springframework.messaging.support.GenericMessage; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -37,6 +37,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * @author Mark Fisher * @author Oleg Zhurakousky + * @author Gary Russell */ @ContextConfiguration @RunWith(SpringJUnit4ClassRunner.class) diff --git a/spring-integration-jms/src/test/java/org/springframework/integration/jms/request_reply/RequestReplyScenariosWithCorrelationKeyProvidedTests.java b/spring-integration-jms/src/test/java/org/springframework/integration/jms/request_reply/RequestReplyScenariosWithCorrelationKeyProvidedTests.java index d393870ca7..652c5aa6ec 100644 --- a/spring-integration-jms/src/test/java/org/springframework/integration/jms/request_reply/RequestReplyScenariosWithCorrelationKeyProvidedTests.java +++ b/spring-integration-jms/src/test/java/org/springframework/integration/jms/request_reply/RequestReplyScenariosWithCorrelationKeyProvidedTests.java @@ -26,12 +26,12 @@ import org.junit.Test; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.integration.gateway.RequestReplyExchanger; import org.springframework.integration.jms.ActiveMQMultiContextTests; -import org.springframework.integration.jms.JmsHeaders; import org.springframework.integration.jms.JmsOutboundGateway; import org.springframework.integration.jms.config.ActiveMqTestUtils; import org.springframework.integration.support.MessageBuilder; import org.springframework.integration.test.support.LongRunningIntegrationTest; import org.springframework.integration.test.util.TestUtils; +import org.springframework.jms.support.JmsHeaders; import org.springframework.messaging.Message; /** * @author Oleg Zhurakousky diff --git a/spring-integration-scripting/src/main/java/org/springframework/integration/scripting/jsr223/DefaultScriptExecutor.java b/spring-integration-scripting/src/main/java/org/springframework/integration/scripting/jsr223/DefaultScriptExecutor.java index 3279fb754e..f90b89f894 100644 --- a/spring-integration-scripting/src/main/java/org/springframework/integration/scripting/jsr223/DefaultScriptExecutor.java +++ b/spring-integration-scripting/src/main/java/org/springframework/integration/scripting/jsr223/DefaultScriptExecutor.java @@ -29,10 +29,11 @@ import org.springframework.integration.scripting.ScriptExecutor; * @author Gary Russell * @since 2.1 */ - public class DefaultScriptExecutor extends AbstractScriptExecutor { +public class DefaultScriptExecutor extends AbstractScriptExecutor { + /** - * Create a DefaultScriptExecutor for the specified language name (JSR233 - * alias). + * Create a DefaultScriptExecutor for the specified language name (JSR233 alias). + * @param language the scripting language identificator. */ public DefaultScriptExecutor(String language) { super(language);