Skip to content

refactor(render-pdf): remove the legacy ECS PDF render tree#320

Merged
DemchaAV merged 1 commit into
2.0-devfrom
build/2.0-remove-ecs-render-tree
Jul 6, 2026
Merged

refactor(render-pdf): remove the legacy ECS PDF render tree#320
DemchaAV merged 1 commit into
2.0-devfrom
build/2.0-remove-ecs-render-tree

Conversation

@DemchaAV

@DemchaAV DemchaAV commented Jul 6, 2026

Copy link
Copy Markdown
Owner

Why

The com.demcha.compose.engine.render.pdf.ecs tree is the old Entity-Component-System PDF renderer. Canonical PDF output has long gone through com.demcha.compose.document.backend.fixed.pdf (PdfFixedLayoutBackend dispatching to PdfFragmentRenderHandler implementations). The ecs path is reached by no public API, no ServiceLoader registration, and no reflection — it is production-dead (its tests were already removed).

What

  • Delete engine.render.pdf.ecs and its .handlers / .helpers sub-packages — 25 files: PdfRenderingSystemECS, the ecs PdfRenderSession / PdfCanvas / PdfStream / PdfImageCache / PdfFileManagerSystem / PdfGuidesRenderer, the 13 Pdf*RenderHandler classes, and the TableCellBox / PdfBookmarkBuilder helpers.
  • Repoint contributor docs (implementation-guide.md, package-map.md, overview.md, CONTRIBUTING.md) from the deleted ecs handler/helper packages to the canonical PdfFragmentRenderHandler surface under document.backend.fixed.pdf.handlers.
  • Drop the ci.yml guard-list entry and the doc links to PdfRenderingSystemECSDispatchTest (removed earlier), and remove the now-moot japicmp excludes for the deleted classes.

The canonical render path, the surviving engine.render.pdf helpers (header/footer + watermark), and the backend-neutral engine.render contracts are untouched.

Tests

Full aggregator verify (core + render-pdf + render-docx + render-pptx + templates + testing + qa, incl. the javadoc + documentation-snippet gates): BUILD SUCCESS, 0 failures, with identical test counts (render-pdf 108, qa 630, …) — confirming nothing referenced the removed tree. examples / benchmarks verified to carry no compile dependency on it.

Delete the dead Entity-Component-System PDF renderer: the package
engine.render.pdf.ecs and its handlers/helpers sub-packages
(PdfRenderingSystemECS, the ecs PdfRenderSession/PdfCanvas/PdfStream/
PdfImageCache/PdfFileManagerSystem/PdfGuidesRenderer, the 13 render
handlers, and the TableCellBox/PdfBookmarkBuilder helpers). Canonical
PDF output goes through document.backend.fixed.pdf (PdfFixedLayoutBackend
+ PdfFragmentRenderHandler); no public API, ServiceLoader registration,
or reflection reaches the ecs path, so it is production-dead.

Repoint the contributor docs (implementation-guide, package-map,
overview, CONTRIBUTING) from the deleted ecs handler/helper packages to
the canonical PdfFragmentRenderHandler surface, drop the CI guard-list
and doc links to the already-removed PdfRenderingSystemECSDispatchTest,
and remove the now-moot japicmp excludes for the deleted classes.
@DemchaAV DemchaAV merged commit e29335d into 2.0-dev Jul 6, 2026
10 checks passed
@DemchaAV DemchaAV deleted the build/2.0-remove-ecs-render-tree branch July 6, 2026 15:45
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