Pārlūkot izejas kodu

Move some classes out of `javaagent-instrumentation-api` (#5841)

* Move concurrent instrumentation utils out from javaagent-instrumentation-api

* Move AgentLogEmitterProvider, InstrumentedTaskClasses and OpenTelemetrySdkAccess out of javaagent-instrumentation-api
Mateusz Rzeszutek 2 gadi atpakaļ
vecāks
revīzija
7c760acea6
58 mainītis faili ar 93 papildinājumiem un 77 dzēšanām
  1. 2 2
      conventions/src/main/kotlin/otel.javaagent-bootstrap.gradle.kts
  2. 2 0
      instrumentation/akka/akka-actor-2.5/javaagent/build.gradle.kts
  3. 2 2
      instrumentation/akka/akka-actor-2.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkaactor/AkkaActorCellInstrumentation.java
  4. 2 2
      instrumentation/akka/akka-actor-2.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkaactor/AkkaDefaultSystemMessageQueueInstrumentation.java
  5. 2 2
      instrumentation/akka/akka-actor-2.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkaactor/AkkaDispatcherInstrumentation.java
  6. 2 0
      instrumentation/akka/akka-actor-fork-join-2.5/javaagent/build.gradle.kts
  7. 2 2
      instrumentation/akka/akka-actor-fork-join-2.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkaactor/AkkaForkJoinPoolInstrumentation.java
  8. 2 2
      instrumentation/akka/akka-actor-fork-join-2.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkaactor/AkkaForkJoinTaskInstrumentation.java
  9. 2 0
      instrumentation/aws-lambda/aws-lambda-core-1.0/javaagent/build.gradle.kts
  10. 1 1
      instrumentation/aws-lambda/aws-lambda-core-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awslambdacore/v1_0/AwsLambdaRequestHandlerInstrumentation.java
  11. 2 0
      instrumentation/aws-lambda/aws-lambda-events-2.2/javaagent/build.gradle.kts
  12. 1 1
      instrumentation/aws-lambda/aws-lambda-events-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awslambdaevents/v2_2/AwsLambdaRequestHandlerInstrumentation.java
  13. 3 0
      instrumentation/executors/bootstrap/build.gradle.kts
  14. 2 2
      instrumentation/executors/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/concurrent/ExecutorAdviceHelper.java
  15. 1 1
      instrumentation/executors/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/concurrent/PropagatedContext.java
  16. 1 1
      instrumentation/executors/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/concurrent/TaskAdviceHelper.java
  17. 2 0
      instrumentation/executors/javaagent/build.gradle.kts
  18. 2 2
      instrumentation/executors/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/javaconcurrent/CallableInstrumentation.java
  19. 2 2
      instrumentation/executors/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/javaconcurrent/FutureInstrumentation.java
  20. 2 2
      instrumentation/executors/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/javaconcurrent/JavaExecutorInstrumentation.java
  21. 3 3
      instrumentation/executors/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/javaconcurrent/JavaForkJoinTaskInstrumentation.java
  22. 2 2
      instrumentation/executors/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/javaconcurrent/RunnableInstrumentation.java
  23. 2 0
      instrumentation/guava-10.0/javaagent/build.gradle.kts
  24. 2 2
      instrumentation/guava-10.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/guava/GuavaListenableFutureInstrumentation.java
  25. 1 0
      instrumentation/java-util-logging/javaagent/build.gradle.kts
  26. 1 1
      instrumentation/java-util-logging/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jul/JavaUtilLoggingHelper.java
  27. 1 0
      instrumentation/jboss-logmanager-1.1/javaagent/build.gradle.kts
  28. 1 1
      instrumentation/jboss-logmanager-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/v1_1/LoggingEventMapper.java
  29. 2 0
      instrumentation/jetty/jetty-8.0/javaagent/build.gradle.kts
  30. 2 2
      instrumentation/jetty/jetty-8.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jetty/v8_0/JettyQueuedThreadPoolInstrumentation.java
  31. 1 0
      instrumentation/log4j/log4j-appender-1.2/javaagent/build.gradle.kts
  32. 1 1
      instrumentation/log4j/log4j-appender-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v1_2/LogEventMapper.java
  33. 1 0
      instrumentation/log4j/log4j-appender-2.16/javaagent/build.gradle.kts
  34. 1 1
      instrumentation/log4j/log4j-appender-2.16/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_16/Log4jHelper.java
  35. 1 0
      instrumentation/logback/logback-appender-1.0/javaagent/build.gradle.kts
  36. 1 1
      instrumentation/logback/logback-appender-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/logback/appender/v1_0/LogbackInstrumentation.java
  37. 2 0
      instrumentation/okhttp/okhttp-2.2/javaagent/build.gradle.kts
  38. 2 2
      instrumentation/okhttp/okhttp-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/okhttp/v2_2/DispatcherInstrumentation.java
  39. 2 9
      instrumentation/okhttp/okhttp-3.0/javaagent/build.gradle.kts
  40. 2 2
      instrumentation/okhttp/okhttp-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/okhttp/v3_0/OkHttp3DispatcherInstrumentation.java
  41. 2 0
      instrumentation/scala-fork-join-2.8/javaagent/build.gradle.kts
  42. 2 2
      instrumentation/scala-fork-join-2.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/scalaexecutors/ScalaForkJoinPoolInstrumentation.java
  43. 2 2
      instrumentation/scala-fork-join-2.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/scalaexecutors/ScalaForkJoinTaskInstrumentation.java
  44. 2 0
      instrumentation/spring/spring-core-2.0/javaagent/build.gradle.kts
  45. 2 2
      instrumentation/spring/spring-core-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/core/SimpleAsyncTaskExecutorInstrumentation.java
  46. 0 1
      instrumentation/undertow-1.4/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/undertow/KeyHolder.java
  47. 1 0
      instrumentation/undertow-1.4/javaagent/build.gradle.kts
  48. 2 2
      instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/HttpServerExchangeInstrumentation.java
  49. 1 0
      javaagent-bootstrap/build.gradle.kts
  50. 1 5
      javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/AgentLogEmitterProvider.java
  51. 1 5
      javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/InstrumentedTaskClasses.java
  52. 1 1
      javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/OpenTelemetrySdkAccess.java
  53. 1 1
      javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentInstaller.java
  54. 2 2
      javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/OpenTelemetryInstaller.java
  55. 1 1
      javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/OpenTelemetryInstallerTest.groovy
  56. 1 0
      settings.gradle.kts
  57. 2 1
      testing/agent-exporter/build.gradle.kts
  58. 1 1
      testing/agent-exporter/src/main/java/io/opentelemetry/javaagent/testing/exporter/AgentTestingLogsCustomizer.java

+ 2 - 2
conventions/src/main/kotlin/otel.javaagent-bootstrap.gradle.kts

@@ -11,9 +11,9 @@ base.archivesName.set(projectDir.parentFile.name + "-bootstrap")
 dependencies {
   compileOnly("io.opentelemetry:opentelemetry-api")
   compileOnly(project(":instrumentation-api"))
-  compileOnly(project(":javaagent-instrumentation-api"))
+  compileOnly(project(":javaagent-bootstrap"))
 
   testImplementation("io.opentelemetry:opentelemetry-api")
   testImplementation(project(":instrumentation-api"))
-  testImplementation(project(":javaagent-instrumentation-api"))
+  testImplementation(project(":javaagent-bootstrap"))
 }

+ 2 - 0
instrumentation/akka/akka-actor-2.5/javaagent/build.gradle.kts

@@ -22,6 +22,8 @@ muzzle {
 }
 
 dependencies {
+  bootstrap(project(":instrumentation:executors:bootstrap"))
+
   compileOnly("com.typesafe.akka:akka-actor_2.11:2.5.0")
   testImplementation("com.typesafe.akka:akka-actor_2.11:2.5.0")
 

+ 2 - 2
instrumentation/akka/akka-actor-2.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkaactor/AkkaActorCellInstrumentation.java

@@ -12,10 +12,10 @@ import akka.dispatch.Envelope;
 import akka.dispatch.sysmsg.SystemMessage;
 import io.opentelemetry.context.Scope;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
+import io.opentelemetry.javaagent.bootstrap.concurrent.TaskAdviceHelper;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.TaskAdviceHelper;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;
 import net.bytebuddy.matcher.ElementMatcher;

+ 2 - 2
instrumentation/akka/akka-actor-2.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkaactor/AkkaDefaultSystemMessageQueueInstrumentation.java

@@ -13,11 +13,11 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
 import akka.dispatch.sysmsg.SystemMessage;
 import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.ExecutorAdviceHelper;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
 import io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.ExecutorAdviceHelper;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;
 import net.bytebuddy.matcher.ElementMatcher;

+ 2 - 2
instrumentation/akka/akka-actor-2.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkaactor/AkkaDispatcherInstrumentation.java

@@ -11,11 +11,11 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
 import akka.dispatch.Envelope;
 import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.ExecutorAdviceHelper;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
 import io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.ExecutorAdviceHelper;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;
 import net.bytebuddy.matcher.ElementMatcher;

+ 2 - 0
instrumentation/akka/akka-actor-fork-join-2.5/javaagent/build.gradle.kts

@@ -12,6 +12,8 @@ muzzle {
 }
 
 dependencies {
+  bootstrap(project(":instrumentation:executors:bootstrap"))
+
   library("com.typesafe.akka:akka-actor_2.11:2.5.0")
 
   testImplementation(project(":instrumentation:executors:testing"))

+ 2 - 2
instrumentation/akka/akka-actor-fork-join-2.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkaactor/AkkaForkJoinPoolInstrumentation.java

@@ -11,11 +11,11 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
 import akka.dispatch.forkjoin.ForkJoinTask;
 import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.ExecutorAdviceHelper;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
 import io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.ExecutorAdviceHelper;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;
 import net.bytebuddy.matcher.ElementMatcher;

+ 2 - 2
instrumentation/akka/akka-actor-fork-join-2.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/akkaactor/AkkaForkJoinTaskInstrumentation.java

@@ -16,10 +16,10 @@ import akka.dispatch.forkjoin.ForkJoinPool;
 import akka.dispatch.forkjoin.ForkJoinTask;
 import io.opentelemetry.context.Scope;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
+import io.opentelemetry.javaagent.bootstrap.concurrent.TaskAdviceHelper;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.TaskAdviceHelper;
 import java.util.concurrent.Callable;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;

+ 2 - 0
instrumentation/aws-lambda/aws-lambda-core-1.0/javaagent/build.gradle.kts

@@ -12,6 +12,8 @@ muzzle {
 }
 
 dependencies {
+  compileOnly(project(":javaagent-bootstrap"))
+
   implementation(project(":instrumentation:aws-lambda:aws-lambda-core-1.0:library"))
 
   library("com.amazonaws:aws-lambda-java-core:1.0.0")

+ 1 - 1
instrumentation/aws-lambda/aws-lambda-core-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awslambdacore/v1_0/AwsLambdaRequestHandlerInstrumentation.java

@@ -16,9 +16,9 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
 import com.amazonaws.services.lambda.runtime.Context;
 import io.opentelemetry.context.Scope;
 import io.opentelemetry.instrumentation.awslambdacore.v1_0.AwsLambdaRequest;
+import io.opentelemetry.javaagent.bootstrap.OpenTelemetrySdkAccess;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
-import io.opentelemetry.javaagent.instrumentation.api.OpenTelemetrySdkAccess;
 import java.util.Collections;
 import java.util.concurrent.TimeUnit;
 import net.bytebuddy.asm.Advice;

+ 2 - 0
instrumentation/aws-lambda/aws-lambda-events-2.2/javaagent/build.gradle.kts

@@ -13,6 +13,8 @@ muzzle {
 }
 
 dependencies {
+  compileOnly(project(":javaagent-bootstrap"))
+
   implementation(project(":instrumentation:aws-lambda:aws-lambda-core-1.0:library"))
 
   implementation(project(":instrumentation:aws-lambda:aws-lambda-events-2.2:library")) {

+ 1 - 1
instrumentation/aws-lambda/aws-lambda-events-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awslambdaevents/v2_2/AwsLambdaRequestHandlerInstrumentation.java

@@ -16,9 +16,9 @@ import com.amazonaws.services.lambda.runtime.Context;
 import com.amazonaws.services.lambda.runtime.events.SQSEvent;
 import io.opentelemetry.context.Scope;
 import io.opentelemetry.instrumentation.awslambdacore.v1_0.AwsLambdaRequest;
+import io.opentelemetry.javaagent.bootstrap.OpenTelemetrySdkAccess;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
-import io.opentelemetry.javaagent.instrumentation.api.OpenTelemetrySdkAccess;
 import java.util.Collections;
 import java.util.concurrent.TimeUnit;
 import net.bytebuddy.asm.Advice;

+ 3 - 0
instrumentation/executors/bootstrap/build.gradle.kts

@@ -0,0 +1,3 @@
+plugins {
+  id("otel.javaagent-bootstrap")
+}

+ 2 - 2
javaagent-instrumentation-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/concurrent/ExecutorAdviceHelper.java → instrumentation/executors/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/concurrent/ExecutorAdviceHelper.java

@@ -3,12 +3,12 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.javaagent.instrumentation.api.concurrent;
+package io.opentelemetry.javaagent.bootstrap.concurrent;
 
 import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
 import io.opentelemetry.instrumentation.api.internal.ContextPropagationDebug;
-import io.opentelemetry.javaagent.instrumentation.api.internal.InstrumentedTaskClasses;
+import io.opentelemetry.javaagent.bootstrap.InstrumentedTaskClasses;
 import java.util.concurrent.ExecutorService;
 import javax.annotation.Nullable;
 

+ 1 - 1
javaagent-instrumentation-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/concurrent/PropagatedContext.java → instrumentation/executors/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/concurrent/PropagatedContext.java

@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.javaagent.instrumentation.api.concurrent;
+package io.opentelemetry.javaagent.bootstrap.concurrent;
 
 import static java.util.logging.Level.FINE;
 

+ 1 - 1
javaagent-instrumentation-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/concurrent/TaskAdviceHelper.java → instrumentation/executors/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/concurrent/TaskAdviceHelper.java

@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.javaagent.instrumentation.api.concurrent;
+package io.opentelemetry.javaagent.bootstrap.concurrent;
 
 import io.opentelemetry.context.Context;
 import io.opentelemetry.context.Scope;

+ 2 - 0
instrumentation/executors/javaagent/build.gradle.kts

@@ -9,6 +9,8 @@ muzzle {
 }
 
 dependencies {
+  bootstrap(project(":instrumentation:executors:bootstrap"))
+
   testImplementation(project(":instrumentation:executors:testing"))
 }
 

+ 2 - 2
instrumentation/executors/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/javaconcurrent/CallableInstrumentation.java

@@ -12,10 +12,10 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
 
 import io.opentelemetry.context.Scope;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
+import io.opentelemetry.javaagent.bootstrap.concurrent.TaskAdviceHelper;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.TaskAdviceHelper;
 import java.util.concurrent.Callable;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;

+ 2 - 2
instrumentation/executors/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/javaconcurrent/FutureInstrumentation.java

@@ -11,10 +11,10 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
 import static net.bytebuddy.matcher.ElementMatchers.returns;
 
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.ExecutorAdviceHelper;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.ExecutorAdviceHelper;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;

+ 2 - 2
instrumentation/executors/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/javaconcurrent/JavaExecutorInstrumentation.java

@@ -15,10 +15,10 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
 
 import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.ExecutorAdviceHelper;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
 import io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.ExecutorAdviceHelper;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.concurrent.Callable;

+ 3 - 3
instrumentation/executors/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/javaconcurrent/JavaForkJoinTaskInstrumentation.java

@@ -14,12 +14,12 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
 import io.opentelemetry.context.Context;
 import io.opentelemetry.context.Scope;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.ExecutorAdviceHelper;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
+import io.opentelemetry.javaagent.bootstrap.concurrent.TaskAdviceHelper;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
 import io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.ExecutorAdviceHelper;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.TaskAdviceHelper;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ForkJoinPool;
 import java.util.concurrent.ForkJoinTask;

+ 2 - 2
instrumentation/executors/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/javaconcurrent/RunnableInstrumentation.java

@@ -12,10 +12,10 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
 
 import io.opentelemetry.context.Scope;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
+import io.opentelemetry.javaagent.bootstrap.concurrent.TaskAdviceHelper;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.TaskAdviceHelper;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;
 import net.bytebuddy.matcher.ElementMatcher;

+ 2 - 0
instrumentation/guava-10.0/javaagent/build.gradle.kts

@@ -17,6 +17,8 @@ tasks.withType<Test>().configureEach {
 }
 
 dependencies {
+  bootstrap(project(":instrumentation:executors:bootstrap"))
+
   library("com.google.guava:guava:10.0")
   compileOnly(project(":instrumentation-api-annotation-support"))
 

+ 2 - 2
instrumentation/guava-10.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/guava/GuavaListenableFutureInstrumentation.java

@@ -10,11 +10,11 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
 
 import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.ExecutorAdviceHelper;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
 import io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.ExecutorAdviceHelper;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
 import java.util.concurrent.Executor;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;

+ 1 - 0
instrumentation/java-util-logging/javaagent/build.gradle.kts

@@ -6,6 +6,7 @@ dependencies {
   compileOnly(project(":instrumentation:java-util-logging:shaded-stub-for-instrumenting"))
 
   compileOnly(project(":instrumentation-appender-api-internal"))
+  compileOnly(project(":javaagent-bootstrap"))
 
   // ensure no cross interference
   testInstrumentation(project(":instrumentation:jboss-logmanager-1.1:javaagent"))

+ 1 - 1
instrumentation/java-util-logging/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jul/JavaUtilLoggingHelper.java

@@ -12,7 +12,7 @@ import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.appender.internal.LogBuilder;
 import io.opentelemetry.instrumentation.api.appender.internal.Severity;
 import io.opentelemetry.instrumentation.api.config.Config;
-import io.opentelemetry.javaagent.instrumentation.api.appender.internal.AgentLogEmitterProvider;
+import io.opentelemetry.javaagent.bootstrap.AgentLogEmitterProvider;
 import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.io.PrintWriter;
 import java.io.StringWriter;

+ 1 - 0
instrumentation/jboss-logmanager-1.1/javaagent/build.gradle.kts

@@ -15,6 +15,7 @@ dependencies {
   library("org.jboss.logmanager:jboss-logmanager:1.1.0.GA")
 
   compileOnly(project(":instrumentation-appender-api-internal"))
+  compileOnly(project(":javaagent-bootstrap"))
 
   // ensure no cross interference
   testInstrumentation(project(":instrumentation:java-util-logging:javaagent"))

+ 1 - 1
instrumentation/jboss-logmanager-1.1/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jbosslogmanager/v1_1/LoggingEventMapper.java

@@ -15,7 +15,7 @@ import io.opentelemetry.instrumentation.api.appender.internal.LogBuilder;
 import io.opentelemetry.instrumentation.api.appender.internal.Severity;
 import io.opentelemetry.instrumentation.api.config.Config;
 import io.opentelemetry.instrumentation.api.internal.cache.Cache;
-import io.opentelemetry.javaagent.instrumentation.api.appender.internal.AgentLogEmitterProvider;
+import io.opentelemetry.javaagent.bootstrap.AgentLogEmitterProvider;
 import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.io.PrintWriter;
 import java.io.StringWriter;

+ 2 - 0
instrumentation/jetty/jetty-8.0/javaagent/build.gradle.kts

@@ -13,6 +13,8 @@ muzzle {
 }
 
 dependencies {
+  bootstrap(project(":instrumentation:executors:bootstrap"))
+
   library("org.eclipse.jetty:jetty-server:8.0.0.v20110901")
 
   implementation(project(":instrumentation:jetty:jetty-common:javaagent"))

+ 2 - 2
instrumentation/jetty/jetty-8.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jetty/v8_0/JettyQueuedThreadPoolInstrumentation.java

@@ -11,11 +11,11 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
 
 import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.ExecutorAdviceHelper;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
 import io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.ExecutorAdviceHelper;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;
 import net.bytebuddy.matcher.ElementMatcher;

+ 1 - 0
instrumentation/log4j/log4j-appender-1.2/javaagent/build.gradle.kts

@@ -17,6 +17,7 @@ dependencies {
   library("log4j:log4j:1.2.4")
 
   compileOnly(project(":instrumentation-appender-api-internal"))
+  compileOnly(project(":javaagent-bootstrap"))
 
   testImplementation("org.awaitility:awaitility")
 }

+ 1 - 1
instrumentation/log4j/log4j-appender-1.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v1_2/LogEventMapper.java

@@ -15,7 +15,7 @@ import io.opentelemetry.instrumentation.api.appender.internal.LogBuilder;
 import io.opentelemetry.instrumentation.api.appender.internal.Severity;
 import io.opentelemetry.instrumentation.api.config.Config;
 import io.opentelemetry.instrumentation.api.internal.cache.Cache;
-import io.opentelemetry.javaagent.instrumentation.api.appender.internal.AgentLogEmitterProvider;
+import io.opentelemetry.javaagent.bootstrap.AgentLogEmitterProvider;
 import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
 import java.io.PrintWriter;
 import java.io.StringWriter;

+ 1 - 0
instrumentation/log4j/log4j-appender-2.16/javaagent/build.gradle.kts

@@ -15,6 +15,7 @@ dependencies {
   library("org.apache.logging.log4j:log4j-core:2.16.0")
 
   compileOnly(project(":instrumentation-appender-api-internal"))
+  compileOnly(project(":javaagent-bootstrap"))
 
   implementation(project(":instrumentation:log4j:log4j-appender-2.16:library"))
 

+ 1 - 1
instrumentation/log4j/log4j-appender-2.16/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/log4j/appender/v2_16/Log4jHelper.java

@@ -8,7 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.log4j.appender.v2_16;
 import io.opentelemetry.instrumentation.api.appender.internal.LogBuilder;
 import io.opentelemetry.instrumentation.log4j.appender.v2_16.internal.ContextDataAccessor;
 import io.opentelemetry.instrumentation.log4j.appender.v2_16.internal.LogEventMapper;
-import io.opentelemetry.javaagent.instrumentation.api.appender.internal.AgentLogEmitterProvider;
+import io.opentelemetry.javaagent.bootstrap.AgentLogEmitterProvider;
 import java.util.Map;
 import java.util.function.BiConsumer;
 import javax.annotation.Nullable;

+ 1 - 0
instrumentation/logback/logback-appender-1.0/javaagent/build.gradle.kts

@@ -18,6 +18,7 @@ dependencies {
   library("ch.qos.logback:logback-classic:0.9.16")
 
   compileOnly(project(":instrumentation-appender-api-internal"))
+  compileOnly(project(":javaagent-bootstrap"))
 
   implementation(project(":instrumentation:logback:logback-appender-1.0:library"))
 

+ 1 - 1
instrumentation/logback/logback-appender-1.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/logback/appender/v1_0/LogbackInstrumentation.java

@@ -14,10 +14,10 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
 import ch.qos.logback.classic.spi.ILoggingEvent;
 import io.opentelemetry.instrumentation.api.appender.internal.LogEmitterProvider;
 import io.opentelemetry.instrumentation.logback.appender.v1_0.internal.LoggingEventMapper;
+import io.opentelemetry.javaagent.bootstrap.AgentLogEmitterProvider;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
 import io.opentelemetry.javaagent.instrumentation.api.CallDepth;
-import io.opentelemetry.javaagent.instrumentation.api.appender.internal.AgentLogEmitterProvider;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;
 import net.bytebuddy.matcher.ElementMatcher;

+ 2 - 0
instrumentation/okhttp/okhttp-2.2/javaagent/build.gradle.kts

@@ -16,6 +16,8 @@ muzzle {
 }
 
 dependencies {
+  bootstrap(project(":instrumentation:executors:bootstrap"))
+
   library("com.squareup.okhttp:okhttp:2.2.0")
 
   latestDepTestLibrary("com.squareup.okhttp:okhttp:2.+") // see okhttp-3.0 module

+ 2 - 2
instrumentation/okhttp/okhttp-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/okhttp/v2_2/DispatcherInstrumentation.java

@@ -10,11 +10,11 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
 
 import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.ExecutorAdviceHelper;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
 import io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.ExecutorAdviceHelper;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;
 import net.bytebuddy.matcher.ElementMatcher;

+ 2 - 9
instrumentation/okhttp/okhttp-3.0/javaagent/build.gradle.kts

@@ -11,16 +11,9 @@ muzzle {
   }
 }
 
-/*
-Note: there is a bit of dependency exclusion magic going on.
-We have to exclude all transitive dependencies on 'okhttp' because we would like to force
-specific version. We cannot use . Unfortunately we cannot just force version on
-a dependency because this doesn't work well with version ranges - it doesn't select latest.
-And we cannot use configurations to exclude this dependency from everywhere in one go
-because it looks like exclusions using configurations excludes dependency even if it explicit
-not transitive.
- */
 dependencies {
+  bootstrap(project(":instrumentation:executors:bootstrap"))
+
   implementation(project(":instrumentation:okhttp:okhttp-3.0:library"))
 
   library("com.squareup.okhttp3:okhttp:3.0.0")

+ 2 - 2
instrumentation/okhttp/okhttp-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/okhttp/v3_0/OkHttp3DispatcherInstrumentation.java

@@ -11,11 +11,11 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
 
 import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.ExecutorAdviceHelper;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
 import io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.ExecutorAdviceHelper;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;
 import net.bytebuddy.matcher.ElementMatcher;

+ 2 - 0
instrumentation/scala-fork-join-2.8/javaagent/build.gradle.kts

@@ -18,6 +18,8 @@ testSets {
 }
 
 dependencies {
+  bootstrap(project(":instrumentation:executors:bootstrap"))
+
   library("org.scala-lang:scala-library:2.8.0")
 
   latestDepTestLibrary("org.scala-lang:scala-library:2.11.+")

+ 2 - 2
instrumentation/scala-fork-join-2.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/scalaexecutors/ScalaForkJoinPoolInstrumentation.java

@@ -10,11 +10,11 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
 
 import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.ExecutorAdviceHelper;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
 import io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.ExecutorAdviceHelper;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;
 import net.bytebuddy.matcher.ElementMatcher;

+ 2 - 2
instrumentation/scala-fork-join-2.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/scalaexecutors/ScalaForkJoinTaskInstrumentation.java

@@ -14,10 +14,10 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
 
 import io.opentelemetry.context.Scope;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
+import io.opentelemetry.javaagent.bootstrap.concurrent.TaskAdviceHelper;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.TaskAdviceHelper;
 import java.util.concurrent.Callable;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;

+ 2 - 0
instrumentation/spring/spring-core-2.0/javaagent/build.gradle.kts

@@ -11,6 +11,8 @@ muzzle {
 }
 
 dependencies {
+  bootstrap(project(":instrumentation:executors:bootstrap"))
+
   library("org.springframework:spring-core:2.0")
 
   // 3.0 introduces submit() methods

+ 2 - 2
instrumentation/spring/spring-core-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/spring/core/SimpleAsyncTaskExecutorInstrumentation.java

@@ -13,11 +13,11 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
 
 import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.ExecutorAdviceHelper;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
 import io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.ExecutorAdviceHelper;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;
 import net.bytebuddy.matcher.ElementMatcher;

+ 0 - 1
instrumentation/undertow-1.4/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/undertow/KeyHolder.java

@@ -29,7 +29,6 @@ import java.util.concurrent.ConcurrentMap;
  * 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<>();
 

+ 1 - 0
instrumentation/undertow-1.4/javaagent/build.gradle.kts

@@ -14,6 +14,7 @@ muzzle {
 dependencies {
   library("io.undertow:undertow-core:2.0.0.Final")
 
+  bootstrap(project(":instrumentation:executors:bootstrap"))
   bootstrap(project(":instrumentation:servlet:servlet-common:bootstrap"))
   bootstrap(project(":instrumentation:undertow-1.4:bootstrap"))
 }

+ 2 - 2
instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/HttpServerExchangeInstrumentation.java

@@ -10,11 +10,11 @@ import static net.bytebuddy.matcher.ElementMatchers.takesArguments;
 
 import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
+import io.opentelemetry.javaagent.bootstrap.concurrent.ExecutorAdviceHelper;
+import io.opentelemetry.javaagent.bootstrap.concurrent.PropagatedContext;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
 import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
 import io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.ExecutorAdviceHelper;
-import io.opentelemetry.javaagent.instrumentation.api.concurrent.PropagatedContext;
 import java.util.concurrent.Executor;
 import net.bytebuddy.asm.Advice;
 import net.bytebuddy.description.type.TypeDescription;

+ 1 - 0
javaagent-bootstrap/build.gradle.kts

@@ -7,6 +7,7 @@ group = "io.opentelemetry.javaagent"
 
 dependencies {
   implementation(project(":instrumentation-api"))
+  implementation(project(":instrumentation-appender-api-internal"))
   implementation("org.slf4j:slf4j-api")
   implementation("org.slf4j:slf4j-simple")
 

+ 1 - 5
javaagent-instrumentation-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/appender/internal/AgentLogEmitterProvider.java → javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/AgentLogEmitterProvider.java

@@ -3,15 +3,11 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.javaagent.instrumentation.api.appender.internal;
+package io.opentelemetry.javaagent.bootstrap;
 
 import io.opentelemetry.instrumentation.api.appender.internal.LogEmitterProvider;
 import io.opentelemetry.instrumentation.api.appender.internal.LogEmitterProviderHolder;
 
-/**
- * This class is internal and is hence not for public use. Its APIs are unstable and can change at
- * any time.
- */
 public final class AgentLogEmitterProvider {
 
   private static final LogEmitterProviderHolder delegate = new LogEmitterProviderHolder();

+ 1 - 5
javaagent-instrumentation-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/internal/InstrumentedTaskClasses.java → javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/InstrumentedTaskClasses.java

@@ -3,16 +3,12 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.javaagent.instrumentation.api.internal;
+package io.opentelemetry.javaagent.bootstrap;
 
 import io.opentelemetry.instrumentation.api.config.Config;
 import java.util.function.Predicate;
 import java.util.logging.Logger;
 
-/**
- * This class is internal and is hence not for public use. Its APIs are unstable and can change at
- * any time.
- */
 public final class InstrumentedTaskClasses {
 
   private static final Logger logger = Logger.getLogger(Config.class.getName());

+ 1 - 1
javaagent-instrumentation-api/src/main/java/io/opentelemetry/javaagent/instrumentation/api/OpenTelemetrySdkAccess.java → javaagent-bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/OpenTelemetrySdkAccess.java

@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package io.opentelemetry.javaagent.instrumentation.api;
+package io.opentelemetry.javaagent.bootstrap;
 
 import java.util.concurrent.TimeUnit;
 

+ 1 - 1
javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/AgentInstaller.java

@@ -25,10 +25,10 @@ import io.opentelemetry.javaagent.bootstrap.AgentInitializer;
 import io.opentelemetry.javaagent.bootstrap.BootstrapPackagePrefixesHolder;
 import io.opentelemetry.javaagent.bootstrap.ClassFileTransformerHolder;
 import io.opentelemetry.javaagent.bootstrap.DefineClassHelper;
+import io.opentelemetry.javaagent.bootstrap.InstrumentedTaskClasses;
 import io.opentelemetry.javaagent.extension.AgentListener;
 import io.opentelemetry.javaagent.extension.ignore.IgnoredTypesConfigurer;
 import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
-import io.opentelemetry.javaagent.instrumentation.api.internal.InstrumentedTaskClasses;
 import io.opentelemetry.javaagent.tooling.asyncannotationsupport.WeakRefAsyncOperationEndStrategies;
 import io.opentelemetry.javaagent.tooling.bootstrap.BootstrapPackagesBuilderImpl;
 import io.opentelemetry.javaagent.tooling.bootstrap.BootstrapPackagesConfigurer;

+ 2 - 2
javaagent-tooling/src/main/java/io/opentelemetry/javaagent/tooling/OpenTelemetryInstaller.java

@@ -9,8 +9,8 @@ import io.opentelemetry.instrumentation.api.appender.internal.LogEmitterProvider
 import io.opentelemetry.instrumentation.api.config.Config;
 import io.opentelemetry.instrumentation.sdk.appender.internal.DelegatingLogEmitterProvider;
 import io.opentelemetry.javaagent.bootstrap.AgentInitializer;
-import io.opentelemetry.javaagent.instrumentation.api.OpenTelemetrySdkAccess;
-import io.opentelemetry.javaagent.instrumentation.api.appender.internal.AgentLogEmitterProvider;
+import io.opentelemetry.javaagent.bootstrap.AgentLogEmitterProvider;
+import io.opentelemetry.javaagent.bootstrap.OpenTelemetrySdkAccess;
 import io.opentelemetry.sdk.OpenTelemetrySdk;
 import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
 import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder;

+ 1 - 1
javaagent-tooling/src/test/groovy/io/opentelemetry/javaagent/tooling/OpenTelemetryInstallerTest.groovy

@@ -8,7 +8,7 @@ package io.opentelemetry.javaagent.tooling
 import io.opentelemetry.api.GlobalOpenTelemetry
 import io.opentelemetry.extension.noopapi.NoopOpenTelemetry
 import io.opentelemetry.instrumentation.api.config.Config
-import io.opentelemetry.javaagent.instrumentation.api.appender.internal.AgentLogEmitterProvider
+import io.opentelemetry.javaagent.bootstrap.AgentLogEmitterProvider
 import spock.lang.Specification
 
 class OpenTelemetryInstallerTest extends Specification {

+ 1 - 0
settings.gradle.kts

@@ -201,6 +201,7 @@ include(":instrumentation:elasticsearch:elasticsearch-transport-common:testing")
 include(":instrumentation:elasticsearch:elasticsearch-transport-5.0:javaagent")
 include(":instrumentation:elasticsearch:elasticsearch-transport-5.3:javaagent")
 include(":instrumentation:elasticsearch:elasticsearch-transport-6.0:javaagent")
+include(":instrumentation:executors:bootstrap")
 include(":instrumentation:executors:javaagent")
 include(":instrumentation:executors:testing")
 include(":instrumentation:external-annotations:javaagent")

+ 2 - 1
testing/agent-exporter/build.gradle.kts

@@ -11,8 +11,9 @@ dependencies {
   annotationProcessor("com.google.auto.service:auto-service")
   compileOnly("com.google.auto.service:auto-service")
 
+  compileOnly(project(":instrumentation-api"))
   compileOnly(project(":javaagent-extension-api"))
-  compileOnly(project(":javaagent-instrumentation-api"))
+  compileOnly(project(":javaagent-bootstrap"))
   compileOnly(project(":javaagent-tooling"))
 
   compileOnly(project(":instrumentation-appender-api-internal"))

+ 1 - 1
testing/agent-exporter/src/main/java/io/opentelemetry/javaagent/testing/exporter/AgentTestingLogsCustomizer.java

@@ -8,8 +8,8 @@ package io.opentelemetry.javaagent.testing.exporter;
 import com.google.auto.service.AutoService;
 import io.opentelemetry.instrumentation.api.config.Config;
 import io.opentelemetry.instrumentation.sdk.appender.internal.DelegatingLogEmitterProvider;
+import io.opentelemetry.javaagent.bootstrap.AgentLogEmitterProvider;
 import io.opentelemetry.javaagent.extension.AgentListener;
-import io.opentelemetry.javaagent.instrumentation.api.appender.internal.AgentLogEmitterProvider;
 import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
 import io.opentelemetry.sdk.logs.SdkLogEmitterProvider;
 import io.opentelemetry.sdk.logs.export.SimpleLogProcessor;