-
Notifications
You must be signed in to change notification settings - Fork 122
Application Design
The language level used is Java 8. We always use newest syntax and API.
The application is based on the Spring Framework, this primarily includes:
- Configuration using @Configuration
- Dependency injection using @Resource
- Caching using @Cacheable
As an UI framework, we use JavaFX 8. Due to lack of quality and compatibility, we do not use ControlsFX. UIs are defined in FXML files. To edit them, get SceneBuilder.
We use Gradle as a build automation system. This includes dependency resolution.
For unit testing, JUnit is used. Hamcrest is used for assertions, for mocking we use Mockito.
The best Java IDE ever.
SLF4J is a logging framework abstraction. As a logging framework, we use Logback.
Packages are divided by feature, not layer
There's still a bit a package mess, especially the package com.faforever.client.legacy
, this will be cleaned up as we work.