From 5a11c2cc55f28251d6ec2538715a54864a4e1c1d Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Thu, 12 Nov 2020 12:10:04 +0100 Subject: [PATCH] Allows reusage of the amqp messageverifier setup --- ...ContractVerifierAmqpAutoConfiguration.java | 58 +++++++++++-------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfiguration.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfiguration.java index ef16517998..9b1956262b 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfiguration.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfiguration.java @@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.amqp.RabbitProperties; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -53,39 +54,46 @@ import static java.util.Collections.emptyList; */ @Configuration(proxyBeanMethods = false) @ConditionalOnClass(RabbitTemplate.class) -@ConditionalOnProperty(name = "stubrunner.amqp.enabled", havingValue = "true") @AutoConfigureBefore(ContractVerifierIntegrationConfiguration.class) @AutoConfigureAfter(ContractVerifierStreamAutoConfiguration.class) public class ContractVerifierAmqpAutoConfiguration { - @SpyBean - private RabbitTemplate rabbitTemplate; - - @Autowired(required = false) - private RabbitListenerEndpointRegistry rabbitListenerEndpointRegistry; - - @Autowired(required = false) - private List simpleMessageListenerContainers = emptyList(); - - @Autowired(required = false) - private List bindings = emptyList(); - - @Autowired - private RabbitProperties rabbitProperties; - @Bean + @ConditionalOnBean(RabbitTemplate.class) @ConditionalOnMissingBean - public MessageVerifier contractVerifierMessageExchange() { - return new SpringAmqpStubMessages(this.rabbitTemplate, - new MessageListenerAccessor(this.rabbitListenerEndpointRegistry, this.simpleMessageListenerContainers, - this.bindings), - this.rabbitProperties); + public ContractVerifierMessaging contractVerifierMessaging(MessageVerifier exchange, + RabbitTemplate rabbitTemplate) { + return new ContractVerifierHelper(exchange, rabbitTemplate.getMessageConverter()); } - @Bean - @ConditionalOnMissingBean - public ContractVerifierMessaging contractVerifierMessaging(MessageVerifier exchange) { - return new ContractVerifierHelper(exchange, this.rabbitTemplate.getMessageConverter()); + @Configuration + @ConditionalOnProperty(name = "stubrunner.amqp.enabled", havingValue = "true") + static class ContractVerifierAmqpSpyAutoConfiguration { + + @SpyBean + private RabbitTemplate rabbitTemplate; + + @Autowired(required = false) + private RabbitListenerEndpointRegistry rabbitListenerEndpointRegistry; + + @Autowired(required = false) + private List simpleMessageListenerContainers = emptyList(); + + @Autowired(required = false) + private List bindings = emptyList(); + + @Autowired + private RabbitProperties rabbitProperties; + + @Bean + @ConditionalOnMissingBean + public MessageVerifier contractVerifierMessageExchange() { + return new SpringAmqpStubMessages(this.rabbitTemplate, + new MessageListenerAccessor(this.rabbitListenerEndpointRegistry, + this.simpleMessageListenerContainers, this.bindings), + this.rabbitProperties); + } + } }