elastic / elastic/apm-agent-java

Add support for javalin 5, currently the instrumentation crashes

Open
#3,908 0 comments 0 reactions 1 assignee Claimed by @LikeTheSalad View on GitHub
agent-java
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.