Fix docs with regard to Flux.interval

Also provide ability to run with `Flux.interval(Duration)` in
compiled scripts

Fixes gh-174
This commit is contained in:
Oleh Dokuka
2018-05-02 12:25:53 +03:00
committed by Dave Syer
parent eaea89532c
commit 4b85e89992
5 changed files with 14 additions and 3 deletions

View File

@@ -182,7 +182,7 @@ curl -X POST -H "Content-Type: text/plain" -d foo localhost:9002/print
First register a streaming words supplier:
----
./registerSupplier.sh -n wordstream -f "()->Flux.intervalMillis(1000).map(i->\"message-\"+i)"
./registerSupplier.sh -n wordstream -f "()->Flux.interval(Duration.ofMillis(1000)).map(i->\"message-\"+i)"
----
Then start the source (supplier), processor (function), and sink (consumer) apps

View File

@@ -122,7 +122,7 @@ curl -X POST -H "Content-Type: text/plain" -d foo localhost:9002/print
First register a streaming words supplier:
----
./registerSupplier.sh -n wordstream -f "()->Flux.intervalMillis(1000).map(i->\"message-\"+i)"
./registerSupplier.sh -n wordstream -f "()->Flux.interval(Duration.ofMillis(1000)).map(i->\"message-\"+i)"
----
Then start the source (supplier), processor (function), and sink (consumer) apps

View File

@@ -45,7 +45,7 @@ while getopts ":i:s:f:c:o:p:d:" opt; do
esac
done
java -jar ../spring-cloud-function-samples/spring-cloud-function-sample-compiler/target/function-sample-compiler-1.0.0.BUILD-SNAPSHOT.jar\
java -jar ../spring-cloud-function-samples/function-sample-compiler/target/function-sample-compiler-1.0.0.BUILD-SNAPSHOT.jar\
--management.security.enabled=false\
--server.port=$PORT\
--spring.cloud.function.stream.endpoint=$FUNC\

View File

@@ -53,6 +53,7 @@ public abstract class AbstractFunctionCompiler<F> {
private static String SOURCE_CODE_TEMPLATE = "package "
+ AbstractFunctionCompiler.class.getPackage().getName() + ";\n"
+ "import java.util.*;\n" // Helpful to include this
+ "import java.time.*;\n" // Helpful to include this
+ "import java.util.function.*;\n"
+ "import reactor.core.publisher.Flux;\n"
+ "public class %s implements CompilationResultFactory<%s> {\n"

View File

@@ -19,6 +19,7 @@ package org.springframework.cloud.function.compiler;
import java.util.function.Supplier;
import org.junit.Test;
import reactor.core.publisher.Flux;
import org.springframework.cloud.function.core.FunctionFactoryUtils;
@@ -47,4 +48,13 @@ public class SupplierCompilerTests {
assertThat(compiled.getResult().get()).isEqualTo("foo");
}
@Test
public void supppliesFluxStreamString() {
CompiledFunctionFactory<Supplier<Flux<String>>> compiled = new SupplierCompiler<Flux<String>>(
String.class.getName()).compile("foos",
"() -> Flux.interval(Duration.ofMillis(1000)).map(Object::toString)",
"Flux<String>");
assertThat(FunctionFactoryUtils.isFluxSupplier(compiled.getFactoryMethod())).isTrue();
assertThat(compiled.getResult().get().blockFirst()).isEqualTo("0");
}
}