From 52989707641fbec9c7ab5de969d7723470063c34 Mon Sep 17 00:00:00 2001 From: spencergibb Date: Mon, 19 Dec 2022 13:05:01 -0500 Subject: [PATCH 1/6] skip deploy of test module --- spring-cloud-netflix-eureka-client-tls-tests/pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/spring-cloud-netflix-eureka-client-tls-tests/pom.xml b/spring-cloud-netflix-eureka-client-tls-tests/pom.xml index 743ee7f4e..4df394b4b 100644 --- a/spring-cloud-netflix-eureka-client-tls-tests/pom.xml +++ b/spring-cloud-netflix-eureka-client-tls-tests/pom.xml @@ -115,6 +115,12 @@ + + maven-deploy-plugin + + true + + From 327b1262071d1a3d0642c465d323b8d1fe69b204 Mon Sep 17 00:00:00 2001 From: buildmaster Date: Thu, 23 Feb 2023 23:12:59 +0000 Subject: [PATCH 2/6] Update SNAPSHOT to 3.1.5 --- docs/pom.xml | 2 +- pom.xml | 8 ++++---- spring-cloud-netflix-dependencies/pom.xml | 4 ++-- spring-cloud-netflix-eureka-client-tls-tests/pom.xml | 2 +- spring-cloud-netflix-eureka-client/pom.xml | 2 +- spring-cloud-netflix-eureka-server/pom.xml | 2 +- spring-cloud-starter-netflix-eureka-client/pom.xml | 2 +- spring-cloud-starter-netflix-eureka-server/pom.xml | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/pom.xml b/docs/pom.xml index b010b1181..9060ee9b8 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5-SNAPSHOT + 3.1.5 spring-cloud-netflix-docs jar diff --git a/pom.xml b/pom.xml index 24272d991..7ec8f9688 100644 --- a/pom.xml +++ b/pom.xml @@ -3,14 +3,14 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 spring-cloud-netflix - 3.1.5-SNAPSHOT + 3.1.5 pom Spring Cloud Netflix Spring Cloud Netflix org.springframework.cloud spring-cloud-build - 3.1.6-SNAPSHOT + 3.1.6 @@ -21,8 +21,8 @@ netflix - 3.1.6-SNAPSHOT - 3.1.6-SNAPSHOT + 3.1.6 + 3.1.6 jacoco diff --git a/spring-cloud-netflix-dependencies/pom.xml b/spring-cloud-netflix-dependencies/pom.xml index 69c691562..eb38535bf 100644 --- a/spring-cloud-netflix-dependencies/pom.xml +++ b/spring-cloud-netflix-dependencies/pom.xml @@ -5,11 +5,11 @@ spring-cloud-dependencies-parent org.springframework.cloud - 3.1.6-SNAPSHOT + 3.1.6 spring-cloud-netflix-dependencies - 3.1.5-SNAPSHOT + 3.1.5 pom spring-cloud-netflix-dependencies Spring Cloud Netflix Dependencies diff --git a/spring-cloud-netflix-eureka-client-tls-tests/pom.xml b/spring-cloud-netflix-eureka-client-tls-tests/pom.xml index 4df394b4b..9a1d17303 100644 --- a/spring-cloud-netflix-eureka-client-tls-tests/pom.xml +++ b/spring-cloud-netflix-eureka-client-tls-tests/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5-SNAPSHOT + 3.1.5 .. spring-cloud-netflix-eureka-client-tls-tests diff --git a/spring-cloud-netflix-eureka-client/pom.xml b/spring-cloud-netflix-eureka-client/pom.xml index 1123a47cb..5b254dae9 100644 --- a/spring-cloud-netflix-eureka-client/pom.xml +++ b/spring-cloud-netflix-eureka-client/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5-SNAPSHOT + 3.1.5 .. spring-cloud-netflix-eureka-client diff --git a/spring-cloud-netflix-eureka-server/pom.xml b/spring-cloud-netflix-eureka-server/pom.xml index 5f9015b67..761daeb9f 100644 --- a/spring-cloud-netflix-eureka-server/pom.xml +++ b/spring-cloud-netflix-eureka-server/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5-SNAPSHOT + 3.1.5 .. spring-cloud-netflix-eureka-server diff --git a/spring-cloud-starter-netflix-eureka-client/pom.xml b/spring-cloud-starter-netflix-eureka-client/pom.xml index c0137e75a..cd57e1647 100644 --- a/spring-cloud-starter-netflix-eureka-client/pom.xml +++ b/spring-cloud-starter-netflix-eureka-client/pom.xml @@ -4,7 +4,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5-SNAPSHOT + 3.1.5 spring-cloud-starter-netflix-eureka-client Spring Cloud Starter Netflix Eureka Client diff --git a/spring-cloud-starter-netflix-eureka-server/pom.xml b/spring-cloud-starter-netflix-eureka-server/pom.xml index cd352ce65..2189ffeaa 100644 --- a/spring-cloud-starter-netflix-eureka-server/pom.xml +++ b/spring-cloud-starter-netflix-eureka-server/pom.xml @@ -3,7 +3,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5-SNAPSHOT + 3.1.5 spring-cloud-starter-netflix-eureka-server Spring Cloud Starter Netflix Eureka Server From 25796a27f0cf220adbb7c72ac2413eb144db7266 Mon Sep 17 00:00:00 2001 From: buildmaster Date: Thu, 23 Feb 2023 23:14:31 +0000 Subject: [PATCH 3/6] Going back to snapshots --- docs/pom.xml | 2 +- pom.xml | 8 ++++---- spring-cloud-netflix-dependencies/pom.xml | 4 ++-- spring-cloud-netflix-eureka-client-tls-tests/pom.xml | 2 +- spring-cloud-netflix-eureka-client/pom.xml | 2 +- spring-cloud-netflix-eureka-server/pom.xml | 2 +- spring-cloud-starter-netflix-eureka-client/pom.xml | 2 +- spring-cloud-starter-netflix-eureka-server/pom.xml | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/pom.xml b/docs/pom.xml index 9060ee9b8..b010b1181 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5 + 3.1.5-SNAPSHOT spring-cloud-netflix-docs jar diff --git a/pom.xml b/pom.xml index 7ec8f9688..24272d991 100644 --- a/pom.xml +++ b/pom.xml @@ -3,14 +3,14 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 spring-cloud-netflix - 3.1.5 + 3.1.5-SNAPSHOT pom Spring Cloud Netflix Spring Cloud Netflix org.springframework.cloud spring-cloud-build - 3.1.6 + 3.1.6-SNAPSHOT @@ -21,8 +21,8 @@ netflix - 3.1.6 - 3.1.6 + 3.1.6-SNAPSHOT + 3.1.6-SNAPSHOT jacoco diff --git a/spring-cloud-netflix-dependencies/pom.xml b/spring-cloud-netflix-dependencies/pom.xml index eb38535bf..69c691562 100644 --- a/spring-cloud-netflix-dependencies/pom.xml +++ b/spring-cloud-netflix-dependencies/pom.xml @@ -5,11 +5,11 @@ spring-cloud-dependencies-parent org.springframework.cloud - 3.1.6 + 3.1.6-SNAPSHOT spring-cloud-netflix-dependencies - 3.1.5 + 3.1.5-SNAPSHOT pom spring-cloud-netflix-dependencies Spring Cloud Netflix Dependencies diff --git a/spring-cloud-netflix-eureka-client-tls-tests/pom.xml b/spring-cloud-netflix-eureka-client-tls-tests/pom.xml index 9a1d17303..4df394b4b 100644 --- a/spring-cloud-netflix-eureka-client-tls-tests/pom.xml +++ b/spring-cloud-netflix-eureka-client-tls-tests/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5 + 3.1.5-SNAPSHOT .. spring-cloud-netflix-eureka-client-tls-tests diff --git a/spring-cloud-netflix-eureka-client/pom.xml b/spring-cloud-netflix-eureka-client/pom.xml index 5b254dae9..1123a47cb 100644 --- a/spring-cloud-netflix-eureka-client/pom.xml +++ b/spring-cloud-netflix-eureka-client/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5 + 3.1.5-SNAPSHOT .. spring-cloud-netflix-eureka-client diff --git a/spring-cloud-netflix-eureka-server/pom.xml b/spring-cloud-netflix-eureka-server/pom.xml index 761daeb9f..5f9015b67 100644 --- a/spring-cloud-netflix-eureka-server/pom.xml +++ b/spring-cloud-netflix-eureka-server/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5 + 3.1.5-SNAPSHOT .. spring-cloud-netflix-eureka-server diff --git a/spring-cloud-starter-netflix-eureka-client/pom.xml b/spring-cloud-starter-netflix-eureka-client/pom.xml index cd57e1647..c0137e75a 100644 --- a/spring-cloud-starter-netflix-eureka-client/pom.xml +++ b/spring-cloud-starter-netflix-eureka-client/pom.xml @@ -4,7 +4,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5 + 3.1.5-SNAPSHOT spring-cloud-starter-netflix-eureka-client Spring Cloud Starter Netflix Eureka Client diff --git a/spring-cloud-starter-netflix-eureka-server/pom.xml b/spring-cloud-starter-netflix-eureka-server/pom.xml index 2189ffeaa..cd352ce65 100644 --- a/spring-cloud-starter-netflix-eureka-server/pom.xml +++ b/spring-cloud-starter-netflix-eureka-server/pom.xml @@ -3,7 +3,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5 + 3.1.5-SNAPSHOT spring-cloud-starter-netflix-eureka-server Spring Cloud Starter Netflix Eureka Server From 890f1ef4d6e627a2e3bc4e57ccc6a9c17778aa85 Mon Sep 17 00:00:00 2001 From: buildmaster Date: Thu, 23 Feb 2023 23:14:31 +0000 Subject: [PATCH 4/6] Bumping versions to 3.1.6-SNAPSHOT after release --- docs/pom.xml | 2 +- pom.xml | 8 ++++---- spring-cloud-netflix-dependencies/pom.xml | 4 ++-- spring-cloud-netflix-eureka-client-tls-tests/pom.xml | 2 +- spring-cloud-netflix-eureka-client/pom.xml | 2 +- spring-cloud-netflix-eureka-server/pom.xml | 2 +- spring-cloud-starter-netflix-eureka-client/pom.xml | 2 +- spring-cloud-starter-netflix-eureka-server/pom.xml | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/pom.xml b/docs/pom.xml index b010b1181..74d866088 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5-SNAPSHOT + 3.1.6-SNAPSHOT spring-cloud-netflix-docs jar diff --git a/pom.xml b/pom.xml index 24272d991..00e748580 100644 --- a/pom.xml +++ b/pom.xml @@ -3,14 +3,14 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 spring-cloud-netflix - 3.1.5-SNAPSHOT + 3.1.6-SNAPSHOT pom Spring Cloud Netflix Spring Cloud Netflix org.springframework.cloud spring-cloud-build - 3.1.6-SNAPSHOT + 3.1.7-SNAPSHOT @@ -21,8 +21,8 @@ netflix - 3.1.6-SNAPSHOT - 3.1.6-SNAPSHOT + 3.1.7-SNAPSHOT + 3.1.7-SNAPSHOT jacoco diff --git a/spring-cloud-netflix-dependencies/pom.xml b/spring-cloud-netflix-dependencies/pom.xml index 69c691562..fa70ded08 100644 --- a/spring-cloud-netflix-dependencies/pom.xml +++ b/spring-cloud-netflix-dependencies/pom.xml @@ -5,11 +5,11 @@ spring-cloud-dependencies-parent org.springframework.cloud - 3.1.6-SNAPSHOT + 3.1.7-SNAPSHOT spring-cloud-netflix-dependencies - 3.1.5-SNAPSHOT + 3.1.6-SNAPSHOT pom spring-cloud-netflix-dependencies Spring Cloud Netflix Dependencies diff --git a/spring-cloud-netflix-eureka-client-tls-tests/pom.xml b/spring-cloud-netflix-eureka-client-tls-tests/pom.xml index 4df394b4b..6e81424b7 100644 --- a/spring-cloud-netflix-eureka-client-tls-tests/pom.xml +++ b/spring-cloud-netflix-eureka-client-tls-tests/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5-SNAPSHOT + 3.1.6-SNAPSHOT .. spring-cloud-netflix-eureka-client-tls-tests diff --git a/spring-cloud-netflix-eureka-client/pom.xml b/spring-cloud-netflix-eureka-client/pom.xml index 1123a47cb..eabb366d5 100644 --- a/spring-cloud-netflix-eureka-client/pom.xml +++ b/spring-cloud-netflix-eureka-client/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5-SNAPSHOT + 3.1.6-SNAPSHOT .. spring-cloud-netflix-eureka-client diff --git a/spring-cloud-netflix-eureka-server/pom.xml b/spring-cloud-netflix-eureka-server/pom.xml index 5f9015b67..416ae9cb4 100644 --- a/spring-cloud-netflix-eureka-server/pom.xml +++ b/spring-cloud-netflix-eureka-server/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5-SNAPSHOT + 3.1.6-SNAPSHOT .. spring-cloud-netflix-eureka-server diff --git a/spring-cloud-starter-netflix-eureka-client/pom.xml b/spring-cloud-starter-netflix-eureka-client/pom.xml index c0137e75a..6d03c65e8 100644 --- a/spring-cloud-starter-netflix-eureka-client/pom.xml +++ b/spring-cloud-starter-netflix-eureka-client/pom.xml @@ -4,7 +4,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5-SNAPSHOT + 3.1.6-SNAPSHOT spring-cloud-starter-netflix-eureka-client Spring Cloud Starter Netflix Eureka Client diff --git a/spring-cloud-starter-netflix-eureka-server/pom.xml b/spring-cloud-starter-netflix-eureka-server/pom.xml index cd352ce65..f1dfc5328 100644 --- a/spring-cloud-starter-netflix-eureka-server/pom.xml +++ b/spring-cloud-starter-netflix-eureka-server/pom.xml @@ -3,7 +3,7 @@ org.springframework.cloud spring-cloud-netflix - 3.1.5-SNAPSHOT + 3.1.6-SNAPSHOT spring-cloud-starter-netflix-eureka-server Spring Cloud Starter Netflix Eureka Server From ded713ecc1a06da879fc0b1adf797e96d805bf27 Mon Sep 17 00:00:00 2001 From: spencergibb Date: Fri, 3 Mar 2023 17:44:24 -0500 Subject: [PATCH 5/6] Removes comments --- .../RestTemplateTransportClientFactory.java | 20 ++----------------- 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateTransportClientFactory.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateTransportClientFactory.java index c804e625c..448b4e530 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateTransportClientFactory.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/RestTemplateTransportClientFactory.java @@ -148,8 +148,7 @@ public class RestTemplateTransportClientFactory implements TransportClientFactor converter.setObjectMapper(new ObjectMapper().setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE)); SimpleModule jsonModule = new SimpleModule(); - jsonModule.setSerializerModifier(createJsonSerializerModifier()); // keyFormatter, - // compact)); + jsonModule.setSerializerModifier(createJsonSerializerModifier()); converter.getObjectMapper().registerModule(jsonModule); converter.getObjectMapper().configure(SerializationFeature.WRAP_ROOT_VALUE, true); @@ -157,25 +156,10 @@ public class RestTemplateTransportClientFactory implements TransportClientFactor converter.getObjectMapper().addMixIn(Applications.class, ApplicationsJsonMixIn.class); converter.getObjectMapper().addMixIn(InstanceInfo.class, InstanceInfoJsonMixIn.class); - // converter.getObjectMapper().addMixIn(DataCenterInfo.class, - // DataCenterInfoXmlMixIn.class); - // converter.getObjectMapper().addMixIn(InstanceInfo.PortWrapper.class, - // PortWrapperXmlMixIn.class); - // converter.getObjectMapper().addMixIn(Application.class, - // ApplicationXmlMixIn.class); - // converter.getObjectMapper().addMixIn(Applications.class, - // ApplicationsXmlMixIn.class); - return converter; } - public static BeanSerializerModifier createJsonSerializerModifier() { // final - // KeyFormatter - // keyFormatter, - // final - // boolean - // compactMode) - // { + public static BeanSerializerModifier createJsonSerializerModifier() { return new BeanSerializerModifier() { @Override public JsonSerializer modifySerializer(SerializationConfig config, BeanDescription beanDesc, From 147d50f2c20989fa9062074479918e5015ff7306 Mon Sep 17 00:00:00 2001 From: spencergibb Date: Fri, 3 Mar 2023 17:47:27 -0500 Subject: [PATCH 6/6] Migrates from WebClient.exchange() to retrieve() retrieve() should clean up resources automatically while exchange() requires explicit handling that wasn't being done. Fixes gh-3862 --- .../http/WebClientEurekaHttpClient.java | 85 +++++++++---------- 1 file changed, 40 insertions(+), 45 deletions(-) diff --git a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/WebClientEurekaHttpClient.java b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/WebClientEurekaHttpClient.java index eb81623c4..6e130c487 100644 --- a/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/WebClientEurekaHttpClient.java +++ b/spring-cloud-netflix-eureka-client/src/main/java/org/springframework/cloud/netflix/eureka/http/WebClientEurekaHttpClient.java @@ -16,8 +16,6 @@ package org.springframework.cloud.netflix.eureka.http; -import java.util.Collections; -import java.util.HashMap; import java.util.Map; import com.netflix.appinfo.InstanceInfo; @@ -28,12 +26,12 @@ import com.netflix.discovery.shared.transport.EurekaHttpClient; import com.netflix.discovery.shared.transport.EurekaHttpResponse; import com.netflix.discovery.shared.transport.EurekaHttpResponse.EurekaHttpResponseBuilder; import com.netflix.discovery.util.StringUtil; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import reactor.core.publisher.Mono; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.web.reactive.function.BodyInserters; import org.springframework.web.reactive.function.client.ClientResponse; import org.springframework.web.reactive.function.client.WebClient; @@ -46,8 +44,6 @@ import static com.netflix.discovery.shared.transport.EurekaHttpResponse.anEureka */ public class WebClientEurekaHttpClient implements EurekaHttpClient { - protected final Log logger = LogFactory.getLog(getClass()); - private WebClient webClient; public WebClientEurekaHttpClient(WebClient webClient) { @@ -56,16 +52,18 @@ public class WebClientEurekaHttpClient implements EurekaHttpClient { @Override public EurekaHttpResponse register(InstanceInfo info) { - return webClient.post().uri("apps/" + info.getAppName(), Void.class).body(BodyInserters.fromValue(info)) + return webClient.post().uri("apps/" + info.getAppName()).body(BodyInserters.fromValue(info)) .header(HttpHeaders.ACCEPT_ENCODING, "gzip") - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).exchange() - .map(response -> eurekaHttpResponse(response)).block(); + .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).retrieve() + .onStatus(HttpStatus::isError, this::ignoreError).toBodilessEntity().map(this::eurekaHttpResponse) + .block(); } @Override public EurekaHttpResponse cancel(String appName, String id) { - return webClient.delete().uri("apps/" + appName + '/' + id, Void.class).exchange() - .map(response -> eurekaHttpResponse(response)).block(); + return webClient.delete().uri("apps/" + appName + '/' + id).retrieve() + .onStatus(HttpStatus::isError, this::ignoreError).toBodilessEntity().map(this::eurekaHttpResponse) + .block(); } @Override @@ -75,14 +73,15 @@ public class WebClientEurekaHttpClient implements EurekaHttpClient { + "&lastDirtyTimestamp=" + info.getLastDirtyTimestamp().toString() + (overriddenStatus != null ? "&overriddenstatus=" + overriddenStatus.name() : ""); - ClientResponse response = webClient.put().uri(urlPath, InstanceInfo.class) + ResponseEntity response = webClient.put().uri(urlPath) .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) - .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).exchange().block(); + .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).retrieve() + .onStatus(HttpStatus::isError, this::ignoreError).toEntity(InstanceInfo.class).block(); EurekaHttpResponseBuilder builder = anEurekaHttpResponse(statusCodeValueOf(response), InstanceInfo.class).headers(headersOf(response)); - InstanceInfo entity = response.toEntity(InstanceInfo.class).block().getBody(); + InstanceInfo entity = response.getBody(); if (entity != null) { builder.entity(entity); @@ -98,9 +97,9 @@ public class WebClientEurekaHttpClient implements EurekaHttpClient { String urlPath = "apps/" + appName + '/' + id + "/status?value=" + newStatus.name() + "&lastDirtyTimestamp=" + info.getLastDirtyTimestamp().toString(); - return webClient.put().uri(urlPath, Void.class) - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).exchange() - .map(response -> eurekaHttpResponse(response)).block(); + return webClient.put().uri(urlPath).header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) + .retrieve().onStatus(HttpStatus::isError, this::ignoreError).toBodilessEntity() + .map(this::eurekaHttpResponse).block(); } @Override @@ -108,9 +107,9 @@ public class WebClientEurekaHttpClient implements EurekaHttpClient { String urlPath = "apps/" + appName + '/' + id + "/status?lastDirtyTimestamp=" + info.getLastDirtyTimestamp().toString(); - return webClient.delete().uri(urlPath, Void.class) - .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).exchange() - .map(response -> eurekaHttpResponse(response)).block(); + return webClient.delete().uri(urlPath).header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) + .retrieve().onStatus(HttpStatus::isError, this::ignoreError).toBodilessEntity() + .map(this::eurekaHttpResponse).block(); } @Override @@ -125,13 +124,14 @@ public class WebClientEurekaHttpClient implements EurekaHttpClient { url = url + (urlPath.contains("?") ? "&" : "?") + "regions=" + StringUtil.join(regions); } - ClientResponse response = webClient.get().uri(url, Applications.class) + ResponseEntity response = webClient.get().uri(url) .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) - .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).exchange().block(); + .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).retrieve() + .onStatus(HttpStatus::isError, this::ignoreError).toEntity(Applications.class).block(); int statusCode = statusCodeValueOf(response); - Applications body = response.toEntity(Applications.class).block().getBody(); + Applications body = response.getBody(); return anEurekaHttpResponse(statusCode, statusCode == HttpStatus.OK.value() && body != null ? body : null) .headers(headersOf(response)).build(); @@ -155,11 +155,12 @@ public class WebClientEurekaHttpClient implements EurekaHttpClient { @Override public EurekaHttpResponse getApplication(String appName) { - ClientResponse response = webClient.get().uri("apps/" + appName, Application.class) - .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).exchange().block(); + ResponseEntity response = webClient.get().uri("apps/" + appName) + .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).retrieve() + .onStatus(HttpStatus::isError, this::ignoreError).toEntity(Application.class).block(); int statusCode = statusCodeValueOf(response); - Application body = response.toEntity(Application.class).block().getBody(); + Application body = response.getBody(); Application application = statusCode == HttpStatus.OK.value() && body != null ? body : null; @@ -177,11 +178,12 @@ public class WebClientEurekaHttpClient implements EurekaHttpClient { } private EurekaHttpResponse getInstanceInternal(String urlPath) { - ClientResponse response = webClient.get().uri(urlPath, InstanceInfo.class) - .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).exchange().block(); + ResponseEntity response = webClient.get().uri(urlPath) + .header(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE).retrieve() + .onStatus(HttpStatus::isError, this::ignoreError).toEntity(InstanceInfo.class).block(); int statusCode = statusCodeValueOf(response); - InstanceInfo body = response.toEntity(InstanceInfo.class).block().getBody(); + InstanceInfo body = response.getBody(); return anEurekaHttpResponse(statusCode, statusCode == HttpStatus.OK.value() && body != null ? body : null) .headers(headersOf(response)).build(); @@ -196,26 +198,19 @@ public class WebClientEurekaHttpClient implements EurekaHttpClient { return this.webClient; } - private static Map headersOf(ClientResponse response) { - ClientResponse.Headers httpHeaders = response.headers(); - if (httpHeaders == null) { - return Collections.emptyMap(); - } - HttpHeaders asHeaders = httpHeaders.asHttpHeaders(); - if (asHeaders == null) { - return Collections.emptyMap(); - } - Map headers = new HashMap<>(); - asHeaders.entrySet().stream() - .forEach(entry -> entry.getValue().stream().forEach(v -> headers.put(entry.getKey(), v))); - return headers; + private Mono ignoreError(ClientResponse response) { + return Mono.empty(); } - private int statusCodeValueOf(ClientResponse response) { - return response.statusCode().value(); + private static Map headersOf(ResponseEntity response) { + return response.getHeaders().toSingleValueMap(); } - private EurekaHttpResponse eurekaHttpResponse(ClientResponse response) { + private int statusCodeValueOf(ResponseEntity response) { + return response.getStatusCode().value(); + } + + private EurekaHttpResponse eurekaHttpResponse(ResponseEntity response) { return anEurekaHttpResponse(statusCodeValueOf(response)).headers(headersOf(response)).build(); }