From e87e03c539b13a709a4019369a396949db3ac4e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deleuze?= Date: Tue, 8 Dec 2020 00:06:19 +0100 Subject: [PATCH] Refine ConfigurationClassPostProcessor behavior in native images This commit refines ConfigurationClassPostProcessor behavior in native images by skipping configuration classes enhancement instead of raising an error. See spring-projects-experimental/spring-graalvm-native#248 for more details. Closes gh-26236 --- .../context/annotation/ConfigurationClassPostProcessor.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java index c1ca0616e4d..449c48fa87d 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java @@ -427,15 +427,11 @@ public class ConfigurationClassPostProcessor implements BeanDefinitionRegistryPo configBeanDefs.put(beanName, (AbstractBeanDefinition) beanDef); } } - if (configBeanDefs.isEmpty()) { + if (configBeanDefs.isEmpty() || IN_NATIVE_IMAGE) { // nothing to enhance -> return immediately enhanceConfigClasses.end(); return; } - if (IN_NATIVE_IMAGE) { - throw new BeanDefinitionStoreException("@Configuration classes need to be marked as " + - "proxyBeanMethods=false. Found: " + configBeanDefs.keySet()); - } ConfigurationClassEnhancer enhancer = new ConfigurationClassEnhancer(); for (Map.Entry entry : configBeanDefs.entrySet()) {