From 971a7194d8292fab345b9438bfda8030749f38d3 Mon Sep 17 00:00:00 2001 From: Rob Baily Date: Mon, 28 Mar 2016 09:46:31 -0400 Subject: [PATCH 1/2] Add check for non empty list of factories It was seeen that if a different plugin was used to package Spring Boot that the project would load but no autoconfiguration actually took place and many features were mysteriously not working. Adding a check to ensure that some factories are always loaded as this is expected. Closes gh-5465 --- .../autoconfigure/EnableAutoConfigurationImportSelector.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/EnableAutoConfigurationImportSelector.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/EnableAutoConfigurationImportSelector.java index cdb012b4d1..2513f2e84c 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/EnableAutoConfigurationImportSelector.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/EnableAutoConfigurationImportSelector.java @@ -140,8 +140,11 @@ public class EnableAutoConfigurationImportSelector */ protected List getCandidateConfigurations(AnnotationMetadata metadata, AnnotationAttributes attributes) { - return SpringFactoriesLoader.loadFactoryNames( + List configurations = SpringFactoriesLoader.loadFactoryNames( getSpringFactoriesLoaderFactoryClass(), getBeanClassLoader()); + Assert.notEmpty(configurations, + "No auto configuration factories available. Please check your packaging to assure that the META-INF/spring.factories file is correct."); + return configurations; } /** From 33967927dbced73deae0e15b90c8f3b7d88d5439 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Tue, 29 Mar 2016 13:04:28 +0200 Subject: [PATCH 2/2] Polish contribution Closes gh-5512 --- .../autoconfigure/EnableAutoConfigurationImportSelector.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/EnableAutoConfigurationImportSelector.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/EnableAutoConfigurationImportSelector.java index 2513f2e84c..0583df6c4d 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/EnableAutoConfigurationImportSelector.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/EnableAutoConfigurationImportSelector.java @@ -143,7 +143,8 @@ public class EnableAutoConfigurationImportSelector List configurations = SpringFactoriesLoader.loadFactoryNames( getSpringFactoriesLoaderFactoryClass(), getBeanClassLoader()); Assert.notEmpty(configurations, - "No auto configuration factories available. Please check your packaging to assure that the META-INF/spring.factories file is correct."); + "No auto configuration classes found in META-INF/spring.factories. If you" + + "are using a custom packaging, make sure that file is correct."); return configurations; }