diff --git a/build.gradle.kts b/app/build.gradle.kts similarity index 73% rename from build.gradle.kts rename to app/build.gradle.kts index 17cf871..af42aac 100644 --- a/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,15 +1,13 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - id("org.springframework.boot") version "2.5.6" - id("io.spring.dependency-management") version "1.0.11.RELEASE" - kotlin("jvm") version "1.5.31" - kotlin("plugin.spring") version "1.5.31" - kotlin("plugin.jpa") version "1.5.31" + id("org.springframework.boot") + id("io.spring.dependency-management") + kotlin("jvm") + kotlin("plugin.spring") + kotlin("plugin.jpa") } -group = "org.davnokodery" -version = "0.0.2" java.sourceCompatibility = JavaVersion.VERSION_11 repositories { @@ -26,7 +24,7 @@ dependencies { implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") - implementation("com.auth0:java-jwt:3.18.2") + implementation("com.auth0:java-jwt:3.19.0") runtimeOnly("com.h2database:h2") diff --git a/src/main/kotlin/org/davnokodery/StournamentApplication.kt b/app/src/main/kotlin/org/davnokodery/StournamentApplication.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/StournamentApplication.kt rename to app/src/main/kotlin/org/davnokodery/StournamentApplication.kt diff --git a/src/main/kotlin/org/davnokodery/rigel/AuthService.kt b/app/src/main/kotlin/org/davnokodery/rigel/AuthService.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/rigel/AuthService.kt rename to app/src/main/kotlin/org/davnokodery/rigel/AuthService.kt diff --git a/src/main/kotlin/org/davnokodery/rigel/GameException.kt b/app/src/main/kotlin/org/davnokodery/rigel/GameException.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/rigel/GameException.kt rename to app/src/main/kotlin/org/davnokodery/rigel/GameException.kt diff --git a/src/main/kotlin/org/davnokodery/rigel/GameExceptionHandler.kt b/app/src/main/kotlin/org/davnokodery/rigel/GameExceptionHandler.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/rigel/GameExceptionHandler.kt rename to app/src/main/kotlin/org/davnokodery/rigel/GameExceptionHandler.kt diff --git a/src/main/kotlin/org/davnokodery/rigel/LoginController.kt b/app/src/main/kotlin/org/davnokodery/rigel/LoginController.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/rigel/LoginController.kt rename to app/src/main/kotlin/org/davnokodery/rigel/LoginController.kt diff --git a/src/main/kotlin/org/davnokodery/rigel/RigelWebsocketConfig.kt b/app/src/main/kotlin/org/davnokodery/rigel/RigelWebsocketConfig.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/rigel/RigelWebsocketConfig.kt rename to app/src/main/kotlin/org/davnokodery/rigel/RigelWebsocketConfig.kt diff --git a/src/main/kotlin/org/davnokodery/rigel/TestDataCreator.kt b/app/src/main/kotlin/org/davnokodery/rigel/TestDataCreator.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/rigel/TestDataCreator.kt rename to app/src/main/kotlin/org/davnokodery/rigel/TestDataCreator.kt diff --git a/src/main/kotlin/org/davnokodery/rigel/UserRepository.kt b/app/src/main/kotlin/org/davnokodery/rigel/UserRepository.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/rigel/UserRepository.kt rename to app/src/main/kotlin/org/davnokodery/rigel/UserRepository.kt diff --git a/src/main/kotlin/org/davnokodery/rigel/UserSessionManager.kt b/app/src/main/kotlin/org/davnokodery/rigel/UserSessionManager.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/rigel/UserSessionManager.kt rename to app/src/main/kotlin/org/davnokodery/rigel/UserSessionManager.kt diff --git a/src/main/kotlin/org/davnokodery/rigel/messages.kt b/app/src/main/kotlin/org/davnokodery/rigel/messages.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/rigel/messages.kt rename to app/src/main/kotlin/org/davnokodery/rigel/messages.kt diff --git a/src/main/kotlin/org/davnokodery/rigel/model/Card.kt b/app/src/main/kotlin/org/davnokodery/rigel/model/Card.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/rigel/model/Card.kt rename to app/src/main/kotlin/org/davnokodery/rigel/model/Card.kt diff --git a/src/main/kotlin/org/davnokodery/rigel/model/GameSession.kt b/app/src/main/kotlin/org/davnokodery/rigel/model/GameSession.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/rigel/model/GameSession.kt rename to app/src/main/kotlin/org/davnokodery/rigel/model/GameSession.kt diff --git a/src/main/kotlin/org/davnokodery/rigel/model/SessionPlayer.kt b/app/src/main/kotlin/org/davnokodery/rigel/model/SessionPlayer.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/rigel/model/SessionPlayer.kt rename to app/src/main/kotlin/org/davnokodery/rigel/model/SessionPlayer.kt diff --git a/src/main/kotlin/org/davnokodery/rigel/notes.md b/app/src/main/kotlin/org/davnokodery/rigel/notes.md similarity index 100% rename from src/main/kotlin/org/davnokodery/rigel/notes.md rename to app/src/main/kotlin/org/davnokodery/rigel/notes.md diff --git a/src/main/kotlin/org/davnokodery/stournament/GameController.kt b/app/src/main/kotlin/org/davnokodery/stournament/GameController.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/stournament/GameController.kt rename to app/src/main/kotlin/org/davnokodery/stournament/GameController.kt diff --git a/src/main/kotlin/org/davnokodery/stournament/GameState.kt b/app/src/main/kotlin/org/davnokodery/stournament/GameState.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/stournament/GameState.kt rename to app/src/main/kotlin/org/davnokodery/stournament/GameState.kt diff --git a/src/main/kotlin/org/davnokodery/stournament/cards.kt b/app/src/main/kotlin/org/davnokodery/stournament/cards.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/stournament/cards.kt rename to app/src/main/kotlin/org/davnokodery/stournament/cards.kt diff --git a/src/main/kotlin/org/davnokodery/stournament/model.kt b/app/src/main/kotlin/org/davnokodery/stournament/model.kt similarity index 100% rename from src/main/kotlin/org/davnokodery/stournament/model.kt rename to app/src/main/kotlin/org/davnokodery/stournament/model.kt diff --git a/src/main/resources/application.properties b/app/src/main/resources/application.properties similarity index 100% rename from src/main/resources/application.properties rename to app/src/main/resources/application.properties diff --git a/src/main/resources/logback.xml b/app/src/main/resources/logback.xml similarity index 100% rename from src/main/resources/logback.xml rename to app/src/main/resources/logback.xml diff --git a/src/test/kotlin/org/davnokodery/rigel/GameSessionTest.kt b/app/src/test/kotlin/org/davnokodery/rigel/GameSessionTest.kt similarity index 100% rename from src/test/kotlin/org/davnokodery/rigel/GameSessionTest.kt rename to app/src/test/kotlin/org/davnokodery/rigel/GameSessionTest.kt diff --git a/src/test/kotlin/org/davnokodery/rigel/IntegrationTest.kt b/app/src/test/kotlin/org/davnokodery/rigel/IntegrationTest.kt similarity index 100% rename from src/test/kotlin/org/davnokodery/rigel/IntegrationTest.kt rename to app/src/test/kotlin/org/davnokodery/rigel/IntegrationTest.kt diff --git a/src/test/kotlin/org/davnokodery/rigel/StournamentApplicationTests.kt b/app/src/test/kotlin/org/davnokodery/rigel/StournamentApplicationTests.kt similarity index 100% rename from src/test/kotlin/org/davnokodery/rigel/StournamentApplicationTests.kt rename to app/src/test/kotlin/org/davnokodery/rigel/StournamentApplicationTests.kt diff --git a/src/test/kotlin/org/davnokodery/stournament/GameStateTest.kt b/app/src/test/kotlin/org/davnokodery/stournament/GameStateTest.kt similarity index 100% rename from src/test/kotlin/org/davnokodery/stournament/GameStateTest.kt rename to app/src/test/kotlin/org/davnokodery/stournament/GameStateTest.kt diff --git a/docs/arch/adr-0002-extract-card-logic.md b/docs/arch/adr-0002-extract-card-logic.md new file mode 100644 index 0000000..6f8dc8b --- /dev/null +++ b/docs/arch/adr-0002-extract-card-logic.md @@ -0,0 +1,44 @@ +# ADR 2: Extract game logic to a separate submodule + +## Status + +Proposed + +## Context + +Game project consists of the application and game logic code. +The application code contains endpoints and services for communicating with the client application and managing the game session lifecycle. +That part of the project is expected to be settled and have only slight changes after the initial release. +The game logic part on the other side is where the all game mechanics and balance logic is located and therefore can change more often. +The biggest necessity to make it separate is not to share it as part of the main open source project and not to spoil the fun of exploring the game. +Game logic code can be published as open source with a delay, when the new set of game logic code is developed. +## Decision + +We will keep game logic in a separate gradle module residing in a git submodule, added to the application during the build process. +To separate these modules a new interface module will be requried (`game-logic-interface`). + +The suggested git tree: + + + app/ + logic-interface/ + logic/ (git submodule) + build.gradle + + +The compilation dependencies will look like this: + +```mermaid +graph TB + app --> logic-interface + logic --> logic-interface +``` + +The `logic` dependency should be runtime only and optional (implemented via gradle `feature variant`) + +The app project can contain some sample logic to have a technically functional application but not a full game. + +## Consequences + +The application project is split into separate modules, which can have different visibility and lifecycle. +Git submodules are used. \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..6bf39ac --- /dev/null +++ b/gradle.properties @@ -0,0 +1,8 @@ +# application properties +version=0.0.3 +group=org.davnokodery + +# dependencies / plugins +kotlinVersion=1.6.20 +springBootVersion=2.5.6 +springDependencyVersion=1.0.11.RELEASE diff --git a/settings.gradle.kts b/settings.gradle.kts index 3bbe191..6b1a261 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1 +1,16 @@ +pluginManagement { + val kotlinVersion: String by settings + val springBootVersion: String by settings + val springDependencyVersion: String by settings + + plugins { + id("org.springframework.boot") version springBootVersion + id("io.spring.dependency-management") version springDependencyVersion + kotlin("jvm") version kotlinVersion + kotlin("plugin.spring") version kotlinVersion + kotlin("plugin.jpa") version kotlinVersion + } +} +include(":app") rootProject.name = "stournament" +