Commit 71fd474e authored by Dave Syer's avatar Dave Syer

Ensure ApplicationContextInitializers are not overwritten

SpringApplicationBuilder has to be careful not to overwrite the
default initializers if user calls its initializers() method.

Fixes gh-120.
parent 79495e7a
......@@ -481,7 +481,8 @@ public class SpringApplicationBuilder {
target.addAll(Arrays.asList(initializers));
}
this.initializers = target;
this.application.setInitializers(target);
this.application.addInitializers(target
.toArray(new ApplicationContextInitializer[0]));
}
}
......@@ -23,6 +23,7 @@ import java.util.Collections;
import org.junit.After;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Configuration;
......@@ -178,6 +179,20 @@ public class SpringApplicationBuilderTests {
assertEquals(7, application.application().getInitializers().size());
}
@Test
public void initializersIncludeDefaults() throws Exception {
SpringApplicationBuilder application = new SpringApplicationBuilder(
ExampleConfig.class).web(false).initializers(
new ApplicationContextInitializer<ConfigurableApplicationContext>() {
@Override
public void initialize(
ConfigurableApplicationContext applicationContext) {
}
});
this.context = application.run();
assertEquals(8, application.application().getInitializers().size());
}
@Configuration
static class ExampleConfig {
......
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