From 9474024a35835a9a38d291acfbbac6d2a886d0f6 Mon Sep 17 00:00:00 2001 From: DemchaAV Date: Wed, 1 Jul 2026 21:58:15 +0100 Subject: [PATCH] refactor(templates): drop the v2 suffix from the invoice package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With the classic invoice stack gone, the layered presets no longer need the v2 package segment. Move templates.invoice.v2.presets to templates.invoice.presets and rewrite every import and doc reference across the engine, tests, examples, and benchmarks. Pure rename — the visual parity test passes against the unchanged committed baseline, so the render is identical. Tests: ./mvnw verify javadoc:javadoc -pl . — 1378 tests, 0 failures, javadoc clean; examples + benchmarks compile; perf-smoke + examples-generation smoke (85) green. --- .../main/java/com/demcha/compose/AllocationRateProbe.java | 2 +- .../java/com/demcha/compose/CurrentSpeedBenchmark.java | 2 +- .../java/com/demcha/compose/jmh/ColdStartJmhBenchmark.java | 2 +- .../main/java/com/demcha/examples/GenerateAllExamples.java | 2 +- .../snapshots/LayoutSnapshotRegressionExample.java | 2 +- .../examples/features/streaming/HttpStreamingExample.java | 2 +- .../templates/invoice/InvoiceCinematicFileExample.java | 4 ++-- .../templates/invoice/v2/ModernInvoiceV2Example.java | 4 ++-- .../document/templates/data/invoice/package-info.java | 2 +- .../compose/document/templates/invoice/package-info.java | 7 +++---- .../templates/invoice/{v2 => }/presets/ModernInvoice.java | 2 +- .../templates/invoice/{v2 => }/presets/package-info.java | 2 +- .../templates/proposal/v2/presets/ModernProposal.java | 2 +- .../templates/proposal/v2/presets/package-info.java | 2 +- .../{v2 => }/presets/InvoiceV2VisualParityTest.java | 2 +- .../invoice/{v2 => }/presets/ModernInvoiceSmokeTest.java | 4 ++-- .../demcha/documentation/DocumentationExamplesTest.java | 2 +- .../com/demcha/testing/visual/HttpStreamingDemoTest.java | 2 +- .../testing/visual/LayoutSnapshotRegressionDemoTest.java | 2 +- 19 files changed, 24 insertions(+), 25 deletions(-) rename src/main/java/com/demcha/compose/document/templates/invoice/{v2 => }/presets/ModernInvoice.java (99%) rename src/main/java/com/demcha/compose/document/templates/invoice/{v2 => }/presets/package-info.java (91%) rename src/test/java/com/demcha/compose/document/templates/invoice/{v2 => }/presets/InvoiceV2VisualParityTest.java (98%) rename src/test/java/com/demcha/compose/document/templates/invoice/{v2 => }/presets/ModernInvoiceSmokeTest.java (97%) diff --git a/benchmarks/src/main/java/com/demcha/compose/AllocationRateProbe.java b/benchmarks/src/main/java/com/demcha/compose/AllocationRateProbe.java index 1d4ad6ac..69799a13 100644 --- a/benchmarks/src/main/java/com/demcha/compose/AllocationRateProbe.java +++ b/benchmarks/src/main/java/com/demcha/compose/AllocationRateProbe.java @@ -5,7 +5,7 @@ import com.demcha.compose.document.templates.api.DocumentTemplate; import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec; import com.demcha.compose.document.templates.data.proposal.ProposalDocumentSpec; -import com.demcha.compose.document.templates.invoice.v2.presets.ModernInvoice; +import com.demcha.compose.document.templates.invoice.presets.ModernInvoice; import com.demcha.compose.document.templates.proposal.v2.presets.ModernProposal; import java.lang.management.GarbageCollectorMXBean; diff --git a/benchmarks/src/main/java/com/demcha/compose/CurrentSpeedBenchmark.java b/benchmarks/src/main/java/com/demcha/compose/CurrentSpeedBenchmark.java index 9b295003..07fe44f0 100644 --- a/benchmarks/src/main/java/com/demcha/compose/CurrentSpeedBenchmark.java +++ b/benchmarks/src/main/java/com/demcha/compose/CurrentSpeedBenchmark.java @@ -17,7 +17,7 @@ import com.demcha.compose.document.templates.cv.v2.presets.ModernProfessional; import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec; import com.demcha.compose.document.templates.data.proposal.ProposalDocumentSpec; -import com.demcha.compose.document.templates.invoice.v2.presets.ModernInvoice; +import com.demcha.compose.document.templates.invoice.presets.ModernInvoice; import com.demcha.compose.document.templates.proposal.v2.presets.ModernProposal; import com.demcha.compose.engine.components.style.Margin; import org.apache.pdfbox.pdmodel.common.PDRectangle; diff --git a/benchmarks/src/main/java/com/demcha/compose/jmh/ColdStartJmhBenchmark.java b/benchmarks/src/main/java/com/demcha/compose/jmh/ColdStartJmhBenchmark.java index 0d90a6b9..4a152173 100644 --- a/benchmarks/src/main/java/com/demcha/compose/jmh/ColdStartJmhBenchmark.java +++ b/benchmarks/src/main/java/com/demcha/compose/jmh/ColdStartJmhBenchmark.java @@ -8,7 +8,7 @@ import com.demcha.compose.document.templates.cv.v2.data.CvDocument; import com.demcha.compose.document.templates.cv.v2.presets.ModernProfessional; import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec; -import com.demcha.compose.document.templates.invoice.v2.presets.ModernInvoice; +import com.demcha.compose.document.templates.invoice.presets.ModernInvoice; import com.demcha.compose.document.templates.api.DocumentTemplate; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; diff --git a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java index e93b9a2e..1eb41437 100644 --- a/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java +++ b/examples/src/main/java/com/demcha/examples/GenerateAllExamples.java @@ -79,7 +79,7 @@ import com.demcha.examples.templates.cv.v2.CvSidebarPortraitExample; import com.demcha.examples.templates.cv.v2.CvTimelineMinimalExample; import com.demcha.examples.templates.invoice.InvoiceCinematicFileExample; -import com.demcha.examples.templates.invoice.v2.ModernInvoiceV2Example; +import com.demcha.examples.templates.invoice.ModernInvoiceV2Example; import com.demcha.examples.templates.proposal.CinematicProposalFileExample; import com.demcha.examples.templates.proposal.ProposalCinematicFileExample; import com.demcha.examples.templates.proposal.v2.ModernProposalV2Example; diff --git a/examples/src/main/java/com/demcha/examples/features/snapshots/LayoutSnapshotRegressionExample.java b/examples/src/main/java/com/demcha/examples/features/snapshots/LayoutSnapshotRegressionExample.java index 96f3b492..6385003c 100644 --- a/examples/src/main/java/com/demcha/examples/features/snapshots/LayoutSnapshotRegressionExample.java +++ b/examples/src/main/java/com/demcha/examples/features/snapshots/LayoutSnapshotRegressionExample.java @@ -6,7 +6,7 @@ import com.demcha.compose.document.snapshot.LayoutSnapshot; import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.templates.core.theme.BrandTheme; -import com.demcha.compose.document.templates.invoice.v2.presets.ModernInvoice; +import com.demcha.compose.document.templates.invoice.presets.ModernInvoice; import com.demcha.compose.testing.layout.LayoutSnapshotJson; import com.demcha.examples.support.ExampleDataFactory; import com.demcha.examples.support.ExampleOutputPaths; diff --git a/examples/src/main/java/com/demcha/examples/features/streaming/HttpStreamingExample.java b/examples/src/main/java/com/demcha/examples/features/streaming/HttpStreamingExample.java index 04abf86b..7616ae65 100644 --- a/examples/src/main/java/com/demcha/examples/features/streaming/HttpStreamingExample.java +++ b/examples/src/main/java/com/demcha/examples/features/streaming/HttpStreamingExample.java @@ -7,7 +7,7 @@ import com.demcha.compose.document.templates.api.DocumentTemplate; import com.demcha.compose.document.templates.core.theme.BrandTheme; import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec; -import com.demcha.compose.document.templates.invoice.v2.presets.ModernInvoice; +import com.demcha.compose.document.templates.invoice.presets.ModernInvoice; import com.demcha.examples.support.ExampleDataFactory; import com.demcha.examples.support.ExampleOutputPaths; diff --git a/examples/src/main/java/com/demcha/examples/templates/invoice/InvoiceCinematicFileExample.java b/examples/src/main/java/com/demcha/examples/templates/invoice/InvoiceCinematicFileExample.java index babfc982..000df3f5 100644 --- a/examples/src/main/java/com/demcha/examples/templates/invoice/InvoiceCinematicFileExample.java +++ b/examples/src/main/java/com/demcha/examples/templates/invoice/InvoiceCinematicFileExample.java @@ -6,7 +6,7 @@ import com.demcha.compose.document.templates.api.DocumentTemplate; import com.demcha.compose.document.templates.core.theme.BrandTheme; import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec; -import com.demcha.compose.document.templates.invoice.v2.presets.ModernInvoice; +import com.demcha.compose.document.templates.invoice.presets.ModernInvoice; import com.demcha.examples.support.ExampleDataFactory; import com.demcha.examples.support.ExampleOutputPaths; @@ -14,7 +14,7 @@ /** * Runnable showcase for the cinematic invoice look on the layered - * {@code invoice.v2} surface — {@link ModernInvoice} on + * layered invoice surface — {@link ModernInvoice} on * {@link BrandTheme#invoiceModern()}, rendering the shared * {@link InvoiceDocumentSpec} sample on the cream page background. * diff --git a/examples/src/main/java/com/demcha/examples/templates/invoice/v2/ModernInvoiceV2Example.java b/examples/src/main/java/com/demcha/examples/templates/invoice/v2/ModernInvoiceV2Example.java index b043d777..136a2088 100644 --- a/examples/src/main/java/com/demcha/examples/templates/invoice/v2/ModernInvoiceV2Example.java +++ b/examples/src/main/java/com/demcha/examples/templates/invoice/v2/ModernInvoiceV2Example.java @@ -1,4 +1,4 @@ -package com.demcha.examples.templates.invoice.v2; +package com.demcha.examples.templates.invoice; import com.demcha.compose.GraphCompose; import com.demcha.compose.document.api.DocumentPageSize; @@ -6,7 +6,7 @@ import com.demcha.compose.document.templates.api.DocumentTemplate; import com.demcha.compose.document.templates.core.theme.BrandTheme; import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec; -import com.demcha.compose.document.templates.invoice.v2.presets.ModernInvoice; +import com.demcha.compose.document.templates.invoice.presets.ModernInvoice; import com.demcha.examples.support.ExampleDataFactory; import com.demcha.examples.support.ExampleOutputPaths; diff --git a/src/main/java/com/demcha/compose/document/templates/data/invoice/package-info.java b/src/main/java/com/demcha/compose/document/templates/data/invoice/package-info.java index c12007da..9a1c2366 100644 --- a/src/main/java/com/demcha/compose/document/templates/data/invoice/package-info.java +++ b/src/main/java/com/demcha/compose/document/templates/data/invoice/package-info.java @@ -1,5 +1,5 @@ /** * Shared, render-neutral invoice document specs and supporting data - * records, consumed by the layered {@code invoice.v2} presets. + * records, consumed by the layered {@code invoice.presets} presets. */ package com.demcha.compose.document.templates.data.invoice; diff --git a/src/main/java/com/demcha/compose/document/templates/invoice/package-info.java b/src/main/java/com/demcha/compose/document/templates/invoice/package-info.java index 3fd32e2a..046add26 100644 --- a/src/main/java/com/demcha/compose/document/templates/invoice/package-info.java +++ b/src/main/java/com/demcha/compose/document/templates/invoice/package-info.java @@ -1,10 +1,9 @@ /** * Invoice template family. * - *

The shipping invoice surface is the layered preset stack under - * {@code invoice.v2}, built on the shared {@code templates.core} layer and a - * {@code BrandTheme}. {@code invoice.v2.presets.ModernInvoice} is the - * reference preset.

+ *

The invoice surface is a layered preset stack built on the shared + * {@code templates.core} layer and a {@code BrandTheme}. + * {@code invoice.presets.ModernInvoice} is the reference preset.

* * @since 1.6.0 */ diff --git a/src/main/java/com/demcha/compose/document/templates/invoice/v2/presets/ModernInvoice.java b/src/main/java/com/demcha/compose/document/templates/invoice/presets/ModernInvoice.java similarity index 99% rename from src/main/java/com/demcha/compose/document/templates/invoice/v2/presets/ModernInvoice.java rename to src/main/java/com/demcha/compose/document/templates/invoice/presets/ModernInvoice.java index 4afe5ec2..660e8d31 100644 --- a/src/main/java/com/demcha/compose/document/templates/invoice/v2/presets/ModernInvoice.java +++ b/src/main/java/com/demcha/compose/document/templates/invoice/presets/ModernInvoice.java @@ -1,4 +1,4 @@ -package com.demcha.compose.document.templates.invoice.v2.presets; +package com.demcha.compose.document.templates.invoice.presets; import com.demcha.compose.document.api.DocumentSession; import com.demcha.compose.document.dsl.TableBuilder; diff --git a/src/main/java/com/demcha/compose/document/templates/invoice/v2/presets/package-info.java b/src/main/java/com/demcha/compose/document/templates/invoice/presets/package-info.java similarity index 91% rename from src/main/java/com/demcha/compose/document/templates/invoice/v2/presets/package-info.java rename to src/main/java/com/demcha/compose/document/templates/invoice/presets/package-info.java index cc8982c4..2033c3a3 100644 --- a/src/main/java/com/demcha/compose/document/templates/invoice/v2/presets/package-info.java +++ b/src/main/java/com/demcha/compose/document/templates/invoice/presets/package-info.java @@ -14,4 +14,4 @@ * * @since 2.0.0 */ -package com.demcha.compose.document.templates.invoice.v2.presets; +package com.demcha.compose.document.templates.invoice.presets; diff --git a/src/main/java/com/demcha/compose/document/templates/proposal/v2/presets/ModernProposal.java b/src/main/java/com/demcha/compose/document/templates/proposal/v2/presets/ModernProposal.java index 45f064c4..032231f9 100644 --- a/src/main/java/com/demcha/compose/document/templates/proposal/v2/presets/ModernProposal.java +++ b/src/main/java/com/demcha/compose/document/templates/proposal/v2/presets/ModernProposal.java @@ -27,7 +27,7 @@ * *

