diff --git a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/AWSLambdaUtils.java b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/AWSLambdaUtils.java index 43311f094..fdb099255 100644 --- a/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/AWSLambdaUtils.java +++ b/spring-cloud-function-adapters/spring-cloud-function-adapter-aws/src/main/java/org/springframework/cloud/function/adapter/aws/AWSLambdaUtils.java @@ -46,6 +46,9 @@ public final class AWSLambdaUtils { static final String AWS_EVENT = "aws-event"; + /** + * The name of the headers that stores AWS Context object. + */ public static final String AWS_CONTEXT = "aws-context"; private AWSLambdaUtils() { diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistry.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistry.java index 8599b1700..bc6132b93 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistry.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/BeanFactoryAwareFunctionRegistry.java @@ -116,8 +116,9 @@ public class BeanFactoryAwareFunctionRegistry extends SimpleFunctionRegistry imp functionDefinition = StringUtils.hasText(functionDefinition) ? functionDefinition : this.applicationContext.getEnvironment().getProperty(FunctionProperties.FUNCTION_DEFINITION, ""); - - functionDefinition = this.normalizeFunctionDefinition(functionDefinition); + if (!this.applicationContext.containsBean(functionDefinition) || !KotlinDetector.isKotlinType(this.applicationContext.getBean(functionDefinition).getClass())) { + functionDefinition = this.normalizeFunctionDefinition(functionDefinition); + } if (!StringUtils.hasText(functionDefinition)) { logger.info("Can't determine default function definition. Please " + "use 'spring.cloud.function.definition' property to explicitly define it."); diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java index 57d4c69cf..4211b0af2 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/catalog/SimpleFunctionRegistry.java @@ -784,7 +784,7 @@ public class SimpleFunctionRegistry implements FunctionRegistry, FunctionInspect } else { Map headersMap = new HashMap<>(((Message) result).getHeaders()); - this.sanitizeHeaders(((Message) result).getHeaders()).forEach((k, v) -> headersMap.putIfAbsent(k, v)); + this.sanitizeHeaders(((Message) input).getHeaders()).forEach((k, v) -> headersMap.putIfAbsent(k, v)); result = MessageBuilder.withPayload(((Message) result).getPayload()).copyHeaders(headersMap).build(); } }