diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java index 5137ec68505..3b3db3a82f6 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java @@ -1247,6 +1247,29 @@ class SpringApplicationTests { assertThat(applicationContext.getBean("test")).isEqualTo("boot"); } + @Test + void whenABootstrapperImplementsOnlyTheOldMethodThenItIsCalled() { + SpringApplication application = new SpringApplication(ExampleConfig.class); + application.setWebApplicationType(WebApplicationType.NONE); + OnlyOldMethodTestBootstrapper bootstrapper = new OnlyOldMethodTestBootstrapper(); + application.addBootstrapper(bootstrapper); + try (ConfigurableApplicationContext applicationContext = application.run()) { + assertThat(bootstrapper.intitialized).isTrue(); + } + } + + @Test + void whenABootstrapperImplementsTheOldMethodAndTheNewMethodThenOnlyTheNewMethodIsCalled() { + SpringApplication application = new SpringApplication(ExampleConfig.class); + application.setWebApplicationType(WebApplicationType.NONE); + BothMethodsTestBootstrapper bootstrapper = new BothMethodsTestBootstrapper(); + application.addBootstrapper(bootstrapper); + try (ConfigurableApplicationContext applicationContext = application.run()) { + assertThat(bootstrapper.intitialized).isFalse(); + assertThat(bootstrapper.initialized).isTrue(); + } + } + private ArgumentMatcher isAvailabilityChangeEventWithState( S state) { return (argument) -> (argument instanceof AvailabilityChangeEvent) @@ -1720,4 +1743,35 @@ class SpringApplicationTests { } + static class OnlyOldMethodTestBootstrapper implements Bootstrapper { + + private boolean intitialized; + + @Override + @SuppressWarnings("deprecation") + public void intitialize(BootstrapRegistry registry) { + this.intitialized = true; + } + + } + + static class BothMethodsTestBootstrapper implements Bootstrapper { + + private boolean intitialized; + + private boolean initialized; + + @Override + @SuppressWarnings("deprecation") + public void intitialize(BootstrapRegistry registry) { + this.intitialized = true; + } + + @Override + public void initialize(BootstrapRegistry registry) { + this.initialized = true; + } + + } + }