Make jmsListenerContainerFactory @ConditionalOnSingleCandidate
Closes gh-12700
This commit is contained in:
parent
59b5c54489
commit
75937f5b5c
|
@ -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,
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue