Skip to content

Word-export companion + library-wide import/Javadoc cleanup + ConfigLoader removal#162

Merged
DemchaAV merged 5 commits into
developfrom
docs/word-export-example
Jun 11, 2026
Merged

Word-export companion + library-wide import/Javadoc cleanup + ConfigLoader removal#162
DemchaAV merged 5 commits into
developfrom
docs/word-export-example

Conversation

@DemchaAV

@DemchaAV DemchaAV commented Jun 11, 2026

Copy link
Copy Markdown
Owner

What

New WordExportExample (examples/features/docx) — the first runnable example for the semantic Word backend. The same DocumentSession renders a fixed-layout PDF and exports an editable .docx via DocxSemanticBackend, one section per row of the capability table in docs/recipes/docx-export.md:

  • inline runs (bold / italic / colored / accent) map 1:1,
  • nested lists keep custom markers and two-space-per-depth indent,
  • tables, side-by-side rows (→ one-row tables), an embedded image, a page break,
  • the chart → categories-by-series data-table fallback,
  • dividers / shape containers stay PDF-only by design (the badge text exports inline).

Session metadata lands in the Word core properties (verified in docProps/core.xml).

Scope grew after the example landed

  • Library-wide hygiene sweep (f04a7dce) — unused imports dropped and Javadoc tidied across 332 files. No logic changes.
  • ConfigLoader removed (ee9a6bfc, breaking) — an application-bootstrap YAML/JSON config helper with no connection to document rendering; zero references in the library, tests, or examples. 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 profile carries a deliberate CLASS_REMOVED exclude until the baseline advances past the removal. Recorded under CHANGELOG v1.8.0 → Public API.
  • CI label fix (82e5eb26) — the binary-compat job name and step comment now reference the japicmp.baseline pom property instead of hardcoding stale versions (and correctly name JitPack, not Maven Central, as the baseline source).

Plumbing

  • examples module adds the optional org.apache.poi:poi-ooxml dependency exactly like a consuming project would (lockstep comment on the version),
  • registered in GenerateAllExamples and ShowcaseMetadata,
  • examples README: gallery row + a "Word export (DOCX)" production-pattern section,
  • committed previews under assets/readme/examples/: word-export-companion.pdf (13 KB) and .docx (8 KB) — a small deterministic gradient image keeps them light.

Verification

  • Example runs clean (../mvnw compile exec:java -Dexec.mainClass=...WordExportExample); the generated .docx round-trips: 3 <w:tbl>, embedded word/media/image1.png, an explicit page break, and the nested item " ◦ Two spaces…" carrying the single-space marker prefix from the parent PR.
  • Full local gate on the final tree: ./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.

DemchaAV added 4 commits June 11, 2026 11:20
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.
@DemchaAV DemchaAV changed the title docs(examples): Word-export companion - one session, PDF + DOCX Word-export companion + library-wide import/Javadoc cleanup + ConfigLoader removal Jun 11, 2026
@DemchaAV DemchaAV deleted the branch develop June 11, 2026 13:09
@DemchaAV DemchaAV closed this Jun 11, 2026
@DemchaAV DemchaAV reopened this Jun 11, 2026
@DemchaAV DemchaAV changed the base branch from fix/docx-list-marker-spacing to develop June 11, 2026 13:10
@DemchaAV DemchaAV merged commit 709ad42 into develop Jun 11, 2026
11 checks passed
@DemchaAV DemchaAV deleted the docs/word-export-example branch June 11, 2026 13:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant