diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/EnableStubRunnerServer.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/EnableStubRunnerServer.java index c50223e419..fc7713d8f3 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/EnableStubRunnerServer.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/EnableStubRunnerServer.java @@ -34,7 +34,7 @@ import org.springframework.context.annotation.Import; @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited -@Import({HttpStubsController.class, TriggerController.class, StubRunnerConfiguration.class}) +@Import({HttpStubsController.class, TriggerController.class, StreamConfiguration.class, StubRunnerConfiguration.class}) public @interface EnableStubRunnerServer { } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StreamConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StreamConfiguration.java new file mode 100644 index 0000000000..3d337159c4 --- /dev/null +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StreamConfiguration.java @@ -0,0 +1,29 @@ +package org.springframework.cloud.contract.stubrunner.server; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.cloud.stream.test.binder.MessageCollector; +import org.springframework.cloud.stream.test.binder.TestSupportBinder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; + +/** + * Configuration required to make Stub Runner server be executed at compile time + * + * @author Marcin Grzejszczak + * + * @since 1.0.0 + */ +@Configuration +class StreamConfiguration { + + @Bean + @Primary + @ConditionalOnClass(name = "org.springframework.cloud.stream.test.binder.TestSupportBinder") + @ConditionalOnMissingBean + public MessageCollector messageCollector() { + return new TestSupportBinder().messageCollector(); + } + +} diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfiguration.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfiguration.java index 9e39155607..492641430d 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfiguration.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfiguration.java @@ -25,8 +25,6 @@ import org.springframework.cloud.contract.verifier.messaging.internal.ContractVe import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging; import org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration; import org.springframework.cloud.stream.annotation.EnableBinding; -import org.springframework.cloud.stream.test.binder.MessageCollector; -import org.springframework.cloud.stream.test.binder.TestSupportBinder; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -41,13 +39,6 @@ import org.springframework.messaging.Message; @AutoConfigureBefore(NoOpContractVerifierAutoConfiguration.class) public class ContractVerifierStreamAutoConfiguration { - @Bean - @ConditionalOnClass(name = "org.springframework.cloud.stream.test.binder.TestSupportBinder") - @ConditionalOnMissingBean - public MessageCollector messageCollector() { - return new TestSupportBinder().messageCollector(); - } - @Bean @ConditionalOnMissingBean MessageVerifier> contractVerifierMessageExchange(