Make sure management path is set correctly when not using metadata provider. Fixes #3098 (#3100)

This commit is contained in:
Ryan Baxter
2018-07-30 13:48:46 -04:00
committed by GitHub
parent cf0d54450a
commit fd20f81885
2 changed files with 22 additions and 0 deletions

View File

@@ -175,6 +175,14 @@ public class EurekaClientAutoConfiguration {
if (metadataMap.get("management.port") == null) {
metadataMap.put("management.port", String.valueOf(metadata.getManagementPort()));
}
} else {
//without the metadata the status and health check URLs will not be set
//and the status page and health check url paths will not include the
//context path so set them here
if(StringUtils.hasText(managementContextPath)) {
instance.setHealthCheckUrlPath(managementContextPath + instance.getHealthCheckUrlPath());
instance.setStatusPageUrlPath(managementContextPath + instance.getStatusPageUrlPath());
}
}
setupJmxPort(instance, jmxPort);

View File

@@ -220,6 +220,20 @@ public class EurekaClientAutoConfigurationTests {
instance.getHealthCheckUrl().endsWith(":8989/management/health"));
}
@Test
public void statusPageUrl_and_healthCheckUrl_contain_management_context_path_random_port() throws Exception {
addEnvironment(this.context,
"server.port=0", "management.contextPath=/management");
setupContext(RefreshAutoConfiguration.class);
EurekaInstanceConfigBean instance = this.context
.getBean(EurekaInstanceConfigBean.class);
assertTrue("Wrong status page: " + instance.getStatusPageUrlPath(),
instance.getStatusPageUrlPath().equals("/management/info"));
assertTrue("Wrong health check: " + instance.getHealthCheckUrlPath(),
instance.getHealthCheckUrlPath().equals("/management/health"));
}
@Test
public void statusPageUrlPathAndManagementPortAndContextPath() {
addEnvironment(this.context, "server.port=8989",