Skip to content

Upgrade at_client to JDK 11 #322

@akafredperry

Description

@akafredperry

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

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions