diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistry.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistry.java index 50c06c7a7..0fdcc0568 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistry.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistry.java @@ -278,6 +278,13 @@ public class BeanFactoryAwareFunctionRegistry + "Function available in catalog are: " + this.getNames(null)); return null; } + else { + Type functionType = FunctionContextUtils.findType(applicationContext.getBeanFactory(), name); + if (functionType != null && functionType.toString().contains("org.apache.kafka.streams.")) { + logger.debug("Kafka Streams function '" + definition + "' is not supported by spring-cloud-function."); + return null; + } + } composedNameBuilder.append(prefix); composedNameBuilder.append(name); diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java index 12143ca0e..fd90b6b64 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/FunctionContextUtils.java @@ -55,6 +55,9 @@ public abstract class FunctionContextUtils { actualName = name; } } + if (definition == null) { + return null; + } Object source = definition.getSource();