You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 66056ae
Browse filesBrowse the repository at this point in the historyBrowse files
feat(maven-plugin)!: one way to generate in Java and Kotlin; api-docs is a declared generator and the docs goal is removed (#437)
* feat(eject): hand over the Java and Kotlin emitters; api-docs and four Java docs generators eject
An ejected Java or Kotlin generator was one file over packaged emitters, so a defect in the
enum, record-builder, extraction-mirror or prompt-format writers waited for a release. Eject
now copies those emitters with the generator, into its package, and points the imports the
copies have of one another at the copies.
- Java dto and value-object take Fr019SharedEnum and SpringRecordBuilder, output-parser takes
Fr019SharedEnum, output-prompt takes OutputFormatSpecEmitter, and entity takes
ExtractorCodeGenerator, so an owned entity writes its extractors through the owned copy.
- Kotlin entity takes KotlinEnumEmitter, output-parser takes KotlinExtractSchemaEmitter and
output-prompt takes KotlinOutputFormatSpecEmitter. Kotlin Fr019SharedEnum stays in the package
as engine: it writes nothing and the type mapper takes its config as an argument.
- api-docs is a generator in Java and Kotlin, run through a new DocsGenerator marker.
metaobjects:docs runs the one the project lists for a surface in place of the packaged one;
generate and verify skip it. Eject copies the page model, builder, renderer and path math,
and for Java the page templates, with the copied template provider pointed at them.
- plantuml, html-docs, ai-docs and json-schema ship eject source, each with its writer.
SingleHtmlDirectGeneratorBase drives the new HtmlDirectWriter, and the JSON Schema and AI
documentation attributes move to CodeGenMetaDataProvider, with deprecated forwarders left on
the two generators.
The eject contract's pending list holds no java or kotlin entry. Packaged output is unchanged.
* fix(eject): keep the 1.0 GeneratorInfo constructor and the HTML writeHtml hook; verify the emitter recipe
- Kotlin GeneratorInfo keeps its six-argument constructor for JVM callers (@jvmoverloads), with a
Java caller test.
- SingleHtmlDirectGeneratorBase still calls a subclass's writeHtml(MetaDataHtmlDocumentationWriter)
through a deprecated bridge, with a test.
- The recipe for owning the emitters of an older owned copy is run against copies made by the last
released artifacts, in Java and in Kotlin, and the docs say what it took: the copied Kotlin
emitters import one another through the scratch package.
* no-mistakes(review): fix(eject): per-port api-docs subpackage, shared docs wiring note
* no-mistakes(review): fix(eject): print pom changes a second port needs
* no-mistakes(review): fix(eject): two-port pom builds both source trees
* no-mistakes(document): Fix Java ejectable-exemption sentence to exclude deprecated mustache
* feat(eject): hand over the Java and Kotlin emitters; api-docs and four Java docs generators eject
An ejected Java or Kotlin generator was one file over packaged emitters, so a defect in the
enum, record-builder, extraction-mirror or prompt-format writers waited for a release. Eject
now copies those emitters with the generator, into its package, and points the imports the
copies have of one another at the copies.
- Java dto and value-object take Fr019SharedEnum and SpringRecordBuilder, output-parser takes
Fr019SharedEnum, output-prompt takes OutputFormatSpecEmitter, and entity takes
ExtractorCodeGenerator, so an owned entity writes its extractors through the owned copy.
- Kotlin entity takes KotlinEnumEmitter, output-parser takes KotlinExtractSchemaEmitter and
output-prompt takes KotlinOutputFormatSpecEmitter. Kotlin Fr019SharedEnum stays in the package
as engine: it writes nothing and the type mapper takes its config as an argument.
- api-docs is a generator in Java and Kotlin, run through a new DocsGenerator marker.
metaobjects:docs runs the one the project lists for a surface in place of the packaged one;
generate and verify skip it. Eject copies the page model, builder, renderer and path math,
and for Java the page templates, with the copied template provider pointed at them.
- plantuml, html-docs, ai-docs and json-schema ship eject source, each with its writer.
SingleHtmlDirectGeneratorBase drives the new HtmlDirectWriter, and the JSON Schema and AI
documentation attributes move to CodeGenMetaDataProvider, with deprecated forwarders left on
the two generators.
The eject contract's pending list holds no java or kotlin entry. Packaged output is unchanged.
* fix(eject): keep the 1.0 GeneratorInfo constructor and the HTML writeHtml hook; verify the emitter recipe
- Kotlin GeneratorInfo keeps its six-argument constructor for JVM callers (@jvmoverloads), with a
Java caller test.
- SingleHtmlDirectGeneratorBase still calls a subclass's writeHtml(MetaDataHtmlDocumentationWriter)
through a deprecated bridge, with a test.
- The recipe for owning the emitters of an older owned copy is run against copies made by the last
released artifacts, in Java and in Kotlin, and the docs say what it took: the copied Kotlin
emitters import one another through the scratch package.
* no-mistakes(review): fix(eject): per-port api-docs subpackage, shared docs wiring note
* no-mistakes(review): fix(eject): print pom changes a second port needs
* no-mistakes(review): fix(eject): two-port pom builds both source trees
* no-mistakes(document): Fix Java ejectable-exemption sentence to exclude deprecated mustache
* feat(maven-plugin)!: api-docs is an ordinary generator entry; remove the docs goal
Every generator, documentation included, is a <generator> entry in the list
metaobjects:generate runs, and nothing is written that <generators> does not
declare (ADR-0034 Amendment 9).
- JavaApiDocsGenerator and KotlinApiDocsGenerator read outputDir, apiSubDir,
layout, projectName and modelBaseUrl from <args>. The DocsGenerator marker
and the skips in metaobjects:generate and metaobjects:verify are deleted.
- metaobjects:docs only fails, with a line naming metaobjects:generate and
the migration section. generate and verify refuse a pom that still sets
the old goal's <language>, <apiSubDir>, <layout> or <modelBaseUrl>, so a
build never passes while writing no documentation.
- The Java entity generator writes no <Name>Extractor; the extractor
generator is the one entry that does, and entity no longer copies it on
eject. EmitsObjectExtractors and the emitExtractors arg are removed (both
were new in this unreleased version).
- Tests: api-docs through generate and verify, the removed goal and the
refused 8.0 configuration, and a pom that declares nothing writes zero
files (Java and Kotlin).
* docs: ADR-0034 Amendment 9 and the Java/Kotlin migration to declared docs generators
Amendment 9 is the cross-port rule: every generator, docs included, is an
entry in the project's native generator list; one command runs it; no docs
command, goal, marker, skip, second list or default set. It fixes, per port,
where the list lives, the option names that replace the docs flags, the exact
message a removed docs command prints, the exact error a gen command prints
for 1.0-shape configuration, and the shape of the migration guide. It
supersedes Amendment 7's docs seam, ADR-0021 D1, ADR-0022 Part 2 D1 and the
docs-door parts of ADR-0025.
- docs/features/migrations/docs-are-generators.md: the "Java and Kotlin"
section, with before and after pom.xml and a parameter table.
- Java and Kotlin port pages, own-your-codegen, the agent-context codegen
references and their conformance fixtures, and the CHANGELOG 1.1.0 entries
for these two ports.
* no-mistakes(review): Restore docs goal phase; qualify Java/Kotlin docs pointer
* no-mistakes(test): Name api-docs generator entry in Java/Kotlin Not-there line
* no-mistakes(document): Drop removed docs goal from Java README and CLI table
| Java |**Maven Central `8.0.13`** (`com.metaobjects:*` — the JVM major is npm major + 7) — loader + OMDB + render + Maven plugin all shipped; full conformance green |[`docs/ports/java.md`](docs/ports/java.md)|[`server/java/`](server/java/)|
137
-
| Kotlin |**Maven Central `8.0.13`** — codegen tier on top of Java: 15 generators (entity, Exposed table, names, relations, repository, output-parser, output-prompt, render-helper, extractor, filter-allowlist, validator, Spring config, storedProc, Spring controller, requirement-tests); 24 / 24 persistence-conformance |[`docs/ports/kotlin.md`](docs/ports/kotlin.md)|[`server/java/codegen-kotlin/`](server/java/codegen-kotlin/) · [`server/java/metadata-ktx/`](server/java/metadata-ktx/)|
137
+
| Kotlin |**Maven Central `8.0.13`** — codegen tier on top of Java: 16 generators (entity, Exposed table, names, relations, repository, output-parser, output-prompt, render-helper, extractor, filter-allowlist, validator, Spring config, storedProc, Spring controller, requirement-tests, api-docs); 24 / 24 persistence-conformance |[`docs/ports/kotlin.md`](docs/ports/kotlin.md)|[`server/java/codegen-kotlin/`](server/java/codegen-kotlin/) · [`server/java/metadata-ktx/`](server/java/metadata-ktx/)|
Copy file name to clipboardExpand all lines: agent-context/servers/java.meta.json
+3-1Lines changed: 3 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,8 @@
2
2
"displayName": "Java",
3
3
"install": "add com.metaobjects:metaobjects-metadata + metaobjects-codegen-spring + metaobjects-maven-plugin to your pom.xml",
4
4
"codegenCommand": "mvn metaobjects:generate",
5
-
"docsCommand": "mvn metaobjects:docs",
5
+
"docsCommand": "mvn metaobjects:generate",
6
+
"docsCondition": " (when the project's generator list declares the api-docs generator)",
7
+
"docsMissing": "Declare `com.metaobjects.generator.apidocs.JavaApiDocsGenerator` as a `<generator>` entry in the pom's `<generators>` if it is missing",
Copy file name to clipboardExpand all lines: agent-context/servers/kotlin.meta.json
+3-1Lines changed: 3 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,8 @@
2
2
"displayName": "Kotlin",
3
3
"install": "add com.metaobjects:metaobjects-codegen-kotlin + metaobjects-metadata-ktx + metaobjects-maven-plugin to your pom.xml",
4
4
"codegenCommand": "mvn metaobjects:generate",
5
-
"docsCommand": "mvn metaobjects:docs",
5
+
"docsCommand": "mvn metaobjects:generate",
6
+
"docsCondition": " (when the project's generator list declares the api-docs generator)",
7
+
"docsMissing": "Declare `com.metaobjects.generator.kotlin.apidocs.KotlinApiDocsGenerator` as a `<generator>` entry in the pom's `<generators>` if it is missing",
0 commit comments