diff --git a/spring-boot-docs/src/main/groovy/generateTestSlicesTable.groovy b/spring-boot-docs/src/main/groovy/generateTestSlicesTable.groovy index 3b3928dabd..7d1cb91c3d 100644 --- a/spring-boot-docs/src/main/groovy/generateTestSlicesTable.groovy +++ b/spring-boot-docs/src/main/groovy/generateTestSlicesTable.groovy @@ -76,12 +76,21 @@ TestSlice createTestSlice(Properties springFactories, ClassMetadata classMetadat } Set getImportedAutoConfiguration(Properties springFactories, ClassMetadata classMetadata, AnnotationMetadata annotationMetadata) { + Set importers = findMetaImporters(annotationMetadata) + if (annotationMetadata.isAnnotated('org.springframework.boot.autoconfigure.ImportAutoConfiguration')) { + importers.add(annotationMetadata.className) + } + importers + .collect { autoConfigurationImporter -> + StringUtils.commaDelimitedListToSet(springFactories.get(autoConfigurationImporter)) + }.flatten() +} + +Set findMetaImporters(AnnotationMetadata annotationMetadata) { annotationMetadata.annotationTypes .findAll { annotationType -> isAutoConfigurationImporter(annotationType, annotationMetadata) - }.collect { autoConfigurationImporter -> - StringUtils.commaDelimitedListToSet(springFactories.get(autoConfigurationImporter)) - }.flatten() + } } boolean isAutoConfigurationImporter(String annotationType, AnnotationMetadata metadata) { diff --git a/spring-boot-samples/spring-boot-sample-devtools/src/main/java/sample/devtools/MyController.java b/spring-boot-samples/spring-boot-sample-devtools/src/main/java/sample/devtools/MyController.java index b49d679f51..4742c9d7f0 100644 --- a/spring-boot-samples/spring-boot-sample-devtools/src/main/java/sample/devtools/MyController.java +++ b/spring-boot-samples/spring-boot-sample-devtools/src/main/java/sample/devtools/MyController.java @@ -18,6 +18,7 @@ package sample.devtools; import java.util.Date; +import javax.annotation.PostConstruct; import javax.servlet.http.HttpSession; import org.springframework.stereotype.Controller; @@ -28,6 +29,11 @@ import org.springframework.web.servlet.ModelAndView; @Controller public class MyController { + @PostConstruct + public void slowRestart() throws InterruptedException { + Thread.sleep(5000); + } + @GetMapping("/") public ModelAndView get(HttpSession session) { Object sessionVar = session.getAttribute("var"); diff --git a/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/json/JsonTest.java b/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/json/JsonTest.java index 7f9da0a1a5..abc8ebf59e 100644 --- a/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/json/JsonTest.java +++ b/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/json/JsonTest.java @@ -23,6 +23,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.autoconfigure.OverrideAutoConfiguration; import org.springframework.boot.test.autoconfigure.core.AutoConfigureCache; @@ -62,6 +63,7 @@ import org.springframework.test.context.BootstrapWith; @AutoConfigureCache @AutoConfigureJson @AutoConfigureJsonTesters +@ImportAutoConfiguration public @interface JsonTest { /** diff --git a/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/orm/jpa/DataJpaTest.java b/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/orm/jpa/DataJpaTest.java index 2f18ed0516..8d29513ead 100644 --- a/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/orm/jpa/DataJpaTest.java +++ b/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/orm/jpa/DataJpaTest.java @@ -23,6 +23,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.autoconfigure.OverrideAutoConfiguration; import org.springframework.boot.test.autoconfigure.core.AutoConfigureCache; @@ -70,6 +71,7 @@ import org.springframework.transaction.annotation.Transactional; @AutoConfigureDataJpa @AutoConfigureTestDatabase @AutoConfigureTestEntityManager +@ImportAutoConfiguration public @interface DataJpaTest { /** diff --git a/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/client/RestClientTest.java b/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/client/RestClientTest.java index 1f5dee4850..bc66880ebc 100644 --- a/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/client/RestClientTest.java +++ b/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/client/RestClientTest.java @@ -23,6 +23,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.autoconfigure.OverrideAutoConfiguration; import org.springframework.boot.test.autoconfigure.core.AutoConfigureCache; @@ -68,6 +69,7 @@ import org.springframework.web.client.RestTemplate; @AutoConfigureCache @AutoConfigureWebClient @AutoConfigureMockRestServiceServer +@ImportAutoConfiguration public @interface RestClientTest { /** diff --git a/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTest.java b/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTest.java index f65b540104..33902a72a3 100644 --- a/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTest.java +++ b/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTest.java @@ -23,6 +23,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.autoconfigure.OverrideAutoConfiguration; import org.springframework.boot.test.autoconfigure.core.AutoConfigureCache; @@ -75,6 +76,7 @@ import org.springframework.test.web.servlet.MockMvc; @AutoConfigureCache @AutoConfigureWebMvc @AutoConfigureMockMvc +@ImportAutoConfiguration public @interface WebMvcTest { /**