From c2d9c4b94e1290cfcf0f3feb7052b5d783a02d6c Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Fri, 2 Jun 2017 19:57:37 +0200 Subject: [PATCH] Should be working --- .../app/SleuthBenchmarkingSpringApp.java | 8 +-- .../web/HttpServletRequestExtractorTests.java | 24 ++++++--- .../web/SpringDataInstrumentationTests.java | 49 ++++++++----------- .../feign/TraceFeignObjectWrapperTests.java | 10 +--- .../zuul/TraceRibbonCommandFactoryTest.java | 13 +---- .../src/main/java/sample/SampleService.java | 9 ++-- .../main/java/sample/SampleController.java | 14 +++--- .../java/tools/AbstractIntegrationTest.java | 32 +++++------- .../main/java/sample/SampleController.java | 14 +++--- .../src/main/resources/application.yml | 2 +- .../main/java/sample/SampleController.java | 14 +++--- .../stream/ServerPropertiesHostLocator.java | 12 ++--- .../SleuthStreamAutoConfigurationTest.java | 14 +++--- .../stream/StreamSpanListenerTests.java | 2 +- .../ServerPropertiesEndpointLocator.java | 17 +++---- .../FallbackHavingEndpointLocatorTests.java | 1 - 16 files changed, 105 insertions(+), 130 deletions(-) diff --git a/benchmarks/src/main/java/org/springframework/cloud/sleuth/benchmarks/app/SleuthBenchmarkingSpringApp.java b/benchmarks/src/main/java/org/springframework/cloud/sleuth/benchmarks/app/SleuthBenchmarkingSpringApp.java index 12b5a7d9e..71612b233 100644 --- a/benchmarks/src/main/java/org/springframework/cloud/sleuth/benchmarks/app/SleuthBenchmarkingSpringApp.java +++ b/benchmarks/src/main/java/org/springframework/cloud/sleuth/benchmarks/app/SleuthBenchmarkingSpringApp.java @@ -31,8 +31,8 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; -import org.springframework.boot.context.embedded.EmbeddedServletContainerInitializedEvent; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; +import org.springframework.boot.web.servlet.context.ServletWebServerInitializedEvent; import org.springframework.cloud.sleuth.Sampler; import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.Tracer; @@ -57,7 +57,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController @EnableAsync public class SleuthBenchmarkingSpringApp implements - ApplicationListener { + ApplicationListener { private static final Log log = LogFactory.getLog(SleuthBenchmarkingSpringApp.class); @@ -97,8 +97,8 @@ public class SleuthBenchmarkingSpringApp implements } @Override - public void onApplicationEvent(EmbeddedServletContainerInitializedEvent event) { - this.port = event.getEmbeddedServletContainer().getPort(); + public void onApplicationEvent(ServletWebServerInitializedEvent event) { + this.port = event.getSource().getPort(); } @Bean diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/HttpServletRequestExtractorTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/HttpServletRequestExtractorTests.java index d5c30d832..6f48f175a 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/HttpServletRequestExtractorTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/HttpServletRequestExtractorTests.java @@ -16,12 +16,6 @@ package org.springframework.cloud.sleuth.instrument.web; -import javax.servlet.http.HttpServletRequest; -import java.util.Arrays; -import java.util.Random; -import java.util.Vector; -import java.util.regex.Pattern; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -30,6 +24,13 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.springframework.cloud.sleuth.Span; +import javax.servlet.http.HttpServletRequest; +import java.util.Arrays; +import java.util.Collections; +import java.util.Random; +import java.util.Vector; +import java.util.regex.Pattern; + import static org.springframework.cloud.sleuth.assertions.SleuthAssertions.then; @RunWith(MockitoJUnitRunner.class) @@ -43,6 +44,9 @@ public class HttpServletRequestExtractorTests { public void setup() { BDDMockito.given(this.request.getRequestURI()).willReturn("http://foo.com"); BDDMockito.given(this.request.getContextPath()).willReturn("/"); + BDDMockito.given(this.request.getHeaderNames()) + .willReturn(new Vector<>(Arrays.asList("invalid", Span.TRACE_ID_NAME, + Span.SPAN_ID_NAME, Span.PARENT_ID_NAME)).elements()); } @Test @@ -52,6 +56,8 @@ public class HttpServletRequestExtractorTests { @Test public void should_set_random_traceid_if_header_value_is_invalid() { + BDDMockito.given(this.request.getHeaderNames()) + .willReturn(new Vector<>(Collections.singletonList(Span.TRACE_ID_NAME)).elements()); BDDMockito.given(this.request.getHeader(Span.TRACE_ID_NAME)) .willReturn("invalid"); @@ -60,6 +66,9 @@ public class HttpServletRequestExtractorTests { @Test public void should_set_random_spanid_if_header_value_is_invalid() { + BDDMockito.given(this.request.getHeaderNames()) + .willReturn(new Vector<>(Arrays.asList(Span.TRACE_ID_NAME, + Span.SPAN_ID_NAME)).elements()); BDDMockito.given(this.request.getHeader(Span.TRACE_ID_NAME)) .willReturn(String.valueOf(new Random().nextLong())); BDDMockito.given(this.request.getHeader(Span.SPAN_ID_NAME)) @@ -70,6 +79,9 @@ public class HttpServletRequestExtractorTests { @Test public void should_not_throw_exception_if_parent_id_is_invalid() { + BDDMockito.given(this.request.getHeaderNames()) + .willReturn(new Vector<>(Arrays.asList(Span.TRACE_ID_NAME, + Span.SPAN_ID_NAME, Span.PARENT_ID_NAME)).elements()); BDDMockito.given(this.request.getHeader(Span.TRACE_ID_NAME)) .willReturn(String.valueOf(new Random().nextLong())); BDDMockito.given(this.request.getHeader(Span.SPAN_ID_NAME)) diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/SpringDataInstrumentationTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/SpringDataInstrumentationTests.java index 4aac55654..0aa633b77 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/SpringDataInstrumentationTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/SpringDataInstrumentationTests.java @@ -16,18 +16,7 @@ package org.springframework.cloud.sleuth.instrument.web; -import static org.assertj.core.api.BDDAssertions.then; -import static org.springframework.cloud.sleuth.assertions.SleuthAssertions.then; - -import java.util.Collection; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import javax.annotation.PostConstruct; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; - +import com.jayway.awaitility.Awaitility; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -44,18 +33,25 @@ import org.springframework.cloud.sleuth.util.ArrayListSpanAccumulator; import org.springframework.cloud.sleuth.util.ExceptionUtils; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.env.Environment; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.rest.core.annotation.RepositoryRestResource; -import org.springframework.hateoas.Resources; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; +import org.springframework.hateoas.PagedResources; +import org.springframework.http.RequestEntity; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.web.client.RestTemplate; -import com.jayway.awaitility.Awaitility; +import javax.annotation.PostConstruct; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import java.net.URI; +import java.util.Collection; +import java.util.stream.Stream; + +import static org.assertj.core.api.BDDAssertions.then; +import static org.springframework.cloud.sleuth.assertions.SleuthAssertions.then; /** * @author Marcin Grzejszczak @@ -81,9 +77,9 @@ public class SpringDataInstrumentationTests { @Test public void should_create_span_instrumented_by_a_handler_interceptor() { - Collection names = names(); + long noOfNames = namesCount(); - then(names).isNotEmpty(); + then(noOfNames).isEqualTo(8); then(this.arrayListSpanAccumulator.getSpans()).isNotEmpty(); Awaitility.await().until(() -> { then(new ListOfSpans(this.arrayListSpanAccumulator.getSpans())) @@ -95,14 +91,11 @@ public class SpringDataInstrumentationTests { then(new ListOfSpans(this.arrayListSpanAccumulator.getSpans())).hasRpcTagsInProperOrder(); } - Collection names() { - ParameterizedTypeReference> ptr = new ParameterizedTypeReference>() { - }; - ResponseEntity> responseEntity = this.restTemplate - .exchange("http://localhost:" + port() + "/reservations", HttpMethod.GET, - null, ptr); - return responseEntity.getBody().getContent().stream() - .map(Reservation::getReservationName).collect(Collectors.toList()); + long namesCount() { + return + this.restTemplate.exchange(RequestEntity + .get(URI.create("http://localhost:" + port() + "/reservations")).build(), PagedResources.class) + .getBody().getMetadata().getTotalElements(); } private int port() { @@ -134,13 +127,13 @@ class ReservationServiceApplication { Sampler alwaysSampler() { return new AlwaysSampler(); } + } class SampleRecords { private final ReservationRepository reservationRepository; - @Autowired public SampleRecords(ReservationRepository reservationRepository) { this.reservationRepository = reservationRepository; } diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignObjectWrapperTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignObjectWrapperTests.java index ae95b7a32..ebb87a09e 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignObjectWrapperTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignObjectWrapperTests.java @@ -1,6 +1,6 @@ package org.springframework.cloud.sleuth.instrument.web.client.feign; -import org.junit.Before; +import feign.Client; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; @@ -9,10 +9,7 @@ import org.mockito.junit.MockitoJUnitRunner; import org.springframework.beans.factory.BeanFactory; import org.springframework.cloud.sleuth.Tracer; -import feign.Client; - import static org.assertj.core.api.BDDAssertions.then; -import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.mock; /** @@ -25,11 +22,6 @@ public class TraceFeignObjectWrapperTests { @Mock BeanFactory beanFactory; @InjectMocks TraceFeignObjectWrapper traceFeignObjectWrapper; - @Before - public void setup() { - given(this.beanFactory.getBean(Tracer.class)).willReturn(this.tracer); - } - @Test public void should_wrap_a_client_into_trace_client() throws Exception { then(this.traceFeignObjectWrapper.wrap(mock(Client.class))).isExactlyInstanceOf(TraceFeignClient.class); diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/zuul/TraceRibbonCommandFactoryTest.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/zuul/TraceRibbonCommandFactoryTest.java index 6ec0c86fa..256868a3f 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/zuul/TraceRibbonCommandFactoryTest.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/zuul/TraceRibbonCommandFactoryTest.java @@ -16,15 +16,13 @@ package org.springframework.cloud.sleuth.instrument.zuul; -import java.util.ArrayList; - +import com.netflix.zuul.context.RequestContext; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import org.springframework.cloud.netflix.ribbon.SpringClientFactory; import org.springframework.cloud.netflix.zuul.filters.route.RibbonCommandContext; import org.springframework.cloud.netflix.zuul.filters.route.RibbonCommandFactory; import org.springframework.cloud.sleuth.Span; @@ -35,12 +33,9 @@ import org.springframework.cloud.sleuth.trace.TestSpanContextHolder; import org.springframework.http.HttpHeaders; import org.springframework.util.LinkedMultiValueMap; -import com.netflix.niws.client.http.RestClient; -import com.netflix.zuul.context.RequestContext; +import java.util.ArrayList; import static org.mockito.BDDMockito.given; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; import static org.springframework.cloud.sleuth.assertions.SleuthAssertions.then; /** @@ -50,7 +45,6 @@ import static org.springframework.cloud.sleuth.assertions.SleuthAssertions.then; public class TraceRibbonCommandFactoryTest { @Mock Tracer tracer; - @Mock SpringClientFactory springClientFactory; HttpTraceKeysInjector httpTraceKeysInjector; @Mock RibbonCommandFactory ribbonCommandFactory; TraceRibbonCommandFactory traceRibbonCommandFactory; @@ -64,10 +58,7 @@ public class TraceRibbonCommandFactoryTest { this.traceRibbonCommandFactory = new TraceRibbonCommandFactory( this.ribbonCommandFactory, this.tracer, httpTraceKeysInjector); - given(this.springClientFactory.getClient(anyString(), any(Class.class))) - .willReturn(new RestClient()); given(this.tracer.getCurrentSpan()).willReturn(span); - given(this.tracer.isTracing()).willReturn(true); } @After diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleService.java b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleService.java index d51f3c453..2f4a2c399 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleService.java +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-messaging/src/main/java/sample/SampleService.java @@ -19,7 +19,7 @@ package sample; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.embedded.EmbeddedServletContainerInitializedEvent; +import org.springframework.boot.web.servlet.context.ServletWebServerInitializedEvent; import org.springframework.context.ApplicationListener; import org.springframework.integration.annotation.MessageEndpoint; import org.springframework.integration.annotation.ServiceActivator; @@ -31,7 +31,7 @@ import org.springframework.web.client.RestTemplate; * */ @MessageEndpoint public class SampleService implements - ApplicationListener { + ApplicationListener { private static final Log log = LogFactory.getLog(SampleService.class); @Autowired private RestTemplate restTemplate; @@ -43,8 +43,7 @@ import org.springframework.web.client.RestTemplate; this.restTemplate.getForObject("http://localhost:" + this.port + "/foo", String.class); } - @Override public void onApplicationEvent( - EmbeddedServletContainerInitializedEvent event) { - this.port = event.getEmbeddedServletContainer().getPort(); + @Override public void onApplicationEvent(ServletWebServerInitializedEvent event) { + this.port = event.getSource().getPort(); } } diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-stream/src/main/java/sample/SampleController.java b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-stream/src/main/java/sample/SampleController.java index fcbbc9fe3..90ebad4f7 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-stream/src/main/java/sample/SampleController.java +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-stream/src/main/java/sample/SampleController.java @@ -16,13 +16,10 @@ package sample; -import java.util.Random; -import java.util.concurrent.Callable; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.embedded.EmbeddedServletContainerInitializedEvent; +import org.springframework.boot.web.servlet.context.ServletWebServerInitializedEvent; import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.SpanAccessor; import org.springframework.cloud.sleuth.Tracer; @@ -32,12 +29,15 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; +import java.util.Random; +import java.util.concurrent.Callable; + /** * @author Spencer Gibb */ @RestController public class SampleController - implements ApplicationListener { + implements ApplicationListener { private static final Log log = LogFactory.getLog(SampleController.class); @Autowired @@ -118,7 +118,7 @@ public class SampleController } @Override - public void onApplicationEvent(EmbeddedServletContainerInitializedEvent event) { - this.port = event.getEmbeddedServletContainer().getPort(); + public void onApplicationEvent(ServletWebServerInitializedEvent event) { + this.port = event.getSource().getPort(); } } diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/src/main/java/tools/AbstractIntegrationTest.java b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/src/main/java/tools/AbstractIntegrationTest.java index 34c5e79a1..99c62ed4e 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/src/main/java/tools/AbstractIntegrationTest.java +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/src/main/java/tools/AbstractIntegrationTest.java @@ -15,33 +15,23 @@ */ package tools; -import java.lang.invoke.MethodHandles; -import java.net.URI; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; - import com.jayway.awaitility.Awaitility; import com.jayway.awaitility.core.ConditionFactory; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.After; import org.junit.Before; import org.springframework.cloud.sleuth.trace.IntegrationTestSpanContextHolder; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.HttpStatus; -import org.springframework.http.RequestEntity; -import org.springframework.http.ResponseEntity; +import org.springframework.http.*; import org.springframework.web.client.RestTemplate; - import zipkin.Codec; import zipkin.Span; +import java.lang.invoke.MethodHandles; +import java.net.URI; +import java.util.*; +import java.util.stream.Collectors; + import static java.util.concurrent.TimeUnit.SECONDS; import static org.assertj.core.api.BDDAssertions.then; @@ -71,15 +61,15 @@ public abstract class AbstractIntegrationTest { } protected Runnable zipkinServerIsUp() { - return checkServerHealth("Zipkin Stream Server", this::endpointToCheckZipkinServerHealth); + return checkServerHealth(this::endpointToCheckZipkinServerHealth); } - protected Runnable checkServerHealth(String appName, RequestExchanger requestExchanger) { + protected Runnable checkServerHealth(RequestExchanger requestExchanger) { return () -> { ResponseEntity response = requestExchanger.exchange(); - log.info(String.format("Response from the [%s] health endpoint is [%s]", appName, response)); + log.info(String.format("Response from the [%s] health endpoint is [%s]", "Zipkin Stream Server", response)); then(response.getStatusCode()).isEqualTo(HttpStatus.OK); - log.info(String.format("[%s] is up!", appName)); + log.info(String.format("[%s] is up!", "Zipkin Stream Server")); }; } @@ -88,7 +78,7 @@ public abstract class AbstractIntegrationTest { } protected ResponseEntity endpointToCheckZipkinServerHealth() { - URI uri = URI.create("http://localhost:" +getZipkinServerPort()+"/health"); + URI uri = URI.create("http://localhost:" +getZipkinServerPort()+"/application/health"); log.info(String.format("Sending request to the Zipkin Server [%s]", uri)); return exchangeRequest(uri); } diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/src/main/java/sample/SampleController.java b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/src/main/java/sample/SampleController.java index b39aba6a0..41d1d2ba0 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/src/main/java/sample/SampleController.java +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/src/main/java/sample/SampleController.java @@ -16,13 +16,10 @@ package sample; -import java.util.Random; -import java.util.concurrent.Callable; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.embedded.EmbeddedServletContainerInitializedEvent; +import org.springframework.boot.web.servlet.context.ServletWebServerInitializedEvent; import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.SpanAccessor; import org.springframework.cloud.sleuth.Tracer; @@ -32,12 +29,15 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; +import java.util.Random; +import java.util.concurrent.Callable; + /** * @author Spencer Gibb */ @RestController public class SampleController implements -ApplicationListener { +ApplicationListener { private static final Log log = LogFactory.getLog(SampleController.class); @@ -120,7 +120,7 @@ ApplicationListener { } @Override - public void onApplicationEvent(EmbeddedServletContainerInitializedEvent event) { - this.port = event.getEmbeddedServletContainer().getPort(); + public void onApplicationEvent(ServletWebServerInitializedEvent event) { + this.port = event.getSource().getPort(); } } diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/src/main/resources/application.yml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/src/main/resources/application.yml index 95be19997..676abd928 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/src/main/resources/application.yml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/src/main/resources/application.yml @@ -5,7 +5,7 @@ spring: application: # This ends up as the service name in zipkin name: testsleuthzipkin - zipkin: + #zipkin: # Uncomment to send to zipkin, replacing 192.168.99.100 with your zipkin IP address # baseUrl: http://192.168.99.100:9411/ sleuth: diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/src/main/java/sample/SampleController.java b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/src/main/java/sample/SampleController.java index 5b93a3449..d0102badb 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/src/main/java/sample/SampleController.java +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample/src/main/java/sample/SampleController.java @@ -16,13 +16,10 @@ package sample; -import java.util.Random; -import java.util.concurrent.Callable; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.embedded.EmbeddedServletContainerInitializedEvent; +import org.springframework.boot.web.servlet.context.ServletWebServerInitializedEvent; import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.SpanAccessor; import org.springframework.cloud.sleuth.Tracer; @@ -32,12 +29,15 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; +import java.util.Random; +import java.util.concurrent.Callable; + /** * @author Spencer Gibb */ @RestController public class SampleController - implements ApplicationListener { + implements ApplicationListener { private static final Log log = LogFactory.getLog(SampleController.class); @Autowired private RestTemplate restTemplate; @@ -117,7 +117,7 @@ public class SampleController } @Override - public void onApplicationEvent(EmbeddedServletContainerInitializedEvent event) { - this.port = event.getEmbeddedServletContainer().getPort(); + public void onApplicationEvent(ServletWebServerInitializedEvent event) { + this.port = event.getSource().getPort(); } } diff --git a/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocator.java b/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocator.java index 2bc0c1c3b..d256dac3a 100644 --- a/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocator.java +++ b/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocator.java @@ -16,12 +16,10 @@ package org.springframework.cloud.sleuth.stream; -import java.lang.invoke.MethodHandles; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.boot.autoconfigure.web.ServerProperties; -import org.springframework.boot.context.embedded.EmbeddedServletContainerInitializedEvent; +import org.springframework.boot.web.servlet.context.ServletWebServerInitializedEvent; import org.springframework.cloud.commons.util.InetUtils; import org.springframework.cloud.commons.util.InetUtilsProperties; import org.springframework.cloud.sleuth.Span; @@ -29,6 +27,8 @@ import org.springframework.context.event.EventListener; import org.springframework.util.Assert; import org.springframework.util.StringUtils; +import java.lang.invoke.MethodHandles; + /** * A {@link HostLocator} that retrieves: * @@ -79,9 +79,9 @@ public class ServerPropertiesHostLocator implements HostLocator { return new Host(serviceName, address, port); } - @EventListener(EmbeddedServletContainerInitializedEvent.class) - public void grabPort(EmbeddedServletContainerInitializedEvent event) { - this.port = event.getEmbeddedServletContainer().getPort(); + @EventListener(ServletWebServerInitializedEvent.class) + public void onApplicationEvent(ServletWebServerInitializedEvent event) { + this.port = event.getSource().getPort(); } private Integer getPort() { diff --git a/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/SleuthStreamAutoConfigurationTest.java b/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/SleuthStreamAutoConfigurationTest.java index 113d027fc..fa73cd8f3 100644 --- a/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/SleuthStreamAutoConfigurationTest.java +++ b/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/SleuthStreamAutoConfigurationTest.java @@ -1,16 +1,11 @@ package org.springframework.cloud.sleuth.stream; -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; - import org.junit.After; import org.junit.BeforeClass; import org.junit.Test; -import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration; -import org.springframework.cloud.commons.util.UtilAutoConfiguration; +import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.test.util.EnvironmentTestUtils; +import org.springframework.cloud.commons.util.UtilAutoConfiguration; import org.springframework.cloud.sleuth.autoconfig.TraceAutoConfiguration; import org.springframework.cloud.sleuth.log.NoOpSpanLogger; import org.springframework.cloud.sleuth.log.SpanLogger; @@ -27,6 +22,11 @@ import org.springframework.scheduling.TriggerContext; import org.springframework.scheduling.support.PeriodicTrigger; import org.springframework.scheduling.support.SimpleTriggerContext; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + import static org.assertj.core.api.Assertions.assertThat; public class SleuthStreamAutoConfigurationTest { diff --git a/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/StreamSpanListenerTests.java b/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/StreamSpanListenerTests.java index e98814867..85972c74a 100644 --- a/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/StreamSpanListenerTests.java +++ b/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/StreamSpanListenerTests.java @@ -34,7 +34,7 @@ import org.junit.runner.RunWith; import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.actuate.metrics.CounterService; -import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration; +import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.cloud.commons.util.UtilAutoConfiguration; diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ServerPropertiesEndpointLocator.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ServerPropertiesEndpointLocator.java index abc481d95..6fc276ece 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ServerPropertiesEndpointLocator.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ServerPropertiesEndpointLocator.java @@ -16,19 +16,18 @@ package org.springframework.cloud.sleuth.zipkin; -import zipkin.Endpoint; - -import java.lang.invoke.MethodHandles; -import java.nio.ByteBuffer; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.boot.autoconfigure.web.ServerProperties; -import org.springframework.boot.context.embedded.EmbeddedServletContainerInitializedEvent; +import org.springframework.boot.web.servlet.context.ServletWebServerInitializedEvent; import org.springframework.cloud.commons.util.InetUtils; import org.springframework.cloud.commons.util.InetUtilsProperties; import org.springframework.context.event.EventListener; import org.springframework.util.StringUtils; +import zipkin.Endpoint; + +import java.lang.invoke.MethodHandles; +import java.nio.ByteBuffer; /** * {@link EndpointLocator} implementation that: @@ -84,9 +83,9 @@ public class ServerPropertiesEndpointLocator implements EndpointLocator { .build(); } - @EventListener(EmbeddedServletContainerInitializedEvent.class) - public void grabPort(EmbeddedServletContainerInitializedEvent event) { - this.port = event.getEmbeddedServletContainer().getPort(); + @EventListener(ServletWebServerInitializedEvent.class) + public void onApplicationEvent(ServletWebServerInitializedEvent event) { + this.port = event.getSource().getPort(); } private Integer getPort() { diff --git a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/FallbackHavingEndpointLocatorTests.java b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/FallbackHavingEndpointLocatorTests.java index 913378109..566206d39 100644 --- a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/FallbackHavingEndpointLocatorTests.java +++ b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/FallbackHavingEndpointLocatorTests.java @@ -44,7 +44,6 @@ public class FallbackHavingEndpointLocatorTests { @Test public void should_use_discovery_client_locator_by_default() { given(this.discoveryClientEndpointLocator.local()).willReturn(this.expectedEndpoint); - given(this.serverPropertiesEndpointLocator.local()).willThrow(new RuntimeException()); FallbackHavingEndpointLocator sut = new FallbackHavingEndpointLocator(this.discoveryClientEndpointLocator, this.serverPropertiesEndpointLocator);