-
Notifications
You must be signed in to change notification settings - Fork 19
Description
Is your feature request related to a problem? Please describe.
The current JDK is JDK 8, whilst this is LTS (long term support) most organisations have upgraded their application to JDK 17 or JDK 11. Using a JDK 8 artifact in a JDK 11+ application requires the user to manage a number of issues
- Java EE namespace shift javax -> jakarta (this requires user to include backward compatible dependencies)
- Java Modules model can break some reflection code
Ideally the artifact we provide as the SDK should have a minimal set of "uncontroversial" dependencies.
The REPL (interactive shell implementation adds jansi / picocli) this should be moved to a separate project / artifact. As should the CameraUtil which brings in dependencies on apache commons
The project should use the latest version of Junit5 / Mockito and Hamcrest and Cucumber
Describe the solution you'd like
Upgrade at_java/at_client to use JDK 11
Create a new project at_java/at_shell - migrate REPL to this module
Create a new project at_java/at_utils - migrate CameraUtil to this module
Use
- slf4j
- bouncy castle
- jackson
Adopt Lombok to remove boiler plate, "record" classes and builders
Describe alternatives you've considered
We could go straight to JDK 17 but this would increase the number of changes. Many organisations still use JDK 11 so it would be useful to break up the change and to provide a branch point.
Using JDK 17 would allow the use of records rather than Lombok to remove boiler plate code
Additional context
No response