diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamConfiguration.java index 131442d001..57ecbf98a3 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/messaging/stream/StubRunnerStreamConfiguration.java @@ -22,6 +22,7 @@ import java.util.Map.Entry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.config.AutowireCapableBeanFactory; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -35,6 +36,7 @@ import org.springframework.cloud.contract.stubrunner.messaging.integration.StubR import org.springframework.cloud.stream.annotation.EnableBinding; import org.springframework.cloud.stream.binding.BinderAwareChannelResolver; import org.springframework.cloud.stream.config.BindingProperties; +import org.springframework.cloud.stream.config.BindingServiceProperties; import org.springframework.cloud.stream.config.ChannelBindingServiceProperties; import org.springframework.context.Lifecycle; import org.springframework.context.annotation.Bean; @@ -65,7 +67,7 @@ public class StubRunnerStreamConfiguration { @Bean @ConditionalOnMissingBean(name="stubFlowRegistrar") - @ConditionalOnBean(ChannelBindingServiceProperties.class) + @ConditionalOnBean(BindingServiceProperties.class) public FlowRegistrar stubFlowRegistrar(AutowireCapableBeanFactory beanFactory, BatchStubRunner batchStubRunner) { Map> contracts = batchStubRunner @@ -130,10 +132,8 @@ public class StubRunnerStreamConfiguration { private String resolvedDestination(AutowireCapableBeanFactory context, String destination) { - ChannelBindingServiceProperties channelBindingServiceProperties = context - .getBean(ChannelBindingServiceProperties.class); - for (Map.Entry entry : channelBindingServiceProperties - .getBindings().entrySet()) { + Map bindings = bindingProperties(context); + for (Map.Entry entry : bindings.entrySet()) { if (entry.getValue().getDestination().equals(destination)) { if (log.isDebugEnabled()) { log.debug("Found a channel named [{}] with destination [{}]", @@ -150,6 +150,10 @@ public class StubRunnerStreamConfiguration { return destination; } + private Map bindingProperties(AutowireCapableBeanFactory context) { + return context.getBean(BindingServiceProperties.class).getBindings(); + } + private static class DummyMessageHandler { public void handle(Message message) {} }