Fix sample so the thin.profile=stream works

This commit is contained in:
Dave Syer
2017-04-27 12:09:52 +01:00
parent 995a12b234
commit e2c257b3e7
8 changed files with 39 additions and 16 deletions

View File

@@ -18,7 +18,7 @@
<java.version>1.8</java.version>
<reactor-bom.version>Aluminium-BUILD-SNAPSHOT</reactor-bom.version>
<spring-cloud-stream.version>Chelsea.SR1</spring-cloud-stream.version>
<wrapper.version>1.0.0.RELEASE</wrapper.version>
<wrapper.version>1.0.1.RELEASE</wrapper.version>
<spring-boot.version>1.5.2.RELEASE</spring-boot.version>
</properties>

View File

@@ -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<String, String> properties(String properties) {
Map<String, String> 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;
}
}

View File

@@ -20,7 +20,7 @@
<properties>
<java.version>1.8</java.version>
<spring-cloud-function.version>1.0.0.BUILD-SNAPSHOT</spring-cloud-function.version>
<wrapper.version>1.0.0.RELEASE</wrapper.version>
<wrapper.version>1.0.1.RELEASE</wrapper.version>
<reactor.version>3.0.6.RELEASE</reactor.version>
</properties>

View File

@@ -20,7 +20,7 @@
<properties>
<java.version>1.8</java.version>
<spring-cloud-function.version>1.0.0.BUILD-SNAPSHOT</spring-cloud-function.version>
<wrapper.version>1.0.0.RELEASE</wrapper.version>
<wrapper.version>1.0.1.RELEASE</wrapper.version>
<reactor.version>3.0.7.BUILD-SNAPSHOT</reactor.version>
</properties>
@@ -42,7 +42,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR4</version>
<version>Dalston.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>

View File

@@ -1 +1,4 @@
function.name: uppercase
spring.cloud.stream.bindings.input.destination: foos
spring.cloud.stream.bindings.output.destination: bars
spring.cloud.function.stream.endpoint: uppercase
management.security.enabled: false

View File

@@ -20,7 +20,7 @@
<properties>
<java.version>1.8</java.version>
<spring-cloud-function.version>1.0.0.BUILD-SNAPSHOT</spring-cloud-function.version>
<wrapper.version>1.0.0.RELEASE</wrapper.version>
<wrapper.version>1.0.1.RELEASE</wrapper.version>
<reactor.version>3.0.7.BUILD-SNAPSHOT</reactor.version>
</properties>

View File

@@ -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

View File

@@ -0,0 +1,3 @@
spring.cloud.stream.bindings.input.destination: words
spring.cloud.stream.bindings.output.destination: uppercaseWords
spring.cloud.function.stream.endpoint: uppercase