aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--README.md9
-rw-r--r--build.gradle4
-rw-r--r--core/build.gradle2
-rw-r--r--core/src/main/kotlin/Analysis/AnalysisEnvironment.kt68
-rw-r--r--core/src/main/kotlin/Analysis/CoreKotlinCacheService.kt30
-rw-r--r--core/src/main/kotlin/Analysis/CoreProjectFileIndex.kt30
-rw-r--r--core/src/main/kotlin/Kotlin/DescriptorDocumentationParser.kt2
-rw-r--r--core/src/main/kotlin/Kotlin/DocumentationBuilder.kt10
-rw-r--r--core/src/main/kotlin/Kotlin/KotlinAsJavaDescriptorSignatureProvider.kt2
-rw-r--r--gradle.properties11
-rw-r--r--gradle/wrapper/gradle-wrapper.properties2
-rw-r--r--integration/build.gradle4
-rw-r--r--integration/src/main/kotlin/org/jetbrains/dokka/ReflectDsl.kt2
-rw-r--r--runners/android-gradle-plugin/build.gradle9
-rw-r--r--runners/gradle-integration-tests/build.gradle5
-rw-r--r--runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/AndroidAppTest.kt5
-rw-r--r--runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/AndroidMultiFlavourAppTest.kt4
-rw-r--r--runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/BasicTest.kt4
-rw-r--r--runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/JavadocRSuppressionTest.kt4
-rw-r--r--runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/MultiProjectSingleOutTest.kt3
-rw-r--r--runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/RebuildAfterSourceChangeTest.kt5
-rw-r--r--runners/gradle-integration-tests/testData/basic/build.gradle1
-rw-r--r--runners/gradle-integration-tests/testData/basic/classDir/p1/MyBinaryClass.classbin0 -> 670 bytes
-rw-r--r--runners/gradle-integration-tests/testData/basic/fileTree.txt3
-rw-r--r--runners/gradle-integration-tests/testData/basic/src/main/kotlin/demo/HelloWorld.kt4
-rw-r--r--runners/gradle-plugin/build.gradle10
-rw-r--r--runners/gradle-plugin/src/main/kotlin/main.kt27
-rw-r--r--runners/maven-plugin/build.gradle5
29 files changed, 214 insertions, 55 deletions
diff --git a/.gitignore b/.gitignore
index a4f7f56b..fe5edc3b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -89,4 +89,6 @@ gradle-app.setting
!lib/*.jar
local.properties
-android.local.properties \ No newline at end of file
+android.local.properties
+
+!runners/gradle-integration-tests/testData/basic/classDir/**/*.class \ No newline at end of file
diff --git a/README.md b/README.md
index 383d238b..170ecfa6 100644
--- a/README.md
+++ b/README.md
@@ -72,7 +72,7 @@ dokka {
skipDeprecated = false
// Emit warnings about not documented members. Applies globally, also can be overridden by packageOptions
- reportNotDocumented = true
+ reportUndocumented = true
skipEmptyPackages = true // Do not create index pages for empty packages
@@ -132,6 +132,11 @@ dokka {
reportUndocumented = true // Emit warnings about not documented members
includeNonPublic = false
}
+ // Suppress a package
+ packageOptions {
+ prefix = "kotlin.internal" // will match kotlin.internal and all sub-packages of it
+ suppress = true
+ }
}
```
@@ -236,7 +241,7 @@ The available configuration options are shown below:
<!-- Default: ${project.artifactId} -->
<moduleName>data</moduleName>
<!-- See list of possible formats below -->
- <outFormat>html</outFormat>
+ <outputFormat>html</outputFormat>
<!-- Default: ${project.basedir}/target/dokka -->
<outputDir>some/out/dir</outputDir>
diff --git a/build.gradle b/build.gradle
index 5772bc5d..35ec271e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,6 +6,7 @@ allprojects {
def repo = {
artifactPattern("https://teamcity.jetbrains.com/guestAuth/repository/download/Kotlin_dev_CompilerAllPlugins/[revision]/internal/[module](.[ext])")
+ artifactPattern("https://teamcity.jetbrains.com/guestAuth/repository/download/IntelliJMarkdownParser_Build/[revision]/([module]_[ext]/)[module](.[ext])")
}
buildscript {
@@ -21,7 +22,7 @@ allprojects {
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7'
classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.1'
- classpath "com.gradle.publish:plugin-publish-plugin:0.9.6"
+ classpath "com.gradle.publish:plugin-publish-plugin:0.9.10"
}
}
@@ -71,6 +72,7 @@ task wrapper(type: Wrapper) {
def versions = DependenciesVersionGetter.getVersions(project, bundled_kotlin_compiler_version)
ext.ideaVersion = versions["idea.build.id"]
+ext.markdownVersion = versions["markdown.build.id"].replace("%20", " ")
configurations {
ideaIC
diff --git a/core/build.gradle b/core/build.gradle
index d37b98b3..a87d3c97 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -29,7 +29,7 @@ dependencies {
compile "org.jetbrains.kotlin:kotlin-script-runtime:$bundled_kotlin_compiler_version"
compile "teamcity:kotlin-ide-common:$bundled_kotlin_compiler_version"
- compile "teamcity:markdown:$bundled_kotlin_compiler_version"
+ compile "teamcity:markdown:$markdownVersion"
compile intellijCoreAnalysis()
diff --git a/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt b/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt
index 003c6835..5522d4f0 100644
--- a/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt
+++ b/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt
@@ -1,5 +1,6 @@
package org.jetbrains.dokka
+import com.google.common.collect.ImmutableMap
import com.intellij.core.CoreApplicationEnvironment
import com.intellij.core.CoreModuleManager
import com.intellij.mock.MockComponentManager
@@ -13,11 +14,11 @@ import com.intellij.openapi.roots.ProjectFileIndex
import com.intellij.openapi.roots.ProjectRootManager
import com.intellij.openapi.util.Disposer
import com.intellij.openapi.vfs.StandardFileSystems
-import com.intellij.openapi.vfs.VirtualFileManager
import com.intellij.psi.PsiElement
import com.intellij.psi.search.GlobalSearchScope
import com.intellij.util.io.URLUtil
import org.jetbrains.kotlin.analyzer.*
+import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
@@ -35,16 +36,19 @@ import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
import org.jetbrains.kotlin.load.java.structure.impl.JavaClassImpl
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.platform.JvmBuiltIns
-import org.jetbrains.kotlin.psi.KtDeclaration
-import org.jetbrains.kotlin.psi.KtElement
-import org.jetbrains.kotlin.psi.KtFile
+import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.resolve.BindingContext
+import org.jetbrains.kotlin.resolve.BindingTrace
import org.jetbrains.kotlin.resolve.CompilerEnvironment
+import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
import org.jetbrains.kotlin.resolve.jvm.JvmAnalyzerFacade
import org.jetbrains.kotlin.resolve.jvm.JvmPlatformParameters
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
import org.jetbrains.kotlin.resolve.lazy.ResolveSession
+import org.jetbrains.kotlin.types.KotlinType
+import org.jetbrains.kotlin.util.slicedMap.ReadOnlySlice
+import org.jetbrains.kotlin.util.slicedMap.WritableSlice
import java.io.File
/**
@@ -114,11 +118,17 @@ class AnalysisEnvironment(val messageCollector: MessageCollector) : Disposable {
val builtIns = JvmBuiltIns(projectContext.storageManager)
- val javaRoots = run {
- val jvfs = VirtualFileManager.getInstance().getFileSystem(StandardFileSystems.JAR_PROTOCOL)
+ val javaRoots = classpath
+ .mapNotNull {
+ val rootFile = when {
+ it.extension == "jar" ->
+ StandardFileSystems.jar().findFileByPath("${it.absolutePath}${URLUtil.JAR_SEPARATOR}")
+ else ->
+ StandardFileSystems.local().findFileByPath(it.absolutePath)
+ }
- classpath.map { JavaRoot(jvfs.findFileByPath("${it.absolutePath}${URLUtil.JAR_SEPARATOR}")!!, JavaRoot.RootType.BINARY) }
- }
+ rootFile?.let { JavaRoot(it, JavaRoot.RootType.BINARY) }
+ }
val resolverForProject = ResolverForProjectImpl(
"Dokka",
@@ -153,7 +163,11 @@ class AnalysisEnvironment(val messageCollector: MessageCollector) : Disposable {
val resolverForModule = resolverForProject.resolverForModule(module)
val moduleDescriptor = resolverForProject.descriptorForModule(module)
builtIns.initialize(moduleDescriptor, true)
- return DokkaResolutionFacade(environment.project, moduleDescriptor, resolverForModule)
+ val created = DokkaResolutionFacade(environment.project, moduleDescriptor, resolverForModule)
+ val projectComponentManager = environment.project as MockComponentManager
+ projectComponentManager.registerService(KotlinCacheService::class.java, CoreKotlinCacheService(created))
+
+ return created
}
fun loadLanguageVersionSettings(languageVersionString: String?, apiVersionString: String?) {
@@ -242,6 +256,42 @@ class DokkaResolutionFacade(override val project: Project,
val resolveSession: ResolveSession get() = getFrontendService(ResolveSession::class.java)
override fun analyze(element: KtElement, bodyResolveMode: BodyResolveMode): BindingContext {
+ if (element is KtDeclaration) {
+ val descriptor = resolveToDescriptor(element)
+ return object : BindingContext {
+ override fun <K : Any?, V : Any?> getKeys(p0: WritableSlice<K, V>?): Collection<K> {
+ throw UnsupportedOperationException()
+ }
+
+ override fun getType(p0: KtExpression): KotlinType? {
+ throw UnsupportedOperationException()
+ }
+
+ override fun <K : Any?, V : Any?> get(slice: ReadOnlySlice<K, V>?, key: K): V? {
+ if (key != element) {
+ throw UnsupportedOperationException()
+ }
+ return when {
+ slice == BindingContext.DECLARATION_TO_DESCRIPTOR -> descriptor as V
+ slice == BindingContext.PRIMARY_CONSTRUCTOR_PARAMETER && (element as KtParameter).hasValOrVar() -> descriptor as V
+ else -> null
+ }
+ }
+
+ override fun getDiagnostics(): Diagnostics {
+ throw UnsupportedOperationException()
+ }
+
+ override fun addOwnDataTo(p0: BindingTrace, p1: Boolean) {
+ throw UnsupportedOperationException()
+ }
+
+ override fun <K : Any?, V : Any?> getSliceContents(p0: ReadOnlySlice<K, V>): ImmutableMap<K, V> {
+ throw UnsupportedOperationException()
+ }
+
+ }
+ }
throw UnsupportedOperationException()
}
diff --git a/core/src/main/kotlin/Analysis/CoreKotlinCacheService.kt b/core/src/main/kotlin/Analysis/CoreKotlinCacheService.kt
new file mode 100644
index 00000000..31b8ffc7
--- /dev/null
+++ b/core/src/main/kotlin/Analysis/CoreKotlinCacheService.kt
@@ -0,0 +1,30 @@
+package org.jetbrains.dokka
+
+import com.intellij.psi.PsiFile
+import org.jetbrains.kotlin.analyzer.ModuleInfo
+import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
+import org.jetbrains.kotlin.idea.resolve.ResolutionFacade
+import org.jetbrains.kotlin.psi.KtElement
+import org.jetbrains.kotlin.resolve.TargetPlatform
+import org.jetbrains.kotlin.resolve.diagnostics.KotlinSuppressCache
+
+
+class CoreKotlinCacheService(private val resolutionFacade: DokkaResolutionFacade) : KotlinCacheService {
+ override fun getResolutionFacade(elements: List<KtElement>): ResolutionFacade {
+ return resolutionFacade
+ }
+
+ override fun getResolutionFacadeByFile(file: PsiFile, platform: TargetPlatform): ResolutionFacade {
+ return resolutionFacade
+ }
+
+ override fun getResolutionFacadeByModuleInfo(moduleInfo: ModuleInfo, platform: TargetPlatform): ResolutionFacade? {
+ return resolutionFacade
+ }
+
+ override fun getSuppressionCache(): KotlinSuppressCache {
+ throw UnsupportedOperationException()
+ }
+
+}
+
diff --git a/core/src/main/kotlin/Analysis/CoreProjectFileIndex.kt b/core/src/main/kotlin/Analysis/CoreProjectFileIndex.kt
index 2f2f94b3..4f6a7c76 100644
--- a/core/src/main/kotlin/Analysis/CoreProjectFileIndex.kt
+++ b/core/src/main/kotlin/Analysis/CoreProjectFileIndex.kt
@@ -228,24 +228,26 @@ class CoreProjectFileIndex(private val project: Project, contentRoots: List<Cont
}
private val moduleSourceOrderEntry = object : ModuleSourceOrderEntry {
- override fun getFiles(p0: OrderRootType?): Array<out VirtualFile> {
+ override fun getFiles(p0: OrderRootType): Array<VirtualFile> {
throw UnsupportedOperationException()
}
- override fun getPresentableName(): String {
+ override fun getUrls(p0: OrderRootType): Array<String> {
throw UnsupportedOperationException()
}
- override fun getUrls(p0: OrderRootType?): Array<out String> {
+ override fun <R : Any?> accept(p0: RootPolicy<R>, p1: R?): R {
throw UnsupportedOperationException()
}
- override fun getOwnerModule(): Module = module
- override fun <R : Any?> accept(p0: RootPolicy<R>?, p1: R?): R {
+ override fun getPresentableName(): String {
throw UnsupportedOperationException()
}
+ override fun getOwnerModule(): Module = module
+
+
override fun isValid(): Boolean {
throw UnsupportedOperationException()
}
@@ -262,29 +264,29 @@ class CoreProjectFileIndex(private val project: Project, contentRoots: List<Cont
}
private val sdkOrderEntry = object : JdkOrderEntry {
- override fun getJdkName(): String? {
+ override fun getFiles(p0: OrderRootType): Array<VirtualFile> {
throw UnsupportedOperationException()
}
- override fun getJdk(): Sdk = sdk
-
- override fun getFiles(p0: OrderRootType?): Array<out VirtualFile> {
+ override fun getUrls(p0: OrderRootType): Array<String> {
throw UnsupportedOperationException()
}
- override fun getPresentableName(): String {
+ override fun <R : Any?> accept(p0: RootPolicy<R>, p1: R?): R {
throw UnsupportedOperationException()
}
- override fun getUrls(p0: OrderRootType?): Array<out String> {
+ override fun getJdkName(): String? {
throw UnsupportedOperationException()
}
- override fun getOwnerModule(): Module {
+ override fun getJdk(): Sdk = sdk
+
+ override fun getPresentableName(): String {
throw UnsupportedOperationException()
}
- override fun <R : Any?> accept(p0: RootPolicy<R>?, p1: R?): R {
+ override fun getOwnerModule(): Module {
throw UnsupportedOperationException()
}
@@ -358,7 +360,7 @@ class CoreProjectFileIndex(private val project: Project, contentRoots: List<Cont
override fun getRootModel(p0: Module): ModuleRootModel = this@MyModuleRootManager
})
- override fun <T : Any?> getModuleExtension(p0: Class<T>?): T {
+ override fun <T : Any?> getModuleExtension(p0: Class<T>): T {
throw UnsupportedOperationException()
}
diff --git a/core/src/main/kotlin/Kotlin/DescriptorDocumentationParser.kt b/core/src/main/kotlin/Kotlin/DescriptorDocumentationParser.kt
index eb8c12d0..f2d9d3a7 100644
--- a/core/src/main/kotlin/Kotlin/DescriptorDocumentationParser.kt
+++ b/core/src/main/kotlin/Kotlin/DescriptorDocumentationParser.kt
@@ -81,7 +81,7 @@ class DescriptorDocumentationParser
val suppressAnnotation = annotations.findAnnotation(FqName(Suppress::class.qualifiedName!!))
return if (suppressAnnotation != null) {
@Suppress("UNCHECKED_CAST")
- (suppressAnnotation.argumentValue("names") as List<StringValue>).any { it.value == "NOT_DOCUMENTED" }
+ (suppressAnnotation.argumentValue("names")?.value as List<StringValue>).any { it.value == "NOT_DOCUMENTED" }
} else containingDeclaration?.isSuppressWarning() ?: false
}
diff --git a/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt b/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt
index 61bf50d6..916f89c9 100644
--- a/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt
+++ b/core/src/main/kotlin/Kotlin/DocumentationBuilder.kt
@@ -15,7 +15,9 @@ import org.jetbrains.kotlin.js.resolve.diagnostics.findPsi
import org.jetbrains.kotlin.kdoc.psi.impl.KDocSection
import org.jetbrains.kotlin.lexer.KtTokens
import org.jetbrains.kotlin.load.java.structure.impl.JavaClassImpl
+import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
+import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtModifierListOwner
import org.jetbrains.kotlin.psi.KtParameter
import org.jetbrains.kotlin.resolve.DescriptorUtils
@@ -779,6 +781,14 @@ class DocumentationBuilder
"\"" + StringUtil.escapeStringCharacters(value) + "\""
is EnumEntrySyntheticClassDescriptor ->
value.containingDeclaration.name.asString() + "." + value.name.asString()
+ is Pair<*, *> -> {
+ val (classId, name) = value
+ if (classId is ClassId && name is Name) {
+ classId.shortClassName.asString() + "." + name.asString()
+ } else {
+ value.toString()
+ }
+ }
else -> value.toString()
}.let { valueString ->
DocumentationNode(valueString, Content.Empty, NodeKind.Value)
diff --git a/core/src/main/kotlin/Kotlin/KotlinAsJavaDescriptorSignatureProvider.kt b/core/src/main/kotlin/Kotlin/KotlinAsJavaDescriptorSignatureProvider.kt
index 266361f2..a3be658e 100644
--- a/core/src/main/kotlin/Kotlin/KotlinAsJavaDescriptorSignatureProvider.kt
+++ b/core/src/main/kotlin/Kotlin/KotlinAsJavaDescriptorSignatureProvider.kt
@@ -17,6 +17,6 @@ class KotlinAsJavaDescriptorSignatureProvider : DescriptorSignatureProvider {
}
return getSignature(javaLikePsi) ?:
- throw UnsupportedOperationException("Don't know how to calculate signature for $forDesc")
+ "not implemented for $forDesc with psi: $sourcePsi"
}
} \ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index e046e1a3..0e98fc46 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,13 +1,10 @@
-dokka_version=0.9.16
+dokka_version=0.9.17-SNAPSHOT
dokka_publication_channel=dokka
#Kotlin compiler and plugin
-bundled_kotlin_compiler_version=1.2.20-dev-419
-kotlin_version=1.2.0-rc-39
-kotlin_for_gradle_runtime_version=1.0.7
-
-#IntelliJ plugin to download openapi.jar
-gradle_intellij_plugin_version=0.3.0-SNAPSHOT
+bundled_kotlin_compiler_version=1.2.40-dev-529
+kotlin_version=1.2.21
+kotlin_for_gradle_runtime_version=1.1.60
ant_version=1.9.6
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 590f0e81..610ad4c5 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.3-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-all.zip
diff --git a/integration/build.gradle b/integration/build.gradle
index 32ca3454..24d59edf 100644
--- a/integration/build.gradle
+++ b/integration/build.gradle
@@ -12,7 +12,7 @@ sourceCompatibility = 1.8
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
languageVersion = "1.2"
- apiVersion = "1.0"
+ apiVersion = "1.1"
jvmTarget = "1.8"
}
}
@@ -20,7 +20,7 @@ tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
dependencies {
compileOnly group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib', version: kotlin_for_gradle_runtime_version
compileOnly group: 'org.jetbrains.kotlin', name: 'kotlin-reflect', version: kotlin_for_gradle_runtime_version
- compile('com.github.yole:jkid:7d9c529c87') {
+ compile('com.github.yole:jkid:8fc7f12e1a') {
transitive = false
}
} \ No newline at end of file
diff --git a/integration/src/main/kotlin/org/jetbrains/dokka/ReflectDsl.kt b/integration/src/main/kotlin/org/jetbrains/dokka/ReflectDsl.kt
index 3c9bf156..1984a3e5 100644
--- a/integration/src/main/kotlin/org/jetbrains/dokka/ReflectDsl.kt
+++ b/integration/src/main/kotlin/org/jetbrains/dokka/ReflectDsl.kt
@@ -1,6 +1,8 @@
package org.jetbrains.dokka
import kotlin.reflect.*
+import kotlin.reflect.full.memberFunctions
+import kotlin.reflect.full.memberProperties
import kotlin.reflect.jvm.isAccessible
object ReflectDsl {
diff --git a/runners/android-gradle-plugin/build.gradle b/runners/android-gradle-plugin/build.gradle
index 5050fd87..72d1be9e 100644
--- a/runners/android-gradle-plugin/build.gradle
+++ b/runners/android-gradle-plugin/build.gradle
@@ -1,3 +1,4 @@
+import com.gradle.publish.DependenciesBuilder
import org.jetbrains.CorrectShadowPublishing
apply plugin: 'java'
@@ -13,7 +14,7 @@ tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
freeCompilerArgs += "-Xjsr305=strict"
languageVersion = "1.2"
- apiVersion = "1.0"
+ apiVersion = "1.1"
jvmTarget = "1.8"
}
}
@@ -87,6 +88,12 @@ pluginBundle {
}
}
+ withDependencies { List<Dependency> list ->
+ list.clear()
+ def builder = new DependenciesBuilder()
+ builder.addUniqueScopedDependencies(list, configurations.shadow, "compile")
+ }
+
mavenCoordinates {
groupId = "org.jetbrains.dokka"
artifactId = "dokka-android-gradle-plugin"
diff --git a/runners/gradle-integration-tests/build.gradle b/runners/gradle-integration-tests/build.gradle
index 1809589f..a681c82e 100644
--- a/runners/gradle-integration-tests/build.gradle
+++ b/runners/gradle-integration-tests/build.gradle
@@ -21,9 +21,8 @@ configurations {
dependencies {
- testCompile group: 'org.jetbrains.kotlin', name: 'kotlin-runtime', version: kotlin_for_gradle_runtime_version
- testCompile group: 'org.jetbrains.kotlin', name: 'kotlin-reflect', version: kotlin_for_gradle_runtime_version
- testCompile group: 'org.jetbrains.kotlin', name: 'kotlin-test', version: kotlin_for_gradle_runtime_version
+ testCompileOnly group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib', version: kotlin_for_gradle_runtime_version
+ testCompile group: 'org.jetbrains.kotlin', name: 'kotlin-test-junit', version: kotlin_for_gradle_runtime_version
testCompile ideaRT()
dokkaPlugin project(path: ':runners:gradle-plugin', configuration: 'shadow')
diff --git a/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/AndroidAppTest.kt b/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/AndroidAppTest.kt
index ba70479f..bbb63909 100644
--- a/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/AndroidAppTest.kt
+++ b/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/AndroidAppTest.kt
@@ -17,4 +17,9 @@ class AndroidAppTest : AbstractAndroidAppTest("androidApp") {
fun `test kotlin 1_0_7 and gradle 2_14_1 and abt 2_2_3`() {
doTest("2.14.1", "1.0.7", AndroidPluginParams("2.2.3", "25.0.0", 24))
}
+
+ @Test
+ fun `test kotlin 1_2_20 and gradle 4_5 and abt 3_0_1`() {
+ doTest("4.5", "1.2.20", AndroidPluginParams("3.0.1", "27.0.0", 27))
+ }
} \ No newline at end of file
diff --git a/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/AndroidMultiFlavourAppTest.kt b/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/AndroidMultiFlavourAppTest.kt
index 28328af8..ef1b94d8 100644
--- a/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/AndroidMultiFlavourAppTest.kt
+++ b/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/AndroidMultiFlavourAppTest.kt
@@ -53,4 +53,8 @@ class AndroidMultiFlavourAppTest : AbstractDokkaAndroidGradleTest() {
doTest("2.14.1", "1.0.7", AndroidPluginParams("2.2.3", "25.0.0", 24))
}
+ @Test fun `test kotlin 1_2_20 and gradle 4_5 and abt 3_0_1`() {
+ doTest("4.5", "1.2.20", AndroidPluginParams("3.0.1", "27.0.0", 27))
+ }
+
} \ No newline at end of file
diff --git a/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/BasicTest.kt b/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/BasicTest.kt
index f9801c82..ebaf1653 100644
--- a/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/BasicTest.kt
+++ b/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/BasicTest.kt
@@ -11,6 +11,7 @@ class BasicTest : AbstractDokkaGradleTest() {
val tmpRoot = testProjectDir.root.toPath()
testDataRoot.resolve("src").copy(tmpRoot.resolve("src"))
+ testDataRoot.resolve("classDir").copy(tmpRoot.resolve("classDir"))
testDataRoot.resolve("build.gradle").copy(tmpRoot.resolve("build.gradle"))
testDataRoot.resolve("settings.gradle").copy(tmpRoot.resolve("settings.gradle"))
}
@@ -48,4 +49,7 @@ class BasicTest : AbstractDokkaGradleTest() {
doTest("4.0", "1.1.2")
}
+ @Test fun `test kotlin 1_2_20 and gradle 4_5`() {
+ doTest("4.5", "1.2.20")
+ }
} \ No newline at end of file
diff --git a/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/JavadocRSuppressionTest.kt b/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/JavadocRSuppressionTest.kt
index 511a033c..3a4d08b8 100644
--- a/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/JavadocRSuppressionTest.kt
+++ b/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/JavadocRSuppressionTest.kt
@@ -17,4 +17,8 @@ class JavadocRSuppressionTest : AbstractAndroidAppTest("androidAppJavadoc") {
fun `test kotlin 1_0_7 and gradle 2_14_1 and abt 2_2_3`() {
doTest("2.14.1", "1.0.7", AndroidPluginParams("2.2.3", "25.0.0", 24))
}
+
+ @Test fun `test kotlin 1_2_20 and gradle 4_5 and abt 3_0_1`() {
+ doTest("4.5", "1.2.20", AndroidPluginParams("3.0.1", "27.0.0", 27))
+ }
} \ No newline at end of file
diff --git a/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/MultiProjectSingleOutTest.kt b/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/MultiProjectSingleOutTest.kt
index 13c7c37e..9458528c 100644
--- a/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/MultiProjectSingleOutTest.kt
+++ b/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/MultiProjectSingleOutTest.kt
@@ -51,4 +51,7 @@ class MultiProjectSingleOutTest : AbstractDokkaGradleTest() {
doTest("4.0", "1.1.2")
}
+ @Test fun `test kotlin 1_2_20 and gradle 4_5`() {
+ doTest("4.5", "1.2.20")
+ }
} \ No newline at end of file
diff --git a/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/RebuildAfterSourceChangeTest.kt b/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/RebuildAfterSourceChangeTest.kt
index 42e79696..f712998c 100644
--- a/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/RebuildAfterSourceChangeTest.kt
+++ b/runners/gradle-integration-tests/src/test/kotlin/org/jetbrains/dokka/gradle/RebuildAfterSourceChangeTest.kt
@@ -66,4 +66,9 @@ class RebuildAfterSourceChangeTest : AbstractDokkaGradleTest() {
fun `test kotlin 1_1_2 and gradle 4_0`() {
doTest("4.0", "1.1.2")
}
+
+ @Test
+ fun `test kotlin 1_2_20 and gradle 4_5`() {
+ doTest("4.5", "1.2.20")
+ }
} \ No newline at end of file
diff --git a/runners/gradle-integration-tests/testData/basic/build.gradle b/runners/gradle-integration-tests/testData/basic/build.gradle
index bc20e1cf..4a259f50 100644
--- a/runners/gradle-integration-tests/testData/basic/build.gradle
+++ b/runners/gradle-integration-tests/testData/basic/build.gradle
@@ -36,4 +36,5 @@ dependencies {
dokka {
dokkaFatJar = new File(dokka_fatjar)
+ classpath += files("$projectDir/classDir")
} \ No newline at end of file
diff --git a/runners/gradle-integration-tests/testData/basic/classDir/p1/MyBinaryClass.class b/runners/gradle-integration-tests/testData/basic/classDir/p1/MyBinaryClass.class
new file mode 100644
index 00000000..ccfff300
--- /dev/null
+++ b/runners/gradle-integration-tests/testData/basic/classDir/p1/MyBinaryClass.class
Binary files differ
diff --git a/runners/gradle-integration-tests/testData/basic/fileTree.txt b/runners/gradle-integration-tests/testData/basic/fileTree.txt
index 1a483d4e..2ceae371 100644
--- a/runners/gradle-integration-tests/testData/basic/fileTree.txt
+++ b/runners/gradle-integration-tests/testData/basic/fileTree.txt
@@ -22,6 +22,9 @@
constructor.html
index.html
main.html
+ p1.-my-binary-class/
+ index.html
+ test.html
str.html
x.html
index-outline.html
diff --git a/runners/gradle-integration-tests/testData/basic/src/main/kotlin/demo/HelloWorld.kt b/runners/gradle-integration-tests/testData/basic/src/main/kotlin/demo/HelloWorld.kt
index 7492e2a8..3d7bcb51 100644
--- a/runners/gradle-integration-tests/testData/basic/src/main/kotlin/demo/HelloWorld.kt
+++ b/runners/gradle-integration-tests/testData/basic/src/main/kotlin/demo/HelloWorld.kt
@@ -1,5 +1,7 @@
package demo
+import p1.MyBinaryClass
+
/**
* This class supports greeting people by name.
*
@@ -39,3 +41,5 @@ fun SomeType.constructor(): SomeType {
annotation class A(val p: String)
+val MyBinaryClass.test get() = s()
+
diff --git a/runners/gradle-plugin/build.gradle b/runners/gradle-plugin/build.gradle
index 790f3132..661d432b 100644
--- a/runners/gradle-plugin/build.gradle
+++ b/runners/gradle-plugin/build.gradle
@@ -1,3 +1,5 @@
+import com.gradle.publish.DependenciesBuilder
+
apply plugin: 'java'
apply plugin: 'kotlin'
@@ -11,7 +13,7 @@ tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
freeCompilerArgs += "-Xjsr305=strict"
languageVersion = "1.2"
- apiVersion = "1.0"
+ apiVersion = "1.1"
jvmTarget = "1.8"
}
}
@@ -84,6 +86,12 @@ pluginBundle {
}
}
+ withDependencies { List<Dependency> list ->
+ list.clear()
+ def builder = new DependenciesBuilder()
+ builder.addUniqueScopedDependencies(list, configurations.shadow, "compile")
+ }
+
mavenCoordinates {
groupId = "org.jetbrains.dokka"
artifactId = "dokka-gradle-plugin"
diff --git a/runners/gradle-plugin/src/main/kotlin/main.kt b/runners/gradle-plugin/src/main/kotlin/main.kt
index bdecc3f6..8c7f608e 100644
--- a/runners/gradle-plugin/src/main/kotlin/main.kt
+++ b/runners/gradle-plugin/src/main/kotlin/main.kt
@@ -51,6 +51,8 @@ object ClassloaderContainer {
var fatJarClassLoader: ClassLoader? = null
}
+const val `deprecationMessage reportNotDocumented` = "Will be removed in 0.9.17, see dokka#243"
+
open class DokkaTask : DefaultTask() {
fun defaultKotlinTasks() = with(ReflectDsl) {
@@ -69,7 +71,7 @@ open class DokkaTask : DefaultTask() {
description = "Generates dokka documentation for Kotlin"
@Suppress("LeakingThis")
- dependsOn(Callable { kotlinTasks.flatMap { it.dependsOn } })
+ dependsOn(Callable { kotlinTasks.map { it.taskDependencies } })
}
@Input
@@ -104,7 +106,16 @@ open class DokkaTask : DefaultTask() {
@Input var includeNonPublic = false
@Input var skipDeprecated = false
@Input var skipEmptyPackages = true
- @Input var reportNotDocumented = true
+
+ @Deprecated(`deprecationMessage reportNotDocumented`, replaceWith = ReplaceWith("reportUndocumented"))
+ var reportNotDocumented
+ get() = reportUndocumented
+ set(value) {
+ logger.warn("Dokka: reportNotDocumented is deprecated and " + `deprecationMessage reportNotDocumented`.decapitalize())
+ reportUndocumented = value
+ }
+
+ @Input var reportUndocumented = true
@Input var perPackageOptions: MutableList<PackageOptions> = arrayListOf()
@Input var impliedPlatforms: MutableList<String> = arrayListOf()
@@ -133,7 +144,7 @@ open class DokkaTask : DefaultTask() {
kotlinTasksConfigurator = { closure.call() as? List<Any?> }
}
- fun linkMapping(closure: Closure<Any?>) {
+ fun linkMapping(closure: Closure<Unit>) {
val mapping = LinkMapping()
closure.delegate = mapping
closure.call()
@@ -148,21 +159,21 @@ open class DokkaTask : DefaultTask() {
linkMappings.add(mapping)
}
- fun sourceRoot(closure: Closure<Any?>) {
+ fun sourceRoot(closure: Closure<Unit>) {
val sourceRoot = SourceRoot()
closure.delegate = sourceRoot
closure.call()
sourceRoots.add(sourceRoot)
}
- fun packageOptions(closure: Closure<Any?>) {
+ fun packageOptions(closure: Closure<Unit>) {
val packageOptions = PackageOptions()
closure.delegate = packageOptions
closure.call()
perPackageOptions.add(packageOptions)
}
- fun externalDocumentationLink(closure: Closure<Any?>) {
+ fun externalDocumentationLink(closure: Closure<Unit>) {
val builder = DokkaConfiguration.ExternalDocumentationLink.Builder()
closure.delegate = builder
closure.call()
@@ -278,7 +289,7 @@ open class DokkaTask : DefaultTask() {
outputFormat,
includeNonPublic,
false,
- reportNotDocumented,
+ reportUndocumented,
skipEmptyPackages,
skipDeprecated,
jdkVersion,
@@ -368,7 +379,7 @@ open class DokkaTask : DefaultTask() {
}
}
-class SourceRoot : DokkaConfiguration.SourceRoot {
+class SourceRoot : DokkaConfiguration.SourceRoot, Serializable {
override var path: String = ""
set(value) {
field = File(value).absolutePath
diff --git a/runners/maven-plugin/build.gradle b/runners/maven-plugin/build.gradle
index 0e8d6a4d..f3b9e79c 100644
--- a/runners/maven-plugin/build.gradle
+++ b/runners/maven-plugin/build.gradle
@@ -1,4 +1,5 @@
import groovy.io.FileType
+import org.jetbrains.CorrectShadowPublishing
import org.jetbrains.CrossPlatformExec
import java.nio.file.Files
@@ -92,14 +93,14 @@ apply plugin: 'maven-publish'
publishing {
publications {
- dokkaMavenPlugin(MavenPublication) { publication ->
+ dokkaMavenPlugin(MavenPublication) { MavenPublication publication ->
artifactId = 'dokka-maven-plugin'
artifact sourceJar {
classifier "sources"
}
- project.shadow.component(publication)
+ CorrectShadowPublishing.configure(publication, project)
pom.withXml {
Node root = asNode()