From 5407f819e12854d08ee56a63d40f09fe864b41c3 Mon Sep 17 00:00:00 2001 From: weeniearms Date: Tue, 11 Oct 2016 14:19:38 +0200 Subject: [PATCH] Fix AdminClientProperties not obtaining hostname from management.address if set --- .../boot/admin/config/AdminClientProperties.java | 14 +++++++------- .../admin/config/AdminClientPropertiesTest.java | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/spring-boot-admin-starter-client/src/main/java/de/codecentric/boot/admin/config/AdminClientProperties.java b/spring-boot-admin-starter-client/src/main/java/de/codecentric/boot/admin/config/AdminClientProperties.java index 7d6a7b03d34..61fea5abfa3 100644 --- a/spring-boot-admin-starter-client/src/main/java/de/codecentric/boot/admin/config/AdminClientProperties.java +++ b/spring-boot-admin-starter-client/src/main/java/de/codecentric/boot/admin/config/AdminClientProperties.java @@ -95,16 +95,16 @@ && getServiceUrl() != null) { "serviceUrl must be set when deployed to servlet-container"); } + InetAddress address = management.getAddress(); + if (address == null) { + address = getHostAddress(); + } if (preferIp) { - InetAddress address = management.getAddress(); - if (address == null) { - address = getHostAddress(); - } return append(append(createLocalUri(address.getHostAddress(), managementPort), server.getContextPath()), management.getContextPath()); } - return append(createLocalUri(getHostAddress().getCanonicalHostName(), managementPort), + return append(createLocalUri(address.getCanonicalHostName(), managementPort), management.getContextPath()); } @@ -133,13 +133,13 @@ public String getServiceUrl() { "serviceUrl must be set when deployed to servlet-container"); } + InetAddress address = getHostAddress(); if (preferIp) { - InetAddress address = getHostAddress(); return append(createLocalUri(address.getHostAddress(), serverPort), server.getContextPath()); } - return append(createLocalUri(getHostAddress().getCanonicalHostName(), serverPort), + return append(createLocalUri(address.getCanonicalHostName(), serverPort), server.getContextPath()); } diff --git a/spring-boot-admin-starter-client/src/test/java/de/codecentric/boot/admin/config/AdminClientPropertiesTest.java b/spring-boot-admin-starter-client/src/test/java/de/codecentric/boot/admin/config/AdminClientPropertiesTest.java index 0c3cd39386c..4e9b40592e1 100644 --- a/spring-boot-admin-starter-client/src/test/java/de/codecentric/boot/admin/config/AdminClientPropertiesTest.java +++ b/spring-boot-admin-starter-client/src/test/java/de/codecentric/boot/admin/config/AdminClientPropertiesTest.java @@ -182,6 +182,22 @@ public void test_serveraddress() { publishApplicationReadyEvent(clientProperties); assertThat(clientProperties.getServiceUrl(), is("http://127.0.0.2:8080")); + assertThat(clientProperties.getManagementUrl(), is("http://127.0.0.2:8080")); + assertThat(clientProperties.getHealthUrl(), is("http://127.0.0.2:8080/health")); + } + + @Test + public void test_managementaddress() { + load("server.address=127.0.0.2", "management.address=127.0.0.3", "local.server.port=8080", + "local.management.port=8081"); + AdminClientProperties clientProperties = new AdminClientProperties(); + context.getAutowireCapableBeanFactory().autowireBean(clientProperties); + + publishApplicationReadyEvent(clientProperties); + + assertThat(clientProperties.getServiceUrl(), is("http://127.0.0.2:8080")); + assertThat(clientProperties.getManagementUrl(), is("http://127.0.0.3:8081")); + assertThat(clientProperties.getHealthUrl(), is("http://127.0.0.3:8081/health")); } private String getHostname() {