Remove two classes that were moved to another module (#3602)
This commit is contained in:
parent
ac8c1e1543
commit
fbdc6d1cd6
|
@ -1,37 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.opentelemetry.javaagent.instrumentation.api.undertow;
|
|
||||||
|
|
||||||
import java.util.IdentityHashMap;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
import java.util.concurrent.ConcurrentMap;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Undertow's {@code io.undertow.server.HttpServerExchange} uses {@code
|
|
||||||
* io.undertow.util.AttachmentKey} as a key for storing arbitrary data. It uses {@link
|
|
||||||
* IdentityHashMap} and thus all keys are compared for equality by object reference. This means that
|
|
||||||
* we cannot hold an instance of {@code io.undertow.util.AttachmentKey} in a static field of the
|
|
||||||
* corresponding Tracer, as we usually do. Tracers are loaded into user's classloaders and thus it
|
|
||||||
* is totally possible to have several instances of tracers. Each of those instances will have a
|
|
||||||
* separate value in a static field and {@code io.undertow.server.HttpServerExchange} will treat
|
|
||||||
* them as different keys then.
|
|
||||||
*
|
|
||||||
* <p>That is why this class exists and resides in a separate package. This package is treated in a
|
|
||||||
* special way and is always loaded by bootstrap classloader. This makes sure that this class is
|
|
||||||
* available to all tracers from every classloader.
|
|
||||||
*
|
|
||||||
* <p>But at the same time, being loaded by bootstrap classloader, this class itself cannot initiate
|
|
||||||
* the loading of {@code io.undertow.util.AttachmentKey} class. Class has to be loaded by <i>any</i>
|
|
||||||
* classloader that has it, e.g. by the classloader of a Tracer that uses this key holder. After
|
|
||||||
* that, <i>all</i> Tracers, loaded by all classloaders, will be able to use exactly the same sole
|
|
||||||
* instance of the key.
|
|
||||||
*/
|
|
||||||
// TODO allow instrumentation to have their own classes that should go to bootstrap classloader
|
|
||||||
public final class KeyHolder {
|
|
||||||
public static final ConcurrentMap<Class<?>, Object> contextKeys = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
private KeyHolder() {}
|
|
||||||
}
|
|
|
@ -1,48 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright The OpenTelemetry Authors
|
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
package io.opentelemetry.javaagent.instrumentation.api.undertow;
|
|
||||||
|
|
||||||
import io.opentelemetry.context.Context;
|
|
||||||
import io.opentelemetry.context.ContextKey;
|
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
|
||||||
|
|
||||||
/** Helper container for keeping track of request processing state in undertow. */
|
|
||||||
public final class UndertowActiveHandlers {
|
|
||||||
private static final ContextKey<AtomicInteger> CONTEXT_KEY =
|
|
||||||
ContextKey.named("opentelemetry-undertow-active-handlers");
|
|
||||||
|
|
||||||
private UndertowActiveHandlers() {}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Attach to context.
|
|
||||||
*
|
|
||||||
* @param context server context
|
|
||||||
* @param initialValue initial value for counter
|
|
||||||
* @return new context
|
|
||||||
*/
|
|
||||||
public static Context init(Context context, int initialValue) {
|
|
||||||
return context.with(CONTEXT_KEY, new AtomicInteger(initialValue));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Increment counter.
|
|
||||||
*
|
|
||||||
* @param context server context
|
|
||||||
*/
|
|
||||||
public static void increment(Context context) {
|
|
||||||
context.get(CONTEXT_KEY).incrementAndGet();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Decrement counter.
|
|
||||||
*
|
|
||||||
* @param context server context
|
|
||||||
* @return value of counter after decrementing it
|
|
||||||
*/
|
|
||||||
public static int decrementAndGet(Context context) {
|
|
||||||
return context.get(CONTEXT_KEY).decrementAndGet();
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue