diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 826a60611..a557201a3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -76,7 +76,7 @@ jobs: # cross-module suites (which need the testing module + the engine test-jar on # the classpath and so cannot live in the engine's own test scope). -am pulls # the fonts / emoji upstreams; bundle / examples / benchmarks are excluded. - run: ./mvnw -B -ntp -f aggregator/pom.xml clean verify -pl :graph-compose-core,:graph-compose-render-docx,:graph-compose-render-pptx,:graph-compose-testing,:graph-compose-qa -am + run: ./mvnw -B -ntp -f aggregator/pom.xml clean verify -pl :graph-compose-core,:graph-compose-render-pdf,:graph-compose-render-docx,:graph-compose-render-pptx,:graph-compose-testing,:graph-compose-qa -am - name: Generate Javadoc # Run only on the baseline JDK — Javadoc output is identical @@ -119,10 +119,16 @@ jobs: - name: Install root artifact (graph-compose-core) run: ./mvnw -B -ntp -DskipTests install -pl . + - name: Install graph-compose-render-pdf (the PDF backend the wrapper brings) + # The graph-compose wrapper depends on render-pdf so a bare graph-compose + # renders PDF; install it after the core (its only dependency) and before + # the wrapper. + run: ./mvnw -B -ntp -f render-pdf/pom.xml -DskipTests install + - name: Install graph-compose (the compat wrapper, consumed by the examples module) # examples depends on the graph-compose coordinate — the empty jar wrapper - # over graph-compose-core. Install it after the core so the examples build - # resolves it (and the engine classes transitively). + # over graph-compose-core + render-pdf. Install it after those so the + # examples build resolves it (and the engine + PDF backend transitively). run: ./mvnw -B -ntp -f wrapper/pom.xml -DskipTests install - name: Install graph-compose-render-docx (consumed by the examples module) @@ -226,6 +232,12 @@ jobs: - name: Install root artifact run: ./mvnw -B -ntp -DskipTests install -pl . + - name: Install graph-compose-render-pdf (consumed by the benchmarks module) + # benchmarks call buildPdf and reference the PDF backend types directly, so + # it depends on render-pdf; install it after the core, before the benchmarks + # build resolves it. + run: ./mvnw -B -ntp -f render-pdf/pom.xml -DskipTests install + - name: Compile benchmarks module run: ./mvnw -B -ntp -f benchmarks/pom.xml clean compile @@ -294,6 +306,12 @@ jobs: - name: Install root artifact run: ./mvnw -B -ntp -DskipTests install -pl . + - name: Install graph-compose-render-pdf (consumed by the benchmarks module) + # benchmarks call buildPdf and reference the PDF backend types directly, so + # it depends on render-pdf; install it after the core, before the benchmarks + # build resolves it. + run: ./mvnw -B -ntp -f render-pdf/pom.xml -DskipTests install + - name: Compile benchmarks module run: ./mvnw -B -ntp -f benchmarks/pom.xml clean compile diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 44a63e7c0..60ddc0bad 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -99,10 +99,20 @@ jobs: CENTRAL_TOKEN: ${{ secrets.CENTRAL_TOKEN }} MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} + - name: Publish render-pdf to Maven Central + # The PDF render backend, lockstep-versioned with the engine (ships on the + # same v* tag). graph-compose-core resolves from the local repo installed by + # the engine deploy above; the wrapper below depends on this. + run: ./mvnw -B -ntp -f render-pdf/pom.xml -P release -DskipTests -Dgpg.skip=false deploy + env: + CENTRAL_USERNAME: ${{ secrets.CENTRAL_USERNAME }} + CENTRAL_TOKEN: ${{ secrets.CENTRAL_TOKEN }} + MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} + - name: Publish graph-compose (compat wrapper) to Maven Central # The empty jar that keeps the `graph-compose` coordinate a drop-in: it - # depends on graph-compose-core, resolved from the local repo installed by - # the engine (core) deploy above. Ships on the same v* tag, lockstep. + # depends on graph-compose-core + graph-compose-render-pdf, resolved from the + # local repo installed by the deploys above. Ships on the same v* tag. run: ./mvnw -B -ntp -f wrapper/pom.xml -P release -DskipTests -Dgpg.skip=false deploy env: CENTRAL_USERNAME: ${{ secrets.CENTRAL_USERNAME }} diff --git a/.gitignore b/.gitignore index 17c75d506..69188cc9a 100644 --- a/.gitignore +++ b/.gitignore @@ -39,6 +39,7 @@ build/ /logs/ benchmarks/logs/ qa/logs/ +render-pdf/logs/ /CV_Generated.pdf *.pdf # Allow PDF previews that are committed README assets. diff --git a/CHANGELOG.md b/CHANGELOG.md index e0fffc682..3c2ba3162 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,12 +36,21 @@ for this cycle. existing `graph-compose` dependency keeps compiling and rendering PDF unchanged. Consumer-testing support (`graph-compose-testing`) and the semantic DOCX / PPTX backends (`graph-compose-render-docx` / `graph-compose-render-pptx`) are already - separate artifacts; the PDF - render backend and the built-in templates move into their own modules over the - rest of the 2.0 cycle, at which point `graph-compose` aggregates the PDF backend - and `graph-compose-core` becomes the lean, bring-your-own-backend coordinate. The + separate artifacts; the **PDF render backend now lives in + `graph-compose-render-pdf`**, which the `graph-compose` wrapper aggregates so a + bare `graph-compose` still renders PDF, while `graph-compose-core` alone is lean + (it throws `MissingBackendException` if asked to render without a backend). The + built-in templates move into their own module over the rest of the 2.0 cycle. The optional `graph-compose-fonts` / `graph-compose-emoji` artifacts are unchanged. Full install guidance ships with 2.0.0. +- `graph-compose-render-pdf` is a separate artifact: the entire PDFBox backend — + `document.backend.fixed.pdf.**` and the `engine.render.pdf.**` render tree — plus + PDFBox, zxing (barcodes), and the commons-logging→SLF4J bridge leave + `graph-compose-core`. The core keeps the `DocumentSession` API and the + `ServiceLoader` seam (`FixedLayoutBackendProvider` / `FontMetricsProvider`); the + PDF provider ships in render-pdf and is discovered at runtime. Depend on + `graph-compose` (or `graph-compose-render-pdf` directly) for PDF; a bare + `graph-compose-core` renders nothing until a backend is on the classpath. - The semantic office backends are separate artifacts and Apache POI leaves the engine: `DocxSemanticBackend` ships in `graph-compose-render-docx` (which brings POI transitively — add it to export DOCX), and `PptxSemanticBackend` ships in its diff --git a/aggregator/pom.xml b/aggregator/pom.xml index ac1a74123..5fa6c1ed1 100644 --- a/aggregator/pom.xml +++ b/aggregator/pom.xml @@ -58,6 +58,7 @@ --> .. + ../render-pdf ../wrapper ../fonts ../emoji diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml index 473ea7244..4fadf3082 100644 --- a/benchmarks/pom.xml +++ b/benchmarks/pom.xml @@ -53,6 +53,13 @@ graph-compose-core ${graphcompose.version} + + + io.github.demchaav + graph-compose-render-pdf + ${graphcompose.version} + 3.27.7 @@ -119,33 +117,6 @@ slf4j-api ${slf4j.version} - - - org.slf4j - jcl-over-slf4j - ${slf4j.version} - - - - org.apache.pdfbox - pdfbox - ${pdfbox.version} - - - commons-logging - commons-logging - - - @@ -76,6 +77,23 @@ ${project.version} test + + + io.github.demchaav + graph-compose-render-pdf + ${project.version} + test + + + io.github.demchaav + graph-compose-render-pdf + ${project.version} + test-jar + tests + test + io.github.demchaav graph-compose-fonts @@ -132,6 +150,19 @@ ${logback.version} test + + + org.openjfx + javafx-controls + ${javafx.version} + test + + + org.openjfx + javafx-swing + ${javafx.version} + test + diff --git a/src/test/java/com/demcha/compose/devtool/DevToolPreviewProvider.java b/qa/src/test/java/com/demcha/compose/devtool/DevToolPreviewProvider.java similarity index 100% rename from src/test/java/com/demcha/compose/devtool/DevToolPreviewProvider.java rename to qa/src/test/java/com/demcha/compose/devtool/DevToolPreviewProvider.java diff --git a/src/test/java/com/demcha/compose/devtool/GraphComposeDevTool.java b/qa/src/test/java/com/demcha/compose/devtool/GraphComposeDevTool.java similarity index 100% rename from src/test/java/com/demcha/compose/devtool/GraphComposeDevTool.java rename to qa/src/test/java/com/demcha/compose/devtool/GraphComposeDevTool.java diff --git a/src/test/java/com/demcha/compose/devtool/GraphComposeDevToolLauncher.java b/qa/src/test/java/com/demcha/compose/devtool/GraphComposeDevToolLauncher.java similarity index 100% rename from src/test/java/com/demcha/compose/devtool/GraphComposeDevToolLauncher.java rename to qa/src/test/java/com/demcha/compose/devtool/GraphComposeDevToolLauncher.java diff --git a/src/test/java/com/demcha/compose/devtool/PdfRenderBridge.java b/qa/src/test/java/com/demcha/compose/devtool/PdfRenderBridge.java similarity index 100% rename from src/test/java/com/demcha/compose/devtool/PdfRenderBridge.java rename to qa/src/test/java/com/demcha/compose/devtool/PdfRenderBridge.java diff --git a/src/test/java/com/demcha/compose/devtool/PreviewCompilerTest.java b/qa/src/test/java/com/demcha/compose/devtool/PreviewCompilerTest.java similarity index 100% rename from src/test/java/com/demcha/compose/devtool/PreviewCompilerTest.java rename to qa/src/test/java/com/demcha/compose/devtool/PreviewCompilerTest.java diff --git a/src/test/java/com/demcha/compose/document/Test.java b/qa/src/test/java/com/demcha/compose/document/Test.java similarity index 100% rename from src/test/java/com/demcha/compose/document/Test.java rename to qa/src/test/java/com/demcha/compose/document/Test.java diff --git a/src/test/java/com/demcha/compose/document/api/DocumentSessionAvailableHeightTest.java b/qa/src/test/java/com/demcha/compose/document/api/DocumentSessionAvailableHeightTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/api/DocumentSessionAvailableHeightTest.java rename to qa/src/test/java/com/demcha/compose/document/api/DocumentSessionAvailableHeightTest.java diff --git a/src/test/java/com/demcha/compose/document/api/DocumentSessionConveniencePdfOptionsTest.java b/qa/src/test/java/com/demcha/compose/document/api/DocumentSessionConveniencePdfOptionsTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/api/DocumentSessionConveniencePdfOptionsTest.java rename to qa/src/test/java/com/demcha/compose/document/api/DocumentSessionConveniencePdfOptionsTest.java diff --git a/src/test/java/com/demcha/compose/document/api/DocumentSessionLifecycleTest.java b/qa/src/test/java/com/demcha/compose/document/api/DocumentSessionLifecycleTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/api/DocumentSessionLifecycleTest.java rename to qa/src/test/java/com/demcha/compose/document/api/DocumentSessionLifecycleTest.java diff --git a/src/test/java/com/demcha/compose/document/api/DocumentSessionParallelStressTest.java b/qa/src/test/java/com/demcha/compose/document/api/DocumentSessionParallelStressTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/api/DocumentSessionParallelStressTest.java rename to qa/src/test/java/com/demcha/compose/document/api/DocumentSessionParallelStressTest.java diff --git a/src/test/java/com/demcha/compose/document/api/DocumentSessionRenderingExceptionTest.java b/qa/src/test/java/com/demcha/compose/document/api/DocumentSessionRenderingExceptionTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/api/DocumentSessionRenderingExceptionTest.java rename to qa/src/test/java/com/demcha/compose/document/api/DocumentSessionRenderingExceptionTest.java diff --git a/src/test/java/com/demcha/compose/document/api/DocumentSessionTest.java b/qa/src/test/java/com/demcha/compose/document/api/DocumentSessionTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/api/DocumentSessionTest.java rename to qa/src/test/java/com/demcha/compose/document/api/DocumentSessionTest.java diff --git a/src/test/java/com/demcha/compose/document/api/LayerStackRowCompositionTest.java b/qa/src/test/java/com/demcha/compose/document/api/LayerStackRowCompositionTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/api/LayerStackRowCompositionTest.java rename to qa/src/test/java/com/demcha/compose/document/api/LayerStackRowCompositionTest.java diff --git a/src/test/java/com/demcha/compose/document/api/NegativeMarginTest.java b/qa/src/test/java/com/demcha/compose/document/api/NegativeMarginTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/api/NegativeMarginTest.java rename to qa/src/test/java/com/demcha/compose/document/api/NegativeMarginTest.java diff --git a/src/test/java/com/demcha/compose/document/api/PageBackgroundTest.java b/qa/src/test/java/com/demcha/compose/document/api/PageBackgroundTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/api/PageBackgroundTest.java rename to qa/src/test/java/com/demcha/compose/document/api/PageBackgroundTest.java diff --git a/src/test/java/com/demcha/compose/document/api/PageMarginTest.java b/qa/src/test/java/com/demcha/compose/document/api/PageMarginTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/api/PageMarginTest.java rename to qa/src/test/java/com/demcha/compose/document/api/PageMarginTest.java diff --git a/src/test/java/com/demcha/compose/document/api/PaginationEdgeCaseTest.java b/qa/src/test/java/com/demcha/compose/document/api/PaginationEdgeCaseTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/api/PaginationEdgeCaseTest.java rename to qa/src/test/java/com/demcha/compose/document/api/PaginationEdgeCaseTest.java diff --git a/src/test/java/com/demcha/compose/document/api/SessionChromeApiTest.java b/qa/src/test/java/com/demcha/compose/document/api/SessionChromeApiTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/api/SessionChromeApiTest.java rename to qa/src/test/java/com/demcha/compose/document/api/SessionChromeApiTest.java diff --git a/src/test/java/com/demcha/compose/document/api/SessionLayoutApiTest.java b/qa/src/test/java/com/demcha/compose/document/api/SessionLayoutApiTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/api/SessionLayoutApiTest.java rename to qa/src/test/java/com/demcha/compose/document/api/SessionLayoutApiTest.java diff --git a/src/test/java/com/demcha/compose/document/api/TableSlicePaginationTest.java b/qa/src/test/java/com/demcha/compose/document/api/TableSlicePaginationTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/api/TableSlicePaginationTest.java rename to qa/src/test/java/com/demcha/compose/document/api/TableSlicePaginationTest.java diff --git a/src/test/java/com/demcha/compose/document/architecture/ShapeContainerInvariantsTest.java b/qa/src/test/java/com/demcha/compose/document/architecture/ShapeContainerInvariantsTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/architecture/ShapeContainerInvariantsTest.java rename to qa/src/test/java/com/demcha/compose/document/architecture/ShapeContainerInvariantsTest.java diff --git a/src/test/java/com/demcha/compose/document/architecture/ShapeOutlineRenderCoverageTest.java b/qa/src/test/java/com/demcha/compose/document/architecture/ShapeOutlineRenderCoverageTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/architecture/ShapeOutlineRenderCoverageTest.java rename to qa/src/test/java/com/demcha/compose/document/architecture/ShapeOutlineRenderCoverageTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/BackendProvidersTest.java b/qa/src/test/java/com/demcha/compose/document/backend/fixed/BackendProvidersTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/BackendProvidersTest.java rename to qa/src/test/java/com/demcha/compose/document/backend/fixed/BackendProvidersTest.java diff --git a/qa/src/test/java/com/demcha/compose/document/backend/fixed/pdf/FontShowcaseLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/document/backend/fixed/pdf/FontShowcaseLayoutSnapshotTest.java index 6cfafc037..199496804 100644 --- a/qa/src/test/java/com/demcha/compose/document/backend/fixed/pdf/FontShowcaseLayoutSnapshotTest.java +++ b/qa/src/test/java/com/demcha/compose/document/backend/fixed/pdf/FontShowcaseLayoutSnapshotTest.java @@ -3,6 +3,7 @@ import com.demcha.compose.GraphCompose; import com.demcha.compose.document.api.DocumentPageSize; import com.demcha.compose.document.api.DocumentSession; +import com.demcha.compose.document.showcase.FontShowcase; import com.demcha.compose.testing.layout.LayoutSnapshotAssertions; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/demcha/compose/document/dsl/AddLinkShortcutTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/AddLinkShortcutTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/AddLinkShortcutTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/AddLinkShortcutTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/BlockAlignTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/BlockAlignTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/BlockAlignTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/BlockAlignTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/BlockSvgRenderTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/BlockSvgRenderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/BlockSvgRenderTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/BlockSvgRenderTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/DocumentBleedTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/DocumentBleedTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/DocumentBleedTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/DocumentBleedTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/EmojiRenderTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/EmojiRenderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/EmojiRenderTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/EmojiRenderTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/InlineHighlightRenderTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/InlineHighlightRenderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/InlineHighlightRenderTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/InlineHighlightRenderTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/InlineShapeRenderTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/InlineShapeRenderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/InlineShapeRenderTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/InlineShapeRenderTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/InlineSvgRenderTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/InlineSvgRenderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/InlineSvgRenderTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/InlineSvgRenderTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/LayerStackBuilderTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/LayerStackBuilderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/LayerStackBuilderTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/LayerStackBuilderTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/LineFillTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/LineFillTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/LineFillTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/LineFillTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/PathBuilderTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/PathBuilderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/PathBuilderTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/PathBuilderTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/RichTextTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/RichTextTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/RichTextTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/RichTextTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/RowBuilderTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/RowBuilderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/RowBuilderTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/RowBuilderTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/RowColumnsTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/RowColumnsTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/RowColumnsTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/RowColumnsTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/RowFlexTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/RowFlexTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/RowFlexTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/RowFlexTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/RowVerticalAlignTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/RowVerticalAlignTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/RowVerticalAlignTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/RowVerticalAlignTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/SectionKeepTogetherTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/SectionKeepTogetherTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/SectionKeepTogetherTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/SectionKeepTogetherTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/ShapeContainerBuilderTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/ShapeContainerBuilderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/ShapeContainerBuilderTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/ShapeContainerBuilderTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/TableBuilderColSpanTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/TableBuilderColSpanTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/TableBuilderColSpanTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/TableBuilderColSpanTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/TableBuilderRepeatHeaderTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/TableBuilderRepeatHeaderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/TableBuilderRepeatHeaderTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/TableBuilderRepeatHeaderTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/TableBuilderRowSpanTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/TableBuilderRowSpanTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/TableBuilderRowSpanTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/TableBuilderRowSpanTest.java diff --git a/src/test/java/com/demcha/compose/document/dsl/TransformableLeafBuildersTest.java b/qa/src/test/java/com/demcha/compose/document/dsl/TransformableLeafBuildersTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/dsl/TransformableLeafBuildersTest.java rename to qa/src/test/java/com/demcha/compose/document/dsl/TransformableLeafBuildersTest.java diff --git a/src/test/java/com/demcha/compose/document/layout/LayoutCompilerInvariantsTest.java b/qa/src/test/java/com/demcha/compose/document/layout/LayoutCompilerInvariantsTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/layout/LayoutCompilerInvariantsTest.java rename to qa/src/test/java/com/demcha/compose/document/layout/LayoutCompilerInvariantsTest.java diff --git a/src/test/java/com/demcha/compose/document/snapshot/PageIndexTest.java b/qa/src/test/java/com/demcha/compose/document/snapshot/PageIndexTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/snapshot/PageIndexTest.java rename to qa/src/test/java/com/demcha/compose/document/snapshot/PageIndexTest.java diff --git a/src/test/java/com/demcha/compose/document/style/DocumentBordersTest.java b/qa/src/test/java/com/demcha/compose/document/style/DocumentBordersTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/style/DocumentBordersTest.java rename to qa/src/test/java/com/demcha/compose/document/style/DocumentBordersTest.java diff --git a/src/test/java/com/demcha/compose/document/style/DocumentTextAutoSizeTest.java b/qa/src/test/java/com/demcha/compose/document/style/DocumentTextAutoSizeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/style/DocumentTextAutoSizeTest.java rename to qa/src/test/java/com/demcha/compose/document/style/DocumentTextAutoSizeTest.java diff --git a/src/test/java/com/demcha/compose/document/svg/SvgIconTest.java b/qa/src/test/java/com/demcha/compose/document/svg/SvgIconTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/svg/SvgIconTest.java rename to qa/src/test/java/com/demcha/compose/document/svg/SvgIconTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/core/widgets/TableWidgetTest.java b/qa/src/test/java/com/demcha/compose/document/templates/core/widgets/TableWidgetTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/core/widgets/TableWidgetTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/core/widgets/TableWidgetTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/coverletter/presets/CoverLetterV2SmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/coverletter/presets/CoverLetterV2SmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/coverletter/presets/CoverLetterV2SmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/coverletter/presets/CoverLetterV2SmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/presets/BlueBannerSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/BlueBannerSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/presets/BlueBannerSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/presets/BlueBannerSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/presets/BoxedSectionsSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/BoxedSectionsSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/presets/BoxedSectionsSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/presets/BoxedSectionsSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/presets/ClassicSerifSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ClassicSerifSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/presets/ClassicSerifSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ClassicSerifSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/presets/CompactMonoSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CompactMonoSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/presets/CompactMonoSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/presets/CompactMonoSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/presets/EditorialBlueSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/EditorialBlueSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/presets/EditorialBlueSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/presets/EditorialBlueSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/presets/EngineeringResumeSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/EngineeringResumeSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/presets/EngineeringResumeSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/presets/EngineeringResumeSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/presets/ExecutiveSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ExecutiveSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/presets/ExecutiveSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ExecutiveSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/presets/MinimalUnderlinedSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MinimalUnderlinedSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/presets/MinimalUnderlinedSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MinimalUnderlinedSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/presets/MintEditorialSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MintEditorialSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/presets/MintEditorialSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MintEditorialSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/presets/ModernProfessionalSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ModernProfessionalSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/presets/ModernProfessionalSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/presets/ModernProfessionalSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/presets/MonogramSidebarSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MonogramSidebarSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/presets/MonogramSidebarSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/presets/MonogramSidebarSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/presets/NordicCleanSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NordicCleanSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/presets/NordicCleanSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/presets/NordicCleanSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/presets/PanelSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/PanelSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/presets/PanelSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/presets/PanelSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/presets/SidebarPortraitSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SidebarPortraitSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/presets/SidebarPortraitSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/presets/SidebarPortraitSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimalSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimalSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimalSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/presets/TimelineMinimalSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/cv/widgets/WidgetSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/cv/widgets/WidgetSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/cv/widgets/WidgetSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/cv/widgets/WidgetSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/invoice/presets/ModernInvoiceSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ModernInvoiceSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/invoice/presets/ModernInvoiceSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/invoice/presets/ModernInvoiceSmokeTest.java diff --git a/src/test/java/com/demcha/compose/document/templates/proposal/presets/ModernProposalSmokeTest.java b/qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/ModernProposalSmokeTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/templates/proposal/presets/ModernProposalSmokeTest.java rename to qa/src/test/java/com/demcha/compose/document/templates/proposal/presets/ModernProposalSmokeTest.java diff --git a/src/test/java/com/demcha/compose/engine/components/ComponentBuilderTest.java b/qa/src/test/java/com/demcha/compose/engine/components/ComponentBuilderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/components/ComponentBuilderTest.java rename to qa/src/test/java/com/demcha/compose/engine/components/ComponentBuilderTest.java diff --git a/src/test/java/com/demcha/compose/engine/components/content/ImageDataCacheTest.java b/qa/src/test/java/com/demcha/compose/engine/components/content/ImageDataCacheTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/components/content/ImageDataCacheTest.java rename to qa/src/test/java/com/demcha/compose/engine/components/content/ImageDataCacheTest.java diff --git a/src/test/java/com/demcha/compose/engine/core/EngineComposerHarnessContractTest.java b/qa/src/test/java/com/demcha/compose/engine/core/EngineComposerHarnessContractTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/core/EngineComposerHarnessContractTest.java rename to qa/src/test/java/com/demcha/compose/engine/core/EngineComposerHarnessContractTest.java diff --git a/src/test/java/com/demcha/compose/engine/core/EngineComposerHarnessLayoutSnapshotTest.java b/qa/src/test/java/com/demcha/compose/engine/core/EngineComposerHarnessLayoutSnapshotTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/core/EngineComposerHarnessLayoutSnapshotTest.java rename to qa/src/test/java/com/demcha/compose/engine/core/EngineComposerHarnessLayoutSnapshotTest.java diff --git a/src/test/java/com/demcha/compose/engine/core/EngineComposerHarnessMutationInvalidationTest.java b/qa/src/test/java/com/demcha/compose/engine/core/EngineComposerHarnessMutationInvalidationTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/core/EngineComposerHarnessMutationInvalidationTest.java rename to qa/src/test/java/com/demcha/compose/engine/core/EngineComposerHarnessMutationInvalidationTest.java diff --git a/src/test/java/com/demcha/compose/engine/core/NewFeaturesIntegrationTest.java b/qa/src/test/java/com/demcha/compose/engine/core/NewFeaturesIntegrationTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/core/NewFeaturesIntegrationTest.java rename to qa/src/test/java/com/demcha/compose/engine/core/NewFeaturesIntegrationTest.java diff --git a/src/test/java/com/demcha/compose/engine/integration/BlockTextIntegrationTest.java b/qa/src/test/java/com/demcha/compose/engine/integration/BlockTextIntegrationTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/integration/BlockTextIntegrationTest.java rename to qa/src/test/java/com/demcha/compose/engine/integration/BlockTextIntegrationTest.java diff --git a/src/test/java/com/demcha/compose/engine/integration/CircleIntegrationTest.java b/qa/src/test/java/com/demcha/compose/engine/integration/CircleIntegrationTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/integration/CircleIntegrationTest.java rename to qa/src/test/java/com/demcha/compose/engine/integration/CircleIntegrationTest.java diff --git a/src/test/java/com/demcha/compose/engine/integration/ImageIntegrationTest.java b/qa/src/test/java/com/demcha/compose/engine/integration/ImageIntegrationTest.java similarity index 98% rename from src/test/java/com/demcha/compose/engine/integration/ImageIntegrationTest.java rename to qa/src/test/java/com/demcha/compose/engine/integration/ImageIntegrationTest.java index ee7254ea8..469067a4f 100644 --- a/src/test/java/com/demcha/compose/engine/integration/ImageIntegrationTest.java +++ b/qa/src/test/java/com/demcha/compose/engine/integration/ImageIntegrationTest.java @@ -1,4 +1,5 @@ package com.demcha.compose.engine.integration; +import com.demcha.compose.qa.RepoPaths; import com.demcha.compose.GraphCompose; import com.demcha.compose.testsupport.engine.assembly.ComponentBuilder; @@ -26,7 +27,7 @@ class ImageIntegrationTest { - private static final Path COVER_ASSET = Path.of("assets", "GraphComposeCover.png"); + private static final Path COVER_ASSET = RepoPaths.resolve("assets", "GraphComposeCover.png"); @Test void shouldRenderSingleImageWithGuides() throws Exception { diff --git a/src/test/java/com/demcha/compose/engine/integration/LargeContainerIntegrationTest.java b/qa/src/test/java/com/demcha/compose/engine/integration/LargeContainerIntegrationTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/integration/LargeContainerIntegrationTest.java rename to qa/src/test/java/com/demcha/compose/engine/integration/LargeContainerIntegrationTest.java diff --git a/src/test/java/com/demcha/compose/engine/integration/LineIntegrationTest.java b/qa/src/test/java/com/demcha/compose/engine/integration/LineIntegrationTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/integration/LineIntegrationTest.java rename to qa/src/test/java/com/demcha/compose/engine/integration/LineIntegrationTest.java diff --git a/src/test/java/com/demcha/compose/engine/integration/PageBreakerIntegrationTest.java b/qa/src/test/java/com/demcha/compose/engine/integration/PageBreakerIntegrationTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/integration/PageBreakerIntegrationTest.java rename to qa/src/test/java/com/demcha/compose/engine/integration/PageBreakerIntegrationTest.java diff --git a/src/test/java/com/demcha/compose/engine/integration/SingleLineTextIntegrationTest.java b/qa/src/test/java/com/demcha/compose/engine/integration/SingleLineTextIntegrationTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/integration/SingleLineTextIntegrationTest.java rename to qa/src/test/java/com/demcha/compose/engine/integration/SingleLineTextIntegrationTest.java diff --git a/src/test/java/com/demcha/compose/engine/integration/TableColSpanIntegrationTest.java b/qa/src/test/java/com/demcha/compose/engine/integration/TableColSpanIntegrationTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/integration/TableColSpanIntegrationTest.java rename to qa/src/test/java/com/demcha/compose/engine/integration/TableColSpanIntegrationTest.java diff --git a/src/test/java/com/demcha/compose/engine/integration/TableLayoutIntegrationTest.java b/qa/src/test/java/com/demcha/compose/engine/integration/TableLayoutIntegrationTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/integration/TableLayoutIntegrationTest.java rename to qa/src/test/java/com/demcha/compose/engine/integration/TableLayoutIntegrationTest.java diff --git a/src/test/java/com/demcha/compose/engine/integration/TableMultilineIntegrationTest.java b/qa/src/test/java/com/demcha/compose/engine/integration/TableMultilineIntegrationTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/integration/TableMultilineIntegrationTest.java rename to qa/src/test/java/com/demcha/compose/engine/integration/TableMultilineIntegrationTest.java diff --git a/src/test/java/com/demcha/compose/engine/integration/TableStylingIntegrationTest.java b/qa/src/test/java/com/demcha/compose/engine/integration/TableStylingIntegrationTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/integration/TableStylingIntegrationTest.java rename to qa/src/test/java/com/demcha/compose/engine/integration/TableStylingIntegrationTest.java diff --git a/src/test/java/com/demcha/compose/engine/integration/TextPaginationIntegrationTest.java b/qa/src/test/java/com/demcha/compose/engine/integration/TextPaginationIntegrationTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/integration/TextPaginationIntegrationTest.java rename to qa/src/test/java/com/demcha/compose/engine/integration/TextPaginationIntegrationTest.java diff --git a/src/test/java/com/demcha/compose/engine/measurement/FontLibraryTextMeasurementSystemTest.java b/qa/src/test/java/com/demcha/compose/engine/measurement/FontLibraryTextMeasurementSystemTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/measurement/FontLibraryTextMeasurementSystemTest.java rename to qa/src/test/java/com/demcha/compose/engine/measurement/FontLibraryTextMeasurementSystemTest.java diff --git a/src/test/java/com/demcha/compose/engine/render/RenderHandlerRegistryTest.java b/qa/src/test/java/com/demcha/compose/engine/render/RenderHandlerRegistryTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/render/RenderHandlerRegistryTest.java rename to qa/src/test/java/com/demcha/compose/engine/render/RenderHandlerRegistryTest.java diff --git a/src/test/java/com/demcha/compose/engine/render/guides/GuidesRendererTest.java b/qa/src/test/java/com/demcha/compose/engine/render/guides/GuidesRendererTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/render/guides/GuidesRendererTest.java rename to qa/src/test/java/com/demcha/compose/engine/render/guides/GuidesRendererTest.java diff --git a/src/test/java/com/demcha/compose/font/FontLibraryIntegrationTest.java b/qa/src/test/java/com/demcha/compose/font/FontLibraryIntegrationTest.java similarity index 97% rename from src/test/java/com/demcha/compose/font/FontLibraryIntegrationTest.java rename to qa/src/test/java/com/demcha/compose/font/FontLibraryIntegrationTest.java index ae13c181a..345818d2c 100644 --- a/src/test/java/com/demcha/compose/font/FontLibraryIntegrationTest.java +++ b/qa/src/test/java/com/demcha/compose/font/FontLibraryIntegrationTest.java @@ -1,4 +1,5 @@ package com.demcha.compose.font; +import com.demcha.compose.qa.RepoPaths; import com.demcha.compose.GraphCompose; import com.demcha.compose.document.backend.fixed.pdf.PdfFontLibraryFactory; @@ -41,7 +42,7 @@ void shouldRegisterCustomFontFamilyFromFilePaths() throws Exception { // The bundled fonts moved to the graph-compose-fonts module in v1.8.0. // This test exercises file-based registration, so it reads the real TTFs // from that module's resources (engine test cwd is the repo root). - Path fontsRoot = Path.of("fonts", "src", "main", "resources", "fonts", "google", "lato"); + Path fontsRoot = RepoPaths.resolve("fonts", "src", "main", "resources", "fonts", "google", "lato"); try (EngineComposerHarness composer = com.demcha.compose.testsupport.EngineComposerHarness.pdf() .registerFontFamily( diff --git a/qa/src/test/java/com/demcha/compose/qa/RepoPaths.java b/qa/src/test/java/com/demcha/compose/qa/RepoPaths.java new file mode 100644 index 000000000..2fa009f7b --- /dev/null +++ b/qa/src/test/java/com/demcha/compose/qa/RepoPaths.java @@ -0,0 +1,44 @@ +package com.demcha.compose.qa; + +import java.nio.file.Files; +import java.nio.file.Path; + +/** + * Resolves repository-root-relative paths independently of which module's working + * directory the suite runs from. Several cross-module suites moved into qa read + * sibling-module sources or repo-root assets (e.g. {@code fonts/src/...}, + * {@code examples/src/...}, {@code assets/...}); those paths resolved from the + * engine module's basedir (the repo root) but not from qa's, so they go through + * here instead. + */ +public final class RepoPaths { + + private RepoPaths() { + } + + /** + * The repository root, located by walking up from the working directory until a + * directory that contains {@code aggregator/pom.xml} is found. + * + * @return the absolute repository-root path + */ + public static Path repoRoot() { + for (Path dir = Path.of("").toAbsolutePath(); dir != null; dir = dir.getParent()) { + if (Files.exists(dir.resolve("aggregator/pom.xml"))) { + return dir; + } + } + return Path.of("").toAbsolutePath(); + } + + /** + * Resolves a repository-root-relative path. + * + * @param first the first path segment (may itself contain separators) + * @param more additional path segments + * @return the resolved absolute path under the repository root + */ + public static Path resolve(String first, String... more) { + return repoRoot().resolve(Path.of(first, more)); + } +} diff --git a/src/test/java/com/demcha/documentation/DocumentationExamplesTest.java b/qa/src/test/java/com/demcha/documentation/DocumentationExamplesTest.java similarity index 99% rename from src/test/java/com/demcha/documentation/DocumentationExamplesTest.java rename to qa/src/test/java/com/demcha/documentation/DocumentationExamplesTest.java index c2676a6be..e95f58878 100644 --- a/src/test/java/com/demcha/documentation/DocumentationExamplesTest.java +++ b/qa/src/test/java/com/demcha/documentation/DocumentationExamplesTest.java @@ -1,4 +1,5 @@ package com.demcha.documentation; +import com.demcha.compose.qa.RepoPaths; import com.demcha.compose.GraphCompose; import com.demcha.compose.document.api.DocumentPageSize; @@ -178,7 +179,7 @@ void shouldRenderComposeFirstBuiltInTemplateExampleToFile() throws Exception { @Test void runnableExamplesShouldUseCanonicalDocumentTemplates() throws IOException { - Path examplesRoot = Path.of("examples/src/main/java/com/demcha/examples").toAbsolutePath().normalize(); + Path examplesRoot = RepoPaths.resolve("examples/src/main/java/com/demcha/examples").toAbsolutePath().normalize(); try (var paths = Files.walk(examplesRoot)) { List violations = new TreeSet<>(paths diff --git a/src/test/java/com/demcha/testing/visual/DevelopTest.java b/qa/src/test/java/com/demcha/testing/visual/DevelopTest.java similarity index 100% rename from src/test/java/com/demcha/testing/visual/DevelopTest.java rename to qa/src/test/java/com/demcha/testing/visual/DevelopTest.java diff --git a/src/test/java/com/demcha/testing/visual/HttpStreamingDemoTest.java b/qa/src/test/java/com/demcha/testing/visual/HttpStreamingDemoTest.java similarity index 100% rename from src/test/java/com/demcha/testing/visual/HttpStreamingDemoTest.java rename to qa/src/test/java/com/demcha/testing/visual/HttpStreamingDemoTest.java diff --git a/src/test/java/com/demcha/testing/visual/LayerStackRowDemoTest.java b/qa/src/test/java/com/demcha/testing/visual/LayerStackRowDemoTest.java similarity index 100% rename from src/test/java/com/demcha/testing/visual/LayerStackRowDemoTest.java rename to qa/src/test/java/com/demcha/testing/visual/LayerStackRowDemoTest.java diff --git a/src/test/java/com/demcha/testing/visual/PageCapacityToleranceDemoTest.java b/qa/src/test/java/com/demcha/testing/visual/PageCapacityToleranceDemoTest.java similarity index 100% rename from src/test/java/com/demcha/testing/visual/PageCapacityToleranceDemoTest.java rename to qa/src/test/java/com/demcha/testing/visual/PageCapacityToleranceDemoTest.java diff --git a/src/test/java/com/demcha/testing/visual/ShapeContainerTransformDemoTest.java b/qa/src/test/java/com/demcha/testing/visual/ShapeContainerTransformDemoTest.java similarity index 100% rename from src/test/java/com/demcha/testing/visual/ShapeContainerTransformDemoTest.java rename to qa/src/test/java/com/demcha/testing/visual/ShapeContainerTransformDemoTest.java diff --git a/src/test/java/com/demcha/testing/visual/ShapeContainerZIndexDemoTest.java b/qa/src/test/java/com/demcha/testing/visual/ShapeContainerZIndexDemoTest.java similarity index 100% rename from src/test/java/com/demcha/testing/visual/ShapeContainerZIndexDemoTest.java rename to qa/src/test/java/com/demcha/testing/visual/ShapeContainerZIndexDemoTest.java diff --git a/src/test/java/com/demcha/testing/visual/TableRepeatHeaderDemoTest.java b/qa/src/test/java/com/demcha/testing/visual/TableRepeatHeaderDemoTest.java similarity index 100% rename from src/test/java/com/demcha/testing/visual/TableRepeatHeaderDemoTest.java rename to qa/src/test/java/com/demcha/testing/visual/TableRepeatHeaderDemoTest.java diff --git a/src/test/java/com/demcha/testing/visual/TableZebraAndTotalsDemoTest.java b/qa/src/test/java/com/demcha/testing/visual/TableZebraAndTotalsDemoTest.java similarity index 100% rename from src/test/java/com/demcha/testing/visual/TableZebraAndTotalsDemoTest.java rename to qa/src/test/java/com/demcha/testing/visual/TableZebraAndTotalsDemoTest.java diff --git a/src/test/java/com/demcha/testing/visual/UnicodeFallbackDemoTest.java b/qa/src/test/java/com/demcha/testing/visual/UnicodeFallbackDemoTest.java similarity index 100% rename from src/test/java/com/demcha/testing/visual/UnicodeFallbackDemoTest.java rename to qa/src/test/java/com/demcha/testing/visual/UnicodeFallbackDemoTest.java diff --git a/render-docx/pom.xml b/render-docx/pom.xml index 729825f50..7d20759a6 100644 --- a/render-docx/pom.xml +++ b/render-docx/pom.xml @@ -87,6 +87,14 @@ poi-ooxml ${poi.version} + + + io.github.demchaav + graph-compose-render-pdf + ${project.version} + test + diff --git a/render-pdf/pom.xml b/render-pdf/pom.xml new file mode 100644 index 000000000..e6a2d2f53 --- /dev/null +++ b/render-pdf/pom.xml @@ -0,0 +1,322 @@ + + + 4.0.0 + + + io.github.demchaav + graph-compose-render-pdf + 2.0.0-SNAPSHOT + + GraphCompose Render — PDF + The PDFBox-backed PDF render backend for GraphCompose. + https://github.com/DemchaAV/GraphCompose + + + + MIT License + https://opensource.org/licenses/MIT + repo + + + + + + DemchaAV + Artem Demchyshyn + demchishynartem@gmail.com + https://github.com/DemchaAV + + Lead Developer + Architect + + UTC 0 + + + + + scm:git:https://github.com/DemchaAV/GraphCompose.git + scm:git:ssh://git@github.com/DemchaAV/GraphCompose.git + https://github.com/DemchaAV/GraphCompose/tree/main + + + + UTF-8 + 17 + + 1.18.46 + 3.0.7 + 3.5.4 + 2.0.18 + 6.1.1 + 3.27.7 + 5.23.0 + 1.5.37 + 1.0.0 + 1.0.0 + + 3.15.0 + 3.5.0 + 3.5.6 + 3.4.0 + 3.12.0 + 3.2.8 + 0.11.0 + + + true + + + + + org.projectlombok + lombok + ${lombok.version} + provided + + + io.github.demchaav + graph-compose-core + ${project.version} + + + + org.apache.pdfbox + pdfbox + ${pdfbox.version} + + + commons-logging + commons-logging + + + + + org.slf4j + jcl-over-slf4j + ${slf4j.version} + + + com.google.zxing + core + ${zxing.version} + + + + + org.junit.jupiter + junit-jupiter + ${junit.bom.version} + test + + + org.assertj + assertj-core + ${assertj.version} + test + + + org.mockito + mockito-core + ${mockito.version} + test + + + org.mockito + mockito-junit-jupiter + ${mockito.version} + test + + + ch.qos.logback + logback-classic + ${logback.version} + test + + + io.github.demchaav + graph-compose-fonts + ${graphcompose.fonts.version} + test + + + io.github.demchaav + graph-compose-emoji + ${graphcompose.emoji.version} + test + + + + io.github.demchaav + graph-compose-core + ${project.version} + test-jar + tests + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven.compiler.plugin.version} + + ${maven.compiler.release} + + + org.projectlombok + lombok + ${lombok.version} + + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven.surefire.plugin.version} + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + attach-test-jar + + test-jar + + + + + + + + + + + release + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven.jar.plugin.version} + + + attach-test-jar + none + + + + + org.apache.maven.plugins + maven-source-plugin + ${maven.source.plugin.version} + + + attach-sources + package + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven.javadoc.plugin.version} + + + attach-javadocs + package + + jar + + + none + false + true + + + + + + org.apache.maven.plugins + maven-gpg-plugin + ${maven.gpg.plugin.version} + + + sign-artifacts + verify + + sign + + + ${gpg.skip} + + --pinentry-mode + loopback + + + + + + + org.sonatype.central + central-publishing-maven-plugin + ${central.publishing.plugin.version} + true + + central + false + validated + + + + + + + diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfBookmarkOutlineWriter.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfBookmarkOutlineWriter.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfBookmarkOutlineWriter.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfBookmarkOutlineWriter.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfDocumentPostProcessor.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfDocumentPostProcessor.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfDocumentPostProcessor.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfDocumentPostProcessor.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFixedLayoutBackend.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFixedLayoutBackend.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFixedLayoutBackend.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFixedLayoutBackend.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFixedLayoutBackendProvider.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFixedLayoutBackendProvider.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFixedLayoutBackendProvider.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFixedLayoutBackendProvider.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFontLibraryFactory.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFontLibraryFactory.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFontLibraryFactory.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFontLibraryFactory.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFontLoader.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFontLoader.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFontLoader.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFontLoader.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFontMetricsProvider.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFontMetricsProvider.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFontMetricsProvider.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFontMetricsProvider.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFragmentRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFragmentRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFragmentRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfFragmentRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfGuideLinesRenderer.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfGuideLinesRenderer.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfGuideLinesRenderer.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfGuideLinesRenderer.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfInternalLinkWriter.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfInternalLinkWriter.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfInternalLinkWriter.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfInternalLinkWriter.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfLinkAnnotationWriter.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfLinkAnnotationWriter.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfLinkAnnotationWriter.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfLinkAnnotationWriter.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfMeasurementResources.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfMeasurementResources.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfMeasurementResources.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfMeasurementResources.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfNodeLabelRenderer.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfNodeLabelRenderer.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfNodeLabelRenderer.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfNodeLabelRenderer.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfOptionsAdapter.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfOptionsAdapter.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfOptionsAdapter.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfOptionsAdapter.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfOutputOptionsTranslator.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfOutputOptionsTranslator.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfOutputOptionsTranslator.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfOutputOptionsTranslator.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfRenderEnvironment.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfRenderEnvironment.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfRenderEnvironment.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfRenderEnvironment.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfRenderSession.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfRenderSession.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfRenderSession.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/PdfRenderSession.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfAlphaSupport.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfAlphaSupport.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfAlphaSupport.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfAlphaSupport.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfAnchorMarkerRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfAnchorMarkerRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfAnchorMarkerRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfAnchorMarkerRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfBarcodeFragmentRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfBarcodeFragmentRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfBarcodeFragmentRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfBarcodeFragmentRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfBookmarkMarkerRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfBookmarkMarkerRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfBookmarkMarkerRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfBookmarkMarkerRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfEllipseFragmentRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfEllipseFragmentRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfEllipseFragmentRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfEllipseFragmentRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfImageFragmentRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfImageFragmentRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfImageFragmentRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfImageFragmentRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfLineFragmentRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfLineFragmentRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfLineFragmentRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfLineFragmentRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfParagraphFragmentRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfParagraphFragmentRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfParagraphFragmentRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfParagraphFragmentRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfPathFragmentRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfPathFragmentRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfPathFragmentRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfPathFragmentRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfPathPainter.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfPathPainter.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfPathPainter.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfPathPainter.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfPolygonFragmentRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfPolygonFragmentRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfPolygonFragmentRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfPolygonFragmentRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShadingSupport.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShadingSupport.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShadingSupport.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShadingSupport.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeClipBeginRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeClipBeginRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeClipBeginRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeClipBeginRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeClipEndRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeClipEndRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeClipEndRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeClipEndRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeFragmentRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeFragmentRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeFragmentRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeFragmentRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeGeometry.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeGeometry.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeGeometry.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfShapeGeometry.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfTableRowFragmentRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfTableRowFragmentRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfTableRowFragmentRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfTableRowFragmentRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfTransformBeginRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfTransformBeginRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfTransformBeginRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfTransformBeginRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfTransformEndRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfTransformEndRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfTransformEndRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/PdfTransformEndRenderHandler.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/package-info.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/package-info.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/package-info.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/handlers/package-info.java diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/package-info.java b/render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/package-info.java similarity index 100% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/package-info.java rename to render-pdf/src/main/java/com/demcha/compose/document/backend/fixed/pdf/package-info.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/GlyphFallbackLogger.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/GlyphFallbackLogger.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/GlyphFallbackLogger.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/GlyphFallbackLogger.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/PdfFont.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/PdfFont.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/PdfFont.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/PdfFont.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfCanvas.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfCanvas.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfCanvas.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfCanvas.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfFileManagerSystem.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfFileManagerSystem.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfFileManagerSystem.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfFileManagerSystem.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfGuidesRenderer.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfGuidesRenderer.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfGuidesRenderer.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfGuidesRenderer.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfImageCache.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfImageCache.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfImageCache.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfImageCache.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderSession.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderSession.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderSession.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderSession.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderingSystemECS.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderingSystemECS.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderingSystemECS.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderingSystemECS.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfStream.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfStream.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfStream.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/PdfStream.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfBarcodeRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfBarcodeRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfBarcodeRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfBarcodeRenderHandler.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfBlockTextRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfBlockTextRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfBlockTextRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfBlockTextRenderHandler.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfChunkedBlockTextRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfChunkedBlockTextRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfChunkedBlockTextRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfChunkedBlockTextRenderHandler.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfCircleRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfCircleRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfCircleRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfCircleRenderHandler.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfContainerRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfContainerRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfContainerRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfContainerRenderHandler.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfElementRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfElementRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfElementRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfElementRenderHandler.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfImageRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfImageRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfImageRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfImageRenderHandler.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfLineRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfLineRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfLineRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfLineRenderHandler.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfLinkRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfLinkRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfLinkRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfLinkRenderHandler.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfPageBreakRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfPageBreakRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfPageBreakRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfPageBreakRenderHandler.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfRectangleRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfRectangleRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfRectangleRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfRectangleRenderHandler.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfTableRowRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfTableRowRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfTableRowRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfTableRowRenderHandler.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfTextRenderHandler.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfTextRenderHandler.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfTextRenderHandler.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfTextRenderHandler.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/package-info.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/package-info.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/package-info.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/handlers/package-info.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/helpers/PdfBookmarkBuilder.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/helpers/PdfBookmarkBuilder.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/helpers/PdfBookmarkBuilder.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/helpers/PdfBookmarkBuilder.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/helpers/TableCellBox.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/helpers/TableCellBox.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/helpers/TableCellBox.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/helpers/TableCellBox.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/helpers/package-info.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/helpers/package-info.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/helpers/package-info.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/helpers/package-info.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/ecs/package-info.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/package-info.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/ecs/package-info.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/ecs/package-info.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/helpers/PdfHeaderFooterRenderer.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/helpers/PdfHeaderFooterRenderer.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/helpers/PdfHeaderFooterRenderer.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/helpers/PdfHeaderFooterRenderer.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/helpers/PdfWatermarkRenderer.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/helpers/PdfWatermarkRenderer.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/helpers/PdfWatermarkRenderer.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/helpers/PdfWatermarkRenderer.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/helpers/package-info.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/helpers/package-info.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/helpers/package-info.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/helpers/package-info.java diff --git a/src/main/java/com/demcha/compose/engine/render/pdf/package-info.java b/render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/package-info.java similarity index 100% rename from src/main/java/com/demcha/compose/engine/render/pdf/package-info.java rename to render-pdf/src/main/java/com/demcha/compose/engine/render/pdf/package-info.java diff --git a/src/main/resources/META-INF/services/com.demcha.compose.document.backend.fixed.FixedLayoutBackendProvider b/render-pdf/src/main/resources/META-INF/services/com.demcha.compose.document.backend.fixed.FixedLayoutBackendProvider similarity index 100% rename from src/main/resources/META-INF/services/com.demcha.compose.document.backend.fixed.FixedLayoutBackendProvider rename to render-pdf/src/main/resources/META-INF/services/com.demcha.compose.document.backend.fixed.FixedLayoutBackendProvider diff --git a/src/main/resources/META-INF/services/com.demcha.compose.document.backend.fixed.FontMetricsProvider b/render-pdf/src/main/resources/META-INF/services/com.demcha.compose.document.backend.fixed.FontMetricsProvider similarity index 100% rename from src/main/resources/META-INF/services/com.demcha.compose.document.backend.fixed.FontMetricsProvider rename to render-pdf/src/main/resources/META-INF/services/com.demcha.compose.document.backend.fixed.FontMetricsProvider diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/ContainerBookmarkTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/ContainerBookmarkTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/ContainerBookmarkTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/ContainerBookmarkTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/FontShowcaseRenderTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/FontShowcaseRenderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/FontShowcaseRenderTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/FontShowcaseRenderTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/InternalLinkAnchorTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/InternalLinkAnchorTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/InternalLinkAnchorTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/InternalLinkAnchorTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/MeasurementFontParityTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/MeasurementFontParityTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/MeasurementFontParityTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/MeasurementFontParityTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/MultiSectionDocumentTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/MultiSectionDocumentTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/MultiSectionDocumentTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/MultiSectionDocumentTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PageIndexAnchorAgreementTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PageIndexAnchorAgreementTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/PageIndexAnchorAgreementTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PageIndexAnchorAgreementTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PageReferenceTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PageReferenceTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/PageReferenceTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PageReferenceTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/ParagraphTextStateDedupTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/ParagraphTextStateDedupTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/ParagraphTextStateDedupTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/ParagraphTextStateDedupTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfBackendExtensibilityTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfBackendExtensibilityTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfBackendExtensibilityTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfBackendExtensibilityTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfDebugNodeLabelsTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfDebugNodeLabelsTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfDebugNodeLabelsTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfDebugNodeLabelsTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfFixedLayoutBackendFeaturesTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfFixedLayoutBackendFeaturesTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfFixedLayoutBackendFeaturesTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfFixedLayoutBackendFeaturesTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfLineStrokeStyleTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfLineStrokeStyleTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfLineStrokeStyleTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfLineStrokeStyleTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfPageNumberingTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfPageNumberingTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfPageNumberingTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfPageNumberingTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfPathGradientTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfPathGradientTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfPathGradientTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfPathGradientTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfPathStrokeStyleTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfPathStrokeStyleTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfPathStrokeStyleTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfPathStrokeStyleTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfShapeAlphaTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfShapeAlphaTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfShapeAlphaTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfShapeAlphaTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfShapeGradientTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfShapeGradientTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfShapeGradientTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfShapeGradientTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfWatermarkStateIsolationTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfWatermarkStateIsolationTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfWatermarkStateIsolationTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/PdfWatermarkStateIsolationTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/TocTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/TocTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/TocTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/TocTest.java diff --git a/src/test/java/com/demcha/compose/document/backend/fixed/pdf/ViewerPreferencesTest.java b/render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/ViewerPreferencesTest.java similarity index 100% rename from src/test/java/com/demcha/compose/document/backend/fixed/pdf/ViewerPreferencesTest.java rename to render-pdf/src/test/java/com/demcha/compose/document/backend/fixed/pdf/ViewerPreferencesTest.java diff --git a/src/test/java/com/demcha/compose/engine/render/pdf/PdfFontSanitizerTest.java b/render-pdf/src/test/java/com/demcha/compose/engine/render/pdf/PdfFontSanitizerTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/render/pdf/PdfFontSanitizerTest.java rename to render-pdf/src/test/java/com/demcha/compose/engine/render/pdf/PdfFontSanitizerTest.java diff --git a/src/test/java/com/demcha/compose/engine/render/pdf/PdfRenderInterfaceGuardTest.java b/render-pdf/src/test/java/com/demcha/compose/engine/render/pdf/PdfRenderInterfaceGuardTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/render/pdf/PdfRenderInterfaceGuardTest.java rename to render-pdf/src/test/java/com/demcha/compose/engine/render/pdf/PdfRenderInterfaceGuardTest.java diff --git a/src/test/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderSessionTest.java b/render-pdf/src/test/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderSessionTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderSessionTest.java rename to render-pdf/src/test/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderSessionTest.java diff --git a/src/test/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderingSystemECSDispatchTest.java b/render-pdf/src/test/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderingSystemECSDispatchTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderingSystemECSDispatchTest.java rename to render-pdf/src/test/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderingSystemECSDispatchTest.java diff --git a/src/test/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderingSystemECSImageCacheTest.java b/render-pdf/src/test/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderingSystemECSImageCacheTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderingSystemECSImageCacheTest.java rename to render-pdf/src/test/java/com/demcha/compose/engine/render/pdf/ecs/PdfRenderingSystemECSImageCacheTest.java diff --git a/src/test/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfLinkRenderHandlerTest.java b/render-pdf/src/test/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfLinkRenderHandlerTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfLinkRenderHandlerTest.java rename to render-pdf/src/test/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfLinkRenderHandlerTest.java diff --git a/src/test/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfTableRowRenderHandlerTest.java b/render-pdf/src/test/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfTableRowRenderHandlerTest.java similarity index 100% rename from src/test/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfTableRowRenderHandlerTest.java rename to render-pdf/src/test/java/com/demcha/compose/engine/render/pdf/ecs/handlers/PdfTableRowRenderHandlerTest.java diff --git a/src/test/java/com/demcha/compose/testsupport/EngineComposerHarness.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/EngineComposerHarness.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/EngineComposerHarness.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/EngineComposerHarness.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/BarcodeBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/BarcodeBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/BarcodeBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/BarcodeBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/BarcodeBuilderTest.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/BarcodeBuilderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/BarcodeBuilderTest.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/BarcodeBuilderTest.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/BlockTextBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/BlockTextBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/BlockTextBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/BlockTextBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/BlockTextBuilderTest.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/BlockTextBuilderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/BlockTextBuilderTest.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/BlockTextBuilderTest.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/CircleBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/CircleBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/CircleBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/CircleBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/ComponentBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/ComponentBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/ComponentBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/ComponentBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/DisplayUrlTextBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/DisplayUrlTextBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/DisplayUrlTextBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/DisplayUrlTextBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/DividerBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/DividerBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/DividerBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/DividerBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/ElementBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/ElementBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/ElementBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/ElementBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/HContainerBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/HContainerBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/HContainerBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/HContainerBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/ImageBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/ImageBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/ImageBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/ImageBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/ImageBuilderTest.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/ImageBuilderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/ImageBuilderTest.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/ImageBuilderTest.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/LineBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/LineBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/LineBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/LineBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/LineBuilderTest.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/LineBuilderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/LineBuilderTest.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/LineBuilderTest.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/LinkBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/LinkBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/LinkBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/LinkBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/ModuleBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/ModuleBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/ModuleBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/ModuleBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/PageBreakBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/PageBreakBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/PageBreakBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/PageBreakBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/RectangleBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/RectangleBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/RectangleBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/RectangleBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/RowBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/RowBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/RowBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/RowBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/TableBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/TableBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/TableBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/TableBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/TableBuilderTest.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/TableBuilderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/TableBuilderTest.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/TableBuilderTest.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/TextBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/TextBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/TextBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/TextBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/TextBuilderTest.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/TextBuilderTest.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/TextBuilderTest.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/TextBuilderTest.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/VContainerBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/VContainerBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/VContainerBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/VContainerBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/Box.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/Box.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/container/Box.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/Box.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/BuildEntity.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/BuildEntity.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/container/BuildEntity.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/BuildEntity.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/ContainerBuilder.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/ContainerBuilder.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/container/ContainerBuilder.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/ContainerBuilder.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/EmptyBox.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/EmptyBox.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/container/EmptyBox.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/EmptyBox.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/EntityBuilderBase.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/EntityBuilderBase.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/container/EntityBuilderBase.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/EntityBuilderBase.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/EntityCreator.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/EntityCreator.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/container/EntityCreator.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/EntityCreator.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/Layout.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/Layout.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/container/Layout.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/Layout.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/ShapeBuilderBase.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/ShapeBuilderBase.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/container/ShapeBuilderBase.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/ShapeBuilderBase.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/StackAxis.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/StackAxis.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/container/StackAxis.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/StackAxis.java diff --git a/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/package-info.java b/render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/package-info.java similarity index 100% rename from src/test/java/com/demcha/compose/testsupport/engine/assembly/container/package-info.java rename to render-pdf/src/test/java/com/demcha/compose/testsupport/engine/assembly/container/package-info.java diff --git a/render-pptx/pom.xml b/render-pptx/pom.xml index f181b8d83..7c0d5af1c 100644 --- a/render-pptx/pom.xml +++ b/render-pptx/pom.xml @@ -82,6 +82,14 @@ + + + io.github.demchaav + graph-compose-render-pdf + ${project.version} + test + org.junit.jupiter junit-jupiter diff --git a/scripts/cut-release.ps1 b/scripts/cut-release.ps1 index cbab1b0a0..a76154ad3 100644 --- a/scripts/cut-release.ps1 +++ b/scripts/cut-release.ps1 @@ -304,7 +304,7 @@ function Run-ShowcaseSync { $execProp = '"-Dexec.mainClass=com.demcha.examples.support.ShowcaseSync"' # The examples module depends on these bumped SNAPSHOT siblings (not on # Central); each must be installed before exec:java can resolve them. - $exampleSnapshotSiblings = @('wrapper/pom.xml', 'render-docx/pom.xml', 'testing/pom.xml') + $exampleSnapshotSiblings = @('render-pdf/pom.xml', 'wrapper/pom.xml', 'render-docx/pom.xml', 'testing/pom.xml') if ($DryRun) { Write-Host " [DRY RUN] $mvnw -B -ntp -DskipTests install -pl ." -ForegroundColor Yellow foreach ($modulePom in $exampleSnapshotSiblings) { @@ -496,9 +496,10 @@ try { Update-PomVersion (Join-Path $repoRoot 'aggregator/pom.xml') $Version Update-PomVersion (Join-Path $repoRoot 'examples/pom.xml') $Version Update-PomVersion (Join-Path $repoRoot 'benchmarks/pom.xml') $Version - # render-docx / render-pptx track the engine line (lockstep): each - # bumps here and its graph-compose-core dep is ${project.version} (follows - # automatically). + # render-pdf / render-docx / render-pptx track the engine line (lockstep): each + # bumps here and its graph-compose-core dep is ${project.version} + # (follows automatically). + Update-PomVersion (Join-Path $repoRoot 'render-pdf/pom.xml') $Version Update-PomVersion (Join-Path $repoRoot 'render-docx/pom.xml') $Version Update-PomVersion (Join-Path $repoRoot 'render-pptx/pom.xml') $Version # graph-compose-testing tracks the engine line (lockstep): its @@ -577,6 +578,7 @@ try { 'pom.xml', 'aggregator/pom.xml', 'bundle/pom.xml', + 'render-pdf/pom.xml', 'render-docx/pom.xml', 'render-pptx/pom.xml', 'testing/pom.xml', diff --git a/src/main/java/com/demcha/compose/GraphCompose.java b/src/main/java/com/demcha/compose/GraphCompose.java index d27bce5b1..ce617e477 100644 --- a/src/main/java/com/demcha/compose/GraphCompose.java +++ b/src/main/java/com/demcha/compose/GraphCompose.java @@ -2,7 +2,7 @@ import com.demcha.compose.font.FontFamilyDefinition; import com.demcha.compose.font.FontName; -import com.demcha.compose.document.backend.fixed.pdf.FontShowcase; +import com.demcha.compose.document.showcase.FontShowcase; import com.demcha.compose.font.DefaultFonts; import com.demcha.compose.document.api.DocumentPageSize; import com.demcha.compose.document.api.DocumentSession; @@ -134,16 +134,26 @@ public static List availableFonts() { * Renders a PDF showcase of all bundled font families to disk. * *

This is primarily a discovery helper for developers choosing a family for - * {@code TextStyle}, templates, or themes.

+ * {@code TextStyle}, templates, or themes. Because it renders a PDF, a render + * backend must be on the classpath (the {@code graph-compose-render-pdf} + * artifact, brought transitively by {@code graph-compose}); on a bare + * {@code graph-compose-core} classpath it throws {@code MissingBackendException}.

+ * + * @param outputFile the file to write the preview PDF to + * @throws Exception if rendering fails, or {@code MissingBackendException} if no + * render backend is on the classpath */ public static void renderAvailableFontsPreview(Path outputFile) throws Exception { FontShowcase.renderAvailableFontsPreview(outputFile); } /** - * Renders a PDF showcase of all bundled font families in memory. + * Renders a PDF showcase of all bundled font families in memory. Requires a + * render backend on the classpath (see {@link #renderAvailableFontsPreview(Path)}). * * @return the generated preview document as PDF bytes + * @throws Exception if rendering fails, or {@code MissingBackendException} if no + * render backend is on the classpath */ public static byte[] renderAvailableFontsPreview() throws Exception { return FontShowcase.renderAvailableFontsPreview(); diff --git a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/FontShowcase.java b/src/main/java/com/demcha/compose/document/showcase/FontShowcase.java similarity index 99% rename from src/main/java/com/demcha/compose/document/backend/fixed/pdf/FontShowcase.java rename to src/main/java/com/demcha/compose/document/showcase/FontShowcase.java index 8164ad9ad..fb8107916 100644 --- a/src/main/java/com/demcha/compose/document/backend/fixed/pdf/FontShowcase.java +++ b/src/main/java/com/demcha/compose/document/showcase/FontShowcase.java @@ -1,4 +1,4 @@ -package com.demcha.compose.document.backend.fixed.pdf; +package com.demcha.compose.document.showcase; import com.demcha.compose.GraphCompose; import com.demcha.compose.document.api.DocumentPageSize; diff --git a/src/main/java/com/demcha/compose/document/showcase/package-info.java b/src/main/java/com/demcha/compose/document/showcase/package-info.java new file mode 100644 index 000000000..609c89b9a --- /dev/null +++ b/src/main/java/com/demcha/compose/document/showcase/package-info.java @@ -0,0 +1,8 @@ +/** + * Document-building discovery helpers. {@link com.demcha.compose.document.showcase.FontShowcase} + * renders a preview of the bundled font families by authoring a document through + * the canonical DSL, so it lives in the document layer (it needs a render backend + * to produce output) rather than the backend-neutral {@code com.demcha.compose.font} + * catalog. Reached through {@code GraphCompose.renderAvailableFontsPreview(...)}. + */ +package com.demcha.compose.document.showcase; diff --git a/src/test/java/com/demcha/compose/document/api/MissingBackendContractTest.java b/src/test/java/com/demcha/compose/document/api/MissingBackendContractTest.java new file mode 100644 index 000000000..824ed30e1 --- /dev/null +++ b/src/test/java/com/demcha/compose/document/api/MissingBackendContractTest.java @@ -0,0 +1,34 @@ +package com.demcha.compose.document.api; + +import com.demcha.compose.GraphCompose; +import com.demcha.compose.document.exceptions.MissingBackendException; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +/** + * The lean {@code graph-compose-core} carries no render backend. Any operation that + * needs one — measuring text to lay out, rendering, or rasterizing a document — must + * fail with a {@link MissingBackendException} that names the artifact to add + * ({@code graph-compose-render-pdf}). This is the defining contract of the lean core. + * + *

The test lives in core's own backend-free test scope on purpose: a + * backend on the classpath (as in the qa module) would resolve the provider and hide + * a regression here.

+ */ +class MissingBackendContractTest { + + @Test + void renderingWithoutABackendThrowsMissingBackendExceptionNamingRenderPdf() { + assertThatThrownBy(() -> { + try (DocumentSession session = GraphCompose.document() + .pageSize(200, 200) + .create()) { + session.pageFlow(page -> page.module("m", module -> module.paragraph("hi"))); + session.toPdfBytes(); + } + }) + .isInstanceOf(MissingBackendException.class) + .hasMessageContaining("graph-compose-render-pdf"); + } +} diff --git a/src/test/java/com/demcha/documentation/PdfBackendIsolationGuardTest.java b/src/test/java/com/demcha/documentation/PdfBackendIsolationGuardTest.java index fca159fb5..8c89f1681 100644 --- a/src/test/java/com/demcha/documentation/PdfBackendIsolationGuardTest.java +++ b/src/test/java/com/demcha/documentation/PdfBackendIsolationGuardTest.java @@ -46,9 +46,10 @@ class PdfBackendIsolationGuardTest { PROJECT_ROOT.resolve("src/main/java/com/demcha/compose/document/templates"), PROJECT_ROOT.resolve("src/main/java/com/demcha/compose/document/backend/fixed"), // The public font catalog names logical fonts; it never loads them. - // PDFBox loading lives in the pdf backend factory, so compose.font - // must stay PDFBox-free (FontShowcase, which renders a preview PDF, - // lives under backend/fixed/pdf and is exempted like the rest of it). + // PDFBox loading lives in the graph-compose-render-pdf backend, so + // compose.font must stay PDFBox-free. (FontShowcase, which authors a + // preview document, is a document-layer helper under + // document.showcase, not part of the font catalog.) PROJECT_ROOT.resolve("src/main/java/com/demcha/compose/font")); @Test @@ -65,10 +66,9 @@ void pdfboxShouldStayOutOfCanonicalAndNonPdfBackendContracts() throws IOExceptio } assertThat(violations) - .describedAs("PDFBox dependencies must stay behind document.backend.fixed.pdf.* " - + "or under engine.render.pdf.* (shared PDFBox primitives plus the legacy " - + "ECS renderer in engine.render.pdf.ecs.*). Canonical API and layout contracts " - + "should use document-level value objects such as DocumentPageSize.") + .describedAs("PDFBox now lives entirely in the graph-compose-render-pdf module; the " + + "core must stay PDFBox-free. Canonical API and layout contracts should use " + + "document-level value objects such as DocumentPageSize, not PDFBox types.") .isEmpty(); } diff --git a/src/test/java/com/demcha/documentation/VersionConsistencyGuardTest.java b/src/test/java/com/demcha/documentation/VersionConsistencyGuardTest.java index 6ae30db87..8c6e6908e 100644 --- a/src/test/java/com/demcha/documentation/VersionConsistencyGuardTest.java +++ b/src/test/java/com/demcha/documentation/VersionConsistencyGuardTest.java @@ -67,6 +67,9 @@ void everyModuleResolvesToTheRootProjectVersion() throws Exception { assertThat(effectiveVersion(PROJECT_ROOT.resolve("render-pptx/pom.xml"))) .describedAs("render-pptx (graph-compose-render-pptx) tracks the engine line and must equal the root version (%s)", root) .isEqualTo(root); + assertThat(effectiveVersion(PROJECT_ROOT.resolve("render-pdf/pom.xml"))) + .describedAs("render-pdf (graph-compose-render-pdf) tracks the engine line and must equal the root version (%s)", root) + .isEqualTo(root); assertThat(effectiveVersion(PROJECT_ROOT.resolve("testing/pom.xml"))) .describedAs("testing (graph-compose-testing) tracks the engine line and must equal the root version (%s)", root) .isEqualTo(root); diff --git a/wrapper/pom.xml b/wrapper/pom.xml index 4002d888d..efb825510 100644 --- a/wrapper/pom.xml +++ b/wrapper/pom.xml @@ -72,13 +72,19 @@ - + io.github.demchaav graph-compose-core ${project.version} + + io.github.demchaav + graph-compose-render-pdf + ${project.version} +