diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml
index aa4fa67..f778f97 100644
--- a/.github/workflows/bld.yml
+++ b/.github/workflows/bld.yml
@@ -1,15 +1,16 @@
name: bld-ci
-on: [ push, pull_request, workflow_dispatch ]
+on: [push, pull_request, workflow_dispatch]
jobs:
build-bld-project:
- runs-on: ubuntu-latest
-
strategy:
matrix:
- java-version: [ 17, 21, 22 ]
- kotlin-version: [ 1.19.24, 2.0.0 ]
+ java-version: [17, 21, 24]
+ kotlin-version: [1.9.25, 2.1.20]
+ os: [ ubuntu-latest, windows-latest, macos-latest ]
+
+ runs-on: ${{ matrix.os }}
steps:
- name: Checkout source repository
diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml
index e191f6d..88c2cd6 100644
--- a/.github/workflows/pages.yml
+++ b/.github/workflows/pages.yml
@@ -47,11 +47,11 @@ jobs:
uses: actions/configure-pages@v3
- name: Upload artifact
- uses: actions/upload-pages-artifact@v1
+ uses: actions/upload-pages-artifact@v3
with:
# Upload generated Javadocs repository
path: "build/javadoc/"
- name: Deploy to GitHub Pages
id: deployment
- uses: actions/deploy-pages@v1
+ uses: actions/deploy-pages@v4
diff --git a/.idea/icon.svg b/.idea/icon.svg
new file mode 100644
index 0000000..81220b4
--- /dev/null
+++ b/.idea/icon.svg
@@ -0,0 +1,13 @@
+
+
+
diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml
index 1d0172b..f9b1d1d 100644
--- a/.idea/libraries/bld.xml
+++ b/.idea/libraries/bld.xml
@@ -2,12 +2,12 @@
-
+
-
+
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 4c33beb..ba429d0 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -9,7 +9,7 @@
],
"java.configuration.updateBuildConfiguration": "automatic",
"java.project.referencedLibraries": [
- "${HOME}/.bld/dist/bld-2.1.0.jar",
+ "${HOME}/.bld/dist/bld-2.2.1.jar",
"lib/**/*.jar"
]
}
diff --git a/README.md b/README.md
index cb9d556..2e8db74 100644
--- a/README.md
+++ b/README.md
@@ -2,13 +2,19 @@
[](https://opensource.org/licenses/Apache-2.0)
[](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
-[](https://rife2.com/bld)
+[](https://rife2.com/bld)
[](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-dokka)
[](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-dokka)
[](https://github.com/rife2/bld-dokka/actions/workflows/bld.yml)
-To install, please refer to the [extensions](https://github.com/rife2/bld/wiki/Extensions) and [support](https://github.com/rife2/bld/wiki/Kotlin-Support)
-documentation.
+To install the latest version, add the following to the `lib/bld/bld-wrapper.properties` file:
+
+```properties
+bld.extension-dokka=com.uwyn.rife2:bld-dokka
+```
+
+For more information, please refer to the [extensions](https://github.com/rife2/bld/wiki/Extensions) documentation.
+
## Generate API Documentation
diff --git a/config/pmd.xml b/config/pmd.xml
index 3d3203c..2641880 100644
--- a/config/pmd.xml
+++ b/config/pmd.xml
@@ -7,9 +7,9 @@
-
-
+
+
diff --git a/examples/.idea/bld.xml b/examples/.idea/bld.xml
new file mode 100644
index 0000000..6600cee
--- /dev/null
+++ b/examples/.idea/bld.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/.idea/libraries/bld.xml b/examples/.idea/libraries/bld.xml
index 5c4010c..153a060 100644
--- a/examples/.idea/libraries/bld.xml
+++ b/examples/.idea/libraries/bld.xml
@@ -2,12 +2,12 @@
-
+
-
+
diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json
index 4c33beb..ba429d0 100644
--- a/examples/.vscode/settings.json
+++ b/examples/.vscode/settings.json
@@ -9,7 +9,7 @@
],
"java.configuration.updateBuildConfiguration": "automatic",
"java.project.referencedLibraries": [
- "${HOME}/.bld/dist/bld-2.1.0.jar",
+ "${HOME}/.bld/dist/bld-2.2.1.jar",
"lib/**/*.jar"
]
}
diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar
index 6a5e8d4..814993b 100644
Binary files a/examples/lib/bld/bld-wrapper.jar and b/examples/lib/bld/bld-wrapper.jar differ
diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties
index f8a4f28..73eee8e 100644
--- a/examples/lib/bld/bld-wrapper.properties
+++ b/examples/lib/bld/bld-wrapper.properties
@@ -1,8 +1,8 @@
bld.downloadExtensionJavadoc=false
bld.downloadExtensionSources=true
bld.downloadLocation=
-bld.extension-dokka=com.uwyn.rife2:bld-dokka:1.0.1
-bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.1
+bld.extension-dokka=com.uwyn.rife2:bld-dokka:1.0.3
+bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.1.0-SNAPSHOT
bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
bld.sourceDirectories=
-bld.version=2.1.0
+bld.version=2.2.1
diff --git a/examples/src/bld/java/com/example/ExampleBuild.java b/examples/src/bld/java/com/example/ExampleBuild.java
index 1e6c71b..c39cb2d 100644
--- a/examples/src/bld/java/com/example/ExampleBuild.java
+++ b/examples/src/bld/java/com/example/ExampleBuild.java
@@ -34,13 +34,14 @@ public class ExampleBuild extends Project {
repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, RIFE2_RELEASES);
- final var kotlin = version(2, 0, 20);
+ final var kotlin = version(2, 1, 20);
scope(compile)
.include(dependency("org.jetbrains.kotlin", "kotlin-stdlib", kotlin));
scope(test)
.include(dependency("org.jetbrains.kotlin", "kotlin-test-junit5", kotlin))
- .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 11, 0)))
- .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 11, 0)));
+ .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 12, 1)))
+ .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 12, 1)))
+ .include(dependency("org.junit.platform", "junit-platform-launcher", version(1, 12, 1)));
// Include the Kotlin source directory when creating or publishing sources Java Archives
jarSourcesOperation().sourceDirectories(new File(srcMainDirectory(), "kotlin"));
diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar
index 8c94be9..8705a25 100644
Binary files a/lib/bld/bld-wrapper.jar and b/lib/bld/bld-wrapper.jar differ
diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties
index 5d0bba4..c5da09f 100644
--- a/lib/bld/bld-wrapper.properties
+++ b/lib/bld/bld-wrapper.properties
@@ -1,8 +1,8 @@
bld.downloadExtensionJavadoc=false
bld.downloadExtensionSources=true
bld.downloadLocation=
-bld.extension-exec=com.uwyn.rife2:bld-exec:1.0.3
-bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.5
+bld.extension-exec=com.uwyn.rife2:bld-exec:1.0.4
+bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.2.1
bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
bld.sourceDirectories=
-bld.version=2.1.0
+bld.version=2.2.1
diff --git a/src/bld/java/rife/bld/extension/DokkaOperationBuild.java b/src/bld/java/rife/bld/extension/DokkaOperationBuild.java
index ad0cc59..5d42723 100644
--- a/src/bld/java/rife/bld/extension/DokkaOperationBuild.java
+++ b/src/bld/java/rife/bld/extension/DokkaOperationBuild.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2023-2024 the original author or authors.
+ * Copyright 2023-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,6 +23,7 @@ import rife.bld.publish.PublishLicense;
import rife.bld.publish.PublishScm;
import java.util.List;
+import java.util.Locale;
import static rife.bld.dependencies.Repository.*;
import static rife.bld.dependencies.Scope.compile;
@@ -33,15 +34,16 @@ public class DokkaOperationBuild extends Project {
public DokkaOperationBuild() {
pkg = "rife.bld.extension";
name = "bld-dokka";
- version = version(1, 0, 1);
+ version = version(1, 0, 4, "SNAPSHOT");
javaRelease = 17;
downloadSources = true;
autoDownloadPurge = true;
+
repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL, RIFE2_RELEASES, RIFE2_SNAPSHOTS);
- var dokka = version(1, 9, 20);
+ var dokka = version(2, 0, 0);
scope(compile)
.include(dependency("org.jetbrains.dokka", "dokka-cli", dokka))
.include(dependency("org.jetbrains.dokka", "dokka-base", dokka))
@@ -49,11 +51,11 @@ public class DokkaOperationBuild extends Project {
.include(dependency("org.jetbrains.dokka", "javadoc-plugin", dokka))
.include(dependency("org.jetbrains.dokka", "gfm-plugin", dokka))
.include(dependency("org.jetbrains.dokka", "jekyll-plugin", dokka))
- .include(dependency("com.uwyn.rife2", "bld", version(2, 1, 0)));
+ .include(dependency("com.uwyn.rife2", "bld", version(2, 2, 1)));
scope(test)
- .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 11, 0)))
- .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 11, 0)))
- .include(dependency("org.assertj", "assertj-core", version(3, 26, 3)));
+ .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 12, 1)))
+ .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 12, 1)))
+ .include(dependency("org.assertj", "assertj-core", version(3, 27, 3)));
javadocOperation()
.javadocOptions()
@@ -63,28 +65,26 @@ public class DokkaOperationBuild extends Project {
publishOperation()
.repository(version.isSnapshot() ? repository("rife2-snapshot") : repository("rife2"))
+ .repository(repository("github"))
.info()
.groupId("com.uwyn.rife2")
.artifactId(name)
.description("bld Dokka Extension")
.url("https://github.com/rife2/bld-dokka")
- .developer(
- new PublishDeveloper()
- .id("ethauvin")
- .name("Erik C. Thauvin")
- .email("erik@thauvin.net")
- .url("https://erik.thauvin.net/")
+ .developer(new PublishDeveloper()
+ .id("ethauvin")
+ .name("Erik C. Thauvin")
+ .email("erik@thauvin.net")
+ .url("https://erik.thauvin.net/")
)
- .license(
- new PublishLicense()
- .name("The Apache License, Version 2.0")
- .url("https://www.apache.org/licenses/LICENSE-2.0.txt")
+ .license(new PublishLicense()
+ .name("The Apache License, Version 2.0")
+ .url("https://www.apache.org/licenses/LICENSE-2.0.txt")
)
- .scm(
- new PublishScm()
- .connection("scm:git:https://github.com/rife2/bld-dokka.git")
- .developerConnection("scm:git:git@github.com:rife2/bld-dokka.git")
- .url("https://github.com/rife2/bld-dokka")
+ .scm(new PublishScm()
+ .connection("scm:git:https://github.com/rife2/bld-dokka.git")
+ .developerConnection("scm:git:git@github.com:rife2/bld-dokka.git")
+ .url("https://github.com/rife2/bld-dokka")
)
.signKey(property("sign.key"))
.signPassphrase(property("sign.passphrase"));
@@ -105,10 +105,13 @@ public class DokkaOperationBuild extends Project {
@Override
public void test() throws Exception {
- new ExecOperation()
- .fromProject(this)
- .command("scripts/cliargs.sh")
- .execute();
+ var os = System.getProperty("os.name");
+ if (os != null && os.toLowerCase(Locale.US).contains("linux")) {
+ new ExecOperation()
+ .fromProject(this)
+ .command("scripts/cliargs.sh")
+ .execute();
+ }
super.test();
}
}
diff --git a/src/main/java/rife/bld/extension/DokkaOperation.java b/src/main/java/rife/bld/extension/DokkaOperation.java
index 05cbcbc..c8e6762 100644
--- a/src/main/java/rife/bld/extension/DokkaOperation.java
+++ b/src/main/java/rife/bld/extension/DokkaOperation.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2023-2024 the original author or authors.
+ * Copyright 2023-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -45,13 +45,13 @@ import java.util.stream.Collectors;
@SuppressWarnings("PMD.AvoidThrowingRawExceptionTypes")
public class DokkaOperation extends AbstractProcessOperation {
public static final String SEMICOLON = ";";
- private final static String GFM_PLUGIN_REGEXP =
+ private static final String GFM_PLUGIN_REGEXP =
"^.*(dokka-base|analysis-kotlin-descriptors|gfm-plugin|freemarker).*\\.jar$";
- private final static String HTML_PLUGIN_REGEXP =
+ private static final String HTML_PLUGIN_REGEXP =
"^.*(dokka-base|analysis-kotlin-descriptors|kotlinx-html-jvm|freemarker).*\\.jar$";
- private final static String JAVADOC_PLUGIN_REGEXP =
+ private static final String JAVADOC_PLUGIN_REGEXP =
"^.*(dokka-base|analysis-kotlin-descriptors|javadoc-plugin|kotlin-as-java-plugin|korte-jvm).*\\.jar$";
- private final static String JEKYLL_PLUGIN_REGEXP =
+ private static final String JEKYLL_PLUGIN_REGEXP =
"^.*(dokka-base|analysis-kotlin-descriptors|jekyll-plugin|gfm-plugin|freemarker).*\\.jar$";
private final Logger LOGGER = Logger.getLogger(DokkaOperation.class.getName());
private final Map globalLinks_ = new ConcurrentHashMap<>();
diff --git a/src/main/java/rife/bld/extension/dokka/AnalysisPlatform.java b/src/main/java/rife/bld/extension/dokka/AnalysisPlatform.java
index dd6ff1a..0f6c1a4 100644
--- a/src/main/java/rife/bld/extension/dokka/AnalysisPlatform.java
+++ b/src/main/java/rife/bld/extension/dokka/AnalysisPlatform.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2023-2024 the original author or authors.
+ * Copyright 2023-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/src/main/java/rife/bld/extension/dokka/DocumentedVisibility.java b/src/main/java/rife/bld/extension/dokka/DocumentedVisibility.java
index dae65a4..76e368c 100644
--- a/src/main/java/rife/bld/extension/dokka/DocumentedVisibility.java
+++ b/src/main/java/rife/bld/extension/dokka/DocumentedVisibility.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2023-2024 the original author or authors.
+ * Copyright 2023-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/src/main/java/rife/bld/extension/dokka/LoggingLevel.java b/src/main/java/rife/bld/extension/dokka/LoggingLevel.java
index b493e11..1cac7ae 100644
--- a/src/main/java/rife/bld/extension/dokka/LoggingLevel.java
+++ b/src/main/java/rife/bld/extension/dokka/LoggingLevel.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2023-2024 the original author or authors.
+ * Copyright 2023-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/src/main/java/rife/bld/extension/dokka/OutputFormat.java b/src/main/java/rife/bld/extension/dokka/OutputFormat.java
index 0d4a2c0..a1a5f37 100644
--- a/src/main/java/rife/bld/extension/dokka/OutputFormat.java
+++ b/src/main/java/rife/bld/extension/dokka/OutputFormat.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2023-2024 the original author or authors.
+ * Copyright 2023-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/src/main/java/rife/bld/extension/dokka/SourceSet.java b/src/main/java/rife/bld/extension/dokka/SourceSet.java
index 4062a1e..a6336e7 100644
--- a/src/main/java/rife/bld/extension/dokka/SourceSet.java
+++ b/src/main/java/rife/bld/extension/dokka/SourceSet.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2023-2024 the original author or authors.
+ * Copyright 2023-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,7 +24,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentSkipListMap;
import java.util.stream.Collectors;
/**
@@ -33,15 +33,16 @@ import java.util.stream.Collectors;
* @author Erik C. Thauvin
* @since 1.0
*/
+@SuppressWarnings("PMD.UseConcurrentHashMap")
public class SourceSet {
private final Collection classpath_ = new ArrayList<>();
- private final Map dependentSourceSets_ = new ConcurrentHashMap<>();
+ private final Map dependentSourceSets_ = new ConcurrentSkipListMap<>();
private final Collection documentedVisibilities_ = new ArrayList<>();
- private final Map externalDocumentationLinks_ = new ConcurrentHashMap<>();
+ private final Map externalDocumentationLinks_ = new ConcurrentSkipListMap<>();
private final Collection includes_ = new ArrayList<>();
private final Collection perPackageOptions_ = new ArrayList<>();
private final Collection samples_ = new ArrayList<>();
- private final Map srcLinks_ = new ConcurrentHashMap<>();
+ private final Map srcLinks_ = new ConcurrentSkipListMap<>();
private final Collection src_ = new ArrayList<>();
private final Collection suppressedFiles_ = new ArrayList<>();
private AnalysisPlatform analysisPlatform_;
diff --git a/src/test/java/rife/bld/extension/DokkaOperationTest.java b/src/test/java/rife/bld/extension/DokkaOperationTest.java
index ca19b54..cea3975 100644
--- a/src/test/java/rife/bld/extension/DokkaOperationTest.java
+++ b/src/test/java/rife/bld/extension/DokkaOperationTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2023-2024 the original author or authors.
+ * Copyright 2023-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,11 @@
package rife.bld.extension;
+import org.assertj.core.api.AutoCloseableSoftAssertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledOnOs;
+import org.junit.jupiter.api.condition.OS;
import rife.bld.blueprints.BaseProjectBlueprint;
import rife.bld.extension.dokka.LoggingLevel;
import rife.bld.extension.dokka.OutputFormat;
@@ -68,6 +71,7 @@ class DokkaOperationTest {
}
@Test
+ @EnabledOnOs(OS.LINUX)
void executeConstructProcessCommandListTest() throws IOException {
var args = Files.readAllLines(Paths.get("src", "test", "resources", "dokka-args.txt"));
@@ -77,7 +81,7 @@ class DokkaOperationTest {
var op = new DokkaOperation()
.delayTemplateSubstitution(true)
.failOnWarning(true)
- .fromProject(new BaseProjectBlueprint(EXAMPLES, "com.example", "Example"))
+ .fromProject(new BaseProjectBlueprint(EXAMPLES, "com.example", "example", "Example"))
.globalLinks("s", "gLink1")
.globalLinks(Map.of("s2", "gLink2"))
.globalPackageOptions(OPTION_1, OPTION_2)
@@ -107,27 +111,31 @@ class DokkaOperationTest {
)))
.suppressInheritedMembers(true);
- assertThat(op.globalLinks()).as("globalLinks").hasSize(2);
- assertThat(op.globalPackageOptions()).as("globalPackageOptions").hasSize(4);
- assertThat(op.globalSrcLink()).as("globalSrcLink").hasSize(4);
- assertThat(op.includes()).as("includes").hasSize(4);
- assertThat(op.pluginConfigurations()).as("pluginConfigurations").hasSize(3);
- assertThat(op.pluginsClasspath()).as("pluginsClasspath").hasSize(9);
+ try (var softly = new AutoCloseableSoftAssertions()) {
+ softly.assertThat(op.globalLinks()).as("globalLinks").hasSize(2);
+ softly.assertThat(op.globalPackageOptions()).as("globalPackageOptions").hasSize(4);
+ softly.assertThat(op.globalSrcLink()).as("globalSrcLink").hasSize(4);
+ softly.assertThat(op.includes()).as("includes").hasSize(4);
+ softly.assertThat(op.pluginConfigurations()).as("pluginConfigurations").hasSize(3);
+ softly.assertThat(op.pluginsClasspath()).as("pluginsClasspath").hasSize(9);
+ }
var params = op.executeConstructProcessCommandList();
- for (var p : args) {
- var found = false;
- for (var a : params) {
- if (a.startsWith(p)) {
- found = true;
- break;
+ try (var softly = new AutoCloseableSoftAssertions()) {
+ for (var p : args) {
+ var found = false;
+ for (var a : params) {
+ if (a.startsWith(p)) {
+ found = true;
+ break;
+ }
}
+ softly.assertThat(found).as(p + " not found.").isTrue();
}
- assertThat(found).as(p + " not found.").isTrue();
}
var path = EXAMPLES.getAbsolutePath();
- var dokkaJar = "1.9.20.jar";
+ var dokkaJar = "2.0.0.jar";
var matches = List.of("java",
"-cp", path + "/lib/bld/dokka-cli-" + dokkaJar,
"org.jetbrains.dokka.MainKt",
@@ -157,14 +165,17 @@ class DokkaOperationTest {
assertThat(params).hasSize(matches.size());
- IntStream.range(0, params.size()).forEach(i -> {
- if (params.get(i).contains(".jar;")) {
- var jars = params.get(i).split(";");
- Arrays.stream(jars).forEach(jar -> assertThat(matches.get(i)).as(matches.get(i)).contains(jar));
- } else {
- assertThat(params.get(i)).as(params.get(i)).isEqualTo(matches.get(i));
- }
- });
+ try (var softly = new AutoCloseableSoftAssertions()) {
+ IntStream.range(0, params.size()).forEach(i -> {
+ if (params.get(i).contains(".jar;")) {
+ var jars = params.get(i).split(";");
+ Arrays.stream(jars).forEach(jar ->
+ softly.assertThat(matches.get(i)).as(matches.get(i)).contains(jar));
+ } else {
+ softly.assertThat(params.get(i)).as(params.get(i)).isEqualTo(matches.get(i));
+ }
+ });
+ }
}
@Test
@@ -177,7 +188,7 @@ class DokkaOperationTest {
void executeTest() {
var op = new DokkaOperation()
.fromProject(
- new BaseProjectBlueprint(EXAMPLES, "com.example", "examples"))
+ new BaseProjectBlueprint(EXAMPLES, "com.example", "examples", "Examples"))
.outputDir("build/javadoc")
.outputFormat(OutputFormat.JAVADOC);
assertThatCode(op::execute).doesNotThrowAnyException();
diff --git a/src/test/java/rife/bld/extension/TestUtils.java b/src/test/java/rife/bld/extension/TestUtils.java
index 832d549..5c164bc 100644
--- a/src/test/java/rife/bld/extension/TestUtils.java
+++ b/src/test/java/rife/bld/extension/TestUtils.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2023-2024 the original author or authors.
+ * Copyright 2023-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/src/test/java/rife/bld/extension/dokka/SourceSetTest.java b/src/test/java/rife/bld/extension/dokka/SourceSetTest.java
index 0927bd8..f6fd76e 100644
--- a/src/test/java/rife/bld/extension/dokka/SourceSetTest.java
+++ b/src/test/java/rife/bld/extension/dokka/SourceSetTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2023-2024 the original author or authors.
+ * Copyright 2023-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,7 @@
package rife.bld.extension.dokka;
+import org.assertj.core.api.AutoCloseableSoftAssertions;
import org.junit.jupiter.api.Test;
import java.io.File;
@@ -170,7 +171,7 @@ class SourceSetTest {
var matches = List.of(
"-classpath", localPath(PATH_1, PATH_2),
"-dependentSourceSets", "set1/set2;set3/set4",
- "-externalDocumentationLinks", "link3^link4^^link1^link2",
+ "-externalDocumentationLinks", "link1^link2^^link3^link4",
"-perPackageOptions", OPTION_1 + ';' + OPTION_2,
"-samples", localPath(SAMPLES_1, SAMPLES_2, SAMPLES_3),
"-suppressedFiles", localPath(SUP_1, SUP_2, SUP_3)
@@ -225,28 +226,32 @@ class SourceSetTest {
.srcLink(Path.of(PATH_3), "remote3", "#suffix3")
.suppressedFiles(SUP_1, SUP_2);
- assertThat(sourceSet.classpath()).as("classpath").hasSize(2);
- assertThat(sourceSet.dependentSourceSets()).as("dependentSourceSets").hasSize(2);
- assertThat(sourceSet.documentedVisibilities()).as("documentedVisibilities").hasSize(2);
- assertThat(sourceSet.externalDocumentationLinks()).as("externalDocumentationLinks").hasSize(2);
- assertThat(sourceSet.includes()).as("includes").hasSize(4);
- assertThat(sourceSet.perPackageOptions()).as("perPackageOptions").hasSize(2);
- assertThat(sourceSet.samples()).as("samples").hasSize(2);
- assertThat(sourceSet.src()).as("src").hasSize(4);
- assertThat(sourceSet.srcLinks()).as("srcLinks").hasSize(3);
- assertThat(sourceSet.suppressedFiles()).as("suppressedFiles").hasSize(2);
+ try (var softly = new AutoCloseableSoftAssertions()) {
+ softly.assertThat(sourceSet.classpath()).as("classpath").hasSize(2);
+ softly.assertThat(sourceSet.dependentSourceSets()).as("dependentSourceSets").hasSize(2);
+ softly.assertThat(sourceSet.documentedVisibilities()).as("documentedVisibilities").hasSize(2);
+ softly.assertThat(sourceSet.externalDocumentationLinks()).as("externalDocumentationLinks").hasSize(2);
+ softly.assertThat(sourceSet.includes()).as("includes").hasSize(4);
+ softly.assertThat(sourceSet.perPackageOptions()).as("perPackageOptions").hasSize(2);
+ softly.assertThat(sourceSet.samples()).as("samples").hasSize(2);
+ softly.assertThat(sourceSet.src()).as("src").hasSize(4);
+ softly.assertThat(sourceSet.srcLinks()).as("srcLinks").hasSize(3);
+ softly.assertThat(sourceSet.suppressedFiles()).as("suppressedFiles").hasSize(2);
+ }
var params = sourceSet.args();
- for (var p : args) {
- var found = false;
- for (var a : params) {
- if (a.startsWith(p)) {
- found = true;
- break;
+ try (var softly = new AutoCloseableSoftAssertions()) {
+ for (var p : args) {
+ var found = false;
+ for (var a : params) {
+ if (a.startsWith(p)) {
+ found = true;
+ break;
+ }
}
+ softly.assertThat(found).as(p + " not found.").isTrue();
}
- assertThat(found).as(p + " not found.").isTrue();
}
var matches = List.of(