From 11e528f38a37296b65675b24444a2e614b22f875 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Thu, 28 Oct 2021 08:45:15 +0200 Subject: [PATCH] GH-758 Change kotlinToFunctionTransformer to SmartInitializingSingleton Resolves #758 --- .../KotlinLambdaToFunctionAutoConfiguration.java | 13 +++++-------- .../function-sample-grpc-cloudevent/HELP.md | 9 +++++++++ 2 files changed, 14 insertions(+), 8 deletions(-) create mode 100644 spring-cloud-function-samples/function-sample-grpc-cloudevent/HELP.md diff --git a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/KotlinLambdaToFunctionAutoConfiguration.java b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/KotlinLambdaToFunctionAutoConfiguration.java index 18d131af5..188788cdb 100644 --- a/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/KotlinLambdaToFunctionAutoConfiguration.java +++ b/spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/config/KotlinLambdaToFunctionAutoConfiguration.java @@ -37,9 +37,9 @@ import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware; import org.springframework.beans.factory.BeanNameAware; import org.springframework.beans.factory.FactoryBean; +import org.springframework.beans.factory.SmartInitializingSingleton; import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition; import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.config.ConstructorArgumentValues; import org.springframework.beans.factory.support.BeanDefinitionRegistry; @@ -51,7 +51,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.ResolvableType; import org.springframework.util.ObjectUtils; - /** * Configuration class which defines the required infrastructure to bootstrap Kotlin * lambdas as invocable functions within the context of the framework. @@ -75,13 +74,11 @@ public class KotlinLambdaToFunctionAutoConfiguration { * @return the bean factory post processor */ @Bean - public BeanFactoryPostProcessor kotlinToFunctionTransformerOld() { - return new BeanFactoryPostProcessor() { + public SmartInitializingSingleton kotlinToFunctionTransformer(ConfigurableListableBeanFactory beanFactory) { + return new SmartInitializingSingleton() { @Override - public void postProcessBeanFactory( - ConfigurableListableBeanFactory beanFactory) throws BeansException { - + public void afterSingletonsInstantiated() { String[] beanDefinitionNames = beanFactory.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanDefinitionName); @@ -96,9 +93,9 @@ public class KotlinLambdaToFunctionAutoConfiguration { ((BeanDefinitionRegistry) beanFactory).registerBeanDefinition(beanDefinitionName + FunctionRegistration.REGISTRATION_NAME_SUFFIX, cbd); } } - } } + }; } diff --git a/spring-cloud-function-samples/function-sample-grpc-cloudevent/HELP.md b/spring-cloud-function-samples/function-sample-grpc-cloudevent/HELP.md new file mode 100644 index 000000000..b9bdb8034 --- /dev/null +++ b/spring-cloud-function-samples/function-sample-grpc-cloudevent/HELP.md @@ -0,0 +1,9 @@ +# Getting Started + +### Reference Documentation +For further reference, please consider the following sections: + +* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) +* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.6.0-SNAPSHOT/maven-plugin/reference/html/) +* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.6.0-SNAPSHOT/maven-plugin/reference/html/#build-image) +