From 79c49c54825d0332400b3bc286cb555a5dbda30f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Basl=C3=A9?= Date: Wed, 13 Jun 2018 20:08:23 +0200 Subject: [PATCH] follow-up to #995 All SpanSubscription now fake QueueSubscription (#1008) * follow-up to #995 All SpanSubscription now fake QueueSubscription * Abide by checkstyle's rules --- .../instrument/reactor/SpanSubscriber.java | 32 ++---------------- .../instrument/reactor/SpanSubscription.java | 33 ++++++++++++++++++- 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SpanSubscriber.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SpanSubscriber.java index 3b6a01f24..7e86873a4 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SpanSubscriber.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SpanSubscriber.java @@ -16,19 +16,18 @@ package org.springframework.cloud.sleuth.instrument.reactor; -import java.util.concurrent.atomic.AtomicBoolean; - import brave.Span; import brave.Tracer; import brave.Tracing; import brave.propagation.TraceContextOrSamplingFlags; import org.reactivestreams.Subscriber; import org.reactivestreams.Subscription; -import reactor.core.Fuseable; import reactor.util.Logger; import reactor.util.Loggers; import reactor.util.context.Context; +import java.util.concurrent.atomic.AtomicBoolean; + /** * A trace representation of the {@link Subscriber} * @@ -36,32 +35,7 @@ import reactor.util.context.Context; * @author Marcin Grzejszczak * @since 2.0.0 */ -final class SpanSubscriber extends AtomicBoolean implements SpanSubscription, Fuseable.QueueSubscription { - - @Override - public T poll() { - return null; - } - - @Override - public int requestFusion(int i) { - return Fuseable.NONE; //always negotiate to no fusion - } - - @Override - public int size() { - return 0; - } - - @Override - public boolean isEmpty() { - return true; - } - - @Override - public void clear() { - //NO-OP - } +final class SpanSubscriber extends AtomicBoolean implements SpanSubscription { private static final Logger log = Loggers.getLogger( SpanSubscriber.class); diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SpanSubscription.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SpanSubscription.java index c1992e39e..d62183daa 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SpanSubscription.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SpanSubscription.java @@ -18,9 +18,40 @@ package org.springframework.cloud.sleuth.instrument.reactor; import org.reactivestreams.Subscription; import reactor.core.CoreSubscriber; +import reactor.core.Fuseable; /** + * A {@link SpanSubscription} is a {@link Subscription} that fakes being {@link Fuseable} + * (implementing {@link reactor.core.Fuseable.QueueSubscription} with default no-op methods + * and always negotiating fusion to be {@link Fuseable#NONE}). + * * @author Marcin Grzejszczak */ -interface SpanSubscription extends Subscription, CoreSubscriber { +interface SpanSubscription extends Subscription, CoreSubscriber, Fuseable.QueueSubscription { + + @Override + default T poll() { + return null; + } + + @Override + default int requestFusion(int i) { + return Fuseable.NONE; //always negotiate to no fusion + } + + @Override + default int size() { + return 0; + } + + @Override + default boolean isEmpty() { + return true; + } + + @Override + default void clear() { + //NO-OP + } + }