From 54e7a7b994c1a492eab46e4b070097681e7a5502 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Tue, 26 Apr 2011 09:57:14 -0400 Subject: [PATCH] INT-1880 added support for 'reply-channel' attribute on JMS inbound-gateway elements --- .../JmsMessageDrivenEndpointParser.java | 3 +- .../jms/config/spring-integration-jms-2.0.xsd | 9 +++++ .../config/JmsInboundGatewayParserTests.java | 13 ++++++- .../jms/config/jmsGatewayWithReplyChannel.xml | 34 +++++++++++++++++++ 4 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 spring-integration-jms/src/test/java/org/springframework/integration/jms/config/jmsGatewayWithReplyChannel.xml diff --git a/spring-integration-jms/src/main/java/org/springframework/integration/jms/config/JmsMessageDrivenEndpointParser.java b/spring-integration-jms/src/main/java/org/springframework/integration/jms/config/JmsMessageDrivenEndpointParser.java index 65bae8dba3..ef3916598c 100644 --- a/spring-integration-jms/src/main/java/org/springframework/integration/jms/config/JmsMessageDrivenEndpointParser.java +++ b/spring-integration-jms/src/main/java/org/springframework/integration/jms/config/JmsMessageDrivenEndpointParser.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2010 the original author or authors. + * Copyright 2002-2011 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. @@ -185,6 +185,7 @@ public class JmsMessageDrivenEndpointParser extends AbstractSingleBeanDefinition IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, REPLY_PRIORITY); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, REPLY_DELIVERY_PERSISTENT); IntegrationNamespaceUtils.setValueIfAttributeDefined(builder, element, EXPLICIT_QOS_ENABLED_FOR_REPLIES); + IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "reply-channel"); } else { IntegrationNamespaceUtils.setReferenceIfAttributeDefined(builder, element, "channel", "requestChannel"); diff --git a/spring-integration-jms/src/main/resources/org/springframework/integration/jms/config/spring-integration-jms-2.0.xsd b/spring-integration-jms/src/main/resources/org/springframework/integration/jms/config/spring-integration-jms-2.0.xsd index 45a4945abf..7fbcb32bca 100644 --- a/spring-integration-jms/src/main/resources/org/springframework/integration/jms/config/spring-integration-jms-2.0.xsd +++ b/spring-integration-jms/src/main/resources/org/springframework/integration/jms/config/spring-integration-jms-2.0.xsd @@ -572,6 +572,15 @@ + + + + + + + + + diff --git a/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsInboundGatewayParserTests.java b/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsInboundGatewayParserTests.java index ae07536421..52e0af0905 100644 --- a/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsInboundGatewayParserTests.java +++ b/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/JmsInboundGatewayParserTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2010 the original author or authors. + * Copyright 2002-2011 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. @@ -341,4 +341,15 @@ public class JmsInboundGatewayParserTests { assertEquals(Boolean.TRUE, container.isPubSubDomain()); } + @Test + public void gatewayWithReplyChannel() { + ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( + "jmsGatewayWithReplyChannel.xml", this.getClass()); + JmsMessageDrivenEndpoint gateway = (JmsMessageDrivenEndpoint) context.getBean("gateway"); + DirectFieldAccessor accessor = new DirectFieldAccessor( + new DirectFieldAccessor(gateway).getPropertyValue("listener")); + Object replyChannel = accessor.getPropertyValue("replyChannel"); + assertEquals(context.getBean("replies"), replyChannel); + } + } diff --git a/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/jmsGatewayWithReplyChannel.xml b/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/jmsGatewayWithReplyChannel.xml new file mode 100644 index 0000000000..4b3a6a96a6 --- /dev/null +++ b/spring-integration-jms/src/test/java/org/springframework/integration/jms/config/jmsGatewayWithReplyChannel.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + +