-
Notifications
You must be signed in to change notification settings - Fork 122
Technology stack
The language level used is Java 15. We always use newest syntax and API. See lambda functions and method references. Also the stream API is commonly used.
The application is based on the Spring Framework, this primarily includes:
- Configuration using @Configuration (creating objects (services etc.))
- Dependency injection using @Inject for injection into the constructor(accessing objects (services etc.))
- Caching using @Cacheable
See the docs
As an UI framework, we use JavaFX 15. UIs are defined in FXML files. To edit them with a GUI based setup, get SceneBuilder
To convert data transfer objects from the server we use mapstruct which auto generates code to convert fields between objects
_See the docs
Communications with the api and server utilize the Reactor API which is a non-blocking based API framework
_See the docs
For general code that is not necessarily client specific we have a separate repository that this development is done in so it can be used by other repos
We use Gradle as a build automation system. This includes dependency resolution.
For unit testing, JUnit 5 is used. Hamcrest is used for assertions, for mocking we use Mockito.
For development most of the client maintainers utilize Intellij IDEA The Community Version can be used for all development on the client
SLF4J is a logging framework abstraction. As a logging framework, we use Logback. SLF4J