Skip to content

Commit

Permalink
DokkaConfiguration: Use LinkedHashSet instead of Set to preserve orde…
Browse files Browse the repository at this point in the history
…r for includes (#2999)

* for markdown files for multi module description
  • Loading branch information
eunwoo-park-nhn committed May 23, 2023
1 parent d9c8c6c commit 7fbb75a
Show file tree
Hide file tree
Showing 9 changed files with 18 additions and 18 deletions.
4 changes: 2 additions & 2 deletions core/src/main/kotlin/defaultConfiguration.kt
Expand Up @@ -17,7 +17,7 @@ data class DokkaConfigurationImpl(
override val failOnWarning: Boolean = DokkaDefaults.failOnWarning,
override val delayTemplateSubstitution: Boolean = false,
override val suppressObviousFunctions: Boolean = DokkaDefaults.suppressObviousFunctions,
override val includes: Set<File> = emptySet(),
override val includes: LinkedHashSet<File> = linkedSetOf(),
override val suppressInheritedMembers: Boolean = DokkaDefaults.suppressInheritedMembers,
override val finalizeCoroutines: Boolean = true,
) : DokkaConfiguration
Expand All @@ -36,7 +36,7 @@ data class DokkaSourceSetImpl(
override val sourceRoots: Set<File> = emptySet(),
override val dependentSourceSets: Set<DokkaSourceSetID> = emptySet(),
override val samples: Set<File> = emptySet(),
override val includes: Set<File> = emptySet(),
override val includes: Set<File> = linkedSetOf(),
@Deprecated("Use [documentedVisibilities] property for a more flexible control over documented visibilities")
override val includeNonPublic: Boolean = DokkaDefaults.includeNonPublic,
override val reportUndocumented: Boolean = DokkaDefaults.reportUndocumented,
Expand Down
Expand Up @@ -52,7 +52,7 @@ class TestDokkaConfigurationBuilder {
modules = modules,
failOnWarning = failOnWarning,
suppressObviousFunctions = suppressObviousFunctions,
includes = includes.toSet(),
includes = LinkedHashSet(includes),
suppressInheritedMembers = suppressInheritedMembers,
delayTemplateSubstitution = delayTemplateSubstitution,
finalizeCoroutines = false
Expand Down Expand Up @@ -114,7 +114,7 @@ class DokkaSourceSetBuilder(
sourceRoots = sourceRoots.map(::File).toSet(),
dependentSourceSets = dependentSourceSets,
samples = samples.map(::File).toSet(),
includes = includes.map(::File).toSet(),
includes = LinkedHashSet(includes.map(::File)),
includeNonPublic = includeNonPublic,
documentedVisibilities = documentedVisibilities,
reportUndocumented = reportUndocumented,
Expand All @@ -140,7 +140,7 @@ val defaultSourceSet = DokkaSourceSetImpl(
sourceRoots = emptySet(),
dependentSourceSets = emptySet(),
samples = emptySet(),
includes = emptySet(),
includes = linkedSetOf(),
includeNonPublic = false,
documentedVisibilities = DokkaDefaults.documentedVisibilities,
reportUndocumented = false,
Expand Down
Expand Up @@ -88,9 +88,9 @@ abstract class AbstractTest<M : TestMethods, T : TestBuilder<M>, D : DokkaTestGe
localDirectory = testDirPath.toFile().resolve(link.localDirectory).absolutePath
)
}.toSet(),
includes = sourceSet.includes.map { file ->
includes = LinkedHashSet(sourceSet.includes.map { file ->
testDirPath.toFile().resolve(file)
}.toSet()
})
)
}
)
Expand Down
Expand Up @@ -78,7 +78,7 @@ class GlobalArguments(args: Array<String>) : DokkaConfiguration {
"Accepts multiple values separated by semicolons"
).delimiter(";")

override val includes: Set<File> by lazy { _includes.toSet() }
override val includes: LinkedHashSet<File> by lazy { LinkedHashSet(_includes) }

