From c969dcb9dce83af621361d2645daea473b20d142 Mon Sep 17 00:00:00 2001 From: Abel Salgado Romero Date: Tue, 16 Apr 2024 23:23:37 +0200 Subject: [PATCH 1/6] WIP: added profiles and separated IT paths --- pom.xml | 14 +++- .../class-comments/invoker.properties | 0 src/it/{ => java-11}/class-comments/pom.xml | 0 .../src/main/java/example/StringUtils.java | 0 .../class-comments/validate.groovy | 0 .../java-17/class-comments/invoker.properties | 1 + src/it/java-17/class-comments/pom.xml | 54 ++++++++++++++++ .../src/main/java/example/StringUtils.java | 18 ++++++ src/it/java-17/class-comments/validate.groovy | 64 +++++++++++++++++++ 9 files changed, 149 insertions(+), 2 deletions(-) rename src/it/{ => java-11}/class-comments/invoker.properties (100%) rename src/it/{ => java-11}/class-comments/pom.xml (100%) rename src/it/{ => java-11}/class-comments/src/main/java/example/StringUtils.java (100%) rename src/it/{ => java-11}/class-comments/validate.groovy (100%) create mode 100644 src/it/java-17/class-comments/invoker.properties create mode 100644 src/it/java-17/class-comments/pom.xml create mode 100644 src/it/java-17/class-comments/src/main/java/example/StringUtils.java create mode 100644 src/it/java-17/class-comments/validate.groovy diff --git a/pom.xml b/pom.xml index 42dc2a8..b99b432 100644 --- a/pom.xml +++ b/pom.xml @@ -35,6 +35,7 @@ ${maven.build.timestamp} yyyy UTF-8 + src/it/java-11 @@ -230,7 +231,7 @@ src/**/*.java - src/it/**/*.* + ${integration-tests.path}/**/*.* 2013 @@ -245,6 +246,15 @@ + + java-17 + + src/it/java-17 + + + 17 + + java-17 + + 17 + src/it/java-17 + 17 + + + java-21 - 17 + 21 + + src/it/java-17 + 21 + + -J--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED + + -J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED + + -Xdoclint:all,-html,-accessibility + + org.asciidoctor.asciidoclet.Asciidoclet + + + org.asciidoctor + asciidoclet + @project.version@ + shaded + + + src/main/java/overview.adoc + + --base-dir ${project.basedir} + --attribute "project_name=${project.name}" + --attribute "project_description=${project.description}" + + + + + + diff --git a/src/it/java-21/class-comments/src/main/java/example/StringUtils.java b/src/it/java-21/class-comments/src/main/java/example/StringUtils.java new file mode 100644 index 0000000..58cbb9f --- /dev/null +++ b/src/it/java-21/class-comments/src/main/java/example/StringUtils.java @@ -0,0 +1,18 @@ +package example; + +/** + * Class comment for "{project_description}". + */ +public class StringUtils { + + /** + * This is a method comment. + * + * @param haystack the haystack + * @param needle it stings + * @return true if lucky + */ + public boolean contains(String haystack, String needle) { + return haystack.contains(needle); + } +} diff --git a/src/it/java-21/class-comments/validate.groovy b/src/it/java-21/class-comments/validate.groovy new file mode 100644 index 0000000..13eef85 --- /dev/null +++ b/src/it/java-21/class-comments/validate.groovy @@ -0,0 +1,69 @@ +import java.nio.file.Files +import java.nio.file.Path + +println("Running on: ${System.getProperty('java.version')}") +println("Running on: ${Runtime.class.getPackage().getImplementationVersion()}") +println("Running on: ${System.getenv('expected_java')}") +println("Running on: ${System.getProperty('expected_java')}") + + +def javadocExpectedPath = Path.of((String) basedir).resolve('target/site/apidocs') +def expectedJavadoc = javadocExpectedPath.resolve('example/StringUtils.html') + +if (Files.list(javadocExpectedPath).count() == 0) { + throw new Exception("${javadocExpectedPath.toFile().getAbsolutePath()} path cannot me empty") +} + +def javadocContent = Files.readString(expectedJavadoc) + +def expectClassDescription = Html.div(Html.p('Class comment for "Integration Test: generate Javadoc for class and method".'), 'block') +def expectMethodDescription = Html.div(Html.p('This is a method comment.'), 'block') + +assertStringContains(javadocContent, expectClassDescription) +assertStringContains(javadocContent, expectMethodDescription) + +def expectMethodArgument1 = Html.dd(Html.code('haystack') + " - the haystack") +def expectMethodArgument2 = Html.dd(Html.code('needle') + " - it stings") + +assertStringContains(javadocContent, expectMethodArgument1) +assertStringContains(javadocContent, expectMethodArgument2) + +def expectMethodReturn = Html.dt("Returns:") + "\n" + Html.dd('true if lucky') + +assertStringContains(javadocContent, expectMethodReturn) + + +void assertStringContains(String value, String expected) { + if (!value.contains(expected)) { + throw new Exception("'$expected' expected to be present") + } +} + +class Html { + + static String div(String text, String classname) { + return "
${text}
" + } + + static String span(String text, String classname) { + return "${text}" + } + + static String p(String text) { + return "

${text}

" + } + + static String code(String text) { + return "${text}" + } + + static String dd(String text) { + return "
${text}
" + } + + static String dt(String text) { + return "
${text}
" + } +} + +return true From 65db5d8b5e04b9474ae9d6759e087e512a151934 Mon Sep 17 00:00:00 2001 From: Abel Salgado Romero Date: Wed, 17 Apr 2024 23:32:46 +0200 Subject: [PATCH 4/6] cleanup --- src/it/java-11/class-comments/pom.xml | 1 - src/it/java-17/class-comments/pom.xml | 1 - .../java-21/class-comments/invoker.properties | 1 - src/it/java-21/class-comments/pom.xml | 54 --------------- .../src/main/java/example/StringUtils.java | 18 ----- src/it/java-21/class-comments/validate.groovy | 69 ------------------- 6 files changed, 144 deletions(-) delete mode 100644 src/it/java-21/class-comments/invoker.properties delete mode 100644 src/it/java-21/class-comments/pom.xml delete mode 100644 src/it/java-21/class-comments/src/main/java/example/StringUtils.java delete mode 100644 src/it/java-21/class-comments/validate.groovy diff --git a/src/it/java-11/class-comments/pom.xml b/src/it/java-11/class-comments/pom.xml index 7d5a731..f48014a 100644 --- a/src/it/java-11/class-comments/pom.xml +++ b/src/it/java-11/class-comments/pom.xml @@ -32,7 +32,6 @@ org.asciidoctor asciidoclet @project.version@ - shaded src/main/java/overview.adoc diff --git a/src/it/java-17/class-comments/pom.xml b/src/it/java-17/class-comments/pom.xml index 160411d..141aa4e 100644 --- a/src/it/java-17/class-comments/pom.xml +++ b/src/it/java-17/class-comments/pom.xml @@ -34,7 +34,6 @@ org.asciidoctor asciidoclet @project.version@ - shaded src/main/java/overview.adoc diff --git a/src/it/java-21/class-comments/invoker.properties b/src/it/java-21/class-comments/invoker.properties deleted file mode 100644 index cdbf44f..0000000 --- a/src/it/java-21/class-comments/invoker.properties +++ /dev/null @@ -1 +0,0 @@ -invoker.goals=clean javadoc:javadoc diff --git a/src/it/java-21/class-comments/pom.xml b/src/it/java-21/class-comments/pom.xml deleted file mode 100644 index 0b2a78f..0000000 --- a/src/it/java-21/class-comments/pom.xml +++ /dev/null @@ -1,54 +0,0 @@ - - 4.0.0 - - org.asciidoctor - test - 1.0.0-SNAPSHOT - Integration Test: generate Javadoc for class and method - - - UTF-8 - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 3.6.3 - - 11 - - -J--add-exports=jdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED - -J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED - - - -J--add-opens=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED - - -J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED - - -Xdoclint:all,-html,-accessibility - - org.asciidoctor.asciidoclet.Asciidoclet - - - org.asciidoctor - asciidoclet - @project.version@ - shaded - - - src/main/java/overview.adoc - - --base-dir ${project.basedir} - --attribute "project_name=${project.name}" - --attribute "project_description=${project.description}" - - - - - - diff --git a/src/it/java-21/class-comments/src/main/java/example/StringUtils.java b/src/it/java-21/class-comments/src/main/java/example/StringUtils.java deleted file mode 100644 index 58cbb9f..0000000 --- a/src/it/java-21/class-comments/src/main/java/example/StringUtils.java +++ /dev/null @@ -1,18 +0,0 @@ -package example; - -/** - * Class comment for "{project_description}". - */ -public class StringUtils { - - /** - * This is a method comment. - * - * @param haystack the haystack - * @param needle it stings - * @return true if lucky - */ - public boolean contains(String haystack, String needle) { - return haystack.contains(needle); - } -} diff --git a/src/it/java-21/class-comments/validate.groovy b/src/it/java-21/class-comments/validate.groovy deleted file mode 100644 index 13eef85..0000000 --- a/src/it/java-21/class-comments/validate.groovy +++ /dev/null @@ -1,69 +0,0 @@ -import java.nio.file.Files -import java.nio.file.Path - -println("Running on: ${System.getProperty('java.version')}") -println("Running on: ${Runtime.class.getPackage().getImplementationVersion()}") -println("Running on: ${System.getenv('expected_java')}") -println("Running on: ${System.getProperty('expected_java')}") - - -def javadocExpectedPath = Path.of((String) basedir).resolve('target/site/apidocs') -def expectedJavadoc = javadocExpectedPath.resolve('example/StringUtils.html') - -if (Files.list(javadocExpectedPath).count() == 0) { - throw new Exception("${javadocExpectedPath.toFile().getAbsolutePath()} path cannot me empty") -} - -def javadocContent = Files.readString(expectedJavadoc) - -def expectClassDescription = Html.div(Html.p('Class comment for "Integration Test: generate Javadoc for class and method".'), 'block') -def expectMethodDescription = Html.div(Html.p('This is a method comment.'), 'block') - -assertStringContains(javadocContent, expectClassDescription) -assertStringContains(javadocContent, expectMethodDescription) - -def expectMethodArgument1 = Html.dd(Html.code('haystack') + " - the haystack") -def expectMethodArgument2 = Html.dd(Html.code('needle') + " - it stings") - -assertStringContains(javadocContent, expectMethodArgument1) -assertStringContains(javadocContent, expectMethodArgument2) - -def expectMethodReturn = Html.dt("Returns:") + "\n" + Html.dd('true if lucky') - -assertStringContains(javadocContent, expectMethodReturn) - - -void assertStringContains(String value, String expected) { - if (!value.contains(expected)) { - throw new Exception("'$expected' expected to be present") - } -} - -class Html { - - static String div(String text, String classname) { - return "
${text}
" - } - - static String span(String text, String classname) { - return "${text}" - } - - static String p(String text) { - return "

${text}

" - } - - static String code(String text) { - return "${text}" - } - - static String dd(String text) { - return "
${text}
" - } - - static String dt(String text) { - return "
${text}
" - } -} - -return true From e99a778094eafe901e68eb4915e88819032bbf31 Mon Sep 17 00:00:00 2001 From: Abel Salgado Romero Date: Wed, 17 Apr 2024 23:41:27 +0200 Subject: [PATCH 5/6] Add 'fail-fast: false' to avoid pipelines cancelling --- .github/workflows/ci-development-branch.yml | 1 + .github/workflows/ci-maintenance-branch.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/ci-development-branch.yml b/.github/workflows/ci-development-branch.yml index 90093ff..ee4af98 100644 --- a/.github/workflows/ci-development-branch.yml +++ b/.github/workflows/ci-development-branch.yml @@ -20,6 +20,7 @@ on: jobs: build: strategy: + fail-fast: false matrix: os: - ubuntu-latest diff --git a/.github/workflows/ci-maintenance-branch.yml b/.github/workflows/ci-maintenance-branch.yml index a2f2f26..1cc72a5 100644 --- a/.github/workflows/ci-maintenance-branch.yml +++ b/.github/workflows/ci-maintenance-branch.yml @@ -20,6 +20,7 @@ on: jobs: build: strategy: + fail-fast: false matrix: os: - ubuntu-latest From 9c8022e6647a856c526fdd5e14a1b1ec66d414c1 Mon Sep 17 00:00:00 2001 From: Abel Salgado Romero Date: Thu, 18 Apr 2024 00:04:47 +0200 Subject: [PATCH 6/6] Fix Windows linebreaks --- src/it/java-11/class-comments/validate.groovy | 2 +- src/it/java-17/class-comments/pom.xml | 2 +- src/it/java-17/class-comments/validate.groovy | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/it/java-11/class-comments/validate.groovy b/src/it/java-11/class-comments/validate.groovy index d0aba15..33b00ea 100644 --- a/src/it/java-11/class-comments/validate.groovy +++ b/src/it/java-11/class-comments/validate.groovy @@ -27,7 +27,7 @@ def expectMethodArgument2 = Html.dd(Html.code('needle') + " - it stings") assertStringContains(javadocContent, expectMethodArgument1) assertStringContains(javadocContent, expectMethodArgument2) -def expectMethodReturn = Html.dt(Html.span("Returns:", "returnLabel")) + "\n" + Html.dd('true if lucky') +def expectMethodReturn = Html.dt(Html.span("Returns:", "returnLabel")) + System.lineSeparator() + Html.dd('true if lucky') assertStringContains(javadocContent, expectMethodReturn) diff --git a/src/it/java-17/class-comments/pom.xml b/src/it/java-17/class-comments/pom.xml index 141aa4e..c57326e 100644 --- a/src/it/java-17/class-comments/pom.xml +++ b/src/it/java-17/class-comments/pom.xml @@ -18,7 +18,7 @@ maven-javadoc-plugin 3.6.3 - 11 + 17 -J--add-exports=jdk.javadoc/jdk.javadoc.internal.tool=ALL-UNNAMED -J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED diff --git a/src/it/java-17/class-comments/validate.groovy b/src/it/java-17/class-comments/validate.groovy index 4b2f934..20ab1c1 100644 --- a/src/it/java-17/class-comments/validate.groovy +++ b/src/it/java-17/class-comments/validate.groovy @@ -27,7 +27,7 @@ def expectMethodArgument2 = Html.dd(Html.code('needle') + " - it stings") assertStringContains(javadocContent, expectMethodArgument1) assertStringContains(javadocContent, expectMethodArgument2) -def expectMethodReturn = Html.dt("Returns:") + "\n" + Html.dd('true if lucky') +def expectMethodReturn = Html.dt("Returns:") + System.lineSeparator() + Html.dd('true if lucky') assertStringContains(javadocContent, expectMethodReturn)