Browse Source

Move `AppServerBridge` and `MappingResolver` to `servlet-common:bootstrap` (#4817)

* Move AppServerBridge and MappingResolver to servlet-common:bootstrap

* Introduce additional gradle configuration for bootstrap libs
Mateusz Rzeszutek 3 years ago
parent
commit
075434c5bc
48 changed files with 88 additions and 48 deletions
  1. 15 1
      conventions/src/main/kotlin/otel.javaagent-instrumentation.gradle.kts
  2. 1 1
      instrumentation/jaxrs/jaxrs-1.0/javaagent/build.gradle.kts
  3. 1 1
      instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-common/javaagent/build.gradle.kts
  4. 1 1
      instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-cxf-3.2/javaagent/build.gradle.kts
  5. 1 1
      instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-jersey-2.0/javaagent/build.gradle.kts
  6. 1 1
      instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-3.0/javaagent/build.gradle.kts
  7. 1 1
      instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-common/javaagent/build.gradle.kts
  8. 4 2
      instrumentation/jetty/jetty-11.0/javaagent/build.gradle.kts
  9. 1 1
      instrumentation/jetty/jetty-11.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jetty/v11_0/Jetty11Singletons.java
  10. 4 2
      instrumentation/jetty/jetty-8.0/javaagent/build.gradle.kts
  11. 1 1
      instrumentation/jetty/jetty-8.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jetty/v8_0/Jetty8Singletons.java
  12. 1 2
      instrumentation/kafka-clients/kafka-clients-0.11/javaagent/build.gradle.kts
  13. 1 1
      instrumentation/kafka-streams-0.11/javaagent/build.gradle.kts
  14. 2 0
      instrumentation/liberty/liberty/javaagent/build.gradle.kts
  15. 1 1
      instrumentation/liberty/liberty/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/LibertyHelper.java
  16. 1 1
      instrumentation/liberty/liberty/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/LibertySingletons.java
  17. 1 1
      instrumentation/rmi/javaagent/build.gradle.kts
  18. 3 1
      instrumentation/servlet/servlet-2.2/javaagent/build.gradle.kts
  19. 1 1
      instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2Advice.java
  20. 3 1
      instrumentation/servlet/servlet-3.0/javaagent/build.gradle.kts
  21. 2 2
      instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3Advice.java
  22. 1 1
      instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3FilterInitAdvice.java
  23. 1 1
      instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3InitAdvice.java
  24. 1 1
      instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3Singletons.java
  25. 1 0
      instrumentation/servlet/servlet-5.0/javaagent/build.gradle.kts
  26. 1 1
      instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/Servlet5Singletons.java
  27. 1 1
      instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletFilterInitAdvice.java
  28. 1 1
      instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletInitAdvice.java
  29. 2 2
      instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletServiceAdvice.java
  30. 3 0
      instrumentation/servlet/servlet-common/bootstrap/build.gradle.kts
  31. 1 1
      instrumentation/servlet/servlet-common/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/servlet/AppServerBridge.java
  32. 1 1
      instrumentation/servlet/servlet-common/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/servlet/MappingResolver.java
  33. 4 0
      instrumentation/servlet/servlet-common/javaagent/build.gradle.kts
  34. 2 2
      instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/BaseServletHelper.java
  35. 1 1
      instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletInstrumenterBuilder.java
  36. 1 1
      instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletMappingResolverFactory.java
  37. 1 1
      instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletSpanNameExtractor.java
  38. 1 1
      instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletSpanNameProvider.java
  39. 1 1
      instrumentation/spring/spring-kafka-2.7/javaagent/build.gradle.kts
  40. 4 1
      instrumentation/tomcat/tomcat-10.0/javaagent/build.gradle.kts
  41. 4 1
      instrumentation/tomcat/tomcat-7.0/javaagent/build.gradle.kts
  42. 1 0
      instrumentation/tomcat/tomcat-common/javaagent/build.gradle.kts
  43. 1 1
      instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatHelper.java
  44. 1 1
      instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatInstrumenterFactory.java
  45. 2 1
      instrumentation/undertow-1.4/javaagent/build.gradle.kts
  46. 1 1
      instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/UndertowHelper.java
  47. 1 1
      instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/UndertowSingletons.java
  48. 1 0
      settings.gradle.kts

+ 15 - 1
conventions/src/main/kotlin/otel.javaagent-instrumentation.gradle.kts

@@ -7,4 +7,18 @@ plugins {
 
 extra["mavenGroupId"] = "io.opentelemetry.javaagent.instrumentation"
 
-base.archivesName.set(projectDir.parentFile.name)
+base.archivesName.set(projectDir.parentFile.name)
+
+configurations {
+  val bootstrap by creating {
+    isCanBeResolved = false
+    isCanBeConsumed = false
+  }
+
+  named("compileOnly") {
+    extendsFrom(bootstrap)
+  }
+  named("muzzleBootstrap") {
+    extendsFrom(bootstrap)
+  }
+}

+ 1 - 1
instrumentation/jaxrs/jaxrs-1.0/javaagent/build.gradle.kts

@@ -16,7 +16,7 @@ muzzle {
 }
 
 dependencies {
-  compileOnly(project(":instrumentation:jaxrs:jaxrs-common:bootstrap"))
+  bootstrap(project(":instrumentation:jaxrs:jaxrs-common:bootstrap"))
 
   compileOnly("javax.ws.rs:jsr311-api:1.1.1")
 

+ 1 - 1
instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-common/javaagent/build.gradle.kts

@@ -16,7 +16,7 @@ muzzle {
 }
 
 dependencies {
-  compileOnly(project(":instrumentation:jaxrs:jaxrs-common:bootstrap"))
+  bootstrap(project(":instrumentation:jaxrs:jaxrs-common:bootstrap"))
 
   compileOnly("javax.ws.rs:javax.ws.rs-api:2.0")
 

+ 1 - 1
instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-cxf-3.2/javaagent/build.gradle.kts

@@ -21,7 +21,7 @@ muzzle {
 }
 
 dependencies {
-  compileOnly(project(":instrumentation:jaxrs:jaxrs-common:bootstrap"))
+  bootstrap(project(":instrumentation:jaxrs:jaxrs-common:bootstrap"))
 
   compileOnly("javax.ws.rs:javax.ws.rs-api:2.0")
   compileOnly("javax.servlet:javax.servlet-api:3.1.0")

+ 1 - 1
instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-jersey-2.0/javaagent/build.gradle.kts

@@ -20,7 +20,7 @@ muzzle {
 }
 
 dependencies {
-  compileOnly(project(":instrumentation:jaxrs:jaxrs-common:bootstrap"))
+  bootstrap(project(":instrumentation:jaxrs:jaxrs-common:bootstrap"))
 
   compileOnly("javax.ws.rs:javax.ws.rs-api:2.0")
   compileOnly("javax.servlet:javax.servlet-api:3.1.0")

+ 1 - 1
instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-3.0/javaagent/build.gradle.kts

@@ -23,7 +23,7 @@ muzzle {
 }
 
 dependencies {
-  compileOnly(project(":instrumentation:jaxrs:jaxrs-common:bootstrap"))
+  bootstrap(project(":instrumentation:jaxrs:jaxrs-common:bootstrap"))
 
   compileOnly("javax.ws.rs:javax.ws.rs-api:2.0")
   library("org.jboss.resteasy:resteasy-jaxrs:3.0.0.Final")

+ 1 - 1
instrumentation/jaxrs/jaxrs-2.0/jaxrs-2.0-resteasy-common/javaagent/build.gradle.kts

@@ -3,7 +3,7 @@ plugins {
 }
 
 dependencies {
-  compileOnly(project(":instrumentation:jaxrs:jaxrs-common:bootstrap"))
+  bootstrap(project(":instrumentation:jaxrs:jaxrs-common:bootstrap"))
 
   compileOnly("javax.ws.rs:javax.ws.rs-api:2.0")
   compileOnly("org.jboss.resteasy:resteasy-jaxrs:3.1.0.Final")

+ 4 - 2
instrumentation/jetty/jetty-11.0/javaagent/build.gradle.kts

@@ -11,9 +11,11 @@ muzzle {
 }
 
 dependencies {
-  library("org.eclipse.jetty:jetty-server:11.0.0")
-  implementation(project(":instrumentation:servlet:servlet-5.0:javaagent"))
   implementation(project(":instrumentation:jetty:jetty-common:javaagent"))
+  implementation(project(":instrumentation:servlet:servlet-5.0:javaagent"))
+  bootstrap(project(":instrumentation:servlet:servlet-common:bootstrap"))
+
+  library("org.eclipse.jetty:jetty-server:11.0.0")
 
   testInstrumentation(project(":instrumentation:jetty:jetty-8.0:javaagent"))
 

+ 1 - 1
instrumentation/jetty/jetty-11.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jetty/v11_0/Jetty11Singletons.java

@@ -8,8 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.jetty.v11_0;
 import static io.opentelemetry.instrumentation.api.servlet.ServerSpanNaming.Source.CONTAINER;
 
 import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
-import io.opentelemetry.instrumentation.api.servlet.AppServerBridge;
 import io.opentelemetry.instrumentation.api.servlet.ServerSpanNaming;
+import io.opentelemetry.javaagent.bootstrap.servlet.AppServerBridge;
 import io.opentelemetry.javaagent.instrumentation.jetty.common.JettyHelper;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletInstrumenterBuilder;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletRequestContext;

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

@@ -13,9 +13,11 @@ muzzle {
 }
 
 dependencies {
-  library("org.eclipse.jetty:jetty-server:8.0.0.v20110901")
-  implementation(project(":instrumentation:servlet:servlet-3.0:javaagent"))
   implementation(project(":instrumentation:jetty:jetty-common:javaagent"))
+  implementation(project(":instrumentation:servlet:servlet-3.0:javaagent"))
+  bootstrap(project(":instrumentation:servlet:servlet-common:bootstrap"))
+
+  library("org.eclipse.jetty:jetty-server:8.0.0.v20110901")
 
   testInstrumentation(project(":instrumentation:servlet:servlet-javax-common:javaagent"))
   testInstrumentation(project(":instrumentation:jetty:jetty-11.0:javaagent"))

+ 1 - 1
instrumentation/jetty/jetty-8.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jetty/v8_0/Jetty8Singletons.java

@@ -8,8 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.jetty.v8_0;
 import static io.opentelemetry.instrumentation.api.servlet.ServerSpanNaming.Source.CONTAINER;
 
 import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
-import io.opentelemetry.instrumentation.api.servlet.AppServerBridge;
 import io.opentelemetry.instrumentation.api.servlet.ServerSpanNaming;
+import io.opentelemetry.javaagent.bootstrap.servlet.AppServerBridge;
 import io.opentelemetry.javaagent.instrumentation.jetty.common.JettyHelper;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletInstrumenterBuilder;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletRequestContext;

+ 1 - 2
instrumentation/kafka-clients/kafka-clients-0.11/javaagent/build.gradle.kts

@@ -7,7 +7,6 @@ muzzle {
     group.set("org.apache.kafka")
     module.set("kafka-clients")
     versions.set("[0.11.0.0,)")
-    extraDependency(project(":instrumentation:kafka-clients:kafka-clients-0.11:bootstrap"))
     assertInverse.set(true)
   }
 }
@@ -16,7 +15,7 @@ dependencies {
   compileOnly("com.google.auto.value:auto-value-annotations")
   annotationProcessor("com.google.auto.value:auto-value")
 
-  compileOnly(project(":instrumentation:kafka-clients:kafka-clients-0.11:bootstrap"))
+  bootstrap(project(":instrumentation:kafka-clients:kafka-clients-0.11:bootstrap"))
   implementation(project(":instrumentation:kafka-clients:kafka-clients-common:library"))
 
   library("org.apache.kafka:kafka-clients:0.11.0.0")

+ 1 - 1
instrumentation/kafka-streams-0.11/javaagent/build.gradle.kts

@@ -12,7 +12,7 @@ muzzle {
 }
 
 dependencies {
-  compileOnly(project(":instrumentation:kafka-clients:kafka-clients-0.11:bootstrap"))
+  bootstrap(project(":instrumentation:kafka-clients:kafka-clients-0.11:bootstrap"))
   implementation(project(":instrumentation:kafka-clients:kafka-clients-common:library"))
 
   library("org.apache.kafka:kafka-streams:0.11.0.0")

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

@@ -6,6 +6,8 @@ plugins {
 // liberty module has access to servlet api while liberty-dispatcher does not
 
 dependencies {
+  bootstrap(project(":instrumentation:servlet:servlet-common:bootstrap"))
+
   compileOnly("javax.servlet:javax.servlet-api:3.0.1")
 
   implementation(project(":instrumentation:servlet:servlet-common:javaagent"))

+ 1 - 1
instrumentation/liberty/liberty/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/LibertyHelper.java

@@ -8,7 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.liberty;
 import io.opentelemetry.context.Context;
 import io.opentelemetry.context.Scope;
 import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
-import io.opentelemetry.instrumentation.api.servlet.AppServerBridge;
+import io.opentelemetry.javaagent.bootstrap.servlet.AppServerBridge;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletAccessor;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletHelper;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletRequestContext;

+ 1 - 1
instrumentation/liberty/liberty/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/LibertySingletons.java

@@ -8,8 +8,8 @@ package io.opentelemetry.javaagent.instrumentation.liberty;
 import static io.opentelemetry.instrumentation.api.servlet.ServerSpanNaming.Source.CONTAINER;
 
 import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
-import io.opentelemetry.instrumentation.api.servlet.AppServerBridge;
 import io.opentelemetry.instrumentation.api.servlet.ServerSpanNaming;
+import io.opentelemetry.javaagent.bootstrap.servlet.AppServerBridge;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletInstrumenterBuilder;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletRequestContext;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletResponseContext;

+ 1 - 1
instrumentation/rmi/javaagent/build.gradle.kts

@@ -12,7 +12,7 @@ dependencies {
   compileOnly("com.google.auto.value:auto-value-annotations")
   annotationProcessor("com.google.auto.value:auto-value")
 
-  compileOnly(project(":instrumentation:rmi:bootstrap"))
+  bootstrap(project(":instrumentation:rmi:bootstrap"))
 }
 
 // We cannot use "--release" javac option here because that will forbid importing "sun.rmi" package.

+ 3 - 1
instrumentation/servlet/servlet-2.2/javaagent/build.gradle.kts

@@ -18,9 +18,11 @@ muzzle {
 }
 
 dependencies {
-  compileOnly("javax.servlet:servlet-api:2.2")
   implementation(project(":instrumentation:servlet:servlet-common:javaagent"))
   implementation(project(":instrumentation:servlet:servlet-javax-common:javaagent"))
+  bootstrap(project(":instrumentation:servlet:servlet-common:bootstrap"))
+
+  compileOnly("javax.servlet:servlet-api:2.2")
 
   testInstrumentation(project(":instrumentation:servlet:servlet-3.0:javaagent"))
 

+ 1 - 1
instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2Advice.java

@@ -10,7 +10,7 @@ import static io.opentelemetry.javaagent.instrumentation.servlet.v2_2.Servlet2Si
 import io.opentelemetry.context.Context;
 import io.opentelemetry.context.Scope;
 import io.opentelemetry.instrumentation.api.field.VirtualField;
-import io.opentelemetry.instrumentation.api.servlet.AppServerBridge;
+import io.opentelemetry.javaagent.bootstrap.servlet.AppServerBridge;
 import io.opentelemetry.javaagent.instrumentation.api.CallDepth;
 import io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletRequestContext;

+ 3 - 1
instrumentation/servlet/servlet-3.0/javaagent/build.gradle.kts

@@ -16,9 +16,11 @@ muzzle {
 }
 
 dependencies {
-  compileOnly("javax.servlet:javax.servlet-api:3.0.1")
   api(project(":instrumentation:servlet:servlet-common:javaagent"))
   api(project(":instrumentation:servlet:servlet-javax-common:javaagent"))
+  bootstrap(project(":instrumentation:servlet:servlet-common:bootstrap"))
+
+  compileOnly("javax.servlet:javax.servlet-api:3.0.1")
 
   testInstrumentation(project(":instrumentation:jetty:jetty-8.0:javaagent"))
 

+ 2 - 2
instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3Advice.java

@@ -9,9 +9,9 @@ import static io.opentelemetry.javaagent.instrumentation.servlet.v3_0.Servlet3Si
 
 import io.opentelemetry.context.Context;
 import io.opentelemetry.context.Scope;
-import io.opentelemetry.instrumentation.api.servlet.AppServerBridge;
-import io.opentelemetry.instrumentation.api.servlet.MappingResolver;
 import io.opentelemetry.instrumentation.api.tracer.ServerSpan;
+import io.opentelemetry.javaagent.bootstrap.servlet.AppServerBridge;
+import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
 import io.opentelemetry.javaagent.instrumentation.api.CallDepth;
 import io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletRequestContext;

+ 1 - 1
instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3FilterInitAdvice.java

@@ -6,7 +6,7 @@
 package io.opentelemetry.javaagent.instrumentation.servlet.v3_0;
 
 import io.opentelemetry.instrumentation.api.field.VirtualField;
-import io.opentelemetry.instrumentation.api.servlet.MappingResolver;
+import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
 import javax.servlet.Filter;
 import javax.servlet.FilterConfig;
 import net.bytebuddy.asm.Advice;

+ 1 - 1
instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3InitAdvice.java

@@ -6,7 +6,7 @@
 package io.opentelemetry.javaagent.instrumentation.servlet.v3_0;
 
 import io.opentelemetry.instrumentation.api.field.VirtualField;
-import io.opentelemetry.instrumentation.api.servlet.MappingResolver;
+import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
 import javax.servlet.Servlet;
 import javax.servlet.ServletConfig;
 import net.bytebuddy.asm.Advice;

+ 1 - 1
instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3Singletons.java

@@ -10,8 +10,8 @@ import static io.opentelemetry.instrumentation.api.servlet.ServerSpanNaming.Sour
 
 import io.opentelemetry.instrumentation.api.field.VirtualField;
 import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
-import io.opentelemetry.instrumentation.api.servlet.MappingResolver;
 import io.opentelemetry.instrumentation.api.servlet.ServerSpanNaming;
+import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletHelper;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletInstrumenterBuilder;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletRequestContext;

+ 1 - 0
instrumentation/servlet/servlet-5.0/javaagent/build.gradle.kts

@@ -13,6 +13,7 @@ muzzle {
 
 dependencies {
   api(project(":instrumentation:servlet:servlet-common:javaagent"))
+  bootstrap(project(":instrumentation:servlet:servlet-common:bootstrap"))
 
   compileOnly("jakarta.servlet:jakarta.servlet-api:5.0.0")
 

+ 1 - 1
instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/Servlet5Singletons.java

@@ -10,8 +10,8 @@ import static io.opentelemetry.instrumentation.api.servlet.ServerSpanNaming.Sour
 
 import io.opentelemetry.instrumentation.api.field.VirtualField;
 import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
-import io.opentelemetry.instrumentation.api.servlet.MappingResolver;
 import io.opentelemetry.instrumentation.api.servlet.ServerSpanNaming;
+import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletHelper;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletInstrumenterBuilder;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletRequestContext;

+ 1 - 1
instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletFilterInitAdvice.java

@@ -6,7 +6,7 @@
 package io.opentelemetry.javaagent.instrumentation.servlet.v5_0.service;
 
 import io.opentelemetry.instrumentation.api.field.VirtualField;
-import io.opentelemetry.instrumentation.api.servlet.MappingResolver;
+import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
 import jakarta.servlet.Filter;
 import jakarta.servlet.FilterConfig;
 import net.bytebuddy.asm.Advice;

+ 1 - 1
instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletInitAdvice.java

@@ -6,7 +6,7 @@
 package io.opentelemetry.javaagent.instrumentation.servlet.v5_0.service;
 
 import io.opentelemetry.instrumentation.api.field.VirtualField;
-import io.opentelemetry.instrumentation.api.servlet.MappingResolver;
+import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
 import jakarta.servlet.Servlet;
 import jakarta.servlet.ServletConfig;
 import net.bytebuddy.asm.Advice;

+ 2 - 2
instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletServiceAdvice.java

@@ -9,9 +9,9 @@ import static io.opentelemetry.javaagent.instrumentation.servlet.v5_0.Servlet5Si
 
 import io.opentelemetry.context.Context;
 import io.opentelemetry.context.Scope;
-import io.opentelemetry.instrumentation.api.servlet.AppServerBridge;
-import io.opentelemetry.instrumentation.api.servlet.MappingResolver;
 import io.opentelemetry.instrumentation.api.tracer.ServerSpan;
+import io.opentelemetry.javaagent.bootstrap.servlet.AppServerBridge;
+import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
 import io.opentelemetry.javaagent.instrumentation.api.CallDepth;
 import io.opentelemetry.javaagent.instrumentation.api.Java8BytecodeBridge;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletRequestContext;

+ 3 - 0
instrumentation/servlet/servlet-common/bootstrap/build.gradle.kts

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

+ 1 - 1
instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/servlet/AppServerBridge.java → instrumentation/servlet/servlet-common/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/servlet/AppServerBridge.java

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

+ 1 - 1
instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/servlet/MappingResolver.java → instrumentation/servlet/servlet-common/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/servlet/MappingResolver.java

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

+ 4 - 0
instrumentation/servlet/servlet-common/javaagent/build.gradle.kts

@@ -4,3 +4,7 @@ plugins {
 
 // This module is only used as a dependency for other javaagent modules and does not contain any
 // non-abstract implementations of InstrumentationModule
+
+dependencies {
+  compileOnly(project(":instrumentation:servlet:servlet-common:bootstrap"))
+}

+ 2 - 2
instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/BaseServletHelper.java

@@ -12,11 +12,11 @@ import io.opentelemetry.api.trace.Span;
 import io.opentelemetry.api.trace.SpanContext;
 import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
-import io.opentelemetry.instrumentation.api.servlet.AppServerBridge;
-import io.opentelemetry.instrumentation.api.servlet.MappingResolver;
 import io.opentelemetry.instrumentation.api.servlet.ServerSpanNaming;
 import io.opentelemetry.instrumentation.api.servlet.ServletContextPath;
 import io.opentelemetry.instrumentation.api.tracer.ServerSpan;
+import io.opentelemetry.javaagent.bootstrap.servlet.AppServerBridge;
+import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
 import java.util.function.Function;
 
 public abstract class BaseServletHelper<REQUEST, RESPONSE> {

+ 1 - 1
instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletInstrumenterBuilder.java

@@ -15,7 +15,7 @@ import io.opentelemetry.instrumentation.api.instrumenter.SpanStatusExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerMetrics;
 import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanStatusExtractor;
-import io.opentelemetry.instrumentation.api.servlet.MappingResolver;
+import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.function.Function;

+ 1 - 1
instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletMappingResolverFactory.java

@@ -5,7 +5,7 @@
 
 package io.opentelemetry.javaagent.instrumentation.servlet;
 
-import io.opentelemetry.instrumentation.api.servlet.MappingResolver;
+import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
 import java.util.Collection;
 import javax.annotation.Nullable;
 

+ 1 - 1
instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletSpanNameExtractor.java

@@ -6,7 +6,7 @@
 package io.opentelemetry.javaagent.instrumentation.servlet;
 
 import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
-import io.opentelemetry.instrumentation.api.servlet.MappingResolver;
+import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
 import java.util.function.Function;
 import javax.annotation.Nullable;
 

+ 1 - 1
instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletSpanNameProvider.java

@@ -6,9 +6,9 @@
 package io.opentelemetry.javaagent.instrumentation.servlet;
 
 import io.opentelemetry.context.Context;
-import io.opentelemetry.instrumentation.api.servlet.MappingResolver;
 import io.opentelemetry.instrumentation.api.servlet.ServerSpanNameTwoArgSupplier;
 import io.opentelemetry.instrumentation.api.servlet.ServletContextPath;
+import io.opentelemetry.javaagent.bootstrap.servlet.MappingResolver;
 import javax.annotation.Nullable;
 
 /** Helper class for constructing span name for given servlet/filter mapping and request. */

+ 1 - 1
instrumentation/spring/spring-kafka-2.7/javaagent/build.gradle.kts

@@ -15,7 +15,7 @@ dependencies {
   compileOnly("com.google.auto.value:auto-value-annotations")
   annotationProcessor("com.google.auto.value:auto-value")
 
-  compileOnly(project(":instrumentation:kafka-clients:kafka-clients-0.11:bootstrap"))
+  bootstrap(project(":instrumentation:kafka-clients:kafka-clients-0.11:bootstrap"))
   implementation(project(":instrumentation:kafka-clients:kafka-clients-common:library"))
 
   library("org.springframework.kafka:spring-kafka:2.7.0")

+ 4 - 1
instrumentation/tomcat/tomcat-10.0/javaagent/build.gradle.kts

@@ -11,9 +11,12 @@ muzzle {
 }
 
 dependencies {
-  library("org.apache.tomcat.embed:tomcat-embed-core:10.0.0")
   implementation(project(":instrumentation:tomcat:tomcat-common:javaagent"))
   implementation(project(":instrumentation:servlet:servlet-5.0:javaagent"))
+  bootstrap(project(":instrumentation:servlet:servlet-common:bootstrap"))
+
+  library("org.apache.tomcat.embed:tomcat-embed-core:10.0.0")
+
   // Make sure nothing breaks due to both 7.0 and 10.0 modules being present together
   testInstrumentation(project(":instrumentation:tomcat:tomcat-7.0:javaagent"))
 }

+ 4 - 1
instrumentation/tomcat/tomcat-7.0/javaagent/build.gradle.kts

@@ -13,9 +13,12 @@ muzzle {
 }
 
 dependencies {
-  compileOnly("org.apache.tomcat.embed:tomcat-embed-core:7.0.4")
   implementation(project(":instrumentation:tomcat:tomcat-common:javaagent"))
   implementation(project(":instrumentation:servlet:servlet-3.0:javaagent"))
+  bootstrap(project(":instrumentation:servlet:servlet-common:bootstrap"))
+
+  compileOnly("org.apache.tomcat.embed:tomcat-embed-core:7.0.4")
+
   testInstrumentation(project(":instrumentation:servlet:servlet-javax-common:javaagent"))
   // Make sure nothing breaks due to both 7.0 and 10.0 modules being present together
   testInstrumentation(project(":instrumentation:tomcat:tomcat-10.0:javaagent"))

+ 1 - 0
instrumentation/tomcat/tomcat-common/javaagent/build.gradle.kts

@@ -4,6 +4,7 @@ plugins {
 
 dependencies {
   api(project(":instrumentation:servlet:servlet-common:javaagent"))
+  compileOnly(project(":instrumentation:servlet:servlet-common:bootstrap"))
 
   compileOnly("org.apache.tomcat.embed:tomcat-embed-core:7.0.4")
 }

+ 1 - 1
instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatHelper.java

@@ -8,7 +8,7 @@ package io.opentelemetry.javaagent.instrumentation.tomcat.common;
 import io.opentelemetry.context.Context;
 import io.opentelemetry.context.Scope;
 import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
-import io.opentelemetry.instrumentation.api.servlet.AppServerBridge;
+import io.opentelemetry.javaagent.bootstrap.servlet.AppServerBridge;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletHelper;
 import org.apache.coyote.Request;
 import org.apache.coyote.Response;

+ 1 - 1
instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatInstrumenterFactory.java

@@ -17,8 +17,8 @@ import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerMetrics;
 import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanNameExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanStatusExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.net.NetServerAttributesExtractor;
-import io.opentelemetry.instrumentation.api.servlet.AppServerBridge;
 import io.opentelemetry.instrumentation.api.servlet.ServerSpanNaming;
+import io.opentelemetry.javaagent.bootstrap.servlet.AppServerBridge;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletAccessor;
 import io.opentelemetry.javaagent.instrumentation.servlet.ServletErrorCauseExtractor;
 import org.apache.coyote.Request;

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

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

+ 1 - 1
instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/UndertowHelper.java

@@ -7,7 +7,7 @@ package io.opentelemetry.javaagent.instrumentation.undertow;
 
 import io.opentelemetry.context.Context;
 import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
-import io.opentelemetry.instrumentation.api.servlet.AppServerBridge;
+import io.opentelemetry.javaagent.bootstrap.servlet.AppServerBridge;
 import io.opentelemetry.javaagent.bootstrap.undertow.KeyHolder;
 import io.opentelemetry.javaagent.bootstrap.undertow.UndertowActiveHandlers;
 import io.undertow.server.DefaultResponseListener;

+ 1 - 1
instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/UndertowSingletons.java

@@ -16,8 +16,8 @@ import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerMetrics;
 import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanNameExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanStatusExtractor;
 import io.opentelemetry.instrumentation.api.instrumenter.net.NetServerAttributesExtractor;
-import io.opentelemetry.instrumentation.api.servlet.AppServerBridge;
 import io.opentelemetry.instrumentation.api.servlet.ServerSpanNaming;
+import io.opentelemetry.javaagent.bootstrap.servlet.AppServerBridge;
 import io.opentelemetry.javaagent.bootstrap.undertow.UndertowActiveHandlers;
 import io.undertow.server.HttpServerExchange;
 

+ 1 - 0
settings.gradle.kts

@@ -339,6 +339,7 @@ include(":instrumentation:rxjava:rxjava-3.0:library")
 include(":instrumentation:rxjava:rxjava-3.0:testing")
 include(":instrumentation:rxjava:rxjava-3.0:javaagent")
 include(":instrumentation:scala-executors:javaagent")
+include(":instrumentation:servlet:servlet-common:bootstrap")
 include(":instrumentation:servlet:servlet-common:javaagent")
 include(":instrumentation:servlet:servlet-javax-common:javaagent")
 include(":instrumentation:servlet:servlet-2.2:javaagent")