override val suppressInheritedMembers: Boolean by parser.option(
ArgType.Boolean,
Expand Down
Expand Up @@ -133,7 +133,7 @@ internal fun parseSourceSet(moduleName: String, args: Array<String>): DokkaConfi
.map { dependentSourceSetName -> dependentSourceSetName.split('/').let { DokkaSourceSetID(it[0], it[1]) } }
.toMutableSet()
override val samples = samples.toMutableSet()
override val includes = includes.toMutableSet()
override val includes = LinkedHashSet(includes)
@Deprecated("Use [documentedVisibilities] property for a more flexible control over documented visibilities")
override val includeNonPublic = includeNonPublic
override val reportUndocumented = reportUndocumented
Expand Down
Expand Up @@ -11,7 +11,7 @@ internal fun GradleDokkaSourceSetBuilder.toDokkaSourceSetImpl(): DokkaSourceSetI
sourceRoots = sourceRoots.toSet(),
dependentSourceSets = dependentSourceSets.get().toSet(),
samples = samples.toSet(),
includes = includes.toSet(),
includes = LinkedHashSet<File>(includes.toList()),
includeNonPublic = includeNonPublic.get(),
documentedVisibilities = documentedVisibilities.get(),
reportUndocumented = reportUndocumented.get(),
Expand Down
Expand Up @@ -67,9 +67,9 @@ abstract class DokkaMultiModuleTask : AbstractDokkaParentTask() {
}

@get:Input
internal val childDokkaTaskIncludes: Map<TaskPath, Set<File>>
internal val childDokkaTaskIncludes: Map<TaskPath, LinkedHashSet<File>>
get() = childDokkaTasks.filterIsInstance<DokkaTaskPartial>().associate { task ->
task.path to task.dokkaSourceSets.flatMap { it.includes }.toSet()
task.path to LinkedHashSet(task.dokkaSourceSets.flatMap { it.includes })
}

// The method contains a reference to internal Gradle API that is nice not to use.
Expand Down Expand Up @@ -101,11 +101,11 @@ abstract class DokkaMultiModuleTask : AbstractDokkaParentTask() {
relativePathToOutputDirectory = targetChildOutputDirectory(dokkaTask).get().asFile.relativeTo(
outputDirectory.asFile.get()
),
includes = childDokkaTaskIncludes[dokkaTask.path].orEmpty(),
includes = childDokkaTaskIncludes[dokkaTask.path] ?: linkedSetOf(),
sourceOutputDirectory = dokkaTask.outputDirectory.asFile.get(),
)
},
includes = includes.toSet(),
includes = LinkedHashSet(includes.toList()),
)
}
}
Expand Up @@ -101,12 +101,12 @@ class DokkaMultiModuleTaskTest {
pluginsClasspath = emptyList(),
failOnWarning = true,
offlineMode = true,
includes = setOf(topLevelInclude),
includes = linkedSetOf(topLevelInclude),
modules = listOf(
DokkaModuleDescriptionImpl(
name = "child",
relativePathToOutputDirectory = File("child"),
includes = setOf(include1, include2),
includes = linkedSetOf(include1, include2),
sourceOutputDirectory = childDokkaTask.outputDirectory.get().asFile
)
)
Expand Down Expand Up @@ -186,7 +186,7 @@ class DokkaMultiModuleTaskTest {

assertEquals(
mapOf(
":child:childDokkaTask" to setOf(
":child:childDokkaTask" to linkedSetOf(
childDokkaTaskInclude1,
childDokkaTaskInclude2,
childDokkaTaskInclude3
Expand Down
2 changes: 1 addition & 1 deletion runners/maven-plugin/src/main/kotlin/DokkaMojo.kt
Expand Up @@ -370,7 +370,7 @@ abstract class AbstractDokkaMojo(private val defaultDokkaPlugins: List<Dependenc
sourceRoots = sourceDirectories.map(::File).toSet(),
dependentSourceSets = emptySet(),
samples = samples.map(::File).toSet(),
includes = includes.map(::File).toSet(),
includes = LinkedHashSet<File>(includes.map(::File)),
includeNonPublic = includeNonPublic,
documentedVisibilities = documentedVisibilities,
reportUndocumented = reportUndocumented,
Expand Down

0 comments on commit 7fbb75a

Please sign in to comment.