Maintain compatibility with spring v5 / springboot v2
Maintain runtime compatibility with java 8
Maintain using a single bugsnag-spring jar
Design
As far as I can tell this is the only way to satisfy the requirements.
In order to achieve compatibility with both spring versions we must compile against both versions.
In order to achieve runtime compatibility with java 8, all switching needs be done in java 8, this forces classes to be loaded by string literal rather than class reference.
Changeset
Additional functionality to support spring6 / springboot3.
A switch in BugsnagSpringConfiguration that loads the correct classes.
Testing
Additional unit tests so that both spring v2 and spring v3 have the same coverage
Maze-runner pipeline stages that tests java8/spring2 backward compatibility
Maze-runner pipeline stages that tests java17/spring3 functionality
Local testing using java17 in spring v5 and springboot v2
Goal
Design
As far as I can tell this is the only way to satisfy the requirements. In order to achieve compatibility with both spring versions we must compile against both versions. In order to achieve runtime compatibility with java 8, all switching needs be done in java 8, this forces classes to be loaded by string literal rather than class reference.
Changeset
Testing