Word-export companion + library-wide import/Javadoc cleanup + ConfigLoader removal#162
Merged
Conversation
WordExportExample renders the same DocumentSession twice: a fixed-layout PDF and an editable Word file via DocxSemanticBackend. One section per capability-table row from docs/recipes/docx-export.md: inline runs, nested lists with custom markers, tables, side-by-side rows, an embedded image, a page break, the chart->data-table fallback, and the geometry that stays PDF-only by design. The examples module adds the optional poi-ooxml dependency exactly like a consuming project would; committed previews (13 KB PDF / 8 KB DOCX, small deterministic gradient instead of the 1.8 MB catalog photo) land under assets/readme/examples and are linked from the examples README gallery + a new 'Word export (DOCX)' production-pattern section.
…brary
No logic changes - import pruning and Javadoc polish only (block tags moved after descriptions, code samples wrapped in {@code}, list punctuation). Verified by the full gate: 1220 tests, javadoc, and japicmp binary compatibility all green.
…t-yaml dependency ConfigLoader was an application-bootstrap YAML/JSON config helper with no connection to document rendering - nothing in the library, tests, or examples referenced it. The optional jackson-dataformat-yaml dependency goes with it (ConfigLoader was its only consumer), the NoClassDefFoundError troubleshooting entry is now POI-only, and the japicmp gate carries a deliberate CLASS_REMOVED exclude until the baseline advances past the removal. Recorded as breaking under CHANGELOG v1.8.0 Public API.
The binary-compat job name hardcoded 'vs v1.6.9' and the step comment claimed the baseline jar comes from Maven Central; the actual baseline is whatever the japicmp.baseline pom property pins (currently v1.7.0), resolved through the profile-local JitPack repository. The labels now reference the property so they stop drifting on every baseline bump.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
New
WordExportExample(examples/features/docx) — the first runnable example for the semantic Word backend. The sameDocumentSessionrenders a fixed-layout PDF and exports an editable .docx viaDocxSemanticBackend, one section per row of the capability table indocs/recipes/docx-export.md:Session metadata lands in the Word core properties (verified in
docProps/core.xml).Scope grew after the example landed
f04a7dce) — unused imports dropped and Javadoc tidied across 332 files. No logic changes.ConfigLoaderremoved (ee9a6bfc, breaking) — an application-bootstrap YAML/JSON config helper with no connection to document rendering; zero references in the library, tests, or examples. The optionaljackson-dataformat-yamldependency goes with it (ConfigLoader was its only consumer), theNoClassDefFoundErrortroubleshooting entry is now POI-only, and the japicmp profile carries a deliberateCLASS_REMOVEDexclude until the baseline advances past the removal. Recorded under CHANGELOG v1.8.0 → Public API.82e5eb26) — the binary-compat job name and step comment now reference thejapicmp.baselinepom property instead of hardcoding stale versions (and correctly name JitPack, not Maven Central, as the baseline source).Plumbing
org.apache.poi:poi-ooxmldependency exactly like a consuming project would (lockstep comment on the version),GenerateAllExamplesandShowcaseMetadata,assets/readme/examples/:word-export-companion.pdf(13 KB) and.docx(8 KB) — a small deterministic gradient image keeps them light.Verification
../mvnw compile exec:java -Dexec.mainClass=...WordExportExample); the generated .docx round-trips: 3<w:tbl>, embeddedword/media/image1.png, an explicit page break, and the nested item" ◦ Two spaces…"carrying the single-space marker prefix from the parent PR../mvnw -P japicmp verify -pl .— 1220 tests, 0 failures, javadoc gate, japicmp vs v1.7.0 all green.Stacked on #161 (uses the marker-prefix fix in the rendered output) — merges into develop after it.