tiennm99
cbad690565
docs,chore: single-port 1999 websocket protobuf
...
Phase 05 — sync infrastructure and documentation with the typed-protobuf
refactor:
- docker-compose.yml: drop 1024/1025 mappings, single "1999:1999"
- server/Dockerfile: EXPOSE 1999, -p 1999 entrypoint
- README.md: rewrite transport description, architecture diagram, protocol
section, server options, project structure, add proto:gen script note
- docs/project-overview.md: update transport + dependencies sections
- docs/system-architecture.md: rewrite diagrams + pipeline + file inventory
for the WebSocket-only typed-dispatch path
- docs/codebase-summary.md: refresh file tree, java package inventory,
gradle deps, vite deps, networking and game-flow sections
- docs/deployment-guide.md: single-port walkthrough for local / docker /
systemd / nginx; remove all 1024/1025 firewall and troubleshooting
- docs/code-standards.md: replace dead ServerEventListener_CODE_* class-name
example, fix sample ws:// URL to port 1999
2026-04-11 08:33:46 +07:00
tiennm99
b7ff184387
refactor: convert server from Maven to Gradle
...
Replace server/pom.xml with Gradle 9.2.1 (Kotlin DSL) + Shadow plugin
for fat jar packaging.
New files:
- server/build.gradle.kts (Kotlin DSL script)
- server/settings.gradle.kts
- server/gradle/wrapper/ (committed wrapper, pinned to 9.2.1)
- server/gradlew, gradlew.bat
Deleted:
- server/pom.xml
Gradle config:
- plugins: java, com.gradleup.shadow 8.3.5
- toolchain: JavaLanguageVersion.of(25) (auto-provisions if missing)
- deps: netty-all 4.1.115.Final, protobuf-java 3.25.5, gson 2.11.0,
junit-bom 5.11.3 + junit-jupiter (test)
- compiler: -parameters, UTF-8
- test: useJUnitPlatform()
- shadowJar: main class com.miti99.caro.server.SimpleServer,
mergeServiceFiles(), append META-INF/io.netty.versions.properties
- default assembly depends on shadowJar
Output path migration:
- server/target/caro-server-0.0.1-beta.jar moves under Gradle output conventions.
Infrastructure:
- server/Dockerfile: eclipse-temurin:25-jdk + committed wrapper
(no Maven image); runtime stage unchanged. COPY order optimized.
- .github/workflows/build.yml: setup-java temurin 25 +
gradle/actions/setup-gradle, run gradlew with -p server.
- .gitignore: add .gradle/, whitelist wrapper jar after *.jar rule.
Docs + README fully updated to Gradle commands across:
README.md, codebase-summary.md, code-standards.md, deployment-guide.md,
project-overview.md, system-architecture.md.
Validation: gradlew clean assemble check passes all 37 tests on Java 25.
2026-04-10 20:50:53 +07:00
tiennm99
5b68ee9cc4
refactor: standalone maven, java 25, shade, gson, junit 5, rename to server/
...
Build system modernization:
- Delete root parent pom.xml; server/pom.xml is now standalone.
- Drop Spring Boot parent; use maven-shade-plugin 3.6.0 for fat jar.
- Upgrade source/target to Java 25 (LTS); pin explicit dep versions:
netty-all 4.1.115.Final, protobuf-java 3.25.5, gson 2.11.0,
junit-jupiter 5.11.3, maven-compiler-plugin 3.13.0,
maven-surefire-plugin 3.5.2, maven-shade-plugin 3.6.0.
- New coordinates: com.miti99.caro:caro-server:0.0.1-beta.
- Shade transformers: manifest (main class), services, appending
(Netty io.netty.versions.properties merge).
Dependency migration:
- Replace com.smallnico:noson with gson across 5 files (7 call sites):
MapHelper, TransferProtocolUtils, ServerEventListener_CODE_GAME_WATCH,
ServerEventListener_CODE_GET_ROOMS, ServerEventListener_CODE_ROOM_CREATE.
All call sites now funnel through existing JsonUtils wrapper (DRY).
- Migrate GomokuHelperTest + GomokuAITest from JUnit 4 to JUnit 5
(org.junit.Test -> org.junit.jupiter.api.Test,
org.junit.Assert.* -> org.junit.jupiter.api.Assertions.*).
Directory + infra:
- git mv landlords-server/ -> server/.
- Rewrite server/Dockerfile: Java 25 base images
(maven:3.9-eclipse-temurin-25 build, eclipse-temurin:25-jre-alpine runtime),
simplified COPY paths (no more multi-module layout).
- docker-compose.yml: dockerfile points to server/Dockerfile.
- .github/workflows/build.yml: setup-java temurin 25,
`mvn -f server/pom.xml -B clean verify`.
Validation: mvn verify on Java 25 passes all 37 tests (29 GomokuHelper
+ 8 GomokuAI), shade produces caro-server-0.0.1-beta.jar cleanly.
Note: package names remain org.nico.ratel.landlords.* in this phase;
renamed to com.miti99.caro.{common,server}.* in Phase 4.
2026-04-10 19:10:51 +07:00