diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/BinderFactoryAutoConfiguration.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/BinderFactoryAutoConfiguration.java index 7c34a1634..844048ccb 100644 --- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/BinderFactoryAutoConfiguration.java +++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/config/BinderFactoryAutoConfiguration.java @@ -211,24 +211,16 @@ public class BinderFactoryAutoConfiguration { public MessageConverterConfigurer messageConverterConfigurer( BindingServiceProperties bindingServiceProperties, @Qualifier(IntegrationContextUtils.ARGUMENT_RESOLVER_MESSAGE_CONVERTER_BEAN_NAME) CompositeMessageConverter compositeMessageConverter, - Environment environment) { + Environment environment, BinderTypeRegistry binderTypeRegistry) { - MessageConverterConfigurer messageConverterConfigurer = null; - if (StringUtils.hasText(environment.getProperty("spring.cloud.stream.function.definition"))) { - try { - ClassUtils.forName("org.apache.kafka.streams.kstream.KStream", ClassUtils.getDefaultClassLoader()); - messageConverterConfigurer = new MessageConverterConfigurer(bindingServiceProperties, compositeMessageConverter); - } - catch (Exception e) { - // ignore - } + if (binderTypeRegistry.getAll().keySet().contains("kstream") || !environment.containsProperty("spring.cloud.stream.function.definition")) { + return new MessageConverterConfigurer(bindingServiceProperties, compositeMessageConverter); } - else { - messageConverterConfigurer = new MessageConverterConfigurer(bindingServiceProperties, compositeMessageConverter); - } - return messageConverterConfigurer; + + return null; } + @Bean public SubscribableChannelBindingTargetFactory channelFactory( CompositeMessageChannelConfigurer compositeMessageChannelConfigurer) {