diff --git a/spring-cloud-function-task/src/main/java/org/springframework/cloud/function/task/TaskConfiguration.java b/spring-cloud-function-task/src/main/java/org/springframework/cloud/function/task/TaskConfiguration.java index ddbf8cdd7..5c196d90b 100644 --- a/spring-cloud-function-task/src/main/java/org/springframework/cloud/function/task/TaskConfiguration.java +++ b/spring-cloud-function-task/src/main/java/org/springframework/cloud/function/task/TaskConfiguration.java @@ -30,6 +30,7 @@ import org.springframework.cloud.function.registry.FunctionRegistry; import org.springframework.cloud.task.configuration.EnableTask; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.util.StringUtils; import reactor.core.publisher.Flux; @@ -51,9 +52,12 @@ public class TaskConfiguration { @Bean public CommandLineRunner commandLineRunner(FunctionRegistry registry) { - final Supplier> supplier = registry.lookupSupplier(properties.getSupplier()); - final Function, Flux> function = registry.lookupFunction(properties.getFunction()); - final Consumer consumer = registry.lookupConsumer(properties.getConsumer()); + final Supplier> supplier = registry.lookupSupplier(properties.getSupplier()); + String functionName = properties.getFunction(); + Function, Flux> function = (functionName.indexOf(',') == -1) + ? registry.lookupFunction(functionName) + : registry.composeFunction(StringUtils.commaDelimitedListToStringArray(functionName)); + final Consumer consumer = registry.lookupConsumer(properties.getConsumer()); final CountDownLatch latch = new CountDownLatch(1); final AtomicBoolean status = new AtomicBoolean(); CommandLineRunner runner = new CommandLineRunner() {