Commit 8c220d6c authored by Andy Wilkinson's avatar Andy Wilkinson

Merge pull request #25400 from cprayer

* gh-25400:
  Polish "Add Bootstrapper initialize method to fix typo"
  Add Bootstrapper initialize method to fix typo

Closes gh-25400
parents ddf75f09 f9ef05f7
...@@ -31,6 +31,17 @@ public interface Bootstrapper { ...@@ -31,6 +31,17 @@ public interface Bootstrapper {
* Initialize the given {@link BootstrapRegistry} with any required registrations. * Initialize the given {@link BootstrapRegistry} with any required registrations.
* @param registry the registry to initialize * @param registry the registry to initialize
*/ */
default void initialize(BootstrapRegistry registry) {
intitialize(registry);
}
/**
* Initialize the given {@link BootstrapRegistry} with any required registrations.
* @param registry the registry to initialize
* @deprecated since 2.4.4 in favor of
* {@link Bootstrapper#initialize(BootstrapRegistry)}
*/
@Deprecated
void intitialize(BootstrapRegistry registry); void intitialize(BootstrapRegistry registry);
} }
...@@ -349,7 +349,7 @@ public class SpringApplication { ...@@ -349,7 +349,7 @@ public class SpringApplication {
private DefaultBootstrapContext createBootstrapContext() { private DefaultBootstrapContext createBootstrapContext() {
DefaultBootstrapContext bootstrapContext = new DefaultBootstrapContext(); DefaultBootstrapContext bootstrapContext = new DefaultBootstrapContext();
this.bootstrappers.forEach((initializer) -> initializer.intitialize(bootstrapContext)); this.bootstrappers.forEach((initializer) -> initializer.initialize(bootstrapContext));
return bootstrapContext; return bootstrapContext;
} }
......
...@@ -1247,6 +1247,29 @@ class SpringApplicationTests { ...@@ -1247,6 +1247,29 @@ class SpringApplicationTests {
assertThat(applicationContext.getBean("test")).isEqualTo("boot"); 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 <S extends AvailabilityState> ArgumentMatcher<ApplicationEvent> isAvailabilityChangeEventWithState( private <S extends AvailabilityState> ArgumentMatcher<ApplicationEvent> isAvailabilityChangeEventWithState(
S state) { S state) {
return (argument) -> (argument instanceof AvailabilityChangeEvent<?>) return (argument) -> (argument instanceof AvailabilityChangeEvent<?>)
...@@ -1720,4 +1743,35 @@ class SpringApplicationTests { ...@@ -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;
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment