19
19
import java .util .stream .Collectors ;
20
20
21
21
import org .springframework .amqp .rabbit .annotation .EnableRabbit ;
22
+ import org .springframework .amqp .rabbit .config .ContainerCustomizer ;
22
23
import org .springframework .amqp .rabbit .config .DirectRabbitListenerContainerFactory ;
23
24
import org .springframework .amqp .rabbit .config .RabbitListenerConfigUtils ;
24
25
import org .springframework .amqp .rabbit .config .SimpleRabbitListenerContainerFactory ;
25
26
import org .springframework .amqp .rabbit .connection .ConnectionFactory ;
27
+ import org .springframework .amqp .rabbit .listener .DirectMessageListenerContainer ;
28
+ import org .springframework .amqp .rabbit .listener .SimpleMessageListenerContainer ;
26
29
import org .springframework .amqp .rabbit .retry .MessageRecoverer ;
27
30
import org .springframework .amqp .support .converter .MessageConverter ;
28
31
import org .springframework .beans .factory .ObjectProvider ;
@@ -48,14 +51,23 @@ class RabbitAnnotationDrivenConfiguration {
48
51
49
52
private final ObjectProvider <RabbitRetryTemplateCustomizer > retryTemplateCustomizers ;
50
53
54
+ private final ObjectProvider <ContainerCustomizer <SimpleMessageListenerContainer >> simpleContainerCustomizer ;
55
+
56
+ private final ObjectProvider <ContainerCustomizer <DirectMessageListenerContainer >> directContainerCustomizer ;
57
+
51
58
private final RabbitProperties properties ;
52
59
53
60
RabbitAnnotationDrivenConfiguration (ObjectProvider <MessageConverter > messageConverter ,
54
61
ObjectProvider <MessageRecoverer > messageRecoverer ,
55
- ObjectProvider <RabbitRetryTemplateCustomizer > retryTemplateCustomizers , RabbitProperties properties ) {
62
+ ObjectProvider <RabbitRetryTemplateCustomizer > retryTemplateCustomizers ,
63
+ ObjectProvider <ContainerCustomizer <SimpleMessageListenerContainer >> simpleContainerCustomizer ,
64
+ ObjectProvider <ContainerCustomizer <DirectMessageListenerContainer >> directContainerCustomizer ,
65
+ RabbitProperties properties ) {
56
66
this .messageConverter = messageConverter ;
57
67
this .messageRecoverer = messageRecoverer ;
58
68
this .retryTemplateCustomizers = retryTemplateCustomizers ;
69
+ this .simpleContainerCustomizer = simpleContainerCustomizer ;
70
+ this .directContainerCustomizer = directContainerCustomizer ;
59
71
this .properties = properties ;
60
72
}
61
73
@@ -79,6 +91,7 @@ SimpleRabbitListenerContainerFactory simpleRabbitListenerContainerFactory(
79
91
SimpleRabbitListenerContainerFactoryConfigurer configurer , ConnectionFactory connectionFactory ) {
80
92
SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory ();
81
93
configurer .configure (factory , connectionFactory );
94
+ this .simpleContainerCustomizer .ifUnique (factory ::setContainerCustomizer );
82
95
return factory ;
83
96
}
84
97
@@ -101,6 +114,7 @@ DirectRabbitListenerContainerFactory directRabbitListenerContainerFactory(
101
114
DirectRabbitListenerContainerFactoryConfigurer configurer , ConnectionFactory connectionFactory ) {
102
115
DirectRabbitListenerContainerFactory factory = new DirectRabbitListenerContainerFactory ();
103
116
configurer .configure (factory , connectionFactory );
117
+ this .directContainerCustomizer .ifUnique (factory ::setContainerCustomizer );
104
118
return factory ;
105
119
}
106
120
0 commit comments