GH-103: Fix file source

Fixes https://github.com/spring-cloud/stream-applications/issues/103

Excludes `splitter-function` from dependencies. 
There may be some other sources that have the same issue. 
Also, includes changes to handle function composition with , or `|` delimiter
This commit is contained in:
David Turanski
2020-08-17 11:38:48 -04:00
committed by GitHub
parent 02a14b31e6
commit 19353bf7d9
3 changed files with 18 additions and 1 deletions

View File

@@ -58,6 +58,12 @@
<groupId>org.springframework.cloud.stream.app</groupId>
<artifactId>stream-applications-composite-function-support</artifactId>
<version>${stream-apps-core.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud.fn</groupId>
<artifactId>splitter-function</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</configuration>

View File

@@ -95,7 +95,7 @@ public class FunctionBindingEnvironmentPostProcessor implements EnvironmentPostP
}
private String functionDefinitionToChannelName(String functionDefinition) {
return functionDefinition.replaceAll("\\|", "");
return functionDefinition.replaceAll("\\||,", "");
}
private String functionDefinition(Environment environment) {

View File

@@ -37,6 +37,17 @@ public class FunctionBindingsEnvironmentPostProcessorTests {
assertThat(context.getEnvironment().getProperty("spring.cloud.stream.function.bindings.firstFunctionsecondFunction-in-0"))
.isEqualTo("input");
}
@Test
void destinationBindingsWithCommaDelimiter() {
ApplicationContext context = new SpringApplication(TestApp.class).run(
"--spring.cloud.stream.bindings.output.destination=foo",
"--spring.cloud.stream.bindings.input.destination=bar",
"--spring.cloud.function.definition=firstFunction,secondFunction");
assertThat(context.getEnvironment().getProperty("spring.cloud.stream.function.bindings.firstFunctionsecondFunction-out-0"))
.isEqualTo("output");
assertThat(context.getEnvironment().getProperty("spring.cloud.stream.function.bindings.firstFunctionsecondFunction-in-0"))
.isEqualTo("input");
}
@SpringBootApplication
static class TestApp {