Skip to content

Commit c822c44

Browse files
committed
Fix latestDepTests and add readme.
1 parent a34d722 commit c822c44

File tree

2 files changed

+69
-0
lines changed

2 files changed

+69
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Library Instrumentation for Java Servlet version 3.0 and higher
2+
3+
Provides OpenTelemetry instrumentation for Java Servlets through a servlet filter.
4+
5+
## Quickstart
6+
7+
### Add these dependencies to your project
8+
9+
Replace `OPENTELEMETRY_VERSION` with
10+
the [latest release](https://central.sonatype.com/artifact/io.opentelemetry.instrumentation/opentelemetry-lettuce-5.1).
11+
12+
For Maven, add to your `pom.xml` dependencies:
13+
14+
```xml
15+
16+
<dependencies>
17+
<dependency>
18+
<groupId>io.opentelemetry.instrumentation</groupId>
19+
<artifactId>opentelemetry-servlet-3.0</artifactId>
20+
<version>OPENTELEMETRY_VERSION</version>
21+
</dependency>
22+
</dependencies>
23+
```
24+
25+
For Gradle, add to your dependencies:
26+
27+
```kotlin
28+
implementation("io.opentelemetry.instrumentation:opentelemetry-servlet-3.0:OPENTELEMETRY_VERSION")
29+
```
30+
31+
### Usage
32+
33+
Add the filter to your `web.xml`
34+
35+
```xml
36+
<web-app>
37+
<filter>
38+
<filter-name>OpenTelemetryServletFilter</filter-name>
39+
<filter-class>io.opentelemetry.instrumentation.servlet.v3_0.OpenTelemetryServletFilter
40+
</filter-class>
41+
<async-supported>true</async-supported>
42+
</filter>
43+
<filter-mapping>
44+
<filter-name>OpenTelemetryServletFilter</filter-name>
45+
<url-pattern>/*</url-pattern>
46+
</filter-mapping>
47+
</web-app>
48+
```
49+
50+
Note: GlobalOpenTelemetry must be set before filter initialization. If you are unable to ensure it
51+
is set first, consider creating a subclass of `OpenTelemetryServletFilter` that handles
52+
initialization of GlobalOpenTelemetry in a static initializer or constructor.

instrumentation/servlet/servlet-3.0/library/build.gradle.kts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ dependencies {
99
testLibrary("org.eclipse.jetty:jetty-servlet:8.0.0.v20110901")
1010
testLibrary("org.apache.tomcat.embed:tomcat-embed-core:8.0.41")
1111
testLibrary("org.apache.tomcat.embed:tomcat-embed-jasper:8.0.41")
12+
13+
latestDepTestLibrary("org.eclipse.jetty:jetty-server:10.+")
14+
latestDepTestLibrary("org.eclipse.jetty:jetty-servlet:10.+")
15+
16+
latestDepTestLibrary("org.apache.tomcat.embed:tomcat-embed-core:9.+")
17+
latestDepTestLibrary("org.apache.tomcat.embed:tomcat-embed-jasper:9.+")
1218
}
1319

1420
tasks {
@@ -18,3 +24,14 @@ tasks {
1824
jvmArgs("-XX:+IgnoreUnrecognizedVMOptions")
1925
}
2026
}
27+
28+
// Servlet 3.0 in latest Jetty versions requires Java 11
29+
// However, projects that depend on this module are still be using Java 8 in testLatestDeps mode
30+
// Therefore, we need a separate project for servlet 3.0 tests
31+
val latestDepTest = findProperty("testLatestDeps") as Boolean
32+
33+
if (latestDepTest) {
34+
otelJava {
35+
minJavaVersionSupported.set(JavaVersion.VERSION_11)
36+
}
37+
}

0 commit comments

Comments
 (0)