elastic / elastic/apm-agent-java
Add support for javalin 5, currently the instrumentation crashes
- Dominant language
- Java
- Stars
- 594
- Forks
- 338
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 25
Description
Per [report in the discussion forums](https://discuss.elastic.co/t/error-in-apm-java-agent-when-using-latest-javalin-versions/371702) our instrumentation currently doesn't support javalin 5:
```
java.lang.IncompatibleClassChangeError: Found interface io.javalin.http.Context, but class was expected
at co.elastic.apm.agent.javalin.JavalinInstrumentation$HandlerAdapterAdvice.setSpanAndTransactionName(JavalinInstrumentation.java:177) ~[elastic-apm-agent.jar:1.52.1]
at xx.xxxxx.xxxxxx.xxxxxxx.xxxxx.TestFilter.handle(TestFilter.java:40) ~[test-1.0.0-SNAPSHOT.jar:?]
at io.javalin.router.Endpoint.handle(Endpoint.kt:52) ~[javalin-6.1.3.jar:6.1.3]
at io.javalin.router.ParsedEndpoint.handle(ParsedEndpoint.kt:15) ~[javalin-6.1.3.jar:6.1.3]
```
We should
* add support for javalin 5
* Ensure that version 3.13.8, latest 3.x, latest 4.x and overall latest (currently 5.x) still work via tests (see [this](https://github.com/elastic/apm-agent-java/blob/main/apm-agent-plugins/apm-apache-httpclient/apm-apache-httpclient4-plugin/src/test/java/co/elastic/apm/agent/httpclient/v4/LegacyApacheHttpClientVersionIT.java) as an example)
* Add javalin to the dependabot config to ensure we don't miss future updates
Contributor guide
Assessment
This issue has not been assessed yet.