GH-1157: Issues with Kafka Streams and Kotlin

Kafka Streams binder erroneously tries to parse regular
non Kafka streams Kotlin function registrations. Ignore
function beans ending in _registration in Kafka Streams binder.

Resolves https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/1157
This commit is contained in:
Soby Chacko
2021-10-01 11:07:14 -04:00
parent af0485e241
commit 82a3306cb9

View File

@@ -29,6 +29,7 @@ import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -96,6 +97,7 @@ public class KafkaStreamsFunctionBeanPostProcessor implements InitializingBean,
Stream.concat(Stream.of(biFunctionNames), Stream.of(biConsumerNames)));
final List<String> collect = concat.collect(Collectors.toList());
collect.removeIf(s -> Arrays.stream(EXCLUDE_FUNCTIONS).anyMatch(t -> t.equals(s)));
collect.removeIf(Pattern.compile(".*_registration").asPredicate());
onlySingleFunction = collect.size() == 1;
collect.stream()