-
Notifications
You must be signed in to change notification settings - Fork 8
Description
The current codebase relies on Eclipse Jersey (via spring-boot-starter-jersey) for several things:
- Jersey of the default REST client used by the FluentForms libraries to talk to AEM
- Jersey endpoints are used for the AEM proxy code that reverse-proxys calls from HTML5 and Adaptive Forms to AEM.
Spring provides equivilent functionality to the functionality Jersey provides, so the reliance on Jersey is not absolutely necessary (it was just convenient because we had more experience using Jersey than Spring MVC).
The development of the Jersey dependency can sometimes lag behind the Spring development (e.g. no Spring Boot 4 compatible version of the jersey starter was available during the Spring Boot 4 release candidate cycle - it only became available around the time of release). This can lead to delays in adopting new versions of Spring.
It's also a general best practice to eliminate unnecessary dependencies as it makes the project easier to maintain and the progress of the project is less constrained (each dependency comes with it's own constraints that are added to the including project).
The current codebase allows the default REST client in item 1) above to be replaced with the Spring Rest client. The work involved would be to implement the existing endpoint logic (i.e. item 2) using Spring MVC.
The plan is to retain the existing Jersey implementation in its own Spring Boot starter. Projects that need to use the existing Jersey implementation could include that Spring Boot starter instead of the normal starter in their pom.xml. The Jersey implementation would then supercede the Spring MVC implementation.
Over time, as confidence in the Spring MVC implementation grows, the Jersey implementations may be removed but that may take some time.