Updates to version 5.0.0-SNAPSHOT
Changes for Framework 7
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-parent</artifactId>
|
<artifactId>spring-cloud-function-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<name>Spring Cloud Function Docs</name>
|
<name>Spring Cloud Function Docs</name>
|
||||||
|
|||||||
4
pom.xml
4
pom.xml
@@ -6,13 +6,13 @@
|
|||||||
|
|
||||||
<artifactId>spring-cloud-function-parent</artifactId>
|
<artifactId>spring-cloud-function-parent</artifactId>
|
||||||
<name>Spring Cloud Function Parent</name>
|
<name>Spring Cloud Function Parent</name>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-build</artifactId>
|
<artifactId>spring-cloud-build</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
<relativePath/>
|
<relativePath/>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-parent</artifactId>
|
<artifactId>spring-cloud-function-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<name>spring-cloud-function-adapter-parent</name>
|
<name>spring-cloud-function-adapter-parent</name>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-adapter-parent</artifactId>
|
<artifactId>spring-cloud-function-adapter-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|||||||
@@ -179,7 +179,7 @@ public final class CustomRuntimeEventLoop implements SmartLifecycle {
|
|||||||
@Override
|
@Override
|
||||||
public int getRemainingTimeInMillis() {
|
public int getRemainingTimeInMillis() {
|
||||||
long now = System.currentTimeMillis();
|
long now = System.currentTimeMillis();
|
||||||
if (!headers.containsKey("Lambda-Runtime-Deadline-Ms")) {
|
if (!headers.containsHeader("Lambda-Runtime-Deadline-Ms")) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
int delta = (int) (Long.parseLong(headers.getFirst("Lambda-Runtime-Deadline-Ms")) - now);
|
int delta = (int) (Long.parseLong(headers.getFirst("Lambda-Runtime-Deadline-Ms")) - now);
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-adapter-parent</artifactId>
|
<artifactId>spring-cloud-function-adapter-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-adapter-parent</artifactId>
|
<artifactId>spring-cloud-function-adapter-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>spring-cloud-function-adapter-parent</artifactId>
|
<artifactId>spring-cloud-function-adapter-parent</artifactId>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud.function.aws-lambda.packaging</groupId>
|
<groupId>org.springframework.cloud.function.aws-lambda.packaging</groupId>
|
||||||
<artifactId>spring-cloud-function-aws-gradle-parent</artifactId>
|
<artifactId>spring-cloud-function-aws-gradle-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<properties>
|
<properties>
|
||||||
<main.basedir>${basedir}/../..</main.basedir>
|
<main.basedir>${basedir}/../..</main.basedir>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud.function.aws-lambda.packaging</groupId>
|
<groupId>org.springframework.cloud.function.aws-lambda.packaging</groupId>
|
||||||
<artifactId>spring-cloud-function-aws-gradle-parent</artifactId>
|
<artifactId>spring-cloud-function-aws-gradle-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-adapter-parent</artifactId>
|
<artifactId>spring-cloud-function-adapter-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>spring-cloud-function-grpc-cloudevent-ext</artifactId>
|
<artifactId>spring-cloud-function-grpc-cloudevent-ext</artifactId>
|
||||||
<name>spring-cloud-function-grpc-cloudevent-ext</name>
|
<name>spring-cloud-function-grpc-cloudevent-ext</name>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-adapter-parent</artifactId>
|
<artifactId>spring-cloud-function-adapter-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<properties>
|
<properties>
|
||||||
<grpc.version>1.55.1</grpc.version>
|
<grpc.version>1.55.1</grpc.version>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-adapter-parent</artifactId>
|
<artifactId>spring-cloud-function-adapter-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
|||||||
@@ -279,7 +279,7 @@ public class ServerlessHttpServletRequest implements HttpServletRequest {
|
|||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public String getContentType() {
|
public String getContentType() {
|
||||||
return this.headers.containsKey(HttpHeaders.CONTENT_TYPE) ? this.headers.get(HttpHeaders.CONTENT_TYPE).get(0) : null;
|
return this.headers.containsHeader(HttpHeaders.CONTENT_TYPE) ? this.headers.get(HttpHeaders.CONTENT_TYPE).get(0) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -713,17 +713,17 @@ public class ServerlessHttpServletRequest implements HttpServletRequest {
|
|||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public String getHeader(String name) {
|
public String getHeader(String name) {
|
||||||
return this.headers.containsKey(name) ? this.headers.get(name).get(0) : null;
|
return this.headers.containsHeader(name) ? this.headers.get(name).get(0) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Enumeration<String> getHeaders(String name) {
|
public Enumeration<String> getHeaders(String name) {
|
||||||
return Collections.enumeration(this.headers.containsKey(name) ? this.headers.get(name) : new LinkedList<>());
|
return Collections.enumeration(this.headers.containsHeader(name) ? this.headers.get(name) : new LinkedList<>());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Enumeration<String> getHeaderNames() {
|
public Enumeration<String> getHeaderNames() {
|
||||||
return Collections.enumeration(this.headers.keySet());
|
return Collections.enumeration(this.headers.headerNames());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setHeader(String name, @Nullable String value) {
|
public void setHeader(String name, @Nullable String value) {
|
||||||
@@ -735,7 +735,7 @@ public class ServerlessHttpServletRequest implements HttpServletRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void addHeaders(MultiValueMap<String, String> headers) {
|
public void addHeaders(MultiValueMap<String, String> headers) {
|
||||||
this.headers.addAll(headers);
|
this.headers.addAll(new HttpHeaders(headers));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setHeaders(MultiValueMap<String, String> headers) {
|
public void setHeaders(MultiValueMap<String, String> headers) {
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ public class ServerlessHttpServletResponse implements HttpServletResponse {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean containsHeader(String name) {
|
public boolean containsHeader(String name) {
|
||||||
return this.headers.containsKey(name);
|
return this.headers.containsHeader(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -231,7 +231,7 @@ public class ServerlessHttpServletResponse implements HttpServletResponse {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Collection<String> getHeaderNames() {
|
public Collection<String> getHeaderNames() {
|
||||||
return this.headers.keySet();
|
return this.headers.headerNames();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -249,7 +249,7 @@ public class ServerlessHttpServletResponse implements HttpServletResponse {
|
|||||||
@Override
|
@Override
|
||||||
@Nullable
|
@Nullable
|
||||||
public String getHeader(String name) {
|
public String getHeader(String name) {
|
||||||
return this.headers.containsKey(name) ? this.headers.get(name).get(0) : null;
|
return this.headers.containsHeader(name) ? this.headers.get(name).get(0) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -265,7 +265,7 @@ public class ServerlessHttpServletResponse implements HttpServletResponse {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<String> getHeaders(String name) {
|
public List<String> getHeaders(String name) {
|
||||||
if (!this.headers.containsKey(name)) {
|
if (!this.headers.containsHeader(name)) {
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
return this.headers.get(name);
|
return this.headers.get(name);
|
||||||
@@ -281,7 +281,7 @@ public class ServerlessHttpServletResponse implements HttpServletResponse {
|
|||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public Object getHeaderValue(String name) {
|
public Object getHeaderValue(String name) {
|
||||||
return this.headers.containsKey(name) ? this.headers.get(name).get(0) : null;
|
return this.headers.containsHeader(name) ? this.headers.get(name).get(0) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -329,6 +329,15 @@ public class ServerlessHttpServletResponse implements HttpServletResponse {
|
|||||||
setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
|
setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sendRedirect(String location, int statusCode, boolean clearBuffer) throws IOException {
|
||||||
|
Assert.state(!isCommitted(), "Cannot send redirect - response is already committed");
|
||||||
|
Assert.notNull(location, "Redirect URL must not be null");
|
||||||
|
setHeader(HttpHeaders.LOCATION, location);
|
||||||
|
setStatus(statusCode);
|
||||||
|
//TODO: deal with clearBuffer
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public String getRedirectedUrl() {
|
public String getRedirectedUrl() {
|
||||||
return getHeader(HttpHeaders.LOCATION);
|
return getHeader(HttpHeaders.LOCATION);
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-parent</artifactId>
|
<artifactId>spring-cloud-function-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-parent</artifactId>
|
<artifactId>spring-cloud-function-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -6,11 +6,11 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>spring-cloud-dependencies-parent</artifactId>
|
<artifactId>spring-cloud-dependencies-parent</artifactId>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
<relativePath/>
|
<relativePath/>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>spring-cloud-function-dependencies</artifactId>
|
<artifactId>spring-cloud-function-dependencies</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<name>Spring Cloud Function Dependencies</name>
|
<name>Spring Cloud Function Dependencies</name>
|
||||||
<description>Spring Cloud Function Dependencies</description>
|
<description>Spring Cloud Function Dependencies</description>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-parent</artifactId>
|
<artifactId>spring-cloud-function-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<java.version>17</java.version>
|
<java.version>17</java.version>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<java.version>17</java.version>
|
<java.version>17</java.version>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<java.version>17</java.version>
|
<java.version>17</java.version>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<java.version>17</java.version>
|
<java.version>17</java.version>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<java.version>17</java.version>
|
<java.version>17</java.version>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<java.version>17</java.version>
|
<java.version>17</java.version>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<java.version>17</java.version>
|
<java.version>17</java.version>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<artifactId>spring-cloud-function-parent</artifactId>
|
<artifactId>spring-cloud-function-parent</artifactId>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-parent</artifactId>
|
<artifactId>spring-cloud-function-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ open class KotlinLambdasConfiguration {
|
|||||||
open fun uppercase(): Function<String, String> = KotlinComponentFunction()
|
open fun uppercase(): Function<String, String> = KotlinComponentFunction()
|
||||||
@Bean
|
@Bean
|
||||||
open fun kotlinFunction(): (String) -> String {
|
open fun kotlinFunction(): (String) -> String {
|
||||||
return { it.toUpperCase() }
|
return { it.uppercase() }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ open class KotlinSuspendFlowLambdasConfiguration {
|
|||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
open fun kotlinFunction(): suspend (Flow<String>) -> Flow<String> = { flow ->
|
open fun kotlinFunction(): suspend (Flow<String>) -> Flow<String> = { flow ->
|
||||||
flow.map { value -> value.toUpperCase() }
|
flow.map { value -> value.uppercase() }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ open class HeadersToMessageSuspendTests {
|
|||||||
)
|
)
|
||||||
|
|
||||||
Assertions.assertThat(postForEntity.body).isEqualTo("[{\"name\":\"Bob\",\"age\":25}]")
|
Assertions.assertThat(postForEntity.body).isEqualTo("[{\"name\":\"Bob\",\"age\":25}]")
|
||||||
Assertions.assertThat(postForEntity.headers.containsKey("x-content-type")).isTrue
|
Assertions.assertThat(postForEntity.headers.headerNames()).contains("x-content-type")
|
||||||
Assertions.assertThat(postForEntity.headers["x-content-type"]!![0])
|
Assertions.assertThat(postForEntity.headers["x-content-type"]!![0])
|
||||||
.isEqualTo("application/xml")
|
.isEqualTo("application/xml")
|
||||||
Assertions.assertThat(postForEntity.headers["foo"]!![0]).isEqualTo("bar")
|
Assertions.assertThat(postForEntity.headers["foo"]!![0]).isEqualTo("bar")
|
||||||
@@ -67,7 +67,7 @@ open class HeadersToMessageSuspendTests {
|
|||||||
"HELLO", String::class.java
|
"HELLO", String::class.java
|
||||||
)
|
)
|
||||||
Assertions.assertThat(postForEntity.body).isEqualTo("[\"HELLO\"]")
|
Assertions.assertThat(postForEntity.body).isEqualTo("[\"HELLO\"]")
|
||||||
Assertions.assertThat(postForEntity.headers.containsKey("x-content-type")).isTrue
|
Assertions.assertThat(postForEntity.headers.headerNames()).contains("x-content-type")
|
||||||
Assertions.assertThat(postForEntity.headers["x-content-type"]!![0])
|
Assertions.assertThat(postForEntity.headers["x-content-type"]!![0])
|
||||||
.isEqualTo("application/xml")
|
.isEqualTo("application/xml")
|
||||||
Assertions.assertThat(postForEntity.headers["foo"]!![0]).isEqualTo("bar")
|
Assertions.assertThat(postForEntity.headers["foo"]!![0]).isEqualTo("bar")
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ open class HeadersToMessageTests {
|
|||||||
.body("{\"name\":\"Bob\",\"age\":25}"), String::class.java
|
.body("{\"name\":\"Bob\",\"age\":25}"), String::class.java
|
||||||
)
|
)
|
||||||
Assertions.assertThat(postForEntity.body).isEqualTo("{\"name\":\"Bob\",\"age\":25}")
|
Assertions.assertThat(postForEntity.body).isEqualTo("{\"name\":\"Bob\",\"age\":25}")
|
||||||
Assertions.assertThat(postForEntity.headers.containsKey("x-content-type")).isTrue
|
Assertions.assertThat(postForEntity.headers.headerNames()).contains("x-content-type")
|
||||||
Assertions.assertThat(postForEntity.headers["x-content-type"]!![0])
|
Assertions.assertThat(postForEntity.headers["x-content-type"]!![0])
|
||||||
.isEqualTo("application/xml")
|
.isEqualTo("application/xml")
|
||||||
Assertions.assertThat(postForEntity.headers["foo"]!![0]).isEqualTo("bar")
|
Assertions.assertThat(postForEntity.headers["foo"]!![0]).isEqualTo("bar")
|
||||||
@@ -66,7 +66,7 @@ open class HeadersToMessageTests {
|
|||||||
"{\"name\":\"Bob\",\"age\":25}", String::class.java
|
"{\"name\":\"Bob\",\"age\":25}", String::class.java
|
||||||
)
|
)
|
||||||
Assertions.assertThat(postForEntity.body).isEqualTo("{\"name\":\"Bob\",\"age\":25}")
|
Assertions.assertThat(postForEntity.body).isEqualTo("{\"name\":\"Bob\",\"age\":25}")
|
||||||
Assertions.assertThat(postForEntity.headers.containsKey("x-content-type")).isTrue
|
Assertions.assertThat(postForEntity.headers.headerNames().contains("x-content-type"))
|
||||||
Assertions.assertThat(postForEntity.headers["x-content-type"]!![0])
|
Assertions.assertThat(postForEntity.headers["x-content-type"]!![0])
|
||||||
.isEqualTo("application/xml")
|
.isEqualTo("application/xml")
|
||||||
Assertions.assertThat(postForEntity.headers["foo"]!![0]).isEqualTo("bar")
|
Assertions.assertThat(postForEntity.headers["foo"]!![0]).isEqualTo("bar")
|
||||||
@@ -76,9 +76,9 @@ open class HeadersToMessageTests {
|
|||||||
@org.springframework.boot.test.context.TestConfiguration
|
@org.springframework.boot.test.context.TestConfiguration
|
||||||
open class TestConfiguration {
|
open class TestConfiguration {
|
||||||
@Bean("string")
|
@Bean("string")
|
||||||
open fun functiono(): (message: Message<String?>) -> Message<String?> = { request: Message<String?> ->
|
open fun functiono(): (message: Message<String>) -> Message<String> = { request: Message<String> ->
|
||||||
val message =
|
val message: Message<String> =
|
||||||
MessageBuilder.withPayload(request.payload)
|
MessageBuilder.withPayload(request.payload as String)
|
||||||
.setHeader("X-Content-Type", "application/xml")
|
.setHeader("X-Content-Type", "application/xml")
|
||||||
.setHeader("foo", "bar").build()
|
.setHeader("foo", "bar").build()
|
||||||
message
|
message
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-parent</artifactId>
|
<artifactId>spring-cloud-function-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
<aws-lambda-events.version>3.14.0</aws-lambda-events.version>
|
<aws-lambda-events.version>3.14.0</aws-lambda-events.version>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
<aws-lambda-events.version>3.14.0</aws-lambda-events.version>
|
<aws-lambda-events.version>3.14.0</aws-lambda-events.version>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
<aws-lambda-events.version>3.14.0</aws-lambda-events.version>
|
<aws-lambda-events.version>3.14.0</aws-lambda-events.version>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
<aws-lambda-events.version>3.14.0</aws-lambda-events.version>
|
<aws-lambda-events.version>3.14.0</aws-lambda-events.version>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<name>function-sample-grpc-cloudevent</name>
|
<name>function-sample-grpc-cloudevent</name>
|
||||||
<description>Demo project for Spring Boot</description>
|
<description>Demo project for Spring Boot</description>
|
||||||
<properties>
|
<properties>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
<grpc.version>1.55.1</grpc.version>
|
<grpc.version>1.55.1</grpc.version>
|
||||||
</properties>
|
</properties>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
<reactor.version>3.1.2.RELEASE</reactor.version>
|
<reactor.version>3.1.2.RELEASE</reactor.version>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
<java.version>17</java.version>
|
<java.version>17</java.version>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<spring-cloud-function.version>4.3.1-SNAPSHOT</spring-cloud-function.version>
|
<spring-cloud-function.version>5.0.0-SNAPSHOT</spring-cloud-function.version>
|
||||||
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
<wrapper.version>1.0.31.RELEASE</wrapper.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-parent</artifactId>
|
<artifactId>spring-cloud-function-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-parent</artifactId>
|
<artifactId>spring-cloud-function-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class FunctionController {
|
|||||||
.getRequest()).getMultiFileMap();
|
.getRequest()).getMultiFileMap();
|
||||||
if (!CollectionUtils.isEmpty(multiFileMap)) {
|
if (!CollectionUtils.isEmpty(multiFileMap)) {
|
||||||
List<Message<MultipartFile>> files = multiFileMap.values().stream().flatMap(v -> v.stream())
|
List<Message<MultipartFile>> files = multiFileMap.values().stream().flatMap(v -> v.stream())
|
||||||
.map(file -> MessageBuilder.withPayload(file).copyHeaders(wrapper.getHeaders()).build())
|
.map(file -> MessageBuilder.withPayload(file).copyHeaders(wrapper.getHeaders().asMultiValueMap()).build())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
FunctionInvocationWrapper function = wrapper.getFunction();
|
FunctionInvocationWrapper function = wrapper.getFunction();
|
||||||
|
|
||||||
@@ -199,7 +199,7 @@ public class FunctionController {
|
|||||||
wrapper.getHeaders().addAll(key, Arrays.asList(request.getHeaderValues(key)));
|
wrapper.getHeaders().addAll(key, Arrays.asList(request.getHeaderValues(key)));
|
||||||
}
|
}
|
||||||
|
|
||||||
HttpHeaders headers = HttpHeaders.writableHttpHeaders(wrapper.getHeaders());
|
HttpHeaders headers = HttpHeaders.copyOf(wrapper.getHeaders());
|
||||||
headers.set("uri", ((ServletWebRequest) request).getRequest().getRequestURI());
|
headers.set("uri", ((ServletWebRequest) request).getRequest().getRequestURI());
|
||||||
|
|
||||||
String argument = (String) request.getAttribute(WebRequestConstants.ARGUMENT,
|
String argument = (String) request.getAttribute(WebRequestConstants.ARGUMENT,
|
||||||
|
|||||||
@@ -65,8 +65,8 @@ public class HttpSupplier implements Supplier<Flux<?>> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Flux<?> get(WebClient client) {
|
private Flux<?> get(WebClient client) {
|
||||||
Flux<?> result = client.get().uri(this.props.getSource().getUrl()).exchange()
|
Flux<?> result = client.get().uri(this.props.getSource().getUrl()).exchangeToMono(this::transform)
|
||||||
.flatMap(this::transform).repeat();
|
.repeat();
|
||||||
if (this.props.isDebug()) {
|
if (this.props.isDebug()) {
|
||||||
result = result.log();
|
result = result.log();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -192,11 +192,11 @@ public class SupplierExporter implements SmartLifecycle {
|
|||||||
}
|
}
|
||||||
Mono<ClientResponse> result = this.client.post().uri(uri)
|
Mono<ClientResponse> result = this.client.post().uri(uri)
|
||||||
.headers(headers -> headers(headers, destination, value)).bodyValue(body)
|
.headers(headers -> headers(headers, destination, value)).bodyValue(body)
|
||||||
.exchange()
|
.exchangeToMono(response -> {
|
||||||
.doOnNext(response -> {
|
|
||||||
if (this.debug) {
|
if (this.debug) {
|
||||||
logger.debug("Response STATUS: " + response.statusCode());
|
logger.debug("Response STATUS: " + response.statusCode());
|
||||||
}
|
}
|
||||||
|
return Mono.just(response);
|
||||||
});
|
});
|
||||||
if (this.debug) {
|
if (this.debug) {
|
||||||
result = result.log();
|
result = result.log();
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public final class HeaderUtils {
|
|||||||
for (String name : headers.keySet()) {
|
for (String name : headers.keySet()) {
|
||||||
Object value = headers.get(name);
|
Object value = headers.get(name);
|
||||||
name = name.toLowerCase(Locale.ROOT);
|
name = name.toLowerCase(Locale.ROOT);
|
||||||
if (!IGNORED.containsKey(name) && !ignoredHeders.contains(name)) {
|
if (!IGNORED.containsHeader(name) && !ignoredHeders.contains(name)) {
|
||||||
Collection<?> values = multi(value);
|
Collection<?> values = multi(value);
|
||||||
for (Object object : values) {
|
for (Object object : values) {
|
||||||
result.set(name, object.toString());
|
result.set(name, object.toString());
|
||||||
@@ -80,10 +80,10 @@ public final class HeaderUtils {
|
|||||||
|
|
||||||
public static HttpHeaders sanitize(HttpHeaders request, List<String> ignoredHeders, List<String> requestOnlyHeaders) {
|
public static HttpHeaders sanitize(HttpHeaders request, List<String> ignoredHeders, List<String> requestOnlyHeaders) {
|
||||||
HttpHeaders result = new HttpHeaders();
|
HttpHeaders result = new HttpHeaders();
|
||||||
for (String name : request.keySet()) {
|
for (String name : request.headerNames()) {
|
||||||
List<String> value = request.get(name);
|
List<String> value = request.get(name);
|
||||||
name = name.toLowerCase(Locale.ROOT);
|
name = name.toLowerCase(Locale.ROOT);
|
||||||
if (!IGNORED.containsKey(name) && !REQUEST_ONLY.containsKey(name) && !ignoredHeders.contains(name) && !requestOnlyHeaders.contains(name)) {
|
if (!IGNORED.containsHeader(name) && !REQUEST_ONLY.containsHeader(name) && !ignoredHeders.contains(name) && !requestOnlyHeaders.contains(name)) {
|
||||||
result.put(name, value);
|
result.put(name, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -97,7 +97,7 @@ public final class HeaderUtils {
|
|||||||
|
|
||||||
public static MessageHeaders fromHttp(HttpHeaders headers) {
|
public static MessageHeaders fromHttp(HttpHeaders headers) {
|
||||||
Map<String, Object> map = new LinkedHashMap<>();
|
Map<String, Object> map = new LinkedHashMap<>();
|
||||||
for (String name : headers.keySet()) {
|
for (String name : headers.headerNames()) {
|
||||||
Collection<?> values = multi(headers.get(name));
|
Collection<?> values = multi(headers.get(name));
|
||||||
name = name.toLowerCase(Locale.ROOT);
|
name = name.toLowerCase(Locale.ROOT);
|
||||||
Object value = values == null ? null
|
Object value = values == null ? null
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public class HeadersToMessageTests {
|
|||||||
.contentType(MediaType.APPLICATION_JSON)
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
.body("{\"name\":\"Bob\",\"age\":25}"), String.class);
|
.body("{\"name\":\"Bob\",\"age\":25}"), String.class);
|
||||||
assertThat(postForEntity.getBody()).isEqualTo("{\"name\":\"Bob\",\"age\":25}");
|
assertThat(postForEntity.getBody()).isEqualTo("{\"name\":\"Bob\",\"age\":25}");
|
||||||
assertThat(postForEntity.getHeaders().containsKey("x-content-type")).isTrue();
|
assertThat(postForEntity.getHeaders().containsHeader("x-content-type")).isTrue();
|
||||||
assertThat(postForEntity.getHeaders().get("x-content-type").get(0))
|
assertThat(postForEntity.getHeaders().get("x-content-type").get(0))
|
||||||
.isEqualTo("application/xml");
|
.isEqualTo("application/xml");
|
||||||
assertThat(postForEntity.getHeaders().get("foo").get(0)).isEqualTo("bar");
|
assertThat(postForEntity.getHeaders().get("foo").get(0)).isEqualTo("bar");
|
||||||
@@ -69,7 +69,7 @@ public class HeadersToMessageTests {
|
|||||||
postForEntity = this.rest.postForEntity(new URI("/functions/string"),
|
postForEntity = this.rest.postForEntity(new URI("/functions/string"),
|
||||||
"{\"name\":\"Bob\",\"age\":25}", String.class);
|
"{\"name\":\"Bob\",\"age\":25}", String.class);
|
||||||
assertThat(postForEntity.getBody()).isEqualTo("{\"name\":\"Bob\",\"age\":25}");
|
assertThat(postForEntity.getBody()).isEqualTo("{\"name\":\"Bob\",\"age\":25}");
|
||||||
assertThat(postForEntity.getHeaders().containsKey("x-content-type")).isTrue();
|
assertThat(postForEntity.getHeaders().containsHeader("x-content-type")).isTrue();
|
||||||
assertThat(postForEntity.getHeaders().get("x-content-type").get(0))
|
assertThat(postForEntity.getHeaders().get("x-content-type").get(0))
|
||||||
.isEqualTo("application/xml");
|
.isEqualTo("application/xml");
|
||||||
assertThat(postForEntity.getHeaders().get("foo").get(0)).isEqualTo("bar");
|
assertThat(postForEntity.getHeaders().get("foo").get(0)).isEqualTo("bar");
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ public class HttpPostIntegrationTests {
|
|||||||
.post(new URI("/messages")).contentType(MediaType.APPLICATION_JSON)
|
.post(new URI("/messages")).contentType(MediaType.APPLICATION_JSON)
|
||||||
.header("x-foo", "bar").body("[\"foo\",\"bar\"]"), String.class);
|
.header("x-foo", "bar").body("[\"foo\",\"bar\"]"), String.class);
|
||||||
assertThat(result.getHeaders().getFirst("x-foo")).isEqualTo("bar");
|
assertThat(result.getHeaders().getFirst("x-foo")).isEqualTo("bar");
|
||||||
assertThat(result.getHeaders()).doesNotContainKey("id");
|
assertThat(result.getHeaders().headerNames()).doesNotContain("id");
|
||||||
assertThat(result.getBody()).isEqualTo("[\"(FOO)\",\"(BAR)\"]");
|
assertThat(result.getBody()).isEqualTo("[\"(FOO)\",\"(BAR)\"]");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public class FunctionEndpointInitializerTests {
|
|||||||
headers.set("Accept", "application/json");
|
headers.set("Accept", "application/json");
|
||||||
HttpEntity entity = new HttpEntity(headers);
|
HttpEntity entity = new HttpEntity(headers);
|
||||||
|
|
||||||
String urlTemplate = UriComponentsBuilder.fromHttpUrl("http://localhost:" + port + "/nullPayload")
|
String urlTemplate = UriComponentsBuilder.fromUriString("http://localhost:" + port + "/nullPayload")
|
||||||
.queryParam("fname", "Jim").queryParam("lname", "Lahey").encode().toUriString();
|
.queryParam("fname", "Jim").queryParam("lname", "Lahey").encode().toUriString();
|
||||||
|
|
||||||
ResponseEntity<String> response = testRestTemplate.exchange(urlTemplate, HttpMethod.GET, entity, String.class);
|
ResponseEntity<String> response = testRestTemplate.exchange(urlTemplate, HttpMethod.GET, entity, String.class);
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public class HeadersToMessageTests {
|
|||||||
.contentType(MediaType.APPLICATION_JSON)
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
.body("{\"name\":\"Bob\",\"age\":25}"), String.class);
|
.body("{\"name\":\"Bob\",\"age\":25}"), String.class);
|
||||||
assertThat(postForEntity.getBody()).isEqualTo("{\"name\":\"Bob\",\"age\":25}");
|
assertThat(postForEntity.getBody()).isEqualTo("{\"name\":\"Bob\",\"age\":25}");
|
||||||
assertThat(postForEntity.getHeaders().containsKey("x-content-type")).isTrue();
|
assertThat(postForEntity.getHeaders().headerNames()).contains("x-content-type");
|
||||||
assertThat(postForEntity.getHeaders().get("x-content-type").get(0))
|
assertThat(postForEntity.getHeaders().get("x-content-type").get(0))
|
||||||
.isEqualTo("application/xml");
|
.isEqualTo("application/xml");
|
||||||
assertThat(postForEntity.getHeaders().get("foo").get(0)).isEqualTo("bar");
|
assertThat(postForEntity.getHeaders().get("foo").get(0)).isEqualTo("bar");
|
||||||
@@ -75,7 +75,7 @@ public class HeadersToMessageTests {
|
|||||||
.body("{\"name\":\"Bob\",\"age\":25}"), String.class);
|
.body("{\"name\":\"Bob\",\"age\":25}"), String.class);
|
||||||
assertThat(postForEntity.getBody())
|
assertThat(postForEntity.getBody())
|
||||||
.isEqualTo("{\"name\":\"Bob\",\"age\":25,\"foo\":\"bar\"}");
|
.isEqualTo("{\"name\":\"Bob\",\"age\":25,\"foo\":\"bar\"}");
|
||||||
assertThat(postForEntity.getHeaders().containsKey("x-context-type")).isTrue();
|
assertThat(postForEntity.getHeaders().headerNames()).contains("x-context-type");
|
||||||
assertThat(postForEntity.getHeaders().get("x-context-type").get(0))
|
assertThat(postForEntity.getHeaders().get("x-context-type").get(0))
|
||||||
.isEqualTo("rubbish");
|
.isEqualTo("rubbish");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ public class HttpPostIntegrationTests {
|
|||||||
.accept(MediaType.valueOf("application/stream+json"))
|
.accept(MediaType.valueOf("application/stream+json"))
|
||||||
.header("x-foo", "bar").body("[\"foo\",\"bar\"]"), String.class);
|
.header("x-foo", "bar").body("[\"foo\",\"bar\"]"), String.class);
|
||||||
assertThat(result.getHeaders().getFirst("x-foo")).isEqualTo("bar");
|
assertThat(result.getHeaders().getFirst("x-foo")).isEqualTo("bar");
|
||||||
assertThat(result.getHeaders()).doesNotContainKey("id");
|
assertThat(result.getHeaders().headerNames()).doesNotContain("id");
|
||||||
assertThat(result.getBody()).isEqualTo("[\"(FOO)\",\"(BAR)\"]");
|
assertThat(result.getBody()).isEqualTo("[\"(FOO)\",\"(BAR)\"]");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,7 +157,7 @@ public class HttpPostIntegrationTests {
|
|||||||
.accept(MediaType.valueOf("application/stream+json"))
|
.accept(MediaType.valueOf("application/stream+json"))
|
||||||
.body("[\"foo\",\"bar\"]"), String.class);
|
.body("[\"foo\",\"bar\"]"), String.class);
|
||||||
assertThat(result.getHeaders().getFirst("foo")).isEqualTo("bar");
|
assertThat(result.getHeaders().getFirst("foo")).isEqualTo("bar");
|
||||||
assertThat(result.getHeaders()).doesNotContainKey("id");
|
assertThat(result.getHeaders().headerNames()).doesNotContain("id");
|
||||||
assertThat(result.getBody()).isEqualTo("[\"(FOO)\",\"(BAR)\"]");
|
assertThat(result.getBody()).isEqualTo("[\"(FOO)\",\"(BAR)\"]");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,19 +72,18 @@ public class RoutingFunctionTests {
|
|||||||
public void testFunctionMessage() throws Exception {
|
public void testFunctionMessage() throws Exception {
|
||||||
|
|
||||||
HttpEntity<String> postForEntity = this.rest
|
HttpEntity<String> postForEntity = this.rest
|
||||||
.exchange(RequestEntity.post(new URI("/functions/" + RoutingFunction.FUNCTION_NAME))
|
.exchange(RequestEntity.post(new URI("/functions/" + RoutingFunction.FUNCTION_NAME))
|
||||||
.contentType(MediaType.APPLICATION_JSON)
|
.contentType(MediaType.APPLICATION_JSON)
|
||||||
.header("spring.cloud.function.definition", "employee")
|
.header("spring.cloud.function.definition", "employee")
|
||||||
.header("abc", "abc")
|
.header("abc", "abc")
|
||||||
.header("xyz", "xyz")
|
.header("xyz", "xyz")
|
||||||
.body("{\"name\":\"Bob\",\"age\":25}"), String.class);
|
.body("{\"name\":\"Bob\",\"age\":25}"), String.class);
|
||||||
assertThat(postForEntity.getBody()).isEqualTo("{\"name\":\"Bob\",\"age\":25}");
|
assertThat(postForEntity.getBody()).isEqualTo("{\"name\":\"Bob\",\"age\":25}");
|
||||||
assertThat(postForEntity.getHeaders().containsKey("x-content-type")).isTrue();
|
assertThat(postForEntity.getHeaders().headerNames()).contains("x-content-type");
|
||||||
assertThat(postForEntity.getHeaders().get("x-content-type").get(0))
|
assertThat(postForEntity.getHeaders().get("x-content-type").get(0))
|
||||||
.isEqualTo("application/xml");
|
.isEqualTo("application/xml");
|
||||||
assertThat(postForEntity.getHeaders().containsKey("spring.cloud.function.definition")).isTrue();
|
assertThat(postForEntity.getHeaders().headerNames()).contains("spring.cloud.function.definition")
|
||||||
assertThat(postForEntity.getHeaders().containsKey("abc")).isFalse();
|
.doesNotContain("abc", "xyz");
|
||||||
assertThat(postForEntity.getHeaders().containsKey("xyz")).isFalse();
|
|
||||||
assertThat(postForEntity.getHeaders().get("foo").get(0)).isEqualTo("bar");
|
assertThat(postForEntity.getHeaders().get("foo").get(0)).isEqualTo("bar");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-parent</artifactId>
|
<artifactId>spring-cloud-function-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
<relativePath>..</relativePath>
|
<relativePath>..</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>spring-cloud-starter-function-web</artifactId>
|
<artifactId>spring-cloud-starter-function-web</artifactId>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.cloud</groupId>
|
<groupId>org.springframework.cloud</groupId>
|
||||||
<artifactId>spring-cloud-function-parent</artifactId>
|
<artifactId>spring-cloud-function-parent</artifactId>
|
||||||
<version>4.3.1-SNAPSHOT</version>
|
<version>5.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>spring-cloud-starter-function-webflux</artifactId>
|
<artifactId>spring-cloud-starter-function-webflux</artifactId>
|
||||||
<name>spring-cloud-starter-function-webflux</name>
|
<name>spring-cloud-starter-function-webflux</name>
|
||||||
|
|||||||
Reference in New Issue
Block a user