elastic / elastic/apm-agent-java

Add support to Jakarta EE 9

Open
#1,543 1 comment 0 reactions 1 assignee Claimed by @jackshirazi View on GitHub
agent-java instrumentation new-feature size:large
Dominant language
Java
Stars
594
Forks
338
Avg merge
1d 13h
Merged PRs (30d)
25

Description

## Is your feature request related to a problem?
Already known issue - multiple APIs moved from package `javax` to `jakarta` in this version, meaning that our instrumentations will not be applied. This includes the sub-packages `servlet`, `jms`, `ws`, `faces` and `ejb` that we instrument at least.

## Describe the solution you'd like
It is likely that the addition of the `jakarta` package to matchers will be sufficient in most or all cases, but it will require some investigation and a lot of refactoring and testing.

## Minimal requirements for resolving this issue
- [x] verify `Servlet` and `FilterChain` instrumentations work - #1912
- [ ] verify JMS instrumentation works - #2282
- [x] verify JAX-RS instrumentation works https://github.com/elastic/apm-agent-java/pull/2248
- [x] verify JAX-WS instrumentation works https://github.com/elastic/apm-agent-java/pull/2247
- [x] verify JSF instrumentation works https://github.com/elastic/apm-agent-java/pull/2254
- [x] verify `javax.ejb.Schedule` instrumentation works https://github.com/elastic/apm-agent-java/pull/2250
- [x] add Tomcat 10 to integration tests - #2299
- [ ] verify **hibernate** instrumentation works (JPA dependency)

## Additional context
- Our integration test on [Tomcat 10](http://tomcat.apache.org/migration-10.html) would fail due to this breaking change - see related [comment](https://github.com/elastic/apm-agent-java/pull/1542/files#r532211889).
- **hibernate**: The apm-hibernate-search-plugin has a dependency on JPA - javax.persistence - which will be migrated. However the EE9 dependency is not yet available, tracked in https://hibernate.atlassian.net/browse/HHH-13946
- **spring** EE9 support for spring is not available until Q4 2022. This means that the `apm-jms-spring-plugin` test cannot be duplicated for jakarta.jms until that is available (as it has class dependencies that specify javax.jms) Spring can be tracked at https://github.com/spring-projects/spring-framework/issues/25354

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.