Skip to content

Commit 128b41d

Browse files
committed
Configure JmsMessagingTemplate default destination
Closes gh-16227
1 parent b7700ed commit 128b41d

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfiguration.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,19 @@ protected static class MessagingTemplateConfiguration {
110110
@Bean
111111
@ConditionalOnMissingBean
112112
@ConditionalOnSingleCandidate(JmsTemplate.class)
113-
public JmsMessagingTemplate jmsMessagingTemplate(JmsTemplate jmsTemplate) {
114-
return new JmsMessagingTemplate(jmsTemplate);
113+
public JmsMessagingTemplate jmsMessagingTemplate(JmsProperties properties,
114+
JmsTemplate jmsTemplate) {
115+
JmsMessagingTemplate messagingTemplate = new JmsMessagingTemplate(
116+
jmsTemplate);
117+
mapTemplateProperties(properties.getTemplate(), messagingTemplate);
118+
return messagingTemplate;
119+
}
120+
121+
private void mapTemplateProperties(Template properties,
122+
JmsMessagingTemplate messagingTemplate) {
123+
PropertyMapper map = PropertyMapper.get().alwaysApplyingWhenNonNull();
124+
map.from(properties::getDefaultDestination)
125+
.to(messagingTemplate::setDefaultDestinationName);
115126
}
116127

117128
}

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfigurationTests.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,18 @@ public void testJmsTemplateFullCustomization() {
291291
});
292292
}
293293

294+
@Test
295+
public void testJmsMessagingTemplateUseConfiguredDefaultDestination() {
296+
this.contextRunner
297+
.withPropertyValues("spring.jms.template.default-destination=testQueue")
298+
.run((context) -> {
299+
JmsMessagingTemplate messagingTemplate = context
300+
.getBean(JmsMessagingTemplate.class);
301+
assertThat(messagingTemplate.getDefaultDestinationName())
302+
.isEqualTo("testQueue");
303+
});
304+
}
305+
294306
@Test
295307
public void testPubSubDisabledByDefault() {
296308
this.contextRunner.withUserConfiguration(TestConfiguration.class)

0 commit comments

Comments
 (0)