Use only ConfigFileApplicationListener in server mini-application
In the server we use a SpringApplicationEnvironmentRepository to load the YAML and properties files from git (or locally). It creates a mini SpringApplication so as to faithfully replicate the way the Environment is created. Unfortunately that can have side effects on the server application itself (e.g. setting log levels). In particular if the mini SpringApplication fails to start then the log levels could be left in a "preInitialized" state with all log levels OFF by default. This change ensures that the server logs all errors when loading YAML and properties files, and also that the client logs the error response if it is JSON (as it should be). Fixes gh-66, fixes gh-67
This commit is contained in:
@@ -30,21 +30,26 @@ public class ApplicationTests {
|
||||
@Value("${local.server.port}")
|
||||
private int port;
|
||||
|
||||
private static ConfigurableApplicationContext server;
|
||||
|
||||
@BeforeClass
|
||||
public static void startConfigServer() throws IOException {
|
||||
String repo = ConfigServerTestUtils.prepareLocalRepo();
|
||||
ConfigurableApplicationContext context = SpringApplication.run(
|
||||
server = SpringApplication.run(
|
||||
org.springframework.cloud.config.server.ConfigServerApplication.class,
|
||||
"--server.port=" + configPort, "--spring.config.name=server",
|
||||
"--spring.cloud.config.server.git.uri=" + repo);
|
||||
configPort = ((EmbeddedWebApplicationContext) context)
|
||||
configPort = ((EmbeddedWebApplicationContext) server)
|
||||
.getEmbeddedServletContainer().getPort();
|
||||
System.setProperty("config.port", "" + configPort);
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public static void close() {
|
||||
System.clearProperty("config.port");
|
||||
System.clearProperty("config.port");
|
||||
if (server!=null) {
|
||||
server.close();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user