aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/src/main/kotlin/defaultConfiguration.kt6
-rw-r--r--runners/cli/src/main/kotlin/cli/main.kt2
-rw-r--r--runners/cli/src/test/kotlin/cli/CliTest.kt13
-rw-r--r--runners/cli/src/test/resources/my-file-no-sourceset-options.json13
4 files changed, 30 insertions, 4 deletions
diff --git a/core/src/main/kotlin/defaultConfiguration.kt b/core/src/main/kotlin/defaultConfiguration.kt
index d4f92f33..3ab1782c 100644
--- a/core/src/main/kotlin/defaultConfiguration.kt
+++ b/core/src/main/kotlin/defaultConfiguration.kt
@@ -42,9 +42,9 @@ data class DokkaSourceSetImpl(
override val skipEmptyPackages: Boolean = DokkaDefaults.skipEmptyPackages,
override val skipDeprecated: Boolean = DokkaDefaults.skipDeprecated,
override val jdkVersion: Int = DokkaDefaults.jdkVersion,
- override val sourceLinks: Set<SourceLinkDefinitionImpl> = emptySet(),
- override val perPackageOptions: List<PackageOptionsImpl> = emptyList(),
- override val externalDocumentationLinks: Set<ExternalDocumentationLinkImpl> = emptySet(),
+ override val sourceLinks: Set<SourceLinkDefinitionImpl> = mutableSetOf(),
+ override val perPackageOptions: List<PackageOptionsImpl> = mutableListOf(),
+ override val externalDocumentationLinks: Set<ExternalDocumentationLinkImpl> = mutableSetOf(),
override val languageVersion: String? = null,
override val apiVersion: String? = null,
override val noStdlibLink: Boolean = DokkaDefaults.noStdlibLink,
diff --git a/runners/cli/src/main/kotlin/cli/main.kt b/runners/cli/src/main/kotlin/cli/main.kt
index 4768828b..c2a68d68 100644
--- a/runners/cli/src/main/kotlin/cli/main.kt
+++ b/runners/cli/src/main/kotlin/cli/main.kt
@@ -288,7 +288,7 @@ private fun parseSourceSet(moduleName: String, args: Array<String>): DokkaConfig
override val jdkVersion = jdkVersion
override val sourceLinks = sourceLinks.toMutableSet()
override val analysisPlatform = analysisPlatform
- override val perPackageOptions = parsePerPackageOptions(perPackageOptions)
+ override val perPackageOptions = parsePerPackageOptions(perPackageOptions).toMutableList()
override val externalDocumentationLinks = parseLinks(externalDocumentationLinks).toMutableSet()
override val languageVersion = languageVersion
override val apiVersion = apiVersion
diff --git a/runners/cli/src/test/kotlin/cli/CliTest.kt b/runners/cli/src/test/kotlin/cli/CliTest.kt
index 5910e938..967003dc 100644
--- a/runners/cli/src/test/kotlin/cli/CliTest.kt
+++ b/runners/cli/src/test/kotlin/cli/CliTest.kt
@@ -27,4 +27,17 @@ class CliIntegrationTest {
}
+ @Test
+ fun `should not fail when no sourceset options are specified`() {
+ val jsonPath = Paths.get(javaClass.getResource("/my-file-no-sourceset-options.json")?.toURI() ?: throw IllegalStateException("No JSON found!")).toFile().toString()
+ val globalArguments = GlobalArguments(arrayOf(jsonPath))
+
+ val configuration = initializeConfiguration(globalArguments)
+
+ configuration.sourceSets.forEach {
+ assertTrue(it.perPackageOptions.isEmpty())
+ assertTrue(it.sourceLinks.isEmpty())
+ assertTrue(it.externalDocumentationLinks.size == 2) // there are default values, java and kotlin stdlibs
+ }
+ }
}
diff --git a/runners/cli/src/test/resources/my-file-no-sourceset-options.json b/runners/cli/src/test/resources/my-file-no-sourceset-options.json
new file mode 100644
index 00000000..3a8643d1
--- /dev/null
+++ b/runners/cli/src/test/resources/my-file-no-sourceset-options.json
@@ -0,0 +1,13 @@
+{
+ "outputDir": "build/docs",
+ "sourceSets": [
+ {
+ "moduleDisplayName": "Sample",
+ "sourceSetID": {
+ "scopeId": "sample",
+ "sourceSetName": "main"
+ },
+ "sourceRoots": ["sample"]
+ }
+ ]
+}