From 4c43d6626450d1d2f43f460c5377ac3ebce3f463 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 | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) 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 36c0dd555..e1e5b62df 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 @@ -38,9 +38,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; @@ -55,9 +55,6 @@ import org.springframework.core.ResolvableType; import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; 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. @@ -94,13 +91,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); @@ -115,9 +110,9 @@ public class KotlinLambdaToFunctionAutoConfiguration { ((BeanDefinitionRegistry) beanFactory).registerBeanDefinition(beanDefinitionName + FunctionRegistration.REGISTRATION_NAME_SUFFIX, cbd); } } - } } + }; }