Skip to content

Add support for Spring 6.x and Spring Boot 3.x #2942

Description

@eyalkoren

Spring 6 and Spring Boot 3 are GA, requiring us to do some changes in our instrumentations and create tests.
Following are major changes in those frameworks and the corresponding required changes in the agent:

  • Using Java 17 as their baseline - Fix instrumentation for WebFlux with Spring 6.x #2936 proposes a framework to facilitate the work with Java 17 while still maintaining compatibility with Java 11 wherever applicable
  • Relying on Jakarta EE - our Spring MVC instrumentations and much of our tests will have to adapt
  • API changes - currently, the only known such change is the one exposed through our WebFlux instrumentation, as reported in Fix support for Spring boot 3.x #2935

This issue is currently blocked on #2936. Once we know how we want our structure to facilitate Java 17 modules, we can unblock and prioritize this one.

Checklist:

  • Remove project-global version definitions Spring cleaning #3148
  • Make sure Spring version are automatically upgraded by dependabot or through unbounded maven imports
  • Adapt Spring MVC instrumentations - if all Spring class names and APIs remained the same, we may not be required to have a Java-17+ instrumentation module like we had to do with WebFlux, only adapt to use Jakarta EE APIs, for which we can hopefully reuse the Servlet API adapters.
  • Duplicate/adapt WebFlux plugin test (will have to run only on Java 17+). With Fix support for Spring boot 3.x #2935 I was able to upgrade dependencies locally and run the tests.
  • Duplicate/adapt Spring MVC plugin tests (will have to run only on Java 17+). I was able to upgrade dependencies locally and with some javax-->jakarta changes successfully run SpringTransactionNameInstrumentationTest.
  • Spring RestTemplate tests - covered through Enabled spring RestTemplate tests for spring 6 #2920
  • Add a Spring Boot 3.x integration test module Spring boot integration test upgrade #3125
  • Update supported technologies page
  • Once all the above are merged, open an issue to upgrade opbeans to Spring Boot 3.x

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions