From 2e6ae5d3146a18128432080a44c605fa5db6d631 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Thu, 19 Sep 2019 09:26:07 +0200 Subject: [PATCH] RestTempalte customizer can return an instance of rest template; fixes gh-1440 (#1446) --- .../DefaultZipkinRestTemplateCustomizer.java | 5 +++-- .../zipkin2/ZipkinRestTemplateCustomizer.java | 21 ++++++++++++++++++- ...ZipkinRestTemplateSenderConfiguration.java | 2 +- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/DefaultZipkinRestTemplateCustomizer.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/DefaultZipkinRestTemplateCustomizer.java index 8836bb3c1..ecea5115f 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/DefaultZipkinRestTemplateCustomizer.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/DefaultZipkinRestTemplateCustomizer.java @@ -28,7 +28,7 @@ import org.springframework.web.client.RestTemplate; /** * Default {@link ZipkinRestTemplateCustomizer} that provides the GZip compression if - * {@link ZipkinProperties#compression} is enabled. + * {@link ZipkinProperties#getCompression()} is enabled. * * @author Marcin Grzejszczak * @since 1.1.0 @@ -42,10 +42,11 @@ public class DefaultZipkinRestTemplateCustomizer implements ZipkinRestTemplateCu } @Override - public void customize(RestTemplate restTemplate) { + public RestTemplate customizeTemplate(RestTemplate restTemplate) { if (this.zipkinProperties.getCompression().isEnabled()) { restTemplate.getInterceptors().add(0, new GZipInterceptor()); } + return restTemplate; } private class GZipInterceptor implements ClientHttpRequestInterceptor { diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinRestTemplateCustomizer.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinRestTemplateCustomizer.java index 907a6bc1c..ae8cba211 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinRestTemplateCustomizer.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinRestTemplateCustomizer.java @@ -31,6 +31,25 @@ import org.springframework.web.client.RestTemplate; */ public interface ZipkinRestTemplateCustomizer { - void customize(RestTemplate restTemplate); + /** + * Customizes the {@link RestTemplate}. + * @deprecated use + * {@link ZipkinRestTemplateCustomizer#customizeTemplate(RestTemplate)} + * @param restTemplate object to customize + */ + @Deprecated + default void customize(RestTemplate restTemplate) { + customizeTemplate(restTemplate); + }; + + /** + * Customizes the {@link RestTemplate} instance. Might return a new one if necessary. + * @param restTemplate default object to customize + * @return customized {@link RestTemplate} or a new object + * @since 2.2.0 + */ + default RestTemplate customizeTemplate(RestTemplate restTemplate) { + return restTemplate; + } } diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/sender/ZipkinRestTemplateSenderConfiguration.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/sender/ZipkinRestTemplateSenderConfiguration.java index 945e8706e..b26aede07 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/sender/ZipkinRestTemplateSenderConfiguration.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/sender/ZipkinRestTemplateSenderConfiguration.java @@ -58,7 +58,7 @@ class ZipkinRestTemplateSenderConfiguration { public Sender restTemplateSender(ZipkinProperties zipkin, ZipkinRestTemplateCustomizer zipkinRestTemplateCustomizer) { RestTemplate restTemplate = new ZipkinRestTemplateWrapper(zipkin, this.extractor); - zipkinRestTemplateCustomizer.customize(restTemplate); + restTemplate = zipkinRestTemplateCustomizer.customizeTemplate(restTemplate); return new RestTemplateSender(restTemplate, zipkin.getBaseUrl(), zipkin.getEncoder()); }