From e2c257b3e722d4f5375941e77cd6b00e55465640 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Thu, 27 Apr 2017 12:09:52 +0100 Subject: [PATCH] Fix sample so the thin.profile=stream works --- pom.xml | 2 +- .../deployer/FunctionAppDeployerTests.java | 34 +++++++++++++------ .../pom.xml | 2 +- .../spring-cloud-function-sample-pojo/pom.xml | 4 +-- .../src/main/resources/application.properties | 5 ++- .../spring-cloud-function-sample/pom.xml | 2 +- .../resources/META-INF/thin-stream.properties | 3 ++ .../src/main/resources/application.properties | 3 ++ 8 files changed, 39 insertions(+), 16 deletions(-) create mode 100644 spring-cloud-function-samples/spring-cloud-function-sample/src/main/resources/META-INF/thin-stream.properties create mode 100644 spring-cloud-function-samples/spring-cloud-function-sample/src/main/resources/application.properties diff --git a/pom.xml b/pom.xml index fcdb0cfd8..7a6dbdd2a 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ 1.8 Aluminium-BUILD-SNAPSHOT Chelsea.SR1 - 1.0.0.RELEASE + 1.0.1.RELEASE 1.5.2.RELEASE diff --git a/spring-cloud-function-deployer/src/test/java/org/springframework/cloud/function/deployer/FunctionAppDeployerTests.java b/spring-cloud-function-deployer/src/test/java/org/springframework/cloud/function/deployer/FunctionAppDeployerTests.java index c92360b89..3442616d3 100644 --- a/spring-cloud-function-deployer/src/test/java/org/springframework/cloud/function/deployer/FunctionAppDeployerTests.java +++ b/spring-cloud-function-deployer/src/test/java/org/springframework/cloud/function/deployer/FunctionAppDeployerTests.java @@ -18,7 +18,10 @@ package org.springframework.cloud.function.deployer; import java.util.Arrays; import java.util.Collections; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; +import java.util.Properties; import org.junit.Assume; import org.junit.BeforeClass; @@ -34,6 +37,7 @@ import org.springframework.cloud.deployer.spi.core.AppDeploymentRequest; import org.springframework.cloud.deployer.thin.ThinJarAppDeployer; import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.Resource; +import org.springframework.util.StringUtils; import static org.assertj.core.api.Assertions.assertThat; @@ -71,9 +75,8 @@ public class FunctionAppDeployerTests { @Test public void web() throws Exception { - String first = deploy( - "maven://com.example:function-sample:1.0.0.BUILD-SNAPSHOT", - "--function.name=uppercase"); + String first = deploy("maven://com.example:function-sample:1.0.0.BUILD-SNAPSHOT", + ""); // Deployment is blocking so it either failed or succeeded. assertThat(deployer.status(first).getState()).isEqualTo(DeploymentState.deployed); deployer.undeploy(first); @@ -81,25 +84,36 @@ public class FunctionAppDeployerTests { @Test public void stream() throws Exception { - String first = deploy( - "maven://com.example:function-sample:1.0.0.BUILD-SNAPSHOT", - "--spring.cloud.stream.bindings.input.destination=words", - "--spring.cloud.stream.bindings.output.destination=uppercaseWords", - "--function.name=uppercase"); + String first = deploy("maven://com.example:function-sample:1.0.0.BUILD-SNAPSHOT", + "spring.cloud.deployer.thin.profile=stream"); // Deployment is blocking so it either failed or succeeded. assertThat(deployer.status(first).getState()).isEqualTo(DeploymentState.deployed); deployer.undeploy(first); } - private String deploy(String jarName, String... args) throws Exception { + private String deploy(String jarName, String properties, String... args) + throws Exception { Resource resource = new FileSystemResource( ArchiveUtils.getArchiveRoot(ArchiveUtils.getArchive(jarName))); AppDefinition definition = new AppDefinition(resource.getFilename(), Collections.emptyMap()); AppDeploymentRequest request = new AppDeploymentRequest(definition, resource, - Collections.emptyMap(), Arrays.asList(args)); + properties(properties), Arrays.asList(args)); String deployed = deployer.deploy(request); return deployed; } + private Map properties(String properties) { + Map map = new LinkedHashMap<>(); + Properties props = StringUtils.splitArrayElementsIntoProperties( + StringUtils.commaDelimitedListToStringArray(properties), "="); + if (props != null) { + for (Object name : props.keySet()) { + String key = (String) name; + map.put(key, props.getProperty(key)); + } + } + return map; + } + } diff --git a/spring-cloud-function-samples/spring-cloud-function-sample-compiler/pom.xml b/spring-cloud-function-samples/spring-cloud-function-sample-compiler/pom.xml index b5de3d3a8..fbc4769f5 100644 --- a/spring-cloud-function-samples/spring-cloud-function-sample-compiler/pom.xml +++ b/spring-cloud-function-samples/spring-cloud-function-sample-compiler/pom.xml @@ -20,7 +20,7 @@ 1.8 1.0.0.BUILD-SNAPSHOT - 1.0.0.RELEASE + 1.0.1.RELEASE 3.0.6.RELEASE diff --git a/spring-cloud-function-samples/spring-cloud-function-sample-pojo/pom.xml b/spring-cloud-function-samples/spring-cloud-function-sample-pojo/pom.xml index 08af27f01..59a6cd4c5 100644 --- a/spring-cloud-function-samples/spring-cloud-function-sample-pojo/pom.xml +++ b/spring-cloud-function-samples/spring-cloud-function-sample-pojo/pom.xml @@ -20,7 +20,7 @@ 1.8 1.0.0.BUILD-SNAPSHOT - 1.0.0.RELEASE + 1.0.1.RELEASE 3.0.7.BUILD-SNAPSHOT @@ -42,7 +42,7 @@ org.springframework.cloud spring-cloud-dependencies - Camden.SR4 + Dalston.RELEASE pom import diff --git a/spring-cloud-function-samples/spring-cloud-function-sample-pojo/src/main/resources/application.properties b/spring-cloud-function-samples/spring-cloud-function-sample-pojo/src/main/resources/application.properties index 80d1fa9f0..ce79fe047 100644 --- a/spring-cloud-function-samples/spring-cloud-function-sample-pojo/src/main/resources/application.properties +++ b/spring-cloud-function-samples/spring-cloud-function-sample-pojo/src/main/resources/application.properties @@ -1 +1,4 @@ -function.name: uppercase \ No newline at end of file +spring.cloud.stream.bindings.input.destination: foos +spring.cloud.stream.bindings.output.destination: bars +spring.cloud.function.stream.endpoint: uppercase +management.security.enabled: false \ No newline at end of file diff --git a/spring-cloud-function-samples/spring-cloud-function-sample/pom.xml b/spring-cloud-function-samples/spring-cloud-function-sample/pom.xml index 4bde339a2..5ed3146d6 100644 --- a/spring-cloud-function-samples/spring-cloud-function-sample/pom.xml +++ b/spring-cloud-function-samples/spring-cloud-function-sample/pom.xml @@ -20,7 +20,7 @@ 1.8 1.0.0.BUILD-SNAPSHOT - 1.0.0.RELEASE + 1.0.1.RELEASE 3.0.7.BUILD-SNAPSHOT diff --git a/spring-cloud-function-samples/spring-cloud-function-sample/src/main/resources/META-INF/thin-stream.properties b/spring-cloud-function-samples/spring-cloud-function-sample/src/main/resources/META-INF/thin-stream.properties new file mode 100644 index 000000000..9ecef0d7b --- /dev/null +++ b/spring-cloud-function-samples/spring-cloud-function-sample/src/main/resources/META-INF/thin-stream.properties @@ -0,0 +1,3 @@ +boms.spring-cloud-dependencies: org.springframework.cloud:spring-cloud-dependencies:Dalston.RELEASE +dependencies.spring-cloud-function-stream: org.springframework.cloud:spring-cloud-function-stream:1.0.0.BUILD-SNAPSHOT +dependencies.spring-cloud-stream-rabbit: org.springframework.cloud:spring-cloud-starter-stream-rabbit \ No newline at end of file diff --git a/spring-cloud-function-samples/spring-cloud-function-sample/src/main/resources/application.properties b/spring-cloud-function-samples/spring-cloud-function-sample/src/main/resources/application.properties new file mode 100644 index 000000000..22c97aadf --- /dev/null +++ b/spring-cloud-function-samples/spring-cloud-function-sample/src/main/resources/application.properties @@ -0,0 +1,3 @@ +spring.cloud.stream.bindings.input.destination: words +spring.cloud.stream.bindings.output.destination: uppercaseWords +spring.cloud.function.stream.endpoint: uppercase \ No newline at end of file