From 553645f7cfb8bb7d3a544ed325da63222f2ca2bf Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Thu, 25 Jun 2015 14:36:16 -0600 Subject: [PATCH] moved instrumenting classes to instrument package. removed unneeded RestTemplate infrastructure. --- .../circuitbreaker/TraceCommand.java | 2 +- .../scheduling/TraceSchedulingAspect.java | 2 +- .../TraceSchedulingAutoConfiguration.java | 2 +- .../{ => instrument}/web/TraceFilter.java | 2 +- .../{ => instrument}/web/TraceWebAspect.java | 2 +- .../web/TraceWebAutoConfiguration.java | 2 +- .../client/TraceRestTemplateInterceptor.java | 2 +- .../TraceWebClientAutoConfiguration.java | 30 ++++++++- .../DefaultRestTemplateConfigurer.java | 46 -------------- .../resttemplate/RestTemplateConfigurer.java | 30 --------- .../SleuthRestTemplateAutoConfiguration.java | 63 ------------------- .../main/resources/META-INF/spring.factories | 7 +-- 12 files changed, 37 insertions(+), 153 deletions(-) rename spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/{ => instrument}/circuitbreaker/TraceCommand.java (96%) rename spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/{ => instrument}/scheduling/TraceSchedulingAspect.java (94%) rename spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/{ => instrument}/scheduling/TraceSchedulingAutoConfiguration.java (93%) rename spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/{ => instrument}/web/TraceFilter.java (98%) rename spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/{ => instrument}/web/TraceWebAspect.java (98%) rename spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/{ => instrument}/web/TraceWebAutoConfiguration.java (97%) rename spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/{ => instrument}/web/client/TraceRestTemplateInterceptor.java (97%) rename spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/{ => instrument}/web/client/TraceWebClientAutoConfiguration.java (56%) delete mode 100644 spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/resttemplate/DefaultRestTemplateConfigurer.java delete mode 100644 spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/resttemplate/RestTemplateConfigurer.java delete mode 100644 spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/resttemplate/SleuthRestTemplateAutoConfiguration.java diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/circuitbreaker/TraceCommand.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/TraceCommand.java similarity index 96% rename from spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/circuitbreaker/TraceCommand.java rename to spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/TraceCommand.java index cc28a9439..6a2ae6507 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/circuitbreaker/TraceCommand.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/TraceCommand.java @@ -1,4 +1,4 @@ -package org.springframework.cloud.sleuth.circuitbreaker; +package org.springframework.cloud.sleuth.instrument.circuitbreaker; import com.netflix.hystrix.HystrixCommand; import com.netflix.hystrix.HystrixCommandGroupKey; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/scheduling/TraceSchedulingAspect.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/TraceSchedulingAspect.java similarity index 94% rename from spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/scheduling/TraceSchedulingAspect.java rename to spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/TraceSchedulingAspect.java index e4943adc5..588763d1f 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/scheduling/TraceSchedulingAspect.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/TraceSchedulingAspect.java @@ -1,4 +1,4 @@ -package org.springframework.cloud.sleuth.scheduling; +package org.springframework.cloud.sleuth.instrument.scheduling; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/scheduling/TraceSchedulingAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/TraceSchedulingAutoConfiguration.java similarity index 93% rename from spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/scheduling/TraceSchedulingAutoConfiguration.java rename to spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/TraceSchedulingAutoConfiguration.java index 7c8900ddd..8444b4793 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/scheduling/TraceSchedulingAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/TraceSchedulingAutoConfiguration.java @@ -1,4 +1,4 @@ -package org.springframework.cloud.sleuth.scheduling; +package org.springframework.cloud.sleuth.instrument.scheduling; /** * @author Spencer Gibb diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/TraceFilter.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceFilter.java similarity index 98% rename from spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/TraceFilter.java rename to spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceFilter.java index 1b7d97de3..4429cafbb 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/TraceFilter.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceFilter.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.cloud.sleuth.web; +package org.springframework.cloud.sleuth.instrument.web; import static org.springframework.cloud.sleuth.Trace.SPAN_ID_NAME; import static org.springframework.cloud.sleuth.Trace.TRACE_ID_NAME; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/TraceWebAspect.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAspect.java similarity index 98% rename from spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/TraceWebAspect.java rename to spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAspect.java index 4d7fa44dc..5956e991b 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/TraceWebAspect.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAspect.java @@ -1,4 +1,4 @@ -package org.springframework.cloud.sleuth.web; +package org.springframework.cloud.sleuth.instrument.web; import static org.springframework.cloud.sleuth.Trace.SPAN_ID_NAME; import static org.springframework.cloud.sleuth.Trace.TRACE_ID_NAME; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/TraceWebAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAutoConfiguration.java similarity index 97% rename from spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/TraceWebAutoConfiguration.java rename to spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAutoConfiguration.java index bc815172e..848554127 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/TraceWebAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAutoConfiguration.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.cloud.sleuth.web; +package org.springframework.cloud.sleuth.instrument.web; import java.util.regex.Pattern; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/client/TraceRestTemplateInterceptor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRestTemplateInterceptor.java similarity index 97% rename from spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/client/TraceRestTemplateInterceptor.java rename to spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRestTemplateInterceptor.java index 52eb99d11..334fd8b50 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/client/TraceRestTemplateInterceptor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRestTemplateInterceptor.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.springframework.cloud.sleuth.web.client; +package org.springframework.cloud.sleuth.instrument.web.client; import static org.springframework.cloud.sleuth.Trace.SPAN_ID_NAME; import static org.springframework.cloud.sleuth.Trace.TRACE_ID_NAME; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/client/TraceWebClientAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientAutoConfiguration.java similarity index 56% rename from spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/client/TraceWebClientAutoConfiguration.java rename to spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientAutoConfiguration.java index 2fc38fe4d..c45cabd06 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/web/client/TraceWebClientAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientAutoConfiguration.java @@ -1,21 +1,22 @@ -package org.springframework.cloud.sleuth.web.client; +package org.springframework.cloud.sleuth.instrument.web.client; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.cloud.sleuth.resttemplate.SleuthRestTemplateAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; +import javax.annotation.PostConstruct; + /** * @author Spencer Gibb */ @Configuration @ConditionalOnProperty(value = "spring.cloud.sleuth.trace.web.client.enabled", matchIfMissing = true) @ConditionalOnClass(RestTemplate.class) -@AutoConfigureAfter(SleuthRestTemplateAutoConfiguration.class) public class TraceWebClientAutoConfiguration { @Bean @@ -23,4 +24,27 @@ public class TraceWebClientAutoConfiguration { public TraceRestTemplateInterceptor traceRestTemplateInterceptor() { return new TraceRestTemplateInterceptor(); } + + @Bean + @ConditionalOnMissingBean + public RestTemplate restTemplate() { + return new RestTemplate(); + } + + @Configuration + protected static class TraceInterceptorConfiguration { + + @Autowired(required = false) + private RestTemplate restTemplate; + + @Autowired + private TraceRestTemplateInterceptor traceRestTemplateInterceptor; + + @PostConstruct + public void init() { + if (restTemplate != null) { + restTemplate.getInterceptors().add(traceRestTemplateInterceptor); + } + } + } } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/resttemplate/DefaultRestTemplateConfigurer.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/resttemplate/DefaultRestTemplateConfigurer.java deleted file mode 100644 index f7e33be80..000000000 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/resttemplate/DefaultRestTemplateConfigurer.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2012-2015 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.cloud.sleuth.resttemplate; - -import org.springframework.http.client.ClientHttpRequestInterceptor; -import org.springframework.web.client.RestTemplate; - -import java.util.List; - -/** - * Default configure of {@code RestTemplate} that adds a list {@code ClientHttpRequestInterceptor} - * to {@code RestTemplate} - * - * @see ClientHttpRequestInterceptor - * @see RestTemplate - * - * @author Marcin Grzejszczak, 4financeIT - */ -public class DefaultRestTemplateConfigurer implements RestTemplateConfigurer { - - private final List clientHttpRequestInterceptors; - - public DefaultRestTemplateConfigurer(List clientHttpRequestInterceptors) { - this.clientHttpRequestInterceptors = clientHttpRequestInterceptors; - } - - @Override - public void modifyRestTemplate(RestTemplate restTemplate) { - for (ClientHttpRequestInterceptor clientHttpRequestInterceptor : clientHttpRequestInterceptors) { - restTemplate.getInterceptors().add(clientHttpRequestInterceptor); - } - } -} diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/resttemplate/RestTemplateConfigurer.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/resttemplate/RestTemplateConfigurer.java deleted file mode 100644 index 54b643d40..000000000 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/resttemplate/RestTemplateConfigurer.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2012-2015 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.cloud.sleuth.resttemplate; - -import org.springframework.web.client.RestTemplate; - -/** - * Interface that allows to modify the {@code RestTemplate} parameters - * - * @see RestTemplate - * - * @author Marcin Grzejszczak, 4financeIT - */ -public interface RestTemplateConfigurer { - - void modifyRestTemplate(RestTemplate restTemplate); -} diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/resttemplate/SleuthRestTemplateAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/resttemplate/SleuthRestTemplateAutoConfiguration.java deleted file mode 100644 index 40d1d2e0f..000000000 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/resttemplate/SleuthRestTemplateAutoConfiguration.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2012-2015 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.cloud.sleuth.resttemplate; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.http.client.ClientHttpRequestInterceptor; -import org.springframework.web.client.RestTemplate; - -import java.util.ArrayList; -import java.util.List; - -/** - * - * Autoconfiguration that sets up a {@code RestTemplate} as a bean if one is not present - * and performs its additional modification via a {@code RestTemplateConfigurer}. - * - * @author Marcin Grzejszczak, 4financeIT - */ -@Configuration -@ConditionalOnWebApplication -@ConditionalOnProperty(value = "spring.cloud.sleuth.resttemplate.enabled", matchIfMissing = true) -public class SleuthRestTemplateAutoConfiguration { - - @Configuration - protected static class RestTemplateConfig { - - @Autowired(required = false) - private List clientHttpRequestInterceptors = new ArrayList<>(); - - @Bean - @ConditionalOnMissingBean - public RestTemplate restTemplate() { - return new RestTemplate(); - } - - @Bean - @ConditionalOnMissingBean - public RestTemplateConfigurer restTemplateConfigurer(RestTemplate restTemplate) { - DefaultRestTemplateConfigurer configurer = new DefaultRestTemplateConfigurer(clientHttpRequestInterceptors); - configurer.modifyRestTemplate(restTemplate); - return configurer; - } - } - -} diff --git a/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories b/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories index f13ffc5a5..d1c8cd4aa 100644 --- a/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories +++ b/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories @@ -1,7 +1,6 @@ # Auto Configuration org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ -org.springframework.cloud.sleuth.resttemplate.SleuthRestTemplateAutoConfiguration,\ org.springframework.cloud.sleuth.TraceAutoConfiguration,\ -org.springframework.cloud.sleuth.web.TraceWebAutoConfiguration,\ -org.springframework.cloud.sleuth.web.client.TraceWebClientAutoConfiguration,\ -org.springframework.cloud.sleuth.slf4j.SleuthSlf4jAutoConfiguration +org.springframework.cloud.sleuth.slf4j.SleuthSlf4jAutoConfiguration,\ +org.springframework.cloud.sleuth.instrument.web.TraceWebAutoConfiguration,\ +org.springframework.cloud.sleuth.instrument.web.client.TraceWebClientAutoConfiguration