Make jmsListenerContainerFactory @ConditionalOnSingleCandidate

Closes gh-12700
This commit is contained in:
Madhura Bhave 2018-09-04 16:03:23 -07:00
parent 59b5c54489
commit 75937f5b5c
2 changed files with 24 additions and 0 deletions

View File

@ -22,6 +22,7 @@ import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnJndi;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.annotation.EnableJms;
@ -73,6 +74,7 @@ class JmsAnnotationDrivenConfiguration {
}
@Bean
@ConditionalOnSingleCandidate(ConnectionFactory.class)
@ConditionalOnMissingBean(name = "jmsListenerContainerFactory")
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory(
DefaultJmsListenerContainerFactoryConfigurer configurer,

View File

@ -149,6 +149,13 @@ public class JmsAutoConfigurationTests {
SimpleJmsListenerContainerFactory.class));
}
@Test
public void jmsListenerContainerFactoryWhenMultipleConnectionFactoryBeansShouldBackOff() {
this.contextRunner.withUserConfiguration(TestConfiguration10.class)
.run((context) -> assertThat(context)
.doesNotHaveBean(JmsListenerContainerFactory.class));
}
@Test
public void testJmsListenerContainerFactoryWithCustomSettings() {
this.contextRunner.withUserConfiguration(EnableJmsConfiguration.class)
@ -572,6 +579,21 @@ public class JmsAutoConfigurationTests {
}
@Configuration
protected static class TestConfiguration10 {
@Bean
public ConnectionFactory connectionFactory1() {
return new ActiveMQConnectionFactory();
}
@Bean
public ConnectionFactory connectionFactory2() {
return new ActiveMQConnectionFactory();
}
}
@Configuration
@EnableJms
protected static class EnableJmsConfiguration {