-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(integration): change chess engine service api and integrate the …
…chess application with the chess engine service --- Chess Engine API The contract of the chess engine service (alias ChessPort) has been updated according to the new design. In addition: - a getState functionality has been added to retrieve the state of the game on demand - each functionality now returns a Future, making all functionalities asynchronous, as it should be in a distributed system The implementation of such contract has been updated and moved to io.github.chess.model.ChessGame. The ChessBoard now acts as a simple container for the chess pieces, exposing functionalities for updating its internal data structure. In addition: - a ChessBoardBuilder has been added to preconfigure the creation of a chess board - a ChessBoardBuilder.DSL has been designed to speed up the creation of a chess board and making it easier to understand (see io.github.chess.model.{ChessBoardBuilderDSLSpec, ChessBoardBuilderSpec, ChessBoardSpec} as examples on how to use it) A standard configuration of a chess board has been provided with placeholder pieces. Minor refactoring has been applied to some of the dependencies of the service. --- Chess Application The chess game interface has been renamed to ChessApplication. Now, the chess application does not depend directly on the chess board, but is uses a LocalChessProxy for interacting with the chess engine service. Such proxy is provided together with the main stage of the application in the ChessApplicationContext, which is unique for the entire application and it is provided as a given to any ChessApplicationComponent. Other components of the application has been updated according to the new chess engine api. --- Other An OptionExtension has been added in the utilities. This extension provides the following functionalities: - a given conversion that maps any object to an option containing that object - a getOrThrow method, which returns the content of an option or throws an exception A Require object has been added in the utilities. This object provides many methods for throwing exceptions in a more declarative way. --- Fix ScalaFormatter now runs before each build, run or test. The compiler options of the scala compiler has been changes: - added -feature: this shows feature warnings when a scala feature that requires to be activated explicitly has been used without doing so - added -language:implicitConversions: this allows to use given conversions without throwing feature warnings
- Loading branch information
Showing
30 changed files
with
905 additions
and
201 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.