From 841d4cdf48870df711247c164b2d7f349e54c9e8 Mon Sep 17 00:00:00 2001 From: markfisher Date: Thu, 25 May 2017 09:27:49 -0400 Subject: [PATCH] fix compiled consumer sample --- ...ntextFunctionCatalogAutoConfiguration.java | 2 +- .../example/SampleCompiledConsumerTests.java | 62 +++++++++++++++++++ ....java => SampleCompiledFunctionTests.java} | 2 +- 3 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 spring-cloud-function-samples/spring-cloud-function-sample-compiler/src/test/java/com/example/SampleCompiledConsumerTests.java rename spring-cloud-function-samples/spring-cloud-function-sample-compiler/src/test/java/com/example/{SampleApplicationTests.java => SampleCompiledFunctionTests.java} (97%) diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/ContextFunctionCatalogAutoConfiguration.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/ContextFunctionCatalogAutoConfiguration.java index fbaca8443..3ad423ef5 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/ContextFunctionCatalogAutoConfiguration.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/ContextFunctionCatalogAutoConfiguration.java @@ -424,7 +424,7 @@ public class ContextFunctionCatalogAutoConfiguration { } else { // TODO: compiled functions (only work as String -> String) - if (paramType.isWrapper()) { + if (paramType.isWrapper() && !Consumer.class.isAssignableFrom(definition.getBeanClass())) { return Flux.class; } return String.class; diff --git a/spring-cloud-function-samples/spring-cloud-function-sample-compiler/src/test/java/com/example/SampleCompiledConsumerTests.java b/spring-cloud-function-samples/spring-cloud-function-sample-compiler/src/test/java/com/example/SampleCompiledConsumerTests.java new file mode 100644 index 000000000..d5995ccc3 --- /dev/null +++ b/spring-cloud-function-samples/spring-cloud-function-sample-compiler/src/test/java/com/example/SampleCompiledConsumerTests.java @@ -0,0 +1,62 @@ +/* + * Copyright 2017 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import org.springframework.boot.context.embedded.LocalServerPort; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; +import org.springframework.boot.test.web.client.TestRestTemplate; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Mark Fisher + */ +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, + properties = { + "spring.cloud.function.compile.test.lambda=com.example.SampleCompiledConsumerTests.Reference::set", + "spring.cloud.function.compile.test.type=consumer" + }) +public class SampleCompiledConsumerTests { + + @LocalServerPort + private int port; + + @Test + public void print() { + assertThat(new TestRestTemplate().postForObject( + "http://localhost:" + port + "/test", "it works", + String.class)).isEqualTo("it works"); + assertEquals("it works", Reference.instance); + } + + public static class Reference { + + private static Object instance; + + public static void set(Object o) { + instance = o; + } + } +} diff --git a/spring-cloud-function-samples/spring-cloud-function-sample-compiler/src/test/java/com/example/SampleApplicationTests.java b/spring-cloud-function-samples/spring-cloud-function-sample-compiler/src/test/java/com/example/SampleCompiledFunctionTests.java similarity index 97% rename from spring-cloud-function-samples/spring-cloud-function-sample-compiler/src/test/java/com/example/SampleApplicationTests.java rename to spring-cloud-function-samples/spring-cloud-function-sample-compiler/src/test/java/com/example/SampleCompiledFunctionTests.java index 1bfd3d432..ba44a65f1 100644 --- a/spring-cloud-function-samples/spring-cloud-function-sample-compiler/src/test/java/com/example/SampleApplicationTests.java +++ b/spring-cloud-function-samples/spring-cloud-function-sample-compiler/src/test/java/com/example/SampleCompiledFunctionTests.java @@ -33,7 +33,7 @@ import static org.assertj.core.api.Assertions.assertThat; @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = "spring.cloud.function.compile.test.lambda=f->f.map(s->s+\"!!!\")") -public class SampleApplicationTests { +public class SampleCompiledFunctionTests { @LocalServerPort private int port;