added LambdaCompilingFunction

This commit is contained in:
markfisher
2017-01-11 20:30:25 -05:00
parent 8205c579f2
commit 69fc017565
2 changed files with 80 additions and 0 deletions

View File

@@ -20,7 +20,10 @@ import java.util.function.Supplier;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.function.compiler.FunctionCompiler;
import org.springframework.cloud.function.support.LambdaCompilingFunction;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.ByteArrayResource;
import reactor.core.publisher.Flux;
@@ -42,6 +45,17 @@ public class SampleApplication {
return flux -> flux.map(value -> value.toLowerCase());
}
@Bean
public <T, R> FunctionCompiler<T, R> compiler() {
return new FunctionCompiler<>();
}
@Bean
public Function<Flux<String>, Flux<String>> compiledUppercase(FunctionCompiler<Flux<String>, Flux<String>> compiler) {
String lambda = "f -> f.map(o -> o.toString().toUpperCase())";
return new LambdaCompilingFunction<>(new ByteArrayResource(lambda.getBytes()), compiler);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleApplication.class, args);
}