From fb48c3b227ea61a40ad149b34732d4f4130eb1bc Mon Sep 17 00:00:00 2001 From: Abel Salgado Romero Date: Wed, 14 Jun 2023 22:45:32 +0200 Subject: [PATCH] Fix Builders Fix to_dir setting in tests Fix baseDir pathing in site converter --- CHANGELOG.adoc | 1 + .../site/AsciidoctorConverterDoxiaParser.java | 8 ++-- .../SiteConversionConfigurationParser.java | 40 ++++++++++--------- .../maven/AsciidoctorMojoExtensionsTest.java | 2 + .../asciidoctor/maven/io/TestFilesHelper.java | 10 ++++- .../ChangeAttributeValuePreprocessor.java | 4 +- .../test/processors/FailingPreprocessor.java | 3 +- .../ManpageInlineMacroProcessor.java | 12 +++--- .../test/processors/UriIncludeProcessor.java | 2 +- pom.xml | 2 +- 10 files changed, 51 insertions(+), 33 deletions(-) diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 38481ef0..63b86624 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -16,6 +16,7 @@ For a detailed view of what has changed, refer to the {uri-repo}/commits/main[co Build / Infrastructure:: * Fix javadoc check flake in CI (#814) + * Bump AsciidoctorJ to v3.0.0 (#651) == v3.0.0 (2024-01-30) diff --git a/asciidoctor-converter-doxia-module/src/main/java/org/asciidoctor/maven/site/AsciidoctorConverterDoxiaParser.java b/asciidoctor-converter-doxia-module/src/main/java/org/asciidoctor/maven/site/AsciidoctorConverterDoxiaParser.java index d2f8af37..2f4740a2 100644 --- a/asciidoctor-converter-doxia-module/src/main/java/org/asciidoctor/maven/site/AsciidoctorConverterDoxiaParser.java +++ b/asciidoctor-converter-doxia-module/src/main/java/org/asciidoctor/maven/site/AsciidoctorConverterDoxiaParser.java @@ -13,7 +13,9 @@ import org.apache.maven.doxia.sink.Sink; import org.apache.maven.project.MavenProject; import org.asciidoctor.Asciidoctor; +import org.asciidoctor.Attributes; import org.asciidoctor.AttributesBuilder; +import org.asciidoctor.Options; import org.asciidoctor.OptionsBuilder; import org.asciidoctor.SafeMode; import org.asciidoctor.maven.log.LogHandler; @@ -128,14 +130,14 @@ protected File resolveSiteDirectory(MavenProject project, Xpp3Dom siteConfig) { } protected OptionsBuilder defaultOptions(File siteDirectory) { - return OptionsBuilder.options() + return Options.builder() .backend("xhtml") .safe(SafeMode.UNSAFE) - .baseDir(new File(siteDirectory, ROLE_HINT)); + .baseDir(new File(siteDirectory, ROLE_HINT).getAbsoluteFile()); } protected AttributesBuilder defaultAttributes() { - return AttributesBuilder.attributes() + return Attributes.builder() .attribute("idprefix", "@") .attribute("showtitle", "@"); } diff --git a/asciidoctor-maven-commons/src/main/java/org/asciidoctor/maven/site/SiteConversionConfigurationParser.java b/asciidoctor-maven-commons/src/main/java/org/asciidoctor/maven/site/SiteConversionConfigurationParser.java index 05f10b7d..840184e5 100644 --- a/asciidoctor-maven-commons/src/main/java/org/asciidoctor/maven/site/SiteConversionConfigurationParser.java +++ b/asciidoctor-maven-commons/src/main/java/org/asciidoctor/maven/site/SiteConversionConfigurationParser.java @@ -1,15 +1,7 @@ package org.asciidoctor.maven.site; -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.stream.Collectors; -import java.util.stream.Stream; - import org.apache.maven.project.MavenProject; +import org.asciidoctor.Attributes; import org.asciidoctor.AttributesBuilder; import org.asciidoctor.Options; import org.asciidoctor.OptionsBuilder; @@ -17,6 +9,14 @@ import org.asciidoctor.maven.commons.StringUtils; import org.codehaus.plexus.util.xml.Xpp3Dom; +import java.io.File; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import static org.asciidoctor.maven.commons.StringUtils.isNotBlank; public class SiteConversionConfigurationParser { @@ -33,17 +33,21 @@ public SiteConversionConfiguration processAsciiDocConfig(Xpp3Dom siteConfig, AsciidoctorHelper.addProperties(project.getProperties(), presetAttributes); - final Xpp3Dom siteConfiguration = Optional.ofNullable(siteConfig) - .map(sc -> sc.getChild("asciidoc")) - .orElse(null); + final Attributes attributes = presetAttributes.build(); + + if (siteConfig == null) { + final Options options = presetOptions.attributes(attributes).build(); + return new SiteConversionConfiguration(options, Collections.emptyList()); + } - if (siteConfiguration == null) { - final OptionsBuilder options = presetOptions.attributes(presetAttributes.build()); - return new SiteConversionConfiguration(options.build(), Collections.emptyList()); + final Xpp3Dom asciidocConfig = siteConfig.getChild("asciidoc"); + if (asciidocConfig == null) { + final Options options = presetOptions.attributes(attributes).build(); + return new SiteConversionConfiguration(options, Collections.emptyList()); } final List gemsToRequire = new ArrayList<>(); - for (Xpp3Dom asciidocOpt : siteConfiguration.getChildren()) { + for (Xpp3Dom asciidocOpt : asciidocConfig.getChildren()) { String optName = asciidocOpt.getName(); if ("requires".equals(optName)) { @@ -83,12 +87,12 @@ public SiteConversionConfiguration processAsciiDocConfig(Xpp3Dom siteConfig, } } - final Options options = presetOptions.attributes(presetAttributes.build()).build(); + final Options options = presetOptions.attributes(attributes).build(); return new SiteConversionConfiguration(options, gemsToRequire); } private File resolveProjectDir(MavenProject project, String path) { final File filePath = new File(path); - return !filePath.isAbsolute() ? new File(project.getBasedir(), filePath.toString()): filePath; + return !filePath.isAbsolute() ? new File(project.getBasedir(), filePath.toString()).getAbsoluteFile() : filePath; } } diff --git a/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/AsciidoctorMojoExtensionsTest.java b/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/AsciidoctorMojoExtensionsTest.java index d7b1d3d6..22088e79 100644 --- a/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/AsciidoctorMojoExtensionsTest.java +++ b/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/AsciidoctorMojoExtensionsTest.java @@ -22,6 +22,7 @@ import static java.util.Collections.singletonList; import static org.asciidoctor.maven.io.TestFilesHelper.newOutputTestDirectory; +import static org.asciidoctor.maven.test.TestUtils.ResourceBuilder.excludeAll; import static org.asciidoctor.maven.test.TestUtils.mockAsciidoctorMojo; import static org.assertj.core.api.Assertions.assertThat; @@ -167,6 +168,7 @@ void should_convert_to_html_with_a_preprocessor() throws MojoFailureException, M mojo.backend = "html"; mojo.sourceDirectory = srcDir; mojo.sourceDocumentName = "processors-sample.adoc"; + mojo.resources = excludeAll(); mojo.outputDirectory = outputDir; mojo.standalone = true; mojo.extensions = Arrays.asList(extensionConfiguration(ChangeAttributeValuePreprocessor.class)); diff --git a/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/io/TestFilesHelper.java b/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/io/TestFilesHelper.java index a48297ea..3e4aca21 100644 --- a/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/io/TestFilesHelper.java +++ b/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/io/TestFilesHelper.java @@ -11,11 +11,17 @@ public class TestFilesHelper { public static final String TEST_OUTPUT_BASE_PATH = "target/test-outputs/"; public static File newOutputTestDirectory() { - return createDirectory(TEST_OUTPUT_BASE_PATH + UUID.randomUUID()); + return normalize(createDirectory(TEST_OUTPUT_BASE_PATH + UUID.randomUUID())); } public static File newOutputTestDirectory(String subDir) { - return createDirectory(TEST_OUTPUT_BASE_PATH + subDir + "/" + UUID.randomUUID()); + return normalize(createDirectory(TEST_OUTPUT_BASE_PATH + subDir + "/" + UUID.randomUUID())); + } + + // Since v3.0.0, path must be absolute https://github.com/asciidoctor/asciidoctorj/pull/1249. + // Note: in real Mojo execution, paths are always absolute. + private static File normalize(File file) { + return file.getAbsoluteFile(); } private static File createDirectory(String path) { diff --git a/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/ChangeAttributeValuePreprocessor.java b/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/ChangeAttributeValuePreprocessor.java index f0e7b078..9b41b68a 100644 --- a/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/ChangeAttributeValuePreprocessor.java +++ b/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/ChangeAttributeValuePreprocessor.java @@ -5,6 +5,7 @@ import org.asciidoctor.ast.Document; import org.asciidoctor.extension.Preprocessor; import org.asciidoctor.extension.PreprocessorReader; +import org.asciidoctor.extension.Reader; public class ChangeAttributeValuePreprocessor extends Preprocessor { @@ -16,9 +17,10 @@ public ChangeAttributeValuePreprocessor(Map config) { } @Override - public void process(Document document, PreprocessorReader reader) { + public Reader process(Document document, PreprocessorReader reader) { System.out.println("Processing " + this.getClass().getSimpleName()); System.out.println("Processing: blocks found: " + document.getBlocks().size()); document.getAttributes().put("author", AUTHOR_NAME); + return reader; } } diff --git a/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/FailingPreprocessor.java b/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/FailingPreprocessor.java index 35a2183d..bf01c758 100644 --- a/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/FailingPreprocessor.java +++ b/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/FailingPreprocessor.java @@ -5,6 +5,7 @@ import org.asciidoctor.ast.Document; import org.asciidoctor.extension.Preprocessor; import org.asciidoctor.extension.PreprocessorReader; +import org.asciidoctor.extension.Reader; public class FailingPreprocessor extends Preprocessor { @@ -14,7 +15,7 @@ public FailingPreprocessor(Map config) { } @Override - public void process(Document document, PreprocessorReader reader) { + public Reader process(Document document, PreprocessorReader reader) { System.out.println("Processing " + this.getClass().getSimpleName()); System.out.println("Processing: blocks found: " + document.getBlocks().size()); throw new RuntimeException("That's all folks"); diff --git a/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/ManpageInlineMacroProcessor.java b/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/ManpageInlineMacroProcessor.java index 9d5097e3..d05c95d7 100644 --- a/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/ManpageInlineMacroProcessor.java +++ b/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/ManpageInlineMacroProcessor.java @@ -1,11 +1,12 @@ package org.asciidoctor.maven.test.processors; +import org.asciidoctor.ast.PhraseNode; +import org.asciidoctor.ast.StructuralNode; +import org.asciidoctor.extension.InlineMacroProcessor; + import java.util.HashMap; import java.util.Map; -import org.asciidoctor.ast.ContentNode; -import org.asciidoctor.extension.InlineMacroProcessor; - public class ManpageInlineMacroProcessor extends InlineMacroProcessor { public ManpageInlineMacroProcessor(String macroName) { @@ -13,11 +14,10 @@ public ManpageInlineMacroProcessor(String macroName) { } @Override - public String process(ContentNode parent, String target, Map attributes) { - + public PhraseNode process(StructuralNode parent, String target, Map attributes) { final Map options = new HashMap<>(); options.put("type", ":link"); options.put("target", target + ".html"); - return createPhraseNode(parent, "anchor", target, attributes, options).convert(); + return createPhraseNode(parent, "anchor", target, attributes, options); } } diff --git a/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/UriIncludeProcessor.java b/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/UriIncludeProcessor.java index a43ce01c..f6190960 100644 --- a/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/UriIncludeProcessor.java +++ b/asciidoctor-maven-plugin/src/test/java/org/asciidoctor/maven/test/processors/UriIncludeProcessor.java @@ -28,7 +28,7 @@ public void process(Document document, PreprocessorReader reader, String target, Map attributes) { System.out.println("Processing " + this.getClass().getSimpleName()); final String content = readContent(target); - reader.push_include(content, target, target, 1, attributes); + reader.pushInclude(content, target, target, 1, attributes); } private String readContent(String target) { diff --git a/pom.xml b/pom.xml index 162351d7..b0ff0722 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ 3.9.9 1.12.0 2.2.0 - 2.5.13 + 3.0.0 9.4.6.0