Remove two classes that were moved to another module (#3602)

This commit is contained in:
Mateusz Rzeszutek 2021-07-16 19:37:54 +02:00 committed by GitHub
parent ac8c1e1543
commit fbdc6d1cd6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 0 additions and 85 deletions

View File

@ -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() {}
}

View File

@ -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();
}
}