aboutsummaryrefslogtreecommitdiff
path: root/javadoc
diff options
context:
space:
mode:
authorSergey Mashkov <sergey.mashkov@jetbrains.com>2015-07-31 15:35:34 +0300
committerSergey Mashkov <sergey.mashkov@jetbrains.com>2015-07-31 17:52:49 +0300
commite27fb69817b1417c1bc556a507b14f2700c7a736 (patch)
treeb6d3b5622e65651ae6510f5109d86f834ff2c337 /javadoc
parent12f91ee7d491b21359ff8e8822c594f35b904def (diff)
downloaddokka-e27fb69817b1417c1bc556a507b14f2700c7a736.tar.gz
dokka-e27fb69817b1417c1bc556a507b14f2700c7a736.tar.bz2
dokka-e27fb69817b1417c1bc556a507b14f2700c7a736.zip
Use Guice injector and ServiceLocator to load implementations on the fly
Diffstat (limited to 'javadoc')
-rw-r--r--javadoc/src/main/kotlin/docbase.kt8
-rw-r--r--javadoc/src/main/kotlin/dokka-adapters.kt29
-rw-r--r--javadoc/src/main/kotlin/main.kt24
-rw-r--r--javadoc/src/main/resources/dokka/generator/javadoc.properties2
-rw-r--r--javadoc/src/main/resources/format/javadoc.properties1
5 files changed, 37 insertions, 27 deletions
diff --git a/javadoc/src/main/kotlin/docbase.kt b/javadoc/src/main/kotlin/docbase.kt
index fe66a672..aa1e01a6 100644
--- a/javadoc/src/main/kotlin/docbase.kt
+++ b/javadoc/src/main/kotlin/docbase.kt
@@ -472,7 +472,7 @@ fun DocumentationNode.lookupSuperClasses(module: ModuleNodeAdapter) =
.map { module.allTypes[it?.qualifiedName] }
.filterNotNull()
-class ModuleNodeAdapter(val module: DocumentationModule, val reporter: DocErrorReporter) : DocumentationNodeBareAdapter(module), DocErrorReporter by reporter, RootDoc {
+class ModuleNodeAdapter(val module: DocumentationModule, val reporter: DocErrorReporter, val outputPath: String) : DocumentationNodeBareAdapter(module), DocErrorReporter by reporter, RootDoc {
val allPackages = module.members(DocumentationNode.Kind.Package).toMap { it.name }
val allTypes = module.members(DocumentationNode.Kind.Package)
.flatMap { it.members(DocumentationNode.Kind.Class) + it.members(DocumentationNode.Kind.Interface) + it.members(DocumentationNode.Kind.Enum) }
@@ -486,8 +486,10 @@ class ModuleNodeAdapter(val module: DocumentationModule, val reporter: DocErrorR
.toTypedArray()
override fun options(): Array<out Array<String>> = arrayOf(
- arrayOf("-d", "out/javadoc"),
- arrayOf("-docencoding", "UTF-8")
+ arrayOf("-d", outputPath),
+ arrayOf("-docencoding", "UTF-8"),
+ arrayOf("-charset", "UTF-8"),
+ arrayOf("-keywords")
)
override fun specifiedPackages(): Array<out PackageDoc>? = module.members(DocumentationNode.Kind.Package).map { PackageAdapter(this, it) }.toTypedArray()
diff --git a/javadoc/src/main/kotlin/dokka-adapters.kt b/javadoc/src/main/kotlin/dokka-adapters.kt
new file mode 100644
index 00000000..c9183d50
--- /dev/null
+++ b/javadoc/src/main/kotlin/dokka-adapters.kt
@@ -0,0 +1,29 @@
+package org.jetbrains.dokka.javadoc
+
+import com.sun.tools.doclets.formats.html.HtmlDoclet
+import org.jetbrains.dokka.*
+import org.jetbrains.dokka.Formats.FormatDescriptor
+
+class JavadocGenerator(val conf: DokkaGenerator) : Generator {
+ override fun buildPages(nodes: Iterable<DocumentationNode>) {
+ val module = nodes.single() as DocumentationModule
+
+ DokkaConsoleLogger.report()
+ HtmlDoclet.start(ModuleNodeAdapter(module, StandardReporter, conf.outputDir))
+ }
+
+ override fun buildOutlines(nodes: Iterable<DocumentationNode>) {
+ // no outline could be generated separately
+ }
+}
+
+class JavadocFormatDescriptor : FormatDescriptor {
+ override val formatServiceClass: Class<out FormatService>?
+ get() = null
+ override val outlineServiceClass: Class<out OutlineFormatService>?
+ get() = null
+
+ override val generatorServiceClass: Class<out Generator>
+ get() = javaClass<JavadocGenerator>()
+}
+
diff --git a/javadoc/src/main/kotlin/main.kt b/javadoc/src/main/kotlin/main.kt
deleted file mode 100644
index 0c3821c3..00000000
--- a/javadoc/src/main/kotlin/main.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.jetbrains.dokka.javadoc
-
-import com.sun.tools.doclets.formats.html.HtmlDoclet
-import org.jetbrains.dokka.DocumentationOptions
-import org.jetbrains.dokka.DokkaConsoleLogger
-import org.jetbrains.dokka.DokkaGenerator
-import org.jetbrains.dokka.buildDocumentationModule
-import java.io.File
-
-/**
- * Test me, my friend
- */
-public fun main(args: Array<String>) {
- val generator = DokkaGenerator(DokkaConsoleLogger, System.getProperty("java.class.path").split(File.pathSeparator), listOf(File("test").absolutePath), emptyList(), emptyList(), "me", "out/dokka", "html", emptyList(), false)
- val env = generator.createAnalysisEnvironment()
- val module = buildDocumentationModule(env, generator.moduleName, DocumentationOptions(includeNonPublic = true, sourceLinks = emptyList()), emptyList(), {
- generator.isSample(it)
- }, generator.logger)
-
- DokkaConsoleLogger.report()
- HtmlDoclet.start(ModuleNodeAdapter(module, StandardReporter))
-}
-
-public fun String.a(): Int = 1 \ No newline at end of file
diff --git a/javadoc/src/main/resources/dokka/generator/javadoc.properties b/javadoc/src/main/resources/dokka/generator/javadoc.properties
new file mode 100644
index 00000000..4075704f
--- /dev/null
+++ b/javadoc/src/main/resources/dokka/generator/javadoc.properties
@@ -0,0 +1,2 @@
+class=org.jetbrains.dokka.javadoc.JavadocGenerator
+description=Produces output via JDK javadoc tool \ No newline at end of file
diff --git a/javadoc/src/main/resources/format/javadoc.properties b/javadoc/src/main/resources/format/javadoc.properties
new file mode 100644
index 00000000..a58317fc
--- /dev/null
+++ b/javadoc/src/main/resources/format/javadoc.properties
@@ -0,0 +1 @@
+class=org.jetbrains.dokka.javadoc.JavadocFormatDescriptor \ No newline at end of file