Build & Test
Module Layout
| Module | Artifact | Content |
|---|---|---|
core-model-forge-parent | parent POM | Shared build configuration, Spotless, enforcer rules and reproducible-build settings |
model-forge-contract | core-model-forge-contract | Public records (commands, results, queries), the facade interface and URN helpers |
model-forge-runtime | core-model-forge-runtime | Facade implementation, ports, use cases, PostgreSQL registry adapter (migrations) and HTTP integration adapters |
model-forge-spring-boot-starter | core-model-forge-spring-boot-starter | Spring Boot auto-configuration for host applications |
model-forge-admin-ui | core-model-forge-admin-ui | Internal developer tool (Spring Boot + Wicket) that exercises the library through the facade against a real Postgres registry |
mvn test
mvn verify
Run these from the model-forge/ subdirectory of the mono-repo (CI does
cd model-forge before invoking Maven).
Quality Gates
- JaCoCo - coverage agent + report for
model-forge-contractonly (no hard coverage gate) - Spotless - whitespace and formatting hygiene
- SpotBugs - static bug analysis
- Maven Enforcer - JDK >= 25, Maven >= 3.9, dependency hygiene
- ArchUnit - module and package boundaries
- Reproducible builds - fixed
project.build.outputTimestamp
Test Suite
| Kind | Examples | What it guarantees |
|---|---|---|
| Unit / slice tests | UrnParserTest, XsdToJsonSchemaConverterTest, ModelValidatorTest | Component behaviour and edge cases |
| Application tests | import, validation, view and graph services | Embedded use cases without web adapters |
| Contract tests | Contract record and URN parser tests | Public contract stability |
| Architecture tests | ArchUnit tests per module | No forbidden web/infrastructure dependencies |
| Registry integration tests | PostgreSQL adapter tests | Real PostgreSQL round-trips through the registry port |
| Starter tests | ApplicationContextRunner tests | Auto-configuration creates the embedded facade without web controllers |