It composes a proposal on a * {@link com.demcha.compose.document.templates.core.theme.BrandTheme} - * plus the canonical DSL, mirroring the {@code invoice.v2} preset shape: + * plus the canonical DSL, mirroring the {@code invoice.presets} preset shape: * a {@code create(BrandTheme)} factory returns a thin * {@link DocumentTemplate} whose {@code compose} sequences a hero panel, * an executive-summary panel, the FROM / TO parties, the body sections, diff --git a/src/main/java/com/demcha/compose/document/templates/proposal/v2/presets/package-info.java b/src/main/java/com/demcha/compose/document/templates/proposal/v2/presets/package-info.java index 072a2e01..ba223a03 100644 --- a/src/main/java/com/demcha/compose/document/templates/proposal/v2/presets/package-info.java +++ b/src/main/java/com/demcha/compose/document/templates/proposal/v2/presets/package-info.java @@ -3,7 +3,7 @@ * on a {@link com.demcha.compose.document.templates.core.theme.BrandTheme} * plus the canonical DSL. * - *

This package mirrors {@code invoice.v2.presets}: each preset is a + *

This package mirrors {@code invoice.presets}: each preset is a * {@code final} class with a {@code create(BrandTheme)} factory returning * a {@link com.demcha.compose.document.templates.api.DocumentTemplate} * parameterised on diff --git a/src/test/java/com/demcha/compose/document/templates/invoice/v2/presets/InvoiceV2VisualParityTest.java b/src/test/java/com/demcha/compose/document/templates/invoice/presets/InvoiceV2VisualParityTest.java similarity index 98% rename from src/test/java/com/demcha/compose/document/templates/invoice/v2/presets/InvoiceV2VisualParityTest.java rename to src/test/java/com/demcha/compose/document/templates/invoice/presets/InvoiceV2VisualParityTest.java index 3e04254d..05c05ba7 100644 --- a/src/test/java/com/demcha/compose/document/templates/invoice/v2/presets/InvoiceV2VisualParityTest.java +++ b/src/test/java/com/demcha/compose/document/templates/invoice/presets/InvoiceV2VisualParityTest.java @@ -1,4 +1,4 @@ -package com.demcha.compose.document.templates.invoice.v2.presets; +package com.demcha.compose.document.templates.invoice.presets; import com.demcha.compose.GraphCompose; import com.demcha.compose.document.api.DocumentPageSize; diff --git a/src/test/java/com/demcha/compose/document/templates/invoice/v2/presets/ModernInvoiceSmokeTest.java b/src/test/java/com/demcha/compose/document/templates/invoice/presets/ModernInvoiceSmokeTest.java similarity index 97% rename from src/test/java/com/demcha/compose/document/templates/invoice/v2/presets/ModernInvoiceSmokeTest.java rename to src/test/java/com/demcha/compose/document/templates/invoice/presets/ModernInvoiceSmokeTest.java index f02aafda..f1a9d4e8 100644 --- a/src/test/java/com/demcha/compose/document/templates/invoice/v2/presets/ModernInvoiceSmokeTest.java +++ b/src/test/java/com/demcha/compose/document/templates/invoice/presets/ModernInvoiceSmokeTest.java @@ -1,4 +1,4 @@ -package com.demcha.compose.document.templates.invoice.v2.presets; +package com.demcha.compose.document.templates.invoice.presets; import com.demcha.compose.GraphCompose; import com.demcha.compose.document.api.DocumentPageSize; @@ -13,7 +13,7 @@ import static org.assertj.core.api.Assertions.assertThat; /** - * Smoke test for the layered {@code invoice.v2} pipeline through + * Smoke test for the layered invoice pipeline through * {@link ModernInvoice} — proves the preset renders an * {@link InvoiceDocumentSpec} end-to-end on a {@link BrandTheme}, via * both factory variants, with any theme, and on an empty invoice. diff --git a/src/test/java/com/demcha/documentation/DocumentationExamplesTest.java b/src/test/java/com/demcha/documentation/DocumentationExamplesTest.java index 14e8c749..c2676a6b 100644 --- a/src/test/java/com/demcha/documentation/DocumentationExamplesTest.java +++ b/src/test/java/com/demcha/documentation/DocumentationExamplesTest.java @@ -6,7 +6,7 @@ import com.demcha.compose.document.image.DocumentImageFitMode; import com.demcha.compose.document.templates.api.DocumentTemplate; import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec; -import com.demcha.compose.document.templates.invoice.v2.presets.ModernInvoice; +import com.demcha.compose.document.templates.invoice.presets.ModernInvoice; import com.demcha.compose.document.style.DocumentColor; import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.style.DocumentStroke; diff --git a/src/test/java/com/demcha/testing/visual/HttpStreamingDemoTest.java b/src/test/java/com/demcha/testing/visual/HttpStreamingDemoTest.java index 279343de..03b5d464 100644 --- a/src/test/java/com/demcha/testing/visual/HttpStreamingDemoTest.java +++ b/src/test/java/com/demcha/testing/visual/HttpStreamingDemoTest.java @@ -6,7 +6,7 @@ import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.templates.core.theme.BrandTheme; import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec; -import com.demcha.compose.document.templates.invoice.v2.presets.ModernInvoice; +import com.demcha.compose.document.templates.invoice.presets.ModernInvoice; import com.demcha.testing.VisualTestOutputs; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/demcha/testing/visual/LayoutSnapshotRegressionDemoTest.java b/src/test/java/com/demcha/testing/visual/LayoutSnapshotRegressionDemoTest.java index 9a374ce9..49fb7a6c 100644 --- a/src/test/java/com/demcha/testing/visual/LayoutSnapshotRegressionDemoTest.java +++ b/src/test/java/com/demcha/testing/visual/LayoutSnapshotRegressionDemoTest.java @@ -7,7 +7,7 @@ import com.demcha.compose.document.style.DocumentInsets; import com.demcha.compose.document.templates.core.theme.BrandTheme; import com.demcha.compose.document.templates.data.invoice.InvoiceDocumentSpec; -import com.demcha.compose.document.templates.invoice.v2.presets.ModernInvoice; +import com.demcha.compose.document.templates.invoice.presets.ModernInvoice; import com.demcha.compose.testing.layout.LayoutSnapshotJson; import org.junit.jupiter.api.Test;