From 6ad3984ed2204750efc7cc99afcd6f3bfa9d8a16 Mon Sep 17 00:00:00 2001 From: Andrzej Ratajczak Date: Tue, 11 Jan 2022 15:04:38 +0100 Subject: [PATCH] Move initialization of global arguments to extension function in core module --- core/api/core.api | 1 + core/src/main/kotlin/configuration.kt | 15 +++++++++++++++ integration-tests/cli/build.gradle.kts | 3 --- runners/cli/build.gradle.kts | 3 --- runners/cli/src/main/kotlin/cli/main.kt | 13 +------------ 5 files changed, 17 insertions(+), 18 deletions(-) diff --git a/core/api/core.api b/core/api/core.api index 14501dd34d..8b9e5c7b02 100644 --- a/core/api/core.api +++ b/core/api/core.api @@ -5,6 +5,7 @@ public final class org/jetbrains/dokka/ConfigurationKt { public static synthetic fun ExternalDocumentationLink$default (Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl; public static synthetic fun ExternalDocumentationLink$default (Ljava/net/URL;Ljava/net/URL;ILjava/lang/Object;)Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl; public static final fun GlobalDokkaConfiguration (Ljava/lang/String;)Lorg/jetbrains/dokka/GlobalDokkaConfiguration; + public static final fun apply (Lorg/jetbrains/dokka/DokkaConfiguration;Lorg/jetbrains/dokka/GlobalDokkaConfiguration;)Lorg/jetbrains/dokka/DokkaConfiguration; public static final fun build (Ljava/lang/Iterable;)Ljava/util/List; public static final fun toJsonString (Lorg/jetbrains/dokka/DokkaConfiguration;)Ljava/lang/String; public static final fun toJsonString (Lorg/jetbrains/dokka/plugability/ConfigurableBlock;)Ljava/lang/String; diff --git a/core/src/main/kotlin/configuration.kt b/core/src/main/kotlin/configuration.kt index f298a5d415..038a5bb777 100644 --- a/core/src/main/kotlin/configuration.kt +++ b/core/src/main/kotlin/configuration.kt @@ -3,6 +3,7 @@ package org.jetbrains.dokka import org.jetbrains.dokka.plugability.ConfigurableBlock +import org.jetbrains.dokka.utilities.cast import org.jetbrains.dokka.utilities.parseJson import org.jetbrains.dokka.utilities.toJsonString import java.io.File @@ -100,6 +101,20 @@ data class GlobalDokkaConfiguration( fun GlobalDokkaConfiguration(json: String): GlobalDokkaConfiguration = parseJson(json) +fun DokkaConfiguration.apply(globals: GlobalDokkaConfiguration): DokkaConfiguration = this.apply { + sourceSets.forEach { + it.perPackageOptions.cast>().addAll(globals.perPackageOptions ?: emptyList()) + } + + sourceSets.forEach { + it.externalDocumentationLinks.cast>().addAll(globals.externalDocumentationLinks ?: emptyList()) + } + + sourceSets.forEach { + it.sourceLinks.cast>().addAll(globals.sourceLinks ?: emptyList()) + } +} + fun DokkaConfiguration.toJsonString(): String = toJsonString(this) fun T.toJsonString(): String = toJsonString(this) diff --git a/integration-tests/cli/build.gradle.kts b/integration-tests/cli/build.gradle.kts index 778a3bd23a..d9961f8f28 100644 --- a/integration-tests/cli/build.gradle.kts +++ b/integration-tests/cli/build.gradle.kts @@ -12,8 +12,6 @@ evaluationDependsOn(":plugins:base") dependencies { implementation(kotlin("stdlib")) implementation(kotlin("test-junit")) - val jackson_version: String by project - implementation("com.fasterxml.jackson.module:jackson-module-kotlin:$jackson_version") } /* Create a fat base plugin jar for cli tests */ @@ -25,7 +23,6 @@ val basePluginShadow: Configuration by configurations.creating { dependencies { basePluginShadow(project(":plugins:base")) - } val basePluginShadowJar by tasks.register("basePluginShadowJar", ShadowJar::class) { configurations = listOf(basePluginShadow) diff --git a/runners/cli/build.gradle.kts b/runners/cli/build.gradle.kts index 9e8497f626..2785e92fdd 100644 --- a/runners/cli/build.gradle.kts +++ b/runners/cli/build.gradle.kts @@ -10,9 +10,6 @@ dependencies { implementation("org.jetbrains.kotlinx:kotlinx-cli-jvm:0.3.3") implementation(project(":core")) implementation(kotlin("stdlib")) - val jackson_version: String by project - implementation("com.fasterxml.jackson.module:jackson-module-kotlin:$jackson_version") - testImplementation(kotlin("test-junit")) } diff --git a/runners/cli/src/main/kotlin/cli/main.kt b/runners/cli/src/main/kotlin/cli/main.kt index b5e1d2a3fd..1dc32a45a5 100644 --- a/runners/cli/src/main/kotlin/cli/main.kt +++ b/runners/cli/src/main/kotlin/cli/main.kt @@ -408,19 +408,8 @@ fun initializeConfiguration(globalArguments: GlobalArguments): DokkaConfiguratio val jsonContent = Paths.get(checkNotNull(globalArguments.json)).toFile().readText() val globals = GlobalDokkaConfiguration(jsonContent) val dokkaConfigurationImpl = DokkaConfigurationImpl(jsonContent) - dokkaConfigurationImpl.apply { - sourceSets.forEach { - it.perPackageOptions.cast>().addAll(globals.perPackageOptions ?: emptyList()) - } - - sourceSets.forEach { - it.externalDocumentationLinks.cast>().addAll(globals.externalDocumentationLinks ?: emptyList()) - } - - sourceSets.forEach { - it.sourceLinks.cast>().addAll(globals.sourceLinks ?: emptyList()) - } + dokkaConfigurationImpl.apply(globals).apply { sourceSets.forEach { it.externalDocumentationLinks.cast>().addAll(defaultLinks(it)) }