- * Used in incremental builds of multimodule projects.
- *
- * @param delayTemplateSubstitution the delay
- * @return this operation instance
- */
- public DokkaOperation delayTemplateSubstitution(Boolean delayTemplateSubstitution) {
- delayTemplateSubstitution_ = delayTemplateSubstitution;
- return this;
- }
-
- /**
- * Part of the {@link #execute execute} operation, constructs the command list to use for building the process.
- *
- * @since 1.5
- */
- @Override
- protected List
- * Sets the {@link #sourceSet sourceSet}, {@link SourceSet#jdkVersion jdkVersion}, {@link #moduleName moduleName}
- * and {@link SourceSet#classpath(String...) classpath} from the project.
- *
- * @param project the project to configure the operation from
- */
- @Override
- public DokkaOperation fromProject(BaseProject project) {
- project_ = project;
- sourceSet_ = new SourceSet()
- .src(new File(project.srcMainDirectory(), "kotlin").getAbsolutePath())
- .classpath(project.compileClasspathJars())
- .classpath(project.providedClasspathJars());
- if (project.javaRelease() != null) {
- sourceSet_ = sourceSet_.jdkVersion(project.javaRelease());
- }
- moduleName_ = project.name();
- return this;
- }
-
- /**
- * Sets whether to fail documentation generation if Dokka has emitted a warning or an error.
- *
- * Whether to fail documentation generation if Dokka has emitted a warning or an error. The process waits until all
- * errors and warnings have been emitted first.
- *
- * This setting works well with {@link SourceSet#reportUndocumented}
- *
- * @param failOnWarning {@code true} or {@code false}
- * @return this operation instance
- */
- public DokkaOperation failOnWarning(Boolean failOnWarning) {
- failOnWarning_ = failOnWarning;
- return this;
- }
-
- /**
- * Set the global external documentation links.
- *
- * @param url the external documentation URL
- * @param packageListUrl the external documentation package list URL
- * @return this operation instance
- */
- public DokkaOperation globalLinks(String url, String packageListUrl) {
- globalLinks_.put(url, packageListUrl);
- return this;
- }
-
- /**
- * Set the global external documentation links.
- *
- * @param globalLinks the map of global links
- * @return this operation instance
- * @see #globalSrcLink(String...) #globalSrcLink(String...)#globalSrcLink(String...)
- */
- public DokkaOperation globalLinks(Map
- * Using format:
- *
- * Using format:
- *
- * The contents of specified files are parsed and embedded into documentation as module and package descriptions.
- *
- * This can be configured on per-package basis.
- *
- * @param files one or more files
- * @return this operation instance
- */
- public DokkaOperation includes(String... files) {
- Collections.addAll(includes_, files);
- return this;
- }
-
- /**
- * Sets the Markdown files that contain module and package documentation.
- *
- * The contents of specified files are parsed and embedded into documentation as module and package descriptions.
- *
- * This can be configured on per-package basis.
- *
- * @param files the list of files
- * @return this operation instance
- */
- public DokkaOperation includes(Collection
- * The display name used to refer to the module. It is used for the table of contents, navigation, logging, etc.
- *
- * @param moduleName the project/module name
- * @return this operation instance
- */
- public DokkaOperation moduleName(String moduleName) {
- moduleName_ = moduleName;
- return this;
- }
-
- /**
- * Set the documented version.
- *
- * @param version the version
- * @return this operation instance
- */
- public DokkaOperation moduleVersion(String version) {
- moduleVersion_ = version;
- return this;
- }
-
- /**
- * Sets whether to suppress obvious functions such as inherited from
- * kotlin.Any and {@link java.lang.Object}.
- *
- * A function is considered to be obvious if it is:
- *
- * This includes package-lists used for generating external documentation links. For example, to make classes from
- * the standard library clickable.
- *
- * Setting this to true can significantly speed up build times in certain cases, but can also worsen documentation
- * quality and user experience. For example, by not resolving class/member links from your dependencies, including
- * the standard library.
- *
- * Note: You can cache fetched files locally and provide them to Dokka as local paths.
- *
- * @param offlineMode the offline mode
- * @return this operation instance
- * @see SourceSet#externalDocumentationLinks(String, String)
- */
- public DokkaOperation offlineMode(Boolean offlineMode) {
- offlineMode_ = offlineMode;
- return this;
- }
-
- /**
- * Sets the output directory path, {@code ./dokka} by default.
- *
- * The directory to where documentation is generated, regardless of output format.
- *
- * @param outputDir the output directory
- * @return this operation instance
- */
- public DokkaOperation outputDir(File outputDir) {
- outputDir_ = outputDir;
- return this;
- }
-
- /**
- * Sets the output directory path, {@code ./dokka} by default.
- *
- * The directory to where documentation is generated, regardless of output format.
- *
- * @param outputDir the output directory
- * @return this operation instance
- */
- public DokkaOperation outputDir(String outputDir) {
- outputDir_ = new File(outputDir);
- return this;
- }
-
- /**
- * Sets the Dokka {@link OutputFormat output format}.
- *
- * @param format The {@link OutputFormat output format}
- * @return this operation instance
- */
- public DokkaOperation outputFormat(OutputFormat format) {
- pluginsClasspath_.clear();
- if (format.equals(OutputFormat.JAVADOC)) {
- pluginsClasspath_.addAll(CompileKotlinOperation.getJarList(project_.libBldDirectory(),
- JAVADOC_PLUGIN_REGEXP));
- } else if (format.equals(OutputFormat.HTML)) {
- pluginsClasspath_.addAll(CompileKotlinOperation.getJarList(project_.libBldDirectory(),
- HTML_PLUGIN_REGEXP));
- } else if (format.equals(OutputFormat.MARKDOWN)) {
- pluginsClasspath_.addAll(CompileKotlinOperation.getJarList(project_.libBldDirectory(),
- GFM_PLUGIN_REGEXP));
- } else if (format.equals(OutputFormat.JEKYLL)) {
- pluginsClasspath_.addAll(CompileKotlinOperation.getJarList(project_.libBldDirectory(),
- JEKYLL_PLUGIN_REGEXP));
- }
- return this;
- }
-
- /**
- * Sets the configuration for Dokka plugins.
- *
- * @param name The fully-qualified plugin name
- * @param jsonConfiguration The plugin JSON configuration
- * @return this operation instance
- */
- public DokkaOperation pluginConfigurations(String name, String jsonConfiguration) {
- pluginsConfiguration_.put(name, jsonConfiguration);
- return this;
- }
-
- /**
- * Sets the configuration for Dokka plugins.
- *
- * @param pluginConfiguratione the map of configurations
- * @return this operation instance
- * @see #pluginConfigurations(String, String)
- */
- public DokkaOperation pluginConfigurations(Map
- * Individual and additional configuration of Kotlin source sets.
- *
- * @param sourceSet the source set configurations
- * @return this operation instance
- */
- public DokkaOperation sourceSet(SourceSet sourceSet) {
- sourceSet_ = sourceSet;
- return this;
- }
-
- /**
- * Sets whether to suppress inherited members that aren't explicitly overridden in a given class.
- *
- * @param suppressInheritedMembers {@code true} or {@code false}
- * @return this operation instance
- */
- public DokkaOperation suppressInheritedMembers(Boolean suppressInheritedMembers) {
- suppressInheritedMembers_ = suppressInheritedMembers;
- return this;
- }
-}
diff --git a/src/main/java/rife/bld/extension/dokka/LoggingLevel.java b/src/main/java/rife/bld/extension/dokka/LoggingLevel.java
deleted file mode 100644
index b493e11..0000000
--- a/src/main/java/rife/bld/extension/dokka/LoggingLevel.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright 2023-2024 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.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package rife.bld.extension.dokka;
-
-/**
- * Dokka logging levels.
- *
- * @author Erik C. Thauvin
- * @since 1.0
- */
-public enum LoggingLevel {
- DEBUG, PROGRESS, INFO, WARN, ERROR
-}
diff --git a/src/main/java/rife/bld/extension/dokka/OutputFormat.java b/src/main/java/rife/bld/extension/dokka/OutputFormat.java
deleted file mode 100644
index 0d4a2c0..0000000
--- a/src/main/java/rife/bld/extension/dokka/OutputFormat.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright 2023-2024 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.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package rife.bld.extension.dokka;
-
-/**
- * Dokka output formats.
- *
- * @author Erik C. Thauvin
- * @since 1.0
- */
-public enum OutputFormat {
- JAVADOC, JEKYLL, HTML, MARKDOWN
-}
diff --git a/src/main/java/rife/bld/extension/dokka/SourceSet.java b/src/main/java/rife/bld/extension/dokka/SourceSet.java
deleted file mode 100644
index e9457b5..0000000
--- a/src/main/java/rife/bld/extension/dokka/SourceSet.java
+++ /dev/null
@@ -1,680 +0,0 @@
-/*
- * Copyright 2023-2024 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.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package rife.bld.extension.dokka;
-
-import java.io.File;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-
-/**
- * Configuration for a Dokka source set.
- *
- * @author Erik C. Thauvin
- * @since 1.0
- */
-public class SourceSet {
- private static final String SEMICOLON = ";";
- private final Collection
- * Platform to be used for setting up code analysis and {@code @sample} environment.
- *
- * @param analysisPlatform the analysis platform
- * @return this operation instance
- */
- public SourceSet analysisPlatform(AnalysisPlatform analysisPlatform) {
- analysisPlatform_ = analysisPlatform;
- return this;
- }
-
- /**
- * Sets the Kotlin API version used for setting up analysis and samples.
- *
- * @param apiVersion the api version
- * @return this operation instance
- */
- public SourceSet apiVersion(String apiVersion) {
- apiVersion_ = apiVersion;
- return this;
- }
-
- /**
- * Sets the Kotlin API version used for setting up analysis and samples.
- *
- * @param apiVersion the api version
- * @return this operation instance
- */
- public SourceSet apiVersion(int apiVersion) {
- apiVersion_ = String.valueOf(apiVersion);
- return this;
- }
-
- /**
- * Returns the formatted arguments.
- *
- * @return the arguments
- */
- public List
- * This is useful if some types that come from dependencies are not resolved/picked up automatically.
- *
- * This option accepts both {@code .jar} and {@code .klib} files.
- *
- * @param files one or more file
- * @return this operation instance
- */
- public SourceSet classpath(String... files) {
- Collections.addAll(classpath_, files);
- return this;
- }
-
- /**
- * Sets classpath for analysis and interactive samples.
- *
- * This is useful if some types that come from dependencies are not resolved/picked up automatically.
- *
- * This option accepts both {@code .jar} and {@code .klib} files.
- *
- * @param files the list of files
- * @return this operation instance
- */
- public SourceSet classpath(Collection
- * This is useful if some types that come from dependencies are not resolved/picked up automatically.
- *
- * This option accepts both {@code .jar} and {@code .klib} files.
- *
- * @param files the list of files
- * @return this operation instance
- */
- public SourceSet classpath(List
- * The name is used both externally (for example, the source set name is visible to documentation readers) and
- * internally (for example, for logging messages of {@link #reportUndocumented reportUndocumented}).
- *
- * The platform name can be used if you don't have a better alternative.
- *
- * @param displayName the display name
- * @return this operation instance
- */
- public SourceSet displayName(String displayName) {
- displayName_ = displayName;
- return this;
- }
-
- /**
- * Sets visibilities to be documented.
- *
- * This can be used if you want to document protected/internal/private declarations, as well as if you want to
- * exclude public declarations and only document internal API.
- *
- * This can be configured on per-package basis.
- *
- * @param visibilities one or more visibilities
- * @return this operation instance
- */
- public SourceSet documentedVisibilities(DocumentedVisibility... visibilities) {
- documentedVisibilities_.addAll(Arrays.asList(visibilities));
- return this;
- }
-
- /**
- * Sets the external documentation links.
- *
- * A set of parameters for external documentation links that is applied only for this source set.
- *
- * @param url the external documentation URL
- * @param packageListUrl the external documentation package list URL
- * @return this operation instance
- */
- public SourceSet externalDocumentationLinks(String url, String packageListUrl) {
- externalDocumentationLinks_.put(url, packageListUrl);
- return this;
- }
-
- /**
- * Sets the external documentation links.
- *
- * A set of parameters for external documentation links that is applied only for this source set.
- *
- * @param externalDocumentationLinks the map of external documentation links
- * @return this operation instance
- * @see #externalDocumentationLinks(String, String)
- */
- public SourceSet externalDocumentationLinks(Map
- * A list of Markdown files that contain module and package documentation.
- *
- * The contents of the specified files are parsed and embedded into documentation as module and package
- * descriptions.
- *
- * @param files one or more files
- * @return this operation instance
- */
- public SourceSet includes(String... files) {
- Collections.addAll(includes_, files);
- return this;
- }
-
- /**
- * Sets the Markdown files that contain module and package documentation.
- *
- * A list of Markdown files that contain module and package documentation.
- *
- * The contents of the specified files are parsed and embedded into documentation as module and package
- * descriptions.
- *
- * @param files the list of files
- * @return this operation instance
- */
- public SourceSet includes(Collection
- * The JDK version to use when generating external documentation links for Java types.
- *
- * For example, if you use {@link java.util.UUID} in some public declaration signature, and this option is set to 8,
- * Dokka generates an external documentation link to JDK 8 Javadocs for it.
- *
- * @param jdkVersion the JDK version
- * @return this operation instance
- */
- public SourceSet jdkVersion(String jdkVersion) {
- jdkVersion_ = jdkVersion;
- return this;
- }
-
- /**
- * Sets the version of JDK to use for linking to JDK Javadocs.
- *
- * The JDK version to use when generating external documentation links for Java types.
- *
- * For example, if you use {@link java.util.UUID} in some public declaration signature, and this option is set to 8,
- * Dokka generates an external documentation link to JDK 8 Javadocs for it.
- *
- * @param jdkVersion the JDK version
- * @return this operation instance
- */
- public SourceSet jdkVersion(int jdkVersion) {
- jdkVersion_ = String.valueOf(jdkVersion);
- return this;
- }
-
- /**
- * Sets the language version used for setting up analysis and samples.
- *
- * @param languageVersion the language version
- * @return this operation instance
- */
- public SourceSet languageVersion(String languageVersion) {
- languageVersion_ = languageVersion;
- return this;
- }
-
- /**
- * Sets the language version used for setting up analysis and samples.
- *
- * @param languageVersion the language version
- * @return this operation instance
- */
- public SourceSet languageVersion(int languageVersion) {
- languageVersion_ = String.valueOf(languageVersion);
- return this;
- }
-
- /**
- * Sets whether to generate links to JDK Javadocs.
- *
- * Whether to generate external documentation links to JDK's Javadocs.
- *
- * The version of JDK Javadocs is determined by the {@link #jdkVersion jdkVersion} option.
- *
- * Note: Links are generated when noJdkLink is set to false.
- *
- * @param noJdkLink {@code true} or {@code false}
- * @return this operation instance
- */
- public SourceSet noJdkLink(Boolean noJdkLink) {
- noJdkLink_ = noJdkLink;
- return this;
- }
-
- /**
- * Sets whether to create pages for empty packages.
- *
- * Whether to skip packages that contain no visible declarations after various filters have been applied.
- *
- * @param noSkipEmptyPackages {@code true} or {@code false}
- * @return this operation instance
- */
- public SourceSet noSkipEmptyPackages(boolean noSkipEmptyPackages) {
- noSkipEmptyPackages_ = noSkipEmptyPackages;
- return this;
- }
-
- /**
- * Sets whether to generate links to Standard library.
- *
- * Whether to generate external documentation links that lead to the API reference documentation of Kotlin's
- * standard library.
- *
- * Note: Links are generated when noStdLibLink is set to {@code false}.
- *
- * @param noStdlibLink {@code true} or {@code false}
- * @return this operation instance
- */
- public SourceSet noStdlibLink(Boolean noStdlibLink) {
- noStdlibLink_ = noStdlibLink;
- return this;
- }
-
- /**
- * Set the list of package source set configuration.
- *
- * A set of parameters specific to matched packages within this source set.
- *
- * Using format:
- *
- * A set of parameters specific to matched packages within this source set.
- *
- * Using format:
- *
- * Whether to emit warnings about visible undocumented declarations, that is declarations without KDocs after they
- * have been filtered by documentedVisibilities and other filters.
- *
- * This setting works well with {@link DokkaOperation#failOnWarning}.
- *
- * This can be configured on per-package basis.
- *
- * @param reportUndocumented {@code true} or {@code false}
- * @return this operation instance
- */
- public SourceSet reportUndocumented(Boolean reportUndocumented) {
- reportUndocumented_ = reportUndocumented;
- return this;
- }
-
- /**
- * Set the list of directories or files that contain sample functions.
- *
- * A list of directories or files that contain sample functions which are referenced via the {@code @sample} KDoc
- * tag.
- *
- * @param samples the list of samples
- * @return this operation instance
- */
- public SourceSet samples(Collection
- * A list of directories or files that contain sample functions which are referenced via the {@code @sample} KDoc
- * tag.
- *
- * @param samples nne or more samples
- * @return this operation instance
- */
- public SourceSet samples(String... samples) {
- Collections.addAll(samples_, samples);
- return this;
- }
-
- /**
- * Sets whether to skip deprecated declarations.
- *
- * Whether to document declarations annotated with {@code @Deprecated}.
- *
- * This can be configured on per-package basis.
- *
- * @param skipDeprecated {@code true} or {@code false}
- * @return this operation instance
- */
- public SourceSet skipDeprecated(boolean skipDeprecated) {
- skipDeprecated_ = skipDeprecated;
- return this;
- }
-
- /**
- * Sets the name of the source set. Default is {@code main}.
- *
- * @param sourceSetName the source set name.
- * @return this operation instance
- */
- public SourceSet sourceSetName(String sourceSetName) {
- sourceSetName_ = sourceSetName;
- return this;
- }
-
- /**
- * Sets the source code roots to be analyzed and documented.
- *
- * The source code roots to be analyzed and documented. Acceptable inputs are directories and individual
- * {@code .kt} / {@code .java} files.
- *
- * @param src the list of source code roots
- * @return this operation instance
- */
- public SourceSet src(Collection
- * The source code roots to be analyzed and documented. Acceptable inputs are directories and individual
- * {@code .kt} / {@code .java} files.
- *
- * @param src pne ore moe source code roots
- * @return this operation instance
- */
- public SourceSet src(String... src) {
- Collections.addAll(src_, src);
- return this;
- }
-
- /**
- * Sets the mapping between a source directory and a Web service for browsing the code.
- *
- * @param srcPath the source path
- * @param remotePath the remote path
- * @param lineSuffix the line suffix
- * @return this operation instance
- */
- public SourceSet srcLink(String srcPath, String remotePath, String lineSuffix) {
- srcLinks_.put(srcPath, remotePath + lineSuffix);
- return this;
- }
-
- /**
- * Sets the paths to files to be suppressed.
- *
- * The files to be suppressed when generating documentation.
- *
- * @param suppressedFiles the list of suppressed files
- * @return this operation instance
- */
- public SourceSet suppressedFiles(Collection
- * The files to be suppressed when generating documentation.
- *
- * @param suppressedFiles one or moe suppressed files
- * @return this operation instance
- */
- public SourceSet suppressedFiles(String... suppressedFiles) {
- suppressedFiles_.addAll(Arrays.asList(suppressedFiles));
- return this;
- }
-}
diff --git a/src/test/java/rife/bld/extension/dokka/DokkaOperationTest.java b/src/test/java/rife/bld/extension/dokka/DokkaOperationTest.java
deleted file mode 100644
index 0e089ee..0000000
--- a/src/test/java/rife/bld/extension/dokka/DokkaOperationTest.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright 2023-2024 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.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package rife.bld.extension.dokka;
-
-import org.junit.jupiter.api.Test;
-import rife.bld.blueprints.BaseProjectBlueprint;
-
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.IntStream;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-class DokkaOperationTest {
- @Test
- @SuppressWarnings({"ExtractMethodRecommender", "PMD.AvoidDuplicateLiterals"})
- void executeConstructProcessCommandListTest() throws IOException {
- var args = Files.readAllLines(Paths.get("src", "test", "resources", "dokka-args.txt"));
-
- assertThat(args).isNotEmpty();
-
- var examples = new File("examples");
- var jsonConf = new File("config.json");
- var params = new DokkaOperation()
- .delayTemplateSubstitution(true)
- .failOnWarning(true)
- .fromProject(new BaseProjectBlueprint(examples, "com.example", "Example"))
- .globalLinks("s", "link")
- .globalLinks(Map.of("s2", "link2"))
- .globalPackageOptions("option1", "option2")
- .globalPackageOptions(List.of("option3", "option4"))
- .globalSrcLink("link1", "link2")
- .globalSrcLink(List.of("link3", "link4"))
- .includes("file1", "file2")
- .includes(List.of("file3", "file4"))
- .json(jsonConf)
- .loggingLevel(LoggingLevel.DEBUG)
- .moduleName("name")
- .moduleVersion("1.0")
- .noSuppressObviousFunctions(true)
- .offlineMode(true)
- .outputDir(new File(examples, "build"))
- .outputFormat(OutputFormat.JAVADOC)
- .pluginConfigurations("name", "{\"json\"}")
- .pluginConfigurations(Map.of("{\"name2\"}", "json2", "name3}", "{json3"))
- .pluginsClasspath("path1", "path2")
- .pluginsClasspath(List.of("path3", "path4"))
- .sourceSet(new SourceSet().classpath(
- List.of(
- new File("examples/foo.jar"),
- new File("examples/bar.jar")
- )))
- .suppressInheritedMembers(true)
- .executeConstructProcessCommandList();
-
- for (var p : args) {
- var found = false;
- for (var a : params) {
- if (a.startsWith(p)) {
- found = true;
- break;
- }
- }
- assertThat(found).as(p + " not found.").isTrue();
- }
-
- var path = examples.getAbsolutePath();
- var dokkaJar = "1.9.20.jar";
- var matches = List.of("java",
- "-jar", path + "/lib/bld/dokka-cli-" + dokkaJar,
- "-pluginsClasspath", path + "/lib/bld/dokka-base-" + dokkaJar + ';' +
- path + "/lib/bld/analysis-kotlin-descriptors-" + dokkaJar + ';' +
- path + "/lib/bld/javadoc-plugin-" + dokkaJar + ';' +
- path + "/lib/bld/korte-jvm-4.0.10.jar;" +
- path + "/lib/bld/kotlin-as-java-plugin-" + dokkaJar + ";path1;path2;path3;path4",
- "-sourceSet", "-src " + path + "/src/main/kotlin" + " -classpath " + path + "/foo.jar;" + path + "/bar.jar",
- "-outputDir", path + "/build",
- "-delayTemplateSubstitution",
- "-failOnWarning",
- "-globalLinks", "s^link^^s2^link2",
- "-globalPackageOptions", "option1;option2;option3;option4",
- "-globalSrcLinks_", "link1;link2;link3;link4",
- "-includes", "file1;file2;file3;file4",
- "-loggingLevel", "debug",
- "-moduleName", "name",
- "-moduleVersion", "1.0",
- "-noSuppressObviousFunctions",
- "-offlineMode",
- "-pluginsConfiguration", "{\\\"name2\\\"}={json2}^^{name}={\\\"json\\\"}^^{name3}}={{json3}",
- "-suppressInheritedMembers",
- jsonConf.getAbsolutePath());
-
- 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));
- }
- });
- }
-}
diff --git a/src/test/java/rife/bld/extension/dokka/SourceSetTest.java b/src/test/java/rife/bld/extension/dokka/SourceSetTest.java
deleted file mode 100644
index b503335..0000000
--- a/src/test/java/rife/bld/extension/dokka/SourceSetTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright 2023-2024 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.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package rife.bld.extension.dokka;
-
-import org.junit.jupiter.api.Test;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.IntStream;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-class SourceSetTest {
- @Test
- void sourceSetCollectionsTest() {
- var args = new SourceSet()
- .classpath(List.of("path1", "path2"))
- .dependentSourceSets(Map.of("set1", "set2", "set3", "set4"))
- .externalDocumentationLinks(Map.of("link1", "link2", "link3", "link4"))
- .perPackageOptions(List.of("option1", "option2"))
- .samples(List.of("samples1", "samples1"))
- .suppressedFiles(List.of("sup1", "sup2"))
- .args();
-
- var matches = List.of(
- "-classpath", "path1;path2",
- "-dependentSourceSets", "set1/set2;set3/set4",
- "-externalDocumentationLinks", "link3^link4^^link1^link2",
- "-perPackageOptions", "option1;option2",
- "-samples", "samples1;samples1",
- "-suppressedFiles", "sup1;sup2"
- );
-
- assertThat(args).hasSize(matches.size());
-
- IntStream.range(0, args.size()).forEach(i -> assertThat(args.get(i)).isEqualTo(matches.get(i)));
- }
-
- @Test
- @SuppressWarnings("PMD.AvoidDuplicateLiterals")
- void sourceSetTest() throws IOException {
- var args = Files.readAllLines(Paths.get("src", "test", "resources", "dokka-sourceset-args.txt"));
-
- assertThat(args).isNotEmpty();
-
- var sourceSet = new SourceSet()
- .analysisPlatform(AnalysisPlatform.JVM)
- .apiVersion("1.0")
- .classpath("classpath1", "classpath2")
- .dependentSourceSets("moduleName", "sourceSetName")
- .displayName("name")
- .documentedVisibilities(DocumentedVisibility.PACKAGE, DocumentedVisibility.PRIVATE)
- .externalDocumentationLinks("url1", "packageListUrl1")
- .externalDocumentationLinks("url2", "packageListUrl2")
- .includes("includes1", "includes2")
- .jdkVersion(18)
- .languageVersion("2.0")
- .noJdkLink(true)
- .noSkipEmptyPackages(true)
- .noStdlibLink(true)
- .perPackageOptions("options1", "options2")
- .reportUndocumented(true)
- .samples("samples1", "sample2")
- .skipDeprecated(true)
- .sourceSetName("setName")
- .src("src1", "src2")
- .srcLink("path1", "remote1", "#suffix1")
- .srcLink("path2", "remote2", "#suffix2")
- .suppressedFiles("sup1", "sup2");
-
- var params = sourceSet.args();
-
- for (var p : args) {
- var found = false;
- for (var a : params) {
- if (a.startsWith(p)) {
- found = true;
- break;
- }
- }
- assertThat(found).as(p + " not found.").isTrue();
- }
-
- var matches = List.of(
- "-analysisPlatform", "jvm",
- "-apiVersion", "1.0",
- "-classpath", "classpath1;classpath2",
- "-dependentSourceSets", "moduleName/sourceSetName",
- "-displayName", "name",
- "-documentedVisibilities", "package;private",
- "-externalDocumentationLinks", "url1^packageListUrl1^^url2^packageListUrl2",
- "-jdkVersion", "18",
- "-includes", "includes1;includes2",
- "-languageVersion", "2.0",
- "-noJdkLink", "true",
- "-noSkipEmptyPackages", "true",
- "-noStdlibLink", "true",
- "-reportUndocumented", "true",
- "-perPackageOptions", "options1;options2",
- "-samples", "samples1;sample2",
- "-skipDeprecated", "true",
- "-src", "src1;src2",
- "-srcLink", "path1=remote1#suffix1;path2=remote2#suffix2",
- "-sourceSetName", "setName",
- "-suppressedFiles", "sup1;sup2");
-
- assertThat(params).hasSize(matches.size());
-
- IntStream.range(0, params.size()).forEach(i -> assertThat(params.get(i)).isEqualTo(matches.get(i)));
-
- sourceSet.classpath(List.of("classpath1", "classpath2"));
-
- IntStream.range(0, params.size()).forEach(i -> assertThat(params.get(i)).isEqualTo(matches.get(i)));
- }
-}
diff --git a/src/test/resources/dokka-args.txt b/src/test/resources/dokka-args.txt
deleted file mode 100644
index 4c9f29c..0000000
--- a/src/test/resources/dokka-args.txt
+++ /dev/null
@@ -1,16 +0,0 @@
--delayTemplateSubstitution
--failOnWarning
--globalLinks
--globalPackageOptions
--globalSrcLink
--includes
--loggingLevel
--moduleName
--moduleVersion
--noSuppressObviousFunctions
--offlineMode
--outputDir
--pluginsClasspath
--pluginsConfiguration
--sourceSet
--suppressInheritedMembers
diff --git a/src/test/resources/dokka-sourceset-args.txt b/src/test/resources/dokka-sourceset-args.txt
deleted file mode 100644
index 0699eb7..0000000
--- a/src/test/resources/dokka-sourceset-args.txt
+++ /dev/null
@@ -1,21 +0,0 @@
--analysisPlatform
--apiVersion
--classpath
--dependentSourceSets
--displayName
--documentedVisibilities
--externalDocumentationLinks
--includes
--jdkVersion
--languageVersion
--noJdkLink
--noSkipEmptyPackages
--noStdlibLink
--perPackageOptions
--reportUndocumented
--samples
--skipDeprecated
--sourceSetName
--src
--srcLink
--suppressedFiles
- *
- *
- * @param options ome pr more package configurations
- * @return this operation instance
- */
- public DokkaOperation globalPackageOptions(String... options) {
- Collections.addAll(globalPackageOptions_, options);
- return this;
- }
-
- /**
- * Sets the global list of package configurations.
- *
- *
- *
- * @param options the list of package configurations
- * @return this operation instance
- */
- public DokkaOperation globalPackageOptions(Collection
- *
- *
- * @param noSuppressObviousFunctions {@code true} or {@code false}
- * @return this operation instance
- */
- public DokkaOperation noSuppressObviousFunctions(Boolean noSuppressObviousFunctions) {
- noSuppressObviousFunctions_ = noSuppressObviousFunctions;
- return this;
- }
-
- /**
- * Sets whether to resolve remote files/links over network.
- *
- *
- *
- * @param perPackageOptions the list of per package options
- * @return this operation instance
- */
- public SourceSet perPackageOptions(Collection
- *
- *
- * @param perPackageOptions the list of per package options
- * @return this operation instance
- */
- public SourceSet perPackageOptions(String... perPackageOptions) {
- Collections.addAll(perPackageOptions_, perPackageOptions);
- return this;
- }
-
- /**
- * Sets whether to report undocumented declarations.
- *