From 0a59a60a7fb1b87d30a4f79a553e55121e7bf8bf Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Mon, 28 Oct 2019 16:25:31 +0100 Subject: [PATCH] Fix RoutingFunction initialization based on routing-expression --- .../main/asciidoc/spring-cloud-stream.adoc | 23 ++----------------- .../function/FunctionConfiguration.java | 3 ++- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/docs/src/main/asciidoc/spring-cloud-stream.adoc b/docs/src/main/asciidoc/spring-cloud-stream.adoc index 29ea169ae..11de62aaa 100644 --- a/docs/src/main/asciidoc/spring-cloud-stream.adoc +++ b/docs/src/main/asciidoc/spring-cloud-stream.adoc @@ -570,7 +570,8 @@ For example `--spring.cloud.stream.poller.fixed-delay=2000` sets the poller inte ===== Routing with functions Routing with functions can be achieved by relying on `RoutingFunction` available in Spring Cloud Function 3.0. All you need to do is enable it via -`--spring.cloud.stream.function.routing.enabled=true` application property. Once enabled `RoutingFunction` will be bound to input destination +`--spring.cloud.stream.function.routing.enabled=true` application property or provide `spring.cloud.function.routing-expression` property. +Once enabled `RoutingFunction` will be bound to input destination receiving all the messages and route them to other functions based on the provided instruction. Instruction could be provided with individual messages as well as application properties. @@ -2310,26 +2311,6 @@ Below is the example of the required Maven POM entries which could be easily ret test test-binder -. . . - - - org.apache.maven.plugins - maven-jar-plugin - - - - - **/integration/* - - test-binder - - - test-jar - - - - - ---- ***Remove the dependency for `spring-cloud-stream-test-support`*** diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java index d9709a64e..a4ad6f606 100644 --- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java +++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java @@ -649,7 +649,8 @@ public class FunctionConfiguration { if (StringUtils.hasText(definition)) { streamFunctionProperties.setDefinition(definition); } - else if (Boolean.parseBoolean(environment.getProperty("spring.cloud.stream.function.routing.enabled", "false"))) { + else if (Boolean.parseBoolean(environment.getProperty("spring.cloud.stream.function.routing.enabled", "false")) + || environment.containsProperty("spring.cloud.function.routing-expression")) { streamFunctionProperties.setDefinition(RoutingFunction.FUNCTION_NAME); } else {