Repository navigation
Description
Parent
What to build
The test tier is written in the estate's JVM language, with the test idiom the other JorisJonkers-dev and ESA-Blueshell repositories already use rather than one invented here in Java. The bundle tier stays Java: Ecore generates Java, Xtext's runtime hooks are Java, and a bundle compiles through JDT against a target platform holding no Kotlin unit.
The gates move with it. Spotless with palantir-java-format covers the bundles; the test tier needs the formatter the estate's Kotlin repositories run. Coverage keeps its floor. The mutation threshold is the open question: PIT reports many equivalent mutants on Kotlin, and lowering a threshold is an "ask first" boundary, so it gets its own decision record rather than a quiet edit to emf/pom.xml.
The word "Java" in the witness rule changes with the port, since three of the six witnesses are suites in this module and the other three sit in bundles and stay Java. The rule is unchanged: a witness is a JUnit test, in whichever language its module is written.
Decided in 0121.
Acceptance criteria
- The test tier compiles and runs as Kotlin, and
./mvnw -B -ntp verifyis green fromemf/. - Every rule in
emf/docs/rules.mdis still enforced, and each still fails on its fixture. - A Kotlin formatting gate runs in
verify, and its rule carries a ledger row. - The coverage floor holds; any mutation-threshold change carries its own ADR, or the threshold stands.
- 0114 is amended, and the witness list,
EMF-013's row and the gates sentence that calls a witness a Java proof all say what the rule now means.
Activity
refactor: port the test tier to Kotlin, with the gates the estate run…