diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/FunctionCatalog.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/FunctionCatalog.java index 47fd69ce7..d5f005c5d 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/FunctionCatalog.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/FunctionCatalog.java @@ -47,4 +47,12 @@ public interface FunctionCatalog { Set getNames(Class type); + /** + * Return the count of functions registered in this catalog + * @return the count of functions registered in this catalog + */ + default int size() { + throw new UnsupportedOperationException("This instance of FunctionCatalog does not support this operation"); + } + } diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfiguration.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfiguration.java index fce90d17e..47c9c651f 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfiguration.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/ContextFunctionCatalogAutoConfiguration.java @@ -169,6 +169,13 @@ public class ContextFunctionCatalogAutoConfiguration { return Collections.emptySet(); } + @Override + public int size() { + return this.processor.getSuppliers().size() + + this.processor.getFunctions().size() + + this.processor.getConsumers().size(); + } + public BeanFactoryFunctionCatalog(ContextFunctionRegistry processor) { this.processor = processor; }