From 3ee67a6b08551af5ac2b6c97fa55c408c83ba108 Mon Sep 17 00:00:00 2001 From: Mark Raynsford Date: Sat, 15 Jan 2022 17:35:05 +0000 Subject: [PATCH 1/5] Mark 1.4.0-SNAPSHOT --- com.io7m.xstructural.api/pom.xml | 2 +- com.io7m.xstructural.cmdline/pom.xml | 2 +- com.io7m.xstructural.documentation/pom.xml | 2 +- com.io7m.xstructural.tests/pom.xml | 2 +- com.io7m.xstructural.vanilla/pom.xml | 2 +- com.io7m.xstructural.xml/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/com.io7m.xstructural.api/pom.xml b/com.io7m.xstructural.api/pom.xml index 52d10c7..3b92152 100644 --- a/com.io7m.xstructural.api/pom.xml +++ b/com.io7m.xstructural.api/pom.xml @@ -9,7 +9,7 @@ com.io7m.xstructural com.io7m.xstructural - 1.3.0 + 1.4.0-SNAPSHOT com.io7m.xstructural.api diff --git a/com.io7m.xstructural.cmdline/pom.xml b/com.io7m.xstructural.cmdline/pom.xml index f4cef1b..5645fd4 100644 --- a/com.io7m.xstructural.cmdline/pom.xml +++ b/com.io7m.xstructural.cmdline/pom.xml @@ -9,7 +9,7 @@ com.io7m.xstructural com.io7m.xstructural - 1.3.0 + 1.4.0-SNAPSHOT com.io7m.xstructural.cmdline diff --git a/com.io7m.xstructural.documentation/pom.xml b/com.io7m.xstructural.documentation/pom.xml index ac4538a..464e5d5 100644 --- a/com.io7m.xstructural.documentation/pom.xml +++ b/com.io7m.xstructural.documentation/pom.xml @@ -9,7 +9,7 @@ com.io7m.xstructural com.io7m.xstructural - 1.3.0 + 1.4.0-SNAPSHOT com.io7m.xstructural.documentation diff --git a/com.io7m.xstructural.tests/pom.xml b/com.io7m.xstructural.tests/pom.xml index 0f1391e..8c8450e 100644 --- a/com.io7m.xstructural.tests/pom.xml +++ b/com.io7m.xstructural.tests/pom.xml @@ -8,7 +8,7 @@ com.io7m.xstructural com.io7m.xstructural - 1.3.0 + 1.4.0-SNAPSHOT com.io7m.xstructural.tests diff --git a/com.io7m.xstructural.vanilla/pom.xml b/com.io7m.xstructural.vanilla/pom.xml index db010b1..622021f 100644 --- a/com.io7m.xstructural.vanilla/pom.xml +++ b/com.io7m.xstructural.vanilla/pom.xml @@ -9,7 +9,7 @@ com.io7m.xstructural com.io7m.xstructural - 1.3.0 + 1.4.0-SNAPSHOT com.io7m.xstructural.vanilla diff --git a/com.io7m.xstructural.xml/pom.xml b/com.io7m.xstructural.xml/pom.xml index e301e42..c92cdad 100644 --- a/com.io7m.xstructural.xml/pom.xml +++ b/com.io7m.xstructural.xml/pom.xml @@ -6,7 +6,7 @@ com.io7m.xstructural com.io7m.xstructural - 1.3.0 + 1.4.0-SNAPSHOT com.io7m.xstructural.xml diff --git a/pom.xml b/pom.xml index c097406..6c7a747 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ com.io7m.xstructural com.io7m.xstructural - 1.3.0 + 1.4.0-SNAPSHOT pom Structural document format From 841681fc0e6b48dd6a88f537356c6a01614891f0 Mon Sep 17 00:00:00 2001 From: Mark Raynsford Date: Thu, 3 Feb 2022 22:02:36 +0000 Subject: [PATCH 2/5] Fix comments This fixes an issue where comments in a file would cause processing to fail. Affects: https://github.com/io7m/xstructural/issues/18 --- README-CHANGES.xml | 13 +++++++++++-- .../com/io7m/xstructural/tests/example0_70.xml | 4 ++++ .../com/io7m/xstructural/tests/example0_80.xml | 4 ++++ .../com/io7m/xstructural/tests/example1_70.xml | 4 ++++ .../com/io7m/xstructural/tests/example1_80.xml | 4 ++++ .../com/io7m/xstructural/tests/example2_70.xml | 4 ++++ .../com/io7m/xstructural/tests/example2_80.xml | 4 ++++ .../com/io7m/xstructural/tests/example3_70.xml | 4 ++++ .../com/io7m/xstructural/tests/example3_80.xml | 4 ++++ .../xstructural/xml/s7/xstructural7-web-multi.xsl | 2 ++ .../xstructural/xml/s7/xstructural7-web-single.xsl | 2 ++ .../xstructural/xml/s8/xstructural8-web-multi.xsl | 2 ++ .../xstructural/xml/s8/xstructural8-web-single.xsl | 2 ++ 13 files changed, 51 insertions(+), 2 deletions(-) diff --git a/README-CHANGES.xml b/README-CHANGES.xml index b43acba..211707d 100644 --- a/README-CHANGES.xml +++ b/README-CHANGES.xml @@ -24,14 +24,23 @@ - + - + + + + + + + + + + diff --git a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example0_70.xml b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example0_70.xml index fbbd347..122a9f0 100644 --- a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example0_70.xml +++ b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example0_70.xml @@ -1,10 +1,14 @@ + + + + A Contributor A Creator diff --git a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example0_80.xml b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example0_80.xml index 3cb05a6..0f2fcb7 100644 --- a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example0_80.xml +++ b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example0_80.xml @@ -1,10 +1,14 @@ + + + + A Contributor A Creator diff --git a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example1_70.xml b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example1_70.xml index 65432e3..40cff89 100644 --- a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example1_70.xml +++ b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example1_70.xml @@ -1,10 +1,14 @@ + + + + A Contributor A Creator diff --git a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example1_80.xml b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example1_80.xml index 41c9cc8..6ff5332 100644 --- a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example1_80.xml +++ b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example1_80.xml @@ -1,10 +1,14 @@ + + + + A Contributor A Creator diff --git a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example2_70.xml b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example2_70.xml index 316de3c..f6d8c1a 100644 --- a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example2_70.xml +++ b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example2_70.xml @@ -1,10 +1,14 @@ + + + + A Contributor A Creator diff --git a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example2_80.xml b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example2_80.xml index 6f143ec..6d8adb0 100644 --- a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example2_80.xml +++ b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example2_80.xml @@ -1,10 +1,14 @@ + + + + A Contributor A Creator diff --git a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example3_70.xml b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example3_70.xml index 69e95ac..dbd0b1d 100644 --- a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example3_70.xml +++ b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example3_70.xml @@ -1,10 +1,14 @@ + + + + A Contributor A Creator diff --git a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example3_80.xml b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example3_80.xml index 2e81d78..cc6e954 100644 --- a/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example3_80.xml +++ b/com.io7m.xstructural.tests/src/test/resources/com/io7m/xstructural/tests/example3_80.xml @@ -1,10 +1,14 @@ + + + + A Contributor A Creator diff --git a/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s7/xstructural7-web-multi.xsl b/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s7/xstructural7-web-multi.xsl index 949e363..ce9af1b 100644 --- a/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s7/xstructural7-web-multi.xsl +++ b/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s7/xstructural7-web-multi.xsl @@ -37,6 +37,8 @@ select="concat('Unexpectedly reached catch-all template: ', namespace-uri(.), ':', node-name(.))"/> + + diff --git a/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s7/xstructural7-web-single.xsl b/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s7/xstructural7-web-single.xsl index 0798ea6..96095d7 100644 --- a/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s7/xstructural7-web-single.xsl +++ b/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s7/xstructural7-web-single.xsl @@ -36,6 +36,8 @@ select="concat('Unexpectedly reached catch-all template: ', namespace-uri(.), ':', node-name(.))"/> + + diff --git a/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s8/xstructural8-web-multi.xsl b/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s8/xstructural8-web-multi.xsl index f702b98..3e260c0 100644 --- a/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s8/xstructural8-web-multi.xsl +++ b/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s8/xstructural8-web-multi.xsl @@ -37,6 +37,8 @@ select="concat('Unexpectedly reached catch-all template: ', namespace-uri(.), ':', node-name(.))"/> + + diff --git a/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s8/xstructural8-web-single.xsl b/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s8/xstructural8-web-single.xsl index a880400..8f6af26 100644 --- a/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s8/xstructural8-web-single.xsl +++ b/com.io7m.xstructural.xml/src/main/xsl/com/io7m/xstructural/xml/s8/xstructural8-web-single.xsl @@ -36,6 +36,8 @@ select="concat('Unexpectedly reached catch-all template: ', namespace-uri(.), ':', node-name(.))"/> + + From 5ea7f66441f5b11fc69acd1992135c848603d635 Mon Sep 17 00:00:00 2001 From: Mark Raynsford Date: Thu, 3 Feb 2022 22:14:10 +0000 Subject: [PATCH 3/5] Ensure EPUB files are replaced This fixes an issue where EPUB compilation would fail to execute if destination files already existed. Fix: https://github.com/io7m/xstructural/issues/20 --- README-CHANGES.xml | 9 ++- .../xstructural/tests/XSCommandLineTest.java | 71 +++++++++++++++++++ .../xstructural/tests/XSTestDirectories.java | 3 +- .../vanilla/internal/XSEPUBCreator.java | 17 ++++- 4 files changed, 94 insertions(+), 6 deletions(-) diff --git a/README-CHANGES.xml b/README-CHANGES.xml index 211707d..0bbffce 100644 --- a/README-CHANGES.xml +++ b/README-CHANGES.xml @@ -34,13 +34,18 @@ - + - + + + + + + diff --git a/com.io7m.xstructural.tests/src/test/java/com/io7m/xstructural/tests/XSCommandLineTest.java b/com.io7m.xstructural.tests/src/test/java/com/io7m/xstructural/tests/XSCommandLineTest.java index 912a5af..54ee4f1 100644 --- a/com.io7m.xstructural.tests/src/test/java/com/io7m/xstructural/tests/XSCommandLineTest.java +++ b/com.io7m.xstructural.tests/src/test/java/com/io7m/xstructural/tests/XSCommandLineTest.java @@ -991,4 +991,75 @@ public void testTransformXHTMLEPUBOKExample0_80() "EPUB file exists" ); } + + @Test + public void testTransformXHTMLEPUBOKExampleTwice_80() + throws Exception + { + XSTestDirectories.resourceOf( + XSCommandLineTest.class, + this.sourceDirectory, + "poppy.jpg" + ); + XSTestDirectories.resourceOf( + XSCommandLineTest.class, + this.sourceDirectory, + "missing.jpg" + ); + XSTestDirectories.resourceOf( + XSCommandLineTest.class, + this.sourceDirectory, + "woods.jpg" + ); + + { + final var main = new Main(new String[]{ + "epub", + "--sourceFile", + XSTestDirectories.resourceOf( + XSCommandLineTest.class, + this.sourceDirectory, + "example0_80.xml") + .toString(), + "--outputDirectory", + this.outputDirectory.toString(), + "--traceFile", + this.directory.resolve("trace.xml").toString(), + "--messagesFile", + this.directory.resolve("messages.log").toString(), + "--verbose", + "trace" + }); + + final var capture = + XSOutputCaptured.capture(main::run); + + Assertions.assertEquals(0, main.exitCode()); + } + + { + final var main = new Main(new String[]{ + "epub", + "--sourceFile", + XSTestDirectories.resourceOf( + XSCommandLineTest.class, + this.sourceDirectory, + "example0_80.xml") + .toString(), + "--outputDirectory", + this.outputDirectory.toString(), + "--traceFile", + this.directory.resolve("trace.xml").toString(), + "--messagesFile", + this.directory.resolve("messages.log").toString(), + "--verbose", + "trace" + }); + + final var capture = + XSOutputCaptured.capture(main::run); + + Assertions.assertEquals(0, main.exitCode()); + } + } } diff --git a/com.io7m.xstructural.tests/src/test/java/com/io7m/xstructural/tests/XSTestDirectories.java b/com.io7m.xstructural.tests/src/test/java/com/io7m/xstructural/tests/XSTestDirectories.java index 5a5cc32..100c4c3 100644 --- a/com.io7m.xstructural.tests/src/test/java/com/io7m/xstructural/tests/XSTestDirectories.java +++ b/com.io7m.xstructural.tests/src/test/java/com/io7m/xstructural/tests/XSTestDirectories.java @@ -24,6 +24,7 @@ import java.nio.file.Files; import java.nio.file.NoSuchFileException; import java.nio.file.Path; +import java.nio.file.StandardCopyOption; import java.util.UUID; public final class XSTestDirectories @@ -70,7 +71,7 @@ public static Path resourceOf( LOGGER.debug("copy {} {}", name, target); try (var stream = url.openStream()) { - Files.copy(stream, target); + Files.copy(stream, target, StandardCopyOption.REPLACE_EXISTING); } return target; } diff --git a/com.io7m.xstructural.vanilla/src/main/java/com/io7m/xstructural/vanilla/internal/XSEPUBCreator.java b/com.io7m.xstructural.vanilla/src/main/java/com/io7m/xstructural/vanilla/internal/XSEPUBCreator.java index dd0ed8d..ce7c740 100644 --- a/com.io7m.xstructural.vanilla/src/main/java/com/io7m/xstructural/vanilla/internal/XSEPUBCreator.java +++ b/com.io7m.xstructural.vanilla/src/main/java/com/io7m/xstructural/vanilla/internal/XSEPUBCreator.java @@ -44,6 +44,10 @@ import java.util.zip.ZipEntry; import static java.nio.charset.StandardCharsets.UTF_8; +import static java.nio.file.StandardCopyOption.REPLACE_EXISTING; +import static java.nio.file.StandardOpenOption.CREATE; +import static java.nio.file.StandardOpenOption.TRUNCATE_EXISTING; +import static java.nio.file.StandardOpenOption.WRITE; /** * An EPUB creator. @@ -466,7 +470,7 @@ private void copyOEBPS() this.oebpsDirectory.resolve(file.getFileName().toString()); LOG.info("copy {} {}", file, outputFile); - Files.copy(file, outputFile); + Files.copy(file, outputFile, REPLACE_EXISTING); } } } @@ -488,7 +492,11 @@ private void writeContainerFile() throws IOException { try (var stream = resource("container.xml")) { - Files.copy(stream, this.metaDirectory.resolve("container.xml")); + Files.copy( + stream, + this.metaDirectory.resolve("container.xml"), + REPLACE_EXISTING + ); } } @@ -498,7 +506,10 @@ private void writeMimetypeFile() Files.writeString( this.epubDirectory.resolve("mimetype"), "application/epub+zip", - UTF_8 + UTF_8, + WRITE, + CREATE, + TRUNCATE_EXISTING ); } From 1be66cb0e5cc1c2b108c3fd2480669996595ea71 Mon Sep 17 00:00:00 2001 From: Mark Raynsford Date: Thu, 3 Feb 2022 22:23:11 +0000 Subject: [PATCH 4/5] Mark 1.4.0 --- README-CHANGES.xml | 4 ++-- com.io7m.xstructural.api/pom.xml | 2 +- com.io7m.xstructural.cmdline/pom.xml | 2 +- com.io7m.xstructural.documentation/pom.xml | 2 +- com.io7m.xstructural.tests/pom.xml | 2 +- com.io7m.xstructural.vanilla/pom.xml | 2 +- com.io7m.xstructural.xml/pom.xml | 2 +- pom.xml | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README-CHANGES.xml b/README-CHANGES.xml index 0bbffce..3f216dc 100644 --- a/README-CHANGES.xml +++ b/README-CHANGES.xml @@ -34,14 +34,14 @@ - + - + diff --git a/com.io7m.xstructural.api/pom.xml b/com.io7m.xstructural.api/pom.xml index 3b92152..927b242 100644 --- a/com.io7m.xstructural.api/pom.xml +++ b/com.io7m.xstructural.api/pom.xml @@ -9,7 +9,7 @@ com.io7m.xstructural com.io7m.xstructural - 1.4.0-SNAPSHOT + 1.4.0 com.io7m.xstructural.api diff --git a/com.io7m.xstructural.cmdline/pom.xml b/com.io7m.xstructural.cmdline/pom.xml index 5645fd4..d4f8be3 100644 --- a/com.io7m.xstructural.cmdline/pom.xml +++ b/com.io7m.xstructural.cmdline/pom.xml @@ -9,7 +9,7 @@ com.io7m.xstructural com.io7m.xstructural - 1.4.0-SNAPSHOT + 1.4.0 com.io7m.xstructural.cmdline diff --git a/com.io7m.xstructural.documentation/pom.xml b/com.io7m.xstructural.documentation/pom.xml index 464e5d5..e160ec6 100644 --- a/com.io7m.xstructural.documentation/pom.xml +++ b/com.io7m.xstructural.documentation/pom.xml @@ -9,7 +9,7 @@ com.io7m.xstructural com.io7m.xstructural - 1.4.0-SNAPSHOT + 1.4.0 com.io7m.xstructural.documentation diff --git a/com.io7m.xstructural.tests/pom.xml b/com.io7m.xstructural.tests/pom.xml index 8c8450e..dd5a7d5 100644 --- a/com.io7m.xstructural.tests/pom.xml +++ b/com.io7m.xstructural.tests/pom.xml @@ -8,7 +8,7 @@ com.io7m.xstructural com.io7m.xstructural - 1.4.0-SNAPSHOT + 1.4.0 com.io7m.xstructural.tests diff --git a/com.io7m.xstructural.vanilla/pom.xml b/com.io7m.xstructural.vanilla/pom.xml index 622021f..a457872 100644 --- a/com.io7m.xstructural.vanilla/pom.xml +++ b/com.io7m.xstructural.vanilla/pom.xml @@ -9,7 +9,7 @@ com.io7m.xstructural com.io7m.xstructural - 1.4.0-SNAPSHOT + 1.4.0 com.io7m.xstructural.vanilla diff --git a/com.io7m.xstructural.xml/pom.xml b/com.io7m.xstructural.xml/pom.xml index c92cdad..574fc9c 100644 --- a/com.io7m.xstructural.xml/pom.xml +++ b/com.io7m.xstructural.xml/pom.xml @@ -6,7 +6,7 @@ com.io7m.xstructural com.io7m.xstructural - 1.4.0-SNAPSHOT + 1.4.0 com.io7m.xstructural.xml diff --git a/pom.xml b/pom.xml index 6c7a747..b446120 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ com.io7m.xstructural com.io7m.xstructural - 1.4.0-SNAPSHOT + 1.4.0 pom Structural document format From fbe4d2049158c1a8ac226fdb7f74e0d7fc1c778f Mon Sep 17 00:00:00 2001 From: Mark Raynsford Date: Thu, 3 Feb 2022 22:23:37 +0000 Subject: [PATCH 5/5] Mark previous version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b446120..e01b6af 100644 --- a/pom.xml +++ b/pom.xml @@ -29,7 +29,7 @@ 2.8.8 - 1.2.0 + 1.3.0 5.7.0