Added missing beans + Added auto creation of message channels

This commit is contained in:
Marcin Grzejszczak
2016-09-02 17:06:18 +02:00
parent 18b5cf8890
commit 49c5089b40
2 changed files with 20 additions and 1 deletions

View File

@@ -34,6 +34,7 @@ import org.springframework.cloud.contract.stubrunner.StubConfiguration;
import org.springframework.cloud.contract.stubrunner.messaging.integration.StubRunnerIntegrationConfiguration;
import org.springframework.cloud.contract.stubrunner.messaging.stream.StubRunnerStreamConfiguration.FlowRegistrar;
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.ChannelBindingServiceProperties;
import org.springframework.context.Lifecycle;
@@ -76,7 +77,10 @@ public class StubRunnerStreamConfiguration {
Collection<Contract> value = entry.getValue();
String name = key.getGroupId() + "_" + key.getArtifactId();
for (Contract dsl : value) {
if (dsl != null && dsl.getInput() != null
if (dsl == null) {
continue;
}
if (dsl.getInput() != null
&& dsl.getInput().getMessageFrom() != null
&& StringUtils.hasText(
dsl.getInput().getMessageFrom().getClientValue())) {
@@ -113,6 +117,12 @@ public class StubRunnerStreamConfiguration {
.start();
beanFactory.getBean(flowName + ".transformer", Lifecycle.class)
.start();
} else if (dsl.getOutputMessage() != null
&& dsl.getOutputMessage().getSentTo() != null
&& StringUtils.hasText(
dsl.getOutputMessage().getSentTo().getClientValue())) {
BinderAwareChannelResolver resolver = beanFactory.getBean(BinderAwareChannelResolver.class);
resolver.resolveDestination(dsl.getOutputMessage().getSentTo().getClientValue());
}
}
}

View File

@@ -25,6 +25,8 @@ 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;
@@ -39,6 +41,13 @@ import org.springframework.messaging.Message;
@AutoConfigureBefore(NoOpContractVerifierAutoConfiguration.class)
public class ContractVerifierStreamAutoConfiguration {
@Bean
@ConditionalOnClass(name = "org.springframework.cloud.stream.test.binder.TestSupportBinder")
@ConditionalOnMissingBean
public MessageCollector contractVerifierMessageCollector() {
return new TestSupportBinder().messageCollector();
}
@Bean
@ConditionalOnMissingBean
MessageVerifier<Message<?>> contractVerifierMessageExchange(