From 202d617edde63985ac3c2508d4bfdf912cdf000c Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Mon, 2 Mar 2020 15:14:48 +0100 Subject: [PATCH] Add Message and MessageConverter to the list of classes loaded by deployer --- .../function/example/SimpleFunctionAppApplication.java | 10 ++++++++-- .../function/deployer/FunctionArchiveDeployer.java | 6 +++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/spring-cloud-function-deployer/src/it/bootapp-with-scf/src/main/java/function/example/SimpleFunctionAppApplication.java b/spring-cloud-function-deployer/src/it/bootapp-with-scf/src/main/java/function/example/SimpleFunctionAppApplication.java index ed8f694ef..63e0719c3 100644 --- a/spring-cloud-function-deployer/src/it/bootapp-with-scf/src/main/java/function/example/SimpleFunctionAppApplication.java +++ b/spring-cloud-function-deployer/src/it/bootapp-with-scf/src/main/java/function/example/SimpleFunctionAppApplication.java @@ -5,6 +5,8 @@ import java.util.function.Function; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; +import org.springframework.messaging.Message; +import org.springframework.messaging.support.MessageBuilder; @SpringBootApplication public class SimpleFunctionAppApplication { @@ -14,9 +16,13 @@ public class SimpleFunctionAppApplication { } @Bean - public Function uppercase() { + public Function, Message> uppercase() { System.out.println("==> CREATING 'uppercase' FUNCTION bean"); - return new UpperCaseFunction(); + return message -> { + UpperCaseFunction func = new UpperCaseFunction(); + String result = func.apply(message.getPayload()); + return MessageBuilder.withPayload(result).build(); + }; } @Bean diff --git a/spring-cloud-function-deployer/src/main/java/org/springframework/cloud/function/deployer/FunctionArchiveDeployer.java b/spring-cloud-function-deployer/src/main/java/org/springframework/cloud/function/deployer/FunctionArchiveDeployer.java index 1f2f588c8..8543ce3d2 100644 --- a/spring-cloud-function-deployer/src/main/java/org/springframework/cloud/function/deployer/FunctionArchiveDeployer.java +++ b/spring-cloud-function-deployer/src/main/java/org/springframework/cloud/function/deployer/FunctionArchiveDeployer.java @@ -162,9 +162,13 @@ class FunctionArchiveDeployer extends JarLauncher { private boolean shouldLoadViaDeployerLoader(String name) { return name.startsWith("org.reactivestreams") - || name.startsWith("reactor."); + || name.startsWith("reactor.") + || name.startsWith("org.springframework.messaging.Message") + || name.startsWith("org.springframework.messaging.converter.MessageConverter"); } + + private String discoverFunctionClassName(FunctionDeployerProperties functionProperties) { try { return StringUtils.hasText(functionProperties.getFunctionClass())