/** * This api's only purpose is to retrieve the {@link Scope#span() span}. * * Calling {@link Scope#close() close } on the returned scope has no effect on the active span */ @Override public Scope active() { BraveSpan span = currentSpan(); if (span == null) return null; return new Scope() { @Override public void close() { // no-op } @Override public Span span() { return span; } }; }
@Override public BraveScope activate(Span span, boolean finishSpanOnClose) { if (span == null) return null; if (!(span instanceof BraveSpan)) { throw new IllegalArgumentException( "Span must be an instance of brave.opentracing.BraveSpan, but was " + span.getClass()); } return newScope((BraveSpan) span, finishSpanOnClose); }
@Override public BraveSpan activeSpan() { Scope scope = this.scopeManager.active(); return scope != null ? (BraveSpan) scope.span() : null; }
BraveTracer(Builder b) { brave4 = b.tracing.tracer(); scopeManager = new BraveScopeManager(b.tracing); for (Map.Entry<Format<TextMap>, Propagation<String>> entry : b.formatToPropagation.entrySet()) { formatToInjector.put(entry.getKey(), entry.getValue().injector(TEXT_MAP_SETTER)); formatToExtractor.put(entry.getKey(), new TextMapExtractorAdaptor(entry.getValue())); } }
@Override public void close() { if (finishSpanOnClose) { wrapped.finish(); } scope.close(); source.deregister(this); }