diff --git a/instrumentation/dropwizard-testing/src/test/groovy/DropwizardTest.groovy b/instrumentation/dropwizard-testing/src/test/groovy/DropwizardTest.groovy index e7d7af03fdf0..9e78c51028d5 100644 --- a/instrumentation/dropwizard-testing/src/test/groovy/DropwizardTest.groovy +++ b/instrumentation/dropwizard-testing/src/test/groovy/DropwizardTest.groovy @@ -82,6 +82,11 @@ class DropwizardTest extends HttpServerTest implements Ag endpoint != NOT_FOUND } + @Override + boolean hasResponseSpan(ServerEndpoint endpoint) { + endpoint == NOT_FOUND + } + @Override boolean testPathParam() { true @@ -112,6 +117,11 @@ class DropwizardTest extends HttpServerTest implements Ag } } + @Override + void responseSpan(TraceAssert trace, int index, Object parent, String method, ServerEndpoint endpoint) { + sendErrorSpan(trace, index, parent) + } + static class TestApp extends Application { @Override void initialize(Bootstrap bootstrap) { diff --git a/instrumentation/jetty/jetty-common/javaagent/build.gradle.kts b/instrumentation/jetty/jetty-common/javaagent/build.gradle.kts index eed6ede355f1..3eb505d6a50a 100644 --- a/instrumentation/jetty/jetty-common/javaagent/build.gradle.kts +++ b/instrumentation/jetty/jetty-common/javaagent/build.gradle.kts @@ -3,6 +3,5 @@ plugins { } dependencies { - api(project(":instrumentation:servlet:servlet-common:library")) - implementation(project(":instrumentation:servlet:servlet-common:javaagent")) + api(project(":instrumentation:servlet:servlet-common:javaagent")) } diff --git a/instrumentation/jetty/jetty-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jetty/common/JettyHelper.java b/instrumentation/jetty/jetty-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jetty/common/JettyHelper.java index e8bc0c918771..865ede7b7509 100644 --- a/instrumentation/jetty/jetty-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jetty/common/JettyHelper.java +++ b/instrumentation/jetty/jetty-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jetty/common/JettyHelper.java @@ -8,7 +8,7 @@ import io.opentelemetry.context.Context; import io.opentelemetry.context.Scope; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; +import io.opentelemetry.javaagent.instrumentation.servlet.ServletAccessor; import io.opentelemetry.javaagent.instrumentation.servlet.ServletHelper; import io.opentelemetry.javaagent.instrumentation.servlet.ServletRequestContext; import io.opentelemetry.javaagent.instrumentation.servlet.ServletResponseContext; diff --git a/instrumentation/liberty/liberty/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/LibertyHelper.java b/instrumentation/liberty/liberty/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/LibertyHelper.java index f32528e55cae..e9ec13999e69 100644 --- a/instrumentation/liberty/liberty/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/LibertyHelper.java +++ b/instrumentation/liberty/liberty/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/liberty/LibertyHelper.java @@ -9,7 +9,7 @@ import io.opentelemetry.context.Scope; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; import io.opentelemetry.instrumentation.api.servlet.AppServerBridge; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; +import io.opentelemetry.javaagent.instrumentation.servlet.ServletAccessor; import io.opentelemetry.javaagent.instrumentation.servlet.ServletHelper; import io.opentelemetry.javaagent.instrumentation.servlet.ServletRequestContext; import io.opentelemetry.javaagent.instrumentation.servlet.ServletResponseContext; diff --git a/instrumentation/servlet/servlet-2.2/javaagent/build.gradle.kts b/instrumentation/servlet/servlet-2.2/javaagent/build.gradle.kts index 3392ccc97d94..4972bb8d880c 100644 --- a/instrumentation/servlet/servlet-2.2/javaagent/build.gradle.kts +++ b/instrumentation/servlet/servlet-2.2/javaagent/build.gradle.kts @@ -20,9 +20,8 @@ muzzle { dependencies { compileOnly("javax.servlet:servlet-api:2.2") implementation(project(":instrumentation:servlet:servlet-common:javaagent")) - implementation(project(":instrumentation:servlet:servlet-javax-common:library")) + implementation(project(":instrumentation:servlet:servlet-javax-common:javaagent")) - testInstrumentation(project(":instrumentation:servlet:servlet-javax-common:javaagent")) testInstrumentation(project(":instrumentation:servlet:servlet-3.0:javaagent")) testLibrary("org.eclipse.jetty:jetty-server:7.0.0.v20091005") diff --git a/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2Accessor.java b/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2Accessor.java index 2f3413bc0d3b..c4fd3176f5e5 100644 --- a/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2Accessor.java +++ b/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2Accessor.java @@ -5,8 +5,8 @@ package io.opentelemetry.javaagent.instrumentation.servlet.v2_2; -import io.opentelemetry.instrumentation.servlet.ServletAsyncListener; -import io.opentelemetry.instrumentation.servlet.javax.JavaxServletAccessor; +import io.opentelemetry.javaagent.instrumentation.servlet.ServletAsyncListener; +import io.opentelemetry.javaagent.instrumentation.servlet.javax.JavaxServletAccessor; import java.util.Collections; import java.util.List; import javax.servlet.http.HttpServletRequest; diff --git a/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2HttpAttributesExtractor.java b/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2HttpAttributesExtractor.java index 06a665ca6f47..7ad0df0e116f 100644 --- a/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2HttpAttributesExtractor.java +++ b/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2HttpAttributesExtractor.java @@ -5,7 +5,7 @@ package io.opentelemetry.javaagent.instrumentation.servlet.v2_2; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; +import io.opentelemetry.javaagent.instrumentation.servlet.ServletAccessor; import io.opentelemetry.javaagent.instrumentation.servlet.ServletHttpAttributesExtractor; import io.opentelemetry.javaagent.instrumentation.servlet.ServletRequestContext; import io.opentelemetry.javaagent.instrumentation.servlet.ServletResponseContext; diff --git a/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2InstrumentationModule.java b/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2InstrumentationModule.java index 92f39de0132d..9a5cd5d0c081 100644 --- a/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2InstrumentationModule.java +++ b/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2InstrumentationModule.java @@ -12,6 +12,7 @@ import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; import io.opentelemetry.javaagent.instrumentation.servlet.common.service.ServletAndFilterInstrumentation; +import io.opentelemetry.javaagent.instrumentation.servlet.javax.response.JavaxResponseInstrumentationFactory; import java.util.Arrays; import java.util.List; import net.bytebuddy.matcher.ElementMatcher; @@ -34,6 +35,7 @@ public List typeInstrumentations() { new HttpServletResponseInstrumentation(), new ServletAndFilterInstrumentation( "javax.servlet", - Servlet2InstrumentationModule.class.getPackage().getName() + ".Servlet2Advice")); + Servlet2InstrumentationModule.class.getPackage().getName() + ".Servlet2Advice"), + JavaxResponseInstrumentationFactory.create()); } } diff --git a/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2SpanNameExtractor.java b/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2SpanNameExtractor.java index 051a939b4824..34de6c308512 100644 --- a/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2SpanNameExtractor.java +++ b/instrumentation/servlet/servlet-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v2_2/Servlet2SpanNameExtractor.java @@ -6,7 +6,7 @@ package io.opentelemetry.javaagent.instrumentation.servlet.v2_2; import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; +import io.opentelemetry.javaagent.instrumentation.servlet.ServletAccessor; import io.opentelemetry.javaagent.instrumentation.servlet.ServletRequestContext; public class Servlet2SpanNameExtractor diff --git a/instrumentation/servlet/servlet-javax-common/javaagent/src/test/groovy/HttpServletResponseTest.groovy b/instrumentation/servlet/servlet-2.2/javaagent/src/test/groovy/HttpServletResponseTest.groovy similarity index 100% rename from instrumentation/servlet/servlet-javax-common/javaagent/src/test/groovy/HttpServletResponseTest.groovy rename to instrumentation/servlet/servlet-2.2/javaagent/src/test/groovy/HttpServletResponseTest.groovy diff --git a/instrumentation/servlet/servlet-3.0/javaagent/build.gradle.kts b/instrumentation/servlet/servlet-3.0/javaagent/build.gradle.kts index 84dd6acea0c7..27b48a01c06e 100644 --- a/instrumentation/servlet/servlet-3.0/javaagent/build.gradle.kts +++ b/instrumentation/servlet/servlet-3.0/javaagent/build.gradle.kts @@ -18,10 +18,9 @@ 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:library")) + api(project(":instrumentation:servlet:servlet-javax-common:javaagent")) testInstrumentation(project(":instrumentation:jetty:jetty-8.0:javaagent")) - testInstrumentation(project(":instrumentation:servlet:servlet-javax-common:javaagent")) testLibrary("org.eclipse.jetty:jetty-server:8.0.0.v20110901") testLibrary("org.eclipse.jetty:jetty-servlet:8.0.0.v20110901") diff --git a/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3Accessor.java b/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3Accessor.java index 9aa46bc56f59..481739261fde 100644 --- a/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3Accessor.java +++ b/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3Accessor.java @@ -5,8 +5,8 @@ package io.opentelemetry.javaagent.instrumentation.servlet.v3_0; -import io.opentelemetry.instrumentation.servlet.ServletAsyncListener; -import io.opentelemetry.instrumentation.servlet.javax.JavaxServletAccessor; +import io.opentelemetry.javaagent.instrumentation.servlet.ServletAsyncListener; +import io.opentelemetry.javaagent.instrumentation.servlet.javax.JavaxServletAccessor; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; diff --git a/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3FilterMappingResolverFactory.java b/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3FilterMappingResolverFactory.java index 2477e925fedb..8c516a5fbbcb 100644 --- a/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3FilterMappingResolverFactory.java +++ b/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3FilterMappingResolverFactory.java @@ -5,7 +5,7 @@ package io.opentelemetry.javaagent.instrumentation.servlet.v3_0; -import io.opentelemetry.instrumentation.servlet.naming.ServletFilterMappingResolverFactory; +import io.opentelemetry.javaagent.instrumentation.servlet.ServletFilterMappingResolverFactory; import java.util.Collection; import javax.servlet.FilterConfig; import javax.servlet.FilterRegistration; diff --git a/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3InstrumentationModule.java b/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3InstrumentationModule.java index 1025ac76a39a..0157bfec8315 100644 --- a/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3InstrumentationModule.java +++ b/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3InstrumentationModule.java @@ -15,6 +15,7 @@ import io.opentelemetry.javaagent.instrumentation.servlet.common.async.AsyncContextStartInstrumentation; import io.opentelemetry.javaagent.instrumentation.servlet.common.async.AsyncStartInstrumentation; import io.opentelemetry.javaagent.instrumentation.servlet.common.service.ServletAndFilterInstrumentation; +import io.opentelemetry.javaagent.instrumentation.servlet.javax.response.JavaxResponseInstrumentationFactory; import java.util.List; import net.bytebuddy.matcher.ElementMatcher; @@ -42,7 +43,8 @@ BASE_PACKAGE, adviceClassName(".Servlet3AsyncContextStartAdvice")), BASE_PACKAGE, adviceClassName(".Servlet3Advice"), adviceClassName(".Servlet3InitAdvice"), - adviceClassName(".Servlet3FilterInitAdvice"))); + adviceClassName(".Servlet3FilterInitAdvice")), + JavaxResponseInstrumentationFactory.create()); } private static String adviceClassName(String suffix) { diff --git a/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3MappingResolverFactory.java b/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3MappingResolverFactory.java index 88607a3dbb59..823281d36b8d 100644 --- a/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3MappingResolverFactory.java +++ b/instrumentation/servlet/servlet-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v3_0/Servlet3MappingResolverFactory.java @@ -5,7 +5,7 @@ package io.opentelemetry.javaagent.instrumentation.servlet.v3_0; -import io.opentelemetry.instrumentation.servlet.naming.ServletMappingResolverFactory; +import io.opentelemetry.javaagent.instrumentation.servlet.ServletMappingResolverFactory; import javax.annotation.Nullable; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; diff --git a/instrumentation/servlet/servlet-3.0/javaagent/src/test/groovy/HttpServletResponseTest.groovy b/instrumentation/servlet/servlet-3.0/javaagent/src/test/groovy/HttpServletResponseTest.groovy new file mode 100644 index 000000000000..f6005a5788ca --- /dev/null +++ b/instrumentation/servlet/servlet-3.0/javaagent/src/test/groovy/HttpServletResponseTest.groovy @@ -0,0 +1,316 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +import groovy.servlet.AbstractHttpServlet +import io.opentelemetry.api.trace.SpanKind +import io.opentelemetry.instrumentation.test.AgentInstrumentationSpecification +import spock.lang.Subject + +import javax.servlet.ServletOutputStream +import javax.servlet.ServletRequest +import javax.servlet.ServletResponse +import javax.servlet.http.Cookie +import javax.servlet.http.HttpServletRequest +import javax.servlet.http.HttpServletResponse + +import static io.opentelemetry.api.trace.StatusCode.ERROR +import static java.util.Collections.emptyEnumeration + +class HttpServletResponseTest extends AgentInstrumentationSpecification { + + @Subject + def response = new TestResponse() + def request = Mock(HttpServletRequest) { + getMethod() >> "GET" + getProtocol() >> "TEST" + getHeaderNames() >> emptyEnumeration() + getAttributeNames() >> emptyEnumeration() + } + + def setup() { + def servlet = new AbstractHttpServlet() {} + // We need to call service so HttpServletAdvice can link the request to the response. + servlet.service((ServletRequest) request, (ServletResponse) response) + clearExportedData() + } + + def "test send no-parent"() { + when: + response.sendError(0) + response.sendError(0, "") + response.sendRedirect("") + + then: + assertTraces(0) {} + } + + def "test send with parent"() { + when: + runWithSpan("parent") { + response.sendError(0) + response.sendError(0, "") + response.sendRedirect("") + } + + then: + assertTraces(1) { + trace(0, 4) { + span(0) { + name "parent" + kind SpanKind.INTERNAL + hasNoParent() + } + span(1) { + name "TestResponse.sendError" + childOf span(0) + attributes { + } + } + span(2) { + name "TestResponse.sendError" + childOf span(0) + attributes { + } + } + span(3) { + name "TestResponse.sendRedirect" + childOf span(0) + attributes { + } + } + } + } + } + + def "test send with exception"() { + setup: + def ex = new Exception("some error") + def response = new TestResponse() { + @Override + void sendRedirect(String s) { + throw ex + } + } + def servlet = new AbstractHttpServlet() {} + // We need to call service so HttpServletAdvice can link the request to the response. + servlet.service((ServletRequest) request, (ServletResponse) response) + clearExportedData() + + when: + runWithSpan("parent") { + response.sendRedirect("") + } + + then: + def th = thrown(Exception) + th == ex + + assertTraces(1) { + trace(0, 2) { + span(0) { + name "parent" + kind SpanKind.INTERNAL + hasNoParent() + status ERROR + errorEvent(ex.class, ex.message) + } + span(1) { + name 'HttpServletResponseTest$2.sendRedirect' + childOf span(0) + status ERROR + errorEvent(ex.class, ex.message) + } + } + } + } + + static class TestResponse implements HttpServletResponse { + + @Override + void addCookie(Cookie cookie) { + + } + + @Override + boolean containsHeader(String s) { + return false + } + + @Override + String encodeURL(String s) { + return null + } + + @Override + String encodeRedirectURL(String s) { + return null + } + + @Override + String encodeUrl(String s) { + return null + } + + @Override + String encodeRedirectUrl(String s) { + return null + } + + @Override + void sendError(int i, String s) throws IOException { + + } + + @Override + void sendError(int i) throws IOException { + + } + + @Override + void sendRedirect(String s) throws IOException { + + } + + @Override + void setDateHeader(String s, long l) { + + } + + @Override + void addDateHeader(String s, long l) { + + } + + @Override + void setHeader(String s, String s1) { + + } + + @Override + void addHeader(String s, String s1) { + + } + + @Override + void setIntHeader(String s, int i) { + + } + + @Override + void addIntHeader(String s, int i) { + + } + + @Override + void setStatus(int i) { + + } + + @Override + void setStatus(int i, String s) { + + } + + @Override + int getStatus() { + return 0 + } + + @Override + String getHeader(String s) { + return null + } + + @Override + Collection getHeaders(String s) { + return null + } + + @Override + Collection getHeaderNames() { + return null + } + + @Override + String getCharacterEncoding() { + return null + } + + @Override + String getContentType() { + return null + } + + @Override + ServletOutputStream getOutputStream() throws IOException { + return null + } + + @Override + PrintWriter getWriter() throws IOException { + return null + } + + @Override + void setCharacterEncoding(String charset) { + + } + + @Override + void setContentLength(int i) { + + } + + @Override + void setContentLengthLong(long l) { + + } + + @Override + void setContentType(String s) { + + } + + @Override + void setBufferSize(int i) { + + } + + @Override + int getBufferSize() { + return 0 + } + + @Override + void flushBuffer() throws IOException { + + } + + @Override + void resetBuffer() { + + } + + @Override + boolean isCommitted() { + return false + } + + @Override + void reset() { + + } + + @Override + void setLocale(Locale locale) { + + } + + @Override + Locale getLocale() { + return null + } + } +} diff --git a/instrumentation/servlet/servlet-5.0/javaagent/build.gradle.kts b/instrumentation/servlet/servlet-5.0/javaagent/build.gradle.kts index c882d27fd80e..2dce8f69ad16 100644 --- a/instrumentation/servlet/servlet-5.0/javaagent/build.gradle.kts +++ b/instrumentation/servlet/servlet-5.0/javaagent/build.gradle.kts @@ -13,7 +13,7 @@ muzzle { dependencies { api(project(":instrumentation:servlet:servlet-common:javaagent")) - implementation(project(":instrumentation:servlet:servlet-common:library")) + compileOnly("jakarta.servlet:jakarta.servlet-api:5.0.0") testLibrary("org.eclipse.jetty:jetty-server:11.0.0") diff --git a/instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/Servlet5Accessor.java b/instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/Servlet5Accessor.java index 40883276bf7b..dc1a3a47d070 100644 --- a/instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/Servlet5Accessor.java +++ b/instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/Servlet5Accessor.java @@ -5,8 +5,8 @@ package io.opentelemetry.javaagent.instrumentation.servlet.v5_0; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; -import io.opentelemetry.instrumentation.servlet.ServletAsyncListener; +import io.opentelemetry.javaagent.instrumentation.servlet.ServletAccessor; +import io.opentelemetry.javaagent.instrumentation.servlet.ServletAsyncListener; import jakarta.servlet.AsyncEvent; import jakarta.servlet.AsyncListener; import jakarta.servlet.ServletException; diff --git a/instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletFilterMappingResolverFactory.java b/instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletFilterMappingResolverFactory.java index 567e5a8cc08d..c889c8b78b75 100644 --- a/instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletFilterMappingResolverFactory.java +++ b/instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletFilterMappingResolverFactory.java @@ -5,7 +5,7 @@ package io.opentelemetry.javaagent.instrumentation.servlet.v5_0.service; -import io.opentelemetry.instrumentation.servlet.naming.ServletFilterMappingResolverFactory; +import io.opentelemetry.javaagent.instrumentation.servlet.ServletFilterMappingResolverFactory; import jakarta.servlet.FilterConfig; import jakarta.servlet.FilterRegistration; import jakarta.servlet.ServletContext; diff --git a/instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletMappingResolverFactory.java b/instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletMappingResolverFactory.java index 3dc5147f0ea4..054792baf7c4 100644 --- a/instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletMappingResolverFactory.java +++ b/instrumentation/servlet/servlet-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/v5_0/service/JakartaServletMappingResolverFactory.java @@ -5,7 +5,7 @@ package io.opentelemetry.javaagent.instrumentation.servlet.v5_0.service; -import io.opentelemetry.instrumentation.servlet.naming.ServletMappingResolverFactory; +import io.opentelemetry.javaagent.instrumentation.servlet.ServletMappingResolverFactory; import jakarta.servlet.ServletConfig; import jakarta.servlet.ServletContext; import jakarta.servlet.ServletRegistration; diff --git a/instrumentation/servlet/servlet-common/javaagent/build.gradle.kts b/instrumentation/servlet/servlet-common/javaagent/build.gradle.kts index 16d26175212b..3cd8eed07989 100644 --- a/instrumentation/servlet/servlet-common/javaagent/build.gradle.kts +++ b/instrumentation/servlet/servlet-common/javaagent/build.gradle.kts @@ -4,7 +4,3 @@ plugins { // This module is only used as a dependency for other javaagent modules and does not contain any // non-abstract implementations of InstrumentationModule - -dependencies { - api(project(":instrumentation:servlet:servlet-common:library")) -} diff --git a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/AsyncRequestCompletionListener.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/AsyncRequestCompletionListener.java index fb739a8b6e5f..0e279620e314 100644 --- a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/AsyncRequestCompletionListener.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/AsyncRequestCompletionListener.java @@ -7,7 +7,6 @@ import io.opentelemetry.context.Context; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; -import io.opentelemetry.instrumentation.servlet.ServletAsyncListener; import java.util.concurrent.atomic.AtomicBoolean; public class AsyncRequestCompletionListener diff --git a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/BaseServletHelper.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/BaseServletHelper.java index 29740f980f2d..43f20d4795c1 100644 --- a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/BaseServletHelper.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/BaseServletHelper.java @@ -17,8 +17,6 @@ import io.opentelemetry.instrumentation.api.servlet.ServerSpanNaming; import io.opentelemetry.instrumentation.api.servlet.ServletContextPath; import io.opentelemetry.instrumentation.api.tracer.ServerSpan; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; -import io.opentelemetry.instrumentation.servlet.naming.ServletSpanNameProvider; import java.util.function.Function; public abstract class BaseServletHelper { diff --git a/instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/ServletAccessor.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletAccessor.java similarity index 97% rename from instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/ServletAccessor.java rename to instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletAccessor.java index 7f8f8dfa8210..e39a08afebdc 100644 --- a/instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/ServletAccessor.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletAccessor.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.servlet; +package io.opentelemetry.javaagent.instrumentation.servlet; import java.security.Principal; import java.util.List; diff --git a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletAdditionalAttributesExtractor.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletAdditionalAttributesExtractor.java index 643fdba27f07..c4430c0f8995 100644 --- a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletAdditionalAttributesExtractor.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletAdditionalAttributesExtractor.java @@ -11,7 +11,6 @@ import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.instrumentation.api.config.Config; import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; import java.security.Principal; import javax.annotation.Nullable; diff --git a/instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/ServletAsyncListener.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletAsyncListener.java similarity index 81% rename from instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/ServletAsyncListener.java rename to instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletAsyncListener.java index 53dd94d87778..b6bea5f5bd8e 100644 --- a/instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/ServletAsyncListener.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletAsyncListener.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.servlet; +package io.opentelemetry.javaagent.instrumentation.servlet; public interface ServletAsyncListener { void onComplete(RESPONSE response); diff --git a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletErrorCauseExtractor.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletErrorCauseExtractor.java index 9b7c5471db4f..3958532ac8db 100644 --- a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletErrorCauseExtractor.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletErrorCauseExtractor.java @@ -6,7 +6,6 @@ package io.opentelemetry.javaagent.instrumentation.servlet; import io.opentelemetry.instrumentation.api.instrumenter.ErrorCauseExtractor; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; public class ServletErrorCauseExtractor implements ErrorCauseExtractor { private final ServletAccessor accessor; diff --git a/instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/naming/ServletFilterMappingResolverFactory.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletFilterMappingResolverFactory.java similarity index 96% rename from instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/naming/ServletFilterMappingResolverFactory.java rename to instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletFilterMappingResolverFactory.java index 164ca4489194..027bde8a4ba0 100644 --- a/instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/naming/ServletFilterMappingResolverFactory.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletFilterMappingResolverFactory.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.servlet.naming; +package io.opentelemetry.javaagent.instrumentation.servlet; import java.util.ArrayList; import java.util.Collection; diff --git a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletHelper.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletHelper.java index 5b0b96be00e0..96ab9f8d8fbb 100644 --- a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletHelper.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletHelper.java @@ -8,7 +8,6 @@ import io.opentelemetry.context.Context; import io.opentelemetry.context.Scope; import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; public class ServletHelper extends BaseServletHelper { private static final String ASYNC_LISTENER_ATTRIBUTE = diff --git a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletHttpAttributesExtractor.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletHttpAttributesExtractor.java index 37007b7c950d..3ae09dae7789 100644 --- a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletHttpAttributesExtractor.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletHttpAttributesExtractor.java @@ -6,7 +6,6 @@ package io.opentelemetry.javaagent.instrumentation.servlet; import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesExtractor; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; import java.util.List; import javax.annotation.Nullable; diff --git a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletInstrumenterBuilder.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletInstrumenterBuilder.java index 15adc40d52f0..8a151a6eb069 100644 --- a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletInstrumenterBuilder.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletInstrumenterBuilder.java @@ -16,7 +16,6 @@ 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.instrumentation.servlet.ServletAccessor; import java.util.ArrayList; import java.util.List; import java.util.function.Function; diff --git a/instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/naming/ServletMappingResolverFactory.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletMappingResolverFactory.java similarity index 96% rename from instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/naming/ServletMappingResolverFactory.java rename to instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletMappingResolverFactory.java index 86a47324e325..8fafe359a498 100644 --- a/instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/naming/ServletMappingResolverFactory.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletMappingResolverFactory.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.servlet.naming; +package io.opentelemetry.javaagent.instrumentation.servlet; import io.opentelemetry.instrumentation.api.servlet.MappingResolver; import java.util.Collection; diff --git a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletNetAttributesExtractor.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletNetAttributesExtractor.java index 1a91fbe66bfd..e78a585888a2 100644 --- a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletNetAttributesExtractor.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletNetAttributesExtractor.java @@ -6,7 +6,6 @@ package io.opentelemetry.javaagent.instrumentation.servlet; import io.opentelemetry.instrumentation.api.instrumenter.net.NetServerAttributesExtractor; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; import javax.annotation.Nullable; diff --git a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletRequestGetter.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletRequestGetter.java index 1616c54ba899..676d98bc4b83 100644 --- a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletRequestGetter.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletRequestGetter.java @@ -6,7 +6,6 @@ package io.opentelemetry.javaagent.instrumentation.servlet; import io.opentelemetry.context.propagation.TextMapGetter; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; public class ServletRequestGetter implements TextMapGetter> { diff --git a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletRequestParametersExtractor.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletRequestParametersExtractor.java index 1c74e5300ab0..683c192c9fc0 100644 --- a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletRequestParametersExtractor.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletRequestParametersExtractor.java @@ -9,7 +9,6 @@ import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.instrumentation.api.config.Config; import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; import java.util.List; import java.util.Locale; import java.util.concurrent.ConcurrentHashMap; diff --git a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletSpanNameExtractor.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletSpanNameExtractor.java index 7a5c4ad11ae3..c7b87c0caa16 100644 --- a/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletSpanNameExtractor.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletSpanNameExtractor.java @@ -7,7 +7,6 @@ import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor; import io.opentelemetry.instrumentation.api.servlet.MappingResolver; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; import java.util.function.Function; import javax.annotation.Nullable; diff --git a/instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/naming/ServletSpanNameProvider.java b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletSpanNameProvider.java similarity index 91% rename from instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/naming/ServletSpanNameProvider.java rename to instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletSpanNameProvider.java index 8a723c5c343d..871359f9aac7 100644 --- a/instrumentation/servlet/servlet-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/naming/ServletSpanNameProvider.java +++ b/instrumentation/servlet/servlet-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/ServletSpanNameProvider.java @@ -3,13 +3,12 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.servlet.naming; +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.instrumentation.servlet.ServletAccessor; import javax.annotation.Nullable; /** Helper class for constructing span name for given servlet/filter mapping and request. */ diff --git a/instrumentation/servlet/servlet-javax-common/javaagent/build.gradle.kts b/instrumentation/servlet/servlet-javax-common/javaagent/build.gradle.kts index e391bae22434..777a8d03c0e0 100644 --- a/instrumentation/servlet/servlet-javax-common/javaagent/build.gradle.kts +++ b/instrumentation/servlet/servlet-javax-common/javaagent/build.gradle.kts @@ -2,22 +2,10 @@ plugins { id("otel.javaagent-instrumentation") } -muzzle { - pass { - group.set("javax.servlet") - module.set("servlet-api") - versions.set("(0,)") - } - pass { - group.set("javax.servlet") - module.set("javax.servlet-api") - versions.set("[3.0,)") - assertInverse.set(true) - } -} +// This module is only used as a dependency for other javaagent modules and does not contain any +// non-abstract implementations of InstrumentationModule dependencies { - api(project(":instrumentation:servlet:servlet-javax-common:library")) implementation(project(":instrumentation:servlet:servlet-common:javaagent")) compileOnly("javax.servlet:servlet-api:2.3") diff --git a/instrumentation/servlet/servlet-javax-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/javax/JavaxServletAccessor.java b/instrumentation/servlet/servlet-javax-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/javax/JavaxServletAccessor.java similarity index 95% rename from instrumentation/servlet/servlet-javax-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/javax/JavaxServletAccessor.java rename to instrumentation/servlet/servlet-javax-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/javax/JavaxServletAccessor.java index 1db7cf52f613..00c837a8225c 100644 --- a/instrumentation/servlet/servlet-javax-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/javax/JavaxServletAccessor.java +++ b/instrumentation/servlet/servlet-javax-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/javax/JavaxServletAccessor.java @@ -3,9 +3,9 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.servlet.javax; +package io.opentelemetry.javaagent.instrumentation.servlet.javax; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; +import io.opentelemetry.javaagent.instrumentation.servlet.ServletAccessor; import java.security.Principal; import java.util.Arrays; import java.util.Collections; diff --git a/instrumentation/servlet/servlet-javax-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/javax/JavaxServletInstrumentationModule.java b/instrumentation/servlet/servlet-javax-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/javax/JavaxServletInstrumentationModule.java deleted file mode 100644 index 5509ecd2145b..000000000000 --- a/instrumentation/servlet/servlet-javax-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/javax/JavaxServletInstrumentationModule.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.javaagent.instrumentation.servlet.javax; - -import com.google.auto.service.AutoService; -import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule; -import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; -import io.opentelemetry.javaagent.instrumentation.servlet.common.response.HttpServletResponseInstrumentation; -import java.util.Collections; -import java.util.List; - -@AutoService(InstrumentationModule.class) -public class JavaxServletInstrumentationModule extends InstrumentationModule { - private static final String BASE_PACKAGE = "javax.servlet"; - - public JavaxServletInstrumentationModule() { - super("servlet", "servlet-javax-common"); - } - - @Override - public List typeInstrumentations() { - return Collections.singletonList( - new HttpServletResponseInstrumentation( - BASE_PACKAGE, adviceClassName(".response.ResponseSendAdvice"))); - } - - private static String adviceClassName(String suffix) { - return JavaxServletInstrumentationModule.class.getPackage().getName() + suffix; - } -} diff --git a/instrumentation/servlet/servlet-javax-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/javax/response/JavaxResponseInstrumentationFactory.java b/instrumentation/servlet/servlet-javax-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/javax/response/JavaxResponseInstrumentationFactory.java new file mode 100644 index 000000000000..ece7ac568a05 --- /dev/null +++ b/instrumentation/servlet/servlet-javax-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/servlet/javax/response/JavaxResponseInstrumentationFactory.java @@ -0,0 +1,22 @@ +/* + * Copyright The OpenTelemetry Authors + * SPDX-License-Identifier: Apache-2.0 + */ + +package io.opentelemetry.javaagent.instrumentation.servlet.javax.response; + +import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation; +import io.opentelemetry.javaagent.instrumentation.servlet.common.response.HttpServletResponseInstrumentation; + +public final class JavaxResponseInstrumentationFactory { + + private static final String BASE_PACKAGE = "javax.servlet"; + + public static TypeInstrumentation create() { + return new HttpServletResponseInstrumentation( + BASE_PACKAGE, + JavaxResponseInstrumentationFactory.class.getPackage().getName() + ".ResponseSendAdvice"); + } + + private JavaxResponseInstrumentationFactory() {} +} diff --git a/instrumentation/servlet/servlet-javax-common/library/build.gradle.kts b/instrumentation/servlet/servlet-javax-common/library/build.gradle.kts deleted file mode 100644 index 0b6cfd50ba52..000000000000 --- a/instrumentation/servlet/servlet-javax-common/library/build.gradle.kts +++ /dev/null @@ -1,15 +0,0 @@ -plugins { - id("otel.library-instrumentation") -} - -dependencies { - implementation("org.slf4j:slf4j-api") - - api(project(":instrumentation:servlet:servlet-common:library")) - - compileOnly("javax.servlet:servlet-api:2.2") - - testImplementation("javax.servlet:servlet-api:2.2") - testImplementation("org.mockito:mockito-core") - testImplementation("org.assertj:assertj-core") -} diff --git a/instrumentation/spring/spring-webmvc-3.1/library/build.gradle.kts b/instrumentation/spring/spring-webmvc-3.1/library/build.gradle.kts index 3b8325ee892c..0d5ec74e0136 100644 --- a/instrumentation/spring/spring-webmvc-3.1/library/build.gradle.kts +++ b/instrumentation/spring/spring-webmvc-3.1/library/build.gradle.kts @@ -3,9 +3,6 @@ plugins { } dependencies { - implementation(project(":instrumentation:servlet:servlet-common:library")) - implementation(project(":instrumentation:servlet:servlet-javax-common:library")) - compileOnly("org.springframework:spring-webmvc:3.1.0.RELEASE") compileOnly("javax.servlet:javax.servlet-api:3.1.0") } diff --git a/instrumentation/servlet/servlet-javax-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/javax/JavaxHttpServletRequestGetter.java b/instrumentation/spring/spring-webmvc-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/JavaxHttpServletRequestGetter.java similarity index 76% rename from instrumentation/servlet/servlet-javax-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/javax/JavaxHttpServletRequestGetter.java rename to instrumentation/spring/spring-webmvc-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/JavaxHttpServletRequestGetter.java index c0690de048bc..6f0174dc9a14 100644 --- a/instrumentation/servlet/servlet-javax-common/library/src/main/java/io/opentelemetry/instrumentation/servlet/javax/JavaxHttpServletRequestGetter.java +++ b/instrumentation/spring/spring-webmvc-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/JavaxHttpServletRequestGetter.java @@ -3,13 +3,13 @@ * SPDX-License-Identifier: Apache-2.0 */ -package io.opentelemetry.instrumentation.servlet.javax; +package io.opentelemetry.instrumentation.spring.webmvc; import io.opentelemetry.context.propagation.TextMapGetter; import java.util.Collections; import javax.servlet.http.HttpServletRequest; -public enum JavaxHttpServletRequestGetter implements TextMapGetter { +enum JavaxHttpServletRequestGetter implements TextMapGetter { INSTANCE; @Override diff --git a/instrumentation/spring/spring-webmvc-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/SpringWebMvcTracingBuilder.java b/instrumentation/spring/spring-webmvc-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/SpringWebMvcTracingBuilder.java index c26630918c0b..c8ad42f2cd59 100644 --- a/instrumentation/spring/spring-webmvc-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/SpringWebMvcTracingBuilder.java +++ b/instrumentation/spring/spring-webmvc-3.1/library/src/main/java/io/opentelemetry/instrumentation/spring/webmvc/SpringWebMvcTracingBuilder.java @@ -13,7 +13,6 @@ 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.servlet.javax.JavaxHttpServletRequestGetter; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; diff --git a/instrumentation/tomcat/tomcat-common/javaagent/build.gradle.kts b/instrumentation/tomcat/tomcat-common/javaagent/build.gradle.kts index b4762560111a..58c5a86187d8 100644 --- a/instrumentation/tomcat/tomcat-common/javaagent/build.gradle.kts +++ b/instrumentation/tomcat/tomcat-common/javaagent/build.gradle.kts @@ -3,7 +3,7 @@ plugins { } dependencies { - api(project(":instrumentation:servlet:servlet-common:library")) - implementation(project(":instrumentation:servlet:servlet-common:javaagent")) + api(project(":instrumentation:servlet:servlet-common:javaagent")) + compileOnly("org.apache.tomcat.embed:tomcat-embed-core:7.0.4") } diff --git a/instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatAdditionalAttributesExtractor.java b/instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatAdditionalAttributesExtractor.java index e0da3bf8219b..28c6b76a21c0 100644 --- a/instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatAdditionalAttributesExtractor.java +++ b/instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatAdditionalAttributesExtractor.java @@ -7,7 +7,7 @@ import io.opentelemetry.api.common.AttributesBuilder; import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; -import io.opentelemetry.instrumentation.servlet.ServletAccessor; +import io.opentelemetry.javaagent.instrumentation.servlet.ServletAccessor; import io.opentelemetry.semconv.trace.attributes.SemanticAttributes; import java.security.Principal; import javax.annotation.Nullable; diff --git a/instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatInstrumenterFactory.java b/instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatInstrumenterFactory.java index ef63ea83c2b8..95696f5bd6b4 100644 --- a/instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatInstrumenterFactory.java +++ b/instrumentation/tomcat/tomcat-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/common/TomcatInstrumenterFactory.java @@ -19,7 +19,7 @@ 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.instrumentation.servlet.ServletAccessor; +import io.opentelemetry.javaagent.instrumentation.servlet.ServletAccessor; import io.opentelemetry.javaagent.instrumentation.servlet.ServletErrorCauseExtractor; import org.apache.coyote.Request; import org.apache.coyote.Response; diff --git a/settings.gradle.kts b/settings.gradle.kts index 73d7bf6ab53f..2d3db9a3db95 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -336,9 +336,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:library") include(":instrumentation:servlet:servlet-common:javaagent") -include(":instrumentation:servlet:servlet-javax-common:library") include(":instrumentation:servlet:servlet-javax-common:javaagent") include(":instrumentation:servlet:servlet-2.2:javaagent") include(":instrumentation:servlet:servlet-3.0:javaagent")