Hardcode "-source 1.8" for Doclava.
Due to various bugs hidden deeply within Doclava, running with
"-source 1.9" is always failed for it.
So switch to "-source 1.8" for now. This includes the case of running the
combination of Metalava + Doclava. Once we have new documentation tool
in system, we can full deprecate Doclava.
Test: USE_R8=true EXPERIMENTAL_USE_OPENJDK9=true m -j core-docs
Bug: b/70351683
Change-Id: I9553f88d0dd9bc263a249c49075c0b931b5d4927
diff --git a/java/droiddoc.go b/java/droiddoc.go
index 104e46d..6a28cfb 100644
--- a/java/droiddoc.go
+++ b/java/droiddoc.go
@@ -767,7 +767,7 @@
}
func (d *Droiddoc) collectDoclavaDocsFlags(ctx android.ModuleContext, implicits *android.Paths,
- javaVersion string, jsilver, doclava android.Path) string {
+ jsilver, doclava android.Path) string {
*implicits = append(*implicits, jsilver)
*implicits = append(*implicits, doclava)
@@ -779,7 +779,10 @@
date = `date -d`
}
- args := " -source " + javaVersion + " -J-Xmx1600m -J-XX:-OmitStackTraceInFastThrow -XDignore.symbol.file " +
+ // Droiddoc always gets "-source 1.8" because it doesn't support 1.9 sources. For modules with 1.9
+ // sources, droiddoc will get sources produced by metalava which will have already stripped out the
+ // 1.9 language features.
+ args := " -source 1.8 -J-Xmx1600m -J-XX:-OmitStackTraceInFastThrow -XDignore.symbol.file " +
"-doclet com.google.doclava.Doclava -docletpath " + jsilver.String() + ":" + doclava.String() + " " +
"-hdf page.build " + ctx.Config().BuildId() + "-" + ctx.Config().BuildNumberFromFile() + " " +
`-hdf page.now "$$(` + date + ` @$$(cat ` + ctx.Config().Getenv("BUILD_DATETIME_FILE") + `) "+%d %b %Y %k:%M")" `
@@ -1089,13 +1092,6 @@
deps := d.Javadoc.collectDeps(ctx)
javaVersion := getJavaVersion(ctx, String(d.Javadoc.properties.Java_version), sdkContext(d))
- // Doclava has problem with "-source 1.9", so override javaVersion when Doclava
- // is running with EXPERIMENTAL_USE_OPENJDK9=true. And eventually Doclava will be
- // replaced by Metalava.
- if !Bool(d.properties.Metalava_enabled) {
- javaVersion = "1.8"
- }
-
jsilver := android.PathForOutput(ctx, "host", ctx.Config().PrebuiltOS(), "framework", "jsilver.jar")
doclava := android.PathForOutput(ctx, "host", ctx.Config().PrebuiltOS(), "framework", "doclava.jar")
java8Home := ctx.Config().Getenv("ANDROID_JAVA8_HOME")
@@ -1132,7 +1128,7 @@
} else {
flags.metalavaJavadocFlags = d.collectMetalavaJavadocFlags(
ctx, flags.bootClasspathArgs, flags.classpathArgs, outDir, docStubsDir)
- flags.doclavaDocsFlags = d.collectDoclavaDocsFlags(ctx, &implicits, javaVersion, jsilver, doclava)
+ flags.doclavaDocsFlags = d.collectDoclavaDocsFlags(ctx, &implicits, jsilver, doclava)
d.transformMetalava(ctx, implicits, implicitOutputs, outDir, docStubsDir, javaVersion,
flags.bootClasspathArgs, flags.classpathArgs, flags.metalavaStubsFlags+
flags.metalavaAnnotationsFlags+" "+strings.Split(flags.args, "--generate-documentation")[0]+
@@ -1145,7 +1141,7 @@
flags.metalavaStubsFlags+flags.metalavaAnnotationsFlags+flags.args)
}
} else {
- flags.doclavaDocsFlags = d.collectDoclavaDocsFlags(ctx, &implicits, javaVersion, jsilver, doclava)
+ flags.doclavaDocsFlags = d.collectDoclavaDocsFlags(ctx, &implicits, jsilver, doclava)
flags.postDoclavaCmds = d.getPostDoclavaCmds(ctx, &implicits)
d.transformDoclava(ctx, implicits, implicitOutputs, flags.bootClasspathArgs, flags.classpathArgs,
flags.doclavaDocsFlags+flags.doclavaStubsFlags+" "+flags.args,