All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.opentracing.threadcontext.ThreadContextSpan Maven / Gradle / Ivy

package io.opentracing.threadcontext;

import com.github.threadcontext.ThreadContext;
import com.github.threadcontext.ThreadLocalSaver;
import io.opentracing.NoopSpan;
import io.opentracing.Span;
import java.util.function.Supplier;

public final class ThreadContextSpan {

    private static final ThreadLocal span = new ThreadLocal() {
        protected Span initialValue() {
            return defaultSpan.get();
        }
    };
    static {
        ThreadContext.savers.add(new ThreadLocalSaver<>(span));
    }

    public static Supplier defaultSpan = () -> NoopSpan.INSTANCE;

    private ThreadContextSpan() {
    }

    public static Span get() {
        return span.get();
    }

    public static void set(Span span) {
        ThreadContextSpan.span.set(span);
    }

    public static void clear() {
        span.remove();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy