Split into Maven multi-module (engine + server); rename to cuckooDB#17
Conversation
Mechanical rename ahead of the Maven module split (no logic change): - Java package com.github.jinba1.blazedb -> com.github.jinba1.cuckoodb - entry class BlazeDB -> CuckooDB (BlazeDBTest -> CuckooDBTest) - cosmetic temp-dir literals (blazedb-test-, blazedb-roundtrip) - pom artifactId java-query-engine -> cuckoodb, <name> -> cuckooDB, exec id run-blazedb -> run-cuckoodb, mainClass -> cuckoodb.CuckooDB - README/AGENTS/BENCHMARK_RESULTS text + jar filename token GitHub repo-slug URLs (badges, clone, pom <url>) intentionally left at java-query-engine; repo rename is a separate out-of-band step. 20 sample queries byte-identical; full suite green.
Parent aggregator POM (cuckoodb-parent, packaging=pom) with dependency/ plugin management; two children: - engine/ (cuckoodb-engine): all code + tests moved wholesale; carries jsqlparser + commons-csv, exec/assembly/jacoco/JMH. samples/ moved into engine/ so CWD-relative sample paths resolve under the module basedir. - server/ (cuckoodb-server): non-Spring skeleton depending on cuckoodb-engine; ServerPlaceholder compile-links an engine type to prove reactor wiring. Spring + REST are added in a later change. - .gitignore: re-anchor the three test-output patterns to engine/ (anchored root patterns no longer matched after the move); ignore REPORT_*.md. - ci.yml: pin Codecov to engine/target/site/jacoco/jacoco.xml. - README/AGENTS: multi-module structure, engine/ jar + sample paths, -pl engine for JMH and the SampleQueryRunner (exec:exec, CWD=engine). Reactor build green; 20 sample queries byte-identical; server compiles against engine; engine fat JAR runs.
|
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
|
@claude review this PR |
|
Claude finished @JinBa1's task in 2m 27s —— View job PR Review: Split into Maven multi-module (engine + server); rename to cuckooDB
This is a clean, well-scoped structural PR. The rename is mechanical and correct throughout; the multi-module split is logically sound with Maven enforcing the Issues1. JMH annotation processor version is hardcoded in
<testAnnotationProcessorPaths>
<path>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>1.37</version>
</path>
</testAnnotationProcessorPaths>The root 2.
The trade-off noted in the README ( 3. Fragile working-directory assumption in Path projectRoot = Paths.get("").toAbsolutePath(); // assumes CWD == engine/
Path dbDir = projectRoot.resolve("samples/db");This works when invoked via Observations (no action required)Codecov 0% patch coverage — Codecov is flagging the Server skeleton is well-done — Module boundary is correct —
CI change is minimal and correct — pointing Codecov at SummaryThe rename and multi-module split are executed correctly, the boundary is structurally enforced, and all docs/paths are updated consistently. The main item worth acting on before merge is issue 1 (JMH version drift risk). Issues 2 and 3 are lower priority but worth tracking as the project grows toward a real server module. |
Addresses PR review: jmh-core/jmh-generator-annprocess versions in parent dependencyManagement and the engine testAnnotationProcessorPaths <path> now all reference a <jmh.version> property, so bumping JMH touches one place. The explicit <version> on the annotation-processor path is retained (as the property) on purpose: under maven-compiler-plugin 3.11.0 that version is not inherited from dependencyManagement, so it must stay set.
|
Thanks for the review. Triaged all three: 1. JMH annotation-processor version — fixed in e14089c. Added a 2. 3. Codecov 0% patch — as you noted, those are the |
What
Two changes, one per commit:
…blazedb→…cuckoodb), entry-point class (BlazeDB→CuckooDB), Maven coordinates, and docs are renamed. No behaviour change; query output is byte-identical.engine/(cuckoodb-engine) — the query engine, free of any web framework (JSqlParser + commons-csv only). All existing code, tests, sample queries, the CLI fat-jar, JMH benchmarks, and JaCoCo move here wholesale.server/(cuckoodb-server) — a skeleton module that depends on the engine, ready for a REST gateway. No web framework is introduced yet; a placeholder class compile-links an engine type to prove the wiring.Why
The engine is meant to be a pure, embeddable query core. Splitting the build makes that boundary structural: a future network layer depends on the engine, never the reverse — enforced by Maven rather than by convention.
Notes
samples/moved intoengine/, so the sample-query golden tests resolve their paths under the module's working directory..gitignore, the CI Codecov report path, and the README/AGENTS build & run commands are updated for the new layout (-pl enginewhere needed).Testing
./mvnw clean test— green.SampleQueryRunnerandCuckooDBTest.testAllSampleQueries).cuckoodb-servercompiles againstcuckoodb-engine; the engine fat-jar runs a query end-to-